firefly-linux-kernel-4.4.55.git
17 years agofix inode_table test in ext234_check_descriptors
Eric Sandeen [Thu, 26 Jul 2007 17:41:11 +0000 (10:41 -0700)]
fix inode_table test in ext234_check_descriptors

ext[234]_check_descriptors sanity checks block group descriptor geometry at
mount time, testing whether the block bitmap, inode bitmap, and inode table
reside wholly within the blockgroup.  However, the inode table test is off
by one so that if the last block in the inode table resides on the last
block of the block group, the test incorrectly fails.  This is because it
tests the last block as (start + length) rather than (start + length - 1).

This can be seen by trying to mount a filesystem made such as:

 mkfs.ext2 -F -b 1024 -m 0 -g 256 -N 3744 fsfile 1024

which yields:

 EXT2-fs error (device loop0): ext2_check_descriptors: Inode table for group 0 not in group (block 101)!
 EXT2-fs: group descriptors corrupted!

There is a similar bug in e2fsprogs, patch already sent for that.

(I wonder if inside(), outside(), and/or in_range() should someday be
used in this and other tests throughout the ext filesystems...)

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Cc: <linux-ext4@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoxenbus_xs.c: fix a use-after-free
Adrian Bunk [Thu, 26 Jul 2007 17:41:10 +0000 (10:41 -0700)]
xenbus_xs.c: fix a use-after-free

This patch fixes an obvious use-after-free spotted by the Coverity checker.

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Acked-by: Jeremy Fitzhardinge <jeremy@goop.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoedac is bust on mips
Andrew Morton [Thu, 26 Jul 2007 17:41:10 +0000 (10:41 -0700)]
edac is bust on mips

drivers/edac/edac_stub.c:15:22: asm/edac.h: No such file or directory

was it even supposed to work?

Cc: Douglas Thompson <dougthompson@xmission.com>
Cc: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoi2c: ds1682 warning fix
Andrew Morton [Thu, 26 Jul 2007 17:41:09 +0000 (10:41 -0700)]
i2c: ds1682 warning fix

ia64:

