Subject: Re: v3 [PATCH net-next 4/7] ipv6: Check return of dev_set_allmulti

From: Wang Chen <[email-masked]>
Date: Mon, 07 Jul 2008 21:17:52 +0800

Patrick McHardy said the following on 2008-7-7 19:20:
> Wang Chen wrote:
>> allmulti might overflow.
>> Commit: "netdevice: Fix promiscuity and allmulti overflow" in net-next
>> makes
>> dev_set_promiscuity/allmulti return error number if overflow happened.
>>
>> Here, we check the positive increment for allmulti to get error return.
>>
>> @@ -627,13 +633,14 @@ static int mif6_add(struct mif6ctl *vifc, int
>> mrtsock)
>>          if (!dev)
>>              return -EADDRNOTAVAIL;
>>          dev_put(dev);
>> +        err = dev_set_allmulti(dev, 1);
>> +        if (err)
>> +            return err;
> 
> The use of dev after putting it looks wrong, but thats already
> present before your patch. So ACK for your patch, but we need
> a fix on top.
> 

Wait a moment :)
---
	case 0:
		dev = dev_get_by_index(&init_net, vifc->mif6c_pifi);
		if (!dev)
			return -EADDRNOTAVAIL;
		dev_put(dev);
---
dev_get_by_index() holds the dev, so I think dev_put() just for hold/put
balance.