1. 16 Sep, 2016 7 commits
    • 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
  2. 11 Aug, 2016 1 commit
    • Stefan Haberland's avatar
      s390/dasd: fix failing CUIR assignment under LPAR · af775210
      Stefan Haberland authored
      On LPAR the read message buffer command should be executed on the path
      it was received on otherwise there is a chance that the CUIR assignment
      might be faulty and the wrong channel path is set online/offline.
      
      Fix by setting the path mask accordingly.
      On z/VM we might not be able to do I/O on this path but there it does
      not matter on which path the read message buffer command is executed.
      Therefor implement a retry with an open path mask.
      Signed-off-by: default avatarStefan Haberland <sth@linux.vnet.ibm.com>
      af775210
  3. 10 Aug, 2016 1 commit
  4. 09 Aug, 2016 2 commits
  5. 08 Aug, 2016 7 commits
  6. 31 Jul, 2016 4 commits
  7. 20 Jul, 2016 1 commit
  8. 18 Jul, 2016 1 commit
    • Bhaktipriya Shridhar's avatar
      s390/cio/chp : Remove deprecated create_singlethread_workqueue · 7b1058bc
      Bhaktipriya Shridhar authored
      The workqueue "chp_wq" is involved in performing pending
      configure tasks for channel paths.
      
      It has a single work item(&cfg_work) and hence doesn't require
      ordering. Also, it is not being used on a memory reclaim path.
      Hence, the singlethreaded workqueue has been replaced with the use of
      system_wq.
      
      System workqueues have been able to handle high level of concurrency
      for a long time now and hence it's not required to have a singlethreaded
      workqueue just to gain concurrency. Unlike a dedicated per-cpu workqueue
      created with create_singlethread_workqueue(), system_wq allows multiple
      work items to overlap executions even on the same CPU; however, a
      per-cpu workqueue doesn't have any CPU locality or global ordering
      guarantee unless the target CPU is explicitly specified and thus the
      increase of local concurrency shouldn't make any difference.
      Signed-off-by: default avatarBhaktipriya Shridhar <bhaktipriya96@gmail.com>
      Signed-off-by: default avatarSebastian Ott <sebott@linux.vnet.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      7b1058bc
  9. 15 Jul, 2016 5 commits
  10. 14 Jul, 2016 1 commit
  11. 13 Jul, 2016 1 commit
  12. 12 Jul, 2016 1 commit
    • Dan Williams's avatar
      pmem: kill __pmem address space · 7a9eb206
      Dan Williams authored
      The __pmem address space was meant to annotate codepaths that touch
      persistent memory and need to coordinate a call to wmb_pmem().  Now that
      wmb_pmem() is gone, there is little need to keep this annotation.
      
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Ross Zwisler <ross.zwisler@linux.intel.com>
      Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
      7a9eb206
  13. 05 Jul, 2016 1 commit
  14. 28 Jun, 2016 3 commits
  15. 27 Jun, 2016 1 commit
    • Dan Williams's avatar
      block: convert to device_add_disk() · 0d52c756
      Dan Williams authored
      For block drivers that specify a parent device, convert them to use
      device_add_disk().
      
      This conversion was done with the following semantic patch:
      
          @@
          struct gendisk *disk;
          expression E;
          @@
      
          - disk->driverfs_dev = E;
          ...
          - add_disk(disk);
          + device_add_disk(E, disk);
      
          @@
          struct gendisk *disk;
          expression E1, E2;
          @@
      
          - disk->driverfs_dev = E1;
          ...
          E2 = disk;
          ...
          - add_disk(E2);
          + device_add_disk(E1, E2);
      
      ...plus some manual fixups for a few missed conversions.
      
      Cc: Jens Axboe <axboe@fb.com>
      Cc: Keith Busch <keith.busch@intel.com>
      Cc: Michael S. Tsirkin <mst@redhat.com>
      Cc: David Woodhouse <dwmw2@infradead.org>
      Cc: David S. Miller <davem@davemloft.net>
      Cc: James Bottomley <James.Bottomley@hansenpartnership.com>
      Cc: Ross Zwisler <ross.zwisler@linux.intel.com>
      Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      Cc: Martin K. Petersen <martin.petersen@oracle.com>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Reviewed-by: default avatarJohannes Thumshirn <jthumshirn@suse.de>
      Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
      0d52c756
  16. 16 Jun, 2016 3 commits