15 years agoMerge branch 'for-linus' of git://
Linus Torvalds [Fri, 7 Mar 2008 18:05:57 +0000 (10:05 -0800)]
Merge branch 'for-linus' of git://git./linux/kernel/git/x86/linux-2.6-x86

* 'for-linus' of git://
  x86-boot: don't request VBE2 information
  x86: re-add reboot fixups
  x86: fix typo in step.c
  x86: fix merge mistake in i387.c
  x86: clear DF before calling signal handler

15 years agodrivers/char/esp.c: fix bootup lockup
Ingo Molnar [Fri, 7 Mar 2008 09:47:43 +0000 (10:47 +0100)]
drivers/char/esp.c: fix bootup lockup

randconfig testing found a bootup lockup in drivers/char/esp.c because
of a spinlock that wasn't correctly initialized.

I'm not sure why it became more prominent in 2.6.25-rc4, the bug seems
rather old and i've been doing allyesconfig bootups for ages with
CONFIG_ESP enabled.

This fixes this bootup lockup:

 PM: Adding info for No Bus:ttyP63
 ttyP32 at 0x0240 (irq = 0) is an ESP primary port
 BUG: spinlock lockup on CPU#0, swapper/1, f56dd004
 Pid: 1, comm: swapper Not tainted 2.6.25-rc4-sched-devel.git-x86-latest.git #402 [<c03ac6f4>] _raw_spin_lock+0x134/0x140
  [<c08649be>] _spin_lock_irqsave+0x5e/0x80
  [<c0b9fbfe>] ? espserial_init+0x2be/0x6e0
  [<c0b9fbfe>] espserial_init+0x2be/0x6e0
  [<c0b877a3>] kernel_init+0x83/0x260
  [<c0b9f940>] ? espserial_init+0x0/0x6e0
  [<c010416a>] ? restore_nocheck_notrace+0x0/0xe
  [<c0b87720>] ? kernel_init+0x0/0x260
  [<c0b87720>] ? kernel_init+0x0/0x260
  [<c0104507>] kernel_thread_helper+0x7/0x10

kzalloc() is not the way to initialize spinlocks anymore.

Signed-off-by: Ingo Molnar <>
Signed-off-by: Linus Torvalds <>
15 years agox86-boot: don't request VBE2 information
Peter Korsgaard [Thu, 6 Mar 2008 09:56:45 +0000 (10:56 +0100)]
x86-boot: don't request VBE2 information

The new x86 setup code (4fd06960f120) broke booting on an old P3/500MHz
with an onboard Voodoo3 of mine. After debugging it, it turned out
to be caused by the fact that the vesa probing now asks for VBE2 data.

