summaryrefslogtreecommitdiff
path: root/drivers/net/sky2.c
diff options
context:
space:
mode:
authorWang Chen <wangchen@cn.fujitsu.com>2008-06-18 12:48:28 +0400
committerDavid S. Miller <davem@davemloft.net>2008-06-18 12:48:28 +0400
commitdad9b335c6940de2746a9788eb456d09cf102f81 (patch)
treec74092de70d7c2c9ba88bf580bc404133b55c490 /drivers/net/sky2.c
parentdd574dbfcc9e74e7dd8fd59ae0075d23e71a3da1 (diff)
downloadlinux-dad9b335c6940de2746a9788eb456d09cf102f81.tar.xz
netdevice: Fix promiscuity and allmulti overflow
Max of promiscuity and allmulti plus positive @inc can cause overflow. Fox example: when allmulti=0xFFFFFFFF, any caller give dev_set_allmulti() a positive @inc will cause allmulti be off. This is not what we want, though it's rare case. The fix is that only negative @inc will cause allmulti or promiscuity be off and when any caller makes the counters touch the roof, we return error. Change of v2: Change void function dev_set_promiscuity/allmulti to return int. So callers can get the overflow error. Caller's fix will be done later. Change of v3: 1. Since we return error to caller, we don't need to print KERN_ERROR, KERN_WARNING is enough. 2. In dev_set_promiscuity(), if __dev_set_promiscuity() failed, we return at once. Signed-off-by: Wang Chen <wangchen@cn.fujitsu.com> Acked-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/sky2.c')
0 files changed, 0 insertions, 0 deletions