sfrench/cifs-2.6.git
13 years agokbuild: soften modpost checks when doing cross builds
Sam Ravnborg [Sun, 23 Mar 2008 20:38:54 +0000 (21:38 +0100)]
kbuild: soften modpost checks when doing cross builds

The module alias support in the kernel have a consistency
check where it is checked that the size of a structure
in the kernel and on the build host are the same.
For cross builds this check does not make sense so detect
when we do cross builds and silently skip the check in these
situations.
This fixes a build bug for a wireless driver when cross building
for arm.

Acked-by: Michael Buesch <mb@bu3sch.de>
Tested-by: Gordon Farquharson <gordonfarquharson@gmail.com>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: stable@kernel.org
13 years agoMerge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland...
Linus Torvalds [Sun, 23 Mar 2008 00:07:59 +0000 (17:07 -0700)]
Merge branch 'for-linus' of git://git./linux/kernel/git/roland/infiniband

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband:
  RDMA/nes: Fix MSS calculation on RDMA path

13 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6
Linus Torvalds [Sun, 23 Mar 2008 00:06:57 +0000 (17:06 -0700)]
Merge git://git./linux/kernel/git/bart/ide-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6:
  Revert "ide-tape: schedule driver for removal after 6 months"
  ide: mark "hdx=remap" and "hdx=remap63" kernel parameters as obsoleted
  ide: mark "hdx=[driver_name]" and "hdx=scsi" kernel parameters as obsoleted
  ide: Documentation/ide/ide.txt fixes
  ide: mark special "ide0=" kernel parameters as obsoleted
  ide: remove commented out entries from ide_pio_blacklist[]

13 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6
Linus Torvalds [Sun, 23 Mar 2008 00:05:31 +0000 (17:05 -0700)]
Merge git://git./linux/kernel/git/sfrench/cifs-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6:
  [CIFS] Fix mem leak on dfs referral
  [CIFS] file create with acl support enabled is slow
  [CIFS] Fix mtime on cp -p when file data cached but written out too late
  [CIFS] Fix build problem
  [CIFS] cifs: replace remaining __FUNCTION__ occurrences
  [CIFS]  DFS patch that connects inode with dfs handling ops

13 years agoMerge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux...
Linus Torvalds [Sun, 23 Mar 2008 00:04:58 +0000 (17:04 -0700)]
Merge branch 'for-linus' of git://git./linux/kernel/git/x86/linux-2.6-x86

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86:
  x86: revert: reserve dma32 early for gart

13 years agoChange pagemap output format to allow for future reporting of huge pages
Hans Rosenfeld [Fri, 21 Mar 2008 23:46:59 +0000 (18:46 -0500)]
Change pagemap output format to allow for future reporting of huge pages

Change pagemap output format to allow for future reporting of huge pages.

(Format comment and minor cleanups: mpm@selenic.com)

Signed-off-by: Hans Rosenfeld <hans.rosenfeld@amd.com>
Signed-off-by: Matt Mackall <mpm@selenic.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
13 years agommc: use sysfs groups to handle conditional attributes
Pierre Ossman [Fri, 21 Mar 2008 22:54:50 +0000 (23:54 +0100)]
mmc: use sysfs groups to handle conditional attributes

Suppressing uevents turned out to be a bad idea as it screws up the
order of events, making user space very confused. Change the system to
use sysfs groups instead.

This is a regression that, for some odd reason, has gone unnoticed for
some time. It confuses hal so that the block devices (which have the
mmc device as a parent) are not registered. End result being that
desktop magic when cards are inserted won't work.

Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
13 years agoPNP: increase the number of PnP memory resources from 12 to 24
Darren Salt [Thu, 13 Mar 2008 15:35:49 +0000 (15:35 +0000)]
PNP: increase the number of PnP memory resources from 12 to 24

Increase the number of PnP memory resources from 12 to 24.

This removes an "exceeded the max num of mem resources" warning on boot. I
also noticed the reservation of two more iomem ranges on the computer on
which this was tested.

Signed-off-by: Darren Salt <linux@youmustbejoking.demon.co.uk>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Acked-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
13 years agoISAPNP: fix limits of logical device register set
Bjorn Helgaas [Fri, 21 Mar 2008 18:08:37 +0000 (12:08 -0600)]
ISAPNP: fix limits of logical device register set

PNP_MAX_MEM and PNP_MAX_PORT are mainly used to size tables of PNP
device resources.  In 2.6.24, we increased their values to accomodate
ACPI devices that have many resources:

                 2.6.23    2.6.24
                 ------    ------
  PNP_MAX_MEM       4         12
  PNP_MAX_PORT      8         40

However, ISAPNP also used these constants as the size of parts of the
logical device register set.  This register set is fixed by hardware,
so increasing the constants meant that we were reading and writing
unintended parts of the register set.

This patch changes ISAPNP to use the correct register set sizes (the
same values we used prior to 2.6.24).

Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
13 years ago[CIFS] Fix mem leak on dfs referral
Steve French [Sat, 22 Mar 2008 22:57:44 +0000 (22:57 +0000)]
[CIFS] Fix mem leak on dfs referral

Signed-off-by: Igor Mammedov <niallain@gmail.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>
13 years agox86: revert: reserve dma32 early for gart
Thomas Gleixner [Sat, 22 Mar 2008 13:13:06 +0000 (14:13 +0100)]
x86: revert: reserve dma32 early for gart

Revert

commit f62f1fc9ef94f74fda2b456d935ba2da69fa0a40
Author: Yinghai Lu <yhlu.kernel@gmail.com>
Date:   Fri Mar 7 15:02:50 2008 -0800

    x86: reserve dma32 early for gart

The patch has a dependency on bootmem modifications which are not .25
material that late in the -rc cycle. The problem which is addressed by
the patch is limited to machines with 256G and more memory booted with
NUMA disabled. This is not a .25 regression and the audience which is
affected by this problem is very limited, so it's safer to do the
revert than pulling in intrusive bootmem changes right now.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agoRevert "ide-tape: schedule driver for removal after 6 months"
Bartlomiej Zolnierkiewicz [Sat, 22 Mar 2008 15:44:27 +0000 (16:44 +0100)]
Revert "ide-tape: schedule driver for removal after 6 months"

This reverts commit d48567dd43868b3d2e1fcc33ee76dc2d38a1ddeb.

Borislav is working on ide-tape "light" version instead.

Cc: Borislav Petkov <petkovbb@gmail.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
13 years agoide: mark "hdx=remap" and "hdx=remap63" kernel parameters as obsoleted
Bartlomiej Zolnierkiewicz [Sat, 22 Mar 2008 15:40:22 +0000 (16:40 +0100)]
ide: mark "hdx=remap" and "hdx=remap63" kernel parameters as obsoleted

Mark "hdx=remap" and "hdx=remap63" kernel parameters as obsoleted
(they are layering violation and should be dealt with in the same
 way as done by libata - device-mapper should be used instead).

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
13 years agoide: mark "hdx=[driver_name]" and "hdx=scsi" kernel parameters as obsoleted
Bartlomiej Zolnierkiewicz [Sat, 22 Mar 2008 15:40:21 +0000 (16:40 +0100)]
ide: mark "hdx=[driver_name]" and "hdx=scsi" kernel parameters as obsoleted

Mark "hdx=[driver_name]" and "hdx=scsi" kernel parameters as obsoleted
(nowadays device-driver binding can be changed at runtime through sysfs
 and it can also be dealt with using per device driver parameters).

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
13 years agoide: Documentation/ide/ide.txt fixes
Bartlomiej Zolnierkiewicz [Sat, 22 Mar 2008 15:40:21 +0000 (16:40 +0100)]
ide: Documentation/ide/ide.txt fixes

