On Tue, 2012-01-10 at 14:16 +0100, Sebastian Andrzej Siewior wrote: > It may happen that uasp will free the request in irq conntext, the > callchain: > uasp_cmd_release() -> transport_generic_free_cmd() -> core_dec_lacl_count() > where the last function enables the IRQ. Those irqs are re-disabled > later (due to the spin.*irq_restore) but in between we could get hurt. > > Signed-off-by: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx> > --- > drivers/target/target_core_device.c | 5 +++-- > 1 files changed, 3 insertions(+), 2 deletions(-) > > diff --git a/drivers/target/target_core_device.c b/drivers/target/target_core_device.c > index 0c5992f..00159a4 100644 > --- a/drivers/target/target_core_device.c > +++ b/drivers/target/target_core_device.c > @@ -320,11 +320,12 @@ int core_free_device_list_for_node( > void core_dec_lacl_count(struct se_node_acl *se_nacl, struct se_cmd *se_cmd) > { > struct se_dev_entry *deve; > + unsigned long flags; > > - spin_lock_irq(&se_nacl->device_list_lock); > + spin_lock_irqsave(&se_nacl->device_list_lock, flags); > deve = &se_nacl->device_list[se_cmd->orig_fe_lun]; > deve->deve_cmds--; > - spin_unlock_irq(&se_nacl->device_list_lock); > + spin_unlock_irqrestore(&se_nacl->device_list_lock, flags); > } > Applied to lio-core.git, and will queue to 3.3-rc-fixes as well. Thanks, --nab -- To unsubscribe from this list: send the line "unsubscribe target-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html