Disassembing the video BIOS shows that it overflows the vesa_general_info
structure when VBE2 data is requested because the source addresses for the
information strings which get strcpy'ed to the buffer lie outside the 32K
BIOS code (and hence contain long sequences of 0xff's).


00002A9C  60                pushaw
00002A9D  1E                push ds
00002A9E  0E                push cs
00002A9F  1F                pop ds
00002AA0  2BC9              sub cx,cx
00002AA2  6626813D56424532  cmp dword [es:di],0x32454256 ; "VBE2"
00002AAA  7501              jnz .1
00002AAC  41                inc cx
00002AAD  51                push cx
00002AAE  B91400            mov cx,0x14
00002AB1  BED47F            mov si, controller_header
00002AB4  57                push di
00002AB5  F3A4              rep movsb ; copy vbe1.2 header

00002AB7  B9EC00            mov cx,0xec
00002ABA  2AC0              sub al,al
00002ABC  F3AA              rep stosb ; zero pad remainder

00002ABE  5F                pop di
00002ABF  E8EB0D            call word get_memory
00002AC2  C1E002            shl ax,0x2
00002AC5  26894512          mov [es:di+0x12],ax ; total memory
00002AC9  26C745040003      mov word [es:di+0x4],0x300 ; VBE version
00002ACF  268C4D08          mov [es:di+0x8],cs
00002AD3  268C4D10          mov [es:di+0x10],cs
00002AD7  59                pop cx
00002AD8  E361              jcxz .done ; VBE2 requested?
00002ADA  8D9D0001          lea bx,[di+0x100]
00002ADE  53                push bx
00002ADF  87DF              xchg bx,di ; di now points to 2nd half
00002AE1  26C747140001      mov word [es:bx+0x14],0x100 ; sw rev

00002AE7  26897F06          mov [es:bx+0x6],di ; oem string
00002AEB  268C4708          mov [es:bx+0x8],es
00002AEF  BE5280            mov si,0x8052 ; oem string
00002AF2  E87A1B            call word strcpy

00002AF5  26897F0E          mov [es:bx+0xe],di ; video mode list
00002AF9  268C4710          mov [es:bx+0x10],es
00002AFD  B91E00            mov cx,0x1e
00002B00  BEE87F            mov si,vidmodes
00002B03  F3A5              rep movsw

00002B05  26897F16          mov [es:bx+0x16],di ; oem vendor
00002B09  268C4718          mov [es:bx+0x18],es
00002B0D  BE2480            mov si,0x8024 ; oem vendor
00002B10  E85C1B            call word strcpy

00002B13  26897F1A          mov [es:bx+0x1a],di ; oem product
00002B17  268C471C          mov [es:bx+0x1c],es
00002B1B  BE3880            mov si,0x8038 ; oem product
00002B1E  E84E1B            call word strcpy

00002B21  26897F1E          mov [es:bx+0x1e],di ; oem product rev
00002B25  268C4720          mov [es:bx+0x20],es
00002B29  BE4580            mov si,0x8045 ; oem product rev
00002B2C  E8401B            call word strcpy

00002B2F  58                pop ax
00002B30  B90001            mov cx,0x100
00002B33  2BCF              sub cx,di
00002B35  03C8              add cx,ax
00002B37  2AC0              sub al,al
00002B39  F3AA              rep stosb ; zero pad
00002B3B  1F                pop ds
00002B3C  61                popaw
00002B3D  B84F00            mov ax,0x4f
00002B40  C3                ret

(The full BIOS can be found at
if interested).

The old setup code didn't ask for VBE2 info, and the new code doesn't
actually do anything with the extra information, so the fix is to simply
not request it. Other BIOS'es might have the same problem.

Signed-off-by: Peter Korsgaard <>
Signed-off-by: Ingo Molnar <>
15 years agox86: re-add reboot fixups
Ingo Molnar [Thu, 6 Mar 2008 17:29:43 +0000 (18:29 +0100)]
x86: re-add reboot fixups

Jan Beulich noticed that the reboot fixups went missing during
reboot.c unification.

(commit 4d022e35fd7e07c522c7863fee6f07e53cf3fc14)

Geode and a few other rare boards with special reboot quirks are

Reported-by: Jan Beulich <>
Signed-off-by: Jan Beulich <>
Signed-off-by: Ingo Molnar <>
15 years agox86: fix typo in step.c
Jan Beulich [Wed, 5 Mar 2008 08:36:48 +0000 (08:36 +0000)]
x86: fix typo in step.c

TIF_DEBUGCTLMSR has no meaning in the actual MSR...

Signed-off-by: Jan Beulich <>
Signed-off-by: Ingo Molnar <>
15 years agox86: fix merge mistake in i387.c
Jan Beulich [Wed, 5 Mar 2008 08:35:14 +0000 (08:35 +0000)]
x86: fix merge mistake in i387.c

convert_fxsr_to_user() in 2.6.24's i387_32.c did this, and
convert_to_fxsr() also does the inverse, so I assume it's an oversight
that it is no longer being done.


  we encode it this way because there's no space for the 'FPU Last
  Instruction Opcode' (->fop) field in the legacy user_i387_ia32_struct

  it's probably pure legacy - i'd be surprised if any user-space relied on
  the FPU Last Opcode in any way. But indeed we used to do it previously
  so the most conservative thing is to preserve that piece of information.

Signed-off-by: Jan Beulich <>
Signed-off-by: Ingo Molnar <>
15 years agox86: clear DF before calling signal handler
Aurelien Jarno [Wed, 5 Mar 2008 18:14:24 +0000 (19:14 +0100)]
x86: clear DF before calling signal handler

The Linux kernel currently does not clear the direction flag before
calling a signal handler, whereas the x86/x86-64 ABI requires that.

Linux had this behavior/bug forever, but this becomes a real problem
with gcc version 4.3, which assumes that the direction flag is
correctly cleared at the entry of a function.

This patches changes the setup_frame() functions to clear the
direction before entering the signal handler.

Signed-off-by: Aurelien Jarno <>
Signed-off-by: Ingo Molnar <>
Acked-by: H. Peter Anvin <>
15 years agoMerge git://
Linus Torvalds [Fri, 7 Mar 2008 03:32:33 +0000 (19:32 -0800)]
Merge git://git./linux/kernel/git/lethal/sh-2.6.25

* git://
  sh: Fix up the sh64 build.
  sh: Fix up SH7710 VoIP-GW build.
  sh: Flag PMB support as EXPERIMENTAL.
  sh: Update r7780mp defconfig.
  fb: hitfb: Balance probe/remove section annotations.
  sh: hp6xx: Fix up hp6xx_apm build failure.
  fb: pvr2fb: Fix up remaining section mismatch.
  sh: Fix up section mismatches.
  sh: hp6xx: Correct APM output.
  sh: update se7780 defconfig
  sh: replace remaining __FUNCTION__ occurrences
  sh: export copy-page() to modules
  sh_ksyms_32.c update for gcc 4.3
  sh/mm/pg-sh7705.c must #include <linux/fs.h>

15 years agoMerge branch 'for-linus' of git://
Linus Torvalds [Fri, 7 Mar 2008 03:32:05 +0000 (19:32 -0800)]
Merge branch 'for-linus' of git://git./linux/kernel/git/cooloney/blackfin-2.6

* 'for-linus' of git://
  [Blackfin] arch: current_l1_stack_save is a pointer, so use NULL rather than 0
  [Blackfin] arch: fix atomic and32/xor32 comments and ENDPROC markings
  [Blackfin] arch: fix bug - allow SDH driver to be used as module
  [Blackfin] arch: to kill syscalls missing warning by adding new timerfd syscalls

15 years agoMerge branch 'release' of git://
Linus Torvalds [Fri, 7 Mar 2008 03:31:34 +0000 (19:31 -0800)]
Merge branch 'release' of git://git./linux/kernel/git/aegl/linux-2.6

* 'release' of git://
  [IA64] kprobes arch consolidation build fix
  [IA64] update efi region debugging to use MB, GB and TB as well as KB
  [IA64] use dev_printk in video quirk
  [IA64] remove remaining __FUNCTION__ occurrences
  [IA64] remove unnecessary nfs includes from sys_ia32.c
  [IA64] remove CONFIG_SMP ifdef in ia64_send_ipi()
  [IA64] arch_ptrace() cleanup
  [IA64] remove duplicate code from arch_ptrace()
  [IA64] convert sys_ptrace to arch_ptrace
  [IA64] remove find_thread_for_addr()
  [IA64] do not sync RBS when changing PT_AR_BSP or PT_CFM
  [IA64] access user RBS directly

15 years ago[IA64] kprobes arch consolidation build fix
Harvey Harrison [Thu, 6 Mar 2008 17:49:01 +0000 (09:49 -0800)]
[IA64] kprobes arch consolidation build fix

ia64 named their handler kprobes_fault_handler while all other
arches used kprobe_fault_handler.  Change the function definition
and header declaration.

Signed-off-by: Harvey Harrison <>
Signed-off-by: Tony Luck <>
15 years ago[IA64] update efi region debugging to use MB, GB and TB as well as KB
Simon Horman [Tue, 26 Feb 2008 06:24:04 +0000 (15:24 +0900)]
[IA64] update efi region debugging to use MB, GB and TB as well as KB

When EFI_DEBUG is defined to a non-zero value in arch/ia64/kernel/efi.c,
the efi memory regions are displayed. This patch enhances the
display code in a few ways:

1. Use TB, GB and MB as well as KB as units.
   Although this introduces rounding errors (KB doesn't as
   size is always a multiple of 4Kb), it does make
   things a lot more readable.

   Also as the range is also shown, it is possible to note the exact size
   if it is important. In my experience, the size field is mostly useful
   for getting a general idea of the size of a region.

   On the rx2620 that I use, there actually is an 8TB region (though not
   backed by physical memory, and 8TB really is a lot more readable than

2. pad the size field with leading spaces to further improve readability

   ... (   8MB)
   ... ( 928MB)
   ... (   3MB)


   ... (8MB)
   ... (928MB)
   ... (3MB)

3. Pad the attr field out to 64bits using leading zeros,
   to further improve readability.

   mem05: type= 2, attr=0x0000000000000008, range=[0x0000000004000000-0x000000000481f000) (   8MB)
   mem06: type= 7, attr=0x0000000000000008, range=[0x000000000481f000-0x000000003e876000) ( 928MB)
   mem07: type= 5, attr=0x8000000000000008, range=[0x000000003e876000-0x000000003eb8e000) (   3MB)
   mem08: type= 4, attr=0x0000000000000008, range=[0x000000003eb8e000-0x000000003ee7a000) (   2MB)

   mem05: type= 2, attr=0x8, range=[0x0000000004000000-0x000000000481f000) (   8MB)
   mem06: type= 7, attr=0x8, range=[0x000000000481f000-0x000000003e876000) ( 928MB)
   mem07: type= 5, attr=0x8000000000000008, range=[0x000000003e876000-0x000000003eb8e000) (   3MB)
   mem08: type= 4, attr=0x8, range=[0x000000003eb8e000-0x000000003ee7a000) (   2MB)

4. Use %d instead of %u for the index field, as i is a signed int.

N.B: This code is not compiled unless EFI_DEBUG is non 0.

Signed-off-by: Simon Horman <>
Signed-off-by: Tony Luck <>
15 years ago[IA64] use dev_printk in video quirk
Bjorn Helgaas [Tue, 4 Mar 2008 23:34:57 +0000 (16:34 -0700)]
[IA64] use dev_printk in video quirk

Convert quirk printks to dev_printk().

Signed-off-by: Bjorn Helgaas <>
Signed-off-by: Tony Luck <>
15 years ago[IA64] remove remaining __FUNCTION__ occurrences
Harvey Harrison [Tue, 4 Mar 2008 23:15:00 +0000 (15:15 -0800)]
[IA64] remove remaining __FUNCTION__ occurrences

__FUNCTION__ is gcc-specific, use __func__

Long lines have been kept where they exist, some small spacing changes
have been done.

Signed-off-by: Harvey Harrison <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Tony Luck <>
15 years ago[IA64] remove unnecessary nfs includes from sys_ia32.c
KOSAKI Motohiro [Tue, 4 Mar 2008 23:45:42 +0000 (15:45 -0800)]
[IA64] remove unnecessary nfs includes from sys_ia32.c

Compilation of 2.6.25-rc2-mm1 on ia64 generates many warnings.

IA64 support 2 ELF format (IA64 binary and IA32 binary),
thus if 2 elf related header included, cause many warning or error.

about 2 week ago, J. Bruce Fields proposed this problem fixed patch.

Signed-off-by: J. Bruce Fields <>
Signed-off-by: KOSAKI Motohiro <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Tony Luck <>
15 years ago[IA64] remove CONFIG_SMP ifdef in ia64_send_ipi()
Bjorn Helgaas [Wed, 5 Mar 2008 22:40:32 +0000 (15:40 -0700)]
[IA64] remove CONFIG_SMP ifdef in ia64_send_ipi()

When !CONFIG_SMP, cpu_physical_id() is ia64_get_lid(), which is
functionally identical to

    (ia64_getreg(_IA64_REG_CR_LID) >> 16) & 0xffff

so there's no need for two versions of this code.

Signed-off-by: Bjorn Helgaas <>
Signed-off-by: Tony Luck <>
15 years agoMerge git://
Linus Torvalds [Thu, 6 Mar 2008 16:14:18 +0000 (08:14 -0800)]
Merge git://git./linux/kernel/git/herbert/crypto-2.6

* git://
  [CRYPTO] xcbc: Fix crash with IPsec
  [CRYPTO] xts: Use proper alignment
  [CRYPTO] digest: Include internal.h for prototypes
  [CRYPTO] authenc: Add missing Kconfig dependency on BLKCIPHER
  [CRYPTO] skcipher: Move chainiv/seqiv into crypto_blkcipher module

15 years agoMerge branch 'for-linus' of git://
Linus Torvalds [Thu, 6 Mar 2008 16:14:00 +0000 (08:14 -0800)]
Merge branch 'for-linus' of git://

* 'for-linus' of git://
  [XFS] fix inode leak in xfs_iget_core()
  [XFS] 977545 977545 977545 977545 977545 977545 xfsaild causing too many

15 years agoReally unexport asm/page.h
David Woodhouse [Thu, 6 Mar 2008 10:57:54 +0000 (10:57 +0000)]
Really unexport asm/page.h

Commit ed7b1889da256977574663689b598d88950bbd23 removed page.h from
include/asm-generic/Kbuild so that it shouldn't get exported.

However, it was redundantly listed in asm-mn10300/Kbuild and
asm-x86/Kbuild too. Remove those as well, so it really stops being
exported on those architectures. Also remove the redundant listing of
ptrace.h and termios.h from mn10300.

Signed-off-by: David Woodhouse <>
Acked-by: David Howells <>
Signed-off-by: Linus Torvalds <>
15 years ago[CRYPTO] xcbc: Fix crash with IPsec
Joy Latten [Thu, 6 Mar 2008 11:28:44 +0000 (19:28 +0800)]
[CRYPTO] xcbc: Fix crash with IPsec

When using aes-xcbc-mac for authentication in IPsec,
the kernel crashes. It seems this algorithm doesn't
account for the space IPsec may make in scatterlist for authtag.
Thus when crypto_xcbc_digest_update2() gets called,
nbytes may be less than sg[i].length.
Since nbytes is an unsigned number, it wraps
at the end of the loop allowing us to go back
into loop and causing crash in memcpy.

I used update function in digest.c to model this fix.
Please let me know if it looks ok.

Signed-off-by: Joy Latten <>
Signed-off-by: Herbert Xu <>
15 years ago[CRYPTO] xts: Use proper alignment
Sebastian Siewior [Thu, 6 Mar 2008 10:56:19 +0000 (18:56 +0800)]
[CRYPTO] xts: Use proper alignment

The XTS blockmode uses a copy of the IV which is saved on the stack
and may or may not be properly aligned. If it is not, it will break
hardware cipher like the geode or padlock.
This patch encrypts the IV in place so we don't have to worry about

Signed-off-by: Sebastian Siewior <>
Tested-by: Stefan Hellermann <>
Signed-off-by: Herbert Xu <>
15 years agosh: Fix up the sh64 build.
Paul Mundt [Thu, 6 Mar 2008 08:23:15 +0000 (17:23 +0900)]
sh: Fix up the sh64 build.

Signed-off-by: Paul Mundt <>
15 years agosh: Fix up SH7710 VoIP-GW build.
Paul Mundt [Thu, 6 Mar 2008 07:08:00 +0000 (16:08 +0900)]
sh: Fix up SH7710 VoIP-GW build.

The only board-specific bits that existed here were for setting up the
IRQs, which are now handled by the SH7710 CPU support code instead. As
there's nothing else to do for setup, kill off the board support code
and have the defconfig use the generic machvec instead.

Signed-off-by: Paul Mundt <>
15 years agosh: Flag PMB support as EXPERIMENTAL.
Paul Mundt [Thu, 6 Mar 2008 07:06:38 +0000 (16:06 +0900)]
sh: Flag PMB support as EXPERIMENTAL.

There's still work that needs to be done here, and this should not be
enabled by default on existing boards.

Signed-off-by: Paul Mundt <>
15 years agosh: Update r7780mp defconfig.
Paul Mundt [Thu, 6 Mar 2008 07:03:58 +0000 (16:03 +0900)]
sh: Update r7780mp defconfig.

This disables the PMB/32BIT=y by default in r7780mp, as turning this on
presently results in build errors (for an admittedly experimental

Signed-off-by: Paul Mundt <>
15 years ago[XFS] fix inode leak in xfs_iget_core()
David Chinner [Thu, 6 Mar 2008 02:49:43 +0000 (13:49 +1100)]
[XFS] fix inode leak in xfs_iget_core()

If the radix_tree_preload() fails, we need to destroy the inode we just
read in before trying again. This could leak xfs_vnode structures when
there is memory pressure. Noticed by Christoph Hellwig.

SGI-PV: 977823
SGI-Modid: xfs-linux-melb:xfs-kern:30606a

Signed-off-by: David Chinner <>
Signed-off-by: Lachlan McIlroy <>
Signed-off-by: Christoph Hellwig <>
15 years ago[XFS] 977545 977545 977545 977545 977545 977545 xfsaild causing too many
David Chinner [Thu, 6 Mar 2008 02:45:10 +0000 (13:45 +1100)]
[XFS] 977545 977545 977545 977545 977545 977545 xfsaild causing too many

Idle state is not being detected properly by the xfsaild push code. The
current idle state is detected by an empty list which may never happen
with mostly idle filesystem or one using lazy superblock counters. A
single dirty item in the list that exists beyond the push target can
result repeated looping attempting to push up to the target because it
fails to check if the push target has been acheived or not.

Fix by considering a dirty list with everything past the target as an idle
state and set the timeout appropriately.

SGI-PV: 977545
SGI-Modid: xfs-linux-melb:xfs-kern:30532a

Signed-off-by: David Chinner <>
Signed-off-by: Christoph Hellwig <>
Signed-off-by: Lachlan McIlroy <>
15 years agofb: hitfb: Balance probe/remove section annotations.
Paul Mundt [Thu, 6 Mar 2008 04:56:33 +0000 (13:56 +0900)]
fb: hitfb: Balance probe/remove section annotations.

hitfb presently has probe using __init whilst remove uses __devexit.
As this device can't possibly be hotplugged, switch to __exit and
__exit_p() instead.

Signed-off-by: Paul Mundt <>
15 years agosh: hp6xx: Fix up hp6xx_apm build failure.
Paul Mundt [Thu, 6 Mar 2008 04:48:08 +0000 (13:48 +0900)]
sh: hp6xx: Fix up hp6xx_apm build failure.

Signed-off-by: Paul Mundt <>
15 years agofb: pvr2fb: Fix up remaining section mismatch.
Paul Mundt [Thu, 6 Mar 2008 04:39:18 +0000 (13:39 +0900)]
fb: pvr2fb: Fix up remaining section mismatch.

Building with CONFIG_DEBUG_SECTION_MISMATCH=y reports:

  CC      drivers/video/pvr2fb.o
  LD      drivers/video/built-in.o
WARNING: drivers/video/built-in.o(.text+0xb9b0): Section mismatch in reference from the function pvr2fb_check_var() to the variable
The function pvr2fb_check_var() references
the variable __devinitdata pvr2_fix.
This is often because pvr2fb_check_var lacks a __devinitdata
annotation or the annotation of pvr2_fix is wrong.

This is obviously crap as no such reference exists, but it's a bit
closer to reality from older versions which blamed the PCI table. The
real problem was a reference to pvr2_var.vmode from pvr2fb_check_var(),
as pvr2_var is flagged as __devinitdata (pvr2_fix is also, so at least
that part is right).

pvr2_var.vmode is just a fancy way of saying FB_VMODE_NONINTERLACED, so
we just reference that explicitly instead.

Signed-off-by: Paul Mundt <>
15 years agosh: Fix up section mismatches.
Paul Mundt [Thu, 6 Mar 2008 03:43:38 +0000 (12:43 +0900)]
sh: Fix up section mismatches.

Signed-off-by: Paul Mundt <>
15 years agosh: hp6xx: Correct APM output.
Kristoffer Ericson [Wed, 5 Mar 2008 07:09:25 +0000 (23:09 -0800)]
sh: hp6xx: Correct APM output.

This patch fixes the old non-verbose hp6xx apm code and enables some
very basic apm output.  We now get percentage (battery) output
and basic time estimate.

Signed-off-by: Kristoffer Ericson <>
Signed-off-by: Paul Mundt <>
15 years agosh: update se7780 defconfig
goda.yusuke [Thu, 28 Feb 2008 03:53:23 +0000 (12:53 +0900)]
sh: update se7780 defconfig

This patch updates se7780_defconfig

Signed-off-by: Yusuke Goda <>
Signed-off-by: Paul Mundt <>
15 years agosh: replace remaining __FUNCTION__ occurrences
Harvey Harrison [Tue, 4 Mar 2008 23:23:47 +0000 (15:23 -0800)]
sh: replace remaining __FUNCTION__ occurrences

__FUNCTION__ is gcc-specific, use __func__

Signed-off-by: Harvey Harrison <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Paul Mundt <>
15 years agosh: export copy-page() to modules
Andrew Morton [Tue, 4 Mar 2008 23:23:47 +0000 (15:23 -0800)]
sh: export copy-page() to modules

ERROR: "copy_page" [fs/unionfs/unionfs.ko] undefined!

like all the other architectures.

Cc: Erez Zadok <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Paul Mundt <>
15 years agosh_ksyms_32.c update for gcc 4.3
Adrian Bunk [Tue, 4 Mar 2008 22:39:58 +0000 (00:39 +0200)]
sh_ksyms_32.c update for gcc 4.3

This patch fixes the following build error with landisk_defconfig when
using gcc 4.3:

<--  snip  -->

  MODPOST 50 modules
ERROR: "__udivsi3_i4i" [net/sunrpc/sunrpc.ko] undefined!
ERROR: "__udivsi3_i4i" [net/appletalk/appletalk.ko] undefined!
ERROR: "__udivsi3_i4i" [fs/ufs/ufs.ko] undefined!
ERROR: "__udivsi3_i4i" [fs/ntfs/ntfs.ko] undefined!
ERROR: "__sdivsi3_i4i" [fs/ntfs/ntfs.ko] undefined!
ERROR: "__udivsi3_i4i" [fs/nfsd/nfsd.ko] undefined!
ERROR: "__sdivsi3_i4i" [fs/nfsd/nfsd.ko] undefined!
ERROR: "__udivsi3_i4i" [fs/nfs/nfs.ko] undefined!
ERROR: "__udivsi3_i4i" [fs/lockd/lockd.ko] undefined!
ERROR: "__udivsi3_i4i" [drivers/usb/storage/usb-storage.ko] undefined!
ERROR: "__sdivsi3_i4i" [drivers/usb/serial/pl2303.ko] undefined!
ERROR: "__udivsi3_i4i" [drivers/usb/serial/pl2303.ko] undefined!
ERROR: "__sdivsi3_i4i" [drivers/usb/serial/ftdi_sio.ko] undefined!
ERROR: "__udivsi3_i4i" [drivers/usb/misc/sisusbvga/sisusbvga.ko] undefined!
ERROR: "__sdivsi3_i4i" [drivers/usb/misc/sisusbvga/sisusbvga.ko] undefined!
ERROR: "__udivsi3_i4i" [drivers/media/video/v4l1-compat.ko] undefined!
ERROR: "__sdivsi3_i4i" [drivers/media/video/v4l1-compat.ko] undefined!
ERROR: "__sdivsi3_i4i" [drivers/media/video/usbvideo/vicam.ko] undefined!
ERROR: "__udivsi3_i4i" [drivers/media/video/usbvideo/usbvideo.ko] undefined!
ERROR: "__sdivsi3_i4i" [drivers/media/video/usbvideo/usbvideo.ko] undefined!
ERROR: "__udivsi3_i4i" [drivers/media/video/sn9c102/sn9c102.ko] undefined!
ERROR: "__sdivsi3_i4i" [drivers/media/video/sn9c102/sn9c102.ko] undefined!
ERROR: "__sdivsi3_i4i" [drivers/media/video/se401.ko] undefined!
ERROR: "__sdivsi3_i4i" [drivers/media/video/pwc/pwc.ko] undefined!
ERROR: "__udivsi3_i4i" [drivers/md/raid0.ko] undefined!
ERROR: "__udivsi3_i4i" [drivers/md/md-mod.ko] undefined!
ERROR: "__sdivsi3_i4i" [drivers/md/md-mod.ko] undefined!
ERROR: "__udivsi3_i4i" [drivers/md/linear.ko] undefined!
ERROR: "__sdivsi3_i4i" [drivers/hid/usbhid/usbhid.ko] undefined!
make[2]: *** [__modpost] Error 1

<--  snip  -->

Signed-off-by: Adrian Bunk <>
Signed-off-by: Paul Mundt <>
15 years agosh/mm/pg-sh7705.c must #include <linux/fs.h>
Adrian Bunk [Mon, 3 Mar 2008 18:07:42 +0000 (20:07 +0200)]
sh/mm/pg-sh7705.c must #include <linux/fs.h>

This patch fixes the following compile error:

<--  snip  -->

  CC      arch/sh/mm/pg-sh7705.o
/home/bunk/linux/kernel-2.6/git/linux-2.6/arch/sh/mm/pg-sh7705.c: In function 'ptep_get_and_clear':
/home/bunk/linux/kernel-2.6/git/linux-2.6/arch/sh/mm/pg-sh7705.c:130: error: implicit declaration of function 'mapping_writably_mapped'
make[2]: *** [arch/sh/mm/pg-sh7705.o] Error 1

<--  snip  -->

Signed-off-by: Adrian Bunk <>
Signed-off-by: Paul Mundt <>
15 years ago[Blackfin] arch: current_l1_stack_save is a pointer, so use NULL rather than 0
Mike Frysinger [Thu, 6 Mar 2008 02:02:23 +0000 (19:02 -0700)]
[Blackfin] arch: current_l1_stack_save is a pointer, so use NULL rather than 0

Signed-off-by: Mike Frysinger <>
Signed-off-by: Bryan Wu <>
15 years agoMerge branch 'for-linus' of git://
Linus Torvalds [Thu, 6 Mar 2008 02:00:22 +0000 (18:00 -0800)]
Merge branch 'for-linus' of git://

* 'for-linus' of git://
  UBI: mtd/ubi/vtbl.c: fix memory leak
  UBI: fix sparse errors in ubi.h
  UBI: fix error message
  UBI: silence warning

15 years agoparisc: fix IOMMU's device boundary overflow bug on 32bits arch
FUJITA Tomonori [Wed, 5 Mar 2008 08:09:30 +0000 (17:09 +0900)]
parisc: fix IOMMU's device boundary overflow bug on 32bits arch

On 32bits boxes, boundary_size becomes zero due to a overflow and we
hit BUG_ON in iommu_is_span_boundary.

Signed-off-by: FUJITA Tomonori <>
Cc: Kyle McMartin <>
Cc: Matthew Wilcox <>
Acked-by: Grant Grundler <>
Signed-off-by: Linus Torvalds <>
15 years agocpusets: fix obsolete comment
David Rientjes [Wed, 5 Mar 2008 07:32:38 +0000 (23:32 -0800)]
cpusets: fix obsolete comment

mm migration is no longer done in cpuset_update_task_memory_state() so it
can no longer take current->mm->mmap_sem, so fix the obsolete comment.

[ This changed in commit 04c19fa6f16047abff2288ddbc1f0798ede5a849
  ("cpuset: migrate all tasks in cpuset at once") when the mm migration
  was moved from cpuset_update_task_memory_state() to update_nodemask() ]

Signed-off-by: David Rientjes <>
Cc: Paul Jackson <>
Signed-off-by: Linus Torvalds <>
15 years agoMerge git://
Linus Torvalds [Thu, 6 Mar 2008 01:49:59 +0000 (17:49 -0800)]
Merge git://git./linux/kernel/git/jejb/scsi-rc-fixes-2.6

* git:// (27 commits)
  [SCSI] mpt fusion: don't oops if NumPhys==0
  [SCSI] iscsi class: regression - fix races with state manipulation and blocking/unblocking
  [SCSI] qla4xxx: regression - add start scan callout
  [SCSI] qla4xxx: fix host reset dpc race
  [SCSI] tgt: fix build errors when dprintk is defined
  [SCSI] tgt: set the data length properly
  [SCSI] tgt: stop zero'ing scsi_cmnd
  [SCSI] ibmvstgt: set up scsi_host properly before __scsi_alloc_queue
  [SCSI] docbook: fix fusion source files
  [SCSI] docbook: fix scsi source file
  [SCSI] qla2xxx: Update version number to 8.02.00-k9.
  [SCSI] qla2xxx: Correct usage of inconsistent timeout values while issuing ELS commands.
  [SCSI] qla2xxx: Correct discrepancies during OVERRUN handling on FWI2-capable cards.
  [SCSI] qla2xxx: Correct needless clean-up resets during shutdown.
  [SCSI] arcmsr: update version and changelog
  [SCSI] ps3rom: disable clustering
  [SCSI] ps3rom: fix wrong resid calculation bug
  [SCSI] mvsas: fix phy sas address
  [SCSI] gdth: fix to internal commands execution
  [SCSI] gdth: bugfix for the at-exit problems

15 years agoMerge branch 'for-linus' of git://
Linus Torvalds [Thu, 6 Mar 2008 01:49:38 +0000 (17:49 -0800)]
Merge branch 'for-linus' of git://git./linux/kernel/git/jmorris/selinux-2.6

* 'for-linus' of git://
  NFS: use new LSM interfaces to explicitly set mount options
  LSM/SELinux: Interfaces to allow FS to control mount options

15 years agoMerge branch 'fixes-25' of git://
Linus Torvalds [Thu, 6 Mar 2008 01:49:01 +0000 (17:49 -0800)]
Merge branch 'fixes-25' of git://git./linux/kernel/git/davej/cpufreq

* 'fixes-25' of git://
  [CPUFREQ] fix section mismatch warnings
  [CPUFREQ] Remove debugging message from e_powersaver
  [CPUFREQ] Fix missing cpufreq_cpu_put() call in ->store
  [CPUFREQ] Fix missing cpufreq_cpu_put() call in ->show

15 years agoMerge branch 'for-linus' of git://
Linus Torvalds [Thu, 6 Mar 2008 01:47:41 +0000 (17:47 -0800)]
Merge branch 'for-linus' of git://

* 'for-linus' of git://
  [S390] incorrect reipl nss name.
  [S390] Load disabled wait psw if reipl fails.
  [S390] Fix IPL from NSS.
  [S390] zcrypt: fix ap_device_list handling
  [S390] sclp_vt220: speed up console output for interactive work
  [S390] dasd: fix reference counting in display method for proc/dasd/devices
  [S390] dasd: let dasd erp matching recognize alias recovery
  [S390] Get rid of memcpy gcc warning workaround.
  [S390] idle: Fix machine check handling in idle loop.
  [S390] Update default configuration.

15 years ago[IA64] arch_ptrace() cleanup
Petr Tesarik [Tue, 26 Feb 2008 11:03:28 +0000 (12:03 +0100)]
[IA64] arch_ptrace() cleanup

Remove duplicate code, clean up goto's and indentation.

Signed-off-by: Petr Tesarik <>
Signed-off-by: Tony Luck <>
15 years ago[IA64] remove duplicate code from arch_ptrace()
Petr Tesarik [Mon, 11 Feb 2008 21:43:38 +0000 (22:43 +0100)]
[IA64] remove duplicate code from arch_ptrace()

Remove all code which does exactly the same thing as ptrace_request().

Signed-off-by: Petr Tesarik <>
Signed-off-by: Tony Luck <>
15 years ago[IA64] convert sys_ptrace to arch_ptrace
Petr Tesarik [Mon, 11 Feb 2008 21:43:05 +0000 (22:43 +0100)]
[IA64] convert sys_ptrace to arch_ptrace

Convert sys_ptrace() to arch_ptrace().

Signed-off-by: Petr Tesarik <>
Signed-off-by: Tony Luck <>
15 years ago[IA64] remove find_thread_for_addr()
Petr Tesarik [Mon, 11 Feb 2008 21:42:34 +0000 (22:42 +0100)]
[IA64] remove find_thread_for_addr()

find_thread_for_addr() is no longer needed.  It was only used to find
the correct kernel RBS for a given memory address, but since the kernel
RBS is not needed any longer, this function can go away.

Signed-off-by: Petr Tesarik <>
Signed-off-by: Tony Luck <>
15 years ago[IA64] do not sync RBS when changing PT_AR_BSP or PT_CFM
Petr Tesarik [Mon, 11 Feb 2008 21:42:00 +0000 (22:42 +0100)]
[IA64] do not sync RBS when changing PT_AR_BSP or PT_CFM

Syncing is no longer needed, because user RBS is already
up-to-date.  Actually, if a debugger modified the contents
of the original RBS prior to changing PT_AR_BSP, the
modifications would get overwritten.

Signed-off-by: Petr Tesarik <>
Signed-off-by: Tony Luck <>
15 years ago[IA64] access user RBS directly
Petr Tesarik [Mon, 11 Feb 2008 21:41:18 +0000 (22:41 +0100)]
[IA64] access user RBS directly

Because the user RBS of a process is now completely stored in
user-mode when the process is ptrace-stopped, accesses to the
RBS should no longer augment any part of the kernel RBS.

This means we can get rid of most ia64_peek() and ia64_poke()

Signed-off-by: Petr Tesarik <>
Signed-off-by: Tony Luck <>
15 years agoNFS: use new LSM interfaces to explicitly set mount options
Eric Paris [Wed, 5 Mar 2008 19:20:18 +0000 (14:20 -0500)]
NFS: use new LSM interfaces to explicitly set mount options

NFS and SELinux worked together previously because SELinux had NFS
specific knowledge built in.  This design was approved by both groups
back in 2004 but the recent NFS changes to use nfs_parsed_mount_data and
the usage of nfs_clone_mount_data showed this to be a poor fragile
solution.  This patch fixes the NFS functionality regression by making
use of the new LSM interfaces to allow an FS to explicitly set its own
mount options.

The explicit setting of mount options is done in the nfs get_sb
functions which are called before the generic vfs hooks try to set mount
options for filesystems which use text mount data.

This does not currently support NFSv4 as that functionality did not
exist in previous kernels and thus there is no regression.  I will be
adding the needed code, which I believe to be the exact same as the v3
code, in nfs4_get_sb for 2.6.26.

Signed-off-by: Eric Paris <>
Acked-by: Trond Myklebust <>
Signed-off-by: James Morris <>
15 years agoLSM/SELinux: Interfaces to allow FS to control mount options
Eric Paris [Wed, 5 Mar 2008 15:31:54 +0000 (10:31 -0500)]
LSM/SELinux: Interfaces to allow FS to control mount options

Introduce new LSM interfaces to allow an FS to deal with their own mount
options.  This includes a new string parsing function exported from the
LSM that an FS can use to get a security data blob and a new security
data blob.  This is particularly useful for an FS which uses binary
mount data, like NFS, which does not pass strings into the vfs to be
handled by the loaded LSM.  Also fix a BUG() in both SELinux and SMACK
when dealing with binary mount data.  If the binary mount data is less
than one page the copy_page() in security_sb_copy_data() can cause an
illegal page fault and boom.  Remove all NFSisms from the SELinux code
since they were broken by past NFS changes.

Signed-off-by: Eric Paris <>
Acked-by: Stephen Smalley <>
Acked-by: Casey Schaufler <>
Signed-off-by: James Morris <>
15 years ago[SCSI] mpt fusion: don't oops if NumPhys==0
Krzysztof Oledzki [Tue, 4 Mar 2008 22:56:23 +0000 (14:56 -0800)]
[SCSI] mpt fusion: don't oops if NumPhys==0

Don't oops if NumPhys==0, instead return -ENODEV.
This patch fixes

Signed-off-by: Krzysztof Piotr Oledzki <>
Acked-by: Eric Moore <>
Signed-off-by: Andrew Morton <>
Signed-off-by: James Bottomley <>
15 years ago[CPUFREQ] fix section mismatch warnings
Sam Ravnborg [Sun, 17 Feb 2008 12:22:52 +0000 (13:22 +0100)]
[CPUFREQ] fix section mismatch warnings

Fix the following warnings:
WARNING: vmlinux.o(.text+0xfe6711): Section mismatch in reference from the function cpufreq_unregister_driver() to the variable
WARNING: vmlinux.o(.text+0xfe68af): Section mismatch in reference from the function cpufreq_register_driver() to the variable
WARNING: vmlinux.o(.exit.text+0xc4fa): Section mismatch in reference from the function cpufreq_stats_exit() to the variable

The warnings were casued by references to unregister_hotcpu_notifier()
from normal functions or exit functions.
This is flagged by modpost as a potential error because
it does not know that for the non HOTPLUG_CPU
scenario the unregister_hotcpu_notifier() is a nop.
Silence the warning by replacing the __initdata
annotation with a __refdata annotation.

Signed-off-by: Sam Ravnborg <>
Signed-off-by: Dave Jones <>
15 years ago[CPUFREQ] Remove debugging message from e_powersaver
Dave Jones [Fri, 15 Feb 2008 23:11:14 +0000 (18:11 -0500)]
[CPUFREQ] Remove debugging message from e_powersaver

We don't need to printk a message every time we transition.
Leave the code there, but ifdef'd out, as it's useful when
adding support for new processors.

Reported-by: Petr Titěra <>
Signed-off-by: Dave Jones <>
15 years ago[CPUFREQ] Fix missing cpufreq_cpu_put() call in ->store
Dave Jones [Wed, 5 Mar 2008 19:22:25 +0000 (14:22 -0500)]
[CPUFREQ] Fix missing cpufreq_cpu_put() call in ->store

refactor to use gotos instead of explicit exit paths

Signed-off-by: Dave Jones <>
15 years ago[CPUFREQ] Fix missing cpufreq_cpu_put() call in ->show
Dave Jones [Wed, 5 Mar 2008 19:20:57 +0000 (14:20 -0500)]
[CPUFREQ] Fix missing cpufreq_cpu_put() call in ->show

refactor to use gotos instead of explicit exit paths

Signed-off-by: Dave Jones <>
15 years ago[SCSI] iscsi class: regression - fix races with state manipulation and blocking/unblo...
Mike Christie [Tue, 4 Mar 2008 19:26:55 +0000 (13:26 -0600)]
[SCSI] iscsi class: regression - fix races with state manipulation and blocking/unblocking

For qla4xxx, we could be starting a session, but some error (network,
target, IO from a device that got started, etc) could cause the session
to fail and curring the block/unblock and state manipulation could race
with each other. This patch just has those operations done in the
single threaded iscsi eh work queue, so that way they are serialized.

Signed-off-by: Mike Christie <>
Signed-off-by: James Bottomley <>
15 years ago[SCSI] qla4xxx: regression - add start scan callout
Mike Christie [Tue, 4 Mar 2008 19:26:54 +0000 (13:26 -0600)]
[SCSI] qla4xxx: regression - add start scan callout

We are seeing EXIST errors from sysfs during device addition.
We need a start scan callout so we do not start scanning sessions
found during hba setup, before the async scsi scan code is ready.

Signed-off-by: Mike Christie <>
Acked-by: David C Somayajulu <>
Signed-off-by: James Bottomley <>
15 years ago[SCSI] qla4xxx: fix host reset dpc race
Mike Christie [Tue, 4 Mar 2008 19:26:53 +0000 (13:26 -0600)]
[SCSI] qla4xxx: fix host reset dpc race

The host reset callout could be starting to reset the hba at the same
time the dpc thread is. This creates lots of problems because they both
want to do wierd things with the firmware and interrupts, etc.

This patch just has the host reset function fully shutdown the dpc
thread before resetting the hba.

This patch also moves the setting of the session online bit to fix
a potential race with the dpc thread and iscsi recovery thread.

Signed-off-by: Mike Christie <>
Acked-by: David C Somayajulu <>
Signed-off-by: James Bottomley <>
15 years agoahci: work around ATI SB600 h/w quirk
Jeff Garzik [Thu, 28 Feb 2008 20:43:48 +0000 (15:43 -0500)]
ahci: work around ATI SB600 h/w quirk

This addresses the recent ATI SB600 errata, where the hardware does
not like 256-length PRD entries during FPDMA (aka NCQ).

It hurts performance on SB600, but it is more important to get a
correct patch eliminating the data corruption/lockups, and then later
on tune for performance.

We simply limit each command to a maximum of 255 sectors, on SB600.

Signed-off-by: Jeff Garzik <>
15 years agopata_hpt*, pata_serverworks: fix UDMA masking
Alan Cox [Tue, 26 Feb 2008 21:35:54 +0000 (13:35 -0800)]
pata_hpt*, pata_serverworks: fix UDMA masking

When masking, mask out the modes that are unsupported not the ones
that are supported.  This makes life happier.

Signed-off-by: Alan Cox <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Jeff Garzik <>
15 years ago[S390] incorrect reipl nss name.
Hongjie Yang [Wed, 5 Mar 2008 11:37:16 +0000 (12:37 +0100)]
[S390] incorrect reipl nss name.

/sys/firmware/reipl/nss/name contains the nss name when defsys or
savesys command has been executed. If the defsys or savesys command
fails the kernel_nss_name has to be cleared since a reipl on that
nss name won't be possible.

Signed-off-by: Hongjie Yang <>
Signed-off-by: Martin Schwidefsky <>
15 years ago[S390] Load disabled wait psw if reipl fails.
Michael Holzheu [Wed, 5 Mar 2008 11:37:15 +0000 (12:37 +0100)]
[S390] Load disabled wait psw if reipl fails.

Normally this should not happen, but it's cleaner to do it that way.

Signed-off-by: Michael Holzheu <>
Signed-off-by: Martin Schwidefsky <>
15 years ago[S390] Fix IPL from NSS.
Heiko Carstens [Wed, 5 Mar 2008 11:37:14 +0000 (12:37 +0100)]
[S390] Fix IPL from NSS.

IPL from NSS didn't work because the memory detection routine omits any
memory sections with a size lower than what MAX_ORDER defines.
This causes the detection routine to skip the first memory segment which
has a size of 1MB. Which later on will let the kernel think that there
is no memory available at all.
Since in addition the z/VM memory increment size is 1MB force MAX_ORDER
to be 9, so we can support 1MB segments.

Signed-off-by: Heiko Carstens <>
Signed-off-by: Martin Schwidefsky <>
15 years ago[S390] zcrypt: fix ap_device_list handling
Ralph Wuerthner [Wed, 5 Mar 2008 11:37:13 +0000 (12:37 +0100)]
[S390] zcrypt: fix ap_device_list handling

In ap_device_probe() we can add the new ap device to the internal
device list only if the device probe function successfully returns.
Otherwise we might end up with an invalid device in the internal ap
device list.

Signed-off-by: Ralph Wuerthner <>
Signed-off-by: Martin Schwidefsky <>
15 years ago[S390] sclp_vt220: speed up console output for interactive work
Christian Borntraeger [Wed, 5 Mar 2008 11:37:12 +0000 (12:37 +0100)]
[S390] sclp_vt220: speed up console output for interactive work

Currently an output buffer can wait up to HZ/2 until the buffer is
flushed. The wait time is noticeable in interactive tools like mc.

Change the value to HZ/20, which seems enough for interactive work.

Signed-off-by: Christian Borntraeger <>
Signed-off-by: Martin Schwidefsky <>
15 years ago[S390] dasd: fix reference counting in display method for proc/dasd/devices
Stefan Weinhuber [Wed, 5 Mar 2008 11:37:11 +0000 (12:37 +0100)]
[S390] dasd: fix reference counting in display method for proc/dasd/devices

Using the /proc/dasd/devices interface leaves the reference counter
of alias devices in an inconsistent state. A process that tries to set
such a device offline afterwards will hang.
The dasd_devices_show function returns immediately for alias devices
and this code path was missing a dasd_put_device call.

Signed-off-by: Stefan Weinhuber <>
Signed-off-by: Martin Schwidefsky <>
15 years ago[S390] dasd: let dasd erp matching recognize alias recovery
Stefan Weinhuber [Wed, 5 Mar 2008 11:37:10 +0000 (12:37 +0100)]
[S390] dasd: let dasd erp matching recognize alias recovery

When a request fails that was started on an alias device then the
first recovery step is to retry it on the base device. If the
recovery request fails again with the same symptoms, the next step
should not be a simple retry, but should be a proper recovery based
on sense data, etc. To do so, the dasd recovery functions need to
recognize the alias recovery step in the erp chain by comparing
the start devices.

Signed-off-by: Stefan Weinhuber <>
Signed-off-by: Martin Schwidefsky <>
15 years ago[S390] Get rid of memcpy gcc warning workaround.
Heiko Carstens [Wed, 5 Mar 2008 11:37:09 +0000 (12:37 +0100)]
[S390] Get rid of memcpy gcc warning workaround.

Compile smp.o with -Wno-nonnull so gcc stops warning about memcpy
being used with a null parameter. Also remove the workaround code
and use a char * cast instead of a void * cast to do computations.

Cc: Bastian Blank <>
Signed-off-by: Heiko Carstens <>
Signed-off-by: Martin Schwidefsky <>
15 years ago[S390] idle: Fix machine check handling in idle loop.
Heiko Carstens [Wed, 5 Mar 2008 11:37:08 +0000 (12:37 +0100)]
[S390] idle: Fix machine check handling in idle loop.

If a machine check handling is pending when the idle loop is entered
default_idle will be left with timer ticks and virtual timer disabled.
Fix this by "calling" the idle_chain. Also a BUG_ON(!in_interrupt) in
start_hz_timer must be removed since the function now gets called from
non interrupt context as well.

Signed-off-by: Heiko Carstens <>
Signed-off-by: Martin Schwidefsky <>
15 years ago[S390] Update default configuration.
Martin Schwidefsky [Wed, 5 Mar 2008 11:37:07 +0000 (12:37 +0100)]
[S390] Update default configuration.

Signed-off-by: Martin Schwidefsky <>
15 years ago[CRYPTO] digest: Include internal.h for prototypes
Adrian Bunk [Wed, 5 Mar 2008 11:05:54 +0000 (19:05 +0800)]
[CRYPTO] digest: Include internal.h for prototypes

Every file should include the headers containing the externs for its
global code (in this case for struct crypto_{init,exit}_digest_ops()).

Signed-off-by: Adrian Bunk <>
Signed-off-by: Herbert Xu <>
15 years agoLinux 2.6.25-rc4 v2.6.25-rc4
Linus Torvalds [Wed, 5 Mar 2008 04:33:54 +0000 (20:33 -0800)]
Linux 2.6.25-rc4

15 years agomodule: allow ndiswrapper to use GPL-only symbols
Pavel Roskin [Thu, 28 Feb 2008 22:11:02 +0000 (17:11 -0500)]
module: allow ndiswrapper to use GPL-only symbols

A change after 2.6.24 broke ndiswrapper by accidentally removing its
access to GPL-only symbols.  Revert that change and add comments about
the reasons why ndiswrapper and driverloader are treated in a special

Signed-off-by: Pavel Roskin <>
Acked-by: Greg KH <>
Acked-by: Ingo Molnar <>
Cc: Rusty Russell <>
Cc: Jon Masters <>
Signed-off-by: Linus Torvalds <>
15 years agoMerge git://
Linus Torvalds [Wed, 5 Mar 2008 04:20:58 +0000 (20:20 -0800)]
Merge git://git./linux/kernel/git/davem/net-2.6

* git:// (22 commits)
  [IPCONFIG]: The kernel gets no IP from some DHCP servers
  b43legacy: Fix module init message
  rndis_wlan: fix broken data copy
  libertas: compare the current command with response
  libertas: fix sanity check on sequence number in command response
  p54: fix eeprom parser length sanity checks
  p54: fix EEPROM structure endianness
  ssb: Add pcibios_enable_device() return value check
  rc80211-pid: fix rate adjustment
  [ESP]: Add select on AUTHENC
  [TCP]: Improve ipv4 established hash function.
  [NETPOLL]: Revert two bogus cleanups that broke netconsole.
  [PPPOL2TP]: Add missing sock_put() in pppol2tp_tunnel_closeall()
  Subject: [PPPOL2TP] add missing sock_put() in pppol2tp_recv_dequeue()
  [BLUETOOTH]: l2cap info_timer delete fix in hci_conn_del
  [NET]: Fix race in generic address resolution.
  iucv: fix build error on !SMP
  [TCP]: Must count fack_count also when skipping
  [TUN]: Fix RTNL-locking in tun/tap driver
  [SCTP]: Use proc_create to setup de->proc_fops.

15 years agoMerge git://
Linus Torvalds [Wed, 5 Mar 2008 04:20:32 +0000 (20:20 -0800)]
Merge git://git./linux/kernel/git/davem/sparc-2.6

* git://
  [SPARC]: Fix link errors with gcc-4.3
  sparc64: replace remaining __FUNCTION__ occurances
  sparc: replace remaining __FUNCTION__ occurances
  [SPARC]: Add reboot_command[] extern decl to asm/system.h
  [SPARC]: Mark linux_sparc_{fpu,chips} static.

15 years ago[IPCONFIG]: The kernel gets no IP from some DHCP servers
Stephen Hemminger [Wed, 5 Mar 2008 01:03:49 +0000 (17:03 -0800)]
[IPCONFIG]: The kernel gets no IP from some DHCP servers

From: Stephen Hemminger <>

Based upon a patch by Marcel Wappler:

   This patch fixes a DHCP issue of the kernel: some DHCP servers
   (i.e.  in the Linksys WRT54Gv5) are very strict about the contents
   of the DHCPDISCOVER packet they receive from clients.

   Table 5 in RFC2131 page 36 requests the fields 'ciaddr' and
   'siaddr' MUST be set to '0'.  These DHCP servers ignore Linux
   kernel's DHCP discovery packets with these two fields set to
   '' (in contrast to popular DHCP clients, such as
   'dhclient' or 'udhcpc').  This leads to a not booting system.

Signed-off-by: David S. Miller <>
15 years agoMerge branch 'master' of
David S. Miller [Wed, 5 Mar 2008 00:44:01 +0000 (16:44 -0800)]
Merge branch 'master' of /linux/kernel/git/linville/wireless-2.6

15 years agoMerge branch 'release' of git://
Linus Torvalds [Wed, 5 Mar 2008 00:39:23 +0000 (16:39 -0800)]
Merge branch 'release' of git://git./linux/kernel/git/aegl/linux-2.6

* 'release' of git://
  [IA64] fix ia64 kprobes compilation
  [IA64] move gcc_intrin.h from header-y to unifdef-y
  [IA64] workaround tiger ia64_sal_get_physical_id_info hang
  [IA64] move defconfig to arch/ia64/configs/
  [IA64] Fix irq migration in multiple vector domain
  [IA64] signal(ia64_ia32): add a signal stack overflow check
  [IA64] signal(ia64): add a signal stack overflow check
  [IA64] CONFIG_SGI_SN2 - auto select NUMA and ACPI_NUMA

15 years agoMerge git://
Linus Torvalds [Wed, 5 Mar 2008 00:37:35 +0000 (16:37 -0800)]
Merge git://git./linux/kernel/git/gregkh/driver-2.6

* git://
  debugfs: fix sparse warnings
  Driver core: Fix cleanup when failing device_add().
  driver core: Remove dpm_sysfs_remove() from error path of device_add()
  PM: fix new mutex-locking bug in the PM core
  PM: Do not acquire device semaphores upfront during suspend
  kobject: properly initialize ksets
  driver core: fix up Kconfig text for CONFIG_SYSFS_DEPRECATED

15 years agoMerge git://
Linus Torvalds [Wed, 5 Mar 2008 00:37:10 +0000 (16:37 -0800)]
Merge git://git./linux/kernel/git/gregkh/pci-2.6

* git://
  pci: hotplug: pciehp: fix error code path in hpc_power_off_slot
  PCI: fix up error messages for pci_bus registering
  PCI: fix section mismatch warning in pci_scan_child_bus
  PCI: consolidate duplicated MSI enable functions
  PCI: use dev_printk in quirk messages

15 years agoMerge git://
Linus Torvalds [Wed, 5 Mar 2008 00:36:53 +0000 (16:36 -0800)]
Merge git://git./linux/kernel/git/gregkh/usb-2.6

* git://
  USB: ftdi_sio - really enable EM1010PC
  USB: remove incorrect struct class_device from the printer gadget
  USB: pxa2xx_udc: fix misuse of clock enable/disable calls
  USB: ftdi_sio: Workaround for broken Matrix Orbital serial port
  USB: Add support for AXESSTEL MV110H CDMA modem
  usb-storage: update earlier scatter-gather bug fix
  USB: isp116x: fix enumeration on boot
  USB: ehci: handle large bulk URBs correctly (again)
  USB: spruce up the device blacklist
  USB: fix comment of struct usb_interface
  USB: update Kconfig entry for USB_SUSPEND
  usb: Add support for the mos7820/7840-based B&B USB/RS485 converter to mos7840.c

15 years agokprobes: fix a null pointer bug in register_kretprobe()
Masami Hiramatsu [Tue, 4 Mar 2008 22:29:44 +0000 (14:29 -0800)]
kprobes: fix a null pointer bug in register_kretprobe()

Fix a bug in regiseter_kretprobe() which does not check rp->kp.symbol_name ==
NULL before calling kprobe_lookup_name.

For maintainability, this introduces kprobe_addr helper function which
resolves addr field.  It is used by register_kprobe and register_kretprobe.

Signed-off-by: Masami Hiramatsu <>
Cc: Ananth N Mavinakayanahalli <>
Cc: Jim Keniston <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
15 years agoinput: add I2C to config since the driver makes several i2c*() calls
Randy Dunlap [Tue, 4 Mar 2008 22:29:43 +0000 (14:29 -0800)]
input: add I2C to config since the driver makes several i2c*() calls

Add to help text that the Intel I2C ICH (i801) driver is also needed
for this kernel.

Add LEDS_CLASS to config since the driver makes les_classdev_*() calls:
ERROR: "led_classdev_register" [drivers/input/misc/apanel.ko] undefined!
ERROR: "__led_classdev_unregister" [drivers/input/misc/apanel.ko]

Signed-off-by: Randy Dunlap <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
15 years agoext3: fix mount option parsing
Josef Bacik [Tue, 4 Mar 2008 22:29:43 +0000 (14:29 -0800)]
ext3: fix mount option parsing

The "resize" option won't be noticed as it comes after the NULL option, so if
you try to mount (or in this case remount) with that option it won't be

Signed-off-by: Josef Bacik <>
Cc: <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
15 years agohugetlb: fix pool shrinking while in restricted cpuset
Nishanth Aravamudan [Tue, 4 Mar 2008 22:29:42 +0000 (14:29 -0800)]
hugetlb: fix pool shrinking while in restricted cpuset

Adam Litke noticed that currently we grow the hugepage pool independent of any
cpuset the running process may be in, but when shrinking the pool, the cpuset
is checked.  This leads to inconsistency when shrinking the pool in a
restricted cpuset -- an administrator may have been able to grow the pool on a
node restricted by a containing cpuset, but they cannot shrink it there.

There are two options: either prevent growing of the pool outside of the
cpuset or allow shrinking outside of the cpuset.  >From previous discussions
on linux-mm, /proc/sys/vm/nr_hugepages is an administrative interface that
should not be restricted by cpusets.  So allow shrinking the pool by removing
pages from nodes outside of current's cpuset.

Signed-off-by: Nishanth Aravamudan <>
Acked-by: Adam Litke <>
Cc: William Irwin <>
Cc: Lee Schermerhorn <>
Cc: Christoph Lameter <>
Cc: Paul Jackson <>
Cc: David Gibson <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
15 years agohugetlb: close a difficult to trigger reservation race
Adam Litke [Tue, 4 Mar 2008 22:29:38 +0000 (14:29 -0800)]
hugetlb: close a difficult to trigger reservation race

A hugetlb reservation may be inadequately backed in the event of racing
allocations and frees when utilizing surplus huge pages.  Consider the
following series of events in processes A and B:

 A) Allocates some surplus pages to satisfy a reservation
 B) Frees some huge pages
 A) A notices the extra free pages and drops hugetlb_lock to free some of
    its surplus pages back to the buddy allocator.
 B) Allocates some huge pages
 A) Reacquires hugetlb_lock and returns from gather_surplus_huge_pages()

