openwrt/staging/blogic.git
17 years ago[PATCH] clocksource init adjustments (fix bug #7426)
john stultz [Mon, 5 Mar 2007 08:30:50 +0000 (00:30 -0800)]
[PATCH] clocksource init adjustments (fix bug #7426)

This patch resolves the issue found here:
http://bugme.osdl.org/show_bug.cgi?id=7426

The basic summary is:
Currently we register most of i386/x86_64 clocksources at module_init
time. Then we enable clocksource selection at late_initcall time. This
causes some problems for drivers that use gettimeofday for init
calibration routines (specifically the es1968 driver in this case),
where durring module_init, the only clocksource available is the low-res
jiffies clocksource. This may cause slight calibration errors, due to
the small sampling time used.

It should be noted that drivers that require fine grained time may not
function on architectures that do not have better then jiffies
resolution timekeeping (there are a few). However, this does not
discount the reasonable need for such fine-grained timekeeping at init
time.

Thus the solution here is to register clocksources earlier (ideally when
the hardware is being initialized), and then we enable clocksource
selection at fs_initcall (before device_initcall).

This patch should probably get some testing time in -mm, since
clocksource selection is one of the most important issues for correct
timekeeping, and I've only been able to test this on a few of my own
boxes.

Signed-off-by: John Stultz <johnstul@us.ibm.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: "David S. Miller" <davem@davemloft.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years ago[PATCH] x86_64: remove unusued 'flags' variable
David Rientjes [Mon, 5 Mar 2007 08:30:49 +0000 (00:30 -0800)]
[PATCH] x86_64: remove unusued 'flags' variable

Removes unused 'flags' variable from setup_IO_APIC_irq().

Signed-off-by: David Rientjes <rientjes@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years ago[PATCH] ipmi: check, if default ports are accessible on PPC
Christian Krafft [Mon, 5 Mar 2007 08:30:48 +0000 (00:30 -0800)]
[PATCH] ipmi: check, if default ports are accessible on PPC

ipmi_si_intf tries to access default ports, if no device could be found
elsewhere.  On PPC we have a function to check, if these legacy IO ports
are accessible.  This patch adds a check for these ports on PPC.  This
patch fixes a breakage of IPMI module on PPC machines without a BMC.

Signed-off-by: Christian Krafft <krafft@de.ibm.com>
Acked-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Corey Minyard <minyard@acm.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years ago[PATCH] ecryptfs: handle AOP_TRUNCATED_PAGE better
Dmitriy Monakhov [Mon, 5 Mar 2007 08:30:47 +0000 (00:30 -0800)]
[PATCH] ecryptfs: handle AOP_TRUNCATED_PAGE better

- In fact we don't have to fail if AOP_TRUNCATED_PAGE was returned from
  prepare_write or commit_write. It is beter to retry attempt where it
  is possible.

- Rearange ecryptfs_get_lower_page() error handling logic, make it more clean.

Signed-off-by: Dmitriy Monakhov <dmonakhov@openvz.org>
Acked-by: Michael Halcrow <mhalcrow@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years ago[PATCH] ecryptfs: lower root result must be adirectory
Dmitriy Monakhov [Mon, 5 Mar 2007 08:30:46 +0000 (00:30 -0800)]
[PATCH] ecryptfs: lower root result must be adirectory

- Currently after path_lookup succeed we dot't have any guarantie what
  it is DIR. This must be explicitly demanded.
- path_lookup can't return negative dentry, So inode check is useless.

Signed-off-by: Dmitriy Monakhov <dmonakhov@openvz.org>
Acked-by: Michael Halcrow <mhalcrow@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years ago[PATCH] fix "NMI appears to be stuck"
Thomas Gleixner [Mon, 5 Mar 2007 08:30:45 +0000 (00:30 -0800)]
[PATCH] fix "NMI appears to be stuck"

  Testing NMI watchdog ... CPU#0: NMI appears to be stuck (54->54)!
  CPU#1: NMI appears to be stuck (0->0)!

Keep the PIT/HPET alive when nmi_watchdog = 1 is given on the command
line.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Andi Kleen <ak@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years ago[PATCH] md: fix for raid6 reshape
NeilBrown [Mon, 5 Mar 2007 08:30:44 +0000 (00:30 -0800)]
[PATCH] md: fix for raid6 reshape

Recent patch for raid6 reshape had a change missing that showed up in
subsequent review.

Many places in the raid5 code used "conf->raid_disks-1" to mean "number of
data disks".  With raid6 that had to be changed to "conf->raid_disk -
conf->max_degraded" or similar.  One place was missed.

This bug means that if a raid6 reshape were aborted in the middle the
recorded position would be wrong.  On restart it would either fail (as the
position wasn't on an appropriate boundary) or would leave a section of the
array unreshaped, causing data corruption.

Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years ago[PATCH] vmi: smp fixes
Zachary Amsden [Mon, 5 Mar 2007 08:30:43 +0000 (00:30 -0800)]
[PATCH] vmi: smp fixes

Critical fixes for SMP.

Fix a couple functions which needed to be __devinit and fix a bogus parameter
to AP startup that just so happened to work because the low virtual mapping of
memory was still established.

Signed-off-by: Zachary Amsden <zach@vmware.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years ago[PATCH] vmi: apic ops
Zachary Amsden [Mon, 5 Mar 2007 08:30:41 +0000 (00:30 -0800)]
[PATCH] vmi: apic ops

Use para_fill instead of directly setting the APIC ops to the result of the
vmi_get_function call - this allows one to implement a VMI ROM without
implementing APIC functions, just using the native APIC functions.

While doing this, I realized that there is a lot more cleanup that should have
been done.  Basically, we should never assume that the ROM implements a
specific set of functions, and always allow fallback to the native
implementation.

This is critical for future compatibility.

Signed-off-by: Anthony Liguori <anthony@codemonkey.ws>
Signed-off-by: Zachary Amsden <zach@vmware.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years ago[PATCH] vmi: fix nohz compile
Zachary Amsden [Mon, 5 Mar 2007 08:30:41 +0000 (00:30 -0800)]
[PATCH] vmi: fix nohz compile

More goo from hrtimers integration.  We do compile and run properly with NO_HZ
enabled.  There was a period when we didn't because of a missing export, but
that was since fixed.

And with the clocksource code now firmly in place, we can get rid of code that
fixes up the wallclock, since this is done in the common infrastructure.  This
actually fixes a timer bug as well, that was caused by do_settimeofday no
longer being callable with interrupts disabled due to the use of
on_each_cpu().

Signed-off-by: Zachary Amsden <zach@vmware.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years ago[PATCH] vmi: pit override
Zachary Amsden [Mon, 5 Mar 2007 08:30:39 +0000 (00:30 -0800)]
[PATCH] vmi: pit override

The time_init_hook in paravirt-ops no longer functions in the correct manner
after the integration of the hrtimers code.  The problem is that now the call
path for time initialization is:

  time_init :
       late_time_init = hpet_time_init;

  late_time_init -> hpet_time_init:
       setup_pit_timer (BAD)
       do_time_init --> (via paravirt.h)
          time_init_hook --> (via arch_hooks.h)
              time_init_hook (in SUBARCH/setup.c)

If this isn't confusing enough, the paravirt case goes through an indirect
function pointer in the paravirt-ops table.  The problem is, by the time the
paravirt hook is called, the pit timer is already enabled.

But paravirt guests have their own timer, and don't want to use the PIT.
Rather than intensify the struggle for power going on here, just make it all
nice and simple and just unconditionally do all timer setup in the
late_time_init hook.  This also has the advantage of enabling timers in the
same place in all code paths, so everyone has the same bugs and we don't have
outliers who break other code because they turn on timer too early or too
late.

So the paravirt-ops time init function is now by default hpet_time_init, which
is the time init function used for native hardware.  Paravirt guests have the
chance to override this when they setup the paravirt-ops table, and should
need no change.

Signed-off-by: Zachary Amsden <zach@vmware.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years ago[PATCH] vmi: paravirt drop udelay op
Zachary Amsden [Mon, 5 Mar 2007 08:30:38 +0000 (00:30 -0800)]
[PATCH] vmi: paravirt drop udelay op

Not respecting udelay causes problems with any virtual hardware that is passed
through to real hardware.  This can be noticed by any device that interacts
with the real world in real time - like AP startup, which takes real time.  Or
keyboard LEDs, which should blink in real-time.  Or floppy drives, but only
when passed through to a real floppy controller on OSes which can't
sufficiently buffer the floppy commands to emulate a zero latency floppy.  Or
IDE drives, when connecting to a physical CDROM.

This was mostly a hack to get the kernel to boot faster, but it introduced a
number of misvirtualization bugs, and Alan and Pavel argued pretty strongly
against it.  We were the only client, and now want to clean up this cruft.

Signed-off-by: Zachary Amsden <zach@vmware.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years ago[PATCH] vmi: fix highpte
Zachary Amsden [Mon, 5 Mar 2007 08:30:37 +0000 (00:30 -0800)]
[PATCH] vmi: fix highpte

Provide a PT map hook for HIGHPTE kernels to designate where they are mapping
page tables.  This information is required so the physical address of PTE
updates can be determined; otherwise, the mm layer would have to carry the
physical address all the way to each PTE modification callsite, which is even
more hideous that the macros required to provide the proper hooks.

So lets not mess up arch neutral code to achieve this, but keep the horror in
an #ifdef HIGHPTE in include/asm-i386/pgtable.h.  I had to use macros here
because some types are not yet defined in all the include paths for this
header.

This patch is absolutely required for HIGHPTE kernels to operate properly with
VMI.

Signed-off-by: Zachary Amsden <zach@vmware.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years ago[PATCH] vmi: cpu cycles fix
Zachary Amsden [Mon, 5 Mar 2007 08:30:36 +0000 (00:30 -0800)]
[PATCH] vmi: cpu cycles fix

In order to share the common code in tsc.c which does CPU Khz calibration, we
need to make an accurate value of CPU speed available to the tsc.c code.  This
value loses a lot of precision in a VM because of the timing differences with
real hardware, but we need it to be as precise as possible so the guest can
make accurate time calculations with the cycle counters.

Signed-off-by: Zachary Amsden <zach@vmware.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years ago[PATCH] vmi: sched clock paravirt op fix
Zachary Amsden [Mon, 5 Mar 2007 08:30:35 +0000 (00:30 -0800)]
[PATCH] vmi: sched clock paravirt op fix

The custom_sched_clock hook is broken.  The result from sched_clock needs to
be in nanoseconds, not in CPU cycles.  The TSC is insufficient for this
purpose, because TSC is poorly defined in a virtual environment, and mostly
represents real world time instead of scheduled process time (which can be
interrupted without notice when a virtual machine is descheduled).

To make the scheduler consistent, we must expose a different nature of time,
that is scheduled time.  So deprecate this custom_sched_clock hack and turn it
into a paravirt-op, as it should have been all along.  This allows the tsc.c
code which converts cycles to nanoseconds to be shared by all paravirt-ops
backends.

It is unfortunate to add a new paravirt-op, but this is a very distinct
abstraction which is clearly different for all virtual machine
implementations, and it gets rid of an ugly indirect function which I
ashamedly admit I hacked in to try to get this to work earlier, and then even
got in the wrong units.

Signed-off-by: Zachary Amsden <zach@vmware.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years ago[PATCH] vmi: timer fixes round two
Zachary Amsden [Mon, 5 Mar 2007 08:30:34 +0000 (00:30 -0800)]
[PATCH] vmi: timer fixes round two

Critical bugfixes for the VMI-Timer code.

1) Do not setup a one shot alarm if we are keeping the periodic alarm
   armed.  Additionally, since the periodic alarm can be run at a lower rate
   than HZ, let's fixup the guard to the no-idle-hz mode appropriately.  This
   fixes the bug where the no-idle-hz mode might have a higher interrupt rate
   than the non-idle case.

2) The interrupt handler can no longer adjust xtime due to nested lock
   acquisition.  Drop this.  We don't need to check for wallclock time at
   every tick, it can be done in userspace instead.

3) Add a bypass to disable noidle operation.  This is useful as a last
   minute workaround, or testing measure.

