• Arnd Bergmann's avatar
    qed: avoid possible stack overflow in qed_ll2_acquire_connection · 0629a330
    Arnd Bergmann authored
    struct qed_ll2_info is rather large, so putting it on the stack
    can cause an overflow, as this warning tries to tell us:
    
    drivers/net/ethernet/qlogic/qed/qed_ll2.c: In function 'qed_ll2_start':
    drivers/net/ethernet/qlogic/qed/qed_ll2.c:2159:1: error: the frame size of 1056 bytes is larger than 1024 bytes [-Werror=frame-larger-than=]
    
    qed_ll2_start_ooo() already uses a dynamic allocation for the structure
    to work around that problem, and we could do the same in qed_ll2_start()
    as well as qed_roce_ll2_start(), but since the structure is only
    used to pass a couple of initialization values here, it seems nicer
    to replace it with a different structure.
    
    Lacking any idea for better naming, I'm adding 'struct qed_ll2_conn',
    which now contains all the initialization data, and this now simply
    gets copied into struct qed_ll2_info rather than assigning all members
    one by one.
    Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
    Acked-by: default avatarYuval Mintz <Yuval.Mintz@cavium.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    0629a330
qed_ll2.h 7.77 KB