Avoid this by commiting the reservation after pages have been allocated but
before dropping the lock to free excess pages.  For parity, release the
reservation in return_unused_surplus_pages().

This patch also corrects the cpuset_mems_nr() error path in
hugetlb_acct_memory().  If the cpuset check fails, uncommit the
reservation, but also be sure to return any surplus huge pages that may
have been allocated to back the failed reservation.

Thanks to Andy Whitcroft for discovering this.

Signed-off-by: Adam Litke <>
Cc: Mel Gorman <>
Cc: Andy Whitcroft <>
Cc: Dave Hansen <>
Cc: William Lee Irwin III <>
Cc: Andy Whitcroft <>
Cc: Mel Gorman <>
Cc: David Gibson <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
15 years agomd: the md RAID10 resync thread could cause a md RAID10 array deadlock
K.Tanaka [Tue, 4 Mar 2008 22:29:37 +0000 (14:29 -0800)]
md: the md RAID10 resync thread could cause a md RAID10 array deadlock

This message describes another issue about md RAID10 found by testing the
2.6.24 md RAID10 using new scsi fault injection framework.


When a scsi error results in disabling a disk during RAID10 recovery, the
resync threads of md RAID10 could stall.

This case, the raid array has already been broken and it may not matter.  But
I think stall is not preferable.  If it occurs, even shutdown or reboot will
fail because of resource busy.

