1. 22 May, 2012 40 commits
    • Saurav Kashyap's avatar
      [SCSI] qla2xxx: Stats should be different from physical and virtual ports · 2be21fa2
      Saurav Kashyap authored
      Currently stats is part of ha data structure, common for physical and virtual
      ports. Moved the stats to vha, each port will have its own stat.
      Signed-off-by: default avatarSaurav Kashyap <saurav.kashyap@qlogic.com>
      Signed-off-by: default avatarChad Dupuis <chad.dupuis@qlogic.com>
      Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
      2be21fa2
    • Saurav Kashyap's avatar
      [SCSI] qla2xxx: Add ql_dbg_verbose logging level. · 5f28d2d7
      Saurav Kashyap authored
      Add an extra layer of logging granularity for messages that are necessary in
      some circumstances but may flood the kernel log buffer with too many messages
      otherwise.
      Signed-off-by: default avatarSaurav Kashyap <saurav.kashyap@qlogic.com>
      Signed-off-by: default avatarChad Dupuis <chad.dupuis@qlogic.com>
      Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
      5f28d2d7
    • Chad Dupuis's avatar
      [SCSI] qla2xxx: Handle interrupt registration failures more gracefully. · 9a347ff4
      Chad Dupuis authored
      If interrupt registration failed we could crash the machine as we were trying
      to deference some pointers which weren't allocated yet.  Move the allocation
      a little earlier and make some checks to the free resource code to make sure
      that we don't try to free a resource that was never allocated.
      Signed-off-by: default avatarGiridhar Malavali <giridhar.malavali@qlogic.com>
      Signed-off-by: default avatarChad Dupuis <chad.dupuis@qlogic.com>
      Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
      9a347ff4
    • Chad Dupuis's avatar
    • Giridhar Malavali's avatar
    • Chad Dupuis's avatar
    • Masanari Iida's avatar
      [SCSI] qla2xxx: Fix typo in qla_mbx.c · 24d9ee85
      Masanari Iida authored
      Correct spelling "occured" to "occurred" in
      drivers/scsi/qla2xxx/qla_mbx.c
      Signed-off-by: default avatarMasanari Iida <standby24x7@gmail.com>
      Signed-off-by: default avatarChad Dupuis <chad.dupuis@qlogic.com>
      Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
      24d9ee85
    • Chetan Loke's avatar
      [SCSI] qla2xxx: Micro optimization in queuecommand handler · a6eb3c9f
      Chetan Loke authored
      Optimized queuecommand handler's to eliminate double head-room checks.
      The checks are moved inside the 1st if-loop otherwise you would end up checking twice when there is
      enough head room.
      Signed-off-by: default avatarChetan Loke <loke.chetan@gmail.com>
      Reviewed-by: default avatarAndrew Vasquez <andrew.vasquez@qlogic.com>
      Reviewed-by: default avatarGiridhar Malavali <giridhar.malavali@qlogic.com>
      Signed-off-by: default avatarChad Dupuis <chad.dupuis@qlogic.com>
      Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
      a6eb3c9f
    • Raul Porcel's avatar
      [SCSI] qla2xxx: Fix typo in qla_init.c · 9e336520
      Raul Porcel authored
      Replace "Inconisistent" with "Inconsistent" in drivers/scsi/qla2xxx/qla_init.c
      Signed-off-by: default avatarRaul Porcel <armin76@gentoo.org>
      Signed-off-by: default avatarChad Dupuis <chad.dupuis@qlogic.com>
      Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
      9e336520
    • Aaron Lu's avatar
      [SCSI] scsi_pm: resume device if suspend failed · d20ec597
      Aaron Lu authored
      For scsi devices which use scsi bus runtime callback, runtime suspend
      will call scsi_dev_type_suspend, and if the drv->suspend failed, the
      device will still be in active state. But since scsi_device_quiesce is
      called, the device will not be able to respond any more commands.
      So add a check here to see if err occured, if so, bring the device back
      to normal state with scsi_device_resume.
      Signed-off-by: default avatarAaron Lu <aaron.lu@amd.com>
      Acked-by: default avatarAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
      d20ec597
    • Krishna Gudipati's avatar
      [SCSI] bfa: Fix to set vport FC host sysfs entries · 6192bd7c
      Krishna Gudipati authored
      Made changes to set the fc_host sysfs entries supported_speeds,
      supported_classes etc., during the vport creation from the
      FC transport template.
      Signed-off-by: default avatarKrishna Gudipati <kgudipat@brocade.com>
      Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
      6192bd7c
    • Bhanu Prakash Gollapudi's avatar
    • Bhanu Prakash Gollapudi's avatar
      [SCSI] bnx2fc: cleanup task management IO when it times out. · 92886c9c
      Bhanu Prakash Gollapudi authored
      When the task management IO times out, or a flush operation is performed while
      task management IO is pending, driver is not cleaning up the IO. This patch
      cleans up the IO for the above cases.
      Signed-off-by: default avatarBhanu Prakash Gollapudi <bprakash@broadcom.com>
      Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
      92886c9c
    • Bhanu Prakash Gollapudi's avatar
      [SCSI] bnx2fc: Decrememnt io ref count when abort times out · c1bb4f33
      Bhanu Prakash Gollapudi authored
      When IO abort times out during eh_abort or a flush operation is performed while
      abort is pending, the driver is not cleaning up the IO and thus not reducing
      the IO reference count. With this change, as part of explicit logout, the IO is
      cleaned up.
      Signed-off-by: default avatarBhanu Prakash Gollapudi <bprakash@broadcom.com>
      Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
      c1bb4f33
    • Bhanu Prakash Gollapudi's avatar
      [SCSI] bnx2fc: Allow FLOGI to be retried when receiving bad responses. · de9c05fa
      Bhanu Prakash Gollapudi authored
      Commit 907c07d4 added more cases to do FLOGI
      retry on receiving bad response. Remove the code that drops the packet and
      allow the stack to handle bad FLOGI response.
      Signed-off-by: default avatarBhanu Prakash Gollapudi <bprakash@broadcom.com>
      Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
      de9c05fa
    • Laurent Pinchart's avatar
      fbdev: sh_mobile_lcdc: Don't confuse line size with pitch · 72c04af9
      Laurent Pinchart authored
      When using the MERAM the LCDC line size needs to be programmed with a
      MERAM-specific value different than the real frame buffer pitch. Fix it.
      Reported-by: default avatarGuennadi Liakhovetski <g.liakhovetski@gmx.de>
      Signed-off-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      Acked-by: default avatarFlorian Tobias Schandinat <FlorianSchandinat@gmx.de>
      Cc: stable@vger.kernel.org  # for 3.4
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      72c04af9
    • Linus Torvalds's avatar
      Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 47136855
      Linus Torvalds authored
      Pull core irq changes from Ingo Molnar:
       "A collection of small fixes."
      
      By Thomas Gleixner
      * 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        hexagon: Remove select of not longer existing Kconfig switches
        arm: Select core options instead of redefining them
        genirq: Do not consider disabled wakeup irqs
        genirq: Allow check_wakeup_irqs to notice level-triggered interrupts
        genirq: Be more informative on irq type mismatch
        genirq: Reject bogus threaded irq requests
        genirq: Streamline irq_action
      47136855
    • Linus Torvalds's avatar
      Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security · cb60e3e6
      Linus Torvalds authored
      Pull security subsystem updates from James Morris:
       "New notable features:
         - The seccomp work from Will Drewry
         - PR_{GET,SET}_NO_NEW_PRIVS from Andy Lutomirski
         - Longer security labels for Smack from Casey Schaufler
         - Additional ptrace restriction modes for Yama by Kees Cook"
      
      Fix up trivial context conflicts in arch/x86/Kconfig and include/linux/filter.h
      
      * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security: (65 commits)
        apparmor: fix long path failure due to disconnected path
        apparmor: fix profile lookup for unconfined
        ima: fix filename hint to reflect script interpreter name
        KEYS: Don't check for NULL key pointer in key_validate()
        Smack: allow for significantly longer Smack labels v4
        gfp flags for security_inode_alloc()?
        Smack: recursive tramsmute
        Yama: replace capable() with ns_capable()
        TOMOYO: Accept manager programs which do not start with / .
        KEYS: Add invalidation support
        KEYS: Do LRU discard in full keyrings
        KEYS: Permit in-place link replacement in keyring list
        KEYS: Perform RCU synchronisation on keys prior to key destruction
        KEYS: Announce key type (un)registration
        KEYS: Reorganise keys Makefile
        KEYS: Move the key config into security/keys/Kconfig
        KEYS: Use the compat keyctl() syscall wrapper on Sparc64 for Sparc32 compat
        Yama: remove an unused variable
        samples/seccomp: fix dependencies on arch macros
        Yama: add additional ptrace scopes
        ...
      cb60e3e6
    • Linus Torvalds's avatar
      Merge tag 'virtio-for-linus' of... · 99262a3d
      Linus Torvalds authored
      Merge tag 'virtio-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus
      
      Pull virtio updates from Rusty Russell.
      
      * tag 'virtio-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus:
        virtio: fix typo in comment
        virtio-mmio: Devices parameter parsing
        virtio_blk: Drop unused request tracking list
        virtio-blk: Fix hot-unplug race in remove method
        virtio: Use ida to allocate virtio index
        virtio: balloon: separate out common code between remove and freeze functions
        virtio: balloon: drop restore_common()
        9p: disconnect channel when PCI device is removed
        virtio: update documentation to v0.9.5 of spec
      99262a3d
    • Chen Baozi's avatar
      virtio: fix typo in comment · c6190804
      Chen Baozi authored
      - Delete "@request_vqs" and "@free_vqs" comments, since
        they are no longer in struct virtio_config_ops.
      - According to the macro below, "@val" should be "@v".
      Signed-off-by: default avatarChen Baozi <chenbaozi@gmail.com>
      Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
      c6190804
    • Pawel Moll's avatar
      virtio-mmio: Devices parameter parsing · 81a054ce
      Pawel Moll authored
      This patch adds an option to instantiate guest virtio-mmio devices
      basing on a kernel command line (or module) parameter, for example:
      
      	virtio_mmio.devices=0x100@0x100b0000:48
      Signed-off-by: default avatarPawel Moll <pawel.moll@arm.com>
      Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
      81a054ce
    • Asias He's avatar
      virtio_blk: Drop unused request tracking list · f65ca1dc
      Asias He authored
      Benchmark shows small performance improvement on fusion io device.
      
      Before:
        seq-read : io=1,024MB, bw=19,982KB/s, iops=39,964, runt= 52475msec
        seq-write: io=1,024MB, bw=20,321KB/s, iops=40,641, runt= 51601msec
        rnd-read : io=1,024MB, bw=15,404KB/s, iops=30,808, runt= 68070msec
        rnd-write: io=1,024MB, bw=14,776KB/s, iops=29,552, runt= 70963msec
      
      After:
        seq-read : io=1,024MB, bw=20,343KB/s, iops=40,685, runt= 51546msec
        seq-write: io=1,024MB, bw=20,803KB/s, iops=41,606, runt= 50404msec
        rnd-read : io=1,024MB, bw=16,221KB/s, iops=32,442, runt= 64642msec
        rnd-write: io=1,024MB, bw=15,199KB/s, iops=30,397, runt= 68991msec
      Signed-off-by: default avatarAsias He <asias@redhat.com>
      Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
      f65ca1dc
    • Asias He's avatar
      virtio-blk: Fix hot-unplug race in remove method · b79d866c
      Asias He authored
      If we reset the virtio-blk device before the requests already dispatched
      to the virtio-blk driver from the block layer are finised, we will stuck
      in blk_cleanup_queue() and the remove will fail.
      
      blk_cleanup_queue() calls blk_drain_queue() to drain all requests queued
      before DEAD marking. However it will never success if the device is
      already stopped. We'll have q->in_flight[] > 0, so the drain will not
      finish.
      
      How to reproduce the race:
      1. hot-plug a virtio-blk device
      2. keep reading/writing the device in guest
      3. hot-unplug while the device is busy serving I/O
      
      Test:
      ~1000 rounds of hot-plug/hot-unplug test passed with this patch.
      
      Changes in v3:
      - Drop blk_abort_queue and blk_abort_request
      - Use __blk_end_request_all to complete request dispatched to driver
      
      Changes in v2:
      - Drop req_in_flight
      - Use virtqueue_detach_unused_buf to get request dispatched to driver
      Signed-off-by: default avatarAsias He <asias@redhat.com>
      Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
      b79d866c
    • Asias He's avatar
      virtio: Use ida to allocate virtio index · 90e03207
      Asias He authored
      Current index allocation in virtio is based on a monotonically
      increasing variable "index". This means we'll run out of numbers
      after a while. E.g. someone crazy doing this in host side.
      
      while(1) {
      	hot-plug a virtio device
      	hot-unplug the virito devcie
      }
      Signed-off-by: default avatarAsias He <asias@redhat.com>
      Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
      90e03207
    • Amit Shah's avatar
      virtio: balloon: separate out common code between remove and freeze functions · c877bab5
      Amit Shah authored
      The remove and freeze functions have a lot of shared code; put it into a
      common function that gets called by both.
      Signed-off-by: default avatarAmit Shah <amit.shah@redhat.com>
      Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
      c877bab5
    • Amit Shah's avatar
      virtio: balloon: drop restore_common() · c45b4166
      Amit Shah authored
      restore_common() was used when there were different thaw and freeze PM
      callbacks implemented.  We removed thaw in commit
      f38f8387.
      
      restore_common() can be removed and virtballoon_restore() can itself do
      the restore ops.
      Signed-off-by: default avatarAmit Shah <amit.shah@redhat.com>
      Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
      c45b4166
    • Sasha Levin's avatar
      9p: disconnect channel when PCI device is removed · 991ad9ec
      Sasha Levin authored
      When a virtio_9p pci device is being removed, we should close down any
      active channels and free up resources, we're not supposed to BUG() if there's
      still an open channel since it's a valid case when removing the PCI device.
      
      Otherwise, removing the PCI device with an open channel would cause the
      following BUG():
      
      [ 1184.671416] ------------[ cut here ]------------
      [ 1184.672057] kernel BUG at net/9p/trans_virtio.c:618!
      [ 1184.672057] invalid opcode: 0000 [#1] PREEMPT SMP
      [ 1184.672057] CPU 3
      [ 1184.672057] Pid: 5, comm: kworker/u:0 Tainted: G        W    3.4.0-rc2-next-20120413-sasha-dirty #76
      [ 1184.672057] RIP: 0010:[<ffffffff825c9116>]  [<ffffffff825c9116>] p9_virtio_remove+0x16/0x90
      [ 1184.672057] RSP: 0018:ffff88000d653ac0  EFLAGS: 00010202
      [ 1184.672057] RAX: ffffffff836bfb40 RBX: ffff88000c9b2148 RCX: ffff88000d658978
      [ 1184.672057] RDX: 0000000000000006 RSI: 0000000000000000 RDI: ffff880028868000
      [ 1184.672057] RBP: ffff88000d653ad0 R08: 0000000000000000 R09: 0000000000000000
      [ 1184.672057] R10: 0000000000000000 R11: 0000000000000001 R12: ffff880028868000
      [ 1184.672057] R13: ffffffff835aa7c0 R14: ffff880041630000 R15: ffff88000d653da0
      [ 1184.672057] FS:  0000000000000000(0000) GS:ffff880035a00000(0000) knlGS:0000000000000000
      [ 1184.672057] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
      [ 1184.672057] CR2: 0000000001181000 CR3: 000000000eba1000 CR4: 00000000000406e0
      [ 1184.672057] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      x000000000117a190 *[ 1184.672057] DR3: 00000000000000**
      00 DR6: 00000000ffff0ff0 DR7: 0000000000000400
      [ 1184.672057] Process kworker/u:0 (pid: 5, threadinfo ffff88000d652000, task ffff88000d658000)
      [ 1184.672057] Stack:
      [ 1184.672057]  ffff880028868000 ffffffff836bfb40 ffff88000d653af0 ffffffff8193661b
      [ 1184.672057]  ffff880028868008 ffffffff836bfb40 ffff88000d653b10 ffffffff81af1c81
      [ 1184.672057]  ffff880028868068 ffff880028868008 ffff88000d653b30 ffffffff81af257a
      [ 1184.795301] Call Trace:
      [ 1184.795301]  [<ffffffff8193661b>] virtio_dev_remove+0x1b/0x60
      [ 1184.795301]  [<ffffffff81af1c81>] __device_release_driver+0x81/0xd0
      [ 1184.795301]  [<ffffffff81af257a>] device_release_driver+0x2a/0x40
      [ 1184.795301]  [<ffffffff81af0d48>] bus_remove_device+0x138/0x150
      [ 1184.795301]  [<ffffffff81aef08d>] device_del+0x14d/0x1b0
      [ 1184.795301]  [<ffffffff81aef138>] device_unregister+0x48/0x60
      [ 1184.795301]  [<ffffffff8193694d>] unregister_virtio_device+0xd/0x10
      [ 1184.795301]  [<ffffffff8265fc74>] virtio_pci_remove+0x2a/0x6c
      [ 1184.795301]  [<ffffffff818a95ad>] pci_device_remove+0x4d/0x110
      [ 1184.795301]  [<ffffffff81af1c81>] __device_release_driver+0x81/0xd0
      [ 1184.795301]  [<ffffffff81af257a>] device_release_driver+0x2a/0x40
      [ 1184.795301]  [<ffffffff81af0d48>] bus_remove_device+0x138/0x150
      [ 1184.795301]  [<ffffffff81aef08d>] device_del+0x14d/0x1b0
      [ 1184.795301]  [<ffffffff81aef138>] device_unregister+0x48/0x60
      [ 1184.795301]  [<ffffffff818a36fa>] pci_stop_bus_device+0x6a/0x90
      [ 1184.795301]  [<ffffffff818a3791>] pci_stop_and_remove_bus_device+0x11/0x20
      [ 1184.795301]  [<ffffffff818c21d9>] remove_callback+0x9/0x10
      [ 1184.795301]  [<ffffffff81252d91>] sysfs_schedule_callback_work+0x21/0x60
      [ 1184.795301]  [<ffffffff810cb1a1>] process_one_work+0x281/0x430
      [ 1184.795301]  [<ffffffff810cb140>] ? process_one_work+0x220/0x430
      [ 1184.795301]  [<ffffffff81252d70>] ? sysfs_read_file+0x1c0/0x1c0
      [ 1184.795301]  [<ffffffff810cc613>] worker_thread+0x1f3/0x320
      [ 1184.795301]  [<ffffffff810cc420>] ? manage_workers.clone.13+0x130/0x130
      [ 1184.795301]  [<ffffffff810d30b2>] kthread+0xb2/0xc0
      [ 1184.795301]  [<ffffffff826783f4>] kernel_thread_helper+0x4/0x10
      [ 1184.795301]  [<ffffffff810deb18>] ? finish_task_switch+0x78/0xf0
      [ 1184.795301]  [<ffffffff82676574>] ? retint_restore_args+0x13/0x13
      [ 1184.795301]  [<ffffffff810d3000>] ? kthread_flush_work_fn+0x10/0x10
      [ 1184.795301]  [<ffffffff826783f0>] ? gs_change+0x13/0x13
      [ 1184.795301] Code: c1 9e 0a 00 48 83 c4 08 5b c9 c3 66 2e 0f 1f 84 00 00 00 00 00 55 48 89 e5 41 54 49 89 fc 53 48 8b 9f a8 04 00 00 80 3b 00 74 0a <0f> 0b 0f 1f 84 00 00 00 00 00 48 8b 87 88 04 00 00 ff 50 30 31
      [ 1184.795301] RIP  [<ffffffff825c9116>] p9_virtio_remove+0x16/0x90
      [ 1184.795301]  RSP <ffff88000d653ac0>
      [ 1184.952618] ---[ end trace a307b3ed40206b4c ]---
      Signed-off-by: default avatarSasha Levin <levinsasha928@gmail.com>
      Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
      991ad9ec
    • Rusty Russell's avatar
      33950c6e
    • Linus Torvalds's avatar
      Merge branch 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · bf67f3a5
      Linus Torvalds authored
      Pull smp hotplug cleanups from Thomas Gleixner:
       "This series is merily a cleanup of code copied around in arch/* and
        not changing any of the real cpu hotplug horrors yet.  I wish I'd had
        something more substantial for 3.5, but I underestimated the lurking
        horror..."
      
      Fix up trivial conflicts in arch/{arm,sparc,x86}/Kconfig and
      arch/sparc/include/asm/thread_info_32.h
      
      * 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (79 commits)
        um: Remove leftover declaration of alloc_task_struct_node()
        task_allocator: Use config switches instead of magic defines
        sparc: Use common threadinfo allocator
        score: Use common threadinfo allocator
        sh-use-common-threadinfo-allocator
        mn10300: Use common threadinfo allocator
        powerpc: Use common threadinfo allocator
        mips: Use common threadinfo allocator
        hexagon: Use common threadinfo allocator
        m32r: Use common threadinfo allocator
        frv: Use common threadinfo allocator
        cris: Use common threadinfo allocator
        x86: Use common threadinfo allocator
        c6x: Use common threadinfo allocator
        fork: Provide kmemcache based thread_info allocator
        tile: Use common threadinfo allocator
        fork: Provide weak arch_release_[task_struct|thread_info] functions
        fork: Move thread info gfp flags to header
        fork: Remove the weak insanity
        sh: Remove cpu_idle_wait()
        ...
      bf67f3a5
    • Linus Torvalds's avatar
      Merge branch 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 226da0db
      Linus Torvalds authored
      Pull RCU changes from Ingo Molnar:
       "This is the v3.5 RCU tree from Paul E.  McKenney:
      
       1) A set of improvements and fixes to the RCU_FAST_NO_HZ feature (with
          more on the way for 3.6).  Posted to LKML:
             https://lkml.org/lkml/2012/4/23/324 (commits 1-3 and 5),
             https://lkml.org/lkml/2012/4/16/611 (commit 4),
             https://lkml.org/lkml/2012/4/30/390 (commit 6), and
             https://lkml.org/lkml/2012/5/4/410 (commit 7, combined with
             the other commits for the convenience of the tester).
      
       2) Changes to make rcu_barrier() avoid disrupting execution of CPUs
          that have no RCU callbacks.  Posted to LKML:
             https://lkml.org/lkml/2012/4/23/322.
      
       3) A couple of commits that improve the efficiency of the interaction
          between preemptible RCU and the scheduler, these two being all that
          survived an abortive attempt to allow preemptible RCU's
          __rcu_read_lock() to be inlined.  The full set was posted to LKML at
          https://lkml.org/lkml/2012/4/14/143, and the first and third patches
          of that set remain.
      
       4) Lai Jiangshan's algorithmic implementation of SRCU, which includes
          call_srcu() and srcu_barrier().  A major feature of this new
          implementation is that synchronize_srcu() no longer disturbs the
          execution of other CPUs.  This work is based on earlier
          implementations by Peter Zijlstra and Paul E.  McKenney.  Posted to
          LKML: https://lkml.org/lkml/2012/2/22/82.
      
       5) A number of miscellaneous bug fixes and improvements which were
          posted to LKML at: https://lkml.org/lkml/2012/4/23/353 with
          subsequent updates posted to LKML."
      
      * 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (32 commits)
        rcu: Make rcu_barrier() less disruptive
        rcu: Explicitly initialize RCU_FAST_NO_HZ per-CPU variables
        rcu: Make RCU_FAST_NO_HZ handle timer migration
        rcu: Update RCU maintainership
        rcu: Make exit_rcu() more precise and consolidate
        rcu: Move PREEMPT_RCU preemption to switch_to() invocation
        rcu: Ensure that RCU_FAST_NO_HZ timers expire on correct CPU
        rcu: Add rcutorture test for call_srcu()
        rcu: Implement per-domain single-threaded call_srcu() state machine
        rcu: Use single value to handle expedited SRCU grace periods
        rcu: Improve srcu_readers_active_idx()'s cache locality
        rcu: Remove unused srcu_barrier()
        rcu: Implement a variant of Peter's SRCU algorithm
        rcu: Improve SRCU's wait_idx() comments
        rcu: Flip ->completed only once per SRCU grace period
        rcu: Increment upper bit only for srcu_read_lock()
        rcu: Remove fast check path from __synchronize_srcu()
        rcu: Direct algorithmic SRCU implementation
        rcu: Introduce rcutorture testing for rcu_barrier()
        timer: Fix mod_timer_pinned() header comment
        ...
      226da0db
    • Linus Torvalds's avatar
      Merge branch 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 5ec29e31
      Linus Torvalds authored
      Pull core locking updates from Ingo Molnar:
       "This update:
      
         - extends and simplifies x86 NMI callback handling code to enhance
           and fix the HP hw-watchdog driver
      
         - simplifies the x86 NMI callback handling code to fix a kmemcheck
           bug.
      
         - enhances the hung-task debugger"
      
      * 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/nmi: Fix the type of the nmiaction.flags field
        x86/nmi: Fix page faults by nmiaction if kmemcheck is enabled
        x86/nmi: Add new NMI queues to deal with IO_CHK and SERR
        watchdog, hpwdt: Remove priority option for NMI callback
        hung task debugging: Inject NMI when hung and going to panic
      5ec29e31
    • Linus Torvalds's avatar
      Merge branch 'core-iommu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · abd209b7
      Linus Torvalds authored
      Pull iommu core changes from Ingo Molnar:
       "The IOMMU changes in this cycle are mostly about factoring out
        Intel-VT-d specific IRQ remapping details and introducing struct
        irq_remap_ops, in preparation for AMD specific hardware."
      
      * 'core-iommu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        iommu: Fix off by one in dmar_get_fault_reason()
        irq_remap: Fix the 'sub_handle' uninitialized warning
        irq_remap: Fix UP build failure
        irq_remap: Fix compiler warning with CONFIG_IRQ_REMAP=y
        iommu: rename intr_remapping.[ch] to irq_remapping.[ch]
        iommu: rename intr_remapping references to irq_remapping
        x86, iommu/vt-d: Clean up interfaces for interrupt remapping
        iommu/vt-d: Convert MSI remapping setup to remap_ops
        iommu/vt-d: Convert free_irte into a remap_ops callback
        iommu/vt-d: Convert IR set_affinity function to remap_ops
        iommu/vt-d: Convert IR ioapic-setup to use remap_ops
        iommu/vt-d: Convert missing apic.c intr-remapping call to remap_ops
        iommu/vt-d: Make intr-remapping initialization generic
        iommu: Rename intr_remapping files to intel_intr_remapping
      abd209b7
    • Linus Torvalds's avatar
      Merge branch 'core-debugobjects-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 513de477
      Linus Torvalds authored
      Pull core/debugobjects changes from Ingo Molnar:
       "Not much happened: it includes a cleanup and an irq latency reduction
        fixlet."
      
      * 'core-debugobjects-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        debugobjects: Fill_pool() returns void now
        debugobjects: printk with irqs enabled
        debugobjects: Remove unused return value from fill_pool()
      513de477
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-nmw · 62c8d922
      Linus Torvalds authored
      Pull GFS2 changes from Steven Whitehouse.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-nmw: (24 commits)
        GFS2: Fix quota adjustment return code
        GFS2: Add rgrp information to block_alloc trace point
        GFS2: Eliminate unused "new" parameter to gfs2_meta_indirect_buffer
        GFS2: Update glock doc to add new stats info
        GFS2: Update main gfs2 doc
        GFS2: Remove redundant metadata block type check
        GFS2: Fix sgid propagation when using ACLs
        GFS2: eliminate log elements and simplify
        GFS2: Eliminate vestigial sd_log_le_rg
        GFS2: Eliminate needless parameter from function gfs2_setbit
        GFS2: Log code fixes
        GFS2: Remove unused argument from gfs2_internal_read
        GFS2: Remove bd_list_tr
        GFS2: Remove duplicate log code
        GFS2: Clean up log write code path
        GFS2: Use variable rather than qa to determine if unstuff necessary
        GFS2: Change variable blk to biblk
        GFS2: Fix function parameter comments in rgrp.c
        GFS2: Eliminate offset parameter to gfs2_setbit
        GFS2: Use slab for block reservation memory
        ...
      62c8d922
    • Linus Torvalds's avatar
      Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu · 06930b94
      Linus Torvalds authored
      Pull m68knommu tree from Greg Ungerer:
       "More merge and clean up of MMU and non-MMU common files, namely
        signal.c and dma.c.  There is also a simplification of the ColdFire
        GPIO setup tables.  Using a couple of simple macros we make the init
        tables really small and easy to read, and save a couple of thousand
        lines of code.  Also a move of all the ColdFire subarch support files
        into the existing coldfire directory.  The sub-directories just ended
        up duplicating Makefiles and now only contain really simple pieces of
        code.  This saves quite a few lines of code too.
      
        As always a couple of bugs fixes thrown in too.  Oh and a new
        defconfig for the ColdFire platforms that support having the MMU
        enabled."
      
      * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu: (39 commits)
        m68k: add a defconfig for the M5475EVB ColdFire with MMU board
        m68knommu: unaligned.h fix for M68000 core
        m68k: merge the MMU and non-MMU versions of the arch dma code
        m68knommu: reorganize the no-MMU cache flushing to match m68k
        m68knommu: move the 54xx platform code into the common ColdFire code directory
        m68knommu: move the 532x platform code into the common ColdFire code directory
        m68knommu: move the 5407 platform code into the common ColdFire code directory
        m68knommu: move the 5307 platform code into the common ColdFire code directory
        m68knommu: move the 528x platform code into the common ColdFire code directory
        m68knommu: move the 527x platform code into the common ColdFire code directory
        m68knommu: move the 5272 platform code into the common ColdFire code directory
        m68knommu: move the 5249 platform code into the common ColdFire code directory
        m68knommu: move the 523x platform code into the common ColdFire code directory
        m68knommu: move the 520x platform code into the common ColdFire code directory
        m68knommu: move the 5206 platform code into the common ColdFire code directory
        m68knommu: simplify the ColdFire 5407 GPIO struct setup
        m68knommu: simplify the ColdFire 532x GPIO struct setup
        m68knommu: simplify the ColdFire 5307 GPIO struct setup
        m68knommu: simplify the ColdFire 528x GPIO struct setup
        m68knommu: simplify the ColdFire 527x GPIO struct setup
        ...
      06930b94
    • Linus Torvalds's avatar
      Revert "vfs: remove unnecessary d_unhashed() check from __d_lookup_rcu" · 2e321806
      Linus Torvalds authored
      This reverts commit 8c01a529.
      
      It turns out the d_unhashed() check isn't unnecessary after all: while
      it's true that unhashing will increment the sequence numbers, that does
      not necessarily invalidate the RCU lookup, because it might have seen
      the dentry pointer (before it got unhashed), but by the time it loaded
      the sequence number, it could have seen the *new* sequence number (after
      it got unhashed).
      
      End result: we might look up an unhashed dentry that is about to be
      freed, with the sequence number never indicating anything bad about it.
      So checking that the dentry is still hashed (*after* reading the sequence
      number) is indeed the proper fix, and was never unnecessary.
      Reported-by: default avatarDave Jones <davej@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      2e321806
    • James Morris's avatar
      Merge branch 'master' of git://git.infradead.org/users/eparis/selinux into next · ff2bb047
      James Morris authored
      Per pull request, for 3.5.
      ff2bb047
    • Linus Torvalds's avatar
      Merge tag 'rdma-for-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband · c23ddf78
      Linus Torvalds authored
      Pull InfiniBand/RDMA changes from Roland Dreier:
       - Add ocrdma hardware driver for Emulex IB-over-Ethernet adapters
       - Add generic and mlx4 support for "raw" QPs: allow suitably privileged
         applications to send and receive arbitrary packets directly to/from
         the hardware
       - Add "doorbell drop" handling to the cxgb4 driver
       - A fairly large batch of qib hardware driver changes
       - A few fixes for lockdep-detected issues
       - A few other miscellaneous fixes and cleanups
      
      Fix up trivial conflict in drivers/net/ethernet/emulex/benet/be.h.
      
      * tag 'rdma-for-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband: (53 commits)
        RDMA/cxgb4: Include vmalloc.h for vmalloc and vfree
        IB/mlx4: Fix mlx4_ib_add() error flow
        IB/core: Fix IB_SA_COMP_MASK macro
        IB/iser: Fix error flow in iser ep connection establishment
        IB/mlx4: Increase the number of vectors (EQs) available for ULPs
        RDMA/cxgb4: Add query_qp support
        RDMA/cxgb4: Remove kfifo usage
        RDMA/cxgb4: Use vmalloc() for debugfs QP dump
        RDMA/cxgb4: DB Drop Recovery for RDMA and LLD queues
        RDMA/cxgb4: Disable interrupts in c4iw_ev_dispatch()
        RDMA/cxgb4: Add DB Overflow Avoidance
        RDMA/cxgb4: Add debugfs RDMA memory stats
        cxgb4: DB Drop Recovery for RDMA and LLD queues
        cxgb4: Common platform specific changes for DB Drop Recovery
        cxgb4: Detect DB FULL events and notify RDMA ULD
        RDMA/cxgb4: Drop peer_abort when no endpoint found
        RDMA/cxgb4: Always wake up waiters in c4iw_peer_abort_intr()
        mlx4_core: Change bitmap allocator to work in round-robin fashion
        RDMA/nes: Don't call event handler if pointer is NULL
        RDMA/nes: Fix for the ORD value of the connecting peer
        ...
      c23ddf78
    • Linus Torvalds's avatar
      Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · da4f58ff
      Linus Torvalds authored
      Pull SCSI misc update from James Bottomley:
       "The patch contains the usual assortment of driver updates (be2iscsi,
        bfa, bnx2i, fcoe, hpsa, isci, lpfc, megaraid, mpt2sas, pm8001, sg)
        plus an assortment of other changes and fixes.  Also new is the fact
        that the isci update is delivered as a git merge (with signed tag)."
      
      * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (158 commits)
        isci: End the RNC resumption wait when the RNC is destroyed.
        isci: Fixed RNC bug that lost the suspension or resumption during destroy
        isci: Fix RNC AWAIT_SUSPENSION->INVALIDATING transition.
        isci: Manage the IREQ_NO_AUTO_FREE_TAG under scic_lock.
        isci: Remove obviated host callback list.
        isci: Check IDEV_GONE before performing abort path operations.
        isci: Restore the ATAPI device RNC management code.
        isci: Don't wait for an RNC suspend if it's being destroyed.
        isci: Change the phy control and link reset interface for HW reasons.
        isci: Added timeouts to RNC suspensions in the abort path.
        isci: Add protocol indicator for TMF requests.
        isci: Directly control IREQ_ABORT_PATH_ACTIVE when completing TMFs.
        isci: Wait for RNC resumption before leaving the abort path.
        isci: Fix RNC suspend call for SCI_RESUMING state.
        isci: Manage tag releases differently when aborting tasks.
        isci: Callbacks to libsas occur under scic_lock and are synchronized.
        isci: When in the abort path, defeat other resume calls until done.
        isci: Implement waiting for suspend in the abort path.
        isci: Make sure all TCs are terminated and cleaned in LUN reset.
        isci: Manage the LLHANG timer enable/disable per-device.
        ...
      da4f58ff
    • Linus Torvalds's avatar
      Merge branch 'usb-target-merge' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending · ba01a87e
      Linus Torvalds authored
      Pull usb-gadget scsi-target merge from Nicholas Bellinger:
       "As promised, here is the pull request for Sebastian's usb-gadget
        target UASP / BOT driver for v3.5-rc1.  This code has been in
        linux-next for a number of weeks, and is now ready for an initial
        merge.
      
        This fabric uses the target framework to provide a usb gadget device.
        This gadget supports the USB Attached SCSI Protocol (UASP) and Bulk
        Only Transfers (BOT or BBB).  BOT is the primary interface, UAS is the
        alternative interface.
      
        Note this series is dependent upon a single target core patch for
        adding se_cmd->unknown_data_length in target-pending/for-next, that
        got merged in the parent.
      
        Kudos to Sebastian for making this driver happen so easily, and for
        his patches to improve usb-core and target core along the way to his
        goal.  Also thanks to Felipe + Greg-KH for their help in getting this
        driver ready for mainline."
      
      * 'usb-target-merge' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending:
        usb-gadget: Initial merge of target module for UASP + BOT
      ba01a87e