summaryrefslogtreecommitdiff
path: root/drivers/net/can/c_can/c_can.h
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2014-03-18 17:19:12 +0000
committerMarc Kleine-Budde <mkl@pengutronix.de>2014-04-01 11:55:00 +0200
commitbf88a20611d5a62119a02da4eba95b461ec692c8 (patch)
treef1ee16ea5621c98799fdf17f5b102474a77b4e8e /drivers/net/can/c_can/c_can.h
parent710c56105dfd10e32a89086cf78cc1c8433f6a7a (diff)
can: c_can: Provide protection in the xmit path
The network core does not serialize the access to the hardware. The xmit related code lets the following happen: CPU0 CPU1 interrupt() do_poll() c_can_do_tx() Fiddle with HW and xmit() internal data Fiddle with HW and internal data due the complete lack of serialization. Add proper locking. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Diffstat (limited to 'drivers/net/can/c_can/c_can.h')
-rw-r--r--drivers/net/can/c_can/c_can.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/net/can/c_can/c_can.h b/drivers/net/can/c_can/c_can.h
index d2e1c21b143f..5097c802a61e 100644
--- a/drivers/net/can/c_can/c_can.h
+++ b/drivers/net/can/c_can/c_can.h
@@ -156,6 +156,7 @@ struct c_can_priv {
struct napi_struct napi;
struct net_device *dev;
struct device *device;
+ spinlock_t xmit_lock;
int tx_object;
int current_status;
int last_status;