1. 11 Apr, 2013 16 commits
  2. 10 Apr, 2013 11 commits
  3. 09 Apr, 2013 12 commits
  4. 06 Apr, 2013 1 commit
    • Lukasz Dorau's avatar
      [SCSI] libsas: fix handling vacant phy in sas_set_ex_phy() · d4a2618f
      Lukasz Dorau authored
      If a result of the SMP discover function is PHY VACANT,
      the content of discover response structure (dr) is not valid.
      It sometimes happens that dr->attached_sas_addr can contain
      even SAS address of other phy. In such case an invalid phy
      is created, what causes NULL pointer dereference during
      destruction of expander's phys.
      
      So if a result of SMP function is PHY VACANT, the content of discover
      response structure (dr) must not be copied to phy structure.
      
      This patch fixes the following bug:
      
      BUG: unable to handle kernel NULL pointer dereference at 0000000000000030
      IP: [<ffffffff811c9002>] sysfs_find_dirent+0x12/0x90
      Call Trace:
        [<ffffffff811c95f5>] sysfs_get_dirent+0x35/0x80
        [<ffffffff811cb55e>] sysfs_unmerge_group+0x1e/0xb0
        [<ffffffff813329f4>] dpm_sysfs_remove+0x24/0x90
        [<ffffffff8132b0f4>] device_del+0x44/0x1d0
        [<ffffffffa016fc59>] sas_rphy_delete+0x9/0x20 [scsi_transport_sas]
        [<ffffffffa01a16f6>] sas_destruct_devices+0xe6/0x110 [libsas]
        [<ffffffff8107ac7c>] process_one_work+0x16c/0x350
        [<ffffffff8107d84a>] worker_thread+0x17a/0x410
        [<ffffffff81081b76>] kthread+0x96/0xa0
        [<ffffffff81464944>] kernel_thread_helper+0x4/0x10
      Signed-off-by: default avatarLukasz Dorau <lukasz.dorau@intel.com>
      Signed-off-by: default avatarPawel Baldysiak <pawel.baldysiak@intel.com>
      Reviewed-by: default avatarMaciej Patelczyk <maciej.patelczyk@intel.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
      d4a2618f