]> rtime.felk.cvut.cz Git - lisovros/linux_canprio.git/commitdiff
Misusage of CAN_SFF_MASK is eliminated.
authorRostislav Lisovy <lisovy@gmail.com>
Wed, 7 Sep 2011 12:04:17 +0000 (14:04 +0200)
committerRostislav Lisovy <lisovy@gmail.com>
Wed, 7 Sep 2011 12:04:17 +0000 (14:04 +0200)
net/sched/cls_canprio.c

index 653d8a99dec886ad2ffa2536a7d9ee9a90a88f9e..09964e8991695e03f9271d2b08906cd7df957639 100644 (file)
 #include <linux/rcupdate.h>
 #include <linux/can.h>
 
+#ifndef CAN_SFF_ID_BITS
+  #define CAN_SFF_ID_BITS 11
+  #define CAN_EFF_ID_BITS 29
+#endif
+
 #define SFF_BITMAP     1
 #undef SFF_BITMAP
 
@@ -66,7 +71,7 @@ struct canprio_rules {
                                        (when 'tc filter show' is invoked) AND
                                        when matching EFF frames*/
 #ifdef SFF_BITMAP
-       DECLARE_BITMAP(match_sff, CAN_SFF_MASK + 1); /* For each SFF Can ID (11 bit) 
+       DECLARE_BITMAP(match_sff, (1 << CAN_SFF_ID_BITS)); /* For each SFF Can ID (11 bit) 
                                        there is one record in this bitfield */
 #endif
        int inv_match_en;               /* Inverted match flag */
@@ -108,7 +113,7 @@ static void canprio_sff_match_add(struct canprio_rules *rls, u32 can_id, u32 can
                return;
        }
        /* Add record (set bit to 1) for each ID that conforms particular rule */
-       for (i = 0; i <= CAN_SFF_MASK; i++) {
+       for (i = 0; i < (1 << CAN_SFF_ID_BITS); i++) {
                if ((i & can_mask) == can_id)
                        set_bit(i, rls->match_sff);
        }