Commit 3469660d authored by Wei Yongjun's avatar Wei Yongjun Committed by David S. Miller
Browse files

net: ethernet: ti: fix some return value check of cpsw_ale_create()



cpsw_ale_create() can return both NULL and PTR_ERR(), but all of
the caller only check NULL for error handling. This patch convert
it to only return PTR_ERR() in all error cases, and the caller using
IS_ERR() instead of NULL test.

Fixes: 4b41d343 ("net: ethernet: ti: cpsw: allow untagged traffic on host port")
Reported-by: default avatarHulk Robot <hulkci@huawei.com>
Signed-off-by: default avatarWei Yongjun <weiyongjun1@huawei.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent d28ea1fb
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -955,7 +955,7 @@ struct cpsw_ale *cpsw_ale_create(struct cpsw_ale_params *params)

	ale = devm_kzalloc(params->dev, sizeof(*ale), GFP_KERNEL);
	if (!ale)
		return NULL;
		return ERR_PTR(-ENOMEM);

	ale->p0_untag_vid_mask =
		devm_kmalloc_array(params->dev, BITS_TO_LONGS(VLAN_N_VID),
+2 −2
Original line number Diff line number Diff line
@@ -490,9 +490,9 @@ int cpsw_init_common(struct cpsw_common *cpsw, void __iomem *ss_regs,
	ale_params.ale_ports		= CPSW_ALE_PORTS_NUM;

	cpsw->ale = cpsw_ale_create(&ale_params);
	if (!cpsw->ale) {
	if (IS_ERR(cpsw->ale)) {
		dev_err(dev, "error initializing ale engine\n");
		return -ENODEV;
		return PTR_ERR(cpsw->ale);
	}

	dma_params.dev		= dev;
+2 −2
Original line number Diff line number Diff line
@@ -3704,9 +3704,9 @@ static int gbe_probe(struct netcp_device *netcp_device, struct device *dev,
		ale_params.nu_switch_ale = true;
	}
	gbe_dev->ale = cpsw_ale_create(&ale_params);
	if (!gbe_dev->ale) {
	if (IS_ERR(gbe_dev->ale)) {
		dev_err(gbe_dev->dev, "error initializing ale engine\n");
		ret = -ENODEV;
		ret = PTR_ERR(gbe_dev->ale);
		goto free_sec_ports;
	} else {
		dev_dbg(gbe_dev->dev, "Created a gbe ale engine\n");