1. 22 Sep, 2016 5 commits
  2. 21 Sep, 2016 10 commits
  3. 20 Sep, 2016 7 commits
  4. 19 Sep, 2016 3 commits
  5. 17 Sep, 2016 8 commits
  6. 16 Sep, 2016 7 commits
    • David S. Miller's avatar
      Merge branch 'qeth-fixes' · 4253ef8f
      David S. Miller authored
      Ursula Braun says:
      
      ====================
      390: qeth patches
      
      here are several fixes for the s390 qeth driver, built for net.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      4253ef8f
    • Thomas Richter's avatar
      s390/qeth: fix setting VIPA address · 732a59cb
      Thomas Richter authored
      commit 5f78e29c ("qeth: optimize IP handling in rx_mode callback")
      restructured the internal address handling.
      This work broke setting a virtual IP address.
      The command
      echo 10.1.1.1 > /sys/bus/ccwgroup/devices/<device>/vipa/add4
      fails with file exist error even if the IP address has not
      been set before.
      
      It turned out that the search result for the IP address
      search is handled incorrectly in the VIPA case.
      
      This patch fixes the setting of an virtual IP address.
      Signed-off-by: default avatarThomas Richter <tmricht@linux.vnet.ibm.com>
      Signed-off-by: default avatarUrsula Braun <ubraun@linux.vnet.ibm.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      732a59cb
    • Ursula Braun's avatar
      qeth: do not turn on SG per default · 5722963a
      Ursula Braun authored
      According to recent performance measurements, turning on net_device
      feature NETIF_F_SG only behaves well, but turning on feature
      NETIF_F_GSO shows bad results. Since the kernel activates NETIF_F_GSO
      automatically as soon as the driver configures feature NETIF_F_SG, qeth
      should not activate feature NETIF_F_SG per default, until the qeth
      problems with NETIF_F_GSO are solved.
      Signed-off-by: default avatarUrsula Braun <ubraun@linux.vnet.ibm.com>
      Reviewed-by: default avatarThomas Richter <tmricht@linux.vnet.ibm.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5722963a
    • Ursula Braun's avatar
      qeth: do not limit number of gso segments · 243f750f
      Ursula Braun authored
      To reduce the need of skb_linearize() calls, gso_max_segs of qeth
      net_devices had been limited according to the maximum number of qdio SBAL
      elements. But a gso segment cannot be larger than the mtu-size, while an
      SBAL element can contain up to 4096 bytes. The gso_max_segs limitation
      limits the maximum packet size given to the qeth driver. Performance
      measurements with tso-enabled qeth network interfaces and mtu-size 1500
      showed, that the disadvantage of smaller packets is much more severe than
      the advantage of fewer skb_linearize() calls.
      This patch gets rid of the gso_max_segs limitations in the qeth driver.
      Signed-off-by: default avatarUrsula Braun <ubraun@linux.vnet.ibm.com>
      Reviewed-by: default avatarThomas Richter <tmricht@linux.vnet.ibm.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      243f750f
    • Ursula Braun's avatar
      qeth: check not more than 16 SBALEs on the completion queue · 903e4853
      Ursula Braun authored
      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: default avatarUrsula Braun <ubraun@linux.vnet.ibm.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      903e4853
    • Ursula Braun's avatar
      s390/qeth: allow hsuid configuration in DOWN state · a7531c1c
      Ursula Braun authored
      The qeth IP address mapping logic has been reworked recently. It
      causes now problems to specify qeth sysfs attribute "hsuid" in DOWN
      state, which is allowed. Postpone registering or deregistering of
      IP-addresses in this case.
      Signed-off-by: default avatarUrsula Braun <ubraun@linux.vnet.ibm.com>
      Reviewed-by: default avatarThomas Richter <tmricht@linux.vnet.ibm.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a7531c1c
    • Ursula Braun's avatar
      s390/qeth: use ip_lock for hsuid configuration · 016930b8
      Ursula Braun authored
      qeth_l3_dev_hsuid_store() changes the ip hash table, which
      requires the ip_lock.
      Signed-off-by: default avatarUrsula Braun <ubraun@linux.vnet.ibm.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      016930b8