can: omit received RTR frames for single ID filter lists
authorOliver Hartkopp <oliver@hartkopp.net>
Thu, 4 Dec 2008 23:01:08 +0000 (15:01 -0800)
committerDavid S. Miller <davem@davemloft.net>
Thu, 4 Dec 2008 23:01:08 +0000 (15:01 -0800)
Since commit d253eee20195b25e298bf162a6e72f14bf4803e5 the single CAN
identifier filter lists handle only non-RTR CAN frames.

So we need to omit the check of these filter lists when receiving RTR
CAN frames.

Signed-off-by: Oliver Hartkopp <oliver@hartkopp.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/can/af_can.c

index d8173e50cb87c1d49b2d8ae31f8857f8724a2080..3dadb338addd3ab36212333281ab377362a7e56f 100644 (file)
@@ -622,7 +622,10 @@ static int can_rcv_filter(struct dev_rcv_lists *d, struct sk_buff *skb)
                }
        }
 
-       /* check CAN_ID specific entries */
+       /* check filterlists for single non-RTR can_ids */
+       if (can_id & CAN_RTR_FLAG)
+               return matches;
+
        if (can_id & CAN_EFF_FLAG) {
                hlist_for_each_entry_rcu(r, n, &d->rx[RX_EFF], list) {
                        if (r->can_id == can_id) {