drivers/i2c/chips/ds1682.c: In function `ds1682_show':
drivers/i2c/chips/ds1682.c:78: warning: long long unsigned int format, long unsigned int arg (arg 3)
drivers/i2c/chips/ds1682.c:78: warning: long long unsigned int format, long unsigned int arg (arg 3)

Cc: 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 agoReorder RTC Makefile
Alessandro Zummo [Thu, 26 Jul 2007 17:41:08 +0000 (10:41 -0700)]
Reorder RTC Makefile

Alphabetic reordering of the drivers in the rtc subsys makefile.

(akpm: merge this asap!  Makefiles are the source of many patch conflicts..)

Signed-off-by: Alessandro Zummo <a.zummo@towertech.it>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agomemory unplug: isolate_lru_page fix
KAMEZAWA Hiroyuki [Thu, 26 Jul 2007 17:41:08 +0000 (10:41 -0700)]
memory unplug: isolate_lru_page fix

release_pages() in mm/swap.c changes page_count() to be 0 without removing
PageLRU flag...

This means isolate_lru_page() can see a page, PageLRU() &&
page_count(page)==0..  This is BUG.  (get_page() will be called against
count=0 page.)

Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Acked-by: Christoph Lameter <clameter@sgi.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agomemory unplug: migration by kernel
KAMEZAWA Hiroyuki [Thu, 26 Jul 2007 17:41:07 +0000 (10:41 -0700)]
memory unplug: migration by kernel

In usual, migrate_pages(page,,) is called with holding mm->sem by system call.
(mm here is a mm_struct which maps the migration target page.)
This semaphore helps avoiding some race conditions.

But, if we want to migrate a page by some kernel codes, we have to avoid
some races. This patch adds check code for following race condition.

1. A page which page->mapping==NULL can be target of migration. Then, we have
   to check page->mapping before calling try_to_unmap().

2. anon_vma can be freed while page is unmapped, but page->mapping remains as
   it was. We drop page->mapcount to be 0. Then we cannot trust page->mapping.
   So, use rcu_read_lock() to prevent anon_vma pointed by page->mapping from
   being freed during migration.

Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Acked-by: Christoph Lameter <clameter@sgi.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agomake timerfd return a u64 and fix the __put_user
Davide Libenzi [Thu, 26 Jul 2007 17:41:07 +0000 (10:41 -0700)]
make timerfd return a u64 and fix the __put_user

Davi fixed a missing cast in the __put_user(), that was making timerfd
return a single byte instead of the full value.

Talking with Michael about the timerfd man page, we think it'd be better to
use a u64 for the returned value, to align it with the eventfd
implementation.

This is an ABI change.  The timerfd code is new in 2.6.22 and if we merge this
into 2.6.23 then we should also merge it into 2.6.22.x.  That will leave a few
early 2.6.22 kernels out in the wild which might misbehave when a future
timerfd-enabled glibc is run on them.

mtk says: The difference would be that read() will only return 4 bytes, while
the application will expect 8.  If the application is checking the size of
returned value, as it should, then it will be able to detect the problem (it
could even be sophisticated enough to know that if this is a 4-byte return,
then it is running on an old 2.6.22 kernel).  If the application is not
checking the return from read(), then its 8-byte buffer will not be filled --
the contents of the last 4 bytes will be undefined, so the u64 value as a
whole will be junk.

Signed-off-by: Davide Libenzi <davidel@xmailserver.org>
Cc: Michael Kerrisk <mtk-manpages@gmx.net>
Cc: Davi Arnaut <davi@haxent.com.br>
Cc: <stable@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoX86_POWERNOW_K8_ACPI must depend on ACPI
Adrian Bunk [Thu, 26 Jul 2007 17:41:05 +0000 (10:41 -0700)]
X86_POWERNOW_K8_ACPI must depend on ACPI

This patch fixes the following compile error introduced by
commit e8666b2718fdb5bf0ea7c3126f7e292bbbf2946b and reported
by Alexey Dobriyan:

<--  snip  -->

   CC      arch/i386/kernel/acpi/cstate.o
In file included from arch/i386/kernel/acpi/cstate.c:17:
include/acpi/processor.h:88: error: expected specifier-qualifier-list before 'acpi_integer'

<--  snip  -->

If you select something you must ensure that the dependencies of what
you are selecting are fulfilled.

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Cc: Alexey Dobriyan <adobriyan@sw.ru>
Cc: Joshua Hoblitt <jhoblitt@ifa.hawaii.edu>
Cc: Dave Jones <davej@redhat.com>
Cc: Michal Piotrowski <michal.k.k.piotrowski@gmail.com>
Cc: Len Brown <lenb@kernel.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agolguest: documentation VII: FIXMEs
Rusty Russell [Thu, 26 Jul 2007 17:41:05 +0000 (10:41 -0700)]
lguest: documentation VII: FIXMEs

Documentation: The FIXMEs

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agolguest: documentation VI: Switcher
Rusty Russell [Thu, 26 Jul 2007 17:41:04 +0000 (10:41 -0700)]
lguest: documentation VI: Switcher

Documentation: The Switcher

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agolguest: documentation V: Host
Rusty Russell [Thu, 26 Jul 2007 17:41:04 +0000 (10:41 -0700)]
lguest: documentation V: Host

Documentation: The Host

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agolguest: documentation IV: Launcher
Rusty Russell [Thu, 26 Jul 2007 17:41:03 +0000 (10:41 -0700)]
lguest: documentation IV: Launcher

Documentation: The Launcher

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agolguest: documentation III: Drivers
Rusty Russell [Thu, 26 Jul 2007 17:41:03 +0000 (10:41 -0700)]
lguest: documentation III: Drivers

Documentation: The Drivers

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agolguest: documentation II: Guest
Rusty Russell [Thu, 26 Jul 2007 17:41:02 +0000 (10:41 -0700)]
lguest: documentation II: Guest

Documentation: The Guest

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agolguest: documentation I: Preparation
Rusty Russell [Thu, 26 Jul 2007 17:41:02 +0000 (10:41 -0700)]
lguest: documentation I: Preparation

The netfilter code had very good documentation: the Netfilter Hacking HOWTO.
Noone ever read it.

So this time I'm trying something different, using a bit of Knuthiness.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoxen: xen/page.h compile fix
Jeremy Fitzhardinge [Thu, 26 Jul 2007 17:41:01 +0000 (10:41 -0700)]
xen: xen/page.h compile fix

Fix:
linux/include/xen/page.h: In function mfn_pte:
linux/include/xen/page.h:149: error: __supported_pte_mask undeclared (first use in this function)
linux/include/xen/page.h:149: error: (Each undeclared identifier is reported only once
linux/include/xen/page.h:149: error: for each function it appears in.)

Signed-off-by: Jeremy Fitzhardinge <jeremy@xensource.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agortc-ds1307: typo fix found by coverity
David Brownell [Thu, 26 Jul 2007 17:41:00 +0000 (10:41 -0700)]
rtc-ds1307: typo fix found by coverity

Fix a typo turned up by a Coverity check:  referring to the wrong register,
which could cause problems with DS1338 RTCs whose oscillators halted.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agofixup s3c24xx build after arch moves
Ben Dooks [Thu, 26 Jul 2007 17:40:59 +0000 (10:40 -0700)]
fixup s3c24xx build after arch moves

Fix the include files moved around during the s3c24xx arch moves.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoPM: fix compiler error of PPC dart_iommu
Ryusuke Konishi [Thu, 26 Jul 2007 17:40:59 +0000 (10:40 -0700)]
PM: fix compiler error of PPC dart_iommu

A dummy inline function of register_nosave_region_late was accidentally
removed by the recent PM patch that introduced suspend notifiers.
This elimination causes the following compiler error on PPC machines.

  CC      arch/powerpc/sysdev/dart_iommu.o
arch/powerpc/sysdev/dart_iommu.c: In function 'iommu_init_late_dart':
arch/powerpc/sysdev/dart_iommu.c:376: error: implicit declaration of function
'register_nosave_region_late'
make[1]: *** [arch/powerpc/sysdev/dart_iommu.o] Error 1
make: *** [arch/powerpc/sysdev] Error 2

This patch fixes the problem.

Signed-off-by: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
Acked-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoSlab maintainer & Credits update
Christoph Lameter [Thu, 26 Jul 2007 17:40:56 +0000 (10:40 -0700)]
Slab maintainer & Credits update

Signed-off-by: Christoph Lameter <clameter@sgi.com>
Acked-by: Pekka Enberg <penberg@cs.helsinki.fi>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agokernel-doc fix for kmod.c
Randy Dunlap [Thu, 26 Jul 2007 17:40:56 +0000 (10:40 -0700)]
kernel-doc fix for kmod.c

Fix kmod.c:
Warning(linux-2.6.23-rc1//kernel/kmod.c:364): No description found for parameter 'envp'

Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agotiny signalfd cleanup
Ulrich Drepper [Thu, 26 Jul 2007 17:40:55 +0000 (10:40 -0700)]
tiny signalfd cleanup

This is probably a leftover from a time when the return wasn't there yet.
Now the extra assignment is just irritating.

Signed-off-by: Ulrich Drepper <drepper@redhat.com>
Cc: Davide Libenzi <davidel@xmailserver.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agomore reiserfs endianness annotations
Al Viro [Thu, 26 Jul 2007 16:47:03 +0000 (17:47 +0100)]
more reiserfs endianness annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoarm unaligned.h annotations
Al Viro [Thu, 26 Jul 2007 16:46:19 +0000 (17:46 +0100)]
arm unaligned.h annotations

Have put_unaligned() warn if types would be wrong
for assignment, slap force-casts where needed.  Cast the
result of get_unaligned to typeof(*ptr).  With that in
place we get proper typechecking, both from gcc and from sparse,
including that for bitwise types.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agom68k {in,out}_le{16,32} endianness misannotation
Al Viro [Thu, 26 Jul 2007 16:42:59 +0000 (17:42 +0100)]
m68k {in,out}_le{16,32} endianness misannotation

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoax88796 (address space): cast to unsigned long, not long
Al Viro [Thu, 26 Jul 2007 16:36:29 +0000 (17:36 +0100)]
ax88796 (address space): cast to unsigned long, not long

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Acked-by: Jeff Garzik <jeff@garzik.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoraw1394 __user annotation
Al Viro [Thu, 26 Jul 2007 16:36:19 +0000 (17:36 +0100)]
raw1394 __user annotation

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agodrivers/ misc __iomem annotations
Al Viro [Thu, 26 Jul 2007 16:36:09 +0000 (17:36 +0100)]
drivers/ misc __iomem annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoxfs ioctl __user annotations
Al Viro [Thu, 26 Jul 2007 16:35:59 +0000 (17:35 +0100)]
xfs ioctl __user annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agomake powerpc BUG_ON() OK with pointers and bitwise
Al Viro [Thu, 26 Jul 2007 16:35:49 +0000 (17:35 +0100)]
make powerpc BUG_ON() OK with pointers and bitwise

Since powerpc insists on printing the _value_ of condition
and on casting it to long...  At least let's make it a force-cast.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoamd64: fix get_user() on bitwise
Al Viro [Thu, 26 Jul 2007 16:35:39 +0000 (17:35 +0100)]
amd64: fix get_user() on bitwise

We really need force-cast when converting to final result type;
unsigned long can be silently converted to integer types and
to pointers, but not to bitwise.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agomake __chk_{user,io}_ptr() accept pointers to volatile
Al Viro [Thu, 26 Jul 2007 16:35:29 +0000 (17:35 +0100)]
make __chk_{user,io}_ptr() accept pointers to volatile

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agocxgb3 gfp_t annotations
Al Viro [Thu, 26 Jul 2007 16:35:19 +0000 (17:35 +0100)]
cxgb3 gfp_t annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Acked-by: Jeff Garzik <jeff@garzik.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agomisannotation in pppol2tp
Al Viro [Thu, 26 Jul 2007 16:35:09 +0000 (17:35 +0100)]
misannotation in pppol2tp

Address of auto variable is not a userland pointer.  A good thing, too,
since if pppol2tp_tunnel_getsockopt() would _really_ get a userland pointer
as argument, it would be an instant roothole...

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agocyclone.c: silly use of volatile, __iomem fixes
Al Viro [Thu, 26 Jul 2007 16:34:59 +0000 (17:34 +0100)]
cyclone.c: silly use of volatile, __iomem fixes

u32* volatile cyclone_timer means volatile auto pointer to u32,
which is clearly not what had been intended (we never even take
the address of that variable, let alone pass it to something that
could change it behind our back).  u32 volatile * is what the
authors apparently wanted to say, but in reality we don't need that
qualifier there at all - it's (properly) only passed to iomem helpers
which takes care of that stuff just fine.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agouse CLOCKSOURCE_MASK() instead of too large constant
Al Viro [Thu, 26 Jul 2007 16:34:49 +0000 (17:34 +0100)]
use CLOCKSOURCE_MASK() instead of too large constant

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoalpha: long constant
Al Viro [Thu, 26 Jul 2007 16:34:39 +0000 (17:34 +0100)]
alpha: long constant

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoia64 time.c: ANSIfy
Al Viro [Thu, 26 Jul 2007 16:34:29 +0000 (17:34 +0100)]
ia64 time.c: ANSIfy

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agodeal with alpha section warnings
Al Viro [Thu, 26 Jul 2007 16:34:19 +0000 (17:34 +0100)]
deal with alpha section warnings

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoviohs: extern on function definition
Al Viro [Thu, 26 Jul 2007 16:34:09 +0000 (17:34 +0100)]
viohs: extern on function definition

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoinitramfs: missing __init
Al Viro [Thu, 26 Jul 2007 16:33:59 +0000 (17:33 +0100)]
initramfs: missing __init

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agolockd and nfsd endianness annotation fixes
Al Viro [Thu, 26 Jul 2007 16:33:49 +0000 (17:33 +0100)]
lockd and nfsd endianness annotation fixes

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agonet/* misc endianness annotations
Al Viro [Thu, 26 Jul 2007 16:33:39 +0000 (17:33 +0100)]
net/* misc endianness annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoip6_tunnel - endianness annotations
Al Viro [Thu, 26 Jul 2007 16:33:29 +0000 (17:33 +0100)]
ip6_tunnel - endianness annotations

Convert rel_info to host-endian before calling ip6_tnl_err().
The things become much more straightforward that way.
The key observation (and the reason why that code actually
worked) is that after ip6_tnl_err() we either immediately
bailed out or had rel_info set to 0 or had it set to host-endian
and guaranteed to hit
(rel_type == ICMP_DEST_UNREACH && rel_code == ICMP_FRAG_NEEDED)
case.  So inconsistent endianness didn't really lead to bugs,
but it had been subtle and prone to breakage.  New variant is
saner and obviously safe.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agonetfilter endian regressions
Al Viro [Thu, 26 Jul 2007 16:33:19 +0000 (17:33 +0100)]
netfilter endian regressions

no real bugs, just misannotations cropping up

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agosun userflash is PCI-dependent
Al Viro [Thu, 26 Jul 2007 16:33:09 +0000 (17:33 +0100)]
sun userflash is PCI-dependent

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agomore VIRT_TO_BUS dependencies
Al Viro [Thu, 26 Jul 2007 16:32:59 +0000 (17:32 +0100)]
more VIRT_TO_BUS dependencies

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agofix missing arguments in drivers/rtc/rtc-stk17ta8.c
Al Viro [Thu, 26 Jul 2007 16:32:49 +0000 (17:32 +0100)]
fix missing arguments in drivers/rtc/rtc-stk17ta8.c

struct bin_attribute * is needed in bin_attribute ->read()/->write()
now.  Incidentally, could people please run the fscking compiler
before and after applying their patch and compare the build logs?
That (and many, many other) would be caught immediately.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agom68knommu: use setup_irq() in 68328 timer code
Greg Ungerer [Thu, 26 Jul 2007 15:09:00 +0000 (01:09 +1000)]
m68knommu: use setup_irq() in 68328 timer code

Use setup_irq() instead of request_irq() to set up system timer
in 68328 timer code. With the old m68knommu irq code this
was safe, but it is not now within the generic irq framework.

Signed-off-by: Greg Ungerer <gerg@uclinux.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agom68knommu: use setup_irq() in ColdFire PIT timer
Greg Ungerer [Thu, 26 Jul 2007 15:09:00 +0000 (01:09 +1000)]
m68knommu: use setup_irq() in ColdFire PIT timer

Use setup_irq() instead of request_irq() to set up system timer
in ColdFire PIT timer code. With the old m68knommu irq code this
was safe, but it is not now within the generic irq framework.

Signed-off-by: Greg Ungerer <gerg@uclinux.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agom68knommu: remove unused mach_trap_init
Greg Ungerer [Thu, 26 Jul 2007 15:09:00 +0000 (01:09 +1000)]
m68knommu: remove unused mach_trap_init

Remove the unused mach_trap_init function pointer. All use of it
removed with change to using generic irq framework.

Signed-off-by: Greg Ungerer <gerg@uclinux.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agom68knommu: use setup_irq() in ColdFire simple timer
Greg Ungerer [Thu, 26 Jul 2007 15:09:00 +0000 (01:09 +1000)]
m68knommu: use setup_irq() in ColdFire simple timer

Use setup_irq() instead of request_irq() to set up system timer
in ColdFire simple timer code. With the old m68knommu irq code this
was safe, but it is not now within the generic irq framework.

Signed-off-by: Greg Ungerer <gerg@uclinux.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agom68knommu: remove use of colfire_trap_init
Greg Ungerer [Thu, 26 Jul 2007 15:09:00 +0000 (01:09 +1000)]
m68knommu: remove use of colfire_trap_init

The switch to using the generic irq framework removed the
coldfire_trap_init() code, so remove all references to it.

Signed-off-by: Greg Ungerer <gerg@uclinux.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agom68knommu: use setup_irq() in 68360 timer code
Greg Ungerer [Thu, 26 Jul 2007 15:09:00 +0000 (01:09 +1000)]
m68knommu: use setup_irq() in 68360 timer code

Use setup_irq() instead of request_irq() to set up system timer
in 68360 timer code. With the old m68knommu irq code this
was safe, but it is not now within the generic irq framework.

Signed-off-by: Greg Ungerer <gerg@uclinux.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agom68knommu: add prototype for ack_bad_irq
Greg Ungerer [Thu, 26 Jul 2007 15:09:00 +0000 (01:09 +1000)]
m68knommu: add prototype for ack_bad_irq

Create prototype for ack_bad_irq() for m68knommu.
Compilation of kernel/irq/handle.c fails without it.

Signed-off-by: Greg Ungerer <gerg@uclinux.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoMerge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6
Linus Torvalds [Wed, 25 Jul 2007 22:50:20 +0000 (15:50 -0700)]
Merge branch 'release' of git://git./linux/kernel/git/aegl/linux-2.6

* 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6:
  [IA64] Nail two more simple section mismatch errors
  [IA64] fix section mismatch warnings
  [IA64] rename partial_page
  [IA64] Ensure that machvec is set up takes place before serial console
  [IA64] vector-domain - fix vector_table
  [IA64] vector-domain - handle assign_irq_vector(AUTO_ASSIGN)

17 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild
Linus Torvalds [Wed, 25 Jul 2007 22:49:59 +0000 (15:49 -0700)]
Merge git://git./linux/kernel/git/sam/kbuild

* git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild:
  kbuild: fix modpost warnings for xtensa
  kbuild: be more foregiving on init section naming
  kbuild: rearrange a few function in modpost
  kbuild: use LDFLAGS_MODULE only for .ko links
  kconfig: remove unused members from struct symbol
  kconfig: attach help text to menus
  kbuild: fix up printing of Linux C Library version in scripts/ver_linux
  kbuild: do not do section mismatch checks on vmlinux in 2nd pass

17 years agokbuild: fix modpost warnings for xtensa
Sam Ravnborg [Wed, 25 Jul 2007 20:24:52 +0000 (22:24 +0200)]
kbuild: fix modpost warnings for xtensa

The Xtensa architecture places literal pools in sections separate
from the instructions. The corresponsing text sections, therefore,
reference the .literal section, and we have to suppress those
warnings.

The naming convention defines the name for a literal
section as .SECTION.literal, unless .SECTION is .text. In that case
the name is only .literal. Using strncmp() instead of strcmp()
to compare the from-section with .SECTION.init.refok in pattern 0
should not cause any regressions for other architectures.

We also need to suppress warnings for two informational
sections (.xt.lit and .xt.prop) used by the Xtensa architecture.

Signed-off-by: Chris Zankel <chris@zankel.net>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
17 years ago[IA64] Nail two more simple section mismatch errors
Tony Luck [Fri, 20 Jul 2007 23:14:28 +0000 (16:14 -0700)]
[IA64] Nail two more simple section mismatch errors

pcibios_setup (between 'pci_setup' and 'quirk_mellanox_tavor')
setup_profiling_timer (between 'write_profile' and 'delayed_put_task_struct')

Signed-off-by: Tony Luck <tony.luck@intel.com>
17 years ago[IA64] fix section mismatch warnings
Tony Luck [Fri, 20 Jul 2007 21:39:24 +0000 (14:39 -0700)]
[IA64] fix section mismatch warnings

In 741f98fe298a73c9d47ed53703c1279a29718581 Sam added full
checking across the entire vmlinux image.  This flushed out
a dozen new section mismatch warnings.  Start the whack-a-mole
game again to stomp them out.

Signed-off-by: Tony Luck <tony.luck@intel.com>
17 years ago[IA64] rename partial_page
akpm@linux-foundation.org [Wed, 25 Jul 2007 02:44:55 +0000 (19:44 -0700)]
[IA64] rename partial_page

Jens has added a partial_page thing in splice whcih conflicts with the ia64
one.  Rename ia64 out of the way.  (ia64 chose poorly).

Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Tony Luck <tony.luck@intel.com>
17 years agokbuild: be more foregiving on init section naming
Sam Ravnborg [Wed, 25 Jul 2007 19:52:31 +0000 (21:52 +0200)]
kbuild: be more foregiving on init section naming

In the whitelist function of modpost now use the same
check to identify init_section as in other places of modpost.
This has the effect that we now recognize sections named
.init.text.19 as init sections and we no longer warn
when we see these.

At the same time make surrounding code readable by dropping
use of temporary flags.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
17 years agokbuild: rearrange a few function in modpost
Sam Ravnborg [Wed, 25 Jul 2007 19:46:40 +0000 (21:46 +0200)]
kbuild: rearrange a few function in modpost

This is a preparational patch that just move
two functions and add one (for now unused) function.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
17 years agokbuild: use LDFLAGS_MODULE only for .ko links
Roland McGrath [Mon, 23 Jul 2007 08:12:08 +0000 (01:12 -0700)]
kbuild: use LDFLAGS_MODULE only for .ko links

Sam Ravnborg pointed out that Documentation/kbuild/makefiles.txt already
says this is what it's for.  This patch makes the reality live up to the
documentation.  This fixes the problem of LDFLAGS_BUILD_ID getting into too
many places.

Signed-off-by: Roland McGrath <roland@redhat.com>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
17 years agokconfig: remove unused members from struct symbol
Sam Ravnborg [Fri, 20 Jul 2007 22:05:26 +0000 (00:05 +0200)]
kconfig: remove unused members from struct symbol

dep and dep2 in struct symbol was unused - remove them.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Roman Zippel <zippel@linux-m68k.org>
17 years agokconfig: attach help text to menus
Sam Ravnborg [Fri, 20 Jul 2007 22:00:36 +0000 (00:00 +0200)]
kconfig: attach help text to menus

Roman Zippel wrote:
> A simple example would be
> help texts, right now they are per symbol, but they should really be per
> menu, so archs can provide different help texts for something.

This patch does this and at the same time introduce a few API
funtions used to access the help text.

The relevant api functions are introduced in the various frontends.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Roman Zippel <zippel@linux-m68k.org>
17 years agokbuild: fix up printing of Linux C Library version in scripts/ver_linux
Jesper Juhl [Fri, 20 Jul 2007 00:49:23 +0000 (02:49 +0200)]
kbuild: fix up printing of Linux C Library version in scripts/ver_linux

I noticed, when running scripts/ver_linux on both a Gentoo system
and a Slackware system, that the line printing the C library
version looked a little odd. So I fixed it up to be in line with
all the rest.

  Old output:
    Linux C Library        > libc.2.5
  New output:
    Linux C Library        2.5

Signed-off-by: Jesper Juhl <jesper.juhl@gmail.com>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
17 years agokbuild: do not do section mismatch checks on vmlinux in 2nd pass
Sam Ravnborg [Fri, 20 Jul 2007 20:36:56 +0000 (22:36 +0200)]
kbuild: do not do section mismatch checks on vmlinux in 2nd pass

We already check and warn about section mismatches from vmlinux
(build as vmlinux.o) during first pass so skip the checks
during the 2nd pass where we process modules.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
17 years ago[x86 setup] Make struct apm_bios_info cross-architecture
H. Peter Anvin [Wed, 25 Jul 2007 18:06:02 +0000 (11:06 -0700)]
[x86 setup] Make struct apm_bios_info cross-architecture

struct apm_bios_info uses "unsigned short" and "unsigned long"
to mean u16 and u32 respectively.  Correct.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
17 years ago[x86 setup] Make struct ist_info cross-architecture, and use in setup code
H. Peter Anvin [Thu, 19 Jul 2007 00:19:30 +0000 (17:19 -0700)]
[x86 setup] Make struct ist_info cross-architecture, and use in setup code

Make "struct ist_info" valid on both i386 and x86-64, and use the
structure by name in the setup code.  Additionally, "Intel SpeedStep
IST" is redundant, refer to it as IST consistently.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
17 years ago[x86 setup] Fix typos in struct efi_info
H. Peter Anvin [Thu, 19 Jul 2007 00:16:19 +0000 (17:16 -0700)]
[x86 setup] Fix typos in struct efi_info

Fix missing letters in the structure members of struct efi_info.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
17 years ago[x86 setup] APM: BX should be zero when disconnecting
H. Peter Anvin [Mon, 23 Jul 2007 22:37:14 +0000 (15:37 -0700)]
[x86 setup] APM: BX should be zero when disconnecting

For APM calls, BX contains the device index, which is zero for
the system BIOS.  Disconnect requres BX = 0.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
17 years ago[x86 setup] APM detection logic bug fix
Mikael Pettersson [Mon, 23 Jul 2007 22:25:59 +0000 (00:25 +0200)]
[x86 setup] APM detection logic bug fix

Starting with kernel 2.6.23-rc1, the i386 APM driver fails
on several of my machines with the message:

apm: BIOS not found

This happens because of a bug in the i386 boot code rewrite
from assembler to C. The original assembly code had the
following code in its APM BIOS presence test (boot/setup.S):

andw $0x02, %cx # Is 32 bit supported?
je done_apm_bios # No 32-bit, no (good) APM BIOS

That is, the code bails out if bit 2 is zero.

In the new C version, this is coded as (boot/apm.c):

if (cx & 0x02) /* 32 bits supported? */
return -1;

Here we see that the test has been accidentally inverted.

The fix is to negate the test. I've verified that this
allows the APM driver to work again on my affected machines.

Signed-off-by: Mikael Pettersson <mikpe@it.uu.se>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
17 years agoMerge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris...
Linus Torvalds [Wed, 25 Jul 2007 18:28:19 +0000 (11:28 -0700)]
Merge branch 'for-linus' of git://git./linux/kernel/git/jmorris/selinux-2.6

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/selinux-2.6:
  SELinux: null-terminate context string in selinux_xfrm_sec_ctx_alloc

17 years agoMerge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux...
Linus Torvalds [Wed, 25 Jul 2007 18:28:00 +0000 (11:28 -0700)]
Merge branch 'release' of git://git./linux/kernel/git/lenb/linux-acpi-2.6

* 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6:
  ACPI: Kconfig: remove CONFIG_ACPI_SLEEP from source
  ACPI: quiet ACPI Exceptions due to no _PTC or _TSS
  ACPI: Remove references to ACPI_STATE_S2 from acpi_pm_enter
  ACPI: Kconfig: always enable CONFIG_ACPI_SLEEP on X86
  ACPI: Kconfig: fold /proc/acpi/sleep under CONFIG_ACPI_PROCFS
  ACPI: Kconfig: CONFIG_ACPI_PROCFS now defaults to N
  ACPI: autoload modules - Create __mod_acpi_device_table symbol for all ACPI drivers
  ACPI: autoload modules - Create ACPI alias interface
  ACPI: autoload modules - ACPICA modifications
  ACPI: asus-laptop: Fix failure exits
  ACPI: fix oops due to typo in new throttling code
  ACPI: ignore _PSx method for hotplugable PCI devices
  ACPI: Use ACPI methods to select PCI device suspend state
  ACPI, PNP: hook ACPI D-state to PNP suspend/resume
  ACPI: Add acpi_pm_device_sleep_state helper routine
  ACPI: Implement the set_target() callback from pm_ops

17 years ago[IA64] Ensure that machvec is set up takes place before serial console
Horms [Wed, 25 Jul 2007 07:06:25 +0000 (16:06 +0900)]
[IA64] Ensure that machvec is set up takes place before serial console

Parse the machvec command line option outside of the early_param()
so that ia64_mv is set before any console intialisation that
may result from early_param parsing.

Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: Tony Luck <tony.luck@intel.com>
17 years ago[IA64] vector-domain - fix vector_table
Kenji Kaneshige [Wed, 25 Jul 2007 08:59:22 +0000 (17:59 +0900)]
[IA64] vector-domain - fix vector_table

Fix wrong access to vector_table[].

Signed-off-by: Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
17 years ago[IA64] vector-domain - handle assign_irq_vector(AUTO_ASSIGN)
Yasuaki Ishimatsu [Tue, 24 Jul 2007 13:09:09 +0000 (22:09 +0900)]
[IA64] vector-domain - handle assign_irq_vector(AUTO_ASSIGN)

This change fixes a panic when assign_irq_vector(irq) is called with
irq = AUTO_ASSIGN.

Signed-off-by: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
17 years agom68knommu: make BOOTPARAM setup common
Greg Ungerer [Wed, 25 Jul 2007 12:07:20 +0000 (22:07 +1000)]
m68knommu: make BOOTPARAM setup common

Currently most of the m68knommu cpu/board setup files are handling
the setup of fixed boot parameters (via CONFIG_BOOTPARAM) themselves.
Move all this into the common setup code.

Signed-off-by: Greg Ungerer <gerg@uclinux.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agom68knommu: fix reset register address casting
Greg Ungerer [Wed, 25 Jul 2007 12:07:20 +0000 (22:07 +1000)]
m68knommu: fix reset register address casting

Fix types used for reset register address setup.

Signed-off-by: Greg Ungerer <gerg@uclinux.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agom68knommu: add configure support for Intec boards
Greg Ungerer [Wed, 25 Jul 2007 12:07:20 +0000 (22:07 +1000)]
m68knommu: add configure support for Intec boards

Add configure support for the Intec Wildfire and WildFireMod boards.

Signed-Off-By: Steve Bennett <steveb@workware.net.au>
Signed-off-by: Greg Ungerer <gerg@uclinux.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agom68knommu: simplify ColdFire resume code
Greg Ungerer [Wed, 25 Jul 2007 12:07:20 +0000 (22:07 +1000)]
m68knommu: simplify ColdFire resume code

It is useless to preserve THREAD_SR in `resume'.  The real user's sr
is actually in the stack.  We also don't need to disable interrupts :
we'll never be in an invalid state, the sp switch is atomic.