The deadlock mechanism:

The r10bio_s structure has a "remaining" member to keep track of BIOs yet to
be handled when recovering.  The "remaining" counter is incremented when
building a BIO in sync_request() and is decremented when finish a BIO in

If building a BIO fails for some reasons in sync_request(), the "remaining"
should be decremented if it has already been incremented.  I found a case
where this decrement is forgotten.  This causes a md_do_sync() deadlock
because md_do_sync() waits for md_done_sync() called by end_sync_write(), but
end_sync_write() never calls md_done_sync() because of the "remaining" counter

For example, this problem would be reproduced in the following case:

Personalities : [raid10]
md0 : active raid10 sdf1[4] sde1[5](F) sdd1[2] sdc1[1] sdb1[6](F)
      3919616 blocks 64K chunks 2 near-copies [4/2] [_UU_]
      [>....................]  recovery =  2.2% (45376/1959808) finish=0.7min speed=45376K/sec

This case, sdf1 is recovering, sdb1 and sde1 are disabled.
An additional error with detaching sdd will cause a deadlock.

md0 : active raid10 sdf1[4] sde1[5](F) sdd1[6](F) sdc1[1] sdb1[7](F)
      3919616 blocks 64K chunks 2 near-copies [4/1] [_U__]
      [=>...................]  recovery =  5.0% (99520/1959808) finish=5.9min speed=5237K/sec

 2739 ?        S<     0:17 [md0_raid10]
