1. 22 Sep, 2016 3 commits
  2. 21 Sep, 2016 9 commits
  3. 20 Sep, 2016 7 commits
  4. 19 Sep, 2016 3 commits
  5. 17 Sep, 2016 8 commits
  6. 16 Sep, 2016 10 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
    • Hans Wippel's avatar
      qeth: restore device features after recovery · e830baa9
      Hans Wippel authored
      After device recovery, only a basic set of network device features is
      enabled on the device. If features like checksum offloading or TSO were
      enabled by the user before the recovery, this results in a mismatch
      between the network device features, that the kernel assumes to be
      enabled on the device, and the features actually enabled on the device.
      
      This patch tries to restore previously set features, that require
      changes on the device, after the recovery of a device. In case of an
      error, the network device's features are changed to contain only the
      features that are actually turned on.
      Signed-off-by: default avatarHans Wippel <hwippel@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>
      e830baa9
    • Wei Yongjun's avatar
      nfp: fix error return code in nfp_net_netdev_open() · bc6c03fa
      Wei Yongjun authored
      Fix to return a negative error code from the error handling
      case instead of 0, as done elsewhere in this function.
      
      Fixes: 73725d9d ("nfp: allocate ring SW structs dynamically")
      Signed-off-by: default avatarWei Yongjun <weiyongjun1@huawei.com>
      Acked-by: default avatarJakub Kicinski <jakub.kicinski@netronome.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      bc6c03fa
    • Mark Tomlinson's avatar
      net: VRF: Pass original iif to ip_route_input() · d6f64d72
      Mark Tomlinson authored
      The function ip_rcv_finish() calls l3mdev_ip_rcv(). On any VRF except
      the global VRF, this replaces skb->dev with the VRF master interface.
      When calling ip_route_input_noref() from here, the checks for forwarding
      look at this master device instead of the initial ingress interface.
      This will allow packets to be routed which normally would be dropped.
      For example, an interface that is not assigned an IP address should
      drop packets, but because the checking is against the master device, the
      packet will be forwarded.
      
      The fix here is to still call l3mdev_ip_rcv(), but remember the initial
      net_device. This is passed to the other functions within ip_rcv_finish,
      so they still see the original interface.
      Signed-off-by: default avatarMark Tomlinson <mark.tomlinson@alliedtelesis.co.nz>
      Acked-by: default avatarDavid Ahern <dsa@cumulusnetworks.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d6f64d72