diff options
-rw-r--r-- | include/net/sock.h | 7 | ||||
-rw-r--r-- | net/core/dev.c | 7 |
2 files changed, 4 insertions, 10 deletions
diff --git a/include/net/sock.h b/include/net/sock.h index 731150d52799..0a691ea7654a 100644 --- a/include/net/sock.h +++ b/include/net/sock.h | |||
@@ -1224,12 +1224,7 @@ static inline void sk_tx_queue_clear(struct sock *sk) | |||
1224 | 1224 | ||
1225 | static inline int sk_tx_queue_get(const struct sock *sk) | 1225 | static inline int sk_tx_queue_get(const struct sock *sk) |
1226 | { | 1226 | { |
1227 | return sk->sk_tx_queue_mapping; | 1227 | return sk ? sk->sk_tx_queue_mapping : -1; |
1228 | } | ||
1229 | |||
1230 | static inline bool sk_tx_queue_recorded(const struct sock *sk) | ||
1231 | { | ||
1232 | return (sk && sk->sk_tx_queue_mapping >= 0); | ||
1233 | } | 1228 | } |
1234 | 1229 | ||
1235 | static inline void sk_set_socket(struct sock *sk, struct socket *sock) | 1230 | static inline void sk_set_socket(struct sock *sk, struct socket *sock) |
diff --git a/net/core/dev.c b/net/core/dev.c index 4b05fdf762ab..0ea10f849be8 100644 --- a/net/core/dev.c +++ b/net/core/dev.c | |||
@@ -2029,12 +2029,11 @@ static inline u16 dev_cap_txqueue(struct net_device *dev, u16 queue_index) | |||
2029 | static struct netdev_queue *dev_pick_tx(struct net_device *dev, | 2029 | static struct netdev_queue *dev_pick_tx(struct net_device *dev, |
2030 | struct sk_buff *skb) | 2030 | struct sk_buff *skb) |
2031 | { | 2031 | { |
2032 | u16 queue_index; | 2032 | int queue_index; |
2033 | struct sock *sk = skb->sk; | 2033 | struct sock *sk = skb->sk; |
2034 | 2034 | ||
2035 | if (sk_tx_queue_recorded(sk)) { | 2035 | queue_index = sk_tx_queue_get(sk); |
2036 | queue_index = sk_tx_queue_get(sk); | 2036 | if (queue_index < 0) { |
2037 | } else { | ||
2038 | const struct net_device_ops *ops = dev->netdev_ops; | 2037 | const struct net_device_ops *ops = dev->netdev_ops; |
2039 | 2038 | ||
2040 | if (ops->ndo_select_queue) { | 2039 | if (ops->ndo_select_queue) { |