Skip to content

Commit

Permalink
caif-hsi: HSI Fix uninitialized data in HSI header
Browse files Browse the repository at this point in the history
CAIF HSI header may be uninitialized and cause last message to
be repeated if transmit size is ~86 bytes long.

Signed-off-by: Sjur Brændeland <sjur.brandeland@stericsson.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
sjur.brandeland@stericsson.com authored and David S. Miller committed Oct 19, 2011
1 parent 9e903e0 commit 94230fe
Showing 1 changed file with 6 additions and 6 deletions.
12 changes: 6 additions & 6 deletions drivers/net/caif/caif_hsi.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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);
Expand Down Expand 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) {
Expand Down

0 comments on commit 94230fe

Please sign in to comment.