Signed-off-by: Philippe De Muyter <phdm@macqel.be>
Signed-off-by: Greg Ungerer <gerg@uclinux.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agom68knommu: create hw_irq.h
Greg Ungerer [Wed, 25 Jul 2007 12:07:20 +0000 (22:07 +1000)]
m68knommu: create hw_irq.h

Need an include/asm-m68knommu/hw_irq.h for kernel/hrtimer.c

Signed-off-by: Greg Ungerer <gerg@uclinux.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agom68knommu: fix definition of MCFDMA_DIR_INV
Philippe De Muyter [Wed, 25 Jul 2007 12:07:20 +0000 (22:07 +1000)]
m68knommu: fix definition of MCFDMA_DIR_INV

Fix a small typo in the definition of MCFDMA_DIR_INV (MCF5272 specific).

Signed-off-by: Greg Ungerer <gerg@uclinux.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agom68knommu: add build support for more Arcturus boards
Greg Ungerer [Wed, 25 Jul 2007 12:07:20 +0000 (22:07 +1000)]
m68knommu: add build support for more Arcturus boards

Add build support for the new Arcturus boards.

Signed-off-by: Greg Ungerer <gerg@uclinux.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agom68knommu: need to include linux/device.h in dma.c
Greg Ungerer [Wed, 25 Jul 2007 12:07:20 +0000 (22:07 +1000)]
m68knommu: need to include linux/device.h in dma.c