* "hdx=cyls,heads,sects,wpcom,irq" should be "hdx=cyls,heads,sects".

* "hdx=" is for "x" from 'a' to 'u', "idex=" is for "x" from '0' to '9'.

* "idex=noautotune" is long gone.

* Obsoleted "ide0=" parameters were already removed from the documentation.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
13 years agoide: mark special "ide0=" kernel parameters as obsoleted
Bartlomiej Zolnierkiewicz [Sat, 22 Mar 2008 15:40:21 +0000 (16:40 +0100)]
ide: mark special "ide0=" kernel parameters as obsoleted

Mark "ide0=ali14xx|cmd640_vlb|dtc2278|ht6560b|qd65xx|umc8672" kernel
parameters as obsoleted (per host driver replacements have been available
for a long time).

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
13 years agoide: remove commented out entries from ide_pio_blacklist[]
Bartlomiej Zolnierkiewicz [Sat, 22 Mar 2008 15:40:20 +0000 (16:40 +0100)]
ide: remove commented out entries from ide_pio_blacklist[]

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
13 years agoRDMA/nes: Fix MSS calculation on RDMA path
Chien Tung [Fri, 21 Mar 2008 00:55:30 +0000 (19:55 -0500)]
RDMA/nes: Fix MSS calculation on RDMA path

Fix the calculation of the MSS for RDMA connections: we need to
allow space in frames for a VLAN tag too.

Signed-off-by: Chien Tung <ctung@neteffect.com>
Signed-off-by: Glenn Streiff <gstreiff@neteffect.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
13 years agoocfs2: MAINTAINERS update
Mark Fasheh [Fri, 21 Mar 2008 17:40:31 +0000 (10:40 -0700)]
ocfs2: MAINTAINERS update

Change my e-mail address, add Joel as new co-maintainer.

Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
13 years agoMerge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mingo/linux...
Linus Torvalds [Fri, 21 Mar 2008 17:05:19 +0000 (10:05 -0700)]
Merge branch 'for-linus' of git://git./linux/kernel/git/mingo/linux-2.6-sched-devel

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mingo/linux-2.6-sched-devel:
  sched: add arch_update_cpu_topology hook.
  sched: add exported arch_reinit_sched_domains() to header file.
  sched: remove double unlikely from schedule()
  sched: cleanup old and rarely used 'debug' features.

13 years agox86_64: free_bootmem should take phys
Yinghai Lu [Tue, 18 Mar 2008 19:40:04 +0000 (12:40 -0700)]
x86_64: free_bootmem should take phys

so use nodedata_phys directly.

Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agosync_bitops: fix wrong comments [Bug 10247]
Matti Linnanvuori [Sun, 16 Mar 2008 09:47:35 +0000 (02:47 -0700)]
sync_bitops: fix wrong comments [Bug 10247]

Fix wrong function name and references to non-x86 architectures.

Signed-off-by: Matti Linnanvuori mattilinnanvuori@yahoo.com
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agox86: trim mtrr don't close gap for resource allocation.
Yinghai Lu [Tue, 18 Mar 2008 23:44:19 +0000 (16:44 -0700)]
x86: trim mtrr don't close gap for resource allocation.

fix the bug reported here:

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

use update_memory_range() instead of add_memory_range() directly
to avoid closing the gap.

( the new code only affects and runs on systems where the MTRR
  workaround triggers. )

Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agox86: fix reboot problem with Dell Optiplex 745, 0KW626 board
Heinz-Ado Arnolds [Wed, 12 Mar 2008 15:27:56 +0000 (16:27 +0100)]
x86: fix reboot problem with Dell Optiplex 745, 0KW626 board

we have seen a little problem in rebooting Dell Optiplex 745 with the
0KW626 board. Here is a small patch enabling reboot with this board,
which forces the default reboot path it into the BIOS reboot mode.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agox86: fix fault_msg nul termination
Jiri Slaby [Wed, 12 Mar 2008 13:53:53 +0000 (14:53 +0100)]
x86: fix fault_msg nul termination

The fault_msg text is not explictly nul terminated now in startup
assembly. Do so by converting .ascii to .asciz.

Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agox86: fix long standing bug with usb after hibernation with 4GB ram
Pavel Machek [Thu, 13 Mar 2008 22:05:41 +0000 (23:05 +0100)]
x86: fix long standing bug with usb after hibernation with 4GB ram

aperture_64.c takes a piece of memory and makes it into iommu
window... but such window may not be saved by swsusp -- that leads to
oops during hibernation.

Signed-off-by: Pavel Machek <pavel@suse.cz>
Acked-by: "Rafael J. Wysocki" <rjw@sisk.pl>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agox86: hpet clock enable quirk on nVidia nForce 430
Zbigniew Luszpinski [Wed, 19 Mar 2008 14:51:50 +0000 (15:51 +0100)]
x86: hpet clock enable quirk on nVidia nForce 430

this patch allows hpet=force on nVidia nForce 430 southbridge.
This patch was tested by me on my old Asus A8N-VM CSM (where bios does not
support hpet and does not advertise it via acpi entry). My nForce430 version:
lspci -nn | grep LPC
00:0a.0 ISA bridge [0601]: nVidia Corporation MCP51 LPC Bridge [10de:0260]
(rev a2)

Kernel 2.6.24.3 after patching and using hpet=force reports this:
dmesg | grep -i hpet
Kernel command line: root=/dev/sda8 ro vga=773 video=vesafb:mtrr:4,ywrap
vt.default_utf8=0 hpet=force
Force enabled HPET at base address 0xfed00000
hpet clockevent registered
Time: hpet clocksource has been installed.

grep -i hpet /proc/timer_list
Clock Event Device: hpet
 set_next_event: hpet_legacy_next_event
 set_mode:       hpet_legacy_set_mode

grep Clock /proc/timer_list (before patching)
Clock Event Device: pit
Clock Event Device: lapic

grep Clock /proc/timer_list (after patching)
Clock Event Device: hpet
Clock Event Device: lapic

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agox86: reserve dma32 early for gart
Yinghai Lu [Fri, 7 Mar 2008 23:02:50 +0000 (15:02 -0800)]
x86: reserve dma32 early for gart

a system with 256 GB of RAM, when NUMA is disabled crashes the
following way:

Your BIOS doesn't leave a aperture memory hole
Please enable the IOMMU option in the BIOS setup
This costs you 64 MB of RAM
Cannot allocate aperture memory hole (ffff8101c0000000,65536K)
Kernel panic - not syncing: Not enough memory for aperture
Pid: 0, comm: swapper Not tainted 2.6.25-rc4-x86-latest.git #33

Call Trace:
 [<ffffffff84037c62>] panic+0xb2/0x190
 [<ffffffff840381fc>] ? release_console_sem+0x7c/0x250
 [<ffffffff847b1628>] ? __alloc_bootmem_nopanic+0x48/0x90
 [<ffffffff847b0ac9>] ? free_bootmem+0x29/0x50
 [<ffffffff847ac1f7>] gart_iommu_hole_init+0x5e7/0x680
 [<ffffffff847b255b>] ? alloc_large_system_hash+0x16b/0x310
 [<ffffffff84506a2f>] ? _etext+0x0/0x1
 [<ffffffff847a2e8c>] pci_iommu_alloc+0x1c/0x40
 [<ffffffff847ac795>] mem_init+0x45/0x1a0
 [<ffffffff8479ff35>] start_kernel+0x295/0x380
 [<ffffffff8479f1c2>] _sinittext+0x1c2/0x230

the root cause is : memmap PMD is too big,
[ffffe200e0600000-ffffe200e07fffff] PMD ->ffff81383c000000 on node 0
almost near 4G..., and vmemmap_alloc_block will use up the ram under 4G.

