kernel-fxtec-pro1x/drivers/s390/net
Ursula Braun 903e48531e qeth: check not more than 16 SBALEs on the completion queue
af_iucv socket programs with HiperSockets as transport make use of the qdio
completion queue. Running such an af_iucv socket program may result in a
crash:

[90341.677709] Oops: 0038 ilc:2 [#1] SMP
[90341.677743] CPU: 1 PID: 0 Comm: swapper/1 Not tainted 4.6.0-20160720.0.0e86ec7.5e62689.fc23.s390xperformance #1
[90341.677744] Hardware name: IBM              2964 N96              703              (LPAR)
[90341.677746] task: 00000000edb79f00 ti: 00000000edb84000 task.ti: 00000000edb84000
[90341.677748] Krnl PSW : 0704d00180000000 000000000075bc50 (qeth_qdio_input_handler+0x258/0x4e0)
[90341.677756]            R:0 T:1 IO:1 EX:1 Key:0 M:1 W:0 P:0 AS:3 CC:1 PM:0 RI:0 EA:3
Krnl GPRS: 000003d10391e900 0000000000000001 00000000e61e6000 0000000000000005
[90341.677759]            0000000000a9e6ec 5420040001a77400 0000000000000001 000000000000006f
[90341.677761]            00000000e0d83f00 0000000000000003 0000000000000010 5420040001a77400
[90341.677784]            000000007ba8b000 0000000000943fd0 000000000075bc4e 00000000ed3b3c10
[90341.677793] Krnl Code: 000000000075bc42: e320cc180004        lg      %r2,3096(%r12)
           000000000075bc48: c0e5ffffc5cc       brasl   %r14,7547e0
          #000000000075bc4e: 1816               lr      %r1,%r6
          >000000000075bc50: ba19b008           cs      %r1,%r9,8(%r11)
           000000000075bc54: ec180041017e       cij     %r1,1,8,75bcd6
           000000000075bc5a: 5810b008           l       %r1,8(%r11)
           000000000075bc5e: ec16005c027e       cij     %r1,2,6,75bd16
           000000000075bc64: 5090b008           st      %r9,8(%r11)
[90341.677807] Call Trace:
[90341.677810] ([<000000000075bbc0>] qeth_qdio_input_handler+0x1c8/0x4e0)
[90341.677812] ([<000000000070efbc>] qdio_kick_handler+0x124/0x2a8)
[90341.677814] ([<0000000000713570>] __tiqdio_inbound_processing+0xf0/0xcd0)
[90341.677818] ([<0000000000143312>] tasklet_action+0x92/0x120)
[90341.677823] ([<00000000008b6e72>] __do_softirq+0x112/0x308)
[90341.677824] ([<0000000000142bce>] irq_exit+0xd6/0xf8)
[90341.677829] ([<000000000010b1d2>] do_IRQ+0x6a/0x88)
[90341.677830] ([<00000000008b6322>] io_int_handler+0x112/0x220)
[90341.677832] ([<0000000000102b2e>] enabled_wait+0x56/0xa8)
[90341.677833] ([<0000000000000000>]           (null))
[90341.677835] ([<0000000000102e32>] arch_cpu_idle+0x32/0x48)
[90341.677838] ([<000000000018a126>] cpu_startup_entry+0x266/0x2b0)
[90341.677841] ([<0000000000113b38>] smp_start_secondary+0x100/0x110)
[90341.677843] ([<00000000008b68a6>] restart_int_handler+0x62/0x78)
[90341.677845] ([<00000000008b6588>] psw_idle+0x3c/0x40)
[90341.677846] Last Breaking-Event-Address:
[90341.677848]  [<00000000007547ec>] qeth_dbf_longtext+0xc/0xc0
[90341.677849]
[90341.677850] Kernel panic - not syncing: Fatal exception in interrupt

qeth_qdio_cq_handler() analyzes SBALs on this completion queue, but does
not observe the limit of 16 SBAL elements per SBAL. This patch adds the
additional check to process not more than 16 SBAL elements.

Signed-off-by: Ursula Braun <ubraun@linux.vnet.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2016-09-16 04:29:13 -04:00
..
ctcm_dbug.c
ctcm_dbug.h
ctcm_fsms.c s390/ctcm, netiucv: migrate variables to handle y2038 problem 2015-01-17 23:54:59 -05:00
ctcm_fsms.h
ctcm_main.c treewide: replace dev->trans_start update with helper 2016-05-04 14:16:49 -04:00
ctcm_main.h s390/ctcm, netiucv: migrate variables to handle y2038 problem 2015-01-17 23:54:59 -05:00
ctcm_mpc.c treewide: replace dev->trans_start update with helper 2016-05-04 14:16:49 -04:00
ctcm_mpc.h
ctcm_sysfs.c s390/ctcm, netiucv: migrate variables to handle y2038 problem 2015-01-17 23:54:59 -05:00
fsm.c
fsm.h
Kconfig s390: remove claw driver 2015-02-28 23:38:29 -05:00
lcs.c s390: Use pr_warn instead of pr_warning 2016-03-07 13:12:04 +01:00
lcs.h
Makefile s390: remove claw driver 2015-02-28 23:38:29 -05:00
netiucv.c treewide: replace dev->trans_start update with helper 2016-05-04 14:16:49 -04:00
qeth_core.h qeth: restore device features after recovery 2016-09-16 04:29:13 -04:00
qeth_core_main.c qeth: check not more than 16 SBALEs on the completion queue 2016-09-16 04:29:13 -04:00
qeth_core_mpc.c qeth: OSA version of SETBRIDGEPORT command 2015-05-18 12:14:17 -04:00
qeth_core_mpc.h qeth: OSA version of SETBRIDGEPORT command 2015-05-18 12:14:17 -04:00
qeth_core_sys.c qeth: omit outbound queue 3 for unicast packets in Priority Queuing on HiperSockets 2016-06-16 22:16:13 -07:00
qeth_l2.h qeth: optimize IP handling in rx_mode callback 2016-06-16 22:16:12 -07:00
qeth_l2_main.c qeth: restore device features after recovery 2016-09-16 04:29:13 -04:00
qeth_l2_sys.c qeth: no write permission for readonly sysattr 2015-09-21 16:03:04 -07:00
qeth_l3.h qeth: optimize IP handling in rx_mode callback 2016-06-16 22:16:12 -07:00
qeth_l3_main.c s390/qeth: allow hsuid configuration in DOWN state 2016-09-16 04:29:13 -04:00
qeth_l3_sys.c s390/qeth: use ip_lock for hsuid configuration 2016-09-16 04:29:13 -04:00
smsgiucv.c s390/iucv: do not use arrays as argument 2015-09-21 16:03:04 -07:00
smsgiucv.h
smsgiucv_app.c