Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=7c7d90f2dda6daec5a6aaf8f97aacc10ee4deb77
Commit:     7c7d90f2dda6daec5a6aaf8f97aacc10ee4deb77
Parent:     c55703d807a8c6c239a5fea7b9cd7da08c27d7a9
Author:     Eric Van Hensbergen <[EMAIL PROTECTED]>
AuthorDate: Wed Feb 6 19:25:07 2008 -0600
Committer:  Eric Van Hensbergen <[EMAIL PROTECTED]>
CommitDate: Wed Feb 6 19:25:07 2008 -0600

    9p: Fix soft lockup in virtio transport
    
    This fixes a poorly placed spinlock which could result in a
    soft lockup condition.
    
    Signed-off-by: Eric Van Hensbergen <[EMAIL PROTECTED]>
---
 net/9p/trans_virtio.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/net/9p/trans_virtio.c b/net/9p/trans_virtio.c
index 0f59022..7853c31 100644
--- a/net/9p/trans_virtio.c
+++ b/net/9p/trans_virtio.c
@@ -232,7 +232,6 @@ p9_virtio_rpc(struct p9_trans *t, struct p9_fcall *tc, 
struct p9_fcall **rc,
 
        rdata = (char *)*rc+sizeof(struct p9_fcall);
 
-       spin_lock_irqsave(&chan->lock, flags);
        n = P9_NOTAG;
        if (tc->id != P9_TVERSION) {
                n = p9_idpool_get(chan->tagpool);
@@ -240,6 +239,7 @@ p9_virtio_rpc(struct p9_trans *t, struct p9_fcall *tc, 
struct p9_fcall **rc,
                        return -ENOMEM;
        }
 
+       spin_lock_irqsave(&chan->lock, flags);
        req = p9_lookup_tag(chan, n);
        spin_unlock_irqrestore(&chan->lock, flags);
 
-
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