1. 31 Oct, 2011 10 commits
    • Jeff Skirvin's avatar
      [SCSI] isci: No need to manage the pending reset bit on pending requests. · 5412e25c
      Jeff Skirvin authored
      The lldd does not need to look at or manage the pending device
      reset bit in pending sas_tasks.
      Signed-off-by: default avatarJeff Skirvin <jeffrey.d.skirvin@intel.com>
      Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
      Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
      5412e25c
    • Jeff Skirvin's avatar
      [SCSI] isci: Remove redundant isci_request.ttype field. · 3b34c169
      Jeff Skirvin authored
      Use the existing IREQ_TMF flag as a request type indicator.
      Signed-off-by: default avatarJeff Skirvin <jeffrey.d.skirvin@intel.com>
      Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
      Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
      3b34c169
    • Jeff Skirvin's avatar
      [SCSI] isci: Fix task management for SMP, SATA and on dev remove. · 98145cb7
      Jeff Skirvin authored
      libsas uses the LLDD abort task interface to handle I/O timeouts
      in the SATA/STP and SMP discovery paths, so this change will terminate
      STP/SMP requests. Also, if the device is gone, the lldd will prevent
      libsas from further escalations in the error handler.
      Signed-off-by: default avatarJeff Skirvin <jeffrey.d.skirvin@intel.com>
      Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
      Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
      98145cb7
    • Jeff Skirvin's avatar
      [SCSI] isci: No task_done callbacks in error handler paths. · db49c2d0
      Jeff Skirvin authored
      libsas will cleanup pending sas_tasks after error handler
      path functions are called; do not call task_done callbacks.
      Signed-off-by: default avatarJeff Skirvin <jeffrey.d.skirvin@intel.com>
      Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
      Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
      db49c2d0
    • Jeff Skirvin's avatar
      [SCSI] isci: Handle task request timeouts correctly. · b343dff1
      Jeff Skirvin authored
      In the case where "task" requests timeout (note that this class of
      requests can also include SATA/STP soft reset FIS transmissions),
      handle the case where the task was being managed by some call to
      terminate the task request by completing both the tmf and the aborting
      process.
      Signed-off-by: default avatarJeff Skirvin <jeffrey.d.skirvin@intel.com>
      Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
      Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
      b343dff1
    • Jeff Skirvin's avatar
      [SCSI] isci: Fix tag leak in tasks and terminated requests. · d6891682
      Jeff Skirvin authored
      Make sure terminated requests and completed task tags are freed.
      Signed-off-by: default avatarJeff Skirvin <jeffrey.d.skirvin@intel.com>
      Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
      Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
      d6891682
    • Jeff Skirvin's avatar
      [SCSI] isci: Immediately fail I/O to removed devices. · c2cb8a5f
      Jeff Skirvin authored
      In the case where an I/O fails to start in isci_request_execute,
      only allow retries if the device is not already gone.
      Signed-off-by: default avatarJeff Skirvin <jeffrey.d.skirvin@intel.com>
      Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
      Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
      c2cb8a5f
    • Jeff Skirvin's avatar
      [SCSI] isci: Lookup device references through requests in completions. · 0e2e2799
      Jeff Skirvin authored
      The LLDD needs to obtain a reference to the device through the request
      itself and not through the domain_device, because the
      domain_device.lldd_dev is set to NULL early in the lldd_dev_gone call.
      This relies on the fact that the isci_remote_device object is keeping a
      seperate reference count of outstanding requests.  TODO: unify the
      request count tracking with the isci_remote_device kref.
      
      The failure signature of this condition looks like the following
      log, where the important bits are the call to lldd_dev_gone followed
      by a crash in isci_terminate_request_core:
      
      [  229.151541] isci 0000:0b:00.0: isci_remote_device_gone: domain_device = ffff8801492d4800, isci_device = ffff880143c657d0, isci_port = ffff880143c63658
      [  229.166007] isci 0000:0b:00.0: isci_remote_device_stop: isci_device = ffff880143c657d0
      [  229.175317] isci 0000:0b:00.0: isci_terminate_pending_requests: idev=ffff880143c657d0 request=ffff88014741f000; task=ffff8801470f46c0 old_state=2
      [  229.189702] isci 0000:0b:00.0: isci_terminate_request_core: device = ffff880143c657d0; request = ffff88014741f000
      [  229.201339] isci 0000:0b:00.0: isci_terminate_request_core: before completion wait (ffff88014741f000/ffff880149715ad0)
      [  229.213414] isci 0000:0b:00.0: sci_controller_process_completions: completion queue entry:0x8000a0e9
      [  229.214401] BUG: unable to handle kernel NULL pointer dereference at 0000000000000228
      [  229.214401] IP:jdskirvi-testlbo [<ffffffffa00a58be>] sci_request_completed_state_enter+0x50/0xafb [isci]
      [  229.214401] PGD 13d19e067 PUD 13d104067 PMD 0
      [  229.214401] Oops: 0000 [#1] SMP
      [  229.214401] CPU 0 x kernel: [  226
      [  229.214401] Modules linked in: ipv6 dm_multipath uinput nouveau snd_hda_codec_realtek snd_hda_intel ttm drm_kms_helper drm snd_hda_codec snd_hwdep snd_pcm snd_timer i2c_algo_bit isci snd libsas ioatdma mxm_wmi iTCO_wdt soundcore snd_page_alloc scsi_transport_sas iTCO_vendor_support wmi dca video i2c_i801 i2c_core [last unloaded: speedstep_lib]
      [  229.214401]
      [  229.214401] Pid: 5, comm: kworker/u:0 Not tainted 3.0.0-isci-11.7.29+ #30.353196] Buffer  Intel Corporation Stoakley/Pearlcity Workstation
      [  229.214401] RIP: 0010:[<ffffffffa00a58be>] I/O error on dev [<ffffffffa00a58be>] sci_request_completed_state_enter+0x50/0xafb [isci]
      [  229.214401] RSP: 0018:ffff88014fc03d20  EFLAGS: 00010046
      [  229.214401] RAX: 0000000000000000 RBX: ffff88014741f000 RCX: 0000000000000000
      [  229.214401] RDX: ffffffffa00b2c90 RSI: 0000000000000017 RDI: ffff88014741f0a0
      [  229.214401] RBP: ffff88014fc03d90 R08: 0000000000000018 R09: 0000000000000000
      [  229.214401] R10: 0000000000000000 R11: ffffffff81a17d98 R12: 000000000000001d
      [  229.214401] R13: ffff8801470f46c0 R14: 0000000000000000 R15: 0000000000008000
      [  229.214401] FS:  0000000000000000(0000) GS:ffff88014fc00000(0000) knlGS:0000000000000000
      [  229.214401] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
      [  229.214401] CR2: 0000000000000228 CR3: 000000013ceaa000 CR4: 00000000000406f0
      [  229.214401] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      [  229.214401] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
      [  229.214401] Process kworker/u:0 (pid: 5, threadinfo ffff880149714000, task ffff880149718000)
      [  229.214401] Call Trace:
      [  229.214401]  <IRQ>
      [  229.214401]  [<ffffffffa00aa6ce>] sci_change_state+0x4a/0x4f [isci]
      [  229.214401]  [<ffffffffa00a4ca6>] sci_io_request_tc_completion+0x79c/0x7a0 [isci]
      [  229.214401]  [<ffffffffa00acf35>] sci_controller_process_completions+0x14f/0x396 [isci]
      [  229.214401]  [<ffffffffa00abbda>] ? spin_lock_irq+0xe/0x10 [isci]
      [  229.214401]  [<ffffffffa00ad2cf>] isci_host_completion_routine+0x71/0x2be [isci]
      [  229.214401]  [<ffffffff8107c6b3>] ? mark_held_locks+0x52/0x70
      [  229.214401]  [<ffffffff810538e8>] tasklet_action+0x90/0xf1
      [  229.214401]  [<ffffffff81054050>] __do_softirq+0xe5/0x1bf
      [  229.214401]  [<ffffffff8106d9d1>] ? hrtimer_interrupt+0x129/0x1bb
      [  229.214401]  [<ffffffff814ff69c>] call_softirq+0x1c/0x30
      [  229.214401]  [<ffffffff8100bb67>] do_softirq+0x4b/0xa3
      [  229.214401]  [<ffffffff81053d84>] irq_exit+0x53/0xb4
      [  229.214401]  [<ffffffff814fffe7>] smp_apic_timer_interrupt+0x83/0x91
      [  229.214401]  [<ffffffff814fee53>] apic_timer_interrupt+0x13/0x20
      [  229.214401]  <EOI>
      [  229.214401]  [<ffffffff814f7ad4>] ? retint_restore_args+0x13/0x13
      [  229.214401]  [<ffffffff8107af29>] ? trace_hardirqs_off+0xd/0xf
      [  229.214401]  [<ffffffff8104ea71>] ? vprintk+0x40b/0x452
      [  229.214401]  [<ffffffff814f4b5a>] printk+0x41/0x47
      [  229.214401]  [<ffffffff81314484>] __dev_printk+0x78/0x7a
      [  229.214401]  [<ffffffff8131471e>] dev_printk+0x45/0x47
      [  229.214401]  [<ffffffffa00ae2a3>] isci_terminate_request_core+0x15d/0x317 [isci]
      [  229.214401]  [<ffffffffa00af1ad>] isci_terminate_pending_requests+0x1a4/0x204 [isci]
      [  229.214401]  [<ffffffffa00229f6>] ? sas_phye_oob_error+0xc3/0xc3 [libsas]
      [  229.214401]  [<ffffffffa00a7d9e>] isci_remote_device_nuke_requests+0xa6/0xff [isci]
      [  229.214401]  [<ffffffffa00a811a>] isci_remote_device_stop+0x7c/0x166 [isci]
      [  229.214401]  [<ffffffffa00229f6>] ? sas_phye_oob_error+0xc3/0xc3 [libsas]
      [  229.214401]  [<ffffffffa00a827a>] isci_remote_device_gone+0x76/0x7e [isci]
      [  229.214401]  [<ffffffffa002363e>] sas_notify_lldd_dev_gone+0x34/0x36 [libsas]
      [  229.214401]  [<ffffffffa0023945>] sas_unregister_dev+0x57/0x9c [libsas]
      [  229.214401]  [<ffffffffa00239c0>] sas_unregister_domain_devices+0x36/0x65 [libsas]
      [  229.214401]  [<ffffffffa0022cb8>] sas_deform_port+0x72/0x1ac [libsas]
      [  229.214401]  [<ffffffffa00229f6>] ? sas_phye_oob_error+0xc3/0xc3 [libsas]
      [  229.214401]  [<ffffffffa0022a34>] sas_phye_loss_of_signal+0x3e/0x42 [libsas]
      Signed-off-by: default avatarJeff Skirvin <jeffrey.d.skirvin@intel.com>
      Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
      Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
      0e2e2799
    • Wayne Boyer's avatar
      [SCSI] ipr: add definitions for additional adapter · 5a918353
      Wayne Boyer authored
      Add the appropriate definition and table entry for an additional adapter.
      Signed-off-by: default avatarWayne Boyer <wayneb@linux.vnet.ibm.com>
      Acked-by: default avatarBrian King <brking@linux.vnet.ibm.com>
      Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
      5a918353
    • Moger, Babu's avatar
      [SCSI] scsi_dh: check queuedata pointer before proceeding further · a18a920c
      Moger, Babu authored
      This patch validates sdev pointer in scsi_dh_activate before proceeding further.
      
      Without this check we might see the panic as below. I have seen this
      panic multiple times..
      
      Call trace:
      
       #0 [ffff88007d647b50] machine_kexec at ffffffff81020902
       #1 [ffff88007d647ba0] crash_kexec at ffffffff810875b0
       #2 [ffff88007d647c70] oops_end at ffffffff8139c650
       #3 [ffff88007d647c90] __bad_area_nosemaphore at ffffffff8102dd15
       #4 [ffff88007d647d50] page_fault at ffffffff8139b8cf
          [exception RIP: scsi_dh_activate+0x82]
          RIP: ffffffffa0041922  RSP: ffff88007d647e00  RFLAGS: 00010046
          RAX: 0000000000000000  RBX: 0000000000000000  RCX: 00000000000093c5
          RDX: 00000000000093c5  RSI: ffffffffa02e6640  RDI: ffff88007cc88988
          RBP: 000000000000000f   R8: ffff88007d646000   R9: 0000000000000000
          R10: ffff880082293790  R11: 00000000ffffffff  R12: ffff88007cc88988
          R13: 0000000000000000  R14: 0000000000000286  R15: ffff880037b845e0
          ORIG_RAX: ffffffffffffffff  CS: 0010  SS: 0000
       #5 [ffff88007d647e38] run_workqueue at ffffffff81060268
       #6 [ffff88007d647e78] worker_thread at ffffffff81060386
       #7 [ffff88007d647ee8] kthread at ffffffff81064436
       #8 [ffff88007d647f48] kernel_thread at ffffffff81003fba
      Signed-off-by: default avatarBabu Moger <babu.moger@netapp.com>
      Cc: stable@kernel.org
      Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
      a18a920c
  2. 30 Oct, 2011 24 commits
  3. 28 Oct, 2011 6 commits
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 · ec7ae517
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (204 commits)
        [SCSI] qla4xxx: export address/port of connection (fix udev disk names)
        [SCSI] ipr: Fix BUG on adapter dump timeout
        [SCSI] megaraid_sas: Fix instance access in megasas_reset_timer
        [SCSI] hpsa: change confusing message to be more clear
        [SCSI] iscsi class: fix vlan configuration
        [SCSI] qla4xxx: fix data alignment and use nl helpers
        [SCSI] iscsi class: fix link local mispelling
        [SCSI] iscsi class: Replace iscsi_get_next_target_id with IDA
        [SCSI] aacraid: use lower snprintf() limit
        [SCSI] lpfc 8.3.27: Change driver version to 8.3.27
        [SCSI] lpfc 8.3.27: T10 additions for SLI4
        [SCSI] lpfc 8.3.27: Fix queue allocation failure recovery
        [SCSI] lpfc 8.3.27: Change algorithm for getting physical port name
        [SCSI] lpfc 8.3.27: Changed worst case mailbox timeout
        [SCSI] lpfc 8.3.27: Miscellanous logic and interface fixes
        [SCSI] megaraid_sas: Changelog and version update
        [SCSI] megaraid_sas: Add driver workaround for PERC5/1068 kdump kernel panic
        [SCSI] megaraid_sas: Add multiple MSI-X vector/multiple reply queue support
        [SCSI] megaraid_sas: Add support for MegaRAID 9360/9380 12GB/s controllers
        [SCSI] megaraid_sas: Clear FUSION_IN_RESET before enabling interrupts
        ...
      ec7ae517
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://ceph.newdream.net/git/ceph-client · 97d2eb13
      Linus Torvalds authored
      * 'for-linus' of git://ceph.newdream.net/git/ceph-client:
        libceph: fix double-free of page vector
        ceph: fix 32-bit ino numbers
        libceph: force resend of osd requests if we skip an osdmap
        ceph: use kernel DNS resolver
        ceph: fix ceph_monc_init memory leak
        ceph: let the set_layout ioctl set single traits
        Revert "ceph: don't truncate dirty pages in invalidate work thread"
        ceph: replace leading spaces with tabs
        libceph: warn on msg allocation failures
        libceph: don't complain on msgpool alloc failures
        libceph: always preallocate mon connection
        libceph: create messenger with client
        ceph: document ioctls
        ceph: implement (optional) max read size
        ceph: rename rsize -> rasize
        ceph: make readpages fully async
      97d2eb13
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 68d99b2c
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (549 commits)
        ALSA: hda - Fix ADC input-amp handling for Cx20549 codec
        ALSA: hda - Keep EAPD turned on for old Conexant chips
        ALSA: hda/realtek - Fix missing volume controls with ALC260
        ASoC: wm8940: Properly set codec->dapm.bias_level
        ALSA: hda - Fix pin-config for ASUS W90V
        ALSA: hda - Fix surround/CLFE headphone and speaker pins order
        ALSA: hda - Fix typo
        ALSA: Update the sound git tree URL
        ALSA: HDA: Add new revision for ALC662
        ASoC: max98095: Convert codec->hw_write to snd_soc_write
        ASoC: keep pointer to resource so it can be freed
        ASoC: sgtl5000: Fix wrong mask in some snd_soc_update_bits calls
        ASoC: wm8996: Fix wrong mask for setting WM8996_AIF_CLOCKING_2
        ASoC: da7210: Add support for line out and DAC
        ASoC: da7210: Add support for DAPM
        ALSA: hda/realtek - Fix DAC assignments of multiple speakers
        ASoC: Use SGTL5000_LINREG_VDDD_MASK instead of hardcoded mask value
        ASoC: Set sgtl5000->ldo in ldo_regulator_register
        ASoC: wm8996: Use SND_SOC_DAPM_AIF_OUT for AIF2 Capture
        ASoC: wm8994: Use SND_SOC_DAPM_AIF_OUT for AIF3 Capture
        ...
      68d99b2c
    • Linus Torvalds's avatar
      Merge branch 'next-rebase' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci · 0e59e7e7
      Linus Torvalds authored
      * 'next-rebase' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci:
        PCI: Clean-up MPS debug output
        pci: Clamp pcie_set_readrq() when using "performance" settings
        PCI: enable MPS "performance" setting to properly handle bridge MPS
        PCI: Workaround for Intel MPS errata
        PCI: Add support for PASID capability
        PCI: Add implementation for PRI capability
        PCI: Export ATS functions to modules
        PCI: Move ATS implementation into own file
        PCI / PM: Remove unnecessary error variable from acpi_dev_run_wake()
        PCI hotplug: acpiphp: Prevent deadlock on PCI-to-PCI bridge remove
        PCI / PM: Extend PME polling to all PCI devices
        PCI quirk: mmc: Always check for lower base frequency quirk for Ricoh 1180:e823
        PCI: Make pci_setup_bridge() non-static for use by arch code
        x86: constify PCI raw ops structures
        PCI: Add quirk for known incorrect MPSS
        PCI: Add Solarflare vendor ID and SFC4000 device IDs
      0e59e7e7
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc · 46b51ea2
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc: (83 commits)
        mmc: fix compile error when CONFIG_BLOCK is not enabled
        mmc: core: Cleanup eMMC4.5 conditionals
        mmc: omap_hsmmc: if multiblock reads are broken, disable them
        mmc: core: add workaround for controllers with broken multiblock reads
        mmc: core: Prevent too long response times for suspend
        mmc: recognise SDIO cards with SDIO_CCCR_REV 3.00
        mmc: sd: Handle SD3.0 cards not supporting UHS-I bus speed mode
        mmc: core: support HPI send command
        mmc: core: Add cache control for eMMC4.5 device
        mmc: core: Modify the timeout value for writing power class
        mmc: core: new discard feature support at eMMC v4.5
        mmc: core: mmc sanitize feature support for v4.5
        mmc: dw_mmc: modify DATA register offset
        mmc: sdhci-pci: add flag for devices that can support runtime PM
        mmc: omap_hsmmc: ensure pbias configuration is always done
        mmc: core: Add Power Off Notify Feature eMMC 4.5
        mmc: sdhci-s3c: fix potential NULL dereference
        mmc: replace printk with appropriate display macro
        mmc: core: Add default timeout value for CMD6
        mmc: sdhci-pci: add runtime pm support
        ...
      46b51ea2
    • Linus Torvalds's avatar
      Merge branch 'devel-stable' of... · 1fdb24e9
      Linus Torvalds authored
      Merge branch 'devel-stable' of http://ftp.arm.linux.org.uk/pub/linux/arm/kernel/git-cur/linux-2.6-arm
      
      * 'devel-stable' of http://ftp.arm.linux.org.uk/pub/linux/arm/kernel/git-cur/linux-2.6-arm: (178 commits)
        ARM: 7139/1: fix compilation with CONFIG_ARM_ATAG_DTB_COMPAT and large TEXT_OFFSET
        ARM: gic, local timers: use the request_percpu_irq() interface
        ARM: gic: consolidate PPI handling
        ARM: switch from NO_MACH_MEMORY_H to NEED_MACH_MEMORY_H
        ARM: mach-s5p64x0: remove mach/memory.h
        ARM: mach-s3c64xx: remove mach/memory.h
        ARM: plat-mxc: remove mach/memory.h
        ARM: mach-prima2: remove mach/memory.h
        ARM: mach-zynq: remove mach/memory.h
        ARM: mach-bcmring: remove mach/memory.h
        ARM: mach-davinci: remove mach/memory.h
        ARM: mach-pxa: remove mach/memory.h
        ARM: mach-ixp4xx: remove mach/memory.h
        ARM: mach-h720x: remove mach/memory.h
        ARM: mach-vt8500: remove mach/memory.h
        ARM: mach-s5pc100: remove mach/memory.h
        ARM: mach-tegra: remove mach/memory.h
        ARM: plat-tcc: remove mach/memory.h
        ARM: mach-mmp: remove mach/memory.h
        ARM: mach-cns3xxx: remove mach/memory.h
        ...
      
      Fix up mostly pretty trivial conflicts in:
       - arch/arm/Kconfig
       - arch/arm/include/asm/localtimer.h
       - arch/arm/kernel/Makefile
       - arch/arm/mach-shmobile/board-ap4evb.c
       - arch/arm/mach-u300/core.c
       - arch/arm/mm/dma-mapping.c
       - arch/arm/mm/proc-v7.S
       - arch/arm/plat-omap/Kconfig
      largely due to some CONFIG option renaming (ie CONFIG_PM_SLEEP ->
      CONFIG_ARM_CPU_SUSPEND for the arm-specific suspend code etc) and
      addition of NEED_MACH_MEMORY_H next to HAVE_IDE.
      1fdb24e9