summaryrefslogtreecommitdiff
path: root/drivers/atm/idt77252.c
diff options
context:
space:
mode:
authorTong Zhang <ztong0001@gmail.com>2021-02-14 18:43:08 -0500
committerDavid S. Miller <davem@davemloft.net>2021-02-15 12:36:27 -0800
commitd0a0bbe7b0a181c58bd22d6942146cfa3ab9e49a (patch)
treeddcbbfc6090784341324c4cb60ba618360f95208 /drivers/atm/idt77252.c
parent57baf8cc70ea4cf5503c9d42f31f6a86d7f5ff1a (diff)
atm: idt77252: fix build broken on amd64
idt77252 is broken and wont load on amd64 systems modprobe idt77252 shows the following idt77252_init: skb->cb is too small (48 < 56) Add packed attribute to struct idt77252_skb_prv and struct atm_skb_data so that the total size can be <= sizeof(skb->cb) Also convert runtime size check to buildtime size check in idt77252_init() Signed-off-by: Tong Zhang <ztong0001@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/atm/idt77252.c')
-rw-r--r--drivers/atm/idt77252.c11
1 files changed, 1 insertions, 10 deletions
diff --git a/drivers/atm/idt77252.c b/drivers/atm/idt77252.c
index 5f0472c18bcb..0c13cac903de 100644
--- a/drivers/atm/idt77252.c
+++ b/drivers/atm/idt77252.c
@@ -3743,16 +3743,7 @@ static int __init idt77252_init(void)
struct sk_buff *skb;
printk("%s: at %p\n", __func__, idt77252_init);
-
- if (sizeof(skb->cb) < sizeof(struct atm_skb_data) +
- sizeof(struct idt77252_skb_prv)) {
- printk(KERN_ERR "%s: skb->cb is too small (%lu < %lu)\n",
- __func__, (unsigned long) sizeof(skb->cb),
- (unsigned long) sizeof(struct atm_skb_data) +
- sizeof(struct idt77252_skb_prv));
- return -EIO;
- }
-
+ BUILD_BUG_ON(sizeof(skb->cb) < sizeof(struct idt77252_skb_prv) + sizeof(struct atm_skb_data));
return pci_register_driver(&idt77252_driver);
}