28608 ?        D<     0:00 [md0_resync]
28629 pts/1    Ss     0:00 bash
28830 pts/1    R+     0:00 ps ax
31819 ?        D<     0:00 [kjournald]

The resync thread keeps working, but actually it is deadlocked.

By this patch, the remaining counter will be decremented if needed.

Signed-off-by: Neil Brown <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
15 years agomd: fix possible raid1/raid10 deadlock on read error during resync
NeilBrown [Tue, 4 Mar 2008 22:29:35 +0000 (14:29 -0800)]
md: fix possible raid1/raid10 deadlock on read error during resync

Thanks to K.Tanaka and the scsi fault injection framework, here is a fix for
another possible deadlock in raid1/raid10 error handing.

If a read request returns an error while a resync is happening and a resync
request is pending, the attempt to fix the error will block until the resync
progresses, and the resync will block until the read request completes.  Thus
a deadlock.

This patch fixes the problem.

Cc: "K.Tanaka" <>
Signed-off-by: Neil Brown <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
15 years agomd: don't attempt read-balancing for raid10 'far' layouts
Keld Simonsen [Tue, 4 Mar 2008 22:29:34 +0000 (14:29 -0800)]
md: don't attempt read-balancing for raid10 'far' layouts

This patch changes the disk to be read for layout "far > 1" to always be the
disk with the lowest block address.

