1. 13 May, 2012 1 commit
  2. 12 May, 2012 10 commits
    • Linus Torvalds's avatar
      Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · cf00c55e
      Linus Torvalds authored
      Pull SCSI fixes from James Bottomley:
       "This is a set of minor qla and virto fixes plus one major regression
        fix (oops in all legacy host drivers)."
      
      * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        [SCSI] virtio_scsi: fix TMF use-after-free
        [SCSI] fix oops in all legacy host adapters caused by 6f381fa3
        [SCSI] qla2xxx: Update version number to 8.04.00.03-k.
        [SCSI] qla2xxx: Properly check for current state after the fabric-login request.
        [SCSI] qla2xxx: Proper completion to scsi-ml for scsi status task_set_full and busy.
        [SCSI] qla2xxx: Block flash access from application when device is initialized for ISP82xx.
        [SCSI] qla2xxx: Fix reset time out as qla2xxx not ack to reset request.
      cf00c55e
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 4a873f53
      Linus Torvalds authored
      Pull networking fixes from David S. Miller:
      
       1) Since we do RCU lookups on ipv4 FIB entries, we have to test if the
          entry is dead before returning it to our caller.
      
       2) openvswitch locking and packet validation fixes from Ansis Atteka,
          Jesse Gross, and Pravin B Shelar.
      
       3) Fix PM resume locking in IGB driver, from Benjamin Poirier.
      
       4) Fix VLAN header handling in vhost-net and macvtap, from Basil Gor.
      
       5) Revert a bogus network namespace isolation change that was causing
          regressions on S390 networking devices.
      
       6) If bonding decides to process and handle a LACPDU frame, we
          shouldn't bump the rx_dropped counter.  From Jiri Bohac.
      
       7) Fix mis-calculation of available TX space in r8169 driver when doing
          TSO, which can lead to crashes and/or hung device.  From Julien
          Ducourthial.
      
       8) SCTP does not validate cached routes properly in all cases, from
          Nicolas Dichtel.
      
       9) Link status interrupt needs to be handled in ks8851 driver, from
          Stephen Boyd.
      
      10) Use capable(), not cap_raised(), in connector/userns netlink code.
          From Eric W. Biederman via Andrew Morton.
      
      11) Fix pktgen OOPS on module unload, from Eric Dumazet.
      
      12) iwlwifi under-estimates SKB truesizes, also from Eric Dumazet.
      
      13) Cure division by zero in SFC driver, from Ben Hutchings.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (26 commits)
        ks8851: Update link status during link change interrupt
        macvtap: restore vlan header on user read
        vhost-net: fix handle_rx buffer size
        bonding: don't increase rx_dropped after processing LACPDUs
        connector/userns: replace netlink uses of cap_raised() with capable()
        sctp: check cached dst before using it
        pktgen: fix crash at module unload
        Revert "net: maintain namespace isolation between vlan and real device"
        ehea: fix losing of NEQ events when one event occurred early
        igb: fix rtnl race in PM resume path
        ipv4: Do not use dead fib_info entries.
        r8169: fix unsigned int wraparound with TSO
        sfc: Fix division by zero when using one RX channel and no SR-IOV
        openvswitch: Validation of IPv6 set port action uses IPv4 header
        net: compare_ether_addr[_64bits]() has no ordering
        cdc_ether: Ignore bogus union descriptor for RNDIS devices
        bnx2x: bug fix when loading after SAN boot
        e1000: Silence sparse warnings by correcting type
        igb, ixgbe: netdev_tx_reset_queue incorrectly called from tx init path
        openvswitch: Release rtnl_lock if ovs_vport_cmd_build_info() failed.
        ...
      4a873f53
    • Linus Torvalds's avatar
      Merge tag 'dm-3.4-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-dm · 2eb42967
      Linus Torvalds authored
      Pull device-mapper fixes from Alasdair G Kergon:
       "Fix a couple of serious memory leaks in device-mapper thin
        provisioning and tidy its MODULE_DESCRIPTION.
      
        Mitigate occasional reported hangs associated with multipath scsi_dh
        module loading."
      
      * tag 'dm-3.4-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-dm:
        dm mpath: check if scsi_dh module already loaded before trying to load
        dm thin: correct module description
        dm thin: fix unprotected use of prepared_discards list
        dm thin: reinstate missing mempool_free in cell_release_singleton
      2eb42967
    • Rafael J. Wysocki's avatar
      MAINTAINERS: Add myself as the cpufreq maintainer · a6c072c7
      Rafael J. Wysocki authored
      Since cpufreq has no official maintainer at the moment, I'm willing
      to maintain it along some other power management core code I've been
      maintaining already.
      Signed-off-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      a6c072c7
    • Mike Snitzer's avatar
      dm mpath: check if scsi_dh module already loaded before trying to load · 510193a2
      Mike Snitzer authored
      If the requested scsi_dh module is already loaded then skip
      request_module().
      
      Multipath table loads can hang in an unnecessary __request_module.
      Reported-by: default avatarBen Marzinski <bmarzins@redhat.com>
      Cc: stable@kernel.org
      Signed-off-by: default avatarMike Snitzer <snitzer@redhat.com>
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      510193a2
    • Alasdair G Kergon's avatar
      dm thin: correct module description · 7cab8bf1
      Alasdair G Kergon authored
      Remove duplicate copy of string "device-mapper" (DM_NAME) from
      MODULE_DESCRIPTION.
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      7cab8bf1
    • Mike Snitzer's avatar
      dm thin: fix unprotected use of prepared_discards list · c3a0ce2e
      Mike Snitzer authored
      Fix two places in commit 104655fd ("dm thin: support discards") that
      didn't use pool->lock to protect against concurrent changes to the
      prepared_discards list.
      
      Without this fix, thin_endio() can race with process_discard(), leading
      to concurrent list_add()s that result in the processes locking up with
      an error like the following:
      
      WARNING: at lib/list_debug.c:32 __list_add+0x8f/0xa0()
      ...
      list_add corruption. next->prev should be prev (ffff880323b96140), but was ffff8801d2c48440. (next=ffff8801d2c485c0).
      ...
      Pid: 17205, comm: kworker/u:1 Tainted: G        W  O 3.4.0-rc3.snitm+ #1
      Call Trace:
       [<ffffffff8103ca1f>] warn_slowpath_common+0x7f/0xc0
       [<ffffffff8103cb16>] warn_slowpath_fmt+0x46/0x50
       [<ffffffffa04f6ce6>] ? bio_detain+0xc6/0x210 [dm_thin_pool]
       [<ffffffff8124ff3f>] __list_add+0x8f/0xa0
       [<ffffffffa04f70d2>] process_discard+0x2a2/0x2d0 [dm_thin_pool]
       [<ffffffffa04f6a78>] ? remap_and_issue+0x38/0x50 [dm_thin_pool]
       [<ffffffffa04f7c3b>] process_deferred_bios+0x7b/0x230 [dm_thin_pool]
       [<ffffffffa04f7df0>] ? process_deferred_bios+0x230/0x230 [dm_thin_pool]
       [<ffffffffa04f7e42>] do_worker+0x52/0x60 [dm_thin_pool]
       [<ffffffff81056fa9>] process_one_work+0x129/0x450
       [<ffffffff81059b9c>] worker_thread+0x17c/0x3c0
       [<ffffffff81059a20>] ? manage_workers+0x120/0x120
       [<ffffffff8105eabe>] kthread+0x9e/0xb0
       [<ffffffff814ceda4>] kernel_thread_helper+0x4/0x10
       [<ffffffff8105ea20>] ? kthread_freezable_should_stop+0x70/0x70
       [<ffffffff814ceda0>] ? gs_change+0x13/0x13
      ---[ end trace 7e0a523bc5e52692 ]---
      Signed-off-by: default avatarMike Snitzer <snitzer@redhat.com>
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      c3a0ce2e
    • Mike Snitzer's avatar
      dm thin: reinstate missing mempool_free in cell_release_singleton · 03aaae7c
      Mike Snitzer authored
      Fix a significant memory leak inadvertently introduced during
      simplification of cell_release_singleton() in commit
      6f94a4c4 ("dm thin: fix stacked bi_next
      usage").
      
      A cell's hlist_del() must be accompanied by a mempool_free().
      Use __cell_release() to do this, like before.
      Signed-off-by: default avatarMike Snitzer <snitzer@redhat.com>
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      03aaae7c
    • Sachin Kamat's avatar
      gpio/exynos: Fix compiler warnings when non-exynos machines are selected · 2760f7ad
      Sachin Kamat authored
      Fixes the following compiler warnings:
      
      drivers/gpio/gpio-samsung.c: In function ‘samsung_gpiolib_init’:
      drivers/gpio/gpio-samsung.c:2980:1: warning: label ‘err_ioremap1’ defined but not used [-Wunused-label]
      drivers/gpio/gpio-samsung.c:2978:1: warning: label ‘err_ioremap2’ defined but not used [-Wunused-label]
      drivers/gpio/gpio-samsung.c:2976:1: warning: label ‘err_ioremap3’ defined but not used [-Wunused-label]
      drivers/gpio/gpio-samsung.c:2974:1: warning: label ‘err_ioremap4’ defined but not used [-Wunused-label]
      drivers/gpio/gpio-samsung.c:2722:55: warning: unused variable ‘gpio_base4’ [-Wunused-variable]
      
      drivers/gpio/gpio-samsung.c:455:32: warning: ‘exynos_gpio_cfg’ defined but not used [-Wunused-variable]
      drivers/gpio/gpio-samsung.c:2126:33: warning: ‘exynos4_gpios_1’ defined but not used [-Wunused-variable]
      drivers/gpio/gpio-samsung.c:2228:33: warning: ‘exynos4_gpios_2’ defined but not used [-Wunused-variable]
      drivers/gpio/gpio-samsung.c:2373:33: warning: ‘exynos4_gpios_3’ defined but not used [-Wunused-variable]
      Signed-off-by: default avatarSachin Kamat <sachin.kamat@linaro.org>
      Signed-off-by: default avatarGrant Likely <grant.likely@secretlab.ca>
      2760f7ad
    • Thomas Gleixner's avatar
      gpio: pch9: Use proper flow type handlers · df9541a6
      Thomas Gleixner authored
      Jean-Francois Dagenais reported:
      
       Configuring a gpio pin with the gpio-pch driver with
       "IRQF_TRIGGER_LOW | IRQF_ONESHOT" generates an interrupt storm for
       threaded ISR until the ISR thread actually gets to physically clear
       the interrupt on the triggering chip!! The immediate observable
       symptom is the high CPU usage for my ISR thread task and the
       interrupt count in /proc/interrupts incrementing radically.
      
      The driver is wrong in several ways:
      
      1) Using handle_simple_irq() does not provide proper flow control
         handling. In the case of oneshot threaded handlers for the
         demultiplexed interrupts this results in an interrupt storm because
         the simple handler does not deal with masking/unmasking.  Even
         without threaded oneshot handlers an interrupt storm for level type
         interrupts can easily be triggered when the interrupt is disabled
         and the interrupt line is activated from the device.
      
      2) Acknowlegding the demultiplexed interrupt before calling the
         handler is wrong for level type interrupts.
      
      3) The set_type function unconditionally enables the interrupt. It's
         supposed to set the type and nothing else. The unmasking is done by
         the core code.
      
      Move the acknowledge code into a separate function and add it to the
      demux irqchip callbacks.
      
      Remove the unconditional enabling from the set_type() callback and set
      the proper flow handlers depending on the selected type (level/edge).
      Reported-and-tested-by: default avatarJean-Francois Dagenais <jeff.dagenais@gmail.com>
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Signed-off-by: default avatarGrant Likely <grant.likely@secretlab.ca>
      df9541a6
  3. 11 May, 2012 18 commits
  4. 10 May, 2012 11 commits
    • Linus Torvalds's avatar
      Merge branch 'parisc' (PA-RISC compile fixes) · d60b9c16
      Linus Torvalds authored
      Merge PA-RISC compile fixes from Rolf Eike Beer:
       "Since commit d66acc39 ("bitops: Optimise get_order()") getorder.h
        includes log2.h which leads to an include loop on PA-RISC, bringing a
        bunch of other breakage to light.  This patchset fixes the compilation
        of the current state of 3.4 on HPPA.
      
        Unchanged against the first version, just added an Ack by Grant."
      
      * emailed from Rolf Eike Beer <eike-kernel@sf-tec.de>: (5 patches)
        parisc: move definition of PAGE0 to asm/page.h
        parisc: add missing include of asm/page.h to asm/pgtable.h
        parisc: drop include of asm/pdc.h from asm/hardware.h
        parisc: add missing forward declarations in asm/hardware.h
        parisc: add missing includes in asm/spinlock.h
      d60b9c16
    • Linus Torvalds's avatar
      Merge branch 'akpm' (Andrew's patch-bomb) · 7c283324
      Linus Torvalds authored
      Merge misc fixes from Andrew Morton.
      
      * emailed from Andrew Morton <akpm@linux-foundation.org>: (8 patches)
        MAINTAINERS: add maintainer for LED subsystem
        mm: nobootmem: fix sign extend problem in __free_pages_memory()
        drivers/leds: correct __devexit annotations
        memcg: free spare array to avoid memory leak
        namespaces, pid_ns: fix leakage on fork() failure
        hugetlb: prevent BUG_ON in hugetlb_fault() -> hugetlb_cow()
        mm: fix division by 0 in percpu_pagelist_fraction()
        proc/pid/pagemap: correctly report non-present ptes and holes between vmas
      7c283324
    • Rolf Eike Beer's avatar
      parisc: move definition of PAGE0 to asm/page.h · 4a8a0788
      Rolf Eike Beer authored
      This was defined in asm/pdc.h which needs to include asm/page.h for
      __PAGE_OFFSET. This leads to an include loop so that page.h eventually will
      include pdc.h again. While this is no problem because of header guards, it is
      a problem because some symbols may be undefined. Such an error is this:
      
      In file included from include/linux/bitops.h:35:0,
                       from include/asm-generic/getorder.h:7,
                       from arch/parisc/include/asm/page.h:162,
                       from arch/parisc/include/asm/pdc.h:346,
                       from arch/parisc/include/asm/processor.h:16,
                       from arch/parisc/include/asm/spinlock.h:6,
                       from arch/parisc/include/asm/atomic.h:20,
                       from include/linux/atomic.h:4,
                       from include/linux/sysfs.h:20,
                       from include/linux/kobject.h:21,
                       from include/linux/device.h:17,
                       from include/linux/eisa.h:5,
                       from arch/parisc/kernel/pci.c:11:
      arch/parisc/include/asm/bitops.h: In function ‘set_bit’:
      arch/parisc/include/asm/bitops.h:82:2: error: implicit declaration of function ‘_atomic_spin_lock_irqsave’ [-Werror=implicit-function-declaration]
      arch/parisc/include/asm/bitops.h:84:2: error: implicit declaration of function ‘_atomic_spin_unlock_irqrestore’ [-Werror=implicit-function-declaration]
      Signed-off-by: default avatarRolf Eike Beer <eike-kernel@sf-tec.de>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      4a8a0788
    • Rolf Eike Beer's avatar
      parisc: add missing include of asm/page.h to asm/pgtable.h · 9b05b1ec
      Rolf Eike Beer authored
      Fixes these errors:
      
      In file included from arch/parisc/include/asm/io.h:5:0,
                       from include/linux/io.h:22,
                       from include/linux/pci.h:54,
                       from arch/parisc/kernel/setup.c:35:
      arch/parisc/include/asm/pgtable.h:92:6: warning: "PAGE_SHIFT" is not defined [-Wundef]
      arch/parisc/include/asm/pgtable.h:92:6: warning: "PAGE_SHIFT" is not defined [-Wundef]
      arch/parisc/include/asm/pgtable.h:92:6: warning: "BITS_PER_PTE_ENTRY" is not defined [-Wundef]
      Signed-off-by: default avatarRolf Eike Beer <eike-kernel@sf-tec.de>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      9b05b1ec
    • Rolf Eike Beer's avatar
      parisc: drop include of asm/pdc.h from asm/hardware.h · 6eb608f5
      Rolf Eike Beer authored
      It seems none of the symbols defined by pdc.h is needed, but it introduces an
      include loop causing compile errors:
      
      In file included from arch/parisc/include/asm/spinlock.h:4:0,
                       from arch/parisc/include/asm/atomic.h:20,
                       from include/linux/atomic.h:4,
                       from arch/parisc/include/asm/bitops.h:56,
                       from include/linux/bitops.h:35,
                       from include/asm-generic/getorder.h:7,
                       from arch/parisc/include/asm/page.h:162,
                       from arch/parisc/include/asm/pdc.h:346,
                       from arch/parisc/include/asm/hardware.h:5,
                       from arch/parisc/kernel/hardware.c:30:
      arch/parisc/include/asm/processor.h:74:16: error: field ‘cpu_type’ has incomplete type
      arch/parisc/include/asm/processor.h:77:20: error: field ‘model’ has incomplete type
      arch/parisc/include/asm/processor.h: In function ‘parisc_requires_coherency’:
      arch/parisc/include/asm/processor.h:349:36: error: ‘mako’ undeclared (first use in this function)
      arch/parisc/include/asm/processor.h:349:36: note: each undeclared identifier is reported only once for each function it appears in
      arch/parisc/include/asm/processor.h:350:30: error: ‘mako2’ undeclared (first use in this function)
      Signed-off-by: default avatarRolf Eike Beer <eike-kernel@sf-tec.de>
      Acked-by: default avatarGrant Grundler <grantgrundler@gmail.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      6eb608f5
    • Rolf Eike Beer's avatar
      parisc: add missing forward declarations in asm/hardware.h · 25fe853d
      Rolf Eike Beer authored
      Fixes this warnings:
      
      In file included from arch/parisc/include/asm/processor.h:15:0,
                       from arch/parisc/include/asm/spinlock.h:4,
                       from arch/parisc/include/asm/atomic.h:20,
                       from include/linux/atomic.h:4,
                       from arch/parisc/include/asm/bitops.h:11,
                       from include/linux/bitops.h:22,
                       from include/linux/kernel.h:19,
                       from include/linux/sched.h:55,
                       from arch/parisc/kernel/asm-offsets.c:31:
      arch/parisc/include/asm/hardware.h:106:10: warning: ‘struct hardware_path’ declared inside parameter list [enabled by default]
      arch/parisc/include/asm/hardware.h:106:10: warning: its scope is only this definition or declaration, which is probably not what you want [enabled by default]
      arch/parisc/include/asm/hardware.h:116:59: warning: ‘struct hardware_path’ declared inside parameter list [enabled by default]
      arch/parisc/include/asm/hardware.h:118:47: warning: ‘struct hardware_path’ declared inside parameter list [enabled by default]
      arch/parisc/include/asm/hardware.h:119:57: warning: ‘struct hardware_path’ declared inside parameter list [enabled by default]
      Signed-off-by: default avatarRolf Eike Beer <eike-kernel@sf-tec.de>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      25fe853d
    • Rolf Eike Beer's avatar
      parisc: add missing includes in asm/spinlock.h · 1cab4201
      Rolf Eike Beer authored
      This leads to this errors:
      
      In file included from arch/parisc/include/asm/atomic.h:20:0,
                       from include/linux/atomic.h:4,
                       from arch/parisc/include/asm/bitops.h:56,
                       from include/linux/bitops.h:22,
                       from include/linux/kernel.h:19,
                       from include/linux/sched.h:55,
                       from arch/parisc/kernel/asm-offsets.c:31:
      arch/parisc/include/asm/spinlock.h: In function ‘arch_spin_is_locked’:
      arch/parisc/include/asm/spinlock.h:9:2: error: implicit declaration of function ‘__ldcw_align’ [-Werror=implicit-function-declaration]
      arch/parisc/include/asm/spinlock.h:9:29: warning: initialization makes pointer from integer without a cast [enabled by default]
      arch/parisc/include/asm/spinlock.h: In function ‘arch_spin_lock_flags’:
      arch/parisc/include/asm/spinlock.h:22:2: error: implicit declaration of function ‘mb’ [-Werror=implicit-function-declaration]
      arch/parisc/include/asm/spinlock.h:23:4: warning: assignment makes pointer from integer without a cast [enabled by default]
      arch/parisc/include/asm/spinlock.h:24:2: error: implicit declaration of function ‘__ldcw’ [-Werror=implicit-function-declaration]
      Signed-off-by: default avatarRolf Eike Beer <eike-kernel@sf-tec.de>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      1cab4201
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc · 9e5869f8
      Linus Torvalds authored
      Pull a sparc fix from David Miller.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc:
        sparc64: Do not clobber %g2 in xcall_fetch_glob_regs().
      9e5869f8
    • Bryan Wu's avatar
      MAINTAINERS: add maintainer for LED subsystem · 17ff3c1f
      Bryan Wu authored
      Add Bryan Wu as the primary maintainer for drivers/leds
      Signed-off-by: default avatarBryan Wu <bryan.wu@canonical.com>
      Acked-by: default avatarRichard Purdie <richard.purdie@linuxfoundation.org>
      Acked-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      17ff3c1f
    • Russ Anderson's avatar
      mm: nobootmem: fix sign extend problem in __free_pages_memory() · 6bc2e853
      Russ Anderson authored
      Systems with 8 TBytes of memory or greater can hit a problem where only
      the the first 8 TB of memory shows up.  This is due to "int i" being
      smaller than "unsigned long start_aligned", causing the high bits to be
      dropped.
      
      The fix is to change `i' to unsigned long to match start_aligned
      and end_aligned.
      
      Thanks to Jack Steiner for assistance tracking this down.
      Signed-off-by: default avatarRuss Anderson <rja@sgi.com>
      Cc: Jack Steiner <steiner@sgi.com>
      Cc: Johannes Weiner <hannes@cmpxchg.org>
      Cc: Tejun Heo <tj@kernel.org>
      Cc: David S. Miller <davem@davemloft.net>
      Cc: Yinghai Lu <yinghai@kernel.org>
      Cc: Gavin Shan <shangw@linux.vnet.ibm.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      6bc2e853
    • Arnd Bergmann's avatar
      drivers/leds: correct __devexit annotations · b8cd742a
      Arnd Bergmann authored
      __devexit functions are discarded without CONFIG_HOTPLUG, so they need
      to be referenced carefully.  A __devexit function may also not be called
      from a __devinit function.
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarMathieu Poirier <mathieu.poirier@linaro.org>
      Cc: Bryan Wu <bryan.wu@canonical.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      b8cd742a