4) The code to skip the IO_APIC timer testing (no_timer_check) should be
   conditional on IO_APIC, not SMP, since UP kernels can have this configured
   in as well.

Signed-off-by: Dan Hecht <dhecht@vmware.com>
Signed-off-by: Zachary Amsden <zach@vmware.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years ago[PATCH] Page migration: Fix vma flag checking
Christoph Lameter [Mon, 5 Mar 2007 08:30:33 +0000 (00:30 -0800)]
[PATCH] Page migration: Fix vma flag checking

Currently we do not check for vma flags if sys_move_pages is called to move
individual pages.  If sys_migrate_pages is called to move pages then we
check for vm_flags that indicate a non migratable vma but that still
includes VM_LOCKED and we can migrate mlocked pages.

Extract the vma_migratable check from mm/mempolicy.c, fix it and put it
into migrate.h so that is can be used from both locations.

Problem was spotted by Lee Schermerhorn

Signed-off-by: Christoph Lameter <clameter@sgi.com>
Signed-off-by: Lee Schermerhorn <lee.schermerhorn@hp.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years ago[PATCH] fb: sm501fb off-by-1 sysfs store
Paul Mundt [Mon, 5 Mar 2007 08:30:31 +0000 (00:30 -0800)]
[PATCH] fb: sm501fb off-by-1 sysfs store

Currently sm501fb_crtsrc_store() won't allow the routing to be changed via
echos from userspace in to the sysfs file.  The reason for this is that the
strnicmp() for both heads uses a sizeof() for the string length, which ends
up being strlen() + 1 (\0 in the normal case, but the echo gives a newline,
which is where the issue occurs), this then causes a mismatch and
subsequently bails with the -EINVAL.

In addition to this, the hardcoded lengths were then used for the store
length that was returned, which ended up being erroneous and resulting in a
write error.  There's also no point in returning anything but the full
length since it will -EINVAL out on a mismatch well before then anyways.