Need to explicitly include linux/device.h.

Signed-off-by: Greg Ungerer <gerg@uclinux.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agom68knommu: fix tick timer definition for coldfire
Greg Ungerer [Wed, 25 Jul 2007 12:07:20 +0000 (22:07 +1000)]
m68knommu: fix tick timer definition for coldfire

CLOCK_TICK_RATE should give the underlying frequency of the tick timer,
to make ntp happy.  For Coldfires, that's the main clock.

Signed-off-by: Philippe De Muyter <phdm@macqel.be>
Signed-off-by: Greg Ungerer <gerg@uclinux.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agom68knommu: add configure support for more Arcturus boards
David Wu [Wed, 25 Jul 2007 12:07:20 +0000 (22:07 +1000)]
m68knommu: add configure support for more Arcturus boards

Add configure support for the Arcturus UC5272 and UC5282 boards.

Signed-off-by: Greg Ungerer <gerg@uclinux.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agom68knommu: fix workqueues in 68328 serial driver
Greg Ungerer [Wed, 25 Jul 2007 12:07:20 +0000 (22:07 +1000)]
m68knommu: fix workqueues in 68328 serial driver

Fix workqueues in 68328 serial driver.

Signed-off-by: Greg Ungerer <gerg@uclinux.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agom68knommu: remove legacy power managament from 68328 serial driver
Greg Ungerer [Wed, 25 Jul 2007 12:07:20 +0000 (22:07 +1000)]
m68knommu: remove legacy power managament from 68328 serial driver

