14 years agox86: don't print a warning when MTRR are blank and running in KVM
Joerg Roedel [Thu, 21 Feb 2008 14:50:14 +0000 (15:50 +0100)]
x86: don't print a warning when MTRR are blank and running in KVM

Inside a KVM virtual machine the MTRRs are usually blank. This confuses Linux
and causes a warning message at boot. This patch removes that warning message
when running Linux as a KVM guest.

Signed-off-by: Joerg Roedel <>
Signed-off-by: Ingo Molnar <>
14 years agox86: fix execve with -fstack-protect
Ingo Molnar [Tue, 26 Feb 2008 11:55:57 +0000 (12:55 +0100)]
x86: fix execve with -fstack-protect

pointed out by

> what happens here is that gcc treats the argument area as owned by the
> callee, not the caller and is allowed to do certain tricks. for ssp it
> will make a copy of the struct passed by value into the local variable
> area and pass *its* address down, and it won't copy it back into the
> original instance stored in the argument area.
> so once sys_execve returns, the pt_regs passed by value hasn't at all
> changed and its default content will cause a nice double fault (FWIW,
> this part took me the longest to debug, being down with cold didn't
> help it either ;).

To fix this we pass in pt_regs by pointer.

Signed-off-by: Ingo Molnar <>
Signed-off-by: Thomas Gleixner <>
14 years agox86: fix vsyscall wreckage
Thomas Gleixner [Wed, 20 Feb 2008 22:57:30 +0000 (23:57 +0100)]
x86: fix vsyscall wreckage

based on a report from Arne Georg Gleditsch about user-space apps
misbehaving after toggling /proc/sys/kernel/vsyscall64, a review
of the code revealed that the "NOP patching" done there is
fundamentally unsafe for a number of reasons:

1) the patching code runs without synchronizing other CPUs

2) it inserts NOPs even if there is no clock source which provides vread

3) when the clock source changes to one without vread we run in
   exactly the same problem as in #2

4) if nobody toggles the proc entry from 1 to 0 and to 1 again, then
   the syscall is not patched out

as a result it is possible to break user-space via this patching.
The only safe thing for now is to remove the patching.

This code was broken since v2.6.21.

Reported-by: Arne Georg Gleditsch <>
Signed-off-by: Thomas Gleixner <>
Signed-off-by: Ingo Molnar <>
14 years agox86: rename KERNEL_TEXT_SIZE => KERNEL_IMAGE_SIZE
Ingo Molnar [Thu, 21 Feb 2008 12:39:30 +0000 (13:39 +0100)]

The KERNEL_TEXT_SIZE constant was mis-named, as we not only map the kernel
text but data, bss and init sections as well.

That name led me on the wrong path with the KERNEL_TEXT_SIZE regression,
because i knew how big of _text_ my images have and i knew about the 40 MB
"text" limit so i wrongly thought to be on the safe side of the 40 MB limit
with my 29 MB of text, while the total image size was slightly above 40 MB.

Signed-off-by: Ingo Molnar <>
14 years agox86: fix spontaneous reboot with allyesconfig bzImage
Ingo Molnar [Thu, 21 Feb 2008 10:04:11 +0000 (11:04 +0100)]
x86: fix spontaneous reboot with allyesconfig bzImage

recently the 64-bit allyesconfig bzImage kernel started spontaneously
rebooting during early bootup.

after a few fun hours spent with early init debugging, it turns out
that we've got this rather annoying limit on the size of the kernel

      #define KERNEL_TEXT_SIZE  (40*1024*1024)

which limit my vmlinux just happened to pass:

       text           data       bss        dec       hex   filename
   29703744        4222751   8646224   42572719   2899baf   vmlinux

40 MB is 42572719 bytes, so my vmlinux was just 1.5% above this limit :-/

So it happily crashed right in head_64.S, which - as we all know - is
the most debuggable code in the whole architecture ;-)

So increase the limit to allow an up to 128MB kernel image to be mapped.
(should anyone be that crazy or lazy)

We have a full 4K of pagetable (level2_kernel_pgt) allocated for these
mappings already, so there's no RAM overhead and the limit was rather
pointless and arbitrary.

Signed-off-by: Ingo Molnar <>
14 years agox86: remove double-checking empty zero pages debug
Yinghai Lu [Thu, 21 Feb 2008 02:53:17 +0000 (18:53 -0800)]
x86: remove double-checking empty zero pages debug

so far no one complained about that.

Signed-off-by: Yinghai Lu <>
Signed-off-by: Ingo Molnar <>
14 years agox86: notsc is ignored on common configurations
Pavel Machek [Tue, 19 Feb 2008 10:02:30 +0000 (11:02 +0100)]
x86: notsc is ignored on common configurations

notsc is ignored in 32-bit kernels if CONFIG_X86_TSC is on.. which is
bad, fix it.

Signed-off-by: Pavel Machek <>
Signed-off-by: Ingo Molnar <>
14 years agox86/mtrr: fix kernel-doc missing notation
Randy Dunlap [Mon, 18 Feb 2008 21:10:44 +0000 (13:10 -0800)]
x86/mtrr: fix kernel-doc missing notation