solution will be:
1. make memmap allocation get memory above 4G...
2. reserve some dma32 range early before we try to set up memmap for all.
and release that before pci_iommu_alloc, so gart or swiotlb could get some
range under 4g limit for sure.

the patch is using method 2.
because method1 may need more code to handle SPARSEMEM and SPASEMEM_VMEMMAP

will get
Your BIOS doesn't leave a aperture memory hole
Please enable the IOMMU option in the BIOS setup
This costs you 64 MB of RAM
Mapping aperture over 65536 KB of RAM @ 4000000
Memory: 264245736k/268959744k available (8484k kernel code, 4187464k reserved, 4004k data, 724k init)

Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agox86: add the DFF (Desktop Form Factor) Dell Optiplex 745 to the reboot errata list
Coleman Kane [Tue, 4 Mar 2008 23:05:41 +0000 (15:05 -0800)]
x86: add the DFF (Desktop Form Factor) Dell Optiplex 745 to the reboot errata list

We recently got some of the "Desktop Form Factor" Optiplex 745's in.  I
noticed that there's an entry for the SFF one's, but the BIOS model number
of the DFF differs from that of the SFF.  We have been reliably
experiencing the same (as far as I can tell) reboot bug as the SFF boxes.

Cc: "H. Peter Anvin" <hpa@zytor.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agox86/visws: fix printk format warnings
Randy Dunlap [Tue, 4 Mar 2008 22:55:47 +0000 (14:55 -0800)]
x86/visws: fix printk format warnings

Fix visws printk format warnings:

/local/linsrc/linux-2.6.24-git15/arch/x86/mach-visws/traps.c:50: warning: format '%#lx' expects type 'long unsigned int', but argument 2 has type 'u32'
/local/linsrc/linux-2.6.24-git15/arch/x86/mach-visws/traps.c:50: warning: format '%#lx' expects type 'long unsigned int', but argument 3 has type 'u32'

Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agox86: fix {clear,copy}_user_page() declarations in page.h
Chuck Lever [Tue, 4 Mar 2008 22:55:45 +0000 (14:55 -0800)]
x86: fix {clear,copy}_user_page() declarations in page.h

Clean up: eliminate some compiler noise on x86 when building with strict
warnings enabled, introduced by commit 345b904c.

In file included from include2/asm/thread_info_64.h:12,
                 from include2/asm/thread_info.h:4,
                 from
/home/cel/src/linux/nfs-2.6/include/linux/thread_info.h:35,
                 from
/home/cel/src/linux/nfs-2.6/include/linux/preempt.h:9,
                 from
/home/cel/src/linux/nfs-2.6/include/linux/spinlock.h:49,
                 from /home/cel/src/linux/nfs-2.6/include/linux/mmzone.h:7,
                 from /home/cel/src/linux/nfs-2.6/include/linux/gfp.h:4,
                 from /home/cel/src/linux/nfs-2.6/include/linux/slab.h:14,
                 from /home/cel/src/linux/nfs-2.6/fs/nfsd/nfs4acl.c:40:
include2/asm/page.h:55: warning: `inline' is not at beginning of
declaration
include2/asm/page.h:61: warning: `inline' is not at beginning of
declaration

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Cc: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agox86: cast cmpxchg and cmpxchg_local result for 386 and 486
Mathieu Desnoyers [Thu, 6 Mar 2008 12:45:46 +0000 (13:45 +0100)]
x86: cast cmpxchg and cmpxchg_local result for 386 and 486

mm/slub.c: In function 'slab_alloc':
mm/slub.c:1637: warning: assignment makes pointer from integer without a cast
mm/slub.c:1637: warning: assignment makes pointer from integer without a cast
mm/slub.c: In function 'slab_free':
mm/slub.c:1796: warning: assignment makes pointer from integer without a cast
mm/slub.c:1796: warning: assignment makes pointer from integer without a cast

A cast is needed in the 386 and 486 code because the type is a pointer.  In
every other integer case the original cmpxchg code (and the cmpxchg_local
which has been copied from it) worked fine, but since we touch a pointer,
the type needs to be casted in the cmpxchg_local and cmpxchg macros.

The more recent code (586+) does not have this problem (the cast is already
there).

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Christoph Lameter <clameter@sgi.com>
Cc: Vegard Nossum <vegard.nossum@gmail.com>
Cc: Pekka Enberg <penberg@cs.helsinki.fi>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agox86: tight online check in setup_per_cpu_areas
Yinghai Lu [Fri, 7 Mar 2008 02:25:16 +0000 (18:25 -0800)]
x86: tight online check in setup_per_cpu_areas

when numa disabled I got this compile warning:

arch/x86/kernel/setup64.c: In function setup_per_cpu_areas:
arch/x86/kernel/setup64.c:147: warning: the address of
                      contig_page_data will always evaluate as true

it seems we missed checking if the node is online before we try to refer
NODE_DATA. Fix it.

Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agox86: fix dma_alloc_pages
Yinghai Lu [Tue, 19 Feb 2008 10:21:45 +0000 (02:21 -0800)]
x86: fix dma_alloc_pages

memory-less node support:

this patch uses updated dev_to_node, because dev_to_node already makes sure
it returns an online node.

Signed-off-by: Yinghai Lu <yinghai.lu@sun.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agosched: add arch_update_cpu_topology hook.
Heiko Carstens [Wed, 12 Mar 2008 17:31:59 +0000 (18:31 +0100)]
sched: add arch_update_cpu_topology hook.

Will be called each time the scheduling domains are rebuild.
Needed for architectures that don't have a static cpu topology.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
13 years agosched: add exported arch_reinit_sched_domains() to header file.
Heiko Carstens [Wed, 12 Mar 2008 17:31:58 +0000 (18:31 +0100)]
sched: add exported arch_reinit_sched_domains() to header file.

Needed so it can be called from outside of sched.c.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
13 years agosched: remove double unlikely from schedule()
Roel Kluin [Thu, 13 Mar 2008 16:41:59 +0000 (17:41 +0100)]
sched: remove double unlikely from schedule()

Combine two unlikely's

Signed-off-by: Roel Kluin <12o3l@tiscali.nl>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
13 years agosched: cleanup old and rarely used 'debug' features.
Peter Zijlstra [Fri, 21 Mar 2008 15:43:47 +0000 (16:43 +0100)]
sched: cleanup old and rarely used 'debug' features.

TREE_AVG and APPROX_AVG are initial task placement policies that have been
disabled for a long while.. time to remove them.

Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
CC: Srivatsa Vaddagiri <vatsa@linux.vnet.ibm.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
13 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6
Linus Torvalds [Fri, 21 Mar 2008 15:04:28 +0000 (08:04 -0700)]
Merge git://git./linux/kernel/git/davem/sparc-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6:
  [SPARC64]: Fix atomic backoff limit.