sizeof("string") is great for making sure you have space in your buffer,
but rather less so for string comparisons :-)

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Acked-by: Ben Dooks <ben-linux@fluff.org>
Cc: "Antonino A. Daplas" <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years ago[PATCH] sched: remove SMT nice
Con Kolivas [Mon, 5 Mar 2007 08:30:29 +0000 (00:30 -0800)]
[PATCH] sched: remove SMT nice

Remove the SMT-nice feature which idles sibling cpus on SMT cpus to
facilitiate nice working properly where cpu power is shared.  The idling of
cpus in the presence of runnable tasks is considered too fragile, easy to
break with outside code, and the complexity of managing this system if an
architecture comes along with many logical cores sharing cpu power will be
unworkable.

Remove the associated per_cpu_gain variable in sched_domains used only by
this code.

Also:

  The reason is that with dynticks enabled, this code breaks without yet
  further tweaks so dynticks brought on the rapid demise of this code.  So
  either we tweak this code or kill it off entirely.  It was Ingo's preference
  to kill it off.  Either way this needs to happen for 2.6.21 since dynticks
  has gone in.

Signed-off-by: Con Kolivas <kernel@kolivas.org>
Acked-by: Ingo Molnar <mingo@elte.hu>
Cc: Nick Piggin <nickpiggin@yahoo.com.au>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years ago[PATCH] shmem and simple const super_operations
Hugh Dickins [Mon, 5 Mar 2007 08:30:28 +0000 (00:30 -0800)]
[PATCH] shmem and simple const super_operations

shmem's super_operations were missed from the recent const-ification;
and simple_fill_super()'s, which can share with get_sb_pseudo()'s.

Signed-off-by: Hugh Dickins <hugh@veritas.com>
Acked-by: Josef 'Jeff' Sipek <jsipek@cs.sunysb.edu>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years ago[PATCH] schedule wext/rtnl for removal
Johannes Berg [Mon, 5 Mar 2007 08:30:27 +0000 (00:30 -0800)]
[PATCH] schedule wext/rtnl for removal

Since wext is being replaced as fast as we can (it'll probably stick around
for legacy drivers though) and the wext/netlink stuff was never really
used, this schedules it for removal.

The removal schedule is tight but there are no users of the code, the main
user of the wext user interface are the wireless-tools, they only have an
alpha version using the netlink interface and even that is incomplete.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Cc: Jeff Garzik <jeff@garzik.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years ago[PATCH] dz: remove struct pt_regs references
Maciej W. Rozycki [Mon, 5 Mar 2007 08:30:26 +0000 (00:30 -0800)]
[PATCH] dz: remove struct pt_regs references

Remove remaining references to saved registers now that
uart_handle_sysrq_char() does not want them.

Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years ago[PATCH] gpio_keys driver shouldn't be ARM-specific
David Brownell [Mon, 5 Mar 2007 08:30:22 +0000 (00:30 -0800)]
[PATCH] gpio_keys driver shouldn't be ARM-specific

The gpio_keys driver is wrongly ARM-specific; it can't build on
other platforms with GPIO suport.  This fixes that problem.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Cc: Dmitry Torokhov <dtor@mail.ru>
Cc: pHilipp Zabel <philipp.zabel@gmail.com>
Cc: Haavard Skinnemoen <hskinnemoen@atmel.com>
Cc: Russell King <rmk@arm.linux.org.uk>
Cc: Richard Purdie <rpurdie@rpsys.net>
Cc: Ben Nizette <ben.nizette@iinet.net.au>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years ago[PATCH] add CONFIG_GENERIC_GPIO
David Brownell [Mon, 5 Mar 2007 08:30:18 +0000 (00:30 -0800)]
[PATCH] add CONFIG_GENERIC_GPIO

Most drivers using GPIOs already know they are running on a system that
supports the generic GPIO calls, because of other platform dependencies.
But the generic GPIO-based LED and input button drivers can't know that.

So this patch adds a Kconfig hook, GENERIC_GPIO, to mark the platforms
where <asm/gpio.h> will do the right thing.  Currently that's a bunch of
ARMs, and AVR32; more are on the way.

It also fixes a dependency bug for the gpio button input driver; it was
wrong to start with, now it covers all platforms with GENERIC_GPIO.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Acked-by: Richard Purdie <rpurdie@rpsys.net>
Cc: Arnaud Patard <arnaud.patard@rtp-net.org>
Cc: <raph@8d.com>
Cc: <msvoboda@ra.rockwell.com>
Cc: pHilipp Zabel <philipp.zabel@gmail.com>
Cc: Haavard Skinnemoen <hskinnemoen@atmel.com>
Cc: Dmitry Torokhov <dtor@mail.ru>
Cc: Russell King <rmk@arm.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years ago[PATCH] Fix soft lockup with iSeries viocd driver
Tony Breeds [Mon, 5 Mar 2007 08:30:14 +0000 (00:30 -0800)]
[PATCH] Fix soft lockup with iSeries viocd driver

Fix soft lockup with iSeries viocd driver, caused by eventually calling
end_that_request_first() with nr_bytes 0.

Some versions of hald do an SG_IO ioctl on the viocd device which becomes a
request with hard_nr_sectors and hard_cur_sectors set to zero.  Passing zero
as the number of sectors to end_request() (which calls
end_that_request_first()) causes an infinite loop when the bio is being freed.

This patch makes sure that the zero is never passed.  It only requires some
number larger the the request size the terminate the loop.

The lockup is triggered by hald, interrogating the device.

Signed-off-by: Tony Breeds <tony@bakeyournoodle.com>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Cc: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years ago[PATCH] parport is an orphan
David Brownell [Mon, 5 Mar 2007 08:30:13 +0000 (00:30 -0800)]
[PATCH] parport is an orphan

The writing on the wall seem to be that the parport stack is orphaned,
rather than maintained by four folk ...  and having a webpage that says the
latest patches are based on a 2.5 kernel.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Acked-by: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years ago[PATCH] ecryptfs: check xattr operation support fix
Dmitriy Monakhov [Mon, 5 Mar 2007 08:30:12 +0000 (00:30 -0800)]
[PATCH] ecryptfs: check xattr operation support fix

  - ecryptfs_write_inode_size_to_metadata() error code was ignored.
  - i_op->setxattr() must be supported by lower fs because used below.

Signed-off-by: Monakhov Dmitriy <dmonakhov@openvz.org>
Acked-by: Michael Halcrow <mhalcrow@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years ago[PATCH] msi: support masking msi irqs without a mask bit
Eric W. Biederman [Mon, 5 Mar 2007 08:30:11 +0000 (00:30 -0800)]
[PATCH] msi: support masking msi irqs without a mask bit

For devices that do not support msi-x we only support 1 interrupt.  Therefore
we can disable that one interrupt by disabling the msi capability itself.  If
we leave the intx interrupts disabled while we have the msi capability
disabled no interrupts should be delivered from that device.

Devices with just the minimal msi support (and thus hitting this code path)
include things like the intel e1000 nic, so it looks like is going to be a
fairly common case and thus important to get right.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Cc: Michael Ellerman <michael@ellerman.id.au>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Greg KH <greg@kroah.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years ago[PATCH] msi: fix up the msi enable/disable logic
Eric W. Biederman [Mon, 5 Mar 2007 08:30:10 +0000 (00:30 -0800)]
[PATCH] msi: fix up the msi enable/disable logic

