git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ppp: fix pppoe_dev deletion condition in pppoe_release()
[pandora-kernel.git]
/
drivers
/
net
/
ppp
/
pppoe.c
diff --git
a/drivers/net/ppp/pppoe.c
b/drivers/net/ppp/pppoe.c
index
bc9a4bb
..
0f4a04d
100644
(file)
--- a/
drivers/net/ppp/pppoe.c
+++ b/
drivers/net/ppp/pppoe.c
@@
-319,7
+319,6
@@
static void pppoe_flush_dev(struct net_device *dev)
if (po->pppoe_dev == dev &&
sk->sk_state & (PPPOX_CONNECTED | PPPOX_BOUND | PPPOX_ZOMBIE)) {
pppox_unbind_sock(sk);
if (po->pppoe_dev == dev &&
sk->sk_state & (PPPOX_CONNECTED | PPPOX_BOUND | PPPOX_ZOMBIE)) {
pppox_unbind_sock(sk);
- sk->sk_state = PPPOX_ZOMBIE;
sk->sk_state_change(sk);
po->pppoe_dev = NULL;
dev_put(dev);
sk->sk_state_change(sk);
po->pppoe_dev = NULL;
dev_put(dev);
@@
-576,7
+575,7
@@
static int pppoe_release(struct socket *sock)
po = pppox_sk(sk);
po = pppox_sk(sk);
- if (
sk->sk_state & (PPPOX_CONNECTED | PPPOX_BOUND)
) {
+ if (
po->pppoe_dev
) {
dev_put(po->pppoe_dev);
po->pppoe_dev = NULL;
}
dev_put(po->pppoe_dev);
po->pppoe_dev = NULL;
}
@@
-985,8
+984,6
@@
static int pppoe_recvmsg(struct kiocb *iocb, struct socket *sock,
if (error < 0)
goto end;
if (error < 0)
goto end;
- m->msg_namelen = 0;
-
if (skb) {
total_len = min_t(size_t, total_len, skb->len);
error = skb_copy_datagram_iovec(skb, 0, m->msg_iov, total_len);
if (skb) {
total_len = min_t(size_t, total_len, skb->len);
error = skb_copy_datagram_iovec(skb, 0, m->msg_iov, total_len);