Thus the chunks to be read will always be (for a fully functioning array) from
the first band of stripes, and the raid will then work as a raid0 consisting
of the first band of stripes.

Some advantages:

The fastest part which is the outer sectors of the disks involved will be
used.  The outer blocks of a disk may be as much as 100 % faster than the
inner blocks.

Average seek time will be smaller, as seeks will always be confined to the
first part of the disks.

Mixed disks with different performance characteristics will work better, as
they will work as raid0, the sequential read rate will be number of disks
involved times the IO rate of the slowest disk.

If a disk is malfunctioning, the first disk which is working, and has the
lowest block address for the logical block will be used.

Signed-off-by: Keld Simonsen <>
Signed-off-by: Neil Brown <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
15 years agomd: lock access to rdev attributes properly
NeilBrown [Tue, 4 Mar 2008 22:29:33 +0000 (14:29 -0800)]
md: lock access to rdev attributes properly

When we access attributes of an rdev (component device on an md array) through
sysfs, we really need to lock the array against concurrent changes.  We
currently do that when we change an attribute, but not when we read an
attribute.  We need to lock when reading as well else rdev->mddev could become
NULL while we are accessing it.

So add appropriate locking (mddev_lock) to rdev_attr_show.

rdev_size_store requires some extra care as well as it needs to unlock the
mddev while scanning other mddevs for overlapping regions.  We currently
assume that rdev->mddev will still be unchanged after the scan, but that
cannot be certain.  So take a copy of rdev->mddev for use at the end of the