enable/disable_msi_mode have several side effects which keeps them from being
generally useful.  So this patch replaces them with with two much more
targeted functions: msi_set_enable and msix_set_enable.

This patch makes pci_dev->msi_enabled and pci_dev->msix_enabled the definitive
way to test if linux has enabled the msi capability, and has the appropriate
msi data structures set up.

This patch ensures that while writing the msi messages in save/restore and
during device initialization we have the msi capability disabled so we don't
get into races.  The pci spec requires that we do not have the msi capability
enabled and the msi messages unmasked while we write the messages.  Completely
disabling the capability is overkill but it is easy :)

Care has been taken so we never have both a msi capability and intx enabled
simultaneously.  We haven't run into a problem yet but better safe then sorry.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Cc: Michael Ellerman <michael@ellerman.id.au>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Greg KH <greg@kroah.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years ago[PATCH] msi: sanely support hardware level msi disabling
Eric W. Biederman [Mon, 5 Mar 2007 08:30:07 +0000 (00:30 -0800)]
[PATCH] msi: sanely support hardware level msi disabling

In some cases when we are not using msi we need a way to ensure that the
hardware does not have an msi capability enabled.  Currently the code has been
calling disable_msi_mode to try and achieve that.  However disable_msi_mode
has several other side effects and is only available when msi support is
compiled in so it isn't really appropriate.

Instead this patch implements pci_msi_off which disables all msi and msix
capabilities unconditionally with no additional side effects.

pci_disable_device was redundantly clearing the bus master enable flag and
clearing the msi enable bit.  A device that is not allowed to perform bus
mastering operations cannot generate intx or msi interrupt messages as those
are essentially a special case of dma, and require bus mastering.  So the call
in pci_disable_device to disable msi capabilities was redundant.

quirk_pcie_pxh also called disable_msi_mode and is updated to use pci_msi_off.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Cc: Michael Ellerman <michael@ellerman.id.au>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Greg KH <greg@kroah.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years ago[PATCH] io_apic.h needs apicdef.h
Jean Delvare [Mon, 5 Mar 2007 08:30:06 +0000 (00:30 -0800)]
[PATCH] io_apic.h needs apicdef.h

A -mm patch caused:

In file included from drivers/pci/quirks.c:532:
include/asm/io_apic.h:61: error: "MAX_IO_APICS" undeclared here (not in a function)

So let's include the needed header.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Cc: Andi Kleen <ak@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years ago[PATCH] cyclades: return closing_wait
Andrew Morton [Mon, 5 Mar 2007 08:30:04 +0000 (00:30 -0800)]
[PATCH] cyclades: return closing_wait

In http://bugzilla.kernel.org/show_bug.cgi?id=8065, Shen points out that the
cyclades driver forget to return closing_wait to userspace.

Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: Russell King <rmk@arm.linux.org.uk>
Cc: Shen <shanlu@cs.uiuc.edu>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/bart/ide-2.6
Linus Torvalds [Sun, 4 Mar 2007 21:31:00 +0000 (13:31 -0800)]
Merge /pub/scm/linux/kernel/git/bart/ide-2.6

* master.kernel.org:/pub/scm/linux/kernel/git/bart/ide-2.6:
  ide: make legacy IDE VLB modules check for the "probe" kernel params (v2)
  ide: remove some obsoleted kernel params (v2)
  ide/pci/delkin_cb.c: pci_module_init to pci_register_driver
  scc_pata: bugfix for checking DMA IRQ status
  ide: remove a ton of pointless #undef REALLY_SLOW_IO
  siimage: DRAC4 note
  adjust legacy IDE resource setting (v2)
  ide: fix pmac breakage
  ide-cs: Update device table
  ide: ide_get_best_pio_mode() returns incorrect IORDY setting (take 2)
  piix/slc90e66: more tuneproc() fixing (take 2)
  ide: fix drive side 80c cable check, take 2
  cmd64x: fix PIO mode setup (take 3)
  alim15x3: fix PIO mode setup

17 years agoMerge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik...
Linus Torvalds [Sun, 4 Mar 2007 21:25:28 +0000 (13:25 -0800)]
Merge branch 'upstream-linus' of /linux/kernel/git/jgarzik/libata-dev

* 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev:
  [libata] pata_jmicron: build fix

17 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/mchehab/v4l-dvb
Linus Torvalds [Sun, 4 Mar 2007 21:22:12 +0000 (13:22 -0800)]
Merge /pub/scm/linux/kernel/git/mchehab/v4l-dvb

* master.kernel.org:/pub/scm/linux/kernel/git/mchehab/v4l-dvb:
  V4L/DVB (5260): Cx88-blackbird: allow usage of both 376836 and 262144 sized firmware images
  V4L/DVB (5366): Pvrusb2: Fix compilation warning for amd64 builds (use %zu instead of %u)

17 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Linus Torvalds [Sun, 4 Mar 2007 21:16:49 +0000 (13:16 -0800)]
Merge /pub/scm/linux/kernel/git/davem/net-2.6

* master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6:
  [VLAN]: Avoid a 4-order allocation.
  [HDLC] Fix dev->header_cache_update having a random value.
  [NetLabel]: Verify sensitivity level has a valid CIPSO mapping
  [PPPOE]: Key connections properly on local device.
  [AF_UNIX]: Test against sk_max_ack_backlog properly.
  [NET]: Fix bugs in "Whether sock accept queue is full" checking

17 years agoMerge master.kernel.org:/home/rmk/linux-2.6-arm
Linus Torvalds [Sun, 4 Mar 2007 21:15:48 +0000 (13:15 -0800)]
Merge master.kernel.org:/home/rmk/linux-2.6-arm

* master.kernel.org:/home/rmk/linux-2.6-arm: (30 commits)
  [ARM] Acorn: move the i2c bus driver into drivers/i2c
  [ARM] ARM SCSI: Don't try to dma_map_sg too many scatterlist entries
  [ARM] ARM FAS216: don't modify scsi_cmnd request_bufflen
  [ARM] rtc-pcf8583: Final fixes for this RTC on RiscPC
  [ARM] rtc-pcf8583: correct month and year offsets
  [ARM] rtc-pcf8583: don't use BCD_TO_BIN/BIN_TO_BCD
  [ARM] EBSA110: Work around build errors
  [ARM] 4241/1: Define mb() as compiler barrier on a uniprocessor system
  [ARM] 4239/1: S3C24XX: Update kconfig entries for PM
  [ARM] 4238/1: S3C24XX: docs: update suspend and resume
  [ARM] 4237/2: oprofile: Always allow backtraces on ARM
  [ARM] Yet more asm/apm-emulation.h stuff
  ARM: OMAP: Add missing get_irqnr_preamble and arch_ret_to_user for omap2
  ARM: OMAP: Use linux/delay.h not asm/delay.h
  ARM: OMAP: Remove obsolete alsa typedefs
  ARM: OMAP: omap1510->15xx conversions needed for sx1
  ARM: OMAP: Add missing includes to board-nokia770
  ARM: OMAP: Workqueue changes for board-h4.c
  ARM: OMAP: dmtimer.c omap1 register fix
  ARM: OMAP: board-nokia770: correct lcd name
  ...

