Gitweb: http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=1b34e97441384d527c438a6ee597bfc800373bce Commit: 1b34e97441384d527c438a6ee597bfc800373bce Parent: 930e4b7fe3b4e1c4e14b9c22e4c9c74dc8db75f3 Author: Stefan Richter <[EMAIL PROTECTED]> AuthorDate: Sat Aug 25 10:40:42 2007 +0200 Committer: Stefan Richter <[EMAIL PROTECTED]> CommitDate: Wed Oct 17 00:00:02 2007 +0200
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 <[EMAIL PROTECTED]> Acked-by: Kristian Høgsberg <[EMAIL PROTECTED]> --- drivers/firewire/fw-sbp2.c | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/firewire/fw-sbp2.c b/drivers/firewire/fw-sbp2.c index 238730f..7ecc154 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); } - To unsubscribe from this list: send the line "unsubscribe git-commits-head" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html