13 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
Linus Torvalds [Fri, 21 Mar 2008 14:57:45 +0000 (07:57 -0700)]
Merge git://git./linux/kernel/git/davem/net-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (46 commits)
  [NET] ifb: set separate lockdep classes for queue locks
  [IPV6] KCONFIG: Fix description about IPV6_TUNNEL.
  [TCP]: Fix shrinking windows with window scaling
  netpoll: zap_completion_queue: adjust skb->users counter
  bridge: use time_before() in br_fdb_cleanup()
  [TG3]: Fix build warning on sparc32.
  MAINTAINERS: bluez-devel is subscribers-only
  audit: netlink socket can be auto-bound to pid other than current->pid (v2)
  [NET]: Fix permissions of /proc/net
  [SCTP]: Fix a race between module load and protosw access
  [NETFILTER]: ipt_recent: sanity check hit count
  [NETFILTER]: nf_conntrack_h323: logical-bitwise & confusion in process_setup()
  [RT2X00] drivers/net/wireless/rt2x00/rt2x00dev.c: remove dead code, fix warning
  [IPV4]: esp_output() misannotations
  [8021Q]: vlan_dev misannotations
  xfrm: ->eth_proto is __be16
  [IPV4]: ipv4_is_lbcast() misannotations
  [SUNRPC]: net/* NULL noise
  [SCTP]: fix misannotated __sctp_rcv_asconf_lookup()
  [PKT_SCHED]: annotate cls_u32
  ...

13 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6.25
Linus Torvalds [Fri, 21 Mar 2008 14:56:58 +0000 (07:56 -0700)]
Merge git://git./linux/kernel/git/lethal/sh-2.6.25

* git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6.25:
  sh: Use relative paths for mach/cpu symlinks.
  SH: Use newer, non-deprecated __SPIN_LOCK_UNLOCKED macro.
  sh: Fix more user header breakage from sh64 integration.
  sh: Fix uImage build error.
  sh: Fix up the timer IRQ definition for SH7203.
  sh: Fix up the address error exception handler for SH-2.
  serial: sh-sci: Fix fifo stall on SH7760/SH7780/SH7785 SCIF.

13 years agosh: Use relative paths for mach/cpu symlinks.
Franck Bui-Huu [Fri, 21 Mar 2008 03:22:01 +0000 (12:22 +0900)]
sh: Use relative paths for mach/cpu symlinks.

When building the kernel without passing the O= command line parameter
there's no point to use absolute paths for them.

Usually relative paths are preferred because they survive directory
moves, work across networked file systems and chrooted environments.

Absolute paths are still used if an output directory is given.

Signed-off-by: Franck Bui-Huu <fbuihuu@gmail.com>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
13 years agoSH: Use newer, non-deprecated __SPIN_LOCK_UNLOCKED macro.
Robert P. J. Day [Sat, 15 Mar 2008 16:49:10 +0000 (12:49 -0400)]
SH: Use newer, non-deprecated __SPIN_LOCK_UNLOCKED macro.

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
13 years ago[NET] ifb: set separate lockdep classes for queue locks
Jarek Poplawski [Fri, 21 Mar 2008 00:05:13 +0000 (17:05 -0700)]
[NET] ifb: set separate lockdep classes for queue locks

[   10.536424] =======================================================
[   10.536424] [ INFO: possible circular locking dependency detected ]
[   10.536424] 2.6.25-rc3-devel #3
[   10.536424] -------------------------------------------------------
[   10.536424] swapper/0 is trying to acquire lock:
[   10.536424]  (&dev->queue_lock){-+..}, at: [<c0299b4a>]
dev_queue_xmit+0x175/0x2f3
[   10.536424]
[   10.536424] but task is already holding lock:
[   10.536424]  (&p->tcfc_lock){-+..}, at: [<f8a67154>] tcf_mirred+0x20/0x178
[act_mirred]
[   10.536424]
[   10.536424] which lock already depends on the new lock.

lockdep warns of locking order while using ifb with sch_ingress and
act_mirred: ingress_lock, tcfc_lock, queue_lock (usually queue_lock
is at the beginning). This patch is only to tell lockdep that ifb is
a different device (e.g. from eth) and has its own pair of queue
locks. (This warning is a false-positive in common scenario of using
ifb; yet there are possible situations, when this order could be
dangerous; lockdep should warn in such a case.) (With suggestions by
David S. Miller)

Reported-and-tested-by: Denys Fedoryshchenko <denys@visp.net.lb>
Signed-off-by: Jarek Poplawski <jarkao2@gmail.com>
Acked-by: Jamal Hadi Salim <hadi@cyberus.ca>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years ago[IPV6] KCONFIG: Fix description about IPV6_TUNNEL.
YOSHIFUJI Hideaki [Thu, 20 Mar 2008 23:13:58 +0000 (16:13 -0700)]
[IPV6] KCONFIG: Fix description about IPV6_TUNNEL.

Based on notice from "Colin" <colins@sjtu.edu.cn>.

Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years ago[TCP]: Fix shrinking windows with window scaling
Patrick McHardy [Thu, 20 Mar 2008 23:11:27 +0000 (16:11 -0700)]
[TCP]: Fix shrinking windows with window scaling

When selecting a new window, tcp_select_window() tries not to shrink
the offered window by using the maximum of the remaining offered window
size and the newly calculated window size. The newly calculated window
size is always a multiple of the window scaling factor, the remaining
window size however might not be since it depends on rcv_wup/rcv_nxt.
This means we're effectively shrinking the window when scaling it down.

The dump below shows the problem (scaling factor 2^7):

- Window size of 557 (71296) is advertised, up to 3111907257:

IP 172.2.2.3.33000 > 172.2.2.2.33000: . ack 3111835961 win 557 <...>

- New window size of 514 (65792) is advertised, up to 3111907217, 40 bytes
  below the last end:

IP 172.2.2.3.33000 > 172.2.2.2.33000: . 3113575668:3113577116(1448) ack 3111841425 win 514 <...>

The number 40 results from downscaling the remaining window:

3111907257 - 3111841425 = 65832
65832 / 2^7 = 514
65832 % 2^7 = 40

If the sender uses up the entire window before it is shrunk, this can have
chaotic effects on the connection. When sending ACKs, tcp_acceptable_seq()
will notice that the window has been shrunk since tcp_wnd_end() is before
tp->snd_nxt, which makes it choose tcp_wnd_end() as sequence number.
This will fail the receivers checks in tcp_sequence() however since it
is before it's tp->rcv_wup, making it respond with a dupack.

If both sides are in this condition, this leads to a constant flood of
ACKs until the connection times out.

Make sure the window is never shrunk by aligning the remaining window to
the window scaling factor.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agonetpoll: zap_completion_queue: adjust skb->users counter
Jarek Poplawski [Thu, 20 Mar 2008 23:07:27 +0000 (16:07 -0700)]
netpoll: zap_completion_queue: adjust skb->users counter

zap_completion_queue() retrieves skbs from completion_queue where they have
zero skb->users counter.  Before dev_kfree_skb_any() it should be non-zero
yet, so it's increased now.

Reported-and-tested-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Jarek Poplawski <jarkao2@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agobridge: use time_before() in br_fdb_cleanup()
Fabio Checconi [Thu, 20 Mar 2008 22:54:58 +0000 (15:54 -0700)]
bridge: use time_before() in br_fdb_cleanup()

In br_fdb_cleanup() next_timer and this_timer are in jiffies, so they
should be compared using the time_after() macro.

Signed-off-by: Fabio Checconi <fabio@gandalf.sssup.it>
Signed-off-by: Stephen Hemminger <stephen.hemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years ago[TG3]: Fix build warning on sparc32.
David S. Miller [Thu, 20 Mar 2008 22:53:15 +0000 (15:53 -0700)]
[TG3]: Fix build warning on sparc32.

Sparc MAC address support should be protected consistently
with CONFIG_SPARC, but there was a stray CONFIG_SPARC64
case.

Bump driver version and release date.

Reported by Andrew Morton.

Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoMAINTAINERS: bluez-devel is subscribers-only
Pavel Machek [Thu, 20 Mar 2008 22:41:02 +0000 (15:41 -0700)]
MAINTAINERS: bluez-devel is subscribers-only

Signed-off-by: Pavel Machek <pavel@suse.cz>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoaudit: netlink socket can be auto-bound to pid other than current->pid (v2)
Pavel Emelyanov [Thu, 20 Mar 2008 22:39:41 +0000 (15:39 -0700)]
audit: netlink socket can be auto-bound to pid other than current->pid (v2)

From: Pavel Emelyanov <xemul@openvz.org>

This patch is based on the one from Thomas.

The kauditd_thread() calls the netlink_unicast() and passes
the audit_pid to it. The audit_pid, in turn, is received from
the user space and the tool (I've checked the audit v1.6.9)
uses getpid() to pass one in the kernel. Besides, this tool
doesn't bind the netlink socket to this id, but simply creates
it allowing the kernel to auto-bind one.

That's the preamble.

The problem is that netlink_autobind() _does_not_ guarantees
that the socket will be auto-bound to the current pid. Instead
it uses the current pid as a hint to start looking for a free
id. So, in case of conflict, the audit messages can be sent
to a wrong socket. This can happen (it's unlikely, but can be)
in case some task opens more than one netlink sockets and then
the audit one starts - in this case the audit's pid can be busy
and its socket will be bound to another id.

The proposal is to introduce an audit_nlk_pid in audit subsys,
that will point to the netlink socket to send packets to. It
will most often be equal to audit_pid. The socket id can be
got from the skb's netlink CB right in the audit_receive_msg.
The audit_nlk_pid reset to 0 is not required, since all the
decisions are taken based on audit_pid value only.

Later, if the audit tools will bind the socket themselves, the
kernel will have to provide a way to setup the audit_nlk_pid
as well.

A good side effect of this patch is that audit_pid can later
be converted to struct pid, as it is not longer safe to use
pid_t-s in the presence of pid namespaces. But audit code still
uses the tgid from task_struct in the audit_signal_info and in
the audit_filter_syscall.

Signed-off-by: Thomas Graf <tgraf@suug.ch>
Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Acked-by: Eric Paris <eparis@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years ago[NET]: Fix permissions of /proc/net
Andre Noll [Thu, 20 Mar 2008 22:27:28 +0000 (15:27 -0700)]
[NET]: Fix permissions of /proc/net

commit e9720ac ([NET]: Make /proc/net a symlink on /proc/self/net (v3))
broke ganglia and probably other applications that read /proc/net/dev.

This is due to the change of permissions of /proc/net that was
introduced in that commit.

Before: dr-xr-xr-x 5 root root 0 Mar 19 11:30 /proc/net
After: dr-xr--r-- 5 root root 0 Mar 19 11:29 /proc/self/net

This patch restores the permissions to the old value which makes
ganglia happy again.

Pavel Emelyanov says:

This also broke the postfix, as it was reported in bug #10286
and described in detail by Benjamin.

Signed-off-by: Andre Noll <maan@systemlinux.org>
Acked-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years ago[SCTP]: Fix a race between module load and protosw access
Vlad Yasevich [Thu, 20 Mar 2008 22:17:14 +0000 (15:17 -0700)]
[SCTP]: Fix a race between module load and protosw access

There is a race is SCTP between the loading of the module
and the access by the socket layer to the protocol functions.
In particular, a list of addresss that SCTP maintains is
not initialized prior to the registration with the protosw.
Thus it is possible for a user application to gain access
to SCTP functions before everything has been initialized.
The problem shows up as odd crashes during connection
initializtion when we try to access the SCTP address list.

The solution is to refactor how we do registration and
initialize the lists prior to registering with the protosw.
Care must be taken since the address list initialization
depends on some other pieces of SCTP initialization.  Also
the clean-up in case of failure now also needs to be refactored.

Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com>
Acked-by: Sridhar Samudrala <sri@us.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years ago[NETFILTER]: ipt_recent: sanity check hit count
Daniel Hokka Zakrisson [Thu, 20 Mar 2008 22:07:10 +0000 (15:07 -0700)]
[NETFILTER]: ipt_recent: sanity check hit count

If a rule using ipt_recent is created with a hit count greater than
ip_pkt_list_tot, the rule will never match as it cannot keep track
of enough timestamps. This patch makes ipt_recent refuse to create such
rules.

With ip_pkt_list_tot's default value of 20, the following can be used
to reproduce the problem.

nc -u -l 0.0.0.0 1234 &
for i in `seq 1 100`; do echo $i | nc -w 1 -u 127.0.0.1 1234; done

This limits it to 20 packets:
iptables -A OUTPUT -p udp --dport 1234 -m recent --set --name test \
         --rsource
iptables -A OUTPUT -p udp --dport 1234 -m recent --update --seconds \
         60 --hitcount 20 --name test --rsource -j DROP

While this is unlimited:
iptables -A OUTPUT -p udp --dport 1234 -m recent --set --name test \
         --rsource
iptables -A OUTPUT -p udp --dport 1234 -m recent --update --seconds \
         60 --hitcount 21 --name test --rsource -j DROP

With the patch the second rule-set will throw an EINVAL.

Reported-by: Sean Kennedy <skennedy@vcn.com>
Signed-off-by: Daniel Hokka Zakrisson <daniel@hozac.com>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years ago[NETFILTER]: nf_conntrack_h323: logical-bitwise & confusion in process_setup()
Roel Kluin [Thu, 20 Mar 2008 22:06:23 +0000 (15:06 -0700)]
[NETFILTER]: nf_conntrack_h323: logical-bitwise & confusion in process_setup()

logical-bitwise & confusion

Signed-off-by: Roel Kluin <12o3l@tiscali.nl>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoMerge branch 'hotfixes' of git://git.linux-nfs.org/projects/trondmy/nfs-2.6
Linus Torvalds [Thu, 20 Mar 2008 18:59:34 +0000 (11:59 -0700)]
Merge branch 'hotfixes' of git://git.linux-nfs.org/projects/trondmy/nfs-2.6

* 'hotfixes' of git://git.linux-nfs.org/projects/trondmy/nfs-2.6:
  nfs: don't ignore return value from nfs_pageio_add_request

13 years agoMerge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394...
Linus Torvalds [Thu, 20 Mar 2008 17:48:01 +0000 (10:48 -0700)]
Merge branch 'for-linus' of git://git./linux/kernel/git/ieee1394/linux1394-2.6

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6:
  firewire: fix panic in handle_at_packet

13 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6
Linus Torvalds [Thu, 20 Mar 2008 17:20:07 +0000 (10:20 -0700)]
Merge git://git./linux/kernel/git/jejb/scsi-rc-fixes-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6:
  [SCSI] a100u2w: fix bitmap lookup routine
  [SCSI] fix media change events for polled devices
  [SCSI] sd, sr: do not emit change event at device add
  [SCSI] mpt fusion: Power Management fixes for MPT SAS PCI-E controllers
  [SCSI] gdth: Allocate sense_buffer to prevent NULL pointer dereference
  [SCSI] arcmsr: fix iounmap error for Type B adapter
  [SCSI] isd200: Allocate sense_buffer for hacked up scsi_cmnd
  [SCSI] fix bsg queue oops with iscsi logout
  [SCSI] Fix dependency problems in SCSI drivers
  [SCSI] advansys: Fix bug in AdvLoadMicrocode

13 years agofirewire: fix panic in handle_at_packet
Stefan Richter [Sat, 15 Mar 2008 23:56:41 +0000 (00:56 +0100)]
firewire: fix panic in handle_at_packet

This fixes a use-after-free bug in the handling of split transactions.
The AT DMA handler of the request was occasionally executed after the
AR DMA handler of the response.  The AT DMA handler then accessed an
already freed packet.

Reported by Johannes Berg.
http://bugzilla.kernel.org/show_bug.cgi?id=9617

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Tested-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: Jarod Wilson <jwilson@redhat.com>
13 years agoMerge master.kernel.org:/home/rmk/linux-2.6-arm
Linus Torvalds [Thu, 20 Mar 2008 16:50:21 +0000 (09:50 -0700)]
Merge master.kernel.org:/home/rmk/linux-2.6-arm

* master.kernel.org:/home/rmk/linux-2.6-arm:
  [ARM] 4872/1: Replaces buggy macro in S3C2410 irq include
  [ARM] 4870/1: fix signal return code when enable CONFIG_OABI_COMPAT
  [ARM] 4869/1: ARM: OMAP: Fix compile for mcbsp
  [ARM] 4865/1: Register the F75375 device in the GLAN Tank platform code
  [ARM] 4864/1: Enable write buffer coalescing on IOP
  [ARM] 4863/1: AT91: CAP9 USART definitions for early debug
  [ARM] 4861/1: AT91: Update maintainer email address (again)
  ARM: OMAP1: Fix typo in OMAP1 MPU clock source initialization
  ARM: OMAP: Fix DMA CLINK mask, clear spurious interrupt
  ARM: OMAP: Fix chain_a_transfer return value
  ARM: OMAP: Fix missing makefile options
  ARM: OMAP: Fix GPIO IRQ unmask
  ARM: OMAP: Fix clockevent support for hrtimers

13 years agoMerge branch 'for-linus' of git://git390.osdl.marist.edu/pub/scm/linux-2.6
Linus Torvalds [Thu, 20 Mar 2008 16:48:49 +0000 (09:48 -0700)]
Merge branch 'for-linus' of git://git390.osdl.marist.edu/linux-2.6

* 'for-linus' of git://git390.osdl.marist.edu/pub/scm/linux-2.6:
  [S390] futex: let futex_atomic_cmpxchg_pt survive early functional tests.

13 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/v4l-dvb
Linus Torvalds [Thu, 20 Mar 2008 16:48:15 +0000 (09:48 -0700)]
Merge git://git./linux/kernel/git/mchehab/v4l-dvb

* git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/v4l-dvb:
  V4L/DVB (7367): bug #10211: Fix depencencies for cx2341x
  V4L/DVB (7362): tvp5150.c: logical-bitwise and confusion
  V4L/DVB (7334): usb video: add a device link to usbvideo devices, else hal will ignore them
  V4L/DVB (7330): V4L1 - fix v4l_compat_translate_ioctl possible NULL deref
  V4L/DVB (7328): usb/opera1.c: fix a memory leak
  V4L/DVB (7291): em28xx: correct use of and fix
  V4L/DVB (7285): em28xx: Correct use of ! and &
  V4L/DVB (7279): ivtv: Add missing sg_init_table()
  V4L/DVB (7268): saa7134: fix: tuner should be loaded before calling saa7134_board_init2()
  V4L/DVB (7267): cx88: Fix: Loads tuner module before sending commands to it
  V4L/DVB (7251): VIDEO_VIVI must depend on VIDEO_DEV
  V4L/DVB (7242): ivtv: fix for yuv filter table check
  V4L/DVB (7236): bttv: struct member initialized twice
  V4L/DVB (7228): saa7134: fix FM radio support for the Pinnacle PCTV 110i

13 years agofile capabilities: remove cap_task_kill()
Serge Hallyn [Fri, 29 Feb 2008 15:14:57 +0000 (15:14 +0000)]
file capabilities: remove cap_task_kill()

The original justification for cap_task_kill() was as follows:

check_kill_permission() does appropriate uid equivalence checks.
However with file capabilities it becomes possible for an
unprivileged user to execute a file with file capabilities
resulting in a more privileged task with the same uid.

However now that cap_task_kill() always returns 0 (permission
granted) when p->uid==current->uid, the whole hook is worthless,
and only likely to create more subtle problems in the corner cases
where it might still be called but return -EPERM.  Those cases
are basically when uids are different but euid/suid is equivalent
as per the check in check_kill_permission().

One example of a still-broken application is 'at' for non-root users.

This patch removes cap_task_kill().

Signed-off-by: Serge Hallyn <serge@hallyn.com>
Acked-by: Andrew G. Morgan <morgan@kernel.org>
Earlier-version-tested-by: Luiz Fernando N. Capitulino <lcapitulino@mandriva.com.br>
Acked-by: Casey Schaufler <casey@schaufler-ca.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
13 years ago[S390] futex: let futex_atomic_cmpxchg_pt survive early functional tests.
Heiko Carstens [Thu, 20 Mar 2008 16:33:38 +0000 (17:33 +0100)]
[S390] futex: let futex_atomic_cmpxchg_pt survive early functional tests.

a0c1e9073ef7428a14309cba010633a6cd6719ea "futex: runtime enable pi and
robust functionality" introduces a test wether futex in atomic stuff
works or not.
It does that by writing to address 0 of the kernel address space. This
will crash on older machines where addressing mode switching is enabled
but where the mvcos instruction is not available. Page table walking is
done by hand and therefore the code tries to access current->mm which
is NULL.
Therefore add an extra check, so we survive the early test.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
13 years agoMerge branch 'omap-fixes' of master.kernel.org:/pub/scm/linux/kernel/git/tmlind/linux...
Russell King [Thu, 20 Mar 2008 15:59:51 +0000 (15:59 +0000)]
Merge branch 'omap-fixes' of /linux/kernel/git/tmlind/linux-omap-2.6 into m

* 'omap-fixes' of master.kernel.org:/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6:
  ARM: OMAP1: Fix typo in OMAP1 MPU clock source initialization
  ARM: OMAP: Fix DMA CLINK mask, clear spurious interrupt
  ARM: OMAP: Fix chain_a_transfer return value
  ARM: OMAP: Fix missing makefile options
  ARM: OMAP: Fix GPIO IRQ unmask
  ARM: OMAP: Fix clockevent support for hrtimers

13 years ago[ARM] 4872/1: Replaces buggy macro in S3C2410 irq include
Davide Rizzo [Wed, 19 Mar 2008 12:51:48 +0000 (13:51 +0100)]
[ARM] 4872/1: Replaces buggy macro in S3C2410 irq include

This is a bug correction for a macro that generated wrong results.
Nobody used it in official kernel tree, my driver did.

Signed-off-by: Davide Rizzo <davide@elpa.it>
Acked-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
13 years ago[ARM] 4870/1: fix signal return code when enable CONFIG_OABI_COMPAT
janboe [Wed, 19 Mar 2008 02:34:23 +0000 (03:34 +0100)]
[ARM] 4870/1: fix signal return code when enable CONFIG_OABI_COMPAT

fix signal return code when enable CONFIG_OABI_COMPAT

Signed-off-by: Janboe Ye <janboe.ye@gmail.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
13 years ago[ARM] 4869/1: ARM: OMAP: Fix compile for mcbsp
Tony Lindgren [Mon, 17 Mar 2008 12:01:07 +0000 (13:01 +0100)]
[ARM] 4869/1: ARM: OMAP: Fix compile for mcbsp

Until DSP MMU code is merged, dsp_request_mem() does not exist.

Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
13 years ago[ARM] 4865/1: Register the F75375 device in the GLAN Tank platform code
Gordon Farquharson [Fri, 14 Mar 2008 03:07:46 +0000 (04:07 +0100)]
[ARM] 4865/1: Register the F75375 device in the GLAN Tank platform code

This patch adds the code required to register the F75375 device on the
GLAN Tank.

Signed-off-by: Gordon Farquharson <gordonfarquharson@gmail.com>
Acked-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
13 years ago[ARM] 4864/1: Enable write buffer coalescing on IOP
Arnaud Patard [Thu, 13 Mar 2008 08:53:21 +0000 (09:53 +0100)]
[ARM] 4864/1: Enable write buffer coalescing on IOP

Some bootloaders are disabling write buffer coalescing. Enable it back
under linux.

Signed-off-by: Arnaud Patard <arnaud.patard@rtp-net.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
13 years ago[ARM] 4863/1: AT91: CAP9 USART definitions for early debug
Andrew Victor [Wed, 12 Mar 2008 21:33:57 +0000 (22:33 +0100)]
[ARM] 4863/1: AT91: CAP9 USART definitions for early debug

Define AT91_USART0, 1, 2 so the selection of the UART for early kernel
messages works.
   (See commit fa3218d8594869b38b1a170ea36d176ac455b897).

Replace AT91_SHDC with AT91_SHDWC to be consistent with other AT91 platforms.

Signed-off-by: Andrew Victor <linux@maxim.org.za>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
13 years ago[ARM] 4861/1: AT91: Update maintainer email address (again)
Andrew Victor [Wed, 12 Mar 2008 20:29:09 +0000 (21:29 +0100)]
[ARM] 4861/1: AT91: Update maintainer email address (again)

Change email address of AT91 maintainer.

This reverts the incorrect change in commit
6650e0a517bbfa1c47aa3da6b3562fcb1a066c63

Signed-off-by: Andrew Victor <linux@maxim.org.za>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
13 years agoV4L/DVB (7367): bug #10211: Fix depencencies for cx2341x
Mauro Carvalho Chehab [Fri, 14 Mar 2008 00:08:20 +0000 (21:08 -0300)]
V4L/DVB (7367): bug #10211: Fix depencencies for cx2341x

Fix for build #408

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
13 years agoV4L/DVB (7362): tvp5150.c: logical-bitwise and confusion
Roel Kluin [Mon, 10 Mar 2008 00:19:13 +0000 (21:19 -0300)]
V4L/DVB (7362): tvp5150.c: logical-bitwise and confusion

logical-bitwise & confusion

Signed-off-by: Roel Kluin <12o3l@tiscali.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
13 years agoV4L/DVB (7334): usb video: add a device link to usbvideo devices, else hal will ignor...
Pascal Terjan [Fri, 7 Mar 2008 11:22:57 +0000 (08:22 -0300)]
V4L/DVB (7334): usb video: add a device link to usbvideo devices, else hal will ignore them

Signed-off-by: Pascal Terjan <pterjan@mandriva.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
13 years agoV4L/DVB (7330): V4L1 - fix v4l_compat_translate_ioctl possible NULL deref
Cyrill Gorcunov [Wed, 5 Mar 2008 23:24:43 +0000 (20:24 -0300)]
V4L/DVB (7330): V4L1 - fix v4l_compat_translate_ioctl possible NULL deref

There are possible NULL pointer derefs in case of kzalloc fails so fix them.

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
13 years agoV4L/DVB (7328): usb/opera1.c: fix a memory leak
Adrian Bunk [Thu, 28 Feb 2008 00:21:15 +0000 (21:21 -0300)]
V4L/DVB (7328): usb/opera1.c: fix a memory leak

This patch fixes a memory leak in the "testval == 0x67" case spotted by
the Coverity checker.

Signed-off-by: Adrian Bunk <bunk@kernel.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
13 years agoV4L/DVB (7291): em28xx: correct use of and fix
Andrew Morton [Tue, 4 Mar 2008 16:09:09 +0000 (13:09 -0300)]
V4L/DVB (7291): em28xx: correct use of and fix

be less silly while we're there.

Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
13 years agoV4L/DVB (7285): em28xx: Correct use of ! and &
Julia Lawall [Tue, 26 Feb 2008 23:43:56 +0000 (20:43 -0300)]
V4L/DVB (7285): em28xx: Correct use of ! and &

In commit e6bafba5b4765a5a252f1b8d31cbf6d2459da337, a bug was fixed that
involved converting !x & y to !(x & y).  The code below shows the same
pattern, and thus should perhaps be fixed in the same way.

This is not tested and clearly changes the semantics, so it is only
something to consider.

The semantic patch that makes this change is as follows:
(http://www.emn.fr/x-info/coccinelle/)

// <smpl>
@@ expression E1,E2; @@
(
  !E1 & !E2
|
- !E1 & E2
+ !(E1 & E2)
)
// </smpl>

Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
13 years agoV4L/DVB (7279): ivtv: Add missing sg_init_table()
Ian Armstrong [Tue, 26 Feb 2008 19:09:00 +0000 (16:09 -0300)]
V4L/DVB (7279): ivtv: Add missing sg_init_table()

If a dma transfer is attempted for either yuv or framebuffer output, a missing
sg_init_table() call causes a kernel BUG in scatterlist.h if CONFIG_DEBUG_SG
is set.

Signed-off-by: Ian Armstrong <ian@iarmst.demon.co.uk>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
13 years agoV4L/DVB (7268): saa7134: fix: tuner should be loaded before calling saa7134_board_init2()
Mauro Carvalho Chehab [Tue, 19 Feb 2008 19:26:33 +0000 (16:26 -0300)]
V4L/DVB (7268): saa7134: fix: tuner should be loaded before calling saa7134_board_init2()

There are several parts of saa7134_board_init2() that calls tuner modules. We
should first load tuner, otherwise, the commands will fail.

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
13 years agoV4L/DVB (7267): cx88: Fix: Loads tuner module before sending commands to it
Mauro Carvalho Chehab [Tue, 19 Feb 2008 19:22:25 +0000 (16:22 -0300)]
V4L/DVB (7267): cx88: Fix: Loads tuner module before sending commands to it

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
13 years agoV4L/DVB (7251): VIDEO_VIVI must depend on VIDEO_DEV
Adrian Bunk [Mon, 25 Feb 2008 03:08:10 +0000 (00:08 -0300)]
V4L/DVB (7251): VIDEO_VIVI must depend on VIDEO_DEV

This patch fixes the following compile error with
VIDEO_VIVI=y, VIDEO_DEV=m reported by Toralf Förster:

<--  snip  -->

...
  LD      .tmp_vmlinux1
drivers/built-in.o: In function `vivi_release':
vivi.c:(.text+0x322f5): undefined reference to `video_unregister_device'
vivi.c:(.text+0x32337): undefined reference to `video_device_release'
drivers/built-in.o: In function `vivi_open':
vivi.c:(.text+0x32845): undefined reference to `v4l2_type_names'
drivers/built-in.o: In function `vivi_init':
vivi.c:(.init.text+0x1d20): undefined reference to `video_device_alloc'
vivi.c:(.init.text+0x1d48): undefined reference to `video_register_device'
drivers/built-in.o:(.rodata+0x1b40): undefined reference to
`video_ioctl2'drivers/built-in.o:(.data+0x140c): undefined reference to
`video_device_release'

<--  snip  -->

Signed-off-by: Adrian Bunk <bunk@kernel.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
13 years agoV4L/DVB (7242): ivtv: fix for yuv filter table check
Ian Armstrong [Sat, 26 Jan 2008 11:52:58 +0000 (08:52 -0300)]
V4L/DVB (7242): ivtv: fix for yuv filter table check

As the result of a previous change that delayed the loading of the firmware,
the driver can sometimes report a bogus error regarding the yuv output filter
table not being found in the firmware. This patch moves the filter table
check to ensure it's only done after the firmware has been loaded.

Signed-off-by: Ian Armstrong <ian@iarmst.demon.co.uk>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
13 years agoV4L/DVB (7236): bttv: struct member initialized twice
Harvey Harrison [Sat, 23 Feb 2008 10:29:16 +0000 (07:29 -0300)]
V4L/DVB (7236): bttv: struct member initialized twice

fixes sparse warning:
drivers/media/video/bt8xx/bttv-driver.c:3391:3: warning: Initializer entry defined twice
drivers/media/video/bt8xx/bttv-driver.c:3392:3:   also defined here

Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
13 years agoV4L/DVB (7228): saa7134: fix FM radio support for the Pinnacle PCTV 110i
Yuri Funduryan [Sun, 17 Feb 2008 04:22:37 +0000 (01:22 -0300)]
V4L/DVB (7228): saa7134: fix FM radio support for the Pinnacle PCTV 110i

This also has some coding style fixes.

Signed-off-by: Yuri Funduryan <yurifun@mail.ru>
Signed-off-by: Hartmut Hackmann <hartmut.hackmann@t-online.de>
Reviewed-by: Hermann Pitton <hermann-pitton@arcor.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
13 years agoARM: OMAP1: Fix typo in OMAP1 MPU clock source initialization
Will Newton [Tue, 11 Mar 2008 09:47:43 +0000 (09:47 +0000)]
ARM: OMAP1: Fix typo in OMAP1 MPU clock source initialization

Fix typo in OMAP1 MPU clock source initialization.

Signed-off-by: Will Newton <will.newton@gmail.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
13 years agoARM: OMAP: Fix DMA CLINK mask, clear spurious interrupt
Gadiyar, Anand [Sat, 8 Mar 2008 13:49:13 +0000 (05:49 -0800)]
ARM: OMAP: Fix DMA CLINK mask, clear spurious interrupt

Fix CLINK mask, clear spurious interrupt.

Signed-off-by: Gadiyar, Anand <gadiyar@ti.com>
Signed-off-by: Kevin Hilman <khilman@mvista.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
13 years agoARM: OMAP: Fix chain_a_transfer return value
Anand Gadiyar [Mon, 10 Mar 2008 19:40:35 +0000 (01:10 +0530)]
ARM: OMAP: Fix chain_a_transfer return value

This patch changes the return value of omap_dma_chain_a_transfer
to 0 on success instead of the flag 'start_dma', which wasn't really useful
for anything.

Signed-off-by: Anand Gadiyar <gadiyar@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
13 years agoARM: OMAP: Fix missing makefile options
Tony Lindgren [Thu, 13 Mar 2008 13:03:36 +0000 (15:03 +0200)]
ARM: OMAP: Fix missing makefile options

Although audio and dsp drivers are not integrated yet,
allow compiling in mailbox and mcbsp to see any build
warnings.

Signed-off-by: Tony Lindgren <tony@atomide.com>
13 years agoARM: OMAP: Fix GPIO IRQ unmask
Kevin Hilman [Thu, 17 Jan 2008 05:56:14 +0000 (21:56 -0800)]
ARM: OMAP: Fix GPIO IRQ unmask

GPIO IRQ unmask doesn't actually do anything useful.  The problem is
hidden by a separate explicit mass unmask at the end of the chained
bank handler.

Signed-off-by: Kevin Hilman <khilman@mvista.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
13 years agoARM: OMAP: Fix clockevent support for hrtimers
Kevin Hilman [Fri, 19 Oct 2007 06:04:43 +0000 (23:04 -0700)]
ARM: OMAP: Fix clockevent support for hrtimers

One-shot mode was broken in MPU-timer support for OMAP1 due to a typo.

Also, ensure timer is stopped before changing the auto-reload flag.
The TRM says changing the AR flag when timer is running is undefined.

Also set GENERIC_CLOCKEVENTS for all omaps.

Signed-off-by: Tim Bird <tim.bird@am.sony.com>
Signed-off-by: Kevin Hilman <khilman@mvista.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
13 years ago[SCSI] a100u2w: fix bitmap lookup routine
Akinobu Mita [Mon, 17 Mar 2008 12:32:02 +0000 (21:32 +0900)]
[SCSI] a100u2w: fix bitmap lookup routine

This patch is only compile tested.

It seems that bitmap lookup routine for allocation_map in
a100u2w driver is simply wrong.

It cannot lookup more than first 32 bits. If all first 32 bits
are set, it just returns 33-th orc_scb even though the 33-th bit
is not set.

Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
Tested-by: Alan Cox <alan@redhat.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
13 years agodrivers/char/rocket portability fixes
Al Viro [Wed, 19 Mar 2008 16:27:48 +0000 (16:27 +0000)]
drivers/char/rocket portability fixes

unsigned long != __le32, TYVM, and unsigned char[4] is not guaranteed
to be aligned for u32.

While we are at it, sanitize sOutDW() a bit - have it take Byte_t * and
handle dereferencing internally.

NB: sWriteTxPrioByte() is almost certainly buggered on big-endian and is
missing cpu_to_le16() on assignments to *WordPtr; I've left it alone for now.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Acked-by: "Theodore Ts'o" <tytso@mit.edu>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
13 years agoMerge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc
Linus Torvalds [Thu, 20 Mar 2008 02:10:56 +0000 (19:10 -0700)]
Merge branch 'merge' of git://git./linux/kernel/git/paulus/powerpc

* 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc:
  [POWERPC] Update some defconfigs
  [POWERPC] Hide resources on Axon PCIE root complex nodes
  [POWERPC] Fix cell IOMMU code to cope with empty dma-ranges and non-PCI devices
  [POWERPC] Fix build failure for tqm8540 and sbc85xx defconfigs
  [POWERPC] Fix PMU + soft interrupt disable bug
  [POWERPC] user_regset PTRACE_SETREGS regression fix

13 years agofbdev: defio and Metronomefb
Jaya Kumar [Thu, 20 Mar 2008 00:01:10 +0000 (17:01 -0700)]
fbdev: defio and Metronomefb

Implement support for the E-Ink Metronome controller.  It provides an mmapable
interface to the controller using defio support.  It was tested with a gumstix
pxa255 with Vizplex media using Xfbdev and various X clients such as xeyes,
xpdf, xloadimage.

This patch also fixes the following bug: Defio would cause a hang on write
access to the framebuffer as the page fault would be called ad-infinitum.  It
fixes fb_defio by setting the mapping to be used by page_mkclean.

Signed-off-by: Jaya Kumar <jayakumar.lkml@gmail.com>
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>
13 years agortc-at91sam9 fixes
David Brownell [Thu, 20 Mar 2008 00:01:09 +0000 (17:01 -0700)]
rtc-at91sam9 fixes

Updates to the at91sam9 rtt-as-rtc driver:

 - Bugfix:  IRQ enable bits need shifting before masking with status
 - Platform code to initialize wakeup bits didn't get merged; cope

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Cc: Justin Waters <justin.waters@timesys.com>
Cc: Alessandro Zummo <a.zummo@towertech.it>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
13 years agorevert "clocksource: make clocksource watchdog cycle through online CPUs"
Andrew Morton [Thu, 20 Mar 2008 00:01:08 +0000 (17:01 -0700)]
revert "clocksource: make clocksource watchdog cycle through online CPUs"

Revert commit 1ada5cba6a0318f90e45b38557e7b5206a9cba38 ("clocksource:
make clocksource watchdog cycle through online CPUs") due to the
regression reported by Gabriel C at

http://lkml.org/lkml/2008/2/24/281

(short vesion: it makes TSC be marked as always unstable on his
machine).

Cc: Andi Kleen <ak@suse.de>
Acked-by: Ingo Molnar <mingo@elte.hu>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Robert Hancock <hancockr@shaw.ca>
Acked-by: Linus Torvalds <torvalds@linux-foundation.org>
Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
Cc: Gabriel C <nix.or.die@googlemail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
13 years agomemstick: optimize setup of JMicron host parameters
Alex Dubov [Thu, 20 Mar 2008 00:01:08 +0000 (17:01 -0700)]
memstick: optimize setup of JMicron host parameters

Set correct clock management values to improve over-all performance.

Signed-off-by: Alex Dubov <oakad@yahoo.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
13 years agomemstick: add support for 8-bit parallel mode
Alex Dubov [Thu, 20 Mar 2008 00:01:07 +0000 (17:01 -0700)]
memstick: add support for 8-bit parallel mode

Newer MemoryStick (HG) cards and hosts support 8-bit parallel mode of
operation in addition to original 4-bit and 1-bit modes.

Signed-off-by: Alex Dubov <oakad@yahoo.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>