17 years agoMerge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus
Linus Torvalds [Sun, 4 Mar 2007 21:15:00 +0000 (13:15 -0800)]
Merge branch 'upstream' of git://ftp.linux-mips.org/upstream-linus

* 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus:
  [MIPS] MTX1: clear PCI errors
  [MIPS] MTX1: add idsel cardbus ressources
  [MIPS] MTX1: remove unneeded settings
  [MIPS] dma_sync_sg_for_cpu is a no-op except for non-coherent R10000s.
  [MIPS] Cobalt: update reserved resources
  [MIPS] SN: PCI fixup needs to include <irq.h>.
  [MIPS] DMA: Fix a bunch of warnings due to missing inline keywords.
  [MIPS] RM: It should be #ifdef CONFIG_FOO not #if CONFIG_FOO ...
  [MIPS] Fix and cleanup the mess that a dozen prom_printf variants are.
  [MIPS] DEC: Remove redeclarations of mips_machgroup and mips_machtype.
  [MIPS] No need to write c0_compare in plat_timer_setup
  [MIPS] Convert to RTC-class ds1742 driver
  [MIPS] Oprofile: Add missing break statements.
  [MIPS] jmr3927: build fix
  [MIPS] SNI: Fix mc146818_decode_year
  [MIPS] Replace sys32_timer_create with the generic compat_sys_timer_create.
  [MIPS] Replace sys32_socketcall with the generic compat_sys_socketcall.
  [MIPS] N32 waitid is the same as o32.

17 years ago[ARM] Acorn: move the i2c bus driver into drivers/i2c
Russell King [Sun, 4 Mar 2007 20:40:50 +0000 (20:40 +0000)]
[ARM] Acorn: move the i2c bus driver into drivers/i2c

Move the Acorn IOC/IOMD I2C bus driver from drivers/i2c, strip
out the reminants of the platform specific parts of the old
PCF8583 RTC code, and remove the old obsolete PCF8583 driver.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] ARM SCSI: Don't try to dma_map_sg too many scatterlist entries
Russell King [Sun, 4 Mar 2007 20:21:38 +0000 (20:21 +0000)]
[ARM] ARM SCSI: Don't try to dma_map_sg too many scatterlist entries

An off-by-one bug meant we were always trying to map one too many
scatterlist entries.  This was mostly harmless prior to the checks
going in to consistent_sync(), but now causes the kernel to BUG.

Also, powertec.c was missing an assignment to info->ec.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] ARM FAS216: don't modify scsi_cmnd request_bufflen
Russell King [Sun, 4 Mar 2007 20:19:07 +0000 (20:19 +0000)]
[ARM] ARM FAS216: don't modify scsi_cmnd request_bufflen

SCSI doesn't want drivers to modify request_bufflen, so keep a
driver-private copy of this in the scsi_pointer structure instead.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] rtc-pcf8583: Final fixes for this RTC on RiscPC
Russell King [Sun, 4 Mar 2007 20:33:07 +0000 (20:33 +0000)]
[ARM] rtc-pcf8583: Final fixes for this RTC on RiscPC

Replace the I2C bus address, as per drivers/acorn/char/pcf8583.c.

Also, since this driver also contains Acorn RiscPC specific code
for obtaining the current year from the SRAM (and updating the
platform specific checksum when writing new data back) this is
NOT a platform independent driver.

Document it as such, and update the dependencies to reflect this
fact.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] rtc-pcf8583: correct month and year offsets
Russell King [Sun, 4 Mar 2007 20:13:13 +0000 (20:13 +0000)]
[ARM] rtc-pcf8583: correct month and year offsets

No, today is not 4th April 3907, it's 4th March 2007.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] rtc-pcf8583: don't use BCD_TO_BIN/BIN_TO_BCD
Russell King [Sun, 4 Mar 2007 20:12:07 +0000 (20:12 +0000)]
[ARM] rtc-pcf8583: don't use BCD_TO_BIN/BIN_TO_BCD

Both BCD_TO_BIN(x) and BIN_TO_BCD(x) have an unexpected side-effect -
not only do they return the value as expected, they _modify_ their
argument in the process.

Let's play it safe and avoid these macros.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years ago[MIPS] MTX1: clear PCI errors
Florian Fainelli [Fri, 2 Mar 2007 21:08:01 +0000 (22:08 +0100)]
[MIPS] MTX1: clear PCI errors

This patch clears PCI errors after showing more debug informations.

Signed-off-by: Florian Fainelli <florian.fainelli@int-evry.fr>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
17 years ago[MIPS] MTX1: add idsel cardbus ressources
Florian Fainelli [Fri, 2 Mar 2007 21:07:48 +0000 (22:07 +0100)]
[MIPS] MTX1: add idsel cardbus ressources

Adds cardbus ressources for MTX1 boards which have a PCMCIA controller.

Signed-off-by: Florian Fainelli <florian.fainelli@int-evry.fr>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
17 years ago[MIPS] MTX1: remove unneeded settings
Florian Fainelli [Fri, 2 Mar 2007 21:07:41 +0000 (22:07 +0100)]
[MIPS] MTX1: remove unneeded settings

This patch removes unnecessary settings at setup time.

Signed-off-by: Florian Fainelli <florian.fainelli@int-evry.fr>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
17 years ago[MIPS] dma_sync_sg_for_cpu is a no-op except for non-coherent R10000s.
Ralf Baechle [Fri, 2 Mar 2007 11:42:11 +0000 (11:42 +0000)]
[MIPS] dma_sync_sg_for_cpu is a no-op except for non-coherent R10000s.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
17 years ago[MIPS] Cobalt: update reserved resources
Yoichi Yuasa [Thu, 1 Mar 2007 13:50:25 +0000 (22:50 +0900)]
[MIPS] Cobalt: update reserved resources

This patch has removed unused timer resource.
Moreover, the name of reserved resources ware changed.

Signed-off-by: Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
17 years ago[MIPS] SN: PCI fixup needs to include <irq.h>.
Ralf Baechle [Thu, 1 Mar 2007 15:35:54 +0000 (15:35 +0000)]
[MIPS] SN: PCI fixup needs to include <irq.h>.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
17 years ago[MIPS] DMA: Fix a bunch of warnings due to missing inline keywords.
Ralf Baechle [Thu, 1 Mar 2007 15:30:01 +0000 (15:30 +0000)]
[MIPS] DMA: Fix a bunch of warnings due to missing inline keywords.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
17 years ago[MIPS] RM: It should be #ifdef CONFIG_FOO not #if CONFIG_FOO ...
Ralf Baechle [Thu, 1 Mar 2007 15:29:25 +0000 (15:29 +0000)]
[MIPS] RM: It should be #ifdef CONFIG_FOO not #if CONFIG_FOO ...

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
17 years ago[MIPS] Fix and cleanup the mess that a dozen prom_printf variants are.
Ralf Baechle [Thu, 1 Mar 2007 11:56:43 +0000 (11:56 +0000)]
[MIPS] Fix and cleanup the mess that a dozen prom_printf variants are.

