diff options
author | Tong Zhang <ztong0001@gmail.com> | 2021-02-15 02:43:08 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2021-02-15 23:36:27 +0300 |
commit | d0a0bbe7b0a181c58bd22d6942146cfa3ab9e49a (patch) | |
tree | ddcbbfc6090784341324c4cb60ba618360f95208 /drivers/atm/idt77252.c | |
parent | 57baf8cc70ea4cf5503c9d42f31f6a86d7f5ff1a (diff) | |
download | linux-d0a0bbe7b0a181c58bd22d6942146cfa3ab9e49a.tar.xz |
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.c | 11 |
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); } |