Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit eebfc605 authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman
Browse files

Staging: bcm: fix up network device reference counting



The way network devices are reference counted does not include poking
around in the reference count itself.  This breaks when the reference
count is changed to be a different type.  Fix the driver to do the
proper function calls instead.

Cc: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent bceadddd
Loading
Loading
Loading
Loading
+4 −6
Original line number Diff line number Diff line
@@ -22,17 +22,15 @@ static INT bcm_notify_event(struct notifier_block *nb, ULONG event, PVOID dev)
			case NETDEV_REGISTER:
				 /* Increment the Reference Count for "veth0" */
				 BCM_DEBUG_PRINT(Adapter,DBG_TYPE_INITEXIT, DRV_ENTRY, DBG_LVL_ALL, "Register RefCount: %x\n",
									atomic_read(&ndev->refcnt));
				 atomic_inc(&ndev->refcnt);
									netdev_refcnt_read(ndev));
				 dev_hold(ndev);
				 break;

			case NETDEV_UNREGISTER:
				 /* Decrement the Reference Count for "veth0" */
				BCM_DEBUG_PRINT(Adapter,DBG_TYPE_INITEXIT, DRV_ENTRY, DBG_LVL_ALL, "Unregister RefCnt: %x\n",
									atomic_read(&ndev->refcnt));
				atomic_dec(&ndev->refcnt);
				if((int)atomic_read(&ndev->refcnt) < 0)
					atomic_set(&ndev->refcnt, 0);
									netdev_refcnt_read(ndev));
				dev_put(ndev);
				break;
		};
	}