early_printk is a so much saner thing.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
17 years ago[MIPS] DEC: Remove redeclarations of mips_machgroup and mips_machtype.
Ralf Baechle [Thu, 1 Mar 2007 10:47:23 +0000 (10:47 +0000)]
[MIPS] DEC: Remove redeclarations of mips_machgroup and mips_machtype.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
17 years ago[MIPS] No need to write c0_compare in plat_timer_setup
Atsushi Nemoto [Wed, 28 Feb 2007 16:53:13 +0000 (01:53 +0900)]
[MIPS] No need to write c0_compare in plat_timer_setup

If R4k counter was used for hpt_timer and interrupt source,
c0_hpt_timer_init() initializes the c0_compare register.

Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
17 years ago[MIPS] Convert to RTC-class ds1742 driver
Atsushi Nemoto [Wed, 28 Feb 2007 15:40:21 +0000 (00:40 +0900)]
[MIPS] Convert to RTC-class ds1742 driver

The generic rtc-ds1742 driver can be used for RBTX4927 and JMR3927
(with __swizzle_addr trick).  This patch also removes MIPS local
DS1742 stuff.

Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
17 years ago[MIPS] Oprofile: Add missing break statements.
Ralf Baechle [Wed, 28 Feb 2007 15:34:22 +0000 (15:34 +0000)]
[MIPS] Oprofile: Add missing break statements.

This was causing oprofile to fail on R10000, R12000, R14000.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
17 years ago[MIPS] jmr3927: build fix
Atsushi Nemoto [Tue, 27 Feb 2007 16:42:19 +0000 (01:42 +0900)]
[MIPS] jmr3927: build fix

Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
17 years ago[MIPS] SNI: Fix mc146818_decode_year
Thomas Bogendoerfer [Sat, 3 Feb 2007 13:06:10 +0000 (14:06 +0100)]
[MIPS] SNI: Fix mc146818_decode_year

Big endian RMs uses a different mc146818_decode_year than little endian RMs
Correct mc146818_decode_year for years before 2000

Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
17 years ago[MIPS] Replace sys32_timer_create with the generic compat_sys_timer_create.
Ralf Baechle [Tue, 27 Feb 2007 01:21:17 +0000 (01:21 +0000)]
[MIPS] Replace sys32_timer_create with the generic compat_sys_timer_create.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
17 years ago[MIPS] Replace sys32_socketcall with the generic compat_sys_socketcall.
Ralf Baechle [Tue, 27 Feb 2007 01:11:28 +0000 (01:11 +0000)]
[MIPS] Replace sys32_socketcall with the generic compat_sys_socketcall.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
17 years ago[MIPS] N32 waitid is the same as o32.
Ralf Baechle [Tue, 27 Feb 2007 00:56:37 +0000 (00:56 +0000)]
[MIPS] N32 waitid is the same as o32.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
17 years agoKVM: Move kvmfs magic number to <linux/magic.h>
Andrew Morton [Thu, 1 Mar 2007 09:28:13 +0000 (11:28 +0200)]
KVM: Move kvmfs magic number to <linux/magic.h>

Use the standard magic.h for kvmfs.

Cc: Avi Kivity <avi@qumranet.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Avi Kivity <avi@qumranet.com>
17 years agoKVM: Fix bogus failure in kvm.ko module initialization
Avi Kivity [Mon, 26 Feb 2007 14:29:43 +0000 (16:29 +0200)]
KVM: Fix bogus failure in kvm.ko module initialization

A bogus 'return r' can cause an otherwise successful module load to fail.
This both denies users the use of kvm, and it also denies them the use of
their machine, as it leaves a filesystem registered with its callbacks
pointing into now-freed module memory.

Fix by returning a zero like a good module.

Thanks to Richard Lucassen <mailinglists@lucassen.org> (?) for reporting
the problem and for providing access to a machine which exhibited it.

Signed-off-by: Avi Kivity <avi@qumranet.com>
17 years agoKVM: Remove write access permissions when dirty-page-logging is enabled
Uri Lublin [Thu, 22 Feb 2007 15:37:32 +0000 (17:37 +0200)]
KVM: Remove write access permissions when dirty-page-logging is enabled

Enabling dirty page logging is done using KVM_SET_MEMORY_REGION ioctl.
If the memory region already exists, we need to remove write accesses,
so writes will be caught, and dirty pages will be logged.

Signed-off-by: Uri Lublin <uril@qumranet.com>
Signed-off-by: Avi Kivity <avi@qumranet.com>
17 years agokvm: move do_remove_write_access() up
Uri Lublin [Thu, 22 Feb 2007 15:15:33 +0000 (17:15 +0200)]
kvm: move do_remove_write_access() up

To be called from kvm_vm_ioctl_set_memory_region()

Signed-off-by: Uri Lublin <uril@qumranet.com>
Signed-off-by: Avi Kivity <avi@qumranet.com>
17 years agoKVM: Fix dirty page log bitmap size/access calculation
Uri Lublin [Thu, 22 Feb 2007 14:43:09 +0000 (16:43 +0200)]
KVM: Fix dirty page log bitmap size/access calculation

Since dirty_bitmap is an unsigned long array, the alignment and size need
to take that into account.

Signed-off-by: Uri Lublin <uril@qumranet.com>
Signed-off-by: Avi Kivity <avi@qumranet.com>
17 years agoKVM: Add missing calls to mark_page_dirty()
Uri Lublin [Wed, 21 Feb 2007 16:25:21 +0000 (18:25 +0200)]
KVM: Add missing calls to mark_page_dirty()

A few places where we modify guest memory fail to call mark_page_dirty(),
causing live migration to fail.  This adds the missing calls.

Signed-off-by: Uri Lublin <uril@qumranet.com>
Signed-off-by: Avi Kivity <avi@qumranet.com>
17 years agoKVM: Bump API version
Avi Kivity [Wed, 21 Feb 2007 17:47:40 +0000 (19:47 +0200)]
KVM: Bump API version

Signed-off-by: Avi Kivity <avi@qumranet.com>
17 years agoKVM: Per-vcpu inodes
Avi Kivity [Wed, 21 Feb 2007 16:04:26 +0000 (18:04 +0200)]
KVM: Per-vcpu inodes

Allocate a distinct inode for every vcpu in a VM.  This has the following
benefits:

 - the filp cachelines are no longer bounced when f_count is incremented on
   every ioctl()
 - the API and internal code are distinctly clearer; for example, on the
   KVM_GET_REGS ioctl, there is no need to copy the vcpu number from
   userspace and then copy the registers back; the vcpu identity is derived
   from the fd used to make the call

Right now the performance benefits are completely theoretical since (a) we
don't support more than one vcpu per VM and (b) virtualization hardware
inefficiencies completely everwhelm any cacheline bouncing effects.  But
both of these will change, and we need to prepare the API today.

Signed-off-by: Avi Kivity <avi@qumranet.com>
17 years agoKVM: Move kvm_vm_ioctl_create_vcpu() around
Avi Kivity [Tue, 20 Feb 2007 16:41:05 +0000 (18:41 +0200)]
KVM: Move kvm_vm_ioctl_create_vcpu() around

