Subhash Jadavani
6d303e4b19
scsi: ufs: Fix error handing during hibern8 enter
...
During clock gating (ufshcd_gate_work()), we first put the link hibern8 by
calling ufshcd_uic_hibern8_enter() and if ufshcd_uic_hibern8_enter()
returns success (0) then we gate all the clocks. Now let’s zoom in to what
ufshcd_uic_hibern8_enter() does internally: It calls
__ufshcd_uic_hibern8_enter() and if failure is encountered, link recovery
shall put the link back to the highest HS gear and returns success (0) to
ufshcd_uic_hibern8_enter() which is the issue as link is still in active
state due to recovery! Now ufshcd_uic_hibern8_enter() returns success to
ufshcd_gate_work() and hence it goes ahead with gating the UFS clock while
link is still in active state hence I believe controller would raise UIC
error interrupts. But when we service the interrupt, clocks might have
already been disabled!
This change fixes for this by returning failure from
__ufshcd_uic_hibern8_enter() if recovery succeeds as link is still not in
hibern8, upon receiving the error ufshcd_hibern8_enter() would initiate
retry to put the link state back into hibern8.
Link: https://lore.kernel.org/r/1573798172-20534-8-git-send-email-cang@codeaurora.org
Reviewed-by: Avri Altman <avri.altman@wdc.com >
Reviewed-by: Bean Huo <beanhuo@micron.com >
Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org >
Signed-off-by: Can Guo <cang@codeaurora.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2019-11-19 21:37:32 -05:00
Asutosh Das
18f01374b5
scsi: ufs: Abort gating if clock on request is pending
...
This change attempts to abort gating of clocks if a request to turn-on
clocks is pending. This would in turn avoid turning OFF and back ON the
clocks.
Link: https://lore.kernel.org/r/1573798172-20534-7-git-send-email-cang@codeaurora.org
Reviewed-by: Bean Huo <beanhuo@micron.com >
Signed-off-by: Asutosh Das <asutoshd@codeaurora.org >
Signed-off-by: Can Guo <cang@codeaurora.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2019-11-19 21:37:32 -05:00
Venkat Gopalakrishnan
9333d77573
scsi: ufs: Fix irq return code
...
Return IRQ_HANDLED only if the irq is really handled, this will help in
catching spurious interrupts that go unhandled.
Link: https://lore.kernel.org/r/1573798172-20534-6-git-send-email-cang@codeaurora.org
Reviewed-by: Avri Altman <avri.altman@wdc.com >
Signed-off-by: Venkat Gopalakrishnan <venkatg@codeaurora.org >
Signed-off-by: Can Guo <cang@codeaurora.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2019-11-19 21:37:09 -05:00
Can Guo
cddaebaf3d
scsi: ufs: Fix register dump caused sleep in atomic context
...
ufshcd_print_host_regs() can be called by interrupt handler, but it may
sleep due to ufshcd_dump_regs() allocates the dump buffer memory with flag
GFP_KERNEL. Fix it by changing GFP_KERNEL to GFP_ATMOIC.
Link: https://lore.kernel.org/r/1573798172-20534-5-git-send-email-cang@codeaurora.org
Reviewed-by: Bean Huo <beanhuo@micron.com >
Signed-off-by: Can Guo <cang@codeaurora.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2019-11-18 23:15:51 -05:00
Can Guo
71d848b8d9
scsi: ufs: Fix up auto hibern8 enablement
...
Fix up possible unclocked register access to auto hibern8 register in
resume path and through sysfs entry. Meanwhile, enable auto hibern8 only
after device is fully initialized in probe path.
Link: https://lore.kernel.org/r/1573798172-20534-4-git-send-email-cang@codeaurora.org
Reviewed-by: Stanley Chu <stanley.chu@mediatek.com >
Signed-off-by: Can Guo <cang@codeaurora.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2019-11-18 23:15:51 -05:00
Can Guo
870b1279c7
scsi: ufs-qcom: Add reset control support for host controller
...
Add reset control for host controller so that host controller can be reset
as required in its power up sequence.
Link: https://lore.kernel.org/r/1573798172-20534-3-git-send-email-cang@codeaurora.org
Reviewed-by: Avri Altman <avri.altman@wdc.com >
Signed-off-by: Can Guo <cang@codeaurora.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2019-11-18 23:15:50 -05:00
Can Guo
ebdd1dfde5
scsi: ufs: Add device reset in link recovery path
...
In order to recover from hibern8 exit failure, perform a reset in link
recovery path before issuing link start-up.
Link: https://lore.kernel.org/r/1573798172-20534-2-git-send-email-cang@codeaurora.org
Reviewed-by: Bean Huo <beanhuo@micron.com >
Reviewed-by: Stanley Chu <stanley.chu@mediatek.com >
Signed-off-by: Can Guo <cang@codeaurora.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2019-11-18 23:15:50 -05:00
Finn Thain
35c3363363
scsi: core: Clean up SG_NONE
...
Remove SG_NONE and a related misleading comment. Update documentation.
This patch does not affect behaviour as zero initialization is redundant.
Cc: Jonathan Corbet <corbet@lwn.net >
Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com >
Cc: Jens Axboe <axboe@kernel.dk >
Cc: Viresh Kumar <vireshk@kernel.org >
Cc: Oliver Neukum <oneukum@suse.com >
Cc: Alan Stern <stern@rowland.harvard.edu >
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Cc: usb-storage@lists.one-eyed-alien.net
Link: https://lore.kernel.org/r/b4779b7a6563f6bd8d259ee457871c1c463c420e.1572656814.git.fthain@telegraphics.com.au
Signed-off-by: Finn Thain <fthain@telegraphics.com.au >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2019-11-12 22:21:35 -05:00
Finn Thain
79172ab20b
scsi: atari_scsi: sun3_scsi: Set sg_tablesize to 1 instead of SG_NONE
...
Since the scsi subsystem adopted the blk-mq API, a host with zero
sg_tablesize crashes with a NULL pointer dereference.
blk_queue_max_segments: set to minimum 1
scsi 0:0:0:0: Direct-Access QEMU QEMU HARDDISK 2.5+ PQ: 0 ANSI: 5
scsi target0:0:0: Beginning Domain Validation
scsi target0:0:0: Domain Validation skipping write tests
scsi target0:0:0: Ending Domain Validation
blk_queue_max_segments: set to minimum 1
scsi 0:0:1:0: Direct-Access QEMU QEMU HARDDISK 2.5+ PQ: 0 ANSI: 5
scsi target0:0:1: Beginning Domain Validation
scsi target0:0:1: Domain Validation skipping write tests
scsi target0:0:1: Ending Domain Validation
blk_queue_max_segments: set to minimum 1
scsi 0:0:2:0: CD-ROM QEMU QEMU CD-ROM 2.5+ PQ: 0 ANSI: 5
scsi target0:0:2: Beginning Domain Validation
scsi target0:0:2: Domain Validation skipping write tests
scsi target0:0:2: Ending Domain Validation
blk_queue_max_segments: set to minimum 1
blk_queue_max_segments: set to minimum 1
blk_queue_max_segments: set to minimum 1
blk_queue_max_segments: set to minimum 1
sr 0:0:2:0: Power-on or device reset occurred
sd 0:0:0:0: Power-on or device reset occurred
sd 0:0:1:0: Power-on or device reset occurred
sd 0:0:0:0: [sda] 10485762 512-byte logical blocks: (5.37 GB/5.00 GiB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
Unable to handle kernel NULL pointer dereference at virtual address (ptrval)
Oops: 00000000
Modules linked in:
PC: [<001cd874>] blk_mq_free_request+0x66/0xe2
SR: 2004 SP: (ptrval) a2: 00874520
d0: 00000000 d1: 00000000 d2: 009ba800 d3: 00000000
d4: 00000000 d5: 08000002 a0: 0087be68 a1: 009a81e0
Process kworker/u2:2 (pid: 15, task=(ptrval))
Frame format=7 eff addr=0000007a ssw=0505 faddr=0000007a
wb 1 stat/addr/data: 0000 00000000 00000000
wb 2 stat/addr/data: 0000 00000000 00000000
wb 3 stat/addr/data: 0000 0000007a 00000000
push data: 00000000 00000000 00000000 00000000
Stack from 0087bd98:
00000002 00000000 0087be72 009a7820 0087bdb4 001c4f6c 009a7820 0087bdd4
0024d200 009a7820 0024d0dc 0087be72 009baa00 0087be68 009a5000 0087be7c
00265d10 009a5000 0087be72 00000003 00000000 00000000 00000000 0087be68
00000bb8 00000005 00000000 00000000 00000000 00000000 00265c56 00000000
009ba60c 0036ddf4 00000002 ffffffff 009baa00 009ba600 009a50d6 0087be74
00227ba0 009baa08 00000001 009baa08 009ba60c 0036ddf4 00000000 00000000
Call Trace: [<001c4f6c>] blk_put_request+0xe/0x14
[<0024d200>] __scsi_execute+0x124/0x174
[<0024d0dc>] __scsi_execute+0x0/0x174
[<00265d10>] sd_revalidate_disk+0xba/0x1f02
[<00265c56>] sd_revalidate_disk+0x0/0x1f02
[<0036ddf4>] strlen+0x0/0x22
[<00227ba0>] device_add+0x3da/0x604
[<0036ddf4>] strlen+0x0/0x22
[<00267e64>] sd_probe+0x30c/0x4b4
[<0002da44>] process_one_work+0x0/0x402
[<0022b978>] really_probe+0x226/0x354
[<0022bc34>] driver_probe_device+0xa4/0xf0
[<0002da44>] process_one_work+0x0/0x402
[<0022bcd0>] __driver_attach_async_helper+0x50/0x70
[<00035dae>] async_run_entry_fn+0x36/0x130
[<0002db88>] process_one_work+0x144/0x402
[<0002e1aa>] worker_thread+0x0/0x570
[<0002e29a>] worker_thread+0xf0/0x570
[<0002e1aa>] worker_thread+0x0/0x570
[<003768d8>] schedule+0x0/0xb8
[<0003f58c>] __init_waitqueue_head+0x0/0x12
[<00033e92>] kthread+0xc2/0xf6
[<000331e8>] kthread_parkme+0x0/0x4e
[<003768d8>] schedule+0x0/0xb8
[<00033dd0>] kthread+0x0/0xf6
[<00002c10>] ret_from_kernel_thread+0xc/0x14
Code: 0280 0006 0800 56c0 4400 0280 0000 00ff <52b4> 0c3a 082b 0006 0013 6706 2042 53a8 00c4 4ab9 0047 3374 6640 202d 000c 670c
Disabling lock debugging due to kernel taint
Avoid this by setting sg_tablesize = 1.
Link: https://lore.kernel.org/r/4567bcae94523b47d6f3b77450ba305823bca479.1572656814.git.fthain@telegraphics.com.au
Reported-and-tested-by: Michael Schmitz <schmitzmic@gmail.com >
Reviewed-by: Michael Schmitz <schmitzmic@gmail.com >
References: commit 68ab2d76e4 ("scsi: cxlflash: Set sg_tablesize to 1 instead of SG_NONE")
Signed-off-by: Finn Thain <fthain@telegraphics.com.au >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2019-11-12 22:21:34 -05:00
Johan Hovold
d04adaa475
scsi: nsp_cs: enable compile-testing on 64-bit
...
For some reason this driver depends on !64BIT, but it can still be useful
to allow compile-testing on 64-bit machines.
Link: https://lore.kernel.org/r/20191105085609.2338-3-johan@kernel.org
Signed-off-by: Johan Hovold <johan@kernel.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2019-11-12 22:21:34 -05:00
Johan Hovold
63cb70a1ee
scsi: nsp_cs: drop redundant MODULE_LICENSE ifdef
...
The MODULE_LICENSE macro is unconditionally defined in module.h, no need to
ifdef its use.
Link: https://lore.kernel.org/r/20191105085609.2338-2-johan@kernel.org
Signed-off-by: Johan Hovold <johan@kernel.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2019-11-12 22:21:34 -05:00
YueHaibing
70e8d9accd
scsi: ufs: ufshcd: Remove dev_err() on platform_get_irq() failure
...
platform_get_irq() will call dev_err() itself on failure, so there is no
need for the driver to also do this. This is detected by coccinelle.
Link: https://lore.kernel.org/r/20191101140058.23212-1-yuehaibing@huawei.com
Signed-off-by: YueHaibing <yuehaibing@huawei.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2019-11-12 22:21:34 -05:00
Kars de Jong
02f7e9f351
scsi: zorro_esp: Limit DMA transfers to 65536 bytes (except on Fastlane)
...
When using this driver on a Blizzard 1260, there were failures whenever DMA
transfers from the SCSI bus to memory of 65535 bytes were followed by a DMA
transfer of 1 byte. This caused the byte at offset 65535 to be overwritten
with 0xff. The Blizzard hardware can't handle single byte DMA transfers.
Besides this issue, limiting the DMA length to something that is not a
multiple of the page size is very inefficient on most file systems.
It seems this limit was chosen because the DMA transfer counter of the ESP
by default is 16 bits wide, thus limiting the length to 65535 bytes.
However, the value 0 means 65536 bytes, which is handled by the ESP and the
Blizzard just fine. It is also the default maximum used by esp_scsi when
drivers don't provide their own dma_length_limit() function.
The limit of 65536 bytes can be used by all boards except the Fastlane. The
old driver used a limit of 65532 bytes (0xfffc), which is reintroduced in
this patch.
Fixes: b7ded0e8b0 ("scsi: zorro_esp: Limit DMA transfers to 65535 bytes")
Link: https://lore.kernel.org/r/20191112175523.23145-1-jongk@linux-m68k.org
Signed-off-by: Kars de Jong <jongk@linux-m68k.org >
Reviewed-by: Finn Thain <fthain@telegraphics.com.au >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2019-11-12 22:21:34 -05:00
YueHaibing
63f565aa6e
scsi: csiostor: Remove set but not used variable 'rln'
...
Fixes gcc '-Wunused-but-set-variable' warning:
drivers/scsi/csiostor/csio_lnode.c: In function 'csio_ln_init':
drivers/scsi/csiostor/csio_lnode.c:1995:21: warning:
variable 'rln' set but not used [-Wunused-but-set-variable]
It is never used since introduction, so remove it.
Link: https://lore.kernel.org/r/20191029061530.98197-1-yuehaibing@huawei.com
Signed-off-by: YueHaibing <yuehaibing@huawei.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2019-11-12 22:21:34 -05:00
Bean Huo
cfcbae3895
scsi: ufs: fix potential bug which ends in system hang
...
In function __ufshcd_query_descriptor(), in the event of an error
happening, we directly goto out_unlock and forget to invaliate
hba->dev_cmd.query.descriptor pointer. This results in this pointer still
valid in ufshcd_copy_query_response() for other query requests which go
through ufshcd_exec_raw_upiu_cmd(). This will cause __memcpy() crash and
system hangs. Log as shown below:
Unable to handle kernel paging request at virtual address
ffff000012233c40
Mem abort info:
ESR = 0x96000047
Exception class = DABT (current EL), IL = 32 bits
SET = 0, FnV = 0
EA = 0, S1PTW = 0
Data abort info:
ISV = 0, ISS = 0x00000047
CM = 0, WnR = 1
swapper pgtable: 4k pages, 48-bit VAs, pgdp = 0000000028cc735c
[ffff000012233c40] pgd=00000000bffff003, pud=00000000bfffe003,
pmd=00000000ba8b8003, pte=0000000000000000
Internal error: Oops: 96000047 [#2 ] PREEMPT SMP
...
Call trace:
__memcpy+0x74/0x180
ufshcd_issue_devman_upiu_cmd+0x250/0x3c0
ufshcd_exec_raw_upiu_cmd+0xfc/0x1a8
ufs_bsg_request+0x178/0x3b0
bsg_queue_rq+0xc0/0x118
blk_mq_dispatch_rq_list+0xb0/0x538
blk_mq_sched_dispatch_requests+0x18c/0x1d8
__blk_mq_run_hw_queue+0xb4/0x118
blk_mq_run_work_fn+0x28/0x38
process_one_work+0x1ec/0x470
worker_thread+0x48/0x458
kthread+0x130/0x138
ret_from_fork+0x10/0x1c
Code: 540000ab a8c12027 a88120c7 a8c12027 (a88120c7)
---[ end trace 793e1eb5dff69f2d ]---
note: kworker/0:2H[2054] exited with preempt_count 1
This patch is to move "descriptor = NULL" down to below the label
"out_unlock".
Fixes: d44a5f98bb49b2(ufs: query descriptor API)
Link: https://lore.kernel.org/r/20191112223436.27449-3-huobean@gmail.com
Reviewed-by: Alim Akhtar <alim.akhtar@samsung.com >
Reviewed-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Bean Huo <beanhuo@micron.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2019-11-12 22:21:34 -05:00
Bean Huo
3d4881d1d6
scsi: ufs: print helpful hint when response size exceed buffer size
...
Print out returned response size and buffer size, while the front one is
bigger than the back one.
Link: https://lore.kernel.org/r/20191112223436.27449-2-huobean@gmail.com
Reviewed-by: Alim Akhtar <alim.akhtar@samsung.com >
Reviewed-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Bean Huo <beanhuo@micron.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2019-11-12 22:21:34 -05:00
John Garry
964231aa0c
scsi: hisi_sas: Stop converting a bool into a bool
...
The !! operator on a bool is pointless, so remove an example in
hisi_sas_rescan_topology().
Link: https://lore.kernel.org/r/1573551059-107873-5-git-send-email-john.garry@huawei.com
Signed-off-by: John Garry <john.garry@huawei.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2019-11-12 22:21:34 -05:00
Xiang Chen
7c0ecd40c3
scsi: hisi_sas: Relocate call to hisi_sas_debugfs_exit()
...
Currently we call function hisi_sas_debugfs_exit() to remove debugfs_dir
before freeing interrupt irqs and destroying workqueue in the driver remove
path.
If a dump is triggered before function hisi_sas_debugfs_exit() but
debugfs_work may be called after it, so it may refer to already removed
debugfs_dir which will cause NULL pointer dereference.
To avoid it, put function hisi_sas_debugfs_exit() after free_irqs and
destroy workqueue when removing hisi_sas driver.
Link: https://lore.kernel.org/r/1573551059-107873-4-git-send-email-john.garry@huawei.com
Signed-off-by: Xiang Chen <chenxiang66@hisilicon.com >
Signed-off-by: John Garry <john.garry@huawei.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2019-11-12 22:21:34 -05:00
Xiang Chen
547fde8b5a
scsi: hisi_sas: Return directly if init hardware failed
...
Need to return directly if init hardware failed.
Fixes: 73a4925d15 ("scsi: hisi_sas: Update all the registers after suspend and resume")
Link: https://lore.kernel.org/r/1573551059-107873-3-git-send-email-john.garry@huawei.com
Signed-off-by: Xiang Chen <chenxiang66@hisilicon.com >
Signed-off-by: John Garry <john.garry@huawei.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2019-11-12 22:21:34 -05:00
Xiang Chen
8c39673d54
scsi: hisi_sas: Check sas_port before using it
...
Need to check the structure sas_port before using it.
Link: https://lore.kernel.org/r/1573551059-107873-2-git-send-email-john.garry@huawei.com
Signed-off-by: Xiang Chen <chenxiang66@hisilicon.com >
Signed-off-by: John Garry <john.garry@huawei.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2019-11-12 22:21:33 -05:00
James Smart
3b294c0fb9
scsi: lpfc: Update lpfc version to 12.6.0.2
...
Update lpfc version to 12.6.0.2
Link: https://lore.kernel.org/r/20191111230401.12958-7-jsmart2021@gmail.com
Reviewed-by: Ewan D. Milne <emilne@redhat.com >
Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com >
Signed-off-by: James Smart <jsmart2021@gmail.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2019-11-12 22:21:33 -05:00
James Smart
542ddc9b34
scsi: lpfc: revise nvme max queues to be hdwq count
...
Driver is setting the initiator nvme template with a max hw queues value of
the present cpu count which is odd. It should be registering the number of
hdwq queues (queues created on the adapter).
Change to set nvme tempate, in all cases, to the number of hardware queues.
Link: https://lore.kernel.org/r/20191111230401.12958-6-jsmart2021@gmail.com
Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com >
Signed-off-by: James Smart <jsmart2021@gmail.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2019-11-12 22:21:33 -05:00
James Smart
bc227dde0d
scsi: lpfc: Initialize cpu_map for not present cpus
...
Currently, cpu_map[cpu#]->hdwq is left to equal LPFC_VECTOR_MAP_EMPTY for
not present CPUs. If a CPU is dynamically hot-added, it is possible we may
crash due to not assigning an allocated hdwq.
Correct by assigning a hdwq at initialization for all not-present CPUs.
Fixes: dcaa213679 ("scsi: lpfc: Change default IRQ model on AMD architectures")
Link: https://lore.kernel.org/r/20191111230401.12958-5-jsmart2021@gmail.com
Reviewed-by: Ewan D. Milne <emilne@redhat.com >
Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com >
Signed-off-by: James Smart <jsmart2021@gmail.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2019-11-12 22:21:33 -05:00
James Smart
d480e57809
scsi: lpfc: fix inlining of lpfc_sli4_cleanup_poll_list()
...
Compilation can fail due to having an inline function reference where the
function body is not present.
Fix by removing the inline tag.
Fixes: 93a4d6f401 ("scsi: lpfc: Add registration for CPU Offline/Online events")
Link: https://lore.kernel.org/r/20191111230401.12958-4-jsmart2021@gmail.com
Reviewed-by: Ewan D. Milne <emilne@redhat.com >
Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com >
Signed-off-by: James Smart <jsmart2021@gmail.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2019-11-12 22:21:33 -05:00
James Smart
6c6d59e0fe
scsi: lpfc: fix: Coverity: lpfc_cmpl_els_rsp(): Null pointer dereferences
...
Coverity reported the following:
*** CID 101747: Null pointer dereferences (FORWARD_NULL)
/drivers/scsi/lpfc/lpfc_els.c: 4439 in lpfc_cmpl_els_rsp()
4433 kfree(mp);
4434 }
4435 mempool_free(mbox, phba->mbox_mem_pool);
4436 }
4437 out:
4438 if (ndlp && NLP_CHK_NODE_ACT(ndlp)) {
vvv CID 101747: Null pointer dereferences (FORWARD_NULL)
vvv Dereferencing null pointer "shost".
4439 spin_lock_irq(shost->host_lock);
4440 ndlp->nlp_flag &= ~(NLP_ACC_REGLOGIN | NLP_RM_DFLT_RPI);
4441 spin_unlock_irq(shost->host_lock);
4442
4443 /* If the node is not being used by another discovery thread,
4444 * and we are sending a reject, we are done with it.
Fix by adding a check for non-null shost in line 4438.
The scenario when shost is set to null is when ndlp is null.
As such, the ndlp check present was sufficient. But better safe
than sorry so add the shost check.
Reported-by: coverity-bot <keescook+coverity-bot@chromium.org >
Addresses-Coverity-ID: 101747 ("Null pointer dereferences")
Fixes: 2e0fef85e0 ("[SCSI] lpfc: NPIV: split ports")
CC: James Bottomley <James.Bottomley@SteelEye.com >
CC: "Gustavo A. R. Silva" <gustavo@embeddedor.com >
CC: linux-next@vger.kernel.org
Link: https://lore.kernel.org/r/20191111230401.12958-3-jsmart2021@gmail.com
Reviewed-by: Ewan D. Milne <emilne@redhat.com >
Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com >
Signed-off-by: James Smart <jsmart2021@gmail.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2019-11-12 22:21:33 -05:00
James Smart
6f23f8c5c9
scsi: lpfc: fix: Coverity: lpfc_get_scsi_buf_s3(): Null pointer dereferences
...
Coverity reported the following:
*** CID 1487391: Null pointer dereferences (FORWARD_NULL)
/drivers/scsi/lpfc/lpfc_scsi.c: 614 in lpfc_get_scsi_buf_s3()
608 spin_unlock(&phba->scsi_buf_list_put_lock);
609 }
610 spin_unlock_irqrestore(&phba->scsi_buf_list_get_lock, iflag);
611
612 if (lpfc_ndlp_check_qdepth(phba, ndlp)) {
613 atomic_inc(&ndlp->cmd_pending);
vvv CID 1487391: Null pointer dereferences (FORWARD_NULL)
vvv Dereferencing null pointer "lpfc_cmd".
614 lpfc_cmd->flags |= LPFC_SBUF_BUMP_QDEPTH;
615 }
616 return lpfc_cmd;
617 }
618 /**
619 * lpfc_get_scsi_buf_s4 - Get a scsi buffer from io_buf_list of the HBA
Fix by checking lpfc_cmd to be non-NULL as part of line 612
Reported-by: coverity-bot <keescook+coverity-bot@chromium.org >
Addresses-Coverity-ID: 1487391 ("Null pointer dereferences")
Fixes: 2a5b7d626e ("scsi: lpfc: Limit tracking of tgt queue depth in fast path")
CC: "Martin K. Petersen" <martin.petersen@oracle.com >
CC: "Gustavo A. R. Silva" <gustavo@embeddedor.com >
CC: linux-next@vger.kernel.org
Link: https://lore.kernel.org/r/20191111230401.12958-2-jsmart2021@gmail.com
Reviewed-by: Ewan D. Milne <emilne@redhat.com >
Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com >
Signed-off-by: James Smart <jsmart2021@gmail.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2019-11-12 22:21:33 -05:00
Vignesh Raghavendra
6979e56cec
scsi: ufs: Add driver for TI wrapper for Cadence UFS IP
...
TI's J721e SoC has a Cadence UFS IP with a TI specific wrapper. This is a
minimal driver to configure the wrapper. It releases the UFS slave device
out of reset and sets up registers to indicate PHY reference clock input
frequency before probing child Cadence UFS driver.
Link: https://lore.kernel.org/r/20191108164857.11466-3-vigneshr@ti.com
Reviewed-by: Avri Altman <avri.altman@wdc.com >
Reviewed-by: Alim Akhtar <alim.akhtar@samsung.com >
Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2019-11-12 22:21:33 -05:00
Vignesh Raghavendra
8e31a94938
scsi: dt-bindings: ufs: ti,j721e-ufs.yaml: Add binding for TI UFS wrapper
...
Add binding documentation of TI wrapper for Cadence UFS Controller.
Link: https://lore.kernel.org/r/20191108164857.11466-2-vigneshr@ti.com
Reviewed-by: Rob Herring <robh@kernel.org >
Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2019-11-12 22:21:33 -05:00
Damien Le Moal
0eccce866f
scsi: target: tcmu: Prevent memory reclaim recursion
...
Prevent recursion into the IO path under low memory conditions by using
GFP_NOIO in place of GFP_KERNEL when allocating a new command with
tcmu_alloc_cmd() and user ring space with tcmu_get_empty_block().
Link: https://lore.kernel.org/r/20191108082901.417950-1-damien.lemoal@wdc.com
Reported-by: Masato Suzuki <masato.suzuki@wdc.com >
Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com >
Acked-by: Mike Christie <mchristi@redhat.com >
Reviewed-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2019-11-08 21:37:24 -05:00
Damien Le Moal
9237f04e12
scsi: core: Fix scsi_get/set_resid() interface
...
struct scsi_cmnd cmd->req.resid_len which is returned and set respectively
by the helper functions scsi_get_resid() and scsi_set_resid() is an
unsigned int. Reflect this fact in the interface of these helper functions.
Also fix compilation errors due to min() and max() type mismatch introduced
by this change in scsi debug code, usb transport code and in the USB ENE
card reader driver.
Link: https://lore.kernel.org/r/20191030090847.25650-1-damien.lemoal@wdc.com
Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com >
Reviewed-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2019-11-08 21:34:49 -05:00
Bart Van Assche
61951a6d31
scsi: lpfc: Fix lpfc_cpumask_of_node_init()
...
Fix the following kernel warning:
cpumask_of_node(-1): (unsigned)node >= nr_node_ids(1)
Fixes: dcaa213679 ("scsi: lpfc: Change default IRQ model on AMD architectures")
Link: https://lore.kernel.org/r/20191108225947.1395-1-jsmart2021@gmail.com
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: James Smart <jsmart2021@gmail.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2019-11-08 21:29:42 -05:00
Bart Van Assche
eea2d396aa
scsi: lpfc: Fix a kernel warning triggered by lpfc_sli4_enable_intr()
...
Fix the following lockdep warning:
============================================
WARNING: possible recursive locking detected
5.4.0-rc6-dbg+ #2 Not tainted
--------------------------------------------
systemd-udevd/130 is trying to acquire lock:
ffffffff826b05d0 (cpu_hotplug_lock.rw_sem){++++}, at: irq_calc_affinity_vectors+0x63/0x90
but task is already holding lock:
ffffffff826b05d0 (cpu_hotplug_lock.rw_sem){++++}, at: lpfc_sli4_enable_intr+0x422/0xd50 [lpfc]
other info that might help us debug this:
Possible unsafe locking scenario:
CPU0
----
lock(cpu_hotplug_lock.rw_sem);
lock(cpu_hotplug_lock.rw_sem);
*** DEADLOCK ***
May be due to missing lock nesting notation
2 locks held by systemd-udevd/130:
#0 : ffff8880d53fe210 (&dev->mutex){....}, at: __device_driver_lock+0x4a/0x70
#1 : ffffffff826b05d0 (cpu_hotplug_lock.rw_sem){++++}, at: lpfc_sli4_enable_intr+0x422/0xd50 [lpfc]
stack backtrace:
CPU: 1 PID: 130 Comm: systemd-udevd Not tainted 5.4.0-rc6-dbg+ #2
Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
Call Trace:
dump_stack+0xa5/0xe6
__lock_acquire.cold+0xf7/0x23a
lock_acquire+0x106/0x240
cpus_read_lock+0x41/0xe0
irq_calc_affinity_vectors+0x63/0x90
__pci_enable_msix_range+0x10a/0x950
pci_alloc_irq_vectors_affinity+0x144/0x210
lpfc_sli4_enable_intr+0x4b2/0xd50 [lpfc]
lpfc_pci_probe_one+0x1411/0x22b0 [lpfc]
local_pci_probe+0x7c/0xc0
pci_device_probe+0x25d/0x390
really_probe+0x170/0x510
driver_probe_device+0x127/0x190
device_driver_attach+0x98/0xa0
__driver_attach+0xb6/0x1a0
bus_for_each_dev+0x100/0x150
driver_attach+0x31/0x40
bus_add_driver+0x246/0x300
driver_register+0xe0/0x170
__pci_register_driver+0xde/0xf0
lpfc_init+0x134/0x1000 [lpfc]
do_one_initcall+0xda/0x47e
do_init_module+0x10a/0x3b0
load_module+0x4318/0x47c0
__do_sys_finit_module+0x134/0x1d0
__x64_sys_finit_module+0x47/0x50
do_syscall_64+0x6f/0x2e0
entry_SYSCALL_64_after_hwframe+0x49/0xbe
Fixes: dcaa213679 ("scsi: lpfc: Change default IRQ model on AMD architectures")
Link: https://lore.kernel.org/r/20191107052158.25788-4-bvanassche@acm.org
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Reviewed-by: James Smart <jsmart2021@gmail.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2019-11-08 21:28:53 -05:00
Bart Van Assche
765ab6cdac
scsi: lpfc: Fix a kernel warning triggered by lpfc_get_sgl_per_hdwq()
...
Fix the following kernel bug report:
BUG: using smp_processor_id() in preemptible [00000000] code: systemd-udevd/954
Fixes: d79c9e9d4b ("scsi: lpfc: Support dynamic unbounded SGL lists on G7 hardware.")
Link: https://lore.kernel.org/r/20191107052158.25788-2-bvanassche@acm.org
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Reviewed-by: James Smart <james.smart@broadcom.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2019-11-08 21:28:23 -05:00
Martin Wilck
a10c8803d0
scsi: qla2xxx: don't use zero for FC4_PRIORITY_NVME
...
Avoid an uninitialized value (0) for ha->fc4_type_priority being falsely
interpreted as NVMe priority. Not strictly needed any more after the
previous patch, but makes the fc4_type_priority handling more explicit.
Link: https://lore.kernel.org/r/20191107224839.32417-3-martin.wilck@suse.com
Tested-by: David Bond <dbond@suse.com >
Acked-by: Himanshu Madhani <hmadhani@marvell.com >
Reviewed-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin Wilck <mwilck@suse.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2019-11-08 21:23:23 -05:00
Martin Wilck
f5a2b219a7
scsi: qla2xxx: initialize fc4_type_priority
...
ha->fc4_type_priority is currently initialized only in
qla81xx_nvram_config(). That makes it default to NVMe for other adapters.
Fix it.
Fixes: 84ed362ac4 ("scsi: qla2xxx: Dual FCP-NVMe target port support")
Link: https://lore.kernel.org/r/20191107224839.32417-2-martin.wilck@suse.com
Tested-by: David Bond <dbond@suse.com >
Acked-by: Himanshu Madhani <hmadhani@marvell.com >
Reviewed-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin Wilck <mwilck@suse.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2019-11-08 21:23:11 -05:00
Bart Van Assche
162b805e38
scsi: qla2xxx: Fix a dma_pool_free() call
...
This patch fixes the following kernel warning:
DMA-API: qla2xxx 0000:00:0a.0: device driver frees DMA memory with different size [device address=0x00000000c7b60000] [map size=4088 bytes] [unmap size=512 bytes]
WARNING: CPU: 3 PID: 1122 at kernel/dma/debug.c:1021 check_unmap+0x4d0/0xbd0
CPU: 3 PID: 1122 Comm: rmmod Tainted: G O 5.4.0-rc1-dbg+ #1
RIP: 0010:check_unmap+0x4d0/0xbd0
Call Trace:
debug_dma_free_coherent+0x123/0x173
dma_free_attrs+0x76/0xe0
qla2x00_mem_free+0x329/0xc40 [qla2xxx_scst]
qla2x00_free_device+0x170/0x1c0 [qla2xxx_scst]
qla2x00_remove_one+0x4f0/0x6d0 [qla2xxx_scst]
pci_device_remove+0xd5/0x1f0
device_release_driver_internal+0x159/0x280
driver_detach+0x8b/0xf2
bus_remove_driver+0x9a/0x15a
driver_unregister+0x51/0x70
pci_unregister_driver+0x2d/0x130
qla2x00_module_exit+0x1c/0xbc [qla2xxx_scst]
__x64_sys_delete_module+0x22a/0x300
do_syscall_64+0x6f/0x2e0
entry_SYSCALL_64_after_hwframe+0x49/0xbe
Fixes: 3f006ac342 ("scsi: qla2xxx: Secure flash update support for ISP28XX") # v5.2-rc1~130^2~270.
Cc: Michael Hernandez <mhernandez@marvell.com >
Cc: Himanshu Madhani <hmadhani@marvell.com >
Link: https://lore.kernel.org/r/20191106044226.5207-3-bvanassche@acm.org
Reviewed-by: Martin Wilck <mwilck@suse.com >
Acked-by: Himanshu Madhani <hmadhani@marvell.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2019-11-08 21:21:31 -05:00
Bart Van Assche
47140a20a8
scsi: qla2xxx: Remove an include directive
...
Since the code in qla_init.c is initiator code, remove the SCSI target core
include directive.
Cc: Himanshu Madhani <hmadhani@marvell.com >
Link: https://lore.kernel.org/r/20191106044226.5207-2-bvanassche@acm.org
Reviewed-by: Martin Wilck <mwilck@suse.com >
Acked-by: Himanshu Madhani <hmadhani@marvell.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2019-11-08 21:21:18 -05:00
Himanshu Madhani
b3f7456841
scsi: qla2xxx: Update driver version to 10.01.00.21-k
...
Link: https://lore.kernel.org/r/20191105150657.8092-9-hmadhani@marvell.com
Reviewed-by: Ewan D. Milne <emilne@redhat.com >
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2019-11-08 21:15:42 -05:00
Arun Easi
65e9200938
scsi: qla2xxx: Fix device connect issues in P2P configuration
...
P2P needs to take the alternate plogi route.
Link: https://lore.kernel.org/r/20191105150657.8092-8-hmadhani@marvell.com
Reviewed-by: Ewan D. Milne <emilne@redhat.com >
Signed-off-by: Arun Easi <aeasi@marvell.com >
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2019-11-08 21:15:42 -05:00
Arun Easi
2f856d4e8c
scsi: qla2xxx: Fix memory leak when sending I/O fails
...
On heavy loads, a memory leak of the srb_t structure is observed. This
would make the qla2xxx_srbs cache gobble up memory.
Fixes: 219d27d714 ("scsi: qla2xxx: Fix race conditions in the code for aborting SCSI commands")
Cc: stable@vger.kernel.org # 5.2
Link: https://lore.kernel.org/r/20191105150657.8092-7-hmadhani@marvell.com
Reviewed-by: Ewan D. Milne <emilne@redhat.com >
Signed-off-by: Arun Easi <aeasi@marvell.com >
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2019-11-08 21:15:42 -05:00
Quinn Tran
f45bca8c50
scsi: qla2xxx: Fix double scsi_done for abort path
...
Current code assumes abort will remove the original command from the active
list where scsi_done will not be called. Instead, the eh_abort thread will
do the scsi_done. That is not the case. Instead, we have a double
scsi_done calls triggering use after free.
Abort will tell FW to release the command from FW possesion. The original
command will return to ULP with error in its normal fashion via scsi_done.
eh_abort path would wait for the original command completion before
returning. eh_abort path will not perform the scsi_done call.
Fixes: 219d27d714 ("scsi: qla2xxx: Fix race conditions in the code for aborting SCSI commands")
Cc: stable@vger.kernel.org # 5.2
Link: https://lore.kernel.org/r/20191105150657.8092-6-hmadhani@marvell.com
Reviewed-by: Ewan D. Milne <emilne@redhat.com >
Signed-off-by: Quinn Tran <qutran@marvell.com >
Signed-off-by: Arun Easi <aeasi@marvell.com >
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2019-11-08 21:15:42 -05:00
Quinn Tran
dd322b7f3e
scsi: qla2xxx: Fix driver unload hang
...
This patch fixes driver unload hang by removing msleep()
Fixes: d74595278f ("scsi: qla2xxx: Add multiple queue pair functionality.")
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20191105150657.8092-5-hmadhani@marvell.com
Reviewed-by: Ewan D. Milne <emilne@redhat.com >
Signed-off-by: Quinn Tran <qutran@marvell.com >
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2019-11-08 21:15:42 -05:00
Quinn Tran
af2a0c51b1
scsi: qla2xxx: Fix SRB leak on switch command timeout
...
when GPSC/GPDB switch command fails, driver just returns without doing a
proper cleanup. This patch fixes this memory leak by calling sp->free() in
the error path.
Link: https://lore.kernel.org/r/20191105150657.8092-4-hmadhani@marvell.com
Reviewed-by: Ewan D. Milne <emilne@redhat.com >
Signed-off-by: Quinn Tran <qutran@marvell.com >
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2019-11-08 21:15:41 -05:00
Quinn Tran
71c80b75ce
scsi: qla2xxx: Do command completion on abort timeout
...
On switch, fabric and mgt command timeout, driver send Abort to tell FW to
return the original command. If abort is timeout, then return both Abort
and original command for cleanup.
Fixes: 219d27d714 ("scsi: qla2xxx: Fix race conditions in the code for aborting SCSI commands")
Cc: stable@vger.kernel.org # 5.2
Link: https://lore.kernel.org/r/20191105150657.8092-3-hmadhani@marvell.com
Reviewed-by: Ewan D. Milne <emilne@redhat.com >
Signed-off-by: Quinn Tran <qutran@marvell.com >
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2019-11-08 21:15:41 -05:00
Quinn Tran
983f127603
scsi: qla2xxx: Retry PLOGI on FC-NVMe PRLI failure
...
Current code will send PRLI with FC-NVMe bit set for the targets which
support only FCP. This may result into issue with targets which do not
understand NVMe and will go into a strange state. This patch would restart
the login process by going back to PLOGI state. The PLOGI state will force
the target to respond to correct PRLI request.
Fixes: c76ae845ea ("scsi: qla2xxx: Add error handling for PLOGI ELS passthrough")
Cc: stable@vger.kernel.org # 5.4
Link: https://lore.kernel.org/r/20191105150657.8092-2-hmadhani@marvell.com
Reviewed-by: Ewan D. Milne <emilne@redhat.com >
Signed-off-by: Quinn Tran <qutran@marvell.com >
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2019-11-08 21:15:41 -05:00
Vinod Koul
c8510d2403
scsi: dt-bindings: ufs: Add sm8150 compatible string
...
Document "qcom,sm8150-ufshc" compatible string for UFS HC found on SM8150.
Link: https://lore.kernel.org/r/20191024074802.26526-2-vkoul@kernel.org
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org >
Reviewed-by: Stephen Boyd <swboyd@chromium.org >
Acked-by: Rob Herring <robh@kernel.org >
Signed-off-by: Vinod Koul <vkoul@kernel.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2019-11-06 00:21:09 -05:00
Maurizio Lombardi
f9fab3d986
scsi: target: iscsi: rename some variables to avoid confusion.
...
This patch renames some variables in chap_server_compute_hash() to make it
harder to confuse the initiator's challenge with the target's challenge
when the mutual chap authentication is used.
Link: https://lore.kernel.org/r/20191017131037.9903-4-mlombard@redhat.com
Signed-off-by: Maurizio Lombardi <mlombard@redhat.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2019-11-06 00:14:33 -05:00
Maurizio Lombardi
19f5f88ed7
scsi: target: iscsi: tie the challenge length to the hash digest size
...
Link: https://lore.kernel.org/r/20191017131037.9903-3-mlombard@redhat.com
Signed-off-by: Maurizio Lombardi <mlombard@redhat.com >
Tested-by: Chris Leech <cleech@redhat.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2019-11-06 00:13:24 -05:00
Maurizio Lombardi
a572d24af4
scsi: target: iscsi: CHAP: add support for SHA1, SHA256 and SHA3-256
...
This patch modifies the chap_server_compute_hash() function to make it
agnostic to the choice of hash algorithm that is used. It also adds
support to three new hash algorithms: SHA1, SHA256 and SHA3-256.
The chap_got_response() function has been removed because the digest type
validity is already checked by chap_server_open()
Link: https://lore.kernel.org/r/20191028123822.5864-2-mlombard@redhat.com
Signed-off-by: Maurizio Lombardi <mlombard@redhat.com >
Tested-by: Chris Leech <cleech@redhat.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2019-11-06 00:11:35 -05:00
Bart Van Assche
f6b8540f40
scsi: tracing: Fix handling of TRANSFER LENGTH == 0 for READ(6) and WRITE(6)
...
According to SBC-2 a TRANSFER LENGTH field of zero means that 256 logical
blocks must be transferred. Make the SCSI tracing code follow SBC-2.
Fixes: bf81623542 ("[SCSI] add scsi trace core functions and put trace points")
Cc: Christoph Hellwig <hch@lst.de >
Cc: Hannes Reinecke <hare@suse.com >
Cc: Douglas Gilbert <dgilbert@interlog.com >
Link: https://lore.kernel.org/r/20191105215553.185018-1-bvanassche@acm.org
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2019-11-06 00:06:03 -05:00