From: Stefan Richter Date: Sat, 25 Aug 2007 08:40:42 +0000 (+0200) Subject: firewire: fw-sbp2: always enable IRQs before calling command ORB callback X-Git-Tag: v2.6.24-rc1~825^2~13 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1b34e97441384d527c438a6ee597bfc800373bce;p=linux-2.6 firewire: fw-sbp2: always enable IRQs before calling command ORB callback On IOMMU-less noncoherent architectures, orb->callback will memcpy the whole SCSI command buffer for READ-like SCSI commands. It is therefore friendlier to enable IRQs before the call, like before patch "Add ref-counting for sbp2 orbs". Signed-off-by: Stefan Richter Acked-by: Kristian Høgsberg --- diff --git a/drivers/firewire/fw-sbp2.c b/drivers/firewire/fw-sbp2.c index 238730f75d..7ecc154a82 100644 --- a/drivers/firewire/fw-sbp2.c +++ b/drivers/firewire/fw-sbp2.c @@ -361,11 +361,12 @@ complete_transaction(struct fw_card *card, int rcode, orb->rcode = rcode; if (orb->rcode != RCODE_COMPLETE) { list_del(&orb->link); + spin_unlock_irqrestore(&card->lock, flags); orb->callback(orb, NULL); + } else { + spin_unlock_irqrestore(&card->lock, flags); } - spin_unlock_irqrestore(&card->lock, flags); - kref_put(&orb->kref, free_orb); }