Subject: Re: [PATCH net-next 3/3 v5] drivers: net: ethernet: qualcomm: rmnet: Initial implementation

From: Stephen Hemminger <[email-masked]>
Date: Mon, 21 Aug 2017 21:08:53 -0700

> +void rmnet_vnd_setup(struct net_device *rmnet_dev)
> +{
> +	struct rmnet_priv *priv;
> +
> +	/* Clear out private data */
> +	priv = netdev_priv(rmnet_dev);
> +	memset(priv, 0, sizeof(struct rmnet_priv));

Netdev private area is always zero on creation. See alloc_netdev().

> +struct rmnet_endpoint *rmnet_vnd_get_endpoint(struct net_device *rmnet_dev)
> +{
> +	struct rmnet_priv *priv;
> +
> +	if (!rmnet_dev)
> +		return 0;

Do not confuse 0 with NULL. Did you run sparse?

> +
> +	priv = netdev_priv(rmnet_dev);
> +	if (!priv)
> +		return 0;

netdev_priv() always returns a non-NULL value.  The private area is just
a constant offset below the original network_device structure.