Signed-off-by: Neil Brown <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
15 years agomd: make sure a reshape is started when device switches to read-write
NeilBrown [Tue, 4 Mar 2008 22:29:32 +0000 (14:29 -0800)]
md: make sure a reshape is started when device switches to read-write

A resync/reshape/recovery thread will refuse to progress when the array is
marked read-only.  So whenever it mark it not read-only, it is important to
wake up thread resync thread.  There is one place we didn't do this.

The problem manifests if the start_ro module parameters is set, and a raid5
array that is in the middle of a reshape (restripe) is started.  The array
will initially be semi-read-only (meaning it acts like it is readonly until
the first write).  So the reshape will not proceed.

On the first write, the array will become read-write, but the reshape will not
be started, and there is no event which will ever restart that thread.

Signed-off-by: Neil Brown <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
15 years agomd: clean up irregularity with raid autodetect
NeilBrown [Tue, 4 Mar 2008 22:29:31 +0000 (14:29 -0800)]
md: clean up irregularity with raid autodetect

When a raid1 array is stopped, all components currently get added to the list
for auto-detection.  However we should really only add components that were
found by autodetection in the first place.  So add a flag to record that
information, and use it.

Signed-off-by: Neil Brown <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
15 years agomd: guard against possible bad array geometry in v1 metadata
NeilBrown [Tue, 4 Mar 2008 22:29:31 +0000 (14:29 -0800)]
md: guard against possible bad array geometry in v1 metadata

