Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Commits on Jun 10, 2009
  1. Linux 2.6.30

  2. char: mxser, fix ISA board lookup

    Peter Botha authored committed
    There's a bug in the mxser kernel module that still appears in the kernel.
    mxser_get_ISA_conf takes a ioaddress as its first argument, by passing the
    not of the ioaddr, you're effectively passing 0 which means it won't be
    able to talk to an ISA card.  I have tested this, and removing the !
    fixes the problem.
    Cc: "Peter Botha" <>
    Signed-off-by: Jiri Slaby <>
    Acked-by: Alan Cox <>
    Cc: <>
    Signed-off-by: Andrew Morton <>
    Signed-off-by: Linus Torvalds <>
Commits on Jun 9, 2009
  1. @jankara

    jbd: fix race in buffer processing in commit code

    jankara authored committed
    In commit code, we scan buffers attached to a transaction.  During this
    scan, we sometimes have to drop j_list_lock and then we recheck whether
    the journal buffer head didn't get freed by journal_try_to_free_buffers().
     But checking for buffer_jbd(bh) isn't enough because a new journal head
    could get attached to our buffer head.  So add a check whether the journal
    head remained the same and whether it's still at the same transaction and
    This is a nasty bug and can cause problems like memory corruption (use after
    free) or trigger various assertions in JBD code (observed).
    Signed-off-by: Jan Kara <>
    Cc: <>
    Cc: <>
    Signed-off-by: Andrew Morton <>
    Signed-off-by: Linus Torvalds <>
  2. @raven-au

    autofs4: remove hashed check in validate_wait()

    raven-au authored committed
    The recent ->lookup() deadlock correction required the directory inode
    mutex to be dropped while waiting for expire completion.  We were
    concerned about side effects from this change and one has been identified.
    I saw several error messages.
    They cause autofs to become quite confused and don't really point to the
    actual problem.
    Things like:
    handle_packet_missing_direct:1376: can't find map entry for (43,1827932)
    which is usually totally fatal (although in this case it wouldn't be
    except that I treat is as such because it normally is).
    do_mount_direct: direct trigger not valid or already mounted
    which is recoverable, however if this problem is at play it can cause
    autofs to become quite confused as to the dependencies in the mount tree
    because mount triggers end up mounted multiple times.  It's hard to
    accurately check for this over mounting case and automount shouldn't need
    to if the kernel module is doing its job.
    There was one other message, similar in consequence of this last one but I
    can't locate a log example just now.
    When checking if a mount has already completed prior to adding a new mount
    request to the wait queue we check if the dentry is hashed and, if so, if
    it is a mount point.  But, if a mount successfully completed while we
    slept on the wait queue mutex the dentry must exist for the mount to have
    completed so the test is not really needed.
    Mounts can also be done on top of a global root dentry, so for the above
    case, where a mount request completes and the wait queue entry has already
    been removed, the hashed test returning false can cause an incorrect
    callback to the daemon.  Also, d_mountpoint() is not sufficient to check
    if a mount has completed for the multi-mount case when we don't have a
    real mount at the base of the tree.
    Signed-off-by: Ian Kent <>
    Signed-off-by: Andrew Morton <>
    Signed-off-by: Linus Torvalds <>
  3. @vapier

    shm: fix unused warnings on nommu

    vapier authored committed
    The massive nommu update (8feae13) resulted in these warnings:
    ipc/shm.c: In function `sys_shmdt':
    ipc/shm.c:974: warning: unused variable `size'
    ipc/shm.c:972: warning: unused variable `next'
    Signed-off-by: Mike Frysinger <>
    Cc: David Howells <>
    Signed-off-by: Andrew Morton <>
    Signed-off-by: Linus Torvalds <>
  4. Merge git://…

    * git://
      kvm: fix kvm reboot crash when MAXSMP is used
      cpumask: alloc zeroed cpumask for static cpumask_var_ts
      cpumask: introduce zalloc_cpumask_var
  5. Merge branch 'for-linus' of git://

    * 'for-linus' of git://
      bsg: setting rq->bio to NULL
  6. Merge git://

    * git://
      cls_cgroup: Fix oops when user send improperly 'tc filter add' request
      r8169: fix crash when large packets are received
  7. Merge branch 'for-linus' of git://

    * 'for-linus' of git://
      md/raid5: fix bug in reshape code when chunk_size decreases.
      md/raid5 - avoid deadlocks in get_active_stripe during reshape
      md/raid5: use conf->raid_disks in preference to mddev->raid_disk
  8. @fujita

    bsg: setting rq->bio to NULL

    fujita authored Jens Axboe committed
    Due to commit 1cd96c2 ("block: WARN
    in __blk_put_request() for potential bio leak"), BSG SMP requests get
    the false warnings:
    WARNING: at block/blk-core.c:1068 __blk_put_request+0x52/0xc0()
    This sets rq->bio to NULL to avoid that false warnings.
    Signed-off-by: FUJITA Tomonori <>
    Signed-off-by: Jens Axboe <>
  9. @rustyrussell

    kvm: fix kvm reboot crash when MAXSMP is used

    Avi Kivity authored rustyrussell committed
    one system was found there is crash during reboot then kvm/MAXSMP
    Sending all processes the KILL signal...                              done
    Please stand by while rebooting the system...
    [ 1721.856538] md: stopping all md devices.
    [ 1722.852139] kvm: exiting hardware virtualization
    [ 1722.854601] BUG: unable to handle kernel NULL pointer dereference at (null)
    [ 1722.872219] IP: [<ffffffff8102c6b6>] hardware_disable+0x4c/0xb4
    [ 1722.877955] PGD 0
    [ 1722.880042] Oops: 0000 [#1] SMP
    [ 1722.892548] last sysfs file: /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/host0/target0:2:0/0:2:0:0/vendor
    [ 1722.900977] CPU 9
    [ 1722.912606] Modules linked in:
    [ 1722.914226] Pid: 0, comm: swapper Not tainted 2.6.30-rc7-tip-01843-g2305324-dirty #299 ...
    [ 1722.932589] RIP: 0010:[<ffffffff8102c6b6>]  [<ffffffff8102c6b6>] hardware_disable+0x4c/0xb4
    [ 1722.942709] RSP: 0018:ffffc900010b6ed8  EFLAGS: 00010046
    [ 1722.956121] RAX: 0000000000000000 RBX: ffffc9000e253140 RCX: 0000000000000009
    [ 1722.972202] RDX: 000000000000b020 RSI: ffffc900010c3220 RDI: ffffffffffffd790
    [ 1722.977399] RBP: ffffc900010b6f08 R08: 0000000000000000 R09: 0000000000000000
    [ 1722.995149] R10: 00000000000004b8 R11: 966912b6c78fddbd R12: 0000000000000009
    [ 1723.011551] R13: 000000000000b020 R14: 0000000000000009 R15: 0000000000000000
    [ 1723.019898] FS:  0000000000000000(0000) GS:ffffc900010b3000(0000) knlGS:0000000000000000
    [ 1723.034389] CS:  0010 DS: 0018 ES: 0018 CR0: 000000008005003b
    [ 1723.041164] CR2: 0000000000000000 CR3: 0000000001001000 CR4: 00000000000006e0
    [ 1723.056192] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    [ 1723.072546] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
    [ 1723.080562] Process swapper (pid: 0, threadinfo ffff88107e464000, task ffff88047e5a2550)
    [ 1723.096144] Stack:
    [ 1723.099071]  0000000000000046 ffffc9000e253168 966912b6c78fddbd ffffc9000e253140
    [ 1723.115471]  ffff880c7d4304d0 ffffc9000e253168 ffffc900010b6f28 ffffffff81011022
    [ 1723.132428]  ffffc900010b6f48 966912b6c78fddbd ffffc900010b6f48 ffffffff8100b83b
    [ 1723.141973] Call Trace:
    [ 1723.142981]  <IRQ> <0> [<ffffffff81011022>] kvm_arch_hardware_disable+0x26/0x3c
    [ 1723.158153]  [<ffffffff8100b83b>] hardware_disable+0x3f/0x55
    [ 1723.172168]  [<ffffffff810b95f6>] generic_smp_call_function_interrupt+0x76/0x13c
    [ 1723.178836]  [<ffffffff8104cbea>] smp_call_function_interrupt+0x3a/0x5e
    [ 1723.194689]  [<ffffffff81035bf3>] call_function_interrupt+0x13/0x20
    [ 1723.199750]  <EOI> <0> [<ffffffff814ad3b4>] ? acpi_idle_enter_c1+0xd3/0xf4
    [ 1723.217508]  [<ffffffff814ad3ae>] ? acpi_idle_enter_c1+0xcd/0xf4
    [ 1723.232172]  [<ffffffff814ad4bc>] ? acpi_idle_enter_bm+0xe7/0x2ce
    [ 1723.235141]  [<ffffffff81a8d93f>] ? __atomic_notifier_call_chain+0x0/0xac
    [ 1723.253381]  [<ffffffff818c3dff>] ? menu_select+0x58/0xd2
    [ 1723.258179]  [<ffffffff818c2c9d>] ? cpuidle_idle_call+0xa4/0xf3
    [ 1723.272828]  [<ffffffff81034085>] ? cpu_idle+0xb8/0x101
    [ 1723.277085]  [<ffffffff81a80163>] ? start_secondary+0x1bc/0x1d7
    [ 1723.293708] Code: b0 00 00 65 48 8b 04 25 28 00 00 00 48 89 45 e0 31 c0 48 8b 04 cd 30 ee 27 82 49 89 cc 49 89 d5 48 8b 04 10 48 8d b8 90 d7 ff ff <48> 8b 87 70 28 00 00 48 8d 98 90 d7 ff ff eb 16 e8 e9 fe ff ff
    [ 1723.335524] RIP  [<ffffffff8102c6b6>] hardware_disable+0x4c/0xb4
    [ 1723.342076]  RSP <ffffc900010b6ed8>
    [ 1723.352021] CR2: 0000000000000000
    [ 1723.354348] ---[ end trace e2aec53dae150aa1 ]---
    it turns out that we need clear cpus_hardware_enabled in that case.
    Reported-and-tested-by: Yinghai Lu <>
    Signed-off-by: Yinghai Lu <>
    Signed-off-by: Rusty Russell <>
  10. @rustyrussell

    cpumask: alloc zeroed cpumask for static cpumask_var_ts

    Yinghai Lu authored rustyrussell committed
    These are defined as static cpumask_var_t so if MAXSMP is not used,
    they are cleared already.  Avoid surprises when MAXSMP is enabled.
    Signed-off-by: Yinghai Lu <>
    Signed-off-by: Rusty Russell <>
  11. @rustyrussell

    cpumask: introduce zalloc_cpumask_var

    Yinghai Lu authored rustyrussell committed
    So can get cpumask_var with cpumask_clear
    Signed-off-by: Yinghai Lu <>
    Signed-off-by: Rusty Russell <>
  12. @davem330

    cls_cgroup: Fix oops when user send improperly 'tc filter add' request

    Minoru Usui authored davem330 committed
    I found a bug in cls_cgroup_change() in cls_cgroup.c.
    cls_cgroup_change() expected tca[TCA_OPTIONS] was set from user space properly,
    but tc in iproute2-2.6.29-1 (which I used) didn't set it.
    In the current source code of tc in git, it set tca[TCA_OPTIONS].
    If we always use a newest iproute2 in git when we use cls_cgroup, 
    we don't face this oops probably.
    But I think, kernel shouldn't panic regardless of use program's behaviour. 
    Signed-off-by: Minoru Usui <>
    Signed-off-by: David S. Miller <>
  13. @davem330

    r8169: fix crash when large packets are received

    Eric Dumazet authored davem330 committed
    Michael Tokarev reported receiving a large packet could crash
    a machine with RTL8169 NIC.
    ( original thread at )
    Problem is this driver tells that NIC frames up to 16383 bytes
    can be received but provides skb to rx ring allocated with
    smaller sizes (1536 bytes in case standard 1500 bytes MTU is used)
    When a frame larger than what was allocated by driver is received,
    dma transfert can occurs past the end of buffer and corrupt
    kernel memory.
    Fix is to tell to NIC what is the maximum size a frame can be.
    This bug is very old, (before git introduction, linux-2.6.10), and 
    should be backported to stable versions.
    Reported-by: Michael Tokarev <>
    Signed-off-by: Eric Dumazet <>
    Tested-by: Michael Tokarev <>
    Signed-off-by: David S. Miller <>
  14. @neilbrown

    md/raid5: fix bug in reshape code when chunk_size decreases.

    neilbrown authored
    Now that we support changing the chunksize, we calculate
    "reshape_sectors" to be the max of number of sectors in old
    and new chunk size.
    However there is one please where we still use 'chunksize'
    rather than 'reshape_sectors'.
    This causes a reshape that reduces the size of chunks to freeze.
    Signed-off-by: NeilBrown <>
  15. @neilbrown

    md/raid5 - avoid deadlocks in get_active_stripe during reshape

    neilbrown authored
    md has functionality to 'quiesce' and array so that all pending
    IO completed and no new IO starts.  This is used to achieve a
    stable state before making internal changes.
    Currently this quiescing applies equally to normal IO, resync
    IO, and reshape IO.
    However there is a problem with applying it to reshape IO.
    Reshape can have multiple 'stripe_heads' that must be active together.
    If the quiesce come between allocating the first and the last of
    such a collection, then we deadlock, as the last will not be allocated
    until the quiesce is lifted, the quiesce will not be lifted until the
    first (which has been allocated) gets used, and that first cannot be
    used until the last is allocated.
    It is not necessary to inhibit reshape IO when a quiesce is
    requested.  Those places in the code that require a full quiesce will
    ensure the reshape thread is not running at all.
    So allow reshape requests to get access to new stripe_heads without
    being blocked by a 'quiesce'.
    This only affects in-place reshapes (i.e. where the array does not
    grow or shrink) and these are only newly supported.  So this patch is
    not needed in earlier kernels.
    Signed-off-by: NeilBrown <>
  16. @neilbrown

    md/raid5: use conf->raid_disks in preference to mddev->raid_disk

    neilbrown authored
    mddev->raid_disks can be changed and any time by a request from
    user-space.  It is a suggestion as to what number of raid_disks is
    conf->raid_disks can only be changed by the raid5 module with suitable
    locks in place.  It is a statement as to the current number of
    There are two places where the latter should be used, but the former
    is used.  This can lead to a crash when reshaping an array.
    This patch changes to mddev-> to conf->
    Signed-off-by: NeilBrown <>
Commits on Jun 8, 2009
  1. async: Fix lack of boot-time console due to insufficient synchronization

    Our async work synchronization was broken by "async: make sure
    independent async domains can't accidentally entangle" (commit
    d5a877e), because it would report
    the wrong lowest active async ID when there was both running and
    pending async work.
    This caused things like no being able to read the root filesystem,
    resulting in missing console devices and inability to run 'init',
    causing a boot-time panic.
    This fixes it by properly returning the lowest pending async ID: if
    there is any running async work, that will have a lower ID than any
    pending work, and we should _not_ look at the pending work list.
    There were alternative patches from Jaswinder and James, but this one
    also cleans up the code by removing the pointless 'ret' variable and
    the unnecesary testing for an empty list around 'for_each_entry()' (if
    the list is empty, the for_each_entry() thing just won't execute).
    Reported-and-tested-by: Chris Clayton <>
    Cc: Jaswinder Singh Rajput <>
    Cc: James Bottomley <>
    Cc: Arjan van de Ven <>
    Signed-off-by: Linus Torvalds <>
  2. Merge branch 'upstream' of git://…

    * 'upstream' of git://
      MIPS: Outline udelay and fix a few issues.
      MIPS: ioctl.h: Fix headers_check warnings
      MIPS: Cobalt: PCI bus is always required to obtain the board ID
      MIPS: Kconfig: Remove "Support for" from Cavium system type
      MIPS: Sibyte: Honor CONFIG_CMDLINE
      SSB: BCM47xx: Export ssb_watchdog_timer_set
  3. pata_netcell: Fix typo

    Alan Cox authored committed
    The previous patch submission had a I typo I didn't catch but Bartlomiej
    noted. Guess this proves the point about any patch being risky late in an rc
    Signed-off-by: Alan Cox <>
    Signed-off-by: Linus Torvalds <>
  4. Merge branch 'kvm-updates/2.6.30' of git://…

    * 'kvm-updates/2.6.30' of git://
      KVM: Explicity initialize cpus_hardware_enabled
  5. Merge branch 'for-linus' of git://…

    * 'for-linus' of git://
      pdc202xx_old: fix resetproc() method
      pdc202xx_old: fix 'pdc20246_dma_ops'
  6. @ralfbaechle

    MIPS: Outline udelay and fix a few issues.

    ralfbaechle authored
    Outlining fixes the issue were on certain CPUs such as the R10000 family
    the delay loop would need an extra cycle if it overlaps a cacheline
    The rewrite also fixes build errors with GCC 4.4 which was changed in
    way incompatible with the kernel's inline assembly.
    Relying on pure C for computation of the delay value removes the need for
    explicit.  The price we pay is a slight slowdown of the computation - to
    be fixed on another day.
    Signed-off-by: Ralf Baechle <>
  7. @ralfbaechle

    MIPS: ioctl.h: Fix headers_check warnings

    Jaswinder Singh Rajput authored ralfbaechle committed
    Make ioctl.h compatible with asm-generic/ioctl.h and userspace
    fix the following 'make headers_check' warning:
      usr/include/asm-mips/ioctl.h:64: extern's make no sense in userspace
    Signed-off-by: Jaswinder Singh Rajput <>
    Signed-off-by: Ralf Baechle <>
  8. @ralfbaechle

    MIPS: Cobalt: PCI bus is always required to obtain the board ID

    Yoichi Yuasa authored ralfbaechle committed
    Signed-off-by: Yoichi Yuasa <>
    Signed-off-by: Ralf Baechle <>
  9. @ralfbaechle

    MIPS: Kconfig: Remove "Support for" from Cavium system type

    Yoichi Yuasa authored ralfbaechle committed
    Signed-off-by: Yoichi Yuasa <>
    Acked-by: David Daney <>
    Signed-off-by: Ralf Baechle <>
  10. @ralfbaechle

    MIPS: Sibyte: Honor CONFIG_CMDLINE

    ralfbaechle authored
    Original patch by Imre Kaloz <>.
    Signed-off-by: Ralf Baechle <>
  11. @mat-c @ralfbaechle

    SSB: BCM47xx: Export ssb_watchdog_timer_set

    mat-c authored ralfbaechle committed
    this patch export ssb_watchdog_timer_set to allow to use it in a Linux 
    watchdog driver.
    Signed-off-by: Matthieu CASTET <>
    Acked-by : Michael Buesch <>
    Signed-off-by: Ralf Baechle <>
  12. Merge

      [ARM] 5543/1: arm: serial amba: add missing declaration in serial.h
      [ARM] pxa: fix pxa27x_udc default pullup GPIO
      [ARM] pxa/imote2: fix UCAM sensor board ADC model number
      mx[23]: don't put clock lookups in __initdata
      fix oops when using console=ttymxcN with N > 0
      [ARM] ARMv7 errata: only apply fixes when running on applicable CPU
      [ARM] 5534/1: kmalloc must return a cache line aligned buffer
  13. Merge branch 'for-linus' of git://…

    * 'for-linus' of git://
      sdhci-of: Fix the wrong accessor to HOSTVER register
      mvsdio: fix config failure with some high speed SDHC cards
      mvsdio: ignore high speed timing requests from the core
      mmc/omap: Use disable_irq_nosync() from within irq handlers.
      sdhci-of: Add fsl,esdhc as a valid compatible to bind against
      mvsdio: allow automatic loading when modular
      mxcmmc: Fix missing return value checking in DMA setup code.
      mxcmmc : Reset the SDHC hardware if software timeout occurs.
      omap_hsmmc: Trivial fix for a typo in comment
      mxcmmc: decrease minimum frequency to make MMC cards work
  14. KVM: Explicity initialize cpus_hardware_enabled

    Avi Kivity authored
    Under CONFIG_MAXSMP, cpus_hardware_enabled is allocated from the heap and
    not statically initialized.  This causes a crash on reboot when kvm thinks
    vmx is enabled on random nonexistent cpus and accesses nonexistent percpu
    Fix by explicitly clearing the variable.
    Reported-and-tested-by: Yinghai Lu <>
    Signed-off-by: Avi Kivity <>
Commits on Jun 7, 2009
  1. [ARM] 5543/1: arm: serial amba: add missing declaration in serial.h

    Alessandro Rubini authored Russell King committed
    This header is sometimes included in the uncompress stage to get
    register values, but no <linux/amba/bus.h> can be included there.
    So declare "struct amba_device" here before using it in a prototype.
    Signed-off-by: Alessandro Rubini <>
    Acked-by: Andrea Gallo <>
    Signed-off-by: Russell King <>
  2. @bzolnier

    pdc202xx_old: fix resetproc() method

    Sergei Shtylyov authored bzolnier committed
    pdc202xx_reset() calls pdc202xx_reset_host() twice, for both channels, while
    that function actually twiddles the single, shared software reset bit -- the
    net effect is a duplicated reset and horrendous 4 second delay happening not
    only on a channel reset but also when dma_lost_irq() and dma_clear() methods
    are called.  Fold pdc202xx_reset_host() into pdc202xx_reset(), fix printk(),
    and move it before the actual reset...
    Signed-off-by: Sergei Shtylyov <>
    Signed-off-by: Bartlomiej Zolnierkiewicz <>
  3. @bzolnier

    pdc202xx_old: fix 'pdc20246_dma_ops'

    Sergei Shtylyov authored bzolnier committed
    Commit ac95bee (ide: add struct ide_port_ops
    (take 2)) erroneously converted the driver's dma_timeout() and dma_lost_irq()
    methods to call the driver's resetproc() method regardless of whether it was
    defined for this specific controller while it hadn't been defined and hence
    called for PDC20246. So the dma_clear() method, the successor of dma_timeout(),
    shouldn't exist and the dma_lost_irq() method should be standard for PDC20246.
    Signed-off-by: Sergei Shtylyov <>
    Signed-off-by: Bartlomiej Zolnierkiewicz <>
Something went wrong with that request. Please try again.