Fix mtrr kernel-doc warning:
Warning(linux-2.6.24-git12//arch/x86/kernel/cpu/mtrr/main.c:677): No description found for parameter 'end_pfn'

Signed-off-by: Randy Dunlap <>
Signed-off-by: Ingo Molnar <>
14 years agox86: handle BIOSes which terminate e820 with CF=1 and no SMAP
H. Peter Anvin [Wed, 13 Feb 2008 19:16:46 +0000 (11:16 -0800)]
x86: handle BIOSes which terminate e820 with CF=1 and no SMAP

The proper way to terminate the e820 chain is with %ebx == 0 on the
last legitimate memory block.  However, several BIOSes don't do that
and instead return error (CF = 1) when trying to read off the end of
the list.  For this error return, %eax doesn't necessarily return the
SMAP signature -- correctly so, since %ah should contain an error code
in this case.

To deal with some particularly broken BIOSes, we clear the entire e820
chain if the SMAP signature is missing in the middle, indicating a
plain insane e820 implementation.  However, we need to make the test
for CF = 1 before the SMAP check.

This fixes at least one HP laptop (nc6400) for which none of the
memory-probing methods (e820, e801, 88) functioned fully according to

Signed-off-by: H. Peter Anvin <>
Signed-off-by: Ingo Molnar <>
Signed-off-by: Thomas Gleixner <>
14 years agox86: add comments for NOPs
H. Peter Anvin [Tue, 19 Feb 2008 07:24:33 +0000 (23:24 -0800)]
x86: add comments for NOPs

Add comments describing the various NOP sequences.

Signed-off-by: H. Peter Anvin <>
Signed-off-by: Ingo Molnar <>
Signed-off-by: Thomas Gleixner <>
14 years agox86: don't use P6_NOPs if compiling with CONFIG_X86_GENERIC
H. Peter Anvin [Thu, 14 Feb 2008 22:56:45 +0000 (14:56 -0800)]
x86: don't use P6_NOPs if compiling with CONFIG_X86_GENERIC

P6_NOPs are definitely not supported on some VIA CPUs, and possibly
(unverified) on AMD K7s.  It is also the only thing that prevents a
686 kernel from running on Transmeta TM3x00/5x00 (Crusoe) series.

The performance benefit over generic NOPs is very small, so when
building for generic consumption, avoid using them.

Signed-off-by: H. Peter Anvin <>
Signed-off-by: Ingo Molnar <>
Signed-off-by: Thomas Gleixner <>
14 years agox86: require family >= 6 if we are using P6 NOPs
H. Peter Anvin [Thu, 14 Feb 2008 22:52:05 +0000 (14:52 -0800)]
x86: require family >= 6 if we are using P6 NOPs

The P6 family of NOPs are only available on family >= 6 or above, so
enforce that in the boot code.

Signed-off-by: H. Peter Anvin <>
Signed-off-by: Ingo Molnar <>
Signed-off-by: Thomas Gleixner <>
14 years agox86: do not promote TM3x00/TM5x00 to i686-class
H. Peter Anvin [Thu, 14 Feb 2008 22:51:00 +0000 (14:51 -0800)]
x86: do not promote TM3x00/TM5x00 to i686-class

We have been promoting Transmeta TM3x00/TM5x00 chips to i686-class
based on the notion that they contain all the user-space visible
features of an i686-class chip.  However, this is not actually true:
they lack the EA-taking long NOPs (0F 1F /0).  Since this is a
userspace-visible incompatibility, downgrade these CPUs to the
manufacturer-defined i586 level.

Signed-off-by: H. Peter Anvin <>
Signed-off-by: Ingo Molnar <>
Signed-off-by: Thomas Gleixner <>
14 years agox86: hpet fix docbook comment
Pavel Machek [Mon, 4 Feb 2008 23:48:13 +0000 (00:48 +0100)]
x86: hpet fix docbook comment

Signed-off-by: Pavel Machek <>
Signed-off-by: Ingo Molnar <>
Signed-off-by: Thomas Gleixner <>
14 years agox86: make DEBUG_PAGEALLOC and CPA more robust
Ingo Molnar [Wed, 13 Feb 2008 13:37:52 +0000 (14:37 +0100)]
x86: make DEBUG_PAGEALLOC and CPA more robust

Use PF_MEMALLOC to prevent recursive calls in the DBEUG_PAGEALLOC
case. This makes the code simpler and more robust against allocation

This fixes the following fallback to non-mmconfig:

Also, for DEBUG_PAGEALLOC=n reduce the pool size to one page.

Signed-off-by: Ingo Molnar <>
Signed-off-by: Thomas Gleixner <>
14 years agox86/lguest: fix pgdir pmd index calculation
Ahmed S. Darwish [Sun, 24 Feb 2008 15:55:15 +0000 (17:55 +0200)]
x86/lguest: fix pgdir pmd index calculation

Hi all,

Beginning from commits close to v2.6.25-rc2, running lguest always oopses
the host kernel. Oops is at [1].

Bisection led to the following commit:

commit 37cc8d7f963ba2deec29c9b68716944516a3244f

    x86/early_ioremap: don't assume we're using swapper_pg_dir

    At the early stages of boot, before the kernel pagetable has been
    fully initialized, a Xen kernel will still be running off the
    Xen-provided pagetables rather than swapper_pg_dir[].  Therefore,
    readback cr3 to determine the base of the pagetable rather than
    assuming swapper_pg_dir[].

 static inline pmd_t * __init early_ioremap_pmd(unsigned long addr)
- pgd_t *pgd = &swapper_pg_dir[pgd_index(addr)];
+ /* Don't assume we're using swapper_pg_dir at this point */
+ pgd_t *base = __va(read_cr3());
+ pgd_t *pgd = &base[pgd_index(addr)];
  pud_t *pud = pud_offset(pgd, addr);
  pmd_t *pmd = pmd_offset(pud, addr);

Trying to analyze the problem, it seems on the guest side of lguest,
%cr3 has a different value from &swapper_pg-dir (which
is AFAIK fine on a pravirt guest):

Putting some debugging messages in early_ioremap_pmd:

/* Appears 3 times */
[    0.000000] ***************************
[    0.000000] __va(%cr3) = c0000000, &swapper_pg_dir = c02cc000
[    0.000000] ***************************

After 8 hours of debugging and staring on lguest code, I noticed something
strange in paravirt_ops->set_pmd hypercall invocation:

static void lguest_set_pmd(pmd_t *pmdp, pmd_t pmdval)
*pmdp = pmdval;
lazy_hcall(LHCALL_SET_PMD, __pa(pmdp)&PAGE_MASK,
   (__pa(pmdp)&(PAGE_SIZE-1))/4, 0);

The first hcall parameter is global pgdir which looks fine. The second
parameter is the pmd index in the pgdir which is suspectful.

AFAIK, calculating the index of pmd does not need a divisoin over four.
Removing the division made lguest work fine again . Patch is at [2].

I am not sure why the division over four existed in the first place. It
seems bogus, maybe the Xen patch just made the problem appear ?

[2]: The patch:

[PATCH] lguest: fix pgdir pmd index cacluation

Remove an error in index calculation which leads to removing
a not existing shadow page table (leading to a Null dereference).

Signed-off-by: Ahmed S. Darwish <>
Signed-off-by: Ingo Molnar <>
14 years agolguest: fix build breakage
Tony Breeds [Tue, 19 Feb 2008 07:16:03 +0000 (08:16 +0100)]
lguest: fix build breakage

[ merged to Rusty's patch ]

Signed-off-by: Ingo Molnar <>
Signed-off-by: Thomas Gleixner <>
14 years agolguest: include function prototypes
Harvey Harrison [Wed, 13 Feb 2008 21:14:35 +0000 (13:14 -0800)]
lguest: include function prototypes

Added a declaration to asm-x86/lguest.h and moved the extern arrays there
as well.  As an alternative to including asm/lguest.h directly, an
include could be put in linux/lguest.h

Signed-off-by: Harvey Harrison <>
Cc: "" <>
Signed-off-by: Ingo Molnar <>
Signed-off-by: Thomas Gleixner <>
14 years agoLinux 2.6.25-rc3 v2.6.25-rc3
Linus Torvalds [Sun, 24 Feb 2008 21:25:54 +0000 (13:25 -0800)]
Linux 2.6.25-rc3

14 years agoi2c-i801: Add support for the ICH10
Gaston, Jason D [Sun, 24 Feb 2008 19:03:42 +0000 (20:03 +0100)]
i2c-i801: Add support for the ICH10

Add the Intel ICH10 SMBus Controller DeviceID's and updates
Tolapai support.

Signed-off-by: Jason Gaston <>
Signed-off-by: Jean Delvare <>
14 years agoi2c: Make i2c_register_board_info() a NOP when CONFIG_I2C_BOARDINFO=n
David Brownell [Sun, 24 Feb 2008 19:03:42 +0000 (20:03 +0100)]
i2c: Make i2c_register_board_info() a NOP when CONFIG_I2C_BOARDINFO=n

Don't require platform code to be #ifdeffed according to whether
I2C is enabled or not ... if it's not enabled, let GCC compile out
all I2C device declarations.  (Issue noted on an NSLU2 build that
didn't configure I2C.)

Signed-off-by: David Brownell <>
Signed-off-by: Jean Delvare <>
14 years agoi2c-pca-isa: Add access check to legacy ioports
Christian Krafft [Sun, 24 Feb 2008 19:03:42 +0000 (20:03 +0100)]
i2c-pca-isa: Add access check to legacy ioports

When probing i2c-pca-isa writes to legacy ioports, which crashes the kernel
if there is no device at that port.
This patch adds a check_legacy_ioport call, so probe fails gracefully
and thus prevents the oops.

Signed-off-by: Christian Krafft <>
Signed-off-by: Jean Delvare <>
14 years agoAlchemy: compile fix
Manuel Lauss [Sun, 24 Feb 2008 19:03:42 +0000 (20:03 +0100)]
Alchemy: compile fix

Commit 8b798c4d16b762d15f4055597ff8d87f73b35552 broke
alchemy build, fix it.  Pointed out by Adrian Bunk.

Signed-off-by: Manuel Lauss <>
Signed-off-by: Jean Delvare <>
14 years agoi2c: Storage class should be before const qualifier
Tobias Klauser [Sun, 24 Feb 2008 19:03:42 +0000 (20:03 +0100)]
i2c: Storage class should be before const qualifier

The C99 specification states in section 6.11.5:

The placement of a storage-class specifier other than at the
beginning of the declaration specifiers in a declaration is an
obsolescent feature.

Signed-off-by: Tobias Klauser <>
Signed-off-by: Jean Delvare <>
14 years agoi2c-pxa: Misc fixes
Wolfram Sang [Sun, 24 Feb 2008 19:03:42 +0000 (20:03 +0100)]
i2c-pxa: Misc fixes

While working on the PCA9564-platform driver, I sometimes had a glimpse at the
pxa-driver. I found some suspicious places, and this patch contains my
suggestions. Note: They are not tested, due to no hardware.

[JD: Some more fixes.]

Signed-off-by: Wolfram Sang <>
Signed-off-by: Jean Delvare <>
Tested-by: Mike Rapoport <>
Tested-by: Eric Miao <>
14 years agoARM: OMAP: Release i2c_adapter after use (Siemens SX1)
Jean Delvare [Sun, 24 Feb 2008 19:03:41 +0000 (20:03 +0100)]
ARM: OMAP: Release i2c_adapter after use (Siemens SX1)

Each call to i2c_get_adapter() must be followed by a call to
i2c_put_adapter() to release the grabbed reference. Otherwise the
reference count grows forever and the adapter can never be

Signed-off-by: Jean Delvare <>
Acked-by: Vladimir Ananiev <>
Acked-by: Tony Lindgren <>
14 years agoMerge branch 'upstream-linus' of git://
Linus Torvalds [Sun, 24 Feb 2008 05:40:32 +0000 (21:40 -0800)]
Merge branch 'upstream-linus' of git://git./linux/kernel/git/jgarzik/libata-dev

* 'upstream-linus' of git://
  libata-core: fix kernel-doc warning
  sata_fsl: fix build with ATA_VERBOSE_DEBUG
  [libata] ahci: AMD SB700/SB800 SATA support 64bit DMA
  libata-pmp: clear hob for pmp register accesses
  libata: automatically use DMADIR if drive/bridge requires it
  power_state: get rid of write-only variable in SATA
  pata_atiixp: Use 255 sector limit

14 years agolibata-core: fix kernel-doc warning
Randy Dunlap [Fri, 22 Feb 2008 20:21:37 +0000 (12:21 -0800)]
libata-core: fix kernel-doc warning

Fix libata-core kernel-doc warning:
Warning(linux-2.6.25-rc2-git6//drivers/ata/libata-core.c:168): No description found for parameter 'ap'

Signed-off-by: Randy Dunlap <>
Signed-off-by: Jeff Garzik <>
14 years agosata_fsl: fix build with ATA_VERBOSE_DEBUG
Anton Vorontsov [Fri, 22 Feb 2008 16:54:25 +0000 (19:54 +0300)]
sata_fsl: fix build with ATA_VERBOSE_DEBUG

This patch fixes build and few warnings when ATA_VERBOSE_DEBUG
is defined:

  CC      drivers/ata/sata_fsl.o
drivers/ata/sata_fsl.c: In function ‘sata_fsl_fill_sg’:
drivers/ata/sata_fsl.c:338: warning: format ‘%x’ expects type ‘unsigned int’, but argument 3 has type ‘void *’
drivers/ata/sata_fsl.c:338: warning: format ‘%x’ expects type ‘unsigned int’, but argument 4 has type ‘struct prde *’
drivers/ata/sata_fsl.c: In function ‘sata_fsl_qc_issue’:
drivers/ata/sata_fsl.c:459: error: ‘csr_base’ undeclared (first use in this function)
drivers/ata/sata_fsl.c:459: error: (Each undeclared identifier is reported only once
drivers/ata/sata_fsl.c:459: error: for each function it appears in.)
drivers/ata/sata_fsl.c: In function ‘sata_fsl_freeze’:
drivers/ata/sata_fsl.c:525: error: ‘csr_base’ undeclared (first use in this function)
make[2]: *** [drivers/ata/sata_fsl.o] Error 1

Signed-off-by: Anton Vorontsov <>
Signed-off-by: Jeff Garzik <>
14 years ago[libata] ahci: AMD SB700/SB800 SATA support 64bit DMA
Shane Huang [Fri, 22 Feb 2008 13:00:31 +0000 (05:00 -0800)]
[libata] ahci: AMD SB700/SB800 SATA support 64bit DMA

SB700 SATA controller can support 64 bit DMA, the previous commit
badc2341579511a247f5993865aa68379e283c5c was added with
careless reference to SB600, which should be modified by this patch.

Signed-off-by: Shane Huang <>
Signed-off-by: Jeff Garzik <>
14 years agolibata-pmp: clear hob for pmp register accesses
Mark Lord [Thu, 21 Feb 2008 20:52:25 +0000 (15:52 -0500)]
libata-pmp: clear hob for pmp register accesses

>> Mark Lord wrote:
>>> Tejun, I've added PMP to sata_mv, and am now trying to get it
>>> to work with a Marvell PM attached.
>>> And the behaviour I see is very bizarre.
>>> After hard+soft resets, the PM signature is found,
>>> and libata interrogates the PM registers.
>>> It successfully reads register 0, and then register 1.
>>> But all subsequent registers read out (incorrectly) as zeros.

This behavior has been confirmed by Marvell with a SATA analyzer.
The Marvell port-multiplier apparently likes to see clean HOB
information when accessing PMP registers.

Since sata_mv uses PIO shadow register access, this doesn't happen
automatically, as it might in a more purely FIS-based driver (eg. ahci).

One way to fix this is to flag these commands with ATA_TFLAG_LBA48,
forcing libata to write out the HOB fields with known (zero) values.

Signed-off-by: Saeed Bishara <>
Acked-by: Mark Lord <>
Signed-off-by: Jeff Garzik <>
14 years agolibata: automatically use DMADIR if drive/bridge requires it
Tejun Heo [Thu, 21 Feb 2008 04:25:50 +0000 (13:25 +0900)]
libata: automatically use DMADIR if drive/bridge requires it

Back in 2.6.17-rc2, a libata module parameter was added for atapi_dmadir.

That's nice, but most SATA devices which need it will tell us about it
in their IDENTIFY PACKET response, as bit-15 of word-62 of the
returned data (as per ATA7, ATA8 specifications).

So for those which specify it, we should automatically use the DMADIR bit.
Otherwise, disc writing will fail by default on many SATA-ATAPI drives.

This patch adds ATA_DFLAG_DMADIR and make ata_dev_configure() set it
if atapi_dmadir is set or identify data indicates DMADIR is necessary.
atapi_xlat() is converted to check ATA_DFLAG_DMADIR before setting

Original patch is from Mark Lord.

Signed-off-by: Tejun Heo <>
Cc: Mark Lord <>
Signed-off-by: Jeff Garzik <>
14 years agopower_state: get rid of write-only variable in SATA
Pavel Machek [Thu, 21 Feb 2008 12:56:55 +0000 (13:56 +0100)]
power_state: get rid of write-only variable in SATA

power_state is scheduled for removal, and libata uses it in write-only
mode. Remove it.

Signed-off-by: Pavel Machek <>
Signed-off-by: Jeff Garzik <>
14 years agopata_atiixp: Use 255 sector limit
Alan Cox [Wed, 20 Feb 2008 20:09:23 +0000 (20:09 +0000)]
pata_atiixp: Use 255 sector limit

AHCI needs sorting too but this deals with the old interface

Signed-off-by: Alan Cox <>
Signed-off-by: Jeff Garzik <>
14 years agoMerge git://
Linus Torvalds [Sun, 24 Feb 2008 05:05:06 +0000 (21:05 -0800)]
Merge git://git./linux/kernel/git/davem/net-2.6

* git:// (37 commits)
  [NETFILTER]: fix ebtable targets return
  [IP_TUNNEL]: Don't limit the number of tunnels with generic name explicitly.
  [NET]: Restore sanity wrt. print_mac().
  [NEIGH]: Fix race between neighbor lookup and table's hash_rnd update.
  [RTNL]: Validate hardware and broadcast address attribute for RTM_NEWLINK
  tg3: ethtool phys_id default
  [BNX2]: Update version to 1.7.4.
  [BNX2]: Disable parallel detect on an HP blade.
  [BNX2]: More 5706S link down workaround.
  ssb: Fix support for PCI devices behind a SSB->PCI bridge
  zd1211rw: fix sparse warnings
  rtl818x: fix sparse warnings
  ssb: Fix pcicore cardbus mode
  ssb: Make the GPIO API reentrancy safe
  ssb: Fix the GPIO API
  ssb: Fix watchdog access for devices without a chipcommon
  ssb: Fix serial console on new bcm47xx devices
  ath5k: Fix build warnings on some 64-bit platforms.
  WDEV, ath5k, don't return int from bool function
  WDEV: ath5k, fix lock imbalance

14 years agoMerge git://
Linus Torvalds [Sun, 24 Feb 2008 05:00:21 +0000 (21:00 -0800)]
Merge git://git./linux/kernel/git/davem/sparc-2.6

* git://
  [SPARC64]: make IOMMU code respect the segment boundary limits
  [SPARC64]: Fix cpu trampoline et al. mismatch warnings.
  [SPARC64]: More sparse warning fixes in process.c
  [SPARC64]: Fix sparse warning wrt. fault_in_user_windows.
  [SPARC64]: Kill show_regs32().
  [SPARC64]: Fix sparse warnings wrt. __show_regs().
  [SPARC64]: Kill show_stackframe{,32}().
  [SPARC64]: Fix sparse warnings wrt. machine_alt_power_off().

14 years agoFix u132-hcd.c compile error
Mirco Tischler [Sun, 24 Feb 2008 04:16:39 +0000 (05:16 +0100)]
Fix u132-hcd.c compile error

This fixes the following compile error caused by commit
3a2d5b700132f35401f1d9e22fe3c2cab02c2549 ("PM: Introduce
PM_EVENT_HIBERNATE callback state")

    CC [M]  drivers/usb/host/u132-hcd.o
  drivers/usb/host/u132-hcd.c: In function ‘u132_suspend’:
  drivers/usb/host/u132-hcd.c:3224: error: expected expression before ‘int’
  drivers/usb/host/u132-hcd.c:3225: error: ‘ports’ undeclared (first use in this function)

Signed-off-by: Mirco Tischler <>
Signed-off-by: Linus Torvalds <>
14 years ago[NETFILTER]: fix ebtable targets return
Joonwoo Park [Sun, 24 Feb 2008 04:22:27 +0000 (20:22 -0800)]
[NETFILTER]: fix ebtable targets return

The function ebt_do_table doesn't take NF_DROP as a verdict from the targets.

Signed-off-by: Joonwoo Park <>
Signed-off-by: Patrick McHardy <>
Signed-off-by: David S. Miller <>
14 years ago[IP_TUNNEL]: Don't limit the number of tunnels with generic name explicitly.
Pavel Emelyanov [Sun, 24 Feb 2008 04:19:20 +0000 (20:19 -0800)]
[IP_TUNNEL]: Don't limit the number of tunnels with generic name explicitly.

Use the added dev_alloc_name() call to create tunnel device name,
rather than iterate in a hand-made loop with an artificial limit.

Thanks Patrick for noticing this.

[ The way this works is, when the device is actually registered,
  the generic code noticed the '%' in the name and invokes
  dev_alloc_name() to fully resolve the name.  -DaveM ]

Signed-off-by: Pavel Emelyanov <>
Signed-off-by: David S. Miller <>
14 years ago[NET]: Restore sanity wrt. print_mac().
David S. Miller [Sun, 24 Feb 2008 04:09:11 +0000 (20:09 -0800)]
[NET]: Restore sanity wrt. print_mac().

MAC_FMT had only one user and we tried to get rid of
that, but this created more problems than it solved.

As a result, this reverts three commits:

235365f3aaaa10b7056293877c0ead50425f25c7 ("net/8021q/vlan_dev.c: Use
print_mac."), fea5fa875eb235dc186b1f5184eb36abc63e26cc ("[NET]: Remove
MAC_FMT"), and 8f789c48448aed74fe1c07af76de8f04adacec7d ("[NET]:
Elminate spurious print_mac() calls.")

Signed-off-by: David S. Miller <>
14 years ago[NEIGH]: Fix race between neighbor lookup and table's hash_rnd update.
Pavel Emelyanov [Sun, 24 Feb 2008 03:57:02 +0000 (19:57 -0800)]
[NEIGH]: Fix race between neighbor lookup and table's hash_rnd update.

The neigh_hash_grow() may update the tbl->hash_rnd value, which
is used in all tbl->hash callbacks to calculate the hashval.

Two lookup routines may race with this, since they call the
->hash callback without the tbl->lock held. Since the hash_rnd
is changed with this lock write-locked moving the calls to ->hash
under this lock read-locked closes this gap.

Signed-off-by: Pavel Emelyanov <>
Signed-off-by: David S. Miller <>
14 years ago[RTNL]: Validate hardware and broadcast address attribute for RTM_NEWLINK
Thomas Graf [Sun, 24 Feb 2008 03:54:36 +0000 (19:54 -0800)]
[RTNL]: Validate hardware and broadcast address attribute for RTM_NEWLINK

RTM_NEWLINK allows for already existing links to be modified. For this
purpose do_setlink() is called which expects address attributes with a
payload length of at least dev->addr_len. This patch adds the necessary
validation for the RTM_NEWLINK case.

The address length for links to be created is not checked for now as the
actual attribute length is used when copying the address to the netdevice
structure. It might make sense to report an error if less than addr_len
bytes are provided but enforcing this might break drivers trying to be
smart with not transmitting all zero addresses.

Signed-off-by: Thomas Graf <>
Signed-off-by: David S. Miller <>
14 years agotg3: ethtool phys_id default
Stephen Hemminger [Sun, 24 Feb 2008 03:51:59 +0000 (19:51 -0800)]
tg3: ethtool phys_id default

When asked to blink LEDs the tg3 driver behaves when using:
ethtool -p ethX
The default value for data is zero, and other drivers interpret this
as blink forever (or at least a really long time).  The tg3 driver
interprets this as blink once.  All drivers should have the same

Signed-off-by: Stephen Hemminger <>
Acked-by: Michael Chan <>
Signed-off-by: David S. Miller <>
14 years ago[BNX2]: Update version to 1.7.4.
Michael Chan [Sun, 24 Feb 2008 03:49:48 +0000 (19:49 -0800)]
[BNX2]: Update version to 1.7.4.

Signed-off-by: Michael Chan <>
Signed-off-by: David S. Miller <>
14 years agofix vmsas.c file permissions
Oliver Pinter [Sun, 24 Feb 2008 03:33:21 +0000 (04:33 +0100)]
fix vmsas.c file permissions

Signed-off-by: Oliver Pinter <>
Signed-off-by: Linus Torvalds <>
14 years ago[BNX2]: Disable parallel detect on an HP blade.
Michael Chan [Sun, 24 Feb 2008 03:48:57 +0000 (19:48 -0800)]
[BNX2]: Disable parallel detect on an HP blade.

Because of some board issues, we need to disable parallel detect on
an HP blade.  Without this patch, the link state can become stuck
when it goes into parallel detect mode.

Signed-off-by: Michael Chan <>
Signed-off-by: David S. Miller <>
14 years ago[BNX2]: More 5706S link down workaround.
Michael Chan [Sun, 24 Feb 2008 03:47:44 +0000 (19:47 -0800)]
[BNX2]: More 5706S link down workaround.

The previous patches to workaround the 5706S on an HP blade were not
sufficient.  The link state still does not change properly in some
cases.  This patch adds polling to make it completely reliable.

Signed-off-by: Michael Chan <>
Signed-off-by: David S. Miller <>
14 years agoAdd memory barrier semantics to wake_up() & co
Linus Torvalds [Sun, 24 Feb 2008 02:05:03 +0000 (18:05 -0800)]
Add memory barrier semantics to wake_up() & co

Oleg Nesterov and others have pointed out that on some architectures,
the traditional sequence of


is racy wrt another CPU doing


because while set_current_state() has a memory barrier separating
setting of the TASK_INTERRUPTIBLE state from reading of the CONDITION
variable, there is no such memory barrier on the wakeup side.

Now, wake_up_process() does actually take a spinlock before it reads and
sets the task state on the waking side, and on x86 (and many other
architectures) that spinlock is in fact equivalent to a memory barrier,
but that is not generally guaranteed.  The write that sets CONDITION
could move into the critical region protected by the runqueue spinlock.

However, adding a smp_wmb() to before the spinlock should now order the
writing of CONDITION wrt the lock itself, which in turn is ordered wrt
the accesses within the spinlock (which includes the reading of the old

This should thus close the race (which probably has never been seen in
practice, but since smp_wmb() is a no-op on x86, it's not like this will
make anything worse either on the most common architecture where the
spinlock already gave the required protection).

Acked-by: Oleg Nesterov <>
Acked-by: Dmitry Adamushko <>
Cc: Andrew Morton <>
Cc: Nick Piggin <>
Signed-off-by: Linus Torvalds <>
14 years agomvsas: fix build warning, clean prototypes
Jeff Garzik [Sat, 23 Feb 2008 21:53:44 +0000 (16:53 -0500)]
mvsas: fix build warning, clean prototypes

- Fix build 'make randconfig' build warning spotted by Toralf Foerster:

drivers/scsi/mvsas.c: In function 'mvs_hexdump':
drivers/scsi/mvsas.c:715: error: implicit declaration of function 'isalnum'

- Remove unneeded prototypes (spotted by hch)

Signed-off-by: Jeff Garzik <>
Signed-off-by: Linus Torvalds <>
14 years agodocumentation: atomic_add_unless() doesn't imply mb() on failure
Oleg Nesterov [Sat, 23 Feb 2008 21:03:29 +0000 (00:03 +0300)]
documentation: atomic_add_unless() doesn't imply mb() on failure

(sorry for being offtpoic, but while experts are here...)

A "typical" implementation of atomic_add_unless() can return 0 immediately
after the first atomic_read() (before doing cmpxchg). In that case it doesn't
provide any barrier semantics. See include/asm-ia64/atomic.h as an example.

We should either change the implementation, or fix the docs.

Signed-off-by: Oleg Nesterov <>
Acked-by: Nick Piggin <>
Signed-off-by: Linus Torvalds <>
14 years agomemcgroup: return negative error code in mem_cgroup_create()
Li Zefan [Sat, 23 Feb 2008 23:24:14 +0000 (15:24 -0800)]
memcgroup: return negative error code in mem_cgroup_create()

Cgroup requires the subsystem to return negative error code on error in the
create method.

Signed-off-by: Li Zefan <>
Acked-by: KAMEZAWA Hiroyuki <>
Acked-by: Balbir Singh <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
14 years agomemcgroup: remove a useless VM_BUG_ON()
Li Zefan [Sat, 23 Feb 2008 23:24:13 +0000 (15:24 -0800)]
memcgroup: remove a useless VM_BUG_ON()

Remove this VM_BUG_ON(), as Balbir stated:

We used to have a for loop with !list_empty() as a termination condition
and VM_BUG_ON(!pc) is a spill over.  With the new loop, VM_BUG_ON(!pc) does
not make sense.

Signed-off-by: Li Zefan <>
Acked-by: Balbir Singh <>
Acked-by: KAMEZAWA Hiroyuki <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
14 years agomemcgroup: fix and update documentation
Li Zefan [Sat, 23 Feb 2008 23:24:12 +0000 (15:24 -0800)]
memcgroup: fix and update documentation

- remove trailing " Bytes"s in the demonstration
- remove section 4.4 (feature control_type has been removed)
- fix reference section

Signed-off-by: Li Zefan <>
Acked-by: KAMEZAWA Hiroyuki <>
Acked-by: Balbir Singh <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
14 years agocgroup: remove dead code in cgroup_get_rootdir()
Li Zefan [Sat, 23 Feb 2008 23:24:12 +0000 (15:24 -0800)]
cgroup: remove dead code in cgroup_get_rootdir()

Signed-off-by: Li Zefan <>
Acked-by: Paul Menage <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
14 years agocgroup: remove duplicate code in find_css_set()
Li Zefan [Sat, 23 Feb 2008 23:24:11 +0000 (15:24 -0800)]
cgroup: remove duplicate code in find_css_set()

The list head res->tasks gets initialized twice in find_css_set().

Signed-off-by: Li Zefan <>
Acked-by: Paul Menage <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
14 years agocgroup: fix subsys bitops
Li Zefan [Sat, 23 Feb 2008 23:24:11 +0000 (15:24 -0800)]
cgroup: fix subsys bitops

Cgroup uses unsigned long for subsys bitops, not unsigned long long.

Signed-off-by: Li Zefan <>
Acked-by: Paul Menage <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
14 years agocgroup: fix memory leak in cgroup_get_sb()
Li Zefan [Sat, 23 Feb 2008 23:24:10 +0000 (15:24 -0800)]
cgroup: fix memory leak in cgroup_get_sb()

opts.release_agent is not kfree()ed in all necessary places.

Signed-off-by: Li Zefan <>
Acked-by: Paul Menage <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
14 years agocgroup: clean up cgroup.h
Li Zefan [Sat, 23 Feb 2008 23:24:09 +0000 (15:24 -0800)]
cgroup: clean up cgroup.h

- replace old name 'cont' with 'cgrp' (Paul Menage did this cleanup for
  cgroup.c in commit bd89aabc6761de1c35b154fe6f914a445d301510)
- remove a duplicate declaration of cgroup_path()

Signed-off-by: Li Zefan <>
Acked-by: Paul Menage <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
14 years agocgroup: fix comments
Li Zefan [Sat, 23 Feb 2008 23:24:09 +0000 (15:24 -0800)]
cgroup: fix comments

- comments about need_forkexit_callback
- comments about release agent
- typo and comment style, etc.

Signed-off-by: Li Zefan <>
Acked-by: Paul Menage <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
14 years agocgroup: fix and update documentation
Li Zefan [Sat, 23 Feb 2008 23:24:08 +0000 (15:24 -0800)]
cgroup: fix and update documentation

Misc fixes and updates, make the doc consistent with current cgroup

Signed-off-by: Li Zefan <>
Acked-by: Paul Menage <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
14 years agoSolve section mismatch for free_area_init_core.
Alexander van Heukelum [Sat, 23 Feb 2008 23:24:06 +0000 (15:24 -0800)]
Solve section mismatch for free_area_init_core.

WARNING: vmlinux.o(.meminit.text+0x649):
Section mismatch in reference from the
function free_area_init_core() to the function .init.text:setup_usemap()
The function __meminit free_area_init_core() references
a function __init setup_usemap().
If free_area_init_core is only used by setup_usemap then
annotate free_area_init_core with a matching annotation.

The warning is covers this stack of functions in mm/page_alloc.c:

alloc_bootmem_node must be marked __init.
alloc_bootmem_node is used by setup_usemap, if !SPARSEMEM.
(usemap_size is only used by setup_usemap, if !SPARSEMEM.)
setup_usemap is only used by free_area_init_core.
free_area_init_core is only used by free_area_init_node.

free_area_init_node is used by:
arch/alpha/mm/numa.c: __init paging_init()
arch/arm/mm/init.c: __init bootmem_init_node()
arch/avr32/mm/init.c: __init paging_init()
arch/cris/arch-v10/mm/init.c: __init paging_init()
arch/cris/arch-v32/mm/init.c: __init paging_init()
arch/m32r/mm/discontig.c: __init zone_sizes_init()
arch/m32r/mm/init.c: __init zone_sizes_init()
arch/m68k/mm/motorola.c: __init paging_init()
arch/m68k/mm/sun3mmu.c: __init paging_init()
arch/mips/sgi-ip27/ip27-memory.c: __init paging_init()
arch/parisc/mm/init.c: __init paging_init()
arch/sparc/mm/srmmu.c: __init srmmu_paging_init()
arch/sparc/mm/sun4c.c: __init sun4c_paging_init()
arch/sparc64/mm/init.c: __init paging_init()
mm/page_alloc.c: __init free_area_init_nodes()
mm/page_alloc.c: __init free_area_init()
mm/memory_hotplug.c: hotadd_new_pgdat()

hotadd_new_pgdat can not be an __init function, but:

It is compiled for MEMORY_HOTPLUG configurations only
X86_64_ACPI_NUMA depends on X86_64
ARCH_FLATMEM_ENABLE depends on X86_32
So X86_64_ACPI_NUMA implies SPARSEMEM, right?

So we can mark the stack of functions __init for !SPARSEMEM, but we must mark
them __meminit for SPARSEMEM configurations.  This is ok, because then the
calls to alloc_bootmem_node are also avoided.

Compile-tested on:
silly minimal config
defconfig x86_32
defconfig x86_64

Signed-off-by: Alexander van Heukelum <>
Reviewed-by: Sam Ravnborg <>
Acked-by: Geert Uytterhoeven <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
14 years agoSmack: update for file capabilities
Casey Schaufler [Sat, 23 Feb 2008 23:24:04 +0000 (15:24 -0800)]
Smack: update for file capabilities

Update the Smack LSM to allow the registration of the capability "module"
as a secondary LSM.  Integrate the new hooks required for file based

Signed-off-by: Casey Schaufler <>
Cc: Serge Hallyn <>
Cc: Stephen Smalley <>
Cc: Paul Moore <>
Cc: James Morris <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
14 years agokprobes: refuse kprobe insertion on add/sub_preempt_counter()
Srinivasa Ds [Sat, 23 Feb 2008 23:24:04 +0000 (15:24 -0800)]
kprobes: refuse kprobe insertion on add/sub_preempt_counter()

Kprobes makes use of preempt_disable(),preempt_enable_noresched() and these
functions inturn call add/sub_preempt_count().  So we need to refuse user from
inserting probe in to these functions.

This patch disallows user from probing add/sub_preempt_count().

Signed-off-by: Srinivasa DS <>
Acked-by: Ananth N Mavinakayanahalli <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
14 years agocgroup memory controller: document huge memory/cache overhead in Kconfig
Andi Kleen [Sat, 23 Feb 2008 23:24:02 +0000 (15:24 -0800)]
cgroup memory controller: document huge memory/cache overhead in Kconfig

Document huge memory/cache overhead of memory controller in Kconfig

I was a little surprised that 2.6.25-rc* increased struct page for the
memory controller.  At least on many x86-64 machines it will not fit into a
single cache line now anymore and also costs considerable amounts of RAM.
At earlier review I remembered asking for a external data structure for

It's also quite unobvious that a innocent looking Kconfig option with a
single line Kconfig description has such a negative effect.

This patch attempts to document these disadvantages at least so that users
configuring their kernel can make a informed decision.

Signed-off-by: Andi Kleen <>
Cc: Balbir Singh <>
Acked-by: Paul Menage <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
14 years agokernel-doc: fix function-pointer-parameter parsing
Richard Kennedy [Sat, 23 Feb 2008 23:24:01 +0000 (15:24 -0800)]
kernel-doc: fix function-pointer-parameter parsing

When running "make htmldocs" I'm seeing some non-fatal perl errors caused
by trying to parse the callback function definitions in blk-core.c.

The errors are "Use of uninitialized value in concatenation (.)..."
in combination with:
Warning(linux-2.6.25-rc2/block/blk-core.c:1877): No description found for parameter ''

The function pointers are defined without a * i.e.
int (drv_callback)(struct request *)

The compiler is happy with them, but kernel-doc isn't.

This patch teaches create_parameterlist in kernel-doc to parse this type of
function pointer definition, but is it the right way to fix the problem ?
The problem only seems to occur in blk-core.c.

However with the patch applied, kernel-doc finds the correct parameter
description for the callback in blk_end_request_callback, which is doesn't

I thought it would be a bit odd to change to code to use the more normal
form of function pointers just to get the documentation to work, so I fixed
kernel-doc instead - even though this is teaching it to understand code
that might go away (The comment for blk_end_request_callback says that it
should not be used and will removed at some point).

Signed-off-by: Richard Kennedy <>
Signed-off-by: Randy Dunlap <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
14 years agoh8300: defconfig update
Yoshinori Sato [Sat, 23 Feb 2008 23:24:00 +0000 (15:24 -0800)]
h8300: defconfig update

defconfig update.

Signed-off-by: Yoshinori Sato <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
14 years agoh8300: IRQ handling update
Yoshinori Sato [Sat, 23 Feb 2008 23:23:59 +0000 (15:23 -0800)]
h8300: IRQ handling update

- add missing file and declare.
- remove unused file and macros.
- some cleanup.

Signed-off-by: Yoshinori Sato <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
14 years agoh8300: uaccess.h update
Yoshinori Sato [Sat, 23 Feb 2008 23:23:59 +0000 (15:23 -0800)]
h8300: uaccess.h update

get_user const *ptr access fix.

Signed-off-by: Yoshinori Sato <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
14 years agoh8300: signal.c typo fix
Yoshinori Sato [Sat, 23 Feb 2008 23:23:58 +0000 (15:23 -0800)]
h8300: signal.c typo fix

typo fix.

Signed-off-by: Yoshinori Sato <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
14 years agofutex: runtime enable pi and robust functionality
Thomas Gleixner [Sat, 23 Feb 2008 23:23:57 +0000 (15:23 -0800)]
futex: runtime enable pi and robust functionality

Not all architectures implement futex_atomic_cmpxchg_inatomic().  The default
implementation returns -ENOSYS, which is currently not handled inside of the
futex guts.

Futex PI calls and robust list exits with a held futex result in an endless
loop in the futex code on architectures which have no support.

Fixing up every place where futex_atomic_cmpxchg_inatomic() is called would
add a fair amount of extra if/else constructs to the already complex code.  It
is also not possible to disable the robust feature before user space tries to
register robust lists.

Compile time disabling is not a good idea either, as there are already
architectures with runtime detection of futex_atomic_cmpxchg_inatomic support.

Detect the functionality at runtime instead by calling
cmpxchg_futex_value_locked() with a NULL pointer from the futex initialization
code.  This is guaranteed to fail, but the call of
futex_atomic_cmpxchg_inatomic() happens with pagefaults disabled.

On architectures, which use the asm-generic implementation or have a runtime
CPU feature detection, a -ENOSYS return value disables the PI/robust features.

On architectures with a working implementation the call returns -EFAULT and
the PI/robust features are enabled.

The relevant syscalls return -ENOSYS and the robust list exit code is blocked,
when the detection fails.

Originally reported by: Lennart Buytenhek

Signed-off-by: Thomas Gleixner <>
Acked-by: Ingo Molnar <>
Cc: Lennert Buytenhek <>
Cc: Riku Voipio <>
Cc: <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
14 years agofutex: fix init order
Thomas Gleixner [Sat, 23 Feb 2008 23:23:55 +0000 (15:23 -0800)]
futex: fix init order

When the futex init code fails to initialize the futex pseudo file system it
returns early without initializing the hash queues.  Should the boot succeed
then a futex syscall which tries to enqueue a waiter on the hashqueue will
crash due to the unitilialized plist heads.

Initialize the hash queues before the filesystem.

Signed-off-by: Thomas Gleixner <>
Acked-by: Ingo Molnar <>
Cc: Lennert Buytenhek <>
Cc: Riku Voipio <>
Cc: <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
14 years agodmi: prevent linked list corruption
Jean Delvare [Sat, 23 Feb 2008 23:23:55 +0000 (15:23 -0800)]
dmi: prevent linked list corruption

Adding the same item to a given linked list more than once is guaranteed
to break and corrupt the list.  This is however what we do in dmi_scan
since commit 79da4721117fcf188b4b007b775738a530f574da ("x86: fix DMI out
of memory problems").

Given that there is absolutely no interest in saving empty OEM strings
anyway, I propose the simple and efficient fix below: we discard the empty
OEM strings altogether.

Signed-off-by: Jean Delvare <>
Acked-by: Parag Warudkar <>
Cc: Ingo Molnar <>
Cc: Thomas Gleixner <>
Cc: Matt Domsch <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
14 years agodrivers/video/uvesafb.c: fix section mismatch warning in param_set_scroll()
Sergio Luis [Sat, 23 Feb 2008 23:23:53 +0000 (15:23 -0800)]
drivers/video/uvesafb.c: fix section mismatch warning in param_set_scroll()

Fix following warnings:
WARNING: drivers/video/built-in.o(.text+0x7c64a): Section mismatch in reference from the function param_set_scroll() to the variable
WARNING: drivers/video/built-in.o(.text+0x7c65d): Section mismatch in reference from the function param_set_scroll() to the variable
WARNING: drivers/video/built-in.o(.text+0x7c679): Section mismatch in reference from the function param_set_scroll() to the variable
WARNING: drivers/video/built-in.o(.text+0x7c699): Section mismatch in reference from the function param_set_scroll() to the variable
WARNING: drivers/video/built-in.o(.text+0x7c69f): Section mismatch in reference from the function param_set_scroll() to the variable
WARNING: drivers/built-in.o(.text+0xa3676): Section mismatch in reference from the function param_set_scroll() to the variable
WARNING: drivers/built-in.o(.text+0xa3689): Section mismatch in reference from the function param_set_scroll() to the variable
WARNING: drivers/built-in.o(.text+0xa36a5): Section mismatch in reference from the function param_set_scroll() to the variable
WARNING: drivers/built-in.o(.text+0xa36c5): Section mismatch in reference from the function param_set_scroll() to the variable
WARNING: drivers/built-in.o(.text+0xa36cb): Section mismatch in reference from the function param_set_scroll() to the variable
WARNING: vmlinux.o(.text+0x4a079a): Section mismatch in reference from the function param_set_scroll() to the variable
WARNING: vmlinux.o(.text+0x4a07ad): Section mismatch in reference from the function param_set_scroll() to the variable
WARNING: vmlinux.o(.text+0x4a07c9): Section mismatch in reference from the function param_set_scroll() to the variable
WARNING: vmlinux.o(.text+0x4a07e9): Section mismatch in reference from the function param_set_scroll() to the variable
WARNING: vmlinux.o(.text+0x4a07ef): Section mismatch in reference from the function param_set_scroll() to the variable

Remove __devinitdata annotation from the variable ypan.

Signed-off-by: Sergio Luis <>
Cc: Michal Januszewski <>
Cc: "Antonino A. Daplas" <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
14 years agoproc: add RLIMIT_RTTIME to /proc/<pid>/limits
Eugene Teo [Sat, 23 Feb 2008 23:23:52 +0000 (15:23 -0800)]
proc: add RLIMIT_RTTIME to /proc/<pid>/limits

RLIMIT_RTTIME was introduced to allow the user to set a runtime timeout on
real-time tasks: This patch updates
/proc/<pid>/limits with the new rlimit.

Signed-off-by: Eugene Teo <>
Acked-by: Peter Zijlstra <>
Cc: Ingo Molnar <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
14 years agoefs: move headers out of include/linux/
Christoph Hellwig [Sat, 23 Feb 2008 23:23:51 +0000 (15:23 -0800)]
efs: move headers out of include/linux/

Merge include/linux/efs_fs{_i,_dir}.h into fs/efs/efs.h.  efs_vh.h remains
there because this is the IRIX volume header and shouldn't really be
handled by efs but by the partitioning code.  efs_sb.h remains there for
now because it's exported to userspace.  Of course this wrong and aboot
should have a copy of it's own, but I'll leave that to a separate patch to
avoid any contention.

Signed-off-by: Christoph Hellwig <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
14 years agoNBD: make nbd default to deadline I/O scheduler
Paul Clements [Sat, 23 Feb 2008 23:23:50 +0000 (15:23 -0800)]
NBD: make nbd default to deadline I/O scheduler

NBD doesn't work well with CFQ (or AS) schedulers, so let's default to
something else.

The two problems I have experienced with nbd and cfq are:

1) nbd hangs with cfq on RHEL 5 (2.6.18) -- this may well have been

   There's a similar debian bug that has been filed as well:

   There have been posts to nbd-general mailing list about problems with
   cfq and nbd also.

2) nbd performs about 10% better (the last time I tested) with deadline
   vs.  cfq (the overhead of cfq doesn't provide much advantage to nbd [not
   being a real disk], and you end up going through the I/O scheduler on
   the nbd server anyway, so it makes sense that deadline is better with

Signed-off-by: Paul Clements <>
Cc: Jens Axboe <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
14 years agouml: fix FP register corruption
Jeff Dike [Sat, 23 Feb 2008 23:23:49 +0000 (15:23 -0800)]
uml: fix FP register corruption

Commit ee3d9bd4de1ed93d2a7ee41c331ed30a1c7b8acd ("uml: simplify SIGSEGV
handling"), while greatly simplifying the kernel SIGSEGV handler that
runs in the process address space, introduced a bug which corrupts FP
state in the process.

Previously, the SIGSEGV handler called the sigreturn system call by hand - it
couldn't return through the restorer provided to it because that could try to
call the libc restorer which likely wouldn't exist in the process address
space.  So, it blocked off some signals, including SIGUSR1, on entry to the
SIGSEGV handler, queued a SIGUSR1 to itself, and invoked sigreturn.  The
SIGUSR1 was delivered, and was visible to the UML kernel after sigreturn

The commit eliminated the signal masking and the call to sigreturn.  The
handler simply hits itself with a SIGTRAP to let the UML kernel know that it
is finished.  UML then restores the process registers, which effectively
longjmps the process out of the signal handler, skipping sigreturn's restoring
of register state and the signal mask.

The bug is that the host apparently sets used_fp to 0 when it saves the
process FP state in the sigcontext on the process signal stack.  Thus, when
the process is longjmped out of the handler, its FP state is corrupt because
it wasn't saved on the context switch to the UML kernel.

This manifested itself as sleep hanging.  For some reason, sleep uses floating
point in order to calculate the sleep interval.  When a page fault corrupts
its FP state, it is faked into essentially sleeping forever.

This patch saves the FP state before entering the SIGSEGV handler and restores
it afterwards.

Signed-off-by: Jeff Dike <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
14 years agouml: fix helper_wait calls in watchdog
Johann Felix Soden [Sat, 23 Feb 2008 23:23:49 +0000 (15:23 -0800)]
uml: fix helper_wait calls in watchdog

In commit 1aa351a308d2c3ddb92b6cc45083fc54271d0010 ("uml: tidy helper
code") the arguments of helper_wait() were changed.  The adaptation of
harddog_user.c was forgotten, so this errors occur:

  /arch/um/drivers/harddog_user.c: In function 'start_watchdog':
  /arch/um/drivers/harddog_user.c:82: error: too many arguments to function 'helper_wait'
  /arch/um/drivers/harddog_user.c:89: error: too many arguments to function 'helper_wait'

Signed-off-by: Johann Felix Soden <>
Signed-off-by: Jeff Dike <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
14 years agouml: remove unused sigcontext accessors
Jeff Dike [Sat, 23 Feb 2008 23:23:48 +0000 (15:23 -0800)]
uml: remove unused sigcontext accessors

The macros which extract registers from a struct sigcontext are no longer
needed and can be removed.  They are starting not to build anyway, given the
removal of the 'e' and 'r' from register names during the x86 merge.

Cc: Jiri Olsa <>
Signed-off-by: Jeff Dike <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
14 years agodmi: don't save the same device twice
Jean Delvare [Sat, 23 Feb 2008 23:23:46 +0000 (15:23 -0800)]
dmi: don't save the same device twice

Now that we gather on-board devices from both DMI types 10 and 41, there is
a possibility that we list the same device twice.  In order to not confuse
drivers, and also to save memory, make sure that we do not add duplicate
devices to the dmi_devices list.

Signed-off-by: Jean Delvare <>
Cc: Wim Van Sebroeck <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
14 years agortc-cmos: display HPET emulation mode
David Brownell [Sat, 23 Feb 2008 23:23:44 +0000 (15:23 -0800)]
rtc-cmos: display HPET emulation mode

For the "cmos" RTC, have /proc/driver/rtc say whether HPET based IRQ
emulation is in effect.  Given the problems we've had with this particular
hardware maldesign (and the fact that most BIOS code seems not to provide
the IRQ routing needed to use the saner HPET modes), this should help

Signed-off-by: David Brownell <>
Cc: Alessandro Zummo <>
Cc: Ingo Molnar <>
Cc: Thomas Gleixner <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
14 years agohwrng: remove Michael as HWRNG maintainer
Michael Buesch [Sat, 23 Feb 2008 23:23:42 +0000 (15:23 -0800)]
hwrng: remove Michael as HWRNG maintainer

It turns out that I rewrote the HWRNG core once to make it pluggable, but
I'm not a crypto-expert at all.  So I'm certainly the wrong person for
being a maintainer of the HWRNG core.  Let's orphan it.

Signed-off-by: Michael Buesch <>
Cc: Herbert Xu <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
14 years agocpuset: trivial documentation fix s/N_MEMORY/N_HIGH_MEMORY/
KOSAKI Motohiro [Sat, 23 Feb 2008 23:23:41 +0000 (15:23 -0800)]
cpuset: trivial documentation fix s/N_MEMORY/N_HIGH_MEMORY/

Current implementation of cpuset track N_HIGH_MEMORY instead N_MEMORY.
(N_MEMORY doesn't exist in current implementation)

Signed-off-by: KOSAKI Motohiro <>
Acked-by: Paul Jackson <>
Cc: Christoph Lameter <>
Cc: Paul Menage <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
14 years agospi: pxa2xx_spi clock polarity fix
Ned Forrester [Sat, 23 Feb 2008 23:23:40 +0000 (15:23 -0800)]
spi: pxa2xx_spi clock polarity fix

Fixes a sequencing bug in spi driver pxa2xx_spi.c in which the chip select
for a transfer may be asserted before the clock polarity is set on the
interface.  As a result of this bug, the clock signal may have the wrong
polarity at transfer start, so it may need to make an extra half transition
before the intended clock/data signals begin.  (This probably means all
transfers are one bit out of sequence.)

This only occurs on the first transfer following a change in clock polarity
in systems using more than one more than one such polarity.  The fix
assures that the clock mode is properly set before asserting chip select.

This bug was introduced in a patch merged on 2006/12/10, kernel 2.6.20.
The patch defines an additional bit in: include/asm-arm/arch-pxa/regs-ssp.h
for 2.6.25 and newer kernels but this addition must be made in:
include/asm-arm/arch-pxa/pxa-regs.h for kernels between 2.6.20 and 2.6.24,

Signed-off-by: Ned Forrester <>
Signed-off-by: David Brownell <>
Cc: Russell King <>
Cc: <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
14 years agoatmel_spi: fix clock polarity
Atsushi Nemoto [Sat, 23 Feb 2008 23:23:39 +0000 (15:23 -0800)]
atmel_spi: fix clock polarity

The atmel_spi driver does not initialize clock polarity correctly (except for
at91rm9200 CS0 channel) in some case.

The atmel_spi driver uses gpio-controlled chipselect.  OTOH spi clock signal
is controlled by CSRn.CPOL bit, but this register controls clock signal
correctly only in 'real transfer' duration.  At the time of cs_activate()
call, CSRn.CPOL will be initialized correctly, but the controller do not know
which channel is to be used next, so clock signal will stay at the inactive
state of last transfer.  If clock polarity of new transfer and last transfer
was differ, new transfer will start with wrong clock signal state.

For example, if you started SPI MODE 2 or 3 transfer after SPI MODE 0 or 1
transfer, the clock signal state at the assertion of chipselect will be low.
Of course this will violates SPI transfer.

This patch is short term solution for this problem.  It makes all CSRn.CPOL
match for the transfer before activating chipselect.  For longer term, the
best fix might be to let NPCS0 stay selected permanently in MR and overwrite
CSR0 with to the new slave's settings before asserting CS.

Signed-off-by: Atsushi Nemoto <>
Acked-by: Haavard Skinnemoen <>
Cc: David Brownell <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
14 years agolib/vsprintf.c: fix bug omitting minus sign of numbers (module_param)
Hoang-Nam Nguyen [Sat, 23 Feb 2008 23:23:37 +0000 (15:23 -0800)]
lib/vsprintf.c: fix bug omitting minus sign of numbers (module_param)

lib/vsprintf.c: Fix bug omitting minus sign of numbers (module_param)

Signed-off-by: Hoang-Nam Nguyen <>
Cc: Yi Yang <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
14 years agoNOMMU: is_vmalloc_addr() won't compile if !MMU
David Howells [Sat, 23 Feb 2008 23:23:37 +0000 (15:23 -0800)]
NOMMU: is_vmalloc_addr() won't compile if !MMU

Make is_vmalloc_addr() contingent on CONFIG_MMU=y, as it won't compile
in !MMU mode.

[ Bug introduced in commit 9e2779fa281cfda13ac060753d674bbcaa23367e:
  "is_vmalloc_addr(): Check if an address is within the vmalloc
  boundaries" ].

Signed-off-by: David Howells <>
Cc: Greg Ungerer <>
Cc: Christoph Lameter <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
14 years agoatmel_serial: fix interrupt handler return value
Haavard Skinnemoen [Sat, 23 Feb 2008 23:23:36 +0000 (15:23 -0800)]
atmel_serial: fix interrupt handler return value

We should only return IRQ_HANDLED when we actually found something to
handle. This is important since the USART interrupt handler may be
shared with the timer interrupt on some chips.

Pointed-out-by: michael <>
Signed-off-by: Haavard Skinnemoen <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
14 years agocopyright owner and author clean up for intel iommu and related files
mark gross [Sat, 23 Feb 2008 23:23:35 +0000 (15:23 -0800)]
copyright owner and author clean up for intel iommu and related files

The following is a clean up and correction of the copyright holding
entities for the files associated with the intel iommu code.

Signed-off-by: <>
Cc: Greg KH <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
14 years agosparc: fix build
David Rientjes [Sat, 23 Feb 2008 23:23:34 +0000 (15:23 -0800)]
sparc: fix build

Fix build failure on sparc:

In file included from include/linux/mm.h:39,
                from include/linux/memcontrol.h:24,
                from include/linux/swap.h:8,
                from include/linux/suspend.h:7,
                from init/do_mounts.c:6:
include/asm/pgtable.h:344: warning: parameter names (without
types) in function declaration
include/asm/pgtable.h:345: warning: parameter names (without
types) in function declaration
include/asm/pgtable.h:346: error: expected '=', ',', ';', 'asm' or
'__attribute__' before '___f___swp_entry'

viro sayeth:

  I've run allmodconfig builds on a bunch of target, FWIW (essentially the
  same patch).  Note that these includes are recent addition caused by added
  inline function that had since then become a define.  So while I agree with
  your comments in general, in _this_ case it's pretty safe.

  The commit that had done it is 3062fc67dad01b1d2a15d58c709eff946389eca4
  ("memcontrol: move mm_cgroup to header file") and the switch to #define
  is in commit 60c12b1202a60eabb1c61317e5d2678fcea9893f ("memcontrol: add
  vm_match_cgroup()") (BTW, that probably warranted mentioning in the
  changelog of the latter).

Cc: Adrian Bunk <>
Cc: Robert Reif <>
Signed-off-by: David Rientjes <>
Cc: "David S. Miller" <>
Cc: Al Viro <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
14 years agomarkers: fix sparse warnings in markers.c
Harvey Harrison [Sat, 23 Feb 2008 23:23:33 +0000 (15:23 -0800)]
markers: fix sparse warnings in markers.c

char can be unsigned
kernel/marker.c:64:20: error: dubious one-bit signed bitfield
kernel/marker.c:65:14: error: dubious one-bit signed bitfield

Signed-off-by: Harvey Harrison <>
Acked-by: Mathieu Desnoyers <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
14 years agofile capabilities: simplify signal check
Serge E. Hallyn [Sat, 23 Feb 2008 23:23:33 +0000 (15:23 -0800)]
file capabilities: simplify signal check

Simplify the uid equivalence check in cap_task_kill().  Anyone can kill a
process owned by the same uid.

Without this patch wireshark is reported to fail.

Signed-off-by: Serge E. Hallyn <>
Signed-off-by: Andrew G. Morgan <>
Cc: <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
14 years agohugetlb: ensure we do not reference a surplus page after handing it to buddy
Andy Whitcroft [Sat, 23 Feb 2008 23:23:32 +0000 (15:23 -0800)]
hugetlb: ensure we do not reference a surplus page after handing it to buddy

When we free a page via free_huge_page and we detect that we are in surplus
the page will be returned to the buddy.  After this we no longer own the page.

However at the end free_huge_page we clear out our mapping pointer from
page private.  Even where the page is not a surplus we free the page to
the hugepage pool, drop the pool locks and then clear page private.  In
either case the page may have been reallocated.  BAD.

Make sure we clear out page private before we free the page.

Signed-off-by: Andy Whitcroft <>
Acked-by: Adam Litke <>
Cc: <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
14 years ago/proc/pid/pagemap: fix PM_SPECIAL macro
Hans Rosenfeld [Sat, 23 Feb 2008 23:23:31 +0000 (15:23 -0800)]
/proc/pid/pagemap: fix PM_SPECIAL macro

There seems to be a bug in the PM_SPECIAL macro for /proc/pid/pagemap.  I
think masking out those other bits makes more sense then setting all those
mask bits.

Signed-off-by: Hans Rosenfeld <>
Acked-by: Matt Mackall <>
Cc: Dave Hansen <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
14 years agoMAINTAINERS: linux-fbdev is moderated
Geert Uytterhoeven [Sat, 23 Feb 2008 23:23:30 +0000 (15:23 -0800)]
MAINTAINERS: linux-fbdev is moderated

While linux-fbdev is subscribers-only, non-subscribers are not plainly
rejected, but moderated, so the casual patch/comment/question comes through.

Signed-off-by: Geert Uytterhoeven <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
14 years agoufs: fix parenthesisation in ufs_set_fs_state()
Roel Kluin [Sat, 23 Feb 2008 23:23:29 +0000 (15:23 -0800)]
ufs: fix parenthesisation in ufs_set_fs_state()

This bug snuck in with

commit 252e211e90ce56bf005cb533ad5a297c18c19407
Author: Mark Fortescue <>
Date:   Tue Oct 16 23:26:31 2007 -0700

    Add in SunOS 4.1.x compatible mode for UFS

Signed-off-by: Roel Kluin <>
Acked-by: Evgeniy Dushistov <>
Cc: Mark Fortescue <>
Cc: <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
14 years agoMN10300: define SO_MARK
David Howells [Sat, 23 Feb 2008 23:23:28 +0000 (15:23 -0800)]
MN10300: define SO_MARK

Define SO_MARK for MN10300.

Signed-off-by: David Howells <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
14 years agoMN10300: define HZ as a config option
David Howells [Sat, 23 Feb 2008 23:23:28 +0000 (15:23 -0800)]
MN10300: define HZ as a config option

Define HZ as a config option.

Signed-off-by: David Howells <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
14 years agofuse: fix permission checking
Miklos Szeredi [Sat, 23 Feb 2008 23:23:27 +0000 (15:23 -0800)]
fuse: fix permission checking

I added a nasty local variable shadowing bug to fuse in 2.6.24, with the
result, that the 'default_permissions' mount option is basically ignored.

How did this happen?

 - old err declaration in inner scope
 - new err getting declared in outer scope
 - 'return err' from inner scope getting removed
 - old declaration not being noticed

-Wshadow would have saved us, but it doesn't seem practical for
the kernel :(

More testing would have also saved us :((

Signed-off-by: Miklos Szeredi <>
Cc: <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
14 years agomake LKDTM depend on BLOCK
Chris Snook [Sat, 23 Feb 2008 23:23:26 +0000 (15:23 -0800)]
make LKDTM depend on BLOCK

Make LKDTM depend on BLOCK to prevent build failures with certain configs.

Signed-off-by: Chris Snook <>
Acked-by: Randy Dunlap <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>