Make sure the data doesn't start before the end of the superblock when the
superblock is at the start of the device.

Signed-off-by: Neil Brown <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
15 years agomd: reduce CPU wastage on idle md array with a write-intent bitmap
NeilBrown [Tue, 4 Mar 2008 22:29:30 +0000 (14:29 -0800)]
md: reduce CPU wastage on idle md array with a write-intent bitmap

On an md array with a write-intent bitmap, a thread wakes up every few seconds
and scans the bitmap looking for work to do.  If the array is idle, there will
be no work to do, but a lot of scanning is done to discover this.

So cache the fact that the bitmap is completely clean, and avoid scanning the
whole bitmap when the cache is known to be clean.

Signed-off-by: Neil Brown <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
15 years agomd: fix deadlock in md/raid1 and md/raid10 when handling a read error
NeilBrown [Tue, 4 Mar 2008 22:29:29 +0000 (14:29 -0800)]
md: fix deadlock in md/raid1 and md/raid10 when handling a read error

When handling a read error, we freeze the array to stop any other IO while
attempting to over-write with correct data.

This is done in the raid1d(raid10d) thread and must wait for all submitted IO
to complete (except for requests that failed and are sitting in the retry
queue - these are counted in ->nr_queue and will stay there during a freeze).

However write requests need attention from raid1d as bitmap updates might be
required.  This can cause a deadlock as raid1 is waiting for requests to
finish that themselves need attention from raid1d.

So we create a new function 'flush_pending_writes' to give that attention, and
call it in freeze_array to be sure that we aren't waiting on raid1d.

Thanks to "K.Tanaka" <> for finding and reporting this

Cc: "K.Tanaka" <>
Signed-off-by: Neil Brown <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
15 years agoiommu: parisc: make the IOMMUs respect the segment boundary limits
FUJITA Tomonori [Tue, 4 Mar 2008 22:29:28 +0000 (14:29 -0800)]
iommu: parisc: make the IOMMUs respect the segment boundary limits

Make PARISC's two IOMMU implementations not allocate a memory area spanning
LLD's segment boundary.

[ coding-style fixes]
Signed-off-by: FUJITA Tomonori <>
Cc: Kyle McMartin <>
Cc: Matthew Wilcox <>
Cc: Grant Grundler <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
15 years agoiommu: parisc: pass struct device to iommu_alloc_range
FUJITA Tomonori [Tue, 4 Mar 2008 22:29:28 +0000 (14:29 -0800)]
iommu: parisc: pass struct device to iommu_alloc_range

This adds struct device argument to sba_alloc_range and ccio_alloc_range, a
preparation for modifications to fix the IOMMU segment boundary problem.  This
change enables ccio_alloc_range to access to LLD's segment boundary limits.

[ coding-style fixes]
Signed-off-by: FUJITA Tomonori <>
Cc: Kyle McMartin <>
Cc: Matthew Wilcox <>
Cc: Grant Grundler <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>