Remove the legacy power management code from the 68328 serial driver.
It is not used, and there is no current kernel support for power
management on the 68328.

Signed-off-by: Greg Ungerer <gerg@uclinux.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoMerge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/avi/kvm
Linus Torvalds [Wed, 25 Jul 2007 18:01:10 +0000 (11:01 -0700)]
Merge branch 'for-linus' of git://git./linux/kernel/git/avi/kvm

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/avi/kvm:
  KVM: disable writeback for 0x0f 0x01 instructions.
  KVM: Fix removal of nx capability from guest cpuid
  Revert "KVM: Avoid useless memory write when possible"
  KVM: Fix unlikely kvm_create vs decache_vcpus_on_cpu race
  KVM: Correctly handle writes crossing a page boundary

17 years agoCache xtime every call to update_wall_time
john stultz [Wed, 25 Jul 2007 01:38:34 +0000 (18:38 -0700)]
Cache xtime every call to update_wall_time

This avoids xtime lag seen with dynticks, because while 'xtime' itself
is still not updated often, we keep a 'xtime_cache' variable around that
contains the approximate real-time that _is_ updated each time we do a
'update_wall_time()', and is thus never off by more than one tick.

IOW, this restores the original semantics for 'xtime' users, as long as
you use the proper abstraction functions (ie 'current_kernel_time()' or
'get_seconds()' depending on whether you want a timespec or just the
seconds field).

