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

Reply via email to