1. 13 4月, 2013 4 次提交
    • D
      x86-32: Fix possible incomplete TLB invalidate with PAE pagetables · 1de14c3c
      Dave Hansen 提交于
      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: NDave 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: NLinus Torvalds <torvalds@linux-foundation.org>
      1de14c3c
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending · bf81710c
      Linus Torvalds 提交于
      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
    • L
      Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 90f340e2
      Linus Torvalds 提交于
      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
    • L
      Merge branch 'for-next' of git://git.samba.org/sfrench/cifs-2.6 · 0b1fd266
      Linus Torvalds 提交于
      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
  2. 12 4月, 2013 16 次提交
  3. 11 4月, 2013 20 次提交
    • A
      Merge tag 'mvebu_fixes_for_v3.9_round3' of git://git.infradead.org/users/jcooper/linux into fixes · 71bd98af
      Arnd Bergmann 提交于
      From Jason Cooper <jason@lakedaemon.net>:
      
      mvebu fixes for v3.9 round 3
      
       - Kirkwood
          - a couple of small fixes for the Iomega ix2-200 board (ether and led)
       - mvebu
          - allow GPIO button to work on Mirabox when running SMP
      
      * tag 'mvebu_fixes_for_v3.9_round3' of git://git.infradead.org/users/jcooper/linux:
        arm: mvebu: Fix the irq map function in SMP mode
        Fix GE0/GE1 init on ix2-200 as GE0 has no PHY
        ARM: Kirkwood: Fix typo in the definition of ix2-200 rebuild LED
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      71bd98af
    • N
      target: Fix incorrect fallthrough of ALUA Standby/Offline/Transition CDBs · 30f359a6
      Nicholas Bellinger 提交于
      This patch fixes a bug where a handful of informational / control CDBs
      that should be allowed during ALUA access state Standby/Offline/Transition
      where incorrectly returning CHECK_CONDITION + ASCQ_04H_ALUA_TG_PT_*.
      
      This includes INQUIRY + REPORT_LUNS, which would end up preventing LUN
      registration when LUN scanning occured during these ALUA access states.
      
      Cc: Hannes Reinecke <hare@suse.de>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NNicholas Bellinger <nab@linux-iscsi.org>
      30f359a6
    • A
      tcm_vhost: Send bad target to guest when cmd fails · 055f648c
      Asias He 提交于
      Send bad target to guest in case:
      1) we can not allocate the cmd
      2) fail to submit the cmd
      Signed-off-by: NAsias He <asias@redhat.com>
      Acked-by: NMichael S. Tsirkin <mst@redhat.com>
      Signed-off-by: NNicholas Bellinger <nab@linux-iscsi.org>
      055f648c
    • A
      tcm_vhost: Add vhost_scsi_send_bad_target() helper · 637ab21e
      Asias He 提交于
      Share the send bad target code with other use cases.
      Signed-off-by: NAsias He <asias@redhat.com>
      Acked-by: NMichael S. Tsirkin <mst@redhat.com>
      Signed-off-by: NNicholas Bellinger <nab@linux-iscsi.org>
      637ab21e
    • A
      tcm_vhost: Fix tv_cmd leak in vhost_scsi_handle_vq · 7ea206cf
      Asias He 提交于
      If we fail to submit the allocated tv_vmd to tcm_vhost_submission_work,
      we will leak the tv_vmd. Free tv_vmd on fail path.
      Signed-off-by: NAsias He <asias@redhat.com>
      Acked-by: NMichael S. Tsirkin <mst@redhat.com>
      Signed-off-by: NNicholas Bellinger <nab@linux-iscsi.org>
      7ea206cf
    • A
      tcm_vhost: Remove double check of response · f6da51c3
      Asias He 提交于
      We did the length of response check twice.
      Signed-off-by: NAsias He <asias@redhat.com>
      Acked-by: NMichael S. Tsirkin <mst@redhat.com>
      Signed-off-by: NNicholas Bellinger <nab@linux-iscsi.org>
      f6da51c3
    • L
      Merge tag 'char-misc-3.9-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc · 7ee32a6d
      Linus Torvalds 提交于
      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
    • L
      Merge tag 'tty-3.9-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty · 7a92bc38
      Linus Torvalds 提交于
      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
    • L
      Merge tag 'stable/for-linus-3.9-rc6-tag' of... · 722aacb2
      Linus Torvalds 提交于
      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
    • L
      Merge tag 'trace-fixes-3.9-rc-v2' of... · 9baba666
      Linus Torvalds 提交于
      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
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · fe2971a0
      Linus Torvalds 提交于
      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
    • L
      Merge tag 'for-linus' of git://linux-c6x.org/git/projects/linux-c6x-upstreaming · eb02db38
      Linus Torvalds 提交于
      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
    • S
      cifs: Allow passwords which begin with a delimitor · c369c9a4
      Sachin Prabhu 提交于
      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: NSachin Prabhu <sprabhu@redhat.com>
      Acked-by: NJeff Layton <jlayton@redhat.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NSteve French <sfrench@us.ibm.com>
      c369c9a4
    • P
      lsm: add the missing documentation for the security_skb_owned_by() hook · 6b07a24f
      Paul Moore 提交于
      Unfortunately we didn't catch the missing comments earlier when the
      patch was merged.
      Signed-off-by: NPaul Moore <pmoore@redhat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      6b07a24f
    • Y
      bnx2x: Prevent null pointer dereference in AFEX mode · fea75645
      Yuval Mintz 提交于
      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: NYuval Mintz <yuvalmin@broadcom.com>
      Signed-off-by: NAriel Elior <ariele@broadcom.com>
      Signed-off-by: NEilon Greenstein <eilong@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      fea75645
    • N
      e100: Add dma mapping error check · 61a0f6ef
      Neil Horman 提交于
      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: NNeil Horman <nhorman@tuxdriver.com>
      Reported-by: NMichal Jaegermann <michal@harddata.com>
      Tested-by: NAaron Brown <aaron.f.brown@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      61a0f6ef
    • L
      Merge tag 'nfs-for-3.9-5' of git://git.linux-nfs.org/projects/trondmy/linux-nfs · 51de0170
      Linus Torvalds 提交于
      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
    • G
      arm: mvebu: Fix the irq map function in SMP mode · 600468d0
      Gregory CLEMENT 提交于
      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: NGregory CLEMENT <gregory.clement@free-electrons.com>
      Reported-by: NRyan Press <ryan@presslab.us>
      Investigated-by: NEzequiel Garcia <ezequiel.garcia@free-electrons.com>
      Tested-by: NEzequiel Garcia <ezequiel.garcia@free-electrons.com>
      Tested-by: NRyan Press <ryan@presslab.us>
      Signed-off-by: NJason Cooper <jason@lakedaemon.net>
      600468d0
    • T
      NFSv4: Doh! Typo in the fix to nfs41_walk_client_list · eb04e0ac
      Trond Myklebust 提交于
      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: NTrond 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
    • N
      Fix GE0/GE1 init on ix2-200 as GE0 has no PHY · aaaf165b
      Nigel Roberts 提交于
      Signed-off-by: NJason Cooper <jason@lakedaemon.net>
      aaaf165b