projects
/
firefly-linux-kernel-4.4.55.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
c55703d
)
9p: Fix soft lockup in virtio transport
author
Eric Van Hensbergen
<ericvh@opteron.homeip.net>
Thu, 7 Feb 2008 01:25:07 +0000
(19:25 -0600)
committer
Eric Van Hensbergen
<ericvh@opteron.homeip.net>
Thu, 7 Feb 2008 01:25:07 +0000
(19:25 -0600)
This fixes a poorly placed spinlock which could result in a
soft lockup condition.
Signed-off-by: Eric Van Hensbergen <ericvh@gmail.com>
net/9p/trans_virtio.c
patch
|
blob
|
history
diff --git
a/net/9p/trans_virtio.c
b/net/9p/trans_virtio.c
index 0f590227943ba86ca63c39f5836dadb92497d1f3..7853c31bd690f5744c3824904ccce34e0baa9824 100644
(file)
--- 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);