From 32cb787a1ade2d7b4e2b3c1278e37164a88321e0 Mon Sep 17 00:00:00 2001 From: Oliver Hartkopp Date: Tue, 2 Feb 2010 07:21:34 -0800 Subject: [PATCH] --- yaml --- r: 183776 b: refs/heads/master c: 8b64056dacf6ec81986d63dff96fca039fe95f6e h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/net/can/af_can.c | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 7fdea9e15245..3d0aa04ba895 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 44298ec0f20c45b9be96e181976aef1152d373b2 +refs/heads/master: 8b64056dacf6ec81986d63dff96fca039fe95f6e diff --git a/trunk/net/can/af_can.c b/trunk/net/can/af_can.c index bc18b084ffdb..702be5a2c956 100644 --- a/trunk/net/can/af_can.c +++ b/trunk/net/can/af_can.c @@ -415,6 +415,9 @@ int can_rx_register(struct net_device *dev, canid_t can_id, canid_t mask, /* insert new receiver (dev,canid,mask) -> (func,data) */ + if (dev && dev->type != ARPHRD_CAN) + return -ENODEV; + r = kmem_cache_alloc(rcv_cache, GFP_KERNEL); if (!r) return -ENOMEM; @@ -478,6 +481,9 @@ void can_rx_unregister(struct net_device *dev, canid_t can_id, canid_t mask, struct hlist_node *next; struct dev_rcv_lists *d; + if (dev && dev->type != ARPHRD_CAN) + return; + spin_lock(&can_rcvlists_lock); d = find_dev_rcv_lists(dev);