1. 28 3月, 2017 2 次提交
  2. 23 2月, 2017 1 次提交
  3. 31 1月, 2017 1 次提交
  4. 25 12月, 2016 1 次提交
  5. 12 12月, 2016 2 次提交
  6. 17 10月, 2016 1 次提交
    • C
      s390/dasd: avoid undefined behaviour · 0f02c4e7
      Christian Borntraeger 提交于
      the mdc value can be quite big (like 65535), so we are in undefined
      territory when doing the multiplication with the (also signed)
      FCX_MAX_DATA_FACTOR as outlined by UBSAN:
      
      UBSAN: Undefined behaviour in drivers/s390/block/dasd_eckd.c:1678:14
      signed integer overflow:
      65535 * 65536 cannot be represented in type 'int'
      CPU: 5 PID: 183 Comm: kworker/u512:1 Not tainted 4.7.0+ #150
      Workqueue: events_unbound async_run_entry_fn
      000000fb8b59f900 000000fb8b59f990 0000000000000002 0000000000000000
      000000fb8b59fa30 000000fb8b59f9a8 000000fb8b59f9a8 000000000011732e
      00000000000000a4 0000000000a309e2 0000000000a4c072 000000000000000b
      000000fb8b59f9f0 000000fb8b59f990 0000000000000000 0000000000000000
      0400000000d83238 000000000011732e 000000fb8b59f990 000000fb8b59f9f0
      Call Trace:
      ([<0000000000117260>] show_trace+0x98/0xa8)
      ([<00000000001172e0>] show_stack+0x70/0xf0)
      ([<000000000053ac96>] dump_stack+0x86/0xb8)
      ([<000000000057f5f8>] ubsan_epilogue+0x28/0x70)
      ([<000000000057fe9e>] handle_overflow+0xde/0xf0)
      ([<00000000006c322a>] dasd_eckd_check_characteristics+0x50a/0x550)
      ([<00000000006b42ca>] dasd_generic_set_online+0xba/0x380)
      ([<0000000000693d82>] ccw_device_set_online+0x192/0x550)
      ([<00000000006ac1ae>] dasd_generic_auto_online+0x2e/0x70)
      ([<0000000000172130>] async_run_entry_fn+0x70/0x270)
      ([<0000000000165a72>] process_one_work+0x26a/0x638)
      ([<0000000000165e8a>] worker_thread+0x4a/0x658)
      ([<000000000016dd9c>] kthread+0x10c/0x110)
      ([<00000000008963ae>] kernel_thread_starter+0x6/0xc)
      ([<00000000008963a8>] kernel_thread_starter+0x0/0xc)
      
      As this is a runtime value there is actually no risk of any sane
      compiler to detect and (ab)use this undefinedness, but let's make
      the multiplication defined by making mdc unsigned.
      Signed-off-by: NChristian Borntraeger <borntraeger@de.ibm.com>
      Acked-by: NStefan Haberland <sth@linux.vnet.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      0f02c4e7
  7. 26 9月, 2016 1 次提交
  8. 11 8月, 2016 1 次提交
    • S
      s390/dasd: fix failing CUIR assignment under LPAR · af775210
      Stefan Haberland 提交于
      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: NStefan Haberland <sth@linux.vnet.ibm.com>
      af775210
  9. 13 6月, 2016 1 次提交
    • M
      s390/time: LPAR offset handling · 40277891
      Martin Schwidefsky 提交于
      It is possible to specify a user offset for the TOD clock, e.g. +2 hours.
      The TOD clock will carry this offset even if the clock is synchronized
      with STP. This makes the time stamps acquired with get_sync_clock()
      useless as another LPAR migth use a different TOD offset.
      
      Use the PTFF instrution to get the TOD epoch difference and subtract
      it from the TOD clock value to get a physical timestamp. As the epoch
      difference contains the sync check delta as well the LPAR offset value
      to the physical clock needs to be refreshed after each clock
      synchronization.
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      40277891
  10. 16 4月, 2016 2 次提交
  11. 17 3月, 2016 1 次提交
    • S
      s390/dasd: reorder lcu and device lock · 59a9ed5f
      Stefan Haberland 提交于
      Reorder lcu and device lock to get rid of the error-prone trylock
      mechanism.
      
      The locking order is lcu lock -> device lock.
      This protects against changes to the lcu device lists and enables us
      to iterate over the devices, take the cdev lock and make changes to
      the device structures.
      
      The complicated part is the summary unit check handler that gets an
      interrupt on one device of the lcu that leads to structural changes of
      the whole lcu itself. This work needs to be done even if devices on
      the lcu disappear. So a device independent worker is used.
      The old approach tried to update some lcu structures and set up the
      lcu worker in the interrupt context with the device lock held.
      But this forced the lock order "cdev lock -> lcu lock" that made it
      hard to have the lcu lock held and iterate over all devices and change
      them.
      
      The new approach is to schedule a device specific worker that gets
      out of the interrupt context and rid of the device lock for summary
      unit checks. This worker is able to take the lcu lock and schedule the
      lcu worker that updates all devices. The time between interrupt and
      worker execution is no problem because the devices in the lcu reject
      all I/O in this time with an appropriate error. The dasd driver can
      deal with this situation and re-drive the I/O later on.
      Signed-off-by: NStefan Haberland <sth@linux.vnet.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      59a9ed5f
  12. 07 3月, 2016 3 次提交
  13. 03 11月, 2015 3 次提交
  14. 14 10月, 2015 1 次提交
  15. 19 8月, 2015 1 次提交
  16. 10 8月, 2015 2 次提交
  17. 15 4月, 2015 1 次提交
  18. 25 3月, 2015 1 次提交
    • H
      s390: remove 31 bit support · 5a79859a
      Heiko Carstens 提交于
      Remove the 31 bit support in order to reduce maintenance cost and
      effectively remove dead code. Since a couple of years there is no
      distribution left that comes with a 31 bit kernel.
      
      The 31 bit kernel also has been broken since more than a year before
      anybody noticed. In addition I added a removal warning to the kernel
      shown at ipl for 5 minutes: a960062e ("s390: add 31 bit warning
      message") which let everybody know about the plan to remove 31 bit
      code. We didn't get any response.
      
      Given that the last 31 bit only machine was introduced in 1999 let's
      remove the code.
      Anybody with 31 bit user space code can still use the compat mode.
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      5a79859a
  19. 09 10月, 2014 1 次提交
  20. 01 8月, 2014 1 次提交
  21. 22 7月, 2014 2 次提交
  22. 24 11月, 2013 1 次提交
    • K
      block: Convert bio_for_each_segment() to bvec_iter · 7988613b
      Kent Overstreet 提交于
      More prep work for immutable biovecs - with immutable bvecs drivers
      won't be able to use the biovec directly, they'll need to use helpers
      that take into account bio->bi_iter.bi_bvec_done.
      
      This updates callers for the new usage without changing the
      implementation yet.
      Signed-off-by: NKent Overstreet <kmo@daterainc.com>
      Cc: Jens Axboe <axboe@kernel.dk>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: "Ed L. Cashin" <ecashin@coraid.com>
      Cc: Nick Piggin <npiggin@kernel.dk>
      Cc: Lars Ellenberg <drbd-dev@lists.linbit.com>
      Cc: Jiri Kosina <jkosina@suse.cz>
      Cc: Paul Clements <Paul.Clements@steeleye.com>
      Cc: Jim Paris <jim@jtan.com>
      Cc: Geoff Levand <geoff@infradead.org>
      Cc: Yehuda Sadeh <yehuda@inktank.com>
      Cc: Sage Weil <sage@inktank.com>
      Cc: Alex Elder <elder@inktank.com>
      Cc: ceph-devel@vger.kernel.org
      Cc: Joshua Morris <josh.h.morris@us.ibm.com>
      Cc: Philip Kelleher <pjk1939@linux.vnet.ibm.com>
      Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      Cc: Jeremy Fitzhardinge <jeremy@goop.org>
      Cc: Neil Brown <neilb@suse.de>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
      Cc: linux390@de.ibm.com
      Cc: Nagalakshmi Nandigama <Nagalakshmi.Nandigama@lsi.com>
      Cc: Sreekanth Reddy <Sreekanth.Reddy@lsi.com>
      Cc: support@lsi.com
      Cc: "James E.J. Bottomley" <JBottomley@parallels.com>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Cc: Alexander Viro <viro@zeniv.linux.org.uk>
      Cc: Steven Whitehouse <swhiteho@redhat.com>
      Cc: Herton Ronaldo Krzesinski <herton.krzesinski@canonical.com>
      Cc: Tejun Heo <tj@kernel.org>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Guo Chao <yan@linux.vnet.ibm.com>
      Cc: Asai Thambi S P <asamymuthupa@micron.com>
      Cc: Selvan Mani <smani@micron.com>
      Cc: Sam Bradshaw <sbradshaw@micron.com>
      Cc: Matthew Wilcox <matthew.r.wilcox@intel.com>
      Cc: Keith Busch <keith.busch@intel.com>
      Cc: Stephen Hemminger <shemminger@vyatta.com>
      Cc: Quoc-Son Anh <quoc-sonx.anh@intel.com>
      Cc: Sebastian Ott <sebott@linux.vnet.ibm.com>
      Cc: Nitin Gupta <ngupta@vflare.org>
      Cc: Minchan Kim <minchan@kernel.org>
      Cc: Jerome Marchand <jmarchan@redhat.com>
      Cc: Seth Jennings <sjenning@linux.vnet.ibm.com>
      Cc: "Martin K. Petersen" <martin.petersen@oracle.com>
      Cc: Mike Snitzer <snitzer@redhat.com>
      Cc: Vivek Goyal <vgoyal@redhat.com>
      Cc: "Darrick J. Wong" <darrick.wong@oracle.com>
      Cc: Chris Metcalf <cmetcalf@tilera.com>
      Cc: Jan Kara <jack@suse.cz>
      Cc: linux-m68k@lists.linux-m68k.org
      Cc: linuxppc-dev@lists.ozlabs.org
      Cc: drbd-user@lists.linbit.com
      Cc: nbd-general@lists.sourceforge.net
      Cc: cbe-oss-dev@lists.ozlabs.org
      Cc: xen-devel@lists.xensource.com
      Cc: virtualization@lists.linux-foundation.org
      Cc: linux-raid@vger.kernel.org
      Cc: linux-s390@vger.kernel.org
      Cc: DL-MPTFusionLinux@lsi.com
      Cc: linux-scsi@vger.kernel.org
      Cc: devel@driverdev.osuosl.org
      Cc: linux-fsdevel@vger.kernel.org
      Cc: cluster-devel@redhat.com
      Cc: linux-mm@kvack.org
      Acked-by: NGeoff Levand <geoff@infradead.org>
      7988613b
  23. 20 11月, 2013 1 次提交
  24. 15 10月, 2013 1 次提交
  25. 22 8月, 2013 1 次提交
    • S
      s390/dasd: enable raw_track_access reads without direct I/O · 558b9ef0
      Stefan Weinhuber 提交于
      The ECKD protocol supports reading of tracks with arbitrary format as
      raw track images. The DASD device driver supports this in its
      raw_track_access mode. In this mode it maps each track to sixteen 4096
      byte sectors and rejects all requests that are not properly aligned to
      this mapping.
      
      An application that wants to use a DASD in raw_track_access mode will
      usually use direct I/O to make sure that properly aligned requests are
      directly submitted to the driver. However, applications that are not
      aware of this mode, e.g. udev, will encounter I/O errors.
      
      To make the use without direct I/O possible and avoid this kind of
      alignment errors, we now pad unaligned read requests with a dummy
      page, so that we can always read full tracks.  Please note that
      writing is still only possible for full track images that are properly
      aligned.
      Signed-off-by: NStefan Weinhuber <wein@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      558b9ef0
  26. 01 7月, 2013 2 次提交
  27. 27 6月, 2013 1 次提交
  28. 17 4月, 2013 1 次提交
  29. 28 2月, 2013 1 次提交
  30. 14 2月, 2013 1 次提交