1
linux/drivers/target
Roland Dreier 28638887f3 target: Convert acl_node_lock to be IRQ-disabling
With qla2xxx, acl_node_lock is taken inside qla2xxx's hardware_lock,
which is taken in hardirq context.  This means acl_node_lock must become
an IRQ-disabling lock; in particular this fixes lockdep warnings along
the lines of

    ======================================================
    [ INFO: HARDIRQ-safe -> HARDIRQ-unsafe lock order detected ]

     (&(&se_tpg->acl_node_lock)->rlock){+.....}, at: [<ffffffffa026f872>] transport_deregister_session+0x92/0x140 [target_core_mod]

    and this task is already holding:
     (&(&ha->hardware_lock)->rlock){-.-...}, at: [<ffffffffa017c5e7>] qla_tgt_stop_phase1+0x57/0x2c0 [qla2xxx]
    which would create a new lock dependency:
     (&(&ha->hardware_lock)->rlock){-.-...} -> (&(&se_tpg->acl_node_lock)->rlock){+.....}

    but this new dependency connects a HARDIRQ-irq-safe lock:
     (&(&ha->hardware_lock)->rlock){-.-...}

    to a HARDIRQ-irq-unsafe lock:
     (&(&se_tpg->acl_node_lock)->rlock){+.....}

Signed-off-by: Roland Dreier <roland@purestorage.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
2011-08-22 19:28:36 +00:00
..
iscsi iscsi-target: Fix iscsit_allocate_se_cmd_for_tmr failure path bugs 2011-08-22 19:26:30 +00:00
loopback target: Follow up core updates from AGrover and HCH (round 4) 2011-07-22 09:37:48 +00:00
tcm_fc target: Convert acl_node_lock to be IRQ-disabling 2011-08-22 19:28:36 +00:00
Kconfig iscsi-target: Add iSCSI fabric support for target v4.1 2011-07-26 09:16:43 +00:00
Makefile iscsi-target: Add iSCSI fabric support for target v4.1 2011-07-26 09:16:43 +00:00
target_core_alua.c target: Follow up core updates from AGrover and HCH (round 4) 2011-07-22 09:37:48 +00:00
target_core_alua.h
target_core_cdb.c target: Print subpage too for unhandled MODE SENSE pages 2011-08-22 19:26:31 +00:00
target_core_configfs.c target: fix typo Assoication -> Association 2011-07-22 09:37:49 +00:00
target_core_device.c target: Convert acl_node_lock to be IRQ-disabling 2011-08-22 19:28:36 +00:00
target_core_fabric_configfs.c target: Use ERR_CAST inlined function 2011-08-22 19:26:15 +00:00
target_core_fabric_lib.c target: remove custom hex2bin() implementation 2011-07-22 09:37:49 +00:00
target_core_file.c target: Follow up core updates from AGrover and HCH (round 4) 2011-07-22 09:37:48 +00:00
target_core_file.h target: Follow up core updates from AGrover and HCH (round 4) 2011-07-22 09:37:48 +00:00
target_core_hba.c target: Follow up core updates from AGrover and HCH (round 4) 2011-07-22 09:37:48 +00:00
target_core_hba.h
target_core_iblock.c target: ->map_task_SG conversion to ->map_control_SG and ->map_data_SG 2011-07-22 09:37:48 +00:00
target_core_iblock.h target: Follow up core updates from AGrover and HCH (round 4) 2011-07-22 09:37:48 +00:00
target_core_pr.c target: Convert acl_node_lock to be IRQ-disabling 2011-08-22 19:28:36 +00:00
target_core_pr.h target: Core cleanups from AGrover (round 1) 2011-07-22 09:37:43 +00:00
target_core_pscsi.c target: ->map_task_SG conversion to ->map_control_SG and ->map_data_SG 2011-07-22 09:37:48 +00:00
target_core_pscsi.h target: Follow up core updates from AGrover and HCH (round 4) 2011-07-22 09:37:48 +00:00
target_core_rd.c target: Convert target_core_rd.c to use use BUG_ON 2011-08-22 19:26:17 +00:00
target_core_rd.h target: Follow up core updates from AGrover and HCH (round 4) 2011-07-22 09:37:48 +00:00
target_core_scdb.c target: Pass 2nd param of transport_split_cdb by value 2011-07-22 09:37:48 +00:00
target_core_scdb.h target: Pass 2nd param of transport_split_cdb by value 2011-07-22 09:37:48 +00:00
target_core_stat.c target: Core cleanups from AGrover (round 1) 2011-07-22 09:37:43 +00:00
target_core_stat.h [SCSI] target: add initial statistics 2011-03-23 11:36:50 -05:00
target_core_tmr.c target: Follow up core updates from AGrover and HCH (round 4) 2011-07-22 09:37:48 +00:00
target_core_tpg.c target: Convert acl_node_lock to be IRQ-disabling 2011-08-22 19:28:36 +00:00
target_core_transport.c target: Make locking in transport_deregister_session() IRQ safe 2011-08-22 19:26:33 +00:00
target_core_ua.c target: Follow up core updates from AGrover and HCH (round 4) 2011-07-22 09:37:48 +00:00
target_core_ua.h