]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/log
linux-2.6-omap-h63xx.git
17 years agoV4L/DVB (9720): cx18: Major rewrite of interrupt handling for incoming mailbox processing
Andy Walls [Sun, 16 Nov 2008 04:38:19 +0000 (01:38 -0300)]
V4L/DVB (9720): cx18: Major rewrite of interrupt handling for incoming mailbox processing

A major rewrite of interrupt handling for incoming mailbox processing, to split
the timing critical steps from the the deferrable steps as the sending XPU on
the CX23418 will time out and overwrite our incoming mailboxes rather quickly.
Setup a pool of work "order forms" for the irq handler to send jobs to the new
work handler routine which uses the kernel default work queue to do the
deferrable work.  Started optimizing some of the cx18-io calls as they are now
the low hanging fruit for recoving microseconds back from the timeline.
Future optimizations will get rid of mmio read retries, mmio stats logging, and
combine smaller functions in the irq path into the larger ones to save ~2 us
each.

Signed-off-by: Andy Walls <awalls@radix.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
17 years agoV4L/DVB (9710): gspca: Remove some unuseful core in main.
Jean-Francois Moine [Sat, 22 Nov 2008 07:27:34 +0000 (04:27 -0300)]
V4L/DVB (9710): gspca: Remove some unuseful core in main.

Signed-off-by: Jean-Francois Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
17 years agoV4L/DVB (9707): gspca: Remove the event counter and simplify the frame wait.
Hans de Goede [Wed, 19 Nov 2008 20:16:26 +0000 (17:16 -0300)]
V4L/DVB (9707): gspca: Remove the event counter and simplify the frame wait.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Jean-Francois Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
17 years agoV4L/DVB (9655): radio-mr800: fix unplug
Alexey Klimov [Wed, 19 Nov 2008 03:36:29 +0000 (00:36 -0300)]
V4L/DVB (9655): radio-mr800: fix unplug

This patch fixes problems(kernel oopses) with unplug of device while
it's working.
Patch adds disconnect_lock mutex, changes usb_amradio_close and
usb_amradio_disconnect functions and adds a lot of safety checks.

Signed-off-by: Alexey Klimov <klimov.linux@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
17 years agoV4L/DVB (9599): cx18: Fix unitialized variable problem upon APU firmware file read...
Andy Walls [Sun, 9 Nov 2008 22:51:44 +0000 (19:51 -0300)]
V4L/DVB (9599): cx18: Fix unitialized variable problem upon APU firmware file read failure

If APU firmware file read failed, the jump vector to the APU was undefined and
the APU would be started executing garbage.  Fix uninitialized variable to be
an infinite loop for the APU, but also bail out before even starting the APU.

Signed-off-by: Andy Walls <awalls@radix.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
17 years agoV4L/DVB (9598): cx18: Prevent CX23418 from clearing it's outgoing ack interrupts...
Andy Walls [Sun, 9 Nov 2008 21:14:07 +0000 (18:14 -0300)]
V4L/DVB (9598): cx18: Prevent CX23418 from clearing it's outgoing ack interrupts to driver

When the CX23418 CPU unit sent out an ack interrupt to the linux driver, it
also received that interrupt and cleared the flag before the linux driver could
see what the interrupt was for.  This fix prevents the CPU from receiving an
IRQ for it's own outgoing ack's to the linux driver.  This fix is critical now
that the linux driver doesn't poll but relies on these ack interrupts.

Signed-off-by: Andy Walls <awalls@radix.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
17 years agoV4L/DVB (9597): cx18: Minor fixes to APU firmware load process
Andy Walls [Sat, 8 Nov 2008 20:14:22 +0000 (17:14 -0300)]
V4L/DVB (9597): cx18: Minor fixes to APU firmware load process

Use the APU fw start address from rom file instead of a hardcoded entry vector.
Fixed cx18_setup_page() calls to use the correct APU image load addresses.

Signed-off-by: Andy Walls <awalls@radix.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
17 years agoV4L/DVB (9596): cx18: Further changes to improve mailbox protocol integrity & performnce
Andy Walls [Sat, 8 Nov 2008 17:19:37 +0000 (14:19 -0300)]
V4L/DVB (9596): cx18: Further changes to improve mailbox protocol integrity & performnce

All waits for cx18 mailbox API commands are now uninterruptable.  Added
code to collect mailbox ack statistics.  Tweaked timeouts based on collected
stats and video vertical frame and field rates.

Signed-off-by: Andy Walls <awalls@radix.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
17 years agoV4L/DVB (9595): cx18: Improve handling of outgoing mailboxes detected to be busy
Andy Walls [Sat, 8 Nov 2008 02:57:46 +0000 (23:57 -0300)]
V4L/DVB (9595): cx18: Improve handling of outgoing mailboxes detected to be busy

cx18: Improve handling of outgoing mailboxes detected to be busy.  When
encountering a busy mailbox, sleep instead of polling, and wait for interrupt or
timeout.  If the mailbox is still busy, force it free.  When sending commands,
make sure we never create a situation where we mark the mailbox busy upon
sending, and ensure we always have a method to cleanly recover from a busy
mailbox.

Signed-off-by: Andy Walls <awalls@radix.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
17 years agoV4L/DVB (9594): cx18: Roll driver version number due to significant changes
Andy Walls [Thu, 6 Nov 2008 04:33:27 +0000 (01:33 -0300)]
V4L/DVB (9594): cx18: Roll driver version number due to significant changes

Driver interrupt and mailbox handling has change significantly.
Time for a roll to v1.0.2.

Signed-off-by: Andy Walls <awalls@radix.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
17 years agoV4L/DVB (9593): cx18: Add outgoing mailbox mutexes and check for ack via waitq vs...
Andy Walls [Thu, 6 Nov 2008 04:15:41 +0000 (01:15 -0300)]
V4L/DVB (9593): cx18: Add outgoing mailbox mutexes and check for ack via waitq vs poll

Add mutexes to ensure exclusive access for outgoing driver to CX23418 mailboxes.
Also wait on a waitq for mailbox acknowledgement from the CX23418 instead of
polling.

Signed-off-by: Andy Walls <awalls@radix.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
17 years agoV4L/DVB (9592): cx18: Use default kernel work queue; fix streaming flag for work...
Andy Walls [Thu, 6 Nov 2008 00:19:15 +0000 (21:19 -0300)]
V4L/DVB (9592): cx18: Use default kernel work queue; fix streaming flag for work handler

cx18: Use default kernel work queue; fix streaming flag for work handler.
Eliminate cx18 specific work queue and use the kernel default work queue.
Fixed the F_STREAMING_FLAG for the TS stream so cx18_dvb_work_handler()
can know when it is not safe to send MDLs to the firmware.

Signed-off-by: Andy Walls <awalls@radix.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
17 years agoV4L/DVB (9558): gspca: Add the light frequency control for the sensor HV7131B in...
Jean-Francois Moine [Thu, 6 Nov 2008 18:35:21 +0000 (15:35 -0300)]
V4L/DVB (9558): gspca: Add the light frequency control for the sensor HV7131B in zc3xx

Signed-off-by: Jean-Francois Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
17 years agoV4L/DVB (9513): cx18: Reduce number of mmio read retries
Andy Walls [Sun, 2 Nov 2008 21:15:28 +0000 (18:15 -0300)]
V4L/DVB (9513): cx18: Reduce number of mmio read retries