In preparation of some hacking.

Signed-off-by: Avi Kivity <avi@qumranet.com>
17 years agoKVM: Rename some kvm_dev_ioctl_*() functions to kvm_vm_ioctl_*()
Avi Kivity [Tue, 20 Feb 2007 16:27:58 +0000 (18:27 +0200)]
KVM: Rename some kvm_dev_ioctl_*() functions to kvm_vm_ioctl_*()

This reflects the changed scope, from device-wide to single vm (previously
every device open created a virtual machine).

Signed-off-by: Avi Kivity <avi@qumranet.com>
17 years agoKVM: Create an inode per virtual machine
Avi Kivity [Wed, 21 Feb 2007 17:28:04 +0000 (19:28 +0200)]
KVM: Create an inode per virtual machine

This avoids having filp->f_op and the corresponding inode->i_fop different,
which is a little unorthodox.

The ioctl list is split into two: global kvm ioctls and per-vm ioctls.  A new
ioctl, KVM_CREATE_VM, is used to create VMs and return the VM fd.

Signed-off-by: Avi Kivity <avi@qumranet.com>
17 years agoKVM: Add internal filesystem for generating inodes
Avi Kivity [Tue, 20 Feb 2007 12:07:37 +0000 (14:07 +0200)]
KVM: Add internal filesystem for generating inodes

The kvmfs inodes will represent virtual machines and vcpus, as necessary,
reducing cacheline bouncing due to inodes and filps being shared.

Signed-off-by: Avi Kivity <avi@qumranet.com>
17 years agoKVM: More 0 -> NULL conversions
Avi Kivity [Mon, 19 Feb 2007 12:37:48 +0000 (14:37 +0200)]
KVM: More 0 -> NULL conversions

Signed-off-by: Avi Kivity <avi@qumranet.com>
17 years agoKVM: SVM: intercept SMI to handle it at host level
Joerg Roedel [Mon, 19 Feb 2007 12:37:47 +0000 (14:37 +0200)]
KVM: SVM: intercept SMI to handle it at host level

This patch changes the SVM code to intercept SMIs and handle it
outside the guest.

Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
Signed-off-by: Avi Kivity <avi@qumranet.com>
17 years agoKVM: svm: init cr0 with the wp bit set
Avi Kivity [Mon, 19 Feb 2007 12:37:47 +0000 (14:37 +0200)]
KVM: svm: init cr0 with the wp bit set

Signed-off-by: Avi Kivity <avi@qumranet.com>
17 years agoKVM: Wire up hypercall handlers to a central arch-independent location
Avi Kivity [Mon, 19 Feb 2007 12:37:47 +0000 (14:37 +0200)]
KVM: Wire up hypercall handlers to a central arch-independent location

Signed-off-by: Avi Kivity <avi@qumranet.com>
17 years agoKVM: Add hypercall host support for svm
Avi Kivity [Mon, 19 Feb 2007 12:37:47 +0000 (14:37 +0200)]
KVM: Add hypercall host support for svm

Signed-off-by: Avi Kivity <avi@qumranet.com>
17 years agoKVM: Add host hypercall support for vmx
Ingo Molnar [Mon, 19 Feb 2007 12:37:47 +0000 (14:37 +0200)]
KVM: Add host hypercall support for vmx

Signed-off-by: Avi Kivity <avi@qumranet.com>
17 years agoKVM: add MSR based hypercall API
Ingo Molnar [Mon, 19 Feb 2007 12:37:47 +0000 (14:37 +0200)]
KVM: add MSR based hypercall API

This adds a special MSR based hypercall API to KVM. This is to be
used by paravirtual kernels and virtual drivers.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Avi Kivity <avi@qumranet.com>
17 years agoKVM: Use page_private()/set_page_private() apis
Markus Rechberger [Mon, 19 Feb 2007 12:37:47 +0000 (14:37 +0200)]
KVM: Use page_private()/set_page_private() apis

Besides using an established api, this allows using kvm in older kernels.

Signed-off-by: Markus Rechberger <markus.rechberger@amd.com>
Signed-off-by: Avi Kivity <avi@qumranet.com>
17 years agoKVM: Use ARRAY_SIZE macro instead of manual calculation.
Ahmed S. Darwish [Mon, 19 Feb 2007 12:37:46 +0000 (14:37 +0200)]
KVM: Use ARRAY_SIZE macro instead of manual calculation.

Signed-off-by: Ahmed S. Darwish <darwish.07@gmail.com>
Signed-off-by: Dor Laor <dor.laor@qumranet.com>
Signed-off-by: Avi Kivity <avi@qumranet.com>
17 years agoKVM: vmx: hack set_cr0_no_modeswitch() to actually do modeswitch
Joerg Roedel [Mon, 19 Feb 2007 12:37:46 +0000 (14:37 +0200)]
KVM: vmx: hack set_cr0_no_modeswitch() to actually do modeswitch

The whole thing is rotten, but this allows vmx to boot with the guest reboot
fix.

Signed-off-by: Markus Rechberger <markus.rechberger@amd.com>
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
Signed-off-by: Avi Kivity <avi@qumranet.com>
17 years agoKVM: Cosmetics
Avi Kivity [Mon, 19 Feb 2007 12:37:46 +0000 (14:37 +0200)]
KVM: Cosmetics

Signed-off-by: Avi Kivity <avi@qumranet.com>
17 years agoKVM: Move virtualization deactivation from CPU_DEAD state to CPU_DOWN_PREPARE
Jeremy Katz [Mon, 19 Feb 2007 12:37:46 +0000 (14:37 +0200)]
KVM: Move virtualization deactivation from CPU_DEAD state to CPU_DOWN_PREPARE

This gives it more chances of surviving suspend.

Signed-off-by: Jeremy Katz <katzj@redhat.com>
Signed-off-by: Avi Kivity <avi@qumranet.com>
17 years agoKVM: mmu: add missing dirty page tracking cases
Avi Kivity [Mon, 19 Feb 2007 12:37:46 +0000 (14:37 +0200)]
KVM: mmu: add missing dirty page tracking cases

We fail to mark a page dirty in three cases:

- setting the accessed bit in a pte
- setting the dirty bit in a pte
- emulating a write into a pagetable

This fix adds the missing cases.

Signed-off-by: Avi Kivity <avi@qumranet.com>
17 years agoide: make legacy IDE VLB modules check for the "probe" kernel params (v2)
Bartlomiej Zolnierkiewicz [Sat, 3 Mar 2007 16:48:55 +0000 (17:48 +0100)]
ide: make legacy IDE VLB modules check for the "probe" kernel params (v2)

Legacy IDE VLB host drivers didn't check for "probe" options when compiled
as modules, which was obviously wrong as we don't want module to poke at
random I/O ports by simply loading it.  Fix it by adding "probe" module param
to legacy IDE VLB host drivers.

