diff options
Diffstat (limited to 'drivers/net/ieee802154')
| -rw-r--r-- | drivers/net/ieee802154/adf7242.c | 4 | ||||
| -rw-r--r-- | drivers/net/ieee802154/mac802154_hwsim.c | 33 | ||||
| -rw-r--r-- | drivers/net/ieee802154/mcr20a.c | 6 | 
3 files changed, 25 insertions, 18 deletions
| diff --git a/drivers/net/ieee802154/adf7242.c b/drivers/net/ieee802154/adf7242.c index cd1d8faccca5..cd6b95e673a5 100644 --- a/drivers/net/ieee802154/adf7242.c +++ b/drivers/net/ieee802154/adf7242.c @@ -1268,6 +1268,10 @@ static int adf7242_probe(struct spi_device *spi)  	INIT_DELAYED_WORK(&lp->work, adf7242_rx_cal_work);  	lp->wqueue = alloc_ordered_workqueue(dev_name(&spi->dev),  					     WQ_MEM_RECLAIM); +	if (unlikely(!lp->wqueue)) { +		ret = -ENOMEM; +		goto err_hw_init; +	}  	ret = adf7242_hw_init(lp);  	if (ret) diff --git a/drivers/net/ieee802154/mac802154_hwsim.c b/drivers/net/ieee802154/mac802154_hwsim.c index b6743f03dce0..b187ae1a6bd6 100644 --- a/drivers/net/ieee802154/mac802154_hwsim.c +++ b/drivers/net/ieee802154/mac802154_hwsim.c @@ -227,14 +227,16 @@ static int append_radio_msg(struct sk_buff *skb, struct hwsim_phy *phy)  		return 0;  	} -	nl_edges = nla_nest_start(skb, MAC802154_HWSIM_ATTR_RADIO_EDGES); +	nl_edges = nla_nest_start_noflag(skb, +					 MAC802154_HWSIM_ATTR_RADIO_EDGES);  	if (!nl_edges) {  		rcu_read_unlock();  		return -ENOBUFS;  	}  	list_for_each_entry_rcu(e, &phy->edges, list) { -		nl_edge = nla_nest_start(skb, MAC802154_HWSIM_ATTR_RADIO_EDGE); +		nl_edge = nla_nest_start_noflag(skb, +						MAC802154_HWSIM_ATTR_RADIO_EDGE);  		if (!nl_edge) {  			rcu_read_unlock();  			nla_nest_cancel(skb, nl_edges); @@ -324,7 +326,7 @@ static int hwsim_get_radio_nl(struct sk_buff *msg, struct genl_info *info)  			goto out_err;  		} -		genlmsg_reply(skb, info); +		res = genlmsg_reply(skb, info);  		break;  	} @@ -428,9 +430,7 @@ static int hwsim_new_edge_nl(struct sk_buff *msg, struct genl_info *info)  	    !info->attrs[MAC802154_HWSIM_ATTR_RADIO_EDGE])  		return -EINVAL; -	if (nla_parse_nested(edge_attrs, MAC802154_HWSIM_EDGE_ATTR_MAX, -			     info->attrs[MAC802154_HWSIM_ATTR_RADIO_EDGE], -			     hwsim_edge_policy, NULL)) +	if (nla_parse_nested_deprecated(edge_attrs, MAC802154_HWSIM_EDGE_ATTR_MAX, info->attrs[MAC802154_HWSIM_ATTR_RADIO_EDGE], hwsim_edge_policy, NULL))  		return -EINVAL;  	if (!edge_attrs[MAC802154_HWSIM_EDGE_ATTR_ENDPOINT_ID]) @@ -492,9 +492,7 @@ static int hwsim_del_edge_nl(struct sk_buff *msg, struct genl_info *info)  	    !info->attrs[MAC802154_HWSIM_ATTR_RADIO_EDGE])  		return -EINVAL; -	if (nla_parse_nested(edge_attrs, MAC802154_HWSIM_EDGE_ATTR_MAX, -			     info->attrs[MAC802154_HWSIM_ATTR_RADIO_EDGE], -			     hwsim_edge_policy, NULL)) +	if (nla_parse_nested_deprecated(edge_attrs, MAC802154_HWSIM_EDGE_ATTR_MAX, info->attrs[MAC802154_HWSIM_ATTR_RADIO_EDGE], hwsim_edge_policy, NULL))  		return -EINVAL;  	if (!edge_attrs[MAC802154_HWSIM_EDGE_ATTR_ENDPOINT_ID]) @@ -542,9 +540,7 @@ static int hwsim_set_edge_lqi(struct sk_buff *msg, struct genl_info *info)  	    !info->attrs[MAC802154_HWSIM_ATTR_RADIO_EDGE])  		return -EINVAL; -	if (nla_parse_nested(edge_attrs, MAC802154_HWSIM_EDGE_ATTR_MAX, -			     info->attrs[MAC802154_HWSIM_ATTR_RADIO_EDGE], -			     hwsim_edge_policy, NULL)) +	if (nla_parse_nested_deprecated(edge_attrs, MAC802154_HWSIM_EDGE_ATTR_MAX, info->attrs[MAC802154_HWSIM_ATTR_RADIO_EDGE], hwsim_edge_policy, NULL))  		return -EINVAL;  	if (!edge_attrs[MAC802154_HWSIM_EDGE_ATTR_ENDPOINT_ID] && @@ -598,37 +594,37 @@ static const struct nla_policy hwsim_genl_policy[MAC802154_HWSIM_ATTR_MAX + 1] =  static const struct genl_ops hwsim_nl_ops[] = {  	{  		.cmd = MAC802154_HWSIM_CMD_NEW_RADIO, -		.policy = hwsim_genl_policy, +		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,  		.doit = hwsim_new_radio_nl,  		.flags = GENL_UNS_ADMIN_PERM,  	},  	{  		.cmd = MAC802154_HWSIM_CMD_DEL_RADIO, -		.policy = hwsim_genl_policy, +		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,  		.doit = hwsim_del_radio_nl,  		.flags = GENL_UNS_ADMIN_PERM,  	},  	{  		.cmd = MAC802154_HWSIM_CMD_GET_RADIO, -		.policy = hwsim_genl_policy, +		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,  		.doit = hwsim_get_radio_nl,  		.dumpit = hwsim_dump_radio_nl,  	},  	{  		.cmd = MAC802154_HWSIM_CMD_NEW_EDGE, -		.policy = hwsim_genl_policy, +		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,  		.doit = hwsim_new_edge_nl,  		.flags = GENL_UNS_ADMIN_PERM,  	},  	{  		.cmd = MAC802154_HWSIM_CMD_DEL_EDGE, -		.policy = hwsim_genl_policy, +		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,  		.doit = hwsim_del_edge_nl,  		.flags = GENL_UNS_ADMIN_PERM,  	},  	{  		.cmd = MAC802154_HWSIM_CMD_SET_EDGE, -		.policy = hwsim_genl_policy, +		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,  		.doit = hwsim_set_edge_lqi,  		.flags = GENL_UNS_ADMIN_PERM,  	}, @@ -638,6 +634,7 @@ static struct genl_family hwsim_genl_family __ro_after_init = {  	.name = "MAC802154_HWSIM",  	.version = 1,  	.maxattr = MAC802154_HWSIM_ATTR_MAX, +	.policy = hwsim_genl_policy,  	.module = THIS_MODULE,  	.ops = hwsim_nl_ops,  	.n_ops = ARRAY_SIZE(hwsim_nl_ops), diff --git a/drivers/net/ieee802154/mcr20a.c b/drivers/net/ieee802154/mcr20a.c index c589f5ae75bb..8bb53ec8d9cf 100644 --- a/drivers/net/ieee802154/mcr20a.c +++ b/drivers/net/ieee802154/mcr20a.c @@ -533,6 +533,8 @@ mcr20a_start(struct ieee802154_hw *hw)  	dev_dbg(printdev(lp), "no slotted operation\n");  	ret = regmap_update_bits(lp->regmap_dar, DAR_PHY_CTRL1,  				 DAR_PHY_CTRL1_SLOTTED, 0x0); +	if (ret < 0) +		return ret;  	/* enable irq */  	enable_irq(lp->spi->irq); @@ -540,11 +542,15 @@ mcr20a_start(struct ieee802154_hw *hw)  	/* Unmask SEQ interrupt */  	ret = regmap_update_bits(lp->regmap_dar, DAR_PHY_CTRL2,  				 DAR_PHY_CTRL2_SEQMSK, 0x0); +	if (ret < 0) +		return ret;  	/* Start the RX sequence */  	dev_dbg(printdev(lp), "start the RX sequence\n");  	ret = regmap_update_bits(lp->regmap_dar, DAR_PHY_CTRL1,  				 DAR_PHY_CTRL1_XCVSEQ_MASK, MCR20A_XCVSEQ_RX); +	if (ret < 0) +		return ret;  	return 0;  } |