* [GIT PULL] s390 patches for 4.13 merge window
@ 2017-07-03 9:01 Martin Schwidefsky
2017-07-03 19:40 ` Stephen Rothwell
2017-07-03 22:46 ` Linus Torvalds
0 siblings, 2 replies; 7+ messages in thread
From: Martin Schwidefsky @ 2017-07-03 9:01 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-kernel, linux-s390, Heiko Carstens
Hi Linus,
please pull from the 'for-linus' branch of
git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux.git for-linus
to receive the following updates:
The bulk of the s390 patches for 4.13. Some new things but mostly
bug fixes and cleanups. Noteworthy changes:
* The SCM block driver is converted to blk-mq
* Switch s390 to 5 level page tables. The virtual address space for
a user space process can now have up to 16EB-4KB.
* Introduce a ELF phdr flag for qemu to avoid the global vm.alloc_pgste
which forces all processes to large page tables
* A couple of PCI improvements to improve error recovery
* Included is the merge of the base support for proper machine
checks for KVM
Christian Borntraeger (1):
s390/smp: fix false positive kmemleak of mcesa data structure
Harald Freudenberger (4):
s390/zcrypt: remove unused function zcrypt_type6_mex_key_de()
s390/crypto: fix aes/paes Kconfig dependeny
s390/zcrypt: Rework ap init in case of out of range domain param.
s390/zcrypt: Add some debug messages on failure.
Heiko Carstens (17):
s390: add missing header includes for type checking
s390/pkey: make pkey_init() static
s390/mm: add __rcu annotations
s390/pkey: add missing __user annotations
s390: use two more generic header files
s390/zcrypt: get rid of little/big endian handling
s390/hvc_iucv: fix broken Kconfig select statement
s390/smp: use sigp condition code define
s390/fault: use _ASCE_ORIGIN instead of PAGE_MASK
s390/facilities: remove stfle requirement
s390/mm: remove incorrect _REGION3_ENTRY_ORIGIN define
s390/mm: add p?d_folded() helper functions
s390/dumpstack: remove raw stack dump
s390/ipl: revert Load Normal semantics for LPAR CCW-type re-IPL
s390/mm: use correct address space when enabling DAT
s390: rename psw_bits enums
s390: rename struct psw_bits members
Jan Höppner (3):
s390/dasd: Remove variable sized array
s390/dasd: Display read-only attribute correctly
s390/dasd: Fix faulty ENODEV for RO sysfs attribute
Logan Gunthorpe (1):
s390: provide default ioremap and iounmap declaration
Martin Schwidefsky (6):
s390/mm: implement 5 level pages tables
s390/cputime: simplify account_system_index_scaled
s390/vdso: use _install_special_mapping to establish vdso
s390/ptrace: guarded storage regset for the current task
s390/kvm: avoid global config of vm.alloc_pgste=1
s390/fpu: export save_fpu_regs for all configs
QingFeng Hao (2):
s390/nmi: s390: New low level handling for machine check happening in guest
KVM: s390: Backup the guest's machine check info
Sebastian Ott (14):
s390/scm: remove cluster option
s390/scm: convert to blk-mq
s390/scm: convert tasklet
s390/scm: use multiple queues
s390/cio: introduce io_subchannel_type
s390/pci: don't cleanup in arch_setup_msi_irqs
s390/pci: improve error handling during interrupt deregistration
s390/pci: improve unreg_ioat error handling
s390/pci: improve error handling during fmb (de)registration
s390/pci: introduce clp_get_state
s390/pci: improve pci hotplug
s390/pci: fix handling of PEC 306
s390/pci: provide more debug information
s390/pci: recognize name clashes with uids
Stefan Haberland (2):
s390/dasd: fix unusable device after safe offline processing
s390/dasd: fix hanging safe offline
Thomas Huth (1):
s390: Remove 'message security assist' from the list of vital facilities
Thomas Richter (1):
s390/perf: fix null string in perf list pmu command
arch/s390/Kconfig | 3 +-
arch/s390/crypto/Makefile | 3 +-
arch/s390/crypto/arch_random.c | 1 +
arch/s390/include/asm/Kbuild | 2 +
arch/s390/include/asm/device.h | 10 --
arch/s390/include/asm/elf.h | 32 +++++
arch/s390/include/asm/fb.h | 12 --
arch/s390/include/asm/io.h | 4 +-
arch/s390/include/asm/kvm_host.h | 17 ++-
arch/s390/include/asm/mmu_context.h | 4 +-
arch/s390/include/asm/nmi.h | 7 +
arch/s390/include/asm/page.h | 3 +
arch/s390/include/asm/pci.h | 15 +-
arch/s390/include/asm/pci_insn.h | 2 +-
arch/s390/include/asm/pgalloc.h | 25 +++-
arch/s390/include/asm/pgtable.h | 105 +++++++++++---
arch/s390/include/asm/processor.h | 6 +-
arch/s390/include/asm/ptrace.h | 54 +++----
arch/s390/include/asm/sigp.h | 2 +-
arch/s390/include/asm/thread_info.h | 1 +
arch/s390/include/asm/tlb.h | 15 ++
arch/s390/kernel/asm-offsets.c | 3 +
arch/s390/kernel/dumpstack.c | 33 +----
arch/s390/kernel/entry.S | 30 +++-
arch/s390/kernel/ipl.c | 7 +-
arch/s390/kernel/nmi.c | 84 +++++++++--
arch/s390/kernel/perf_cpum_sf.c | 10 +-
arch/s390/kernel/perf_event.c | 3 +-
arch/s390/kernel/ptrace.c | 15 +-
arch/s390/kernel/smp.c | 3 +
arch/s390/kernel/traps.c | 1 +
arch/s390/kernel/uprobes.c | 12 +-
arch/s390/kernel/vdso.c | 91 ++++++++----
arch/s390/kernel/vtime.c | 14 +-
arch/s390/kvm/gaccess.c | 22 +--
arch/s390/kvm/gaccess.h | 4 +-
arch/s390/kvm/guestdbg.c | 6 +-
arch/s390/kvm/kvm-s390.c | 1 +
arch/s390/kvm/priv.c | 8 +-
arch/s390/mm/dump_pagetables.c | 23 ++-
arch/s390/mm/fault.c | 2 +-
arch/s390/mm/gmap.c | 11 +-
arch/s390/mm/gup.c | 33 ++++-
arch/s390/mm/hugetlbpage.c | 30 ++--
arch/s390/mm/init.c | 6 +-
arch/s390/mm/mmap.c | 4 +-
arch/s390/mm/pageattr.c | 30 +++-
arch/s390/mm/pgalloc.c | 57 +++++---
arch/s390/mm/pgtable.c | 6 +-
arch/s390/mm/vmem.c | 44 +++++-
arch/s390/pci/pci.c | 173 ++++++++++++----------
arch/s390/pci/pci_clp.c | 77 ++++++----
arch/s390/pci/pci_dma.c | 4 +-
arch/s390/pci/pci_event.c | 14 +-
arch/s390/pci/pci_insn.c | 10 +-
arch/s390/tools/gen_facilities.c | 2 -
drivers/crypto/Kconfig | 15 +-
drivers/s390/block/Kconfig | 7 -
drivers/s390/block/Makefile | 3 -
drivers/s390/block/dasd.c | 76 +++++-----
drivers/s390/block/dasd_devmap.c | 75 ++++++----
drivers/s390/block/scm_blk.c | 262 +++++++++++++++-------------------
drivers/s390/block/scm_blk.h | 60 +-------
drivers/s390/block/scm_blk_cluster.c | 255 ---------------------------------
drivers/s390/cio/css.c | 49 +++++++
drivers/s390/cio/device.c | 42 ------
drivers/s390/cio/vfio_ccw_drv.c | 58 +-------
drivers/s390/crypto/ap_bus.c | 21 ++-
drivers/s390/crypto/pkey_api.c | 6 +-
drivers/s390/crypto/zcrypt_api.c | 12 +-
drivers/s390/crypto/zcrypt_cca_key.h | 115 +--------------
drivers/s390/crypto/zcrypt_msgtype6.c | 4 +-
drivers/tty/hvc/Kconfig | 2 +-
73 files changed, 1136 insertions(+), 1122 deletions(-)
delete mode 100644 arch/s390/include/asm/device.h
delete mode 100644 arch/s390/include/asm/fb.h
delete mode 100644 drivers/s390/block/scm_blk_cluster.c
^ permalink raw reply [flat|nested] 7+ messages in thread* Re: [GIT PULL] s390 patches for 4.13 merge window 2017-07-03 9:01 [GIT PULL] s390 patches for 4.13 merge window Martin Schwidefsky @ 2017-07-03 19:40 ` Stephen Rothwell 2017-07-03 22:46 ` Linus Torvalds 1 sibling, 0 replies; 7+ messages in thread From: Stephen Rothwell @ 2017-07-03 19:40 UTC (permalink / raw) To: Martin Schwidefsky Cc: Linus Torvalds, linux-kernel, linux-s390, Heiko Carstens Hi all, On Mon, 3 Jul 2017 11:01:34 +0200 Martin Schwidefsky <schwidefsky@de.ibm.com> wrote: > > please pull from the 'for-linus' branch of > > git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux.git for-linus > > to receive the following updates: > > The bulk of the s390 patches for 4.13. Some new things but mostly > bug fixes and cleanups. Noteworthy changes: > > * The SCM block driver is converted to blk-mq It might have been nice to mention the conflict in this with the block tree which I resolved like this: diff --cc drivers/s390/block/scm_blk.c index 725f912fab41,3c2c84b72877..0071febac9e6 --- a/drivers/s390/block/scm_blk.c +++ b/drivers/s390/block/scm_blk.c @@@ -228,12 -231,22 +228,12 @@@ static inline void scm_request_init(str aob->request.data = (u64) aobrq; scmrq->bdev = bdev; scmrq->retries = 4; - scmrq->error = 0; + scmrq->error = BLK_STS_OK; /* We don't use all msbs - place aidaws at the end of the aob page. */ scmrq->next_aidaw = (void *) &aob->msb[nr_requests_per_io]; - scm_request_cluster_init(scmrq); } -static void scm_ensure_queue_restart(struct scm_blk_dev *bdev) -{ - if (atomic_read(&bdev->queued_reqs)) { - /* Queue restart is triggered by the next interrupt. */ - return; - } - blk_delay_queue(bdev->rq, SCM_QUEUE_DELAY); -} - -void scm_request_requeue(struct scm_request *scmrq) +static void scm_request_requeue(struct scm_request *scmrq) { struct scm_blk_dev *bdev = scmrq->bdev; int i; @@@ -271,83 -289,75 +271,83 @@@ static void scm_request_start(struct sc SCM_LOG(5, "no subchannel"); scm_request_requeue(scmrq); } - return ret; } -static void scm_blk_request(struct request_queue *rq) +struct scm_queue { + struct scm_request *scmrq; + spinlock_t lock; +}; + - static int scm_blk_request(struct blk_mq_hw_ctx *hctx, ++static blk_status_t scm_blk_request(struct blk_mq_hw_ctx *hctx, + const struct blk_mq_queue_data *qd) { - struct scm_device *scmdev = rq->queuedata; + struct scm_device *scmdev = hctx->queue->queuedata; struct scm_blk_dev *bdev = dev_get_drvdata(&scmdev->dev); - struct scm_request *scmrq = NULL; - struct request *req; + struct scm_queue *sq = hctx->driver_data; + struct request *req = qd->rq; + struct scm_request *scmrq; - while ((req = blk_peek_request(rq))) { - if (!scm_permit_request(bdev, req)) - goto out; + spin_lock(&sq->lock); + if (!scm_permit_request(bdev, req)) { + spin_unlock(&sq->lock); - return BLK_MQ_RQ_QUEUE_BUSY; ++ return BLK_STS_RESOURCE; + } + scmrq = sq->scmrq; + if (!scmrq) { + scmrq = scm_request_fetch(); if (!scmrq) { - scmrq = scm_request_fetch(); - if (!scmrq) { - SCM_LOG(5, "no request"); - goto out; - } - scm_request_init(bdev, scmrq); + SCM_LOG(5, "no request"); + spin_unlock(&sq->lock); - return BLK_MQ_RQ_QUEUE_BUSY; ++ return BLK_STS_RESOURCE; } - scm_request_set(scmrq, req); + scm_request_init(bdev, scmrq); + sq->scmrq = scmrq; + } + scm_request_set(scmrq, req); - if (!scm_reserve_cluster(scmrq)) { - SCM_LOG(5, "cluster busy"); - scm_request_set(scmrq, NULL); - if (scmrq->aob->request.msb_count) - goto out; + if (scm_request_prepare(scmrq)) { + SCM_LOG(5, "aidaw alloc failed"); + scm_request_set(scmrq, NULL); - scm_request_done(scmrq); - return; - } + if (scmrq->aob->request.msb_count) + scm_request_start(scmrq); - if (scm_need_cluster_request(scmrq)) { - if (scmrq->aob->request.msb_count) { - /* Start cluster requests separately. */ - scm_request_set(scmrq, NULL); - if (scm_request_start(scmrq)) - return; - } else { - atomic_inc(&bdev->queued_reqs); - blk_start_request(req); - scm_initiate_cluster_request(scmrq); - } - scmrq = NULL; - continue; - } + sq->scmrq = NULL; + spin_unlock(&sq->lock); - return BLK_MQ_RQ_QUEUE_BUSY; ++ return BLK_STS_RESOURCE; + } + blk_mq_start_request(req); - if (scm_request_prepare(scmrq)) { - SCM_LOG(5, "aidaw alloc failed"); - scm_request_set(scmrq, NULL); - goto out; - } - blk_start_request(req); + if (qd->last || scmrq->aob->request.msb_count == nr_requests_per_io) { + scm_request_start(scmrq); + sq->scmrq = NULL; + } + spin_unlock(&sq->lock); - return BLK_MQ_RQ_QUEUE_OK; ++ return BLK_STS_OK; +} - if (scmrq->aob->request.msb_count < nr_requests_per_io) - continue; +static int scm_blk_init_hctx(struct blk_mq_hw_ctx *hctx, void *data, + unsigned int idx) +{ + struct scm_queue *qd = kzalloc(sizeof(*qd), GFP_KERNEL); - if (scm_request_start(scmrq)) - return; + if (!qd) + return -ENOMEM; - scmrq = NULL; - } -out: - if (scmrq) - scm_request_start(scmrq); - else - scm_ensure_queue_restart(bdev); + spin_lock_init(&qd->lock); + hctx->driver_data = qd; + + return 0; +} + +static void scm_blk_exit_hctx(struct blk_mq_hw_ctx *hctx, unsigned int idx) +{ + struct scm_queue *qd = hctx->driver_data; + + WARN_ON(qd->scmrq); + kfree(hctx->driver_data); + hctx->driver_data = NULL; } static void __scmrq_log_error(struct scm_request *scmrq) @@@ -394,28 -419,43 +394,28 @@@ restart return; requeue: - spin_lock_irqsave(&bdev->rq_lock, flags); scm_request_requeue(scmrq); - spin_unlock_irqrestore(&bdev->rq_lock, flags); } - void scm_blk_irq(struct scm_device *scmdev, void *data, int error) -static void scm_blk_tasklet(struct scm_blk_dev *bdev) ++void scm_blk_irq(struct scm_device *scmdev, void *data, blk_status_t error) { - struct scm_request *scmrq; - unsigned long flags; - - spin_lock_irqsave(&bdev->lock, flags); - while (!list_empty(&bdev->finished_requests)) { - scmrq = list_first_entry(&bdev->finished_requests, - struct scm_request, list); - list_del(&scmrq->list); - spin_unlock_irqrestore(&bdev->lock, flags); + struct scm_request *scmrq = data; - if (scmrq->error && scmrq->retries-- > 0) { + scmrq->error = error; + if (error) { + __scmrq_log_error(scmrq); + if (scmrq->retries-- > 0) { scm_blk_handle_error(scmrq); - - /* Request restarted or requeued, handle next. */ - spin_lock_irqsave(&bdev->lock, flags); - continue; + return; } + } - if (scm_test_cluster_request(scmrq)) { - scm_cluster_request_irq(scmrq); - spin_lock_irqsave(&bdev->lock, flags); - continue; - } + scm_request_finish(scmrq); +} - scm_request_finish(scmrq); - spin_lock_irqsave(&bdev->lock, flags); - } - spin_unlock_irqrestore(&bdev->lock, flags); - /* Look out for more requests. */ - blk_run_queue(bdev->rq); +static void scm_blk_request_done(struct request *req) +{ + blk_mq_end_request(req, 0); } static const struct block_device_operations scm_blk_devops = { diff --cc drivers/s390/block/scm_blk.h index 242d17a91920,cd598d1a4eae..71288dd9dd7f --- a/drivers/s390/block/scm_blk.h +++ b/drivers/s390/block/scm_blk.h @@@ -32,7 -35,14 +32,7 @@@ struct scm_request struct aob *aob; struct list_head list; u8 retries; - int error; + blk_status_t error; -#ifdef CONFIG_SCM_BLOCK_CLUSTER_WRITE - struct { - enum {CLUSTER_NONE, CLUSTER_READ, CLUSTER_WRITE} state; - struct list_head list; - void **buf; - } cluster; -#endif }; #define to_aobrq(rq) container_of((void *) rq, struct aob_rq_header, data) @@@ -40,8 -50,11 +40,8 @@@ int scm_blk_dev_setup(struct scm_blk_dev *, struct scm_device *); void scm_blk_dev_cleanup(struct scm_blk_dev *); void scm_blk_set_available(struct scm_blk_dev *); - void scm_blk_irq(struct scm_device *, void *, int); + void scm_blk_irq(struct scm_device *, void *, blk_status_t); -void scm_request_finish(struct scm_request *); -void scm_request_requeue(struct scm_request *); - struct aidaw *scm_aidaw_fetch(struct scm_request *scmrq, unsigned int bytes); int scm_drv_init(void); -- Cheers, Stephen Rothwell ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [GIT PULL] s390 patches for 4.13 merge window 2017-07-03 9:01 [GIT PULL] s390 patches for 4.13 merge window Martin Schwidefsky 2017-07-03 19:40 ` Stephen Rothwell @ 2017-07-03 22:46 ` Linus Torvalds 2017-07-04 7:58 ` Stephen Rothwell 1 sibling, 1 reply; 7+ messages in thread From: Linus Torvalds @ 2017-07-03 22:46 UTC (permalink / raw) To: Martin Schwidefsky, Stephen Rothwell Cc: linux-kernel, linux-s390, Heiko Carstens On Mon, Jul 3, 2017 at 2:01 AM, Martin Schwidefsky <schwidefsky@de.ibm.com> wrote: > > please pull from the 'for-linus' branch of > > git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux.git for-linus So my conflict resolution looks different from the one Stephen posted, which may be due to various reasons, ranging from "linux-next has other things that conflict" to just "I didn't notice some semantic conflict since unlike linux-next I don't build for s390". Regardless, you should check my current -git tree just to verify, and send me a patch if I screwed something up. Linus ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [GIT PULL] s390 patches for 4.13 merge window 2017-07-03 22:46 ` Linus Torvalds @ 2017-07-04 7:58 ` Stephen Rothwell 2017-07-04 8:05 ` Martin Schwidefsky 0 siblings, 1 reply; 7+ messages in thread From: Stephen Rothwell @ 2017-07-04 7:58 UTC (permalink / raw) To: Linus Torvalds Cc: Martin Schwidefsky, linux-kernel, linux-s390, Heiko Carstens Hi Linus, On Mon, 3 Jul 2017 15:46:00 -0700 Linus Torvalds <torvalds@linux-foundation.org> wrote: > > On Mon, Jul 3, 2017 at 2:01 AM, Martin Schwidefsky > <schwidefsky@de.ibm.com> wrote: > > > > please pull from the 'for-linus' branch of > > > > git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux.git for-linus > > So my conflict resolution looks different from the one Stephen posted, > which may be due to various reasons, ranging from "linux-next has > other things that conflict" to just "I didn't notice some semantic > conflict since unlike linux-next I don't build for s390". > > Regardless, you should check my current -git tree just to verify, and > send me a patch if I screwed something up. At least part of the difference is the following merge fix patch I have been carrying. It is needed due to a build failure. From: Stephen Rothwell <sfr@canb.auug.org.au> Date: Tue, 13 Jun 2017 20:51:32 +1000 Subject: [PATCH] s390: fix up for "blk-mq: switch ->queue_rq return value to blk_status_t" Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au> --- drivers/s390/block/scm_blk.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/s390/block/scm_blk.c b/drivers/s390/block/scm_blk.c index 42018a20f2b7..0071febac9e6 100644 --- a/drivers/s390/block/scm_blk.c +++ b/drivers/s390/block/scm_blk.c @@ -278,7 +278,7 @@ struct scm_queue { spinlock_t lock; }; -static int scm_blk_request(struct blk_mq_hw_ctx *hctx, +static blk_status_t scm_blk_request(struct blk_mq_hw_ctx *hctx, const struct blk_mq_queue_data *qd) { struct scm_device *scmdev = hctx->queue->queuedata; @@ -290,7 +290,7 @@ static int scm_blk_request(struct blk_mq_hw_ctx *hctx, spin_lock(&sq->lock); if (!scm_permit_request(bdev, req)) { spin_unlock(&sq->lock); - return BLK_MQ_RQ_QUEUE_BUSY; + return BLK_STS_RESOURCE; } scmrq = sq->scmrq; @@ -299,7 +299,7 @@ static int scm_blk_request(struct blk_mq_hw_ctx *hctx, if (!scmrq) { SCM_LOG(5, "no request"); spin_unlock(&sq->lock); - return BLK_MQ_RQ_QUEUE_BUSY; + return BLK_STS_RESOURCE; } scm_request_init(bdev, scmrq); sq->scmrq = scmrq; @@ -315,7 +315,7 @@ static int scm_blk_request(struct blk_mq_hw_ctx *hctx, sq->scmrq = NULL; spin_unlock(&sq->lock); - return BLK_MQ_RQ_QUEUE_BUSY; + return BLK_STS_RESOURCE; } blk_mq_start_request(req); @@ -324,7 +324,7 @@ static int scm_blk_request(struct blk_mq_hw_ctx *hctx, sq->scmrq = NULL; } spin_unlock(&sq->lock); - return BLK_MQ_RQ_QUEUE_OK; + return BLK_STS_OK; } static int scm_blk_init_hctx(struct blk_mq_hw_ctx *hctx, void *data, -- 2.11.0 -- Cheers, Stephen Rothwell ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [GIT PULL] s390 patches for 4.13 merge window 2017-07-04 7:58 ` Stephen Rothwell @ 2017-07-04 8:05 ` Martin Schwidefsky 2017-07-04 8:29 ` Martin Schwidefsky 0 siblings, 1 reply; 7+ messages in thread From: Martin Schwidefsky @ 2017-07-04 8:05 UTC (permalink / raw) To: Stephen Rothwell; +Cc: Linus Torvalds, linux-kernel, linux-s390, Heiko Carstens On Tue, 4 Jul 2017 17:58:18 +1000 Stephen Rothwell <sfr@canb.auug.org.au> wrote: > Hi Linus, > > On Mon, 3 Jul 2017 15:46:00 -0700 Linus Torvalds <torvalds@linux-foundation.org> wrote: > > > > On Mon, Jul 3, 2017 at 2:01 AM, Martin Schwidefsky > > <schwidefsky@de.ibm.com> wrote: > > > > > > please pull from the 'for-linus' branch of > > > > > > git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux.git for-linus > > > > So my conflict resolution looks different from the one Stephen posted, > > which may be due to various reasons, ranging from "linux-next has > > other things that conflict" to just "I didn't notice some semantic > > conflict since unlike linux-next I don't build for s390". > > > > Regardless, you should check my current -git tree just to verify, and > > send me a patch if I screwed something up. > > At least part of the difference is the following merge fix patch I have > been carrying. It is needed due to a build failure. > > From: Stephen Rothwell <sfr@canb.auug.org.au> > Date: Tue, 13 Jun 2017 20:51:32 +1000 > Subject: [PATCH] s390: fix up for "blk-mq: switch ->queue_rq return value to > blk_status_t" > > Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au> > --- > drivers/s390/block/scm_blk.c | 10 +++++----- > 1 file changed, 5 insertions(+), 5 deletions(-) > > diff --git a/drivers/s390/block/scm_blk.c b/drivers/s390/block/scm_blk.c > index 42018a20f2b7..0071febac9e6 100644 > --- a/drivers/s390/block/scm_blk.c > +++ b/drivers/s390/block/scm_blk.c > @@ -278,7 +278,7 @@ struct scm_queue { > spinlock_t lock; > }; > > -static int scm_blk_request(struct blk_mq_hw_ctx *hctx, > +static blk_status_t scm_blk_request(struct blk_mq_hw_ctx *hctx, > const struct blk_mq_queue_data *qd) > { > struct scm_device *scmdev = hctx->queue->queuedata; > @@ -290,7 +290,7 @@ static int scm_blk_request(struct blk_mq_hw_ctx *hctx, > spin_lock(&sq->lock); > if (!scm_permit_request(bdev, req)) { > spin_unlock(&sq->lock); > - return BLK_MQ_RQ_QUEUE_BUSY; > + return BLK_STS_RESOURCE; > } > > scmrq = sq->scmrq; > @@ -299,7 +299,7 @@ static int scm_blk_request(struct blk_mq_hw_ctx *hctx, > if (!scmrq) { > SCM_LOG(5, "no request"); > spin_unlock(&sq->lock); > - return BLK_MQ_RQ_QUEUE_BUSY; > + return BLK_STS_RESOURCE; > } > scm_request_init(bdev, scmrq); > sq->scmrq = scmrq; > @@ -315,7 +315,7 @@ static int scm_blk_request(struct blk_mq_hw_ctx *hctx, > > sq->scmrq = NULL; > spin_unlock(&sq->lock); > - return BLK_MQ_RQ_QUEUE_BUSY; > + return BLK_STS_RESOURCE; > } > blk_mq_start_request(req); > > @@ -324,7 +324,7 @@ static int scm_blk_request(struct blk_mq_hw_ctx *hctx, > sq->scmrq = NULL; > } > spin_unlock(&sq->lock); > - return BLK_MQ_RQ_QUEUE_OK; > + return BLK_STS_OK; > } > > static int scm_blk_init_hctx(struct blk_mq_hw_ctx *hctx, void *data, This is the same patch I came up with to get it to compile. I asked Sebastian to verify that the driver actually works with these changes. -- blue skies, Martin. "Reality continues to ruin my life." - Calvin. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [GIT PULL] s390 patches for 4.13 merge window 2017-07-04 8:05 ` Martin Schwidefsky @ 2017-07-04 8:29 ` Martin Schwidefsky 2017-07-04 20:39 ` Linus Torvalds 0 siblings, 1 reply; 7+ messages in thread From: Martin Schwidefsky @ 2017-07-04 8:29 UTC (permalink / raw) To: Stephen Rothwell; +Cc: Linus Torvalds, linux-kernel, linux-s390, Heiko Carstens On Tue, 4 Jul 2017 10:05:30 +0200 Martin Schwidefsky <schwidefsky@de.ibm.com> wrote: > On Tue, 4 Jul 2017 17:58:18 +1000 > Stephen Rothwell <sfr@canb.auug.org.au> wrote: > > > Hi Linus, > > > > On Mon, 3 Jul 2017 15:46:00 -0700 Linus Torvalds <torvalds@linux-foundation.org> wrote: > > > > > > On Mon, Jul 3, 2017 at 2:01 AM, Martin Schwidefsky > > > <schwidefsky@de.ibm.com> wrote: > > > > > > > > please pull from the 'for-linus' branch of > > > > > > > > git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux.git for-linus > > > > > > So my conflict resolution looks different from the one Stephen posted, > > > which may be due to various reasons, ranging from "linux-next has > > > other things that conflict" to just "I didn't notice some semantic > > > conflict since unlike linux-next I don't build for s390". > > > > > > Regardless, you should check my current -git tree just to verify, and > > > send me a patch if I screwed something up. > > > > At least part of the difference is the following merge fix patch I have > > been carrying. It is needed due to a build failure. > > > > From: Stephen Rothwell <sfr@canb.auug.org.au> > > Date: Tue, 13 Jun 2017 20:51:32 +1000 > > Subject: [PATCH] s390: fix up for "blk-mq: switch ->queue_rq return value to > > blk_status_t" > > > > Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au> > > --- > > drivers/s390/block/scm_blk.c | 10 +++++----- > > 1 file changed, 5 insertions(+), 5 deletions(-) > > > > diff --git a/drivers/s390/block/scm_blk.c b/drivers/s390/block/scm_blk.c > > index 42018a20f2b7..0071febac9e6 100644 > > --- a/drivers/s390/block/scm_blk.c > > +++ b/drivers/s390/block/scm_blk.c > > @@ -278,7 +278,7 @@ struct scm_queue { > > spinlock_t lock; > > }; > > > > -static int scm_blk_request(struct blk_mq_hw_ctx *hctx, > > +static blk_status_t scm_blk_request(struct blk_mq_hw_ctx *hctx, > > const struct blk_mq_queue_data *qd) > > { > > struct scm_device *scmdev = hctx->queue->queuedata; > > @@ -290,7 +290,7 @@ static int scm_blk_request(struct blk_mq_hw_ctx *hctx, > > spin_lock(&sq->lock); > > if (!scm_permit_request(bdev, req)) { > > spin_unlock(&sq->lock); > > - return BLK_MQ_RQ_QUEUE_BUSY; > > + return BLK_STS_RESOURCE; > > } > > > > scmrq = sq->scmrq; > > @@ -299,7 +299,7 @@ static int scm_blk_request(struct blk_mq_hw_ctx *hctx, > > if (!scmrq) { > > SCM_LOG(5, "no request"); > > spin_unlock(&sq->lock); > > - return BLK_MQ_RQ_QUEUE_BUSY; > > + return BLK_STS_RESOURCE; > > } > > scm_request_init(bdev, scmrq); > > sq->scmrq = scmrq; > > @@ -315,7 +315,7 @@ static int scm_blk_request(struct blk_mq_hw_ctx *hctx, > > > > sq->scmrq = NULL; > > spin_unlock(&sq->lock); > > - return BLK_MQ_RQ_QUEUE_BUSY; > > + return BLK_STS_RESOURCE; > > } > > blk_mq_start_request(req); > > > > @@ -324,7 +324,7 @@ static int scm_blk_request(struct blk_mq_hw_ctx *hctx, > > sq->scmrq = NULL; > > } > > spin_unlock(&sq->lock); > > - return BLK_MQ_RQ_QUEUE_OK; > > + return BLK_STS_OK; > > } > > > > static int scm_blk_init_hctx(struct blk_mq_hw_ctx *hctx, void *data, > > This is the same patch I came up with to get it to compile. I asked > Sebastian to verify that the driver actually works with these changes. Looks good. Sebastian confirmed that the scm driver will be fine with the add-on patch from Stephen. @Linus: I can add this to the s390 tree and sent the patch with the next please-pull. Or you can apply the patch directly, whatever you prefer. -- blue skies, Martin. "Reality continues to ruin my life." - Calvin. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [GIT PULL] s390 patches for 4.13 merge window 2017-07-04 8:29 ` Martin Schwidefsky @ 2017-07-04 20:39 ` Linus Torvalds 0 siblings, 0 replies; 7+ messages in thread From: Linus Torvalds @ 2017-07-04 20:39 UTC (permalink / raw) To: Martin Schwidefsky Cc: Stephen Rothwell, linux-kernel, linux-s390, Heiko Carstens On Tue, Jul 4, 2017 at 1:29 AM, Martin Schwidefsky <schwidefsky@de.ibm.com> wrote: > > @Linus: > I can add this to the s390 tree and sent the patch with the next please-pull. > Or you can apply the patch directly, whatever you prefer. I'll wait for your pull. Thanks, Linus ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2017-07-04 20:39 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2017-07-03 9:01 [GIT PULL] s390 patches for 4.13 merge window Martin Schwidefsky 2017-07-03 19:40 ` Stephen Rothwell 2017-07-03 22:46 ` Linus Torvalds 2017-07-04 7:58 ` Stephen Rothwell 2017-07-04 8:05 ` Martin Schwidefsky 2017-07-04 8:29 ` Martin Schwidefsky 2017-07-04 20:39 ` Linus Torvalds
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox