• Petr Oros's avatar
    Revert "be2net: disable bh with spin_lock in be_process_mcc" · d6765985
    Petr Oros authored
    Patch was based on wrong presumption that be_poll can be called only
    from bh context. It reintroducing old regression (also reverted) and
    causing deadlock when we use netconsole with benet in bonding.
    
    Old revert: commit 072a9c48 ("netpoll: revert 6bdb7fe3 and fix
    be_poll() instead")
    
    [  331.269715] bond0: (slave enp0s7f0): Releasing backup interface
    [  331.270121] CPU: 4 PID: 1479 Comm: ifenslave Not tainted 5.13.0-rc7+ #2
    [  331.270122] Call Trace:
    [  331.270122] [c00000001789f200] [c0000000008c505c] dump_stack+0x100/0x174 (unreliable)
    [  331.270124] [c00000001789f240] [c008000001238b9c] be_poll+0x64/0xe90 [be2net]
    [  331.270125] [c00000001789f330] [c000000000d1e6e4] netpoll_poll_dev+0x174/0x3d0
    [  331.270127] [c00000001789f400] [c008000001bc167c] bond_poll_controller+0xb4/0x130 [bonding]
    [  331.270128] [c00000001789f450] [c000000000d1e624] netpoll_poll_dev+0xb4/0x3d0
    [  331.270129] [c00000001789f520] [c000000000d1ed88] netpoll_send_skb+0x448/0x470
    [  331.270130] [c00000001789f5d0] [c0080000011f14f8] write_msg+0x180/0x1b0 [netconsole]
    [  331.270131] [c00000001789f640] [c000000000230c0c] console_unlock+0x54c/0x790
    [  331.270132] [c00000001789f7b0] [c000000000233098] vprintk_emit+0x2d8/0x450
    [  331.270133] [c00000001789f810] [c000000000234758] vprintk+0xc8/0x270
    [  331.270134] [c00000001789f850] [c000000000233c28] printk+0x40/0x54
    [  331.270135] [c00000001789f870] [c000000000ccf908] __netdev_printk+0x150/0x198
    [  331.270136] [c00000001789f910] [c000000000ccfdb4] netdev_info+0x68/0x94
    [  331.270137] [c00000001789f950] [c008000001bcbd70] __bond_release_one+0x188/0x6b0 [bonding]
    [  331.270138] [c00000001789faa0] [c008000001bcc6f4] bond_do_ioctl+0x42c/0x490 [bonding]
    [  331.270139] [c00000001789fb60] [c000000000d0d17c] dev_ifsioc+0x17c/0x400
    [  331.270140] [c00000001789fbc0] [c000000000d0db70] dev_ioctl+0x390/0x890
    [  331.270141] [c00000001789fc10] [c000000000c7c76c] sock_do_ioctl+0xac/0x1b0
    [  331.270142] [c00000001789fc90] [c000000000c7ffac] sock_ioctl+0x31c/0x6e0
    [  331.270143] [c00000001789fd60] [c0000000005b9728] sys_ioctl+0xf8/0x150
    [  331.270145] [c00000001789fdb0] [c0000000000336c0] system_call_exception+0x160/0x2f0
    [  331.270146] [c00000001789fe10] [c00000000000d35c] system_call_common+0xec/0x278
    [  331.270147] --- interrupt: c00 at 0x7fffa6c6ec00
    [  331.270147] NIP:  00007fffa6c6ec00 LR: 0000000105c4185c CTR: 0000000000000000
    [  331.270148] REGS: c00000001789fe80 TRAP: 0c00   Not tainted  (5.13.0-rc7+)
    [  331.270148] MSR:  800000000280f033 <SF,VEC,VSX,EE,PR,FP,ME,IR,DR,RI,LE>  CR: 28000428  XER: 00000000
    [  331.270155] IRQMASK: 0
    [  331.270156] GPR00: 0000000000000036 00007fffd494d5b0 00007fffa6d57100 0000000000000003
    [  331.270158] GPR04: 0000000000008991 00007fffd494d6d0 0000000000000008 00007fffd494f28c
    [  331.270161] GPR08: 0000000000000003 0000000000000000 0000000000000000 0000000000000000
    [  331.270164] GPR12: 0000000000000000 00007fffa6dfa220 0000000000000000 0000000000000000
    [  331.270167] GPR16: 0000000105c44880 0000000000000000 0000000105c60088 0000000105c60318
    [  331.270170] GPR20: 0000000105c602c0 0000000105c44560 0000000000000000 0000000000000000
    [  331.270172] GPR24: 00007fffd494dc50 00007fffd494d6a8 0000000105c60008 00007fffd494d6d0
    [  331.270175] GPR28: 00007fffd494f27e 0000000105c6026c 00007fffd494f284 0000000000000000
    [  331.270178] NIP [00007fffa6c6ec00] 0x7fffa6c6ec00
    [  331.270178] LR [0000000105c4185c] 0x105c4185c
    [  331.270179] --- interrupt: c00
    
    This reverts commit d0d006a4.
    
    Fixes: d0d006a4 ("be2net: disable bh with spin_lock in be_process_mcc")
    Signed-off-by: default avatarPetr Oros <poros@redhat.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    d6765985
be_main.c 161 KB