v2:
* don't obsolete old "ide0=dtc2278/ht6560b/qd65xx/ali14xx/umc8672"
  IDE driver options yet (per Alan Cox's request) and enhance documentation

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: remove some obsoleted kernel params (v2)
Bartlomiej Zolnierkiewicz [Sat, 3 Mar 2007 16:48:55 +0000 (17:48 +0100)]
ide: remove some obsoleted kernel params (v2)

Remove

* "hdx=serialize"
* "idex=noautotune"
* "idex=autotune"

kernel params, they have been obsoleted for ages.

"idex=serialize", "hdx=noautotune" and "hdx=autotune" are still available
so there is no funcionality loss caused by this patch.

v2:

* fix CONFIG_BLK_DEV_4DRIVES=y build broken by version 1 of the patch
  [ /me wearing brown paper bag ]

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide/pci/delkin_cb.c: pci_module_init to pci_register_driver
Richard Knutsson [Sat, 3 Mar 2007 16:48:55 +0000 (17:48 +0100)]
ide/pci/delkin_cb.c: pci_module_init to pci_register_driver

Convert pci_module_init() to pci_register_driver().

[ Compile-tested with "allyes", "allmod" & "allno" on i386. ]

Signed-off-by: Richard Knutsson <ricknu-0@student.ltu.se>
Cc: Dominik Brodowski <linux@dominikbrodowski.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoscc_pata: bugfix for checking DMA IRQ status
Akira Iguchi [Sat, 3 Mar 2007 16:48:55 +0000 (17:48 +0100)]
scc_pata: bugfix for checking DMA IRQ status

On Tuesday 27 February 2007, Akira Iguchi wrote:
>
> But since I sent the first patch, I found a bug for checking DMA IRQ status.
> (http://www.spinics.net/lists/linux-ide/msg06903.html)
> Then I sent the fixed patch for libata only. So my drivers/ide patch
> still has same bug and I want to fix it, too.
>
> The following patch fixes this bug. Please apply this patch.

From: Akira Iguchi <akira2.iguchi@toshiba.co.jp>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: remove a ton of pointless #undef REALLY_SLOW_IO
Alan Cox [Sat, 3 Mar 2007 16:48:54 +0000 (17:48 +0100)]
ide: remove a ton of pointless #undef REALLY_SLOW_IO

Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agosiimage: DRAC4 note
Alan Cox [Sat, 3 Mar 2007 16:48:54 +0000 (17:48 +0100)]
siimage: DRAC4 note

Revised DRAC4 warning as Jeff suggested, this one includes more info
about why the problem occurs

Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoadjust legacy IDE resource setting (v2)
Jan Beulich [Sat, 3 Mar 2007 16:48:54 +0000 (17:48 +0100)]
adjust legacy IDE resource setting (v2)

The change to force legacy mode IDE channels' resources to fixed non-zero
values confuses (at least some versions of) X, because the values reported
by the kernel and those readable from PCI config space aren't consistent
anymore.  Therefore, this patch arranges for the respective BARs to also
get updated if possible.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
Acked-by: Alan Cox <alan@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: fix pmac breakage
Andrew Morton [Sat, 3 Mar 2007 16:48:54 +0000 (17:48 +0100)]
ide: fix pmac breakage

Fix breakage added in the IDE devel tree.

Add header, then fix

drivers/ide/ppc/pmac.c: In function `pmac_ide_setup_dma':
drivers/ide/ppc/pmac.c:2044: warning: assignment from incompatible pointer type
drivers/ide/ppc/pmac.c: In function `pmac_ide_dma_host_on':
drivers/ide/ppc/pmac.c:1989: warning: control reaches end of non-void function
include/linux/pci.h: In function `pmac_ide_init':
drivers/ide/ppc/pmac.c:1563: warning: ignoring return value of `pci_register_driver', declared with attribute warn_unused_result

Then add some apparently-long-missing error handling.

Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Paul Mackerras <paulus@samba.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide-cs: Update device table
Magnus Damm [Sat, 3 Mar 2007 16:48:54 +0000 (17:48 +0100)]
ide-cs: Update device table

Add CFA devices from I-O Data, Mitsubishi and Viking. Add SanDisk comment.

Signed-off-by: Magnus Damm <damm@opensource.se>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: ide_get_best_pio_mode() returns incorrect IORDY setting (take 2)
Sergei Shtylyov [Sat, 3 Mar 2007 16:48:53 +0000 (17:48 +0100)]
ide: ide_get_best_pio_mode() returns incorrect IORDY setting (take 2)

The function ide_get_best_pio_mode() fails to return the correct IORDY setting
for the explicitly specified modes -- fix this along with the heading comment,
and also remove the long commented out code.

Also, while at it, correct the misliading comment about the PIO cycle time in
<linux/ide.h> -- it actually consists of only the active and recovery periods,
with only some chips also including the address setup time into equation...

[ bart: sl82c105 seems to be currently the only driver affected by this fix ]

Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agopiix/slc90e66: more tuneproc() fixing (take 2)
Sergei Shtylyov [Sat, 3 Mar 2007 16:48:53 +0000 (17:48 +0100)]
piix/slc90e66: more tuneproc() fixing (take 2)

The tuneproc() method in both these drivers failed to set the drive's own speed.
Fix this by renaming the function and "wrapping around it" the new tuneproc()
method.  Switch back to calling tuneproc() in the PIO fallback code.
While at it, also convert the rest of the PIO timing code into proper C. :-)

Has been kind of tested on SLC90E66.  I'm too lazy to reboot my box and test
on ICH4... :-)

[ bart: I quickly tested it on ICH4. ]

Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: fix drive side 80c cable check, take 2
Tejun Heo [Sat, 3 Mar 2007 16:48:53 +0000 (17:48 +0100)]
ide: fix drive side 80c cable check, take 2

eighty_ninty_three() had word 93 validitity check but not the 80c bit
test itself (bit 13).  This increases the chance of incorrect wire
detection especially because host side cable detection is often
unreliable and we sometimes soley depend on drive side cable
detection.  Fix it.

[ bart: fix off-by-1 bit name in the patch description ]

Signed-off-by: Tejun Heo <htejun@gmail.com>
Acked-by: Alan Cox <alan@redhat.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agocmd64x: fix PIO mode setup (take 3)
Sergei Shtylyov [Sat, 3 Mar 2007 16:48:53 +0000 (17:48 +0100)]
cmd64x: fix PIO mode setup (take 3)

The driver's tuneproc() method fails to set the drive's own speed -- fix this
by renaming the function to cmd64x_tune_pio(), making it return the mode set,
and "wrapping" the new tuneproc() method around it; while at it, also get rid
of the non-working prefetch control code (filtering out related argument values
in the "wrapper"), remove redundant PIO5 mode limitation, make cmdprintk() give
more sensible mode info, and remove mention about the obsolete /proc/ interface.
Get rid of the broken config_chipset_for_pio() which always tried to set PIO4,
switch to always auto-tuning PIO instead.
Oh, and add the missing PIO5 support to the speedproc() method while at it. :-)

Warning: compile tested only -- getting to the real hardware isn't that easy...

On Tuesday 06 February 2007 22:11, Mikael Pettersson <mikpe@it.uu.se> wrote:
>
> Worked fine on my SPARC Ultra5 with a CMD646 IDE controller.

Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>