can: Unify droping of invalid tx skbs and netdev stats
To prevent the CAN drivers to operate on invalid socketbuffers the skbs are now checked and silently dropped at the xmit-function consistently. Also the netdev stats are consistently using the CAN data length code (dlc) for [rx|tx]_bytes now. Signed-off-by: Oliver Hartkopp <oliver@hartkopp.net> Acked-by: Wolfgang Grandegger <wg@grandegger.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
d218d11133
commit
3ccd4c6167
9 changed files with 41 additions and 13 deletions
|
@ -477,6 +477,9 @@ static netdev_tx_t ti_hecc_xmit(struct sk_buff *skb, struct net_device *ndev)
|
|||
u32 mbxno, mbx_mask, data;
|
||||
unsigned long flags;
|
||||
|
||||
if (can_dropped_invalid_skb(ndev, skb))
|
||||
return NETDEV_TX_OK;
|
||||
|
||||
mbxno = get_tx_head_mb(priv);
|
||||
mbx_mask = BIT(mbxno);
|
||||
spin_lock_irqsave(&priv->mbx_lock, flags);
|
||||
|
@ -491,7 +494,6 @@ static netdev_tx_t ti_hecc_xmit(struct sk_buff *skb, struct net_device *ndev)
|
|||
spin_unlock_irqrestore(&priv->mbx_lock, flags);
|
||||
|
||||
/* Prepare mailbox for transmission */
|
||||
data = min_t(u8, cf->can_dlc, 8);
|
||||
if (cf->can_id & CAN_RTR_FLAG) /* Remote transmission request */
|
||||
data |= HECC_CANMCF_RTR;
|
||||
data |= get_tx_head_prio(priv) << 8;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue