1. 13 Apr, 2013 1 commit
    • Linus Torvalds's avatar
      kobject: fix kset_find_obj() race with concurrent last kobject_put() · a49b7e82
      Linus Torvalds authored
      Anatol Pomozov identified a race condition that hits module unloading
      and re-loading.  To quote Anatol:
      
       "This is a race codition that exists between kset_find_obj() and
        kobject_put().  kset_find_obj() might return kobject that has refcount
        equal to 0 if this kobject is freeing by kobject_put() in other
        thread.
      
        Here is timeline for the crash in case if kset_find_obj() searches for
        an object tht nobody holds and other thread is doing kobject_put() on
        the same kobject:
      
          THREAD A (calls kset_find_obj())     THREAD B (calls kobject_put())
          splin_lock()
                                               atomic_dec_return(kobj->kref), counter gets zero here
                                               ... starts kobject cleanup ....
                                               spin_lock() // WAIT thread A in kobj_kset_leave()
          iterate over kset->list
          atomic_inc(kobj->kref) (counter becomes 1)
          spin_unlock()
                                               spin_lock() // taken
                                               // it does not know that thread A increased counter so it
                                               remove obj from list
                                               spin_unlock()
                                               vfree(module) // frees module object with containing kobj
      
          // kobj points to freed memory area!!
          kobject_put(kobj) // OOPS!!!!
      
        The race above happens because module.c tries to use kset_find_obj()
        when somebody unloads module.  The module.c code was introduced in
        commit 6494a93d"
      
      Anatol supplied a patch specific for module.c that worked around the
      problem by simply not using kset_find_obj() at all, but rather than make
      a local band-aid, this just fixes kset_find_obj() to be thread-safe
      using the proper model of refusing the get a new reference if the
      refcount has already dropped to zero.
      
      See examples of this proper refcount handling not only in the kref
      documentation, but in various other equivalent uses of this pattern by
      grepping for atomic_inc_not_zero().
      
      [ Side note: the module race does indicate that module loading and
        unloading is not properly serialized wrt sysfs information using the
        module mutex.  That may require further thought, but this is the
        correct fix at the kobject layer regardless. ]
      Reported-analyzed-and-tested-by: default avatarAnatol Pomozov <anatol.pomozov@gmail.com>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      a49b7e82
  2. 12 Apr, 2013 13 commits
    • Dave Hansen's avatar
      x86-32: Fix possible incomplete TLB invalidate with PAE pagetables · 1de14c3c
      Dave Hansen authored
      This patch attempts to fix:
      
      	https://bugzilla.kernel.org/show_bug.cgi?id=56461
      
      The symptom is a crash and messages like this:
      
      	chrome: Corrupted page table at address 34a03000
      	*pdpt = 0000000000000000 *pde = 0000000000000000
      	Bad pagetable: 000f [#1] PREEMPT SMP
      
      Ingo guesses this got introduced by commit 611ae8e3 ("x86/tlb:
      enable tlb flush range support for x86") since that code started to free
      unused pagetables.
      
      On x86-32 PAE kernels, that new code has the potential to free an entire
      PMD page and will clear one of the four page-directory-pointer-table
      (aka pgd_t entries).
      
      The hardware aggressively "caches" these top-level entries and invlpg
      does not actually affect the CPU's copy.  If we clear one we *HAVE* to
      do a full TLB flush, otherwise we might continue using a freed pmd page.
      (note, we do this properly on the population side in pud_populate()).
      
      This patch tracks whenever we clear one of these entries in the 'struct
      mmu_gather', and ensures that we follow up with a full tlb flush.
      
      BTW, I disassembled and checked that:
      
      	if (tlb->fullmm == 0)
      and
      	if (!tlb->fullmm && !tlb->need_flush_all)
      
      generate essentially the same code, so there should be zero impact there
      to the !PAE case.
      Signed-off-by: default avatarDave Hansen <dave.hansen@linux.intel.com>
      Cc: Peter Anvin <hpa@zytor.com>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Artem S Tashkinov <t.artem@mailcity.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      1de14c3c
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending · bf81710c
      Linus Torvalds authored
      Pull SCSI target fixes from Nicholas Bellinger:
       "Here are remaining target-pending items for v3.9-rc7 code.
      
        The tcm_vhost patches are more than I'd usually include in a -rc7
        pull, but are changes required for v3.9 to work correctly with the
        pending vhost-scsi-pci QEMU upstream series merge.  (Paolo CC'ed)
      
        Plus Asias's conversion to use vhost_virtqueue->private_data + RCU for
        managing vhost-scsi endpoints has gotten alot of review + testing over
        the past weeks, and MST has ACKed the full series.
      
        Also, there is a target patch to fix a long-standing bug within
        control CDB handling with Standby/Offline/Transition ALUA port access
        states, that had been incorrectly rejecting the control CDBs required
        for LUN scan to work during these port group states.  CC'ing to
        stable."
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending:
        target: Fix incorrect fallthrough of ALUA Standby/Offline/Transition CDBs
        tcm_vhost: Send bad target to guest when cmd fails
        tcm_vhost: Add vhost_scsi_send_bad_target() helper
        tcm_vhost: Fix tv_cmd leak in vhost_scsi_handle_vq
        tcm_vhost: Remove double check of response
        tcm_vhost: Initialize vq->last_used_idx when set endpoint
        tcm_vhost: Use vq->private_data to indicate if the endpoint is setup
        tcm_vhost: Use ACCESS_ONCE for vs->vs_tpg[target] access
      bf81710c
    • Linus Torvalds's avatar
      Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 90f340e2
      Linus Torvalds authored
      Pull SCSI fixes from James Bottomley:
       "This is a set of ten bug fixes (and two consisting of copyright year
        update and version number change) pretty much all of which involve
        either a crash or a hang except the removal of the random sleep from
        the qla2xxx driver (which is a coding error so bad, we want it gone
        before anyone has a chance to copy it)."
      
      * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        [SCSI] lpfc: fix potential NULL pointer dereference in lpfc_sli4_rq_put()
        [SCSI] libsas: fix handling vacant phy in sas_set_ex_phy()
        [SCSI] ibmvscsi: Fix slave_configure deadlock
        [SCSI] qla2xxx: Update the driver version to 8.04.00.13-k.
        [SCSI] qla2xxx: Remove debug code that msleeps for random duration.
        [SCSI] qla2xxx: Update copyright dates information in LICENSE.qla2xxx file.
        [SCSI] qla2xxx: Fix crash during firmware dump procedure.
        [SCSI] Revert "qla2xxx: Add setting of driver version string for vendor application."
        [SCSI] ipr: dlpar failed when adding an adapter back
        [SCSI] ipr: fix addition of abort command to HRRQ free queue
        [SCSI] st: Take additional queue ref in st_probe
        [SCSI] libsas: use right function to alloc smp response
        [SCSI] ipr: ipr_test_msi() fails when running with msi-x enabled adapter
      90f340e2
    • Linus Torvalds's avatar
      Merge branch 'for-next' of git://git.samba.org/sfrench/cifs-2.6 · 0b1fd266
      Linus Torvalds authored
      Pull CIFS fix from Steve French:
       "Fixes a regression in cifs in which a password which begins with a
        comma is parsed incorrectly as a blank password"
      
      * 'for-next' of git://git.samba.org/sfrench/cifs-2.6:
        cifs: Allow passwords which begin with a delimitor
      0b1fd266
    • Linus Torvalds's avatar
      Merge tag 'sound-3.9' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 6074fffb
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "This contains a few small ASoC fixes (wm8903, wm5102, samsung-i2s,
        tegra, and soc-compress) and an endian fix for NI USB-audio devices,
        update for Mark's e-mail address.
      
        No scary changes, AFAIS."
      
      * tag 'sound-3.9' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        MAINTAINERS: Update e-mail address
        ASoC: wm5102: Correct lookup of arizona struct in SYSCLK event
        ASoC: wm8903: Fix the bypass to HP/LINEOUT when no DAC or ADC is running
        ALSA: usb-audio: fix endianness bug in snd_nativeinstruments_*
        ASoC: tegra: Don't claim to support PCM pause and resume
        ASoC: Samsung: set drvdata before adding secondary device
        ASoC: Samsung: return error if drvdata is not set
        ASoC: compress: Cancel delayed power down if needed
        ASoC: core: Fix to check return value of snd_soc_update_bits_locked()
      6074fffb
    • Takashi Iwai's avatar
      Merge tag 'asoc-maintainers-v3.9-rc6' of... · c5a4698d
      Takashi Iwai authored
      Merge tag 'asoc-maintainers-v3.9-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus
      
      MAINTAINERS: Update e-mail address
      
      Update the e-mail address I use for subsystems.
      c5a4698d
    • Mark Brown's avatar
      MAINTAINERS: Update e-mail address · b02e48f2
      Mark Brown authored
      Update the e-mail address I use for subsystems.
      Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
      b02e48f2
    • Takashi Iwai's avatar
      Merge tag 'asoc-v3.9-rc6' of... · 232a73dd
      Takashi Iwai authored
      Merge tag 'asoc-v3.9-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus
      
      ASoC: Updates for v3.9
      
      A few updates, more than I'd like, fixing some relatively small issues
      but mostly driver specific ones.  Nothing wildly exciting so if it
      doesn't make v3.9 it won't be the end of the world but it'd be nice.
      232a73dd
    • Linus Torvalds's avatar
      Merge branch 'fixes' of git://git.infradead.org/users/vkoul/slave-dma · cfb63baf
      Linus Torvalds authored
      Pull slave-dmaengine fixes from Vinod Koul:
       "The first one fixes issue in pl330 to check for DT compatible and
        the second one fixes omap-dma to start without delay"
      
      * 'fixes' of git://git.infradead.org/users/vkoul/slave-dma:
        dmaengine: omap-dma: Start DMA without delay for cyclic channels
        DMA: PL330: Add check if device tree compatible
      cfb63baf
    • Linus Torvalds's avatar
      Merge tag 'pm-3.9-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · a3ab02b4
      Linus Torvalds authored
      Pull power management fixes from Rafael Wysocki:
      
       - System reboot/halt fix related to CPU offline ordering from Huacai
         Chen.
      
       - intel_pstate driver fix for a delay time computation error
         occasionally crashing systems using it from Dirk Brandewie.
      
      * tag 'pm-3.9-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        PM / reboot: call syscore_shutdown() after disable_nonboot_cpus()
        cpufreq / intel_pstate: Set timer timeout correctly
      a3ab02b4
    • Linus Torvalds's avatar
      Merge tag 'regmap-v3.9-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap · 89a132ac
      Linus Torvalds authored
      Pull regmap revert from Mark Brown:
       "regmap: Back out work buffer fix
      
        This reverts commit bc8ce4 (regmap: don't corrupt work buffer in
        _regmap_raw_write()) since it turns out that it can cause issues when
        taken in isolation from the other changes in -next that lead to its
        discovery.  On the basis that nobody noticed the problems for quite
        some time without that subsequent work let's drop it from v3.9."
      
      * tag 'regmap-v3.9-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap:
        regmap: Back out work buffer fix
      89a132ac
    • Linus Torvalds's avatar
      Merge tag 'gpio-fixes-v3.9-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio · ee8b890e
      Linus Torvalds authored
      Pull GPIO fix from Linus Walleij:
       "Oneliner fix for the PCA 953x driver."
      
      * tag 'gpio-fixes-v3.9-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio:
        gpio: pca953x: fix irq_domain_add_simple usage
      ee8b890e
    • Linus Torvalds's avatar
      Merge tag 'arm-soc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · ce6fbaf1
      Linus Torvalds authored
      Pull ARM SoC bug fixes from Arnd Bergmann:
       "A little later during the week than the last few pull requests, since
        there was very little that came in before 3.9-rc6.  At least things
        have calmed down again here.
      
        Some important bug fixes that came in over the last 10 days, mostly
        mvebu and imx:
      
         - Multiple regressions on i.mx following the conversion of the clock
           code, hopefully the last we are seeing of those.
         - a regression in the mvebu irq handling code
         - An incorrect register offset in the rewritten s3c24xx irq code.
         - Two bugs in setting up the iomega_ix2_200 machine
         - Turning on an extra bus clock on imx
         - A MAINTAINERS file entry for Roland Stigge"
      
      * tag 'arm-soc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
        arm: mvebu: Fix the irq map function in SMP mode
        Fix GE0/GE1 init on ix2-200 as GE0 has no PHY
        ARM: S3C24XX: Fix interrupt pending register offset of the EINT controller
        ARM: S3C24XX: Correct NR_IRQS definition for s3c2440
        ARM i.MX6: Fix ldb_di clock selection
        ARM: imx: provide twd clock lookup from device tree
        ARM: imx35 Bugfix admux clock
        ARM: clk-imx35: Bugfix iomux clock
        ARM: mxs: Slow down the I2C clock speed
        MAINTAINERS: Add maintainer for LPC32xx
        ARM: Kirkwood: Fix typo in the definition of ix2-200 rebuild LED
      ce6fbaf1
  3. 11 Apr, 2013 13 commits
  4. 10 Apr, 2013 13 commits
    • Linus Torvalds's avatar
      Merge tag 'char-misc-3.9-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc · 7ee32a6d
      Linus Torvalds authored
      Pull char/misc fix from Greg Kroah-Hartman:
       "Here is a single Kconfig dependancy build fix for 3.9.
      
        It's been in linux-next for a while, and fixes a problem that has been
        reported multiple times."
      
      * tag 'char-misc-3.9-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
        misc/vmw_vmci: Add dependency on CONFIG_NET
      7ee32a6d
    • Linus Torvalds's avatar
      Merge tag 'tty-3.9-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty · 7a92bc38
      Linus Torvalds authored
      Pull tty/serial fixes from Greg Kroah-Hartman:
       "Here are 4 small tty/serial fixes for 3.9.
      
        One fixes a bug where we broke the documentation build, and the others
        fix reported problems in some serial drivers.
      
        All have been in linux-next for a while"
      
      * tag 'tty-3.9-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
        tty: mxser: fix cycle termination condition in mxser_probe() and mxser_module_init()
        Revert "tty/8250_pnp: serial port detection regression since v3.7"
        OMAP/serial: Revert bad fix of Rx FIFO threshold granularity
        tty: Documentation: fix a path in a DocBook template
      7a92bc38
    • Linus Torvalds's avatar
      Merge tag 'stable/for-linus-3.9-rc6-tag' of... · 722aacb2
      Linus Torvalds authored
      Merge tag 'stable/for-linus-3.9-rc6-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen
      
      Pull Xen fixes from Konrad Rzeszutek Wilk:
       "Two bug-fixes:
         - Early bootup issue found on DL380 machines
         - Fix for the timer interrupt not being processed right awaym leading
           to quite delayed time skew on certain workloads"
      
      * tag 'stable/for-linus-3.9-rc6-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:
        xen/mmu: On early bootup, flush the TLB when changing RO->RW bits Xen provided pagetables.
        xen/events: Handle VIRQ_TIMER before any other hardirq in event loop.
      722aacb2
    • Linus Torvalds's avatar
      Merge tag 'trace-fixes-3.9-rc-v2' of... · 9baba666
      Linus Torvalds authored
      Merge tag 'trace-fixes-3.9-rc-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace
      
      Pull tracing fix from Steven Rostedt:
       "Namhyung Kim fixed a long standing bug that can cause a kernel panic.
      
        If the function profiler fails to allocate memory for everything, it
        will do a double free on the same pointer which can cause a panic"
      
      * tag 'trace-fixes-3.9-rc-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
        tracing: Fix double free when function profile init failed
      9baba666
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · fe2971a0
      Linus Torvalds authored
      Pull networking fixes from David Miller:
      
       1) cfg80211_conn_scan() must be called with the sched_scan_mutex, fix
          from Artem Savkov.
      
       2) Fix regression in TCP ICMPv6 processing, we do not want to treat
          redirects as socket errors, from Christoph Paasch.
      
       3) Fix several recvmsg() msg_name kernel memory leaks into userspace,
          in ATM, AX25, Bluetooth, CAIF, IRDA, s390 IUCV, L2TP, LLC, Netrom,
          NFC, Rose, TIPC, and VSOCK.  From Mathias Krause and Wei Yongjun.
      
       4) Fix AF_IUCV handling of segmented SKBs in recvmsg(), from Ursula
          Braun and Eric Dumazet.
      
       5) CAN gw.c code does kfree() on SLAB cache memory, use
          kmem_cache_free() instead.  Fix from Wei Yongjun.
      
       6) Fix LSM regression on TCP SYN/ACKs, some LSMs such as SELINUX want
          an skb->sk socket context available for these packets, but nothing
          else requires it.  From Eric Dumazet and Paul Moore.
      
       7) Fix ipv4 address lifetime processing so that we don't perform
          sleepable acts inside of rcu_read_lock() sections, do them in an
          rtnl_lock() section instead.  From Jiri Pirko.
      
       8) mvneta driver accidently sets HW features after device registry, it
          should do so beforehand.  Fix from Willy Tarreau.
      
       9) Fix bonding unload races more correctly, from Nikolay Aleksandrov
          and Veaceslav Falico.
      
      10) rtnl_dump_ifinfo() and rtnl_calcit() invoke nlmsg_parse() with wrong
          header size argument.  Fix from Michael Riesch.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (44 commits)
        lsm: add the missing documentation for the security_skb_owned_by() hook
        bnx2x: Prevent null pointer dereference in AFEX mode
        e100: Add dma mapping error check
        selinux: add a skb_owned_by() hook
        can: gw: use kmem_cache_free() instead of kfree()
        netrom: fix invalid use of sizeof in nr_recvmsg()
        qeth: fix qeth_wait_for_threads() deadlock for OSN devices
        af_iucv: fix recvmsg by replacing skb_pull() function
        rtnetlink: Call nlmsg_parse() with correct header length
        bonding: fix bonding_masters race condition in bond unloading
        Revert "bonding: remove sysfs before removing devices"
        net: mvneta: enable features before registering the driver
        hyperv: Fix RNDIS send_completion code path
        hyperv: Fix a kernel warning from netvsc_linkstatus_callback()
        net: ipv4: fix schedule while atomic bug in check_lifetime()
        net: ipv4: reset check_lifetime_work after changing lifetime
        bnx2x: Fix KR2 rapid link flap
        sctp: remove 'sridhar' from maintainers list
        VSOCK: Fix missing msg_namelen update in vsock_stream_recvmsg()
        VSOCK: vmci - fix possible info leak in vmci_transport_dgram_dequeue()
        ...
      fe2971a0
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://linux-c6x.org/git/projects/linux-c6x-upstreaming · eb02db38
      Linus Torvalds authored
      Pull C6X fix from Mark Salter.
      
      Final (?) fix from the barrier discussion.
      
      * tag 'for-linus' of git://linux-c6x.org/git/projects/linux-c6x-upstreaming:
        add memory barrier to arch_local_irq_restore
      eb02db38
    • Sachin Prabhu's avatar
      cifs: Allow passwords which begin with a delimitor · c369c9a4
      Sachin Prabhu authored
      Fixes a regression in cifs_parse_mount_options where a password
      which begins with a delimitor is parsed incorrectly as being a blank
      password.
      Signed-off-by: default avatarSachin Prabhu <sprabhu@redhat.com>
      Acked-by: default avatarJeff Layton <jlayton@redhat.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarSteve French <sfrench@us.ibm.com>
      c369c9a4
    • Paul Moore's avatar
      lsm: add the missing documentation for the security_skb_owned_by() hook · 6b07a24f
      Paul Moore authored
      Unfortunately we didn't catch the missing comments earlier when the
      patch was merged.
      Signed-off-by: default avatarPaul Moore <pmoore@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      6b07a24f
    • Yuval Mintz's avatar
      bnx2x: Prevent null pointer dereference in AFEX mode · fea75645
      Yuval Mintz authored
      The cnic module is responsible for initializing various bnx2x structs
      via callbacks provided by the bnx2x module.
      One such struct is the queue object for the FCoE queue.
      
      If a device is working in AFEX mode and its configuration allows FCoE yet
      the cnic module is not loaded, it's very likely a null pointer dereference
      will occur, as the bnx2x will erroneously access the FCoE's queue object.
      
      Prevent said access until cnic properly registers itself.
      Signed-off-by: default avatarYuval Mintz <yuvalmin@broadcom.com>
      Signed-off-by: default avatarAriel Elior <ariele@broadcom.com>
      Signed-off-by: default avatarEilon Greenstein <eilong@broadcom.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      fea75645
    • Neil Horman's avatar
      e100: Add dma mapping error check · 61a0f6ef
      Neil Horman authored
      e100 uses pci_map_single, but fails to check for a dma mapping error after its
      use, resulting in a stack trace:
      
      [   46.656594] ------------[ cut here ]------------
      [   46.657004] WARNING: at lib/dma-debug.c:933 check_unmap+0x47b/0x950()
      [   46.657004] Hardware name: To Be Filled By O.E.M.
      [   46.657004] e100 0000:00:0e.0: DMA-API: device driver failed to check map
      error[device address=0x000000007a4540fa] [size=90 bytes] [mapped as single]
      [   46.657004] Modules linked in:
      [   46.657004]  w83627hf hwmon_vid snd_via82xx ppdev snd_ac97_codec ac97_bus
      snd_seq snd_pcm snd_mpu401 snd_mpu401_uart ns558 snd_rawmidi gameport parport_pc
      e100 snd_seq_device parport snd_page_alloc snd_timer snd soundcore skge shpchp
      k8temp mii edac_core i2c_viapro edac_mce_amd nfsd auth_rpcgss nfs_acl lockd
      sunrpc binfmt_misc uinput ata_generic pata_acpi radeon i2c_algo_bit
      drm_kms_helper ttm firewire_ohci drm firewire_core pata_via sata_via i2c_core
      sata_promise crc_itu_t
      [   46.657004] Pid: 792, comm: ip Not tainted 3.8.0-0.rc6.git0.1.fc19.x86_64 #1
      [   46.657004] Call Trace:
      [   46.657004]  <IRQ>  [<ffffffff81065ed0>] warn_slowpath_common+0x70/0xa0
      [   46.657004]  [<ffffffff81065f4c>] warn_slowpath_fmt+0x4c/0x50
      [   46.657004]  [<ffffffff81364cfb>] check_unmap+0x47b/0x950
      [   46.657004]  [<ffffffff8136522f>] debug_dma_unmap_page+0x5f/0x70
      [   46.657004]  [<ffffffffa030f0f0>] ? e100_tx_clean+0x30/0x210 [e100]
      [   46.657004]  [<ffffffffa030f1a8>] e100_tx_clean+0xe8/0x210 [e100]
      [   46.657004]  [<ffffffffa030fc6f>] e100_poll+0x56f/0x6c0 [e100]
      [   46.657004]  [<ffffffff8159dce1>] ? net_rx_action+0xa1/0x370
      [   46.657004]  [<ffffffff8159ddb2>] net_rx_action+0x172/0x370
      [   46.657004]  [<ffffffff810703bf>] __do_softirq+0xef/0x3d0
      [   46.657004]  [<ffffffff816e4ebc>] call_softirq+0x1c/0x30
      [   46.657004]  [<ffffffff8101c485>] do_softirq+0x85/0xc0
      [   46.657004]  [<ffffffff81070885>] irq_exit+0xd5/0xe0
      [   46.657004]  [<ffffffff816e5756>] do_IRQ+0x56/0xc0
      [   46.657004]  [<ffffffff816dacb2>] common_interrupt+0x72/0x72
      [   46.657004]  <EOI>  [<ffffffff816da1eb>] ?
      _raw_spin_unlock_irqrestore+0x3b/0x70
      [   46.657004]  [<ffffffff816d124d>] __slab_free+0x58/0x38b
      [   46.657004]  [<ffffffff81214424>] ? fsnotify_clear_marks_by_inode+0x34/0x120
      [   46.657004]  [<ffffffff811b0417>] ? kmem_cache_free+0x97/0x320
      [   46.657004]  [<ffffffff8157fc14>] ? sock_destroy_inode+0x34/0x40
      [   46.657004]  [<ffffffff8157fc14>] ? sock_destroy_inode+0x34/0x40
      [   46.657004]  [<ffffffff811b0692>] kmem_cache_free+0x312/0x320
      [   46.657004]  [<ffffffff8157fc14>] sock_destroy_inode+0x34/0x40
      [   46.657004]  [<ffffffff811e8c28>] destroy_inode+0x38/0x60
      [   46.657004]  [<ffffffff811e8d5e>] evict+0x10e/0x1a0
      [   46.657004]  [<ffffffff811e9605>] iput+0xf5/0x180
      [   46.657004]  [<ffffffff811e4338>] dput+0x248/0x310
      [   46.657004]  [<ffffffff811ce0e1>] __fput+0x171/0x240
      [   46.657004]  [<ffffffff811ce26e>] ____fput+0xe/0x10
      [   46.657004]  [<ffffffff8108d54c>] task_work_run+0xac/0xe0
      [   46.657004]  [<ffffffff8106c6ed>] do_exit+0x26d/0xc30
      [   46.657004]  [<ffffffff8109eccc>] ? finish_task_switch+0x7c/0x120
      [   46.657004]  [<ffffffff816dad58>] ? retint_swapgs+0x13/0x1b
      [   46.657004]  [<ffffffff8106d139>] do_group_exit+0x49/0xc0
      [   46.657004]  [<ffffffff8106d1c4>] sys_exit_group+0x14/0x20
      [   46.657004]  [<ffffffff816e3b19>] system_call_fastpath+0x16/0x1b
      [   46.657004] ---[ end trace 4468c44e2156e7d1 ]---
      [   46.657004] Mapped at:
      [   46.657004]  [<ffffffff813663d1>] debug_dma_map_page+0x91/0x140
      [   46.657004]  [<ffffffffa030e8eb>] e100_xmit_prepare+0x12b/0x1c0 [e100]
      [   46.657004]  [<ffffffffa030c924>] e100_exec_cb+0x84/0x140 [e100]
      [   46.657004]  [<ffffffffa030e56a>] e100_xmit_frame+0x3a/0x190 [e100]
      [   46.657004]  [<ffffffff8159ee89>] dev_hard_start_xmit+0x259/0x6c0
      
      Easy fix, modify the cb paramter to e100_exec_cb to return an error, and do the
      dma_mapping_error check in the obvious place
      
      This was reported previously here:
      http://article.gmane.org/gmane.linux.network/257893
      
      But nobody stepped up and fixed it.
      
      CC: Josh Boyer <jwboyer@redhat.com>
      CC: e1000-devel@lists.sourceforge.net
      Signed-off-by: default avatarNeil Horman <nhorman@tuxdriver.com>
      Reported-by: default avatarMichal Jaegermann <michal@harddata.com>
      Tested-by: default avatarAaron Brown <aaron.f.brown@intel.com>
      Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      61a0f6ef
    • Linus Torvalds's avatar
      Merge tag 'nfs-for-3.9-5' of git://git.linux-nfs.org/projects/trondmy/linux-nfs · 51de0170
      Linus Torvalds authored
      Pull another nfs fixlet from Trond Myklebust:
       "I suddenly noticed that a one-line issue that I _thought_ I had fixed
        with the nfs41_walk_client_list patch was apparently still there in
        the pull request I sent earlier today.  I'm very sorry for not
        catching that in time.
      
         - Fix a brain fart in nfs41_walk_client_list"
      
      * tag 'nfs-for-3.9-5' of git://git.linux-nfs.org/projects/trondmy/linux-nfs:
        NFSv4: Doh! Typo in the fix to nfs41_walk_client_list
      51de0170
    • Gregory CLEMENT's avatar
      arm: mvebu: Fix the irq map function in SMP mode · 600468d0
      Gregory CLEMENT authored
      This patch fix the regression introduced by the commit 3202bf01
      "arm: mvebu: Improve the SMP support of the interrupt controller":
      GPIO IRQ were no longer delivered to the CPUs.
      
      To be delivered to a CPU an interrupt must be enabled at CPU level and
      at interrupt source level. Before the offending patch, all the
      interrupts were enabled at source level during map() function. Mask()
      and unmask() was done by handling the per-CPU part. It was fine when
      running in UP with only one CPU.
      
      The offending patch added support for SMP, in this case mask() and
      unmask() was done by handling the interrupt source level part. The
      per-CPU level part was handled by the affinity API to select the CPU
      which will receive the interrupt. (Due to some hardware limitation
      only one CPU at a time can received a given interrupt).
      
      For "normal" interrupt __setup_irq() was called when an irq was
      registered. irq_set_affinity() is called from this function, which
      enabled the interrupt on one of the CPUs. Whereas for GPIO IRQ which
      were chained interrupts, the irq_set_affinity() was never called and
      none of the CPUs was selected to receive the interrupt.
      
      With this patch all the interrupt are enable on the current CPU during
      map() function. Enabling the interrupts on a CPU doesn't depend
      anymore on irq_set_affinity() and then the chained irq are not anymore
      a special case. However the CPU which will receive the irq can still
      be modify later using irq_set_affinity().
      
      Tested with Mirabox (A370) and Openblocks AX3 (AXP), rootfs mounted
      over NFS, compiled with CONFIG_SMP=y/N.
      Signed-off-by: default avatarGregory CLEMENT <gregory.clement@free-electrons.com>
      Reported-by: default avatarRyan Press <ryan@presslab.us>
      Investigated-by: default avatarEzequiel Garcia <ezequiel.garcia@free-electrons.com>
      Tested-by: default avatarEzequiel Garcia <ezequiel.garcia@free-electrons.com>
      Tested-by: default avatarRyan Press <ryan@presslab.us>
      Signed-off-by: default avatarJason Cooper <jason@lakedaemon.net>
      600468d0
    • Trond Myklebust's avatar
      NFSv4: Doh! Typo in the fix to nfs41_walk_client_list · eb04e0ac
      Trond Myklebust authored
      Make sure that we set the status to 0 on success. Missed in testing
      because it never appears when doing multiple mounts to _different_
      servers.
      Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
      Cc: <stable@vger.kernel.org> # 3.7.x: 7b1f1fd1: NFSv4/4.1: Fix bugs in nfs4[01]_walk_client_list
      eb04e0ac