[ Updated Patch.  As penance for my sins I've also yanked another #ifdef
  that was added to avoid the xtime lag w/ hrtimers.  ]

Signed-off-by: John Stultz <johnstul@us.ibm.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoCleanup non-arch xtime uses, use get_seconds() or current_kernel_time().
john stultz [Wed, 25 Jul 2007 00:47:43 +0000 (17:47 -0700)]
Cleanup non-arch xtime uses, use get_seconds() or current_kernel_time().

This avoids use of the kernel-internal "xtime" variable directly outside
of the actual time-related functions.  Instead, use the helper functions
that we already have available to us.

This doesn't actually change any behaviour, but this will allow us to
fix the fact that "xtime" isn't updated very often with CONFIG_NO_HZ
(because much of the realtime information is maintained as separate
offsets to 'xtime'), which has caused interfaces that use xtime directly
to get a time that is out of sync with the real-time clock by up to a
third of a second or so.

Signed-off-by: John Stultz <johnstul@us.ibm.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoSELinux: null-terminate context string in selinux_xfrm_sec_ctx_alloc
Venkat Yekkirala [Tue, 24 Jul 2007 14:53:23 +0000 (09:53 -0500)]
SELinux: null-terminate context string in selinux_xfrm_sec_ctx_alloc

xfrm_audit_log() expects the context string to be null-terminated
which currently doesn't happen with user-supplied contexts.

