diff options
Diffstat (limited to 'net/core/dev.c')
| -rw-r--r-- | net/core/dev.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/net/core/dev.c b/net/core/dev.c index 7016e0c36b3d..ff9dc029233a 100644 --- a/net/core/dev.c +++ b/net/core/dev.c | |||
| @@ -1127,7 +1127,7 @@ static inline int illegal_highdma(struct net_device *dev, struct sk_buff *skb) | |||
| 1127 | extern void skb_release_data(struct sk_buff *); | 1127 | extern void skb_release_data(struct sk_buff *); |
| 1128 | 1128 | ||
| 1129 | /* Keep head the same: replace data */ | 1129 | /* Keep head the same: replace data */ |
| 1130 | int __skb_linearize(struct sk_buff *skb, int gfp_mask) | 1130 | int __skb_linearize(struct sk_buff *skb, unsigned int __nocast gfp_mask) |
| 1131 | { | 1131 | { |
| 1132 | unsigned int size; | 1132 | unsigned int size; |
| 1133 | u8 *data; | 1133 | u8 *data; |
| @@ -2089,10 +2089,11 @@ void dev_set_promiscuity(struct net_device *dev, int inc) | |||
| 2089 | { | 2089 | { |
| 2090 | unsigned short old_flags = dev->flags; | 2090 | unsigned short old_flags = dev->flags; |
| 2091 | 2091 | ||
| 2092 | dev->flags |= IFF_PROMISC; | ||
| 2093 | if ((dev->promiscuity += inc) == 0) | 2092 | if ((dev->promiscuity += inc) == 0) |
| 2094 | dev->flags &= ~IFF_PROMISC; | 2093 | dev->flags &= ~IFF_PROMISC; |
| 2095 | if (dev->flags ^ old_flags) { | 2094 | else |
| 2095 | dev->flags |= IFF_PROMISC; | ||
| 2096 | if (dev->flags != old_flags) { | ||
| 2096 | dev_mc_upload(dev); | 2097 | dev_mc_upload(dev); |
| 2097 | printk(KERN_INFO "device %s %s promiscuous mode\n", | 2098 | printk(KERN_INFO "device %s %s promiscuous mode\n", |
| 2098 | dev->name, (dev->flags & IFF_PROMISC) ? "entered" : | 2099 | dev->name, (dev->flags & IFF_PROMISC) ? "entered" : |
