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

Commit 94230feb authored by sjur.brandeland@stericsson.com's avatar sjur.brandeland@stericsson.com Committed by David S. Miller
Browse files

caif-hsi: HSI Fix uninitialized data in HSI header



CAIF HSI header may be uninitialized and cause last message to
be repeated if transmit size is ~86 bytes long.

Signed-off-by: default avatarSjur Brændeland <sjur.brandeland@stericsson.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 9e903e08
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -178,6 +178,9 @@ static int cfhsi_tx_frm(struct cfhsi_desc *desc, struct cfhsi *cfhsi)
	if (!skb)
		return 0;

	/* Clear offset. */
	desc->offset = 0;

	/* Check if we can embed a CAIF frame. */
	if (skb->len < CFHSI_MAX_EMB_FRM_SZ) {
		struct caif_payload_info *info;
@@ -206,9 +209,7 @@ static int cfhsi_tx_frm(struct cfhsi_desc *desc, struct cfhsi *cfhsi)
			consume_skb(skb);
			skb = NULL;
		}
	} else
		/* Clear offset. */
		desc->offset = 0;
	}

	/* Create payload CAIF frames. */
	pfrm = desc->emb_frm + CFHSI_MAX_EMB_FRM_SZ;
@@ -990,6 +991,8 @@ int cfhsi_probe(struct platform_device *pdev)
	/* Set up the driver. */
	cfhsi->drv.tx_done_cb = cfhsi_tx_done_cb;
	cfhsi->drv.rx_done_cb = cfhsi_rx_done_cb;
	cfhsi->drv.wake_up_cb = cfhsi_wake_up_cb;
	cfhsi->drv.wake_down_cb = cfhsi_wake_down_cb;

	/* Initialize the work queues. */
	INIT_WORK(&cfhsi->wake_up_work, cfhsi_wake_up);
@@ -1045,9 +1048,6 @@ int cfhsi_probe(struct platform_device *pdev)
		goto err_net_reg;
	}

	cfhsi->drv.wake_up_cb = cfhsi_wake_up_cb;
	cfhsi->drv.wake_down_cb = cfhsi_wake_down_cb;

	/* Register network device. */
	res = register_netdev(ndev);
	if (res) {