Signed-off-by: Venkat Yekkirala <vyekkirala@TrustedCS.com>
Acked-by: Stephen Smalley <sds@tycho.nsa.gov>
Signed-off-by: James Morris <jmorris@namei.org>
17 years agoKVM: disable writeback for 0x0f 0x01 instructions.
Aurelien Jarno [Wed, 25 Jul 2007 08:19:54 +0000 (10:19 +0200)]
KVM: disable writeback for 0x0f 0x01 instructions.

0x0f 0x01 instructions (ie lgdt, lidt, smsw, lmsw and invlpg) does
not use writeback. This patch set no_wb=1 when emulating those
instructions.

This fixes a regression booting the FreeBSD kernel on AMD.

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Signed-off-by: Avi Kivity <avi@qumranet.com>
17 years agoKVM: Fix removal of nx capability from guest cpuid
Avi Kivity [Wed, 25 Jul 2007 06:22:12 +0000 (09:22 +0300)]
KVM: Fix removal of nx capability from guest cpuid

Testing the wrong bit caused kvm not to disable nx on the guest when it is
disabled on the host (an mmu optimization relies on the nx bits being the
same in the guest and host).

This allows Windows to boot when nx is disabled on te host (e.g. when
host pae is disabled).

Signed-off-by: Avi Kivity <avi@qumranet.com>
17 years agoRevert "KVM: Avoid useless memory write when possible"
Avi Kivity [Mon, 23 Jul 2007 15:33:14 +0000 (18:33 +0300)]
Revert "KVM: Avoid useless memory write when possible"

This reverts commit a3c870bdce4d34332ebdba7eb9969592c4c6b243.  While it
does save useless updates, it (probably) defeats the fork detector, causing
a massive performance loss.

Signed-off-by: Avi Kivity <avi@qumranet.com>
17 years agoKVM: Fix unlikely kvm_create vs decache_vcpus_on_cpu race
Rusty Russell [Mon, 23 Jul 2007 07:08:21 +0000 (17:08 +1000)]
KVM: Fix unlikely kvm_create vs decache_vcpus_on_cpu race

We add the kvm to the vm_list before initializing the vcpu mutexes,
which can be mutex_trylock()'ed by decache_vcpus_on_cpu().

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Avi Kivity <avi@qumranet.com>
17 years agoKVM: Correctly handle writes crossing a page boundary
Avi Kivity [Sun, 22 Jul 2007 15:48:54 +0000 (18:48 +0300)]
KVM: Correctly handle writes crossing a page boundary

Writes that are contiguous in virtual memory may not be contiguous in
physical memory; so split writes that straddle a page boundary.

Thanks to Aurelien for reporting the bug, patient testing, and a fix
to this very patch.

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Signed-off-by: Avi Kivity <avi@qumranet.com>