cx18: Reduce number of mmio read retries to improve performance.  Experiments
have shown 2 things: read retries never improve the result of a suspect mmio
read from the CX23418 (the result stays all 0xff's), and that most of the
suspected read failures are actually proper reads of values that should be
all 0xff's.  This change reduces the number of read retries and keeps the
count separate from write retries.

Signed-off-by: Andy Walls <awalls@radix.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
17 years agoV4L/DVB (9442): Revert back previous change to 90MHz
Manu Abraham [Mon, 19 Nov 2007 19:44:47 +0000 (16:44 -0300)]
V4L/DVB (9442): Revert back previous change to 90MHz

Note:
* At High Symbol Rates we do not have enouph machine cycles to handle the
  incoming symbols and hence might run into problems at the very end of the
  specified definition
* Most of the equations have been calculated for a master clock of 99 MHz,
  running at 90MHz, raises lot of issues such as the need to recalculate
  all of them , which is eventually very painful.

Signed-off-by: Manu Abraham <manu@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
17 years agoV4L/DVB (9431): Bug ID #19: Diseqc works properly at 90MHz only on Cut 1.1 and 2.0
Manu Abraham [Tue, 30 Oct 2007 12:31:13 +0000 (09:31 -0300)]
V4L/DVB (9431): Bug ID #19: Diseqc works properly at 90MHz only on Cut 1.1 and 2.0

Signed-off-by: Manu Abraham <manu@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
17 years agoV4L/DVB (9425): Initialize at 90MHz itself
Manu Abraham [Thu, 18 Oct 2007 09:25:51 +0000 (06:25 -0300)]
V4L/DVB (9425): Initialize at 90MHz itself

Signed-off-by: Manu Abraham <manu@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
17 years agoUSB: OTG: twl4030 build fix
Kevin Hilman [Tue, 16 Dec 2008 00:00:03 +0000 (16:00 -0800)]
USB: OTG: twl4030 build fix

Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
17 years agohsmmc: Leave out twl4030 dependency
Tony Lindgren [Tue, 30 Dec 2008 08:39:49 +0000 (10:39 +0200)]
hsmmc: Leave out twl4030 dependency

Also change the dependency to ARCH_OMAPP2430 || ARCH_OMAP3.
Based on comments by David Brownell.

Signed-off-by: Tony Lindgren <tony@atomide.com>
17 years agoMerge branch 'next' into for-linus
Dmitry Torokhov [Tue, 30 Dec 2008 09:10:06 +0000 (01:10 -0800)]
Merge branch 'next' into for-linus

17 years agoInput: gtco - use USB endpoint API
Julia Lawall [Tue, 30 Dec 2008 09:09:02 +0000 (01:09 -0800)]
Input: gtco - use USB endpoint API

Use usb_endpoint_xfer_int(epd) instead of open-conding the check.

Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: add support for Maple controller as a joystick
Adrian McMenamin [Tue, 30 Dec 2008 08:53:54 +0000 (00:53 -0800)]
Input: add support for Maple controller as a joystick

Add support for the SEGA Dreamcast Maple controller as a joystick

Signed-off-by: Adrian McMenamin <adrian@mcmen.demon.co.uk>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: atkbd - broaden the Dell DMI signatures
Matthew Garrett [Tue, 30 Dec 2008 08:43:11 +0000 (00:43 -0800)]
Input: atkbd - broaden the Dell DMI signatures

Some Dells need the dell input quirk applied but have a different vendor
string in their DMI tables. Add an extra entry to cover these machines as
well.

Signed-off-by: Matthew Garrett <mjg@redhat.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: HIL drivers - add MODULE_ALIAS()
Helge Deller [Mon, 29 Dec 2008 12:44:44 +0000 (04:44 -0800)]
Input: HIL drivers - add MODULE_ALIAS()

Add MODULE_ALIAS() to the HIL keyboard (hil_kbd.c) and HIL mouse
(hil_ptr.c) drivers to make kernel module autoloader functional.
Report HIL port number ID in serio id.id field.

Signed-off-by: Helge Deller <deller@gmx.de>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agotracing, kvm: change MARKERS to select instead of depends on
Ingo Molnar [Tue, 30 Dec 2008 08:41:04 +0000 (09:41 +0100)]
tracing, kvm: change MARKERS to select instead of depends on

Impact: build fix

fix:

 kernel/trace/Kconfig:42:error: found recursive dependency: TRACING ->
 TRACEPOINTS -> MARKERS -> KVM_TRACE -> RELAY -> KMEMTRACE -> TRACING

markers is a facility that should be selected - not depended on
by an interactive Kconfig entry.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
17 years agotracing/kmemtrace: normalize the raw tracer event to the unified tracing API
Frederic Weisbecker [Mon, 29 Dec 2008 21:42:23 +0000 (13:42 -0800)]
tracing/kmemtrace: normalize the raw tracer event to the unified tracing API

Impact: new tracer plugin

This patch adapts kmemtrace raw events tracing to the unified tracing API.

To enable and use this tracer, just do the following:

 echo kmemtrace > /debugfs/tracing/current_tracer
 cat /debugfs/tracing/trace

You will have the following output:

 # tracer: kmemtrace
 #
 #
 # ALLOC  TYPE  REQ   GIVEN  FLAGS           POINTER         NODE    CALLER
 # FREE   |      |     |       |              |   |            |        |
 # |

type_id 1 call_site 18446744071565527833 ptr 18446612134395152256
type_id 0 call_site 18446744071565585597 ptr 18446612134405955584 bytes_req 4096 bytes_alloc 4096 gfp_flags 208 node -1
type_id 1 call_site 18446744071565585534 ptr 18446612134405955584
type_id 0 call_site 18446744071565585597 ptr 18446612134405955584 bytes_req 4096 bytes_alloc 4096 gfp_flags 208 node -1
type_id 0 call_site 18446744071565636711 ptr 18446612134345164672 bytes_req 240 bytes_alloc 240 gfp_flags 208 node -1
type_id 1 call_site 18446744071565585534 ptr 18446612134405955584
type_id 0 call_site 18446744071565585597 ptr 18446612134405955584 bytes_req 4096 bytes_alloc 4096 gfp_flags 208 node -1
type_id 0 call_site 18446744071565636711 ptr 18446612134345164912 bytes_req 240 bytes_alloc 240 gfp_flags 208 node -1
type_id 1 call_site 18446744071565585534 ptr 18446612134405955584
type_id 0 call_site 18446744071565585597 ptr 18446612134405955584 bytes_req 4096 bytes_alloc 4096 gfp_flags 208 node -1
type_id 0 call_site 18446744071565636711 ptr 18446612134345165152 bytes_req 240 bytes_alloc 240 gfp_flags 208 node -1
type_id 0 call_site 18446744071566144042 ptr 18446612134346191680 bytes_req 1304 bytes_alloc 1312 gfp_flags 208 node -1
type_id 1 call_site 18446744071565585534 ptr 18446612134405955584
type_id 0 call_site 18446744071565585597 ptr 18446612134405955584 bytes_req 4096 bytes_alloc 4096 gfp_flags 208 node -1
type_id 1 call_site 18446744071565585534 ptr 18446612134405955584

That was to stay backward compatible with the format output produced in
inux/tracepoint.h.

This is the default ouput, but note that I tried something else.

If you change an option:

echo kmem_minimalistic > /debugfs/trace_options

and then cat /debugfs/trace, you will have the following output:

 # tracer: kmemtrace
 #
 #
 # ALLOC  TYPE  REQ   GIVEN  FLAGS           POINTER         NODE    CALLER
 # FREE   |      |     |       |              |   |            |        |
 # |

   -      C                            0xffff88007c088780          file_free_rcu
   +      K   4096   4096   000000d0   0xffff88007cad6000     -1   getname
   -      C                            0xffff88007cad6000          putname
   +      K   4096   4096   000000d0   0xffff88007cad6000     -1   getname
   +      K    240    240   000000d0   0xffff8800790dc780     -1   d_alloc
   -      C                            0xffff88007cad6000          putname
   +      K   4096   4096   000000d0   0xffff88007cad6000     -1   getname
   +      K    240    240   000000d0   0xffff8800790dc870     -1   d_alloc
   -      C                            0xffff88007cad6000          putname
   +      K   4096   4096   000000d0   0xffff88007cad6000     -1   getname
   +      K    240    240   000000d0   0xffff8800790dc960     -1   d_alloc
   +      K   1304   1312   000000d0   0xffff8800791d7340     -1   reiserfs_alloc_inode
   -      C                            0xffff88007cad6000          putname
   +      K   4096   4096   000000d0   0xffff88007cad6000     -1   getname
   -      C                            0xffff88007cad6000          putname
   +      K    992   1000   000000d0   0xffff880079045b58     -1   alloc_inode
   +      K    768   1024   000080d0   0xffff88007c096400     -1   alloc_pipe_info
   +      K    240    240   000000d0   0xffff8800790dca50     -1   d_alloc
   +      K    272    320   000080d0   0xffff88007c088780     -1   get_empty_filp
   +      K    272    320   000080d0   0xffff88007c088000     -1   get_empty_filp

Yeah I shall confess kmem_minimalistic should be: kmem_alternative.

Whatever, I find it more readable but this a personal opinion of course.
We can drop it if you want.

On the ALLOC/FREE column, + means an allocation and - a free.

On the type column, you have K = kmalloc, C = cache, P = page

I would like the flags to be GFP_* strings but that would not be easy to not
break the column with strings....

About the node...it seems to always be -1. I don't know why but that shouldn't
be difficult to find.

I moved linux/tracepoint.h to trace/tracepoint.h as well. I think that would
be more easy to find the tracer headers if they are all in their common
directory.

Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
17 years agoRDMA/addr: Fix build breakage when IPv6 is disabled
Roland Dreier [Tue, 30 Dec 2008 07:37:14 +0000 (23:37 -0800)]
RDMA/addr: Fix build breakage when IPv6 is disabled

Commit 38617c64 ("RDMA/addr: Add support for translating IPv6
addresses") broke the build when CONFIG_IPV6=n, because the ib_addr
module unconditionally attempted to call ipv6_chk_addr() and other
IPv6 functions that are not defined when IPv6 is disabled.  Fix this
by only building IPv6 support if CONFIG_IPV6 is turned on, and
add a Kconfig dependency to prevent the ib_addr code from being built
in when IPv6 is built modular.

Signed-off-by: Roland Dreier <rolandd@cisco.com>
17 years agonet: Fix percpu counters deadlock
Herbert Xu [Tue, 30 Dec 2008 07:04:08 +0000 (23:04 -0800)]
net: Fix percpu counters deadlock

When we converted the protocol atomic counters such as the orphan
count and the total socket count deadlocks were introduced due to
the mismatch in BH status of the spots that used the percpu counter
operations.

Based on the diagnosis and patch by Peter Zijlstra, this patch
fixes these issues by disabling BH where we may be in process
context.

Reported-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Tested-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years agocpumask: prepare for iterators to only go to nr_cpu_ids/nr_cpumask_bits: net
Rusty Russell [Mon, 29 Dec 2008 12:23:42 +0000 (12:23 +0000)]
cpumask: prepare for iterators to only go to nr_cpu_ids/nr_cpumask_bits: net

In future all cpumask ops will only be valid (in general) for bit
numbers < nr_cpu_ids.  So use that instead of NR_CPUS in iterators
and other comparisons.

This is always safe: no cpu number can be >= nr_cpu_ids, and
nr_cpu_ids is initialized to NR_CPUS at boot.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Mike Travis <travis@sgi.com>
Acked-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years agosched: sched.c declare variables before they get used
Jaswinder Singh Rajput [Mon, 29 Dec 2008 18:09:17 +0000 (23:39 +0530)]
sched: sched.c declare variables before they get used

Impact: cleanup, avoid sparse warnings

In linux/sched.h moved out sysctl_sched_latency, sysctl_sched_min_granularity,
sysctl_sched_wakeup_granularity, sysctl_sched_shares_ratelimit and
sysctl_sched_shares_thresh from #ifdef CONFIG_SCHED_DEBUG as these variables
are common for both.

Fixes these sparse warnings:
  kernel/sched.c:825:14: warning: symbol 'sysctl_sched_shares_ratelimit' was not declared. Should it be static?
  kernel/sched.c:832:14: warning: symbol 'sysctl_sched_shares_thresh' was not declared. Should it be static?
  kernel/sched_fair.c:37:14: warning: symbol 'sysctl_sched_latency' was not declared. Should it be static?
  kernel/sched_fair.c:43:14: warning: symbol 'sysctl_sched_min_granularity' was not declared. Should it be static?
  kernel/sched_fair.c:72:14: warning: symbol 'sysctl_sched_wakeup_granularity' was not declared. Should it be static?

Signed-off-by: Jaswinder Singh Rajput <jaswinderrajput@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
17 years agohrtimers: allow the hot-unplugging of all cpus
Sebastien Dugue [Mon, 1 Dec 2008 13:09:07 +0000 (14:09 +0100)]
hrtimers: allow the hot-unplugging of all cpus

Impact: fix CPU hotplug hang on Power6 testbox

On architectures that support offlining all cpus (at least powerpc/pseries),
hot-unpluging the tick_do_timer_cpu can result in a system hang.

This comes from the fact that if the cpu going down happens to be the
cpu doing the tick, then as the tick_do_timer_cpu handover happens after the
cpu is dead (via the CPU_DEAD notification), we're left without ticks,
jiffies are frozen and any task relying on timers (msleep, ...) is stuck.
That's particularly the case for the cpu looping in __cpu_die() waiting
for the dying cpu to be dead.

This patch addresses this by having the tick_do_timer_cpu handover happen
earlier during the CPU_DYING notification. For this, a new clockevent
notification type is introduced (CLOCK_EVT_NOTIFY_CPU_DYING) which is triggered
in hrtimer_cpu_notify().

Signed-off-by: Sebastien Dugue <sebastien.dugue@bull.net>
Cc: <stable@kernel.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
17 years agox86: bios_uv.c: uv_systab should be static
Jaswinder Singh Rajput [Mon, 29 Dec 2008 16:42:50 +0000 (22:12 +0530)]
x86: bios_uv.c: uv_systab should be static

Impact: cleanup, reduce kernel size a bit, avoid sparse warning

Fixes sparse warning:
arch/x86/kernel/bios_uv.c:28:18: warning: symbol 'uv_systab' was not declared. Should it be static?

Signed-off-by: Jaswinder Singh Rajput <jaswinderrajput@gmail.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
17 years agox86: genx2apic_phys.c: x2apic_send_IPI_self and init_x2apic_ldr should be static
Jaswinder Singh Rajput [Mon, 29 Dec 2008 16:41:40 +0000 (22:11 +0530)]
x86: genx2apic_phys.c: x2apic_send_IPI_self and init_x2apic_ldr should be static

Impact: cleanup, reduce kernel size a bit, avoid sparse warnings

Fixes sparse warnings:
arch/x86/kernel/genx2apic_phys.c:164:6: warning: symbol 'x2apic_send_IPI_self' was not declared. Should it be static?
arch/x86/kernel/genx2apic_phys.c:169:6: warning: symbol 'init_x2apic_ldr' was not declared. Should it be static?

Signed-off-by: Jaswinder Singh Rajput <jaswinderrajput@gmail.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
17 years agox86: amd_iommu.c: prealloc_protection_domains should be static
Jaswinder Singh Rajput [Mon, 29 Dec 2008 16:15:22 +0000 (21:45 +0530)]
x86: amd_iommu.c: prealloc_protection_domains should be static

Impact: cleanup, reduce kernel size a bit, avoid sparse warning

Fixes sparse warning:
arch/x86/kernel/amd_iommu.c:1299:6: warning: symbol 'prealloc_protection_domains' was not declared. Should it be static?

Signed-off-by: Jaswinder Singh Rajput <jaswinderrajput@gmail.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
17 years agox86: amd_iommu_init.c: iommu_enable and iommu_enable_event_logging should be static
Jaswinder Singh Rajput [Mon, 29 Dec 2008 16:14:12 +0000 (21:44 +0530)]
x86: amd_iommu_init.c: iommu_enable and iommu_enable_event_logging should be static

Impact: cleanup, reduce kernel size a bit, avoid sparse warning

Fixes sparse warning:
arch/x86/kernel/amd_iommu_init.c:246:13: warning: symbol 'iommu_enable' was not declared. Should it be static?
arch/x86/kernel/amd_iommu_init.c:259:13: warning: symbol 'iommu_enable_event_logging' was not declared. Should it be static?

Signed-off-by: Jaswinder Singh Rajput <jaswinderrajput@gmail.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
17 years agorelayfs: replace BUG() with WARN_ON() in relay_late_setup_files()
Ingo Molnar [Mon, 29 Dec 2008 15:03:40 +0000 (16:03 +0100)]
relayfs: replace BUG() with WARN_ON() in relay_late_setup_files()

Impact: turn boot crash into boot warning

This BUG() can trigger:

[   16.684131] initcall fail_page_alloc_debugfs+0x0/0xc1 returned 0 after 0 usecs
[   16.692035] calling  kmemtrace_setup_late+0x0/0xd5 @ 1
[   16.700087] relay_late_setup_files: CPU 1 has no buffer, it must have!
[   16.704044] ------------[ cut here ]------------
[   16.708030] kernel BUG at kernel/relay.c:680!
[   16.708030] invalid opcode: 0000 [#1] SMP DEBUG_PAGEALLOC
[   16.708030] last sysfs file:
[   16.708030]
[   16.708030] Pid: 1, comm: swapper Not tainted (2.6.28-tip-03903-g9a39f58-dirty #13207) System Product Name
[   16.708030] EIP: 0060:[<c01604ae>] EFLAGS: 00010246 CPU: 1
[   16.708030] EIP is at relay_late_setup_files+0x8c/0x176

Reduce it to a more reportable WARN_ONCE().

Signed-off-by: Ingo Molnar <mingo@elte.hu>
17 years agokmemtrace: move #include lines
Ingo Molnar [Mon, 29 Dec 2008 14:29:04 +0000 (15:29 +0100)]
kmemtrace: move #include lines

Impact: avoid conflicts with kmemcheck

kmemcheck modifies the same area of slab.c and slub.c - move the
include lines up a bit.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
17 years agofutex: make futex_(get|put)_key() calls symmetric
Darren Hart [Mon, 29 Dec 2008 23:49:53 +0000 (15:49 -0800)]
futex: make futex_(get|put)_key() calls symmetric

Impact: cleanup

This patch makes the calls to futex_get_key_refs() and futex_drop_key_refs()
explicitly symmetric by only "putting" keys we successfully "got".  Also
cleanup a couple return points that didn't "put" after a successful "get".

Build and boot tested on an x86_64 system.

Signed-off-by: Darren Hart <dvhltc@us.ibm.com>
Cc: <stable@kernel.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
17 years agooprofile: simplify add_sample() in cpu_buffer.c
Robert Richter [Tue, 30 Dec 2008 04:10:58 +0000 (05:10 +0100)]
oprofile: simplify add_sample() in cpu_buffer.c

Signed-off-by: Robert Richter <robert.richter@amd.com>
17 years agoACPICA: Update version to 20081031
Bob Moore [Thu, 27 Nov 2008 07:20:20 +0000 (15:20 +0800)]
ACPICA: Update version to 20081031

Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Lin Ming <ming.m.lin@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
17 years agodrivers/net/usb: use USB API functions rather than constants
Julia Lawall [Mon, 29 Dec 2008 00:21:07 +0000 (00:21 +0000)]
drivers/net/usb: use USB API functions rather than constants

This set of patches introduces calls to the following set of functions:

usb_endpoint_dir_in(epd)
usb_endpoint_dir_out(epd)
usb_endpoint_is_bulk_in(epd)
usb_endpoint_is_bulk_out(epd)
usb_endpoint_is_int_in(epd)
usb_endpoint_is_int_out(epd)
usb_endpoint_num(epd)
usb_endpoint_type(epd)
usb_endpoint_xfer_bulk(epd)
usb_endpoint_xfer_control(epd)
usb_endpoint_xfer_int(epd)
usb_endpoint_xfer_isoc(epd)

In some cases, introducing one of these functions is not possible, and it
just replaces an explicit integer value by one of the following constants:

USB_ENDPOINT_XFER_BULK
USB_ENDPOINT_XFER_CONTROL
USB_ENDPOINT_XFER_INT
USB_ENDPOINT_XFER_ISOC

In drivers/net/wireless/zd1211rw/zd_usb.c the code:

(endpoint->bEndpointAddress & USB_TYPE_MASK) == USB_DIR_OUT

is suspicious.  If it is intended to use USB_ENDPOINT_DIR_MASK rather than
USB_TYPE_MASK, then the whole conditional test could be converted to a call
to usb_endpoint_is_bulk_in.

An extract of the semantic patch that makes these changes is as follows:
(http://www.emn.fr/x-info/coccinelle/)

// <smpl>
@r1@ struct usb_endpoint_descriptor *epd; @@

- ((epd->bmAttributes & \(USB_ENDPOINT_XFERTYPE_MASK\|3\)) ==
- \(USB_ENDPOINT_XFER_CONTROL\|0\))
+ usb_endpoint_xfer_control(epd)

@r5@ struct usb_endpoint_descriptor *epd; @@

- ((epd->bEndpointAddress & \(USB_ENDPOINT_DIR_MASK\|0x80\)) ==
-  \(USB_DIR_IN\|0x80\))
+ usb_endpoint_dir_in(epd)

@inc@
@@

#include <linux/usb.h>

@depends on !inc && (r1||r5)@
@@

+ #include <linux/usb.h>
  #include <linux/usb/...>
// </smpl>

Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years agocls_cgroup: clean up Kconfig
Li Zefan [Sun, 28 Dec 2008 17:57:25 +0000 (17:57 +0000)]
cls_cgroup: clean up Kconfig

cls_cgroup can't be compiled as a module, since it's not supported by
cgroup.

Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years agocls_cgroup: clean up for cgroup part
Li Zefan [Tue, 30 Dec 2008 03:39:03 +0000 (19:39 -0800)]
cls_cgroup: clean up for cgroup part

- It's better to use container_of() instead of casting cgroup_subsys_state *
  to cgroup_cls_state *.
- Add helper function task_cls_state().
- Rename net_cls_state() to cgrp_cls_state().

Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years agocls_cgroup: fix an oops when removing a cgroup
Li Zefan [Sun, 28 Dec 2008 17:57:19 +0000 (17:57 +0000)]
cls_cgroup: fix an oops when removing a cgroup

When removing a cgroup, an oops was triggered immediately. The cause
is wrong kfree() in cgrp_destroy().

Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years agoACPICA: Enhance implicit return mechanism
Lin Ming [Thu, 13 Nov 2008 03:25:22 +0000 (11:25 +0800)]
ACPICA: Enhance implicit return mechanism

For Windows compatibility, return an implicit integer of value
zero for methods that have no executable code. A default implicit
value of zero is provided for methods. Lin Ming.

Signed-off-by: Lin Ming <ming.m.lin@intel.com>
Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
17 years agoACPICA: Consolidate method arg count validation code
Bob Moore [Thu, 13 Nov 2008 03:19:24 +0000 (11:19 +0800)]
ACPICA: Consolidate method arg count validation code

Merge the code that validates control method argument counts into
the predefined validation module. Eliminates possible multiple
warnings for incorrect counts.

Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Lin Ming <ming.m.lin@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
17 years agoACPICA: Add Buffer->String conversion for predefined methods
Bob Moore [Fri, 14 Nov 2008 00:44:39 +0000 (08:44 +0800)]
ACPICA: Add Buffer->String conversion for predefined methods

For predefined methods (such as _BIF), add automatic conversion for
objects that are required to be a String, but a Buffer was found
instead. This can happen when reading string battery data from
an operation region, because it used to be difficult to convert
the data from buffer to string from within the ASL. Linux BZ 11822.

http://bugzilla.kernel.org/show_bug.cgi?id=11822

Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Lin Ming <ming.m.lin@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
17 years agoACPICA: Allow multiple backslash prefix in namepaths
Lin Ming [Thu, 13 Nov 2008 02:54:39 +0000 (10:54 +0800)]
ACPICA: Allow multiple backslash prefix in namepaths

In a fully qualified namepath, allow multiple backslash prefixes.
This can happen because of the use of a double-backslash in strings
(since backslash is the escape character) causing confusion.
ACPICA BZ 739 Lin Ming.

http://www.acpica.org/bugzilla/show_bug.cgi?id=739

Signed-off-by: Lin Ming <ming.m.lin@intel.com>
Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
17 years agoACPICA: Fix to allow aliases within ASL namepaths
Bob Moore [Thu, 13 Nov 2008 02:51:49 +0000 (10:51 +0800)]
ACPICA: Fix to allow aliases within ASL namepaths

Fixes a problem where the use of an alias within a namepath
would result in a not found error or cause the compiler to fault.
Also now allows forward references from the Alias operator itself.
ACPICA BZ 738.

http://www.acpica.org/bugzilla/show_bug.cgi?id=738

Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Lin Ming <ming.m.lin@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
17 years agoACPICA: Remove references to obsolete ACPI_DUMP_APP
Bob Moore [Thu, 13 Nov 2008 02:48:00 +0000 (10:48 +0800)]
ACPICA: Remove references to obsolete ACPI_DUMP_APP

This define is no longer used.

Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Lin Ming <ming.m.lin@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
17 years agoACPICA: Add support to externally execute _OSI method
Bob Moore [Thu, 13 Nov 2008 01:45:35 +0000 (09:45 +0800)]
ACPICA: Add support to externally execute _OSI method

The current implemenation of _OSI within ACPICA only allows other
control methods to execute _OSI. This change allows the host
OS to execute _OSI via the AcpiEvaluateObject interface. _OSI
is a special method -- it does not exist in the AML code, it is
implemented within ACPICA.

Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Lin Ming <ming.m.lin@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
17 years agoACPICA: Reformat comments, no functional changes
Bob Moore [Wed, 12 Nov 2008 08:01:56 +0000 (16:01 +0800)]
ACPICA: Reformat comments, no functional changes

Reformat comments to use fewer lines.

Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Lin Ming <ming.m.lin@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
17 years agoACPICA: Add global pointer for FACS table to simplify FACS access
Bob Moore [Wed, 12 Nov 2008 07:34:52 +0000 (15:34 +0800)]
ACPICA: Add global pointer for FACS table to simplify FACS access

Use a global pointer instead of using AcpiGetTableByIndex for
each FACS access. This simplifies the code for the Global Lock
and the Firmware Waking Vector(s).

Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Lin Ming <ming.m.lin@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
17 years agoACPICA: Emit warning if two FACS or DSDT tables found in the FADT
Bob Moore [Wed, 12 Nov 2008 07:23:20 +0000 (15:23 +0800)]
ACPICA: Emit warning if two FACS or DSDT tables found in the FADT

Checks if there are two valid but different addresses for the
FACS and DSDT within the FADT (mismatch between the 32-bit and
64-bit fields.)

Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Lin Ming <ming.m.lin@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
17 years agoACPICA: Fix namestring for the SystemCMOS address space
Bob Moore [Wed, 12 Nov 2008 07:17:41 +0000 (15:17 +0800)]
ACPICA: Fix namestring for the SystemCMOS address space

This fixes the name of this address space, changing it from the
incorrect CMOS to the correct SystemCMOS.

Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Lin Ming <ming.m.lin@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
17 years agoACPICA: Update debug output for IndexField I/O
Bob Moore [Wed, 12 Nov 2008 07:16:49 +0000 (15:16 +0800)]
ACPICA: Update debug output for IndexField I/O

Split the "data register I/O" with more informative read and
write messages.

Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Lin Ming <ming.m.lin@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
17 years agoACPICA: Add a mechanism to escape infinite AML While() loops
Bob Moore [Wed, 12 Nov 2008 07:15:29 +0000 (15:15 +0800)]
ACPICA: Add a mechanism to escape infinite AML While() loops

Add a loop counter to force exit from AML While loops if the
count becomes too large. This can occur in poorly written AML
when the hardware does not respond within a while loop and the
loop does not implement a timeout. The maximum loop count is
configurable. A new exception code is returned when a loop is
broken, AE_AML_INFINITE_LOOP.  Bob Moore, Alexey Starikovskiy.

Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Lin Ming <ming.m.lin@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
17 years agoACPICA: Optimize execution of AML While loops
Bob Moore [Wed, 12 Nov 2008 07:02:00 +0000 (15:02 +0800)]
ACPICA: Optimize execution of AML While loops

Previously, a control state object was allocated and freed for
each execution of the loop. The optimization is to simply reuse
the control state for each iteration. This speeds up the raw loop
execution time by about 5%.

Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Lin Ming <ming.m.lin@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
17 years agoACPICA: Fix possible memory leak on error in parser
Lin Ming [Wed, 12 Nov 2008 06:56:59 +0000 (14:56 +0800)]
ACPICA: Fix possible memory leak on error in parser

Fixes a possible memory leak if an allocation failure happens in
the parse loop. Must terminate an executing control method.
Lin Ming, Bob Moore. ACPICA BZ 489.

http://www.acpica.org/bugzilla/show_bug.cgi?id=489

Signed-off-by: Lin Ming <ming.m.lin@intel.com>
Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
17 years agoACPICA: Update FACS waking vector interfaces
Bob Moore [Wed, 12 Nov 2008 06:54:05 +0000 (14:54 +0800)]
ACPICA: Update FACS waking vector interfaces

Split AcpiSetFirmwareWakingVector into two: one for the 32-bit
vector, another for the 64-bit vector. This is required because the
host OS must setup the wake much differently for each vector (real
vs. protected mode, etc.) and the interface should not be deciding
which vector to use.  Also eliminate the GetFirmwareWakingVector
interface, as it served no purpose (only the firmware reads the
vector, OS only writes the vector.)  ACPICA BZ 731.

http://www.acpica.org/bugzilla/show_bug.cgi?id=731

Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Lin Ming <ming.m.lin@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
17 years agoACPICA: Fix several warnings under gcc 4 compiler
Bob Moore [Wed, 12 Nov 2008 06:16:21 +0000 (14:16 +0800)]
ACPICA: Fix several warnings under gcc 4 compiler

New compiler is pickier than older versions.
Joerg Sonnenberger. From ACPICA BZ 732.

http://www.acpica.org/bugzilla/show_bug.cgi?id=732

Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Lin Ming <ming.m.lin@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
17 years agoEtherExpress16: fix printing timed out status
Roel Kluin [Tue, 30 Dec 2008 02:42:33 +0000 (18:42 -0800)]
EtherExpress16: fix printing timed out status

in drivers/net/eexpress.c:558, function unstick_cu()

while (!SCB_complete(rsst=scb_status(dev))) {
...
if (...)
printk(KERN_WARNING "%s: Reset timed out status %04x, retrying...\n",
                                                       dev->name,rsst);
}

but this will become

while (!((rsst = scb_status(dev) & 0x8000) != 0) ...

because of the macro:

#define SCB_complete(s) ((s&0x8000)!=0)

so rsst can only become either 0x8000 or 0, but in the latter case the
loop ends, I think the wrong timed out status is printed. This also
cleans up similar macros.

Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years agomlx4_en: Added "set_ringparam" Ethtool interface implementation
Yevgeny Petrilin [Tue, 30 Dec 2008 02:39:20 +0000 (18:39 -0800)]
mlx4_en: Added "set_ringparam" Ethtool interface implementation

Now using Ethtool to determine ring sizes, removed the module parameters
that controlled those values.
Modifying ring size requires restart of the interface.

Signed-off-by: Yevgeny Petrilin <yevgenyp@mellanox.co.il>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years agomlx4_en: Always allocate RX ring for each interrupt vector
Yevgeny Petrilin [Tue, 30 Dec 2008 02:38:54 +0000 (18:38 -0800)]
mlx4_en: Always allocate RX ring for each interrupt vector

Removed module parameter specifying number of RX rings

Signed-off-by: Yevgeny Petrilin <yevgenyp@mellanox.co.il>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years agomlx4_en: Verify number of RX rings doesn't exceed MAX_RX_RINGS
Yevgeny Petrilin [Tue, 30 Dec 2008 02:38:21 +0000 (18:38 -0800)]
mlx4_en: Verify number of RX rings doesn't exceed MAX_RX_RINGS

Required in cases were dev->caps.num_comp_vectors > MAX_RX_RINGS.
For current values this would happen on machines that have more
then 16 cores.

Signed-off-by: Yevgeny Petrilin <yevgenyp@mellanox.co.il>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years agoIPVS: Make "no destination available" message more consistent between schedulers
Simon Horman [Tue, 30 Dec 2008 02:37:36 +0000 (18:37 -0800)]
IPVS: Make "no destination available" message more consistent between schedulers

Acked-by: Graeme Fowler <graeme@graemef.net>
Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years agonet: KS8695: removed duplicated #include
Huang Weiyi [Tue, 30 Dec 2008 02:30:05 +0000 (18:30 -0800)]
net: KS8695: removed duplicated #include

Removed duplicated include in drivers/net/arm/ks8695net.c.

Signed-off-by: Huang Weiyi <weiyi.huang@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years agotun: Fix SIOCSIFHWADDR error.
Kusanagi Kouichi [Tue, 30 Dec 2008 02:23:28 +0000 (18:23 -0800)]
tun: Fix SIOCSIFHWADDR error.

Set proper operations.

Signed-off-by: Kusanagi Kouichi <slash@ma.neweb.ne.jp>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years agosmsc911x: compile fix re netif_rx signature changes
Alexey Dobriyan [Tue, 30 Dec 2008 02:22:43 +0000 (18:22 -0800)]
smsc911x: compile fix re netif_rx signature changes

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: Steve Glendinning <steve.glendinning@smsc.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years agonetns: foreach_netdev_safe is insufficient in default_device_exit
Eric W. Biederman [Tue, 30 Dec 2008 02:21:48 +0000 (18:21 -0800)]
netns: foreach_netdev_safe is insufficient in default_device_exit

During network namespace teardown we either move or delete
all of the network devices associated with a network namespace.
In the case of veth devices deleting one will also delete it's
pair device.  If both devices are in the same network namespace
then for_each_netdev_safe is insufficient as next may point
to the second veth device we have deleted.

To avoid problems I do what we do in __rtnl_kill_links and
restart the scan of the device list, after we have deleted
a device.

Currently dev_change_netnamespace does not appear to suffer from
this problem, but wireless devices are also paired and likely
should be moved between network namespaces together.  So I have
errored on the side of caution and restart the scan of the network
devices in that case as well.

Signed-off-by: Eric W. Biederman <ebiederm@aristanetworks.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years agonet: make xfrm_statistics_seq_show use generic snmp_fold_field
Rusty Russell [Tue, 30 Dec 2008 02:20:06 +0000 (18:20 -0800)]
net: make xfrm_statistics_seq_show use generic snmp_fold_field

No reason to roll our own here.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years agonet: Fix more NAPI interface netdev argument drop fallout.
Kamalesh Babulal [Tue, 30 Dec 2008 02:18:24 +0000 (18:18 -0800)]
net: Fix more NAPI interface netdev argument drop fallout.

I hit similar build failure due to the change in the netif_rx_reschedule()

drivers/net/ehea/ehea_main.c: In function 'ehea_poll':
drivers/net/ehea/ehea_main.c:844: warning: passing argument 1 of 'netif_rx_reschedule' from incompatible pointer type
drivers/net/ehea/ehea_main.c:844: error: too many arguments to function 'netif_rx_reschedule'
make[3]: *** [drivers/net/ehea/ehea_main.o] Error 1

greping through the sources for the changes missed out, we have

./drivers/net/arm/ixp4xx_eth.c:507: netif_rx_reschedule(dev, napi)) {
./drivers/net/arm/ep93xx_eth.c:310:             if (more && netif_rx_reschedule(dev, napi))
./drivers/net/wan/ixp4xx_hss.c:657: netif_rx_reschedule(dev, napi)) {

Signed-off-by: Kamalesh Babulal <kamalesh@linux.vnet.ibm.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years agolguest: struct device - replace bus_id with dev_name()
Mark McLoughlin [Wed, 10 Dec 2008 17:45:39 +0000 (17:45 +0000)]
lguest: struct device - replace bus_id with dev_name()

bus_id is gradually being removed, so use dev_name() instead.

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Cc: Kay Sievers <kay.sievers@vrfy.org>
Cc: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
17 years agolguest: move the initial guest page table creation code to the host
Matias Zabaljauregui [Mon, 29 Sep 2008 04:40:07 +0000 (01:40 -0300)]
lguest: move the initial guest page table creation code to the host

This patch moves the initial guest page table creation code to the host,
so the launcher keeps working with PAE enabled configs.

Signed-off-by: Matias Zabaljauregui <zabaljauregui@gmail.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
17 years agokvm-s390: implement config_changed for virtio on s390
Christian Borntraeger [Tue, 18 Nov 2008 21:44:13 +0000 (22:44 +0100)]
kvm-s390: implement config_changed for virtio on s390

This patch implements config_changed for the s390 virtio transport.

We use the least significant bit of the interrupt parameter field
to decide, if this interrupt should call the virtio virtqueue callback
or the config_changed callback.

This method is compatible with old host and guest code. Old 64 bit guests
will not check the bit and trigger a harmless additional vring_interrupt
call. Old host code will never set this bit, this is also safe.

This patch also takes care of a potential future 31 bit virtio transport
for s390. On 31 bit _LC_PFAULT_INTPARM and __LC_EXT_PARAMS are identical.
We exploit the alignment of the token and fold the change bit into the
lsb of the token itself.

Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
17 years agovirtio_console: support console resizing
Christian Borntraeger [Tue, 25 Nov 2008 12:36:26 +0000 (13:36 +0100)]
virtio_console: support console resizing

this patch uses the new hvc callback hvc_resize to set the window size
which allows to change the tty size of hvc_console via a hvc_resize
function.

I have added a new feature bit VIRTIO_CONSOLE_F_SIZE. The driver will
change the window size on tty open and via the config_changed callback
of the transport. Currently lguest and kvm_s390 have not implemented this
callback, but the callback can be implemented at a later point in time.

Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
17 years agovirtio: add PCI device release() function
Mark McLoughlin [Wed, 10 Dec 2008 17:45:34 +0000 (17:45 +0000)]
virtio: add PCI device release() function

Add a release() function for virtio_pci devices so as to avoid:

  Device 'virtio0' does not have a release() function, it is broken and must be fixed

Move the code to free the resources associated with the device
from virtio_pci_remove() into this new function. virtio_pci_remove()
now merely unregisters the device which should cause the final
ref to be dropped and virtio_pci_release_dev() to be called.

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Reported-by: Michael Tokarev <mjt@tls.msk.ru>
Cc: Anthony Liguori <aliguori@us.ibm.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
17 years agovirtio_blk: fix type warning
Randy Dunlap [Wed, 26 Nov 2008 21:15:50 +0000 (13:15 -0800)]
virtio_blk: fix type warning

Fix parameter type warning:

linux-next-20081126/drivers/block/virtio_blk.c:307: warning: large integer implicitly truncated to unsigned type

Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
cc: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
17 years agovirtio: block: dynamic maximum segments
Rusty Russell [Tue, 30 Dec 2008 15:26:05 +0000 (09:26 -0600)]
virtio: block: dynamic maximum segments

Enhance the driver to handle whatever maximum segment number the host
tells us to handle.  Do to this, we need to allocate the scatterlist
dynamically.

We set max_phys_segments and max_hw_segments to the same value (1 if
the host doesn't tell us, since that's safest and all known hosts do
tell us).

Note that kmalloc'ing the structure for large sg_elems might be
problematic: the fix for this is sg_table, but that requires more
work.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
17 years agovirtio: set max_segment_size and max_sectors to infinite.
Rusty Russell [Tue, 30 Dec 2008 15:26:04 +0000 (09:26 -0600)]
virtio: set max_segment_size and max_sectors to infinite.

Setting max_segment_size allows more than 64k per sg element, unless
the host specified a limit.  Setting max_sectors indicates that our
max_hw_segments is the only limit.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
17 years agovirtio: avoid implicit use of Linux page size in balloon interface
Hollis Blanchard [Thu, 13 Nov 2008 21:48:33 +0000 (15:48 -0600)]
virtio: avoid implicit use of Linux page size in balloon interface

Make the balloon interface always use 4K pages, and convert Linux pfns if
necessary. This patch assumes that Linux's PAGE_SHIFT will never be less than
12.

Signed-off-by: Hollis Blanchard <hollisb@us.ibm.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (modified)
17 years agovirtio: hand virtio ring alignment as argument to vring_new_virtqueue
Rusty Russell [Tue, 30 Dec 2008 15:26:03 +0000 (09:26 -0600)]
virtio: hand virtio ring alignment as argument to vring_new_virtqueue

This allows each virtio user to hand in the alignment appropriate to
their virtio_ring structures.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Acked-by: Christian Borntraeger <borntraeger@de.ibm.com>
17 years agovirtio: use KVM_S390_VIRTIO_RING_ALIGN instead of relying on pagesize
Rusty Russell [Tue, 30 Dec 2008 15:26:02 +0000 (09:26 -0600)]
virtio: use KVM_S390_VIRTIO_RING_ALIGN instead of relying on pagesize

This doesn't really matter, since s390 pagesize is 4k anyway.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Acked-by: Christian Borntraeger <borntraeger@de.ibm.com>
17 years agovirtio: use LGUEST_VRING_ALIGN instead of relying on pagesize
Rusty Russell [Tue, 30 Dec 2008 15:25:58 +0000 (09:25 -0600)]
virtio: use LGUEST_VRING_ALIGN instead of relying on pagesize

This doesn't really matter, since lguest is i386 only at the moment,
but we could actually choose a different value.  (lguest doesn't have
a guarenteed ABI).

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
17 years agovirtio: Don't use PAGE_SIZE for vring alignment in virtio_pci.
Rusty Russell [Tue, 30 Dec 2008 15:25:57 +0000 (09:25 -0600)]
virtio: Don't use PAGE_SIZE for vring alignment in virtio_pci.

That doesn't work for non-4k guests which are now appearing.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
17 years agovirtio: rename 'pagesize' arg to vring_init/vring_size
Rusty Russell [Tue, 30 Dec 2008 15:25:57 +0000 (09:25 -0600)]
virtio: rename 'pagesize' arg to vring_init/vring_size

It's really the alignment desired for consumer/producer separation;
historically this x86 pagesize, but with PowerPC it'll still be x86
pagesize.  And in theory lguest could choose a different value.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
17 years agovirtio: Don't use PAGE_SIZE in virtio_pci.c
Rusty Russell [Tue, 30 Dec 2008 15:25:56 +0000 (09:25 -0600)]
virtio: Don't use PAGE_SIZE in virtio_pci.c

The virtio PCI devices don't depend on the guest page size.  This matters
now PowerPC virtio is gaining ground (they like 64k pages).

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
17 years agovirtio: struct device - replace bus_id with dev_name(), dev_set_name()
Kay Sievers [Tue, 30 Dec 2008 15:25:56 +0000 (09:25 -0600)]
virtio: struct device - replace bus_id with dev_name(), dev_set_name()

This patch is part of a larger patch series which will remove
the "char bus_id[20]" name string from struct device. The device
name is managed in the kobject anyway, and without any size
limitation, and just needlessly copied into "struct device".

To set and read the device name dev_name(dev) and dev_set_name(dev)
must be used. If your code uses static kobjects, which it shouldn't
do, "const char *init_name" can be used to statically provide the
name the registered device should have. At registration time, the
init_name field is cleared, to enforce the use of dev_name(dev) to
access the device name at a later time.

We need to get rid of all occurrences of bus_id in the entire tree
to be able to enable the new interface. Please apply this patch,
and possibly convert any remaining remaining occurrences of bus_id.

We want to submit a patch to -next, which will remove bus_id from
"struct device", to find the remaining pieces to convert, and finally
switch over to the new api, which will remove the 20 bytes array
and does no longer have a size limitation.

Acked-by: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: Kay Sievers <kay.sievers@vrfy.org>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
17 years agovirtio-pci queue allocation not page-aligned
Hollis Blanchard [Tue, 2 Dec 2008 22:24:40 +0000 (16:24 -0600)]
virtio-pci queue allocation not page-aligned

kzalloc() does not guarantee page alignment, and in fact this broke when
I enabled CONFIG_SLUB_DEBUG_ON.

(Thanks to Anthony Liguori for spotting the missing kfree sub)

Signed-off-by: Hollis Blanchard <hollisb@us.ibm.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (fixed kfree)
Tested-by: Anthony Liguori <aliguori@us.ibm.com>
17 years agocpumask: Use nr_cpu_ids in seq_cpumask
Rusty Russell [Mon, 29 Dec 2008 22:35:19 +0000 (09:05 +1030)]
cpumask: Use nr_cpu_ids in seq_cpumask

Impact: cleanup, futureproof

nr_cpu_ids is the (badly named) runtime limit on possible CPU numbers;
ie. the variable version of NR_CPUS.

With the new cpumask operators, only bits less than this are defined.
So we should use it everywhere, rather than NR_CPUS.  Eventually this
will make it possible to allocate cpumasks of the minimal length at runtime.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Mike Travis <travis@sgi.com>
Acked-by: Ingo Molnar <mingo@elte.hu>
17 years agocpumask: use new cpumask API in drivers/infiniband/hw/ipath
Rusty Russell [Mon, 29 Dec 2008 22:35:18 +0000 (09:05 +1030)]
cpumask: use new cpumask API in drivers/infiniband/hw/ipath

Impact: cleanup

We're moving from handing around cpumask_t's to handing around struct
cpumask *'s.  cpus_*, cpumask_t and cpu_*_map are deprecated: convert
to cpumask_*, cpu_*_mask.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Cc: Ralph Campbell <infinipath@qlogic.com>
17 years agocpumask: use new cpumask API in drivers/infiniband/hw/ehca
Rusty Russell [Mon, 29 Dec 2008 22:35:18 +0000 (09:05 +1030)]
cpumask: use new cpumask API in drivers/infiniband/hw/ehca

Impact: cleanup

We're moving from handing around cpumask_t's to handing around struct
cpumask *'s.  cpus_*, cpumask_t and cpu_*_map are deprecated: convert
to cpumask_*, cpu_*_mask.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Acked-by: Hoang-Nam Nguyen <hnguyen@de.ibm.com>
Tested-by: Hoang-Nam Nguyen <hnguyen@de.ibm.com>
Cc: Christoph Raisch <raisch@de.ibm.com>
17 years agocpumask: use for_each_online_cpu() in drivers/infiniband/hw/ehca/ehca_irq.c
Rusty Russell [Mon, 29 Dec 2008 22:35:17 +0000 (09:05 +1030)]
cpumask: use for_each_online_cpu() in drivers/infiniband/hw/ehca/ehca_irq.c

Impact: cleanup

In future, accessing cpu numbers beyond nr_cpu_ids (the runtime limit)
will be undefined.  We can avoid future problems by using
for_each_online_cpu() here.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Acked-by: Hoang-Nam Nguyen <hnguyen@de.ibm.com>
Tested-by: Hoang-Nam Nguyen <hnguyen@de.ibm.com>
Cc: Christoph Raisch <raisch@de.ibm.com>
17 years agocpumask: arch_send_call_function_ipi_mask: core
Rusty Russell [Mon, 29 Dec 2008 22:35:17 +0000 (09:05 +1030)]
cpumask: arch_send_call_function_ipi_mask: core

Impact: new API to reduce stack usage

We're weaning the core code off handing cpumask's around on-stack.
This introduces arch_send_call_function_ipi_mask().

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
17 years agocpumask: smp_call_function_many()
Rusty Russell [Mon, 29 Dec 2008 22:35:16 +0000 (09:05 +1030)]
cpumask: smp_call_function_many()

Impact: Implementation change to remove cpumask_t from stack.

Actually change smp_call_function_mask() to smp_call_function_many().
We avoid cpumasks on the stack in this version.

(S390 has its own version, but that's going away apparently).

We have to do some dancing to figure out if 0 or 1 other cpus are in
the mask supplied and the online mask without allocating a tmp
cpumask.  It's still fairly cheap.

We allocate the cpumask at the end of the call_function_data
structure: if allocation fails we fallback to smp_call_function_single
rather than using the baroque quiescing code (which needs a cpumask on
stack).

(Thanks to Hiroshi Shimamoto for spotting several bugs in previous versions!)

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Mike Travis <travis@sgi.com>
Cc: Hiroshi Shimamoto <h-shimamoto@ct.jp.nec.com>
Cc: npiggin@suse.de
Cc: axboe@kernel.dk
17 years agocpumask: make set_cpu_*/init_cpu_* out-of-line
Rusty Russell [Mon, 29 Dec 2008 22:35:16 +0000 (09:05 +1030)]
cpumask: make set_cpu_*/init_cpu_* out-of-line

They're only for use in boot/cpu hotplug code anyway, and this avoids
the use of deprecated cpu_*_map.

Stephen Rothwell points out that gcc 4.2.4 (on powerpc at least)
didn't like the cast away of const anyway:

  include/linux/cpumask.h: In function 'set_cpu_possible':
  include/linux/cpumask.h:1052: warning: passing argument 2 of 'cpumask_set_cpu' discards qualifiers from pointer target type

So this kills two birds with one stone.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
17 years agocpumask: make cpumask.h eat its own dogfood.
Rusty Russell [Mon, 29 Dec 2008 22:35:15 +0000 (09:05 +1030)]
cpumask: make cpumask.h eat its own dogfood.

Changes:
1) cpumask_t to struct cpumask,
2) cpus_weight_nr to cpumask_weight,
3) cpu_isset to cpumask_test_cpu,
4) ->bits to cpumask_bits()
5) cpu_*_map to cpu_*_mask.
6) for_each_cpu_mask_nr to for_each_cpu

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
17 years agocpumask: switch over to cpu_online/possible/active/present_mask: core
Rusty Russell [Mon, 29 Dec 2008 22:35:14 +0000 (09:05 +1030)]
cpumask: switch over to cpu_online/possible/active/present_mask: core

Impact: cleanup

This implements the obsolescent cpu_online_map in terms of
cpu_online_mask, rather than the other way around.  Same for the other
maps.

The documentation comments are also updated to refer to _mask rather
than _map.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Mike Travis <travis@sgi.com>
17 years agobitmap: fix seq_bitmap and seq_cpumask to take const pointer
Rusty Russell [Mon, 29 Dec 2008 22:35:14 +0000 (09:05 +1030)]
bitmap: fix seq_bitmap and seq_cpumask to take const pointer

Impact: cleanup

seq_bitmap just calls bitmap_scnprintf on the bits: that arg can be const.
Similarly, seq_cpumask just calls seq_bitmap.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
17 years agobitmap: test for constant as well as small size for inline versions
Rusty Russell [Mon, 29 Dec 2008 22:35:13 +0000 (09:05 +1030)]
bitmap: test for constant as well as small size for inline versions

Impact: reduce text size

bitmap_zero et al have a fastpath for nbits <= BITS_PER_LONG, but this
should really only apply where the nbits is known at compile time.

This only saves about 1200 bytes on an allyesconfig kernel, but with
cpumasks going variable that number will increase.

   text data bss dec hex filename
35327852        5035607 6782976 47146435        2cf65c3 vmlinux-before
35326640        5035607 6782976 47145223        2cf6107 vmlinux-after

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>