On Mon, Jun 17, 2019 at 11:03:36AM +0800, Ming Lei wrote:
> Use the scatterlist iterators and remove direct indexing of the
> scatterlist array.
>
> This way allows us to pre-allocate one small scatterlist, which can be
> chained with one runtime allocated scatterlist if the pre-allocated one isn'
On Mon, Jun 17, 2019 at 11:03:35AM +0800, Ming Lei wrote:
> Use the scatterlist iterators and remove direct indexing of the
> scatterlist array.
>
> This way allows us to pre-allocate one small scatterlist, which can be
> chained with one runtime allocated scatterlist if the pre-allocated one
> is
On Mon, Jun 17, 2019 at 11:03:34AM +0800, Ming Lei wrote:
> Use the scatterlist iterators and remove direct indexing of the scatterlist
> array.
>
> This way allows us to pre-allocate one small scatterlist, which can be chained
> with one runtime allocated scatterlist if the pre-allocated one isn'
On Mon, Jun 17, 2019 at 11:03:37AM +0800, Ming Lei wrote:
> Use the scatterlist iterators and remove direct indexing of the
> scatterlist array.
>
> This way allows us to pre-allocate one small scatterlist, which can be
> chained with one runtime allocated scatterlist if the pre-allocated one
> is
> - for (i = 0; i < (len / bsize_elem); i++, buffer += bsize_elem) {
> - struct page *page = sg_page(&scatterlist[i]);
> + for (i = 0; i < (len / bsize_elem); i++, sg = sg_next(sg), buffer +=
> bsize_elem) {
Please split the overly long line.
> + struct page *page
Same kmap issue here that will need addressing. Otherwise looks
good:
Reviewed-by: Christoph Hellwig
Looks good,
Reviewed-by: Christoph Hellwig
The patch itsel looks good, but another case of buggy kmap it seems:
Reviewed-by: Christoph Hellwig
On Mon, Jun 17, 2019 at 11:03:42AM +0800, Ming Lei wrote:
> Use the scatterlist iterators and remove direct indexing of the
> scatterlist array.
>
> This way allows us to pre-allocate one small scatterlist, which can be
> chained with one runtime allocated scatterlist if the pre-allocated one
> is
On Mon, Jun 17, 2019 at 11:03:43AM +0800, Ming Lei wrote:
> Use the scatterlist iterators and remove direct indexing of the
> scatterlist array.
>
> This way allows us to pre-allocate one small scatterlist, which can be
> chained with one runtime allocated scatterlist if the pre-allocated one
> is
Looks good,
Reviewed-by: Christoph Hellwig
On Mon, Jun 17, 2019 at 11:03:45AM +0800, Ming Lei wrote:
> Use the scatterlist iterators and remove direct indexing of the
> scatterlist array.
>
> This way allows us to pre-allocate one small scatterlist, which can be
> chained with one runtime allocated scatterlist if the pre-allocated one
> is
On Mon, Jun 17, 2019 at 11:03:46AM +0800, Ming Lei wrote:
> Use the scatterlist iterators and remove direct indexing of the
> scatterlist array.
>
> This way allows us to pre-allocate one small scatterlist, which can be
> chained with one runtime allocated scatterlist if the pre-allocated one
> is
On Mon, Jun 17, 2019 at 11:03:47AM +0800, Ming Lei wrote:
> Use the scatterlist iterators and remove direct indexing of the
> scatterlist array.
>
> This way allows us to pre-allocate one small scatterlist, which can be
> chained with one runtime allocated scatterlist if the pre-allocated one
> is
On Mon, Jun 17, 2019 at 11:03:48AM +0800, Ming Lei wrote:
> Use the scatterlist iterators and remove direct indexing of the
> scatterlist array.
>
> This way allows us to pre-allocate one small scatterlist, which can be
> chained with one runtime allocated scatterlist if the pre-allocated one
> is
On Mon, Jun 17, 2019 at 11:03:49AM +0800, Ming Lei wrote:
> From: Finn Thain
>
> My understanding is that support for chained scatterlists is to
> become mandatory for LLDs.
>
> Use the scatterlist iterators and remove direct indexing of the
> scatterlist array.
>
> This way allows us to pre-al
On Mon, Jun 17, 2019 at 10:24:23AM +0200, Christoph Hellwig wrote:
> > - for (i = 0; i < (len / bsize_elem); i++, buffer += bsize_elem) {
> > - struct page *page = sg_page(&scatterlist[i]);
> > + for (i = 0; i < (len / bsize_elem); i++, sg = sg_next(sg), buffer +=
> > bsize_elem) {
>
On Mon, Jun 17, 2019 at 10:27:06AM +0200, Christoph Hellwig wrote:
> On Mon, Jun 17, 2019 at 11:03:42AM +0800, Ming Lei wrote:
> > Use the scatterlist iterators and remove direct indexing of the
> > scatterlist array.
> >
> > This way allows us to pre-allocate one small scatterlist, which can be
>
> + struct scatterlist *sg = *cur_sg ?:
> + (struct scatterlist *)scsi_sglist(srb);
> +
No need for the cast here. And I have to say I hate that GNU C
non-standard shortshut in ? :.
Why not simply:
struct scatterlist *sg = *cur_sg;
IEEE_8021QAZ_APP_SEL_STREAM is a valid selector
for iSCSI connections, so add code to use
IEEE_8021QAZ_APP_SEL_STREAM selector to get priority
mask.
Signed-off-by: Varun Prakash
---
drivers/scsi/cxgbi/cxgb4i/cxgb4i.c | 9 +++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/dr
On 6/7/19 5:46 PM, James Smart wrote:
> On 6/7/2019 5:30 AM, Martin K. Petersen wrote:
>> Hannes,
>>
>>> So let's restrict userspace to only ever setting 'RUNNING' or
>>> 'OFFLINE'. None of the other states make sense to set from userspace.
>> Yes, please!
>>
>
> +1 for me too
>
Ok, will be draf
On 6/7/19 10:55 PM, Linus Torvalds wrote:
> On Tue, Jun 4, 2019 at 2:30 AM Hannes Reinecke wrote:
>>
>> Gcc-9 complains for a memset across pointer boundaries, which happens
>> as the code tries to allocate a flexible array on the stack.
>> Turns out we cannot do this without relying on gcc-isms,
Several SCSI transport and LLD drivers surround code that does not
tolerate concurrent calls of .queuecommand() with scsi_target_block() /
scsi_target_unblock(). These last two functions use
blk_mq_quiesce_queue() / blk_mq_unquiesce_queue() for scsi-mq request
queues to prevent concurrent .queuecom
The ability to modify the SCSI device state was introduced by commit
638127e579a4 ("[PATCH] Fix error handler offline behaviour"; v2.6.12). That
same commit introduced the following device states:
{ SDEV_CREATED, "created" },
{ SDEV_RUNNING, "running" },
{ SDEV_CANCEL, "cance
Hi Martin,
As explained in a recent LSF/MM topic proposal, it can happen that the SCSI
error handler calls .queuecommand() for a blocked SCSI device. SCSI LLDs do
not expect this. Hence this patch series. Please consider this series for
kernel v5.3.
Thanks,
Bart.
Changes compared to v3:
- Inste
The previous patch guarantees that srp_queuecommand() does not get
invoked while reconnecting occurs. Hence remove the code from
srp_queuecommand() that prevents command queueing while reconnecting.
This patch avoids that the following can appear in the kernel log:
BUG: sleeping function called fr
See below.
On Fri, 2019-06-14 at 15:10 -0700, Himanshu Madhani wrote:
> From: Arun Easi
>
> BUG: unable to handle kernel NULL pointer dereference at (null)
> IP: [] qla_nvme_unregister_remote_port+0x6c/0xf0 [qla2xxx]
> PGD 80084cf41067 PUD 84d288067 PMD 0
> Oops: [#1] SMP
> Ca
On Fri, 2019-06-14 at 15:10 -0700, Himanshu Madhani wrote:
> From: Quinn Tran
>
> - on session delete or chip reset, reject all NVME commands.
> - on NVME command submission error, free srb resource.
>
> Signed-off-by: Quinn Tran
> Signed-off-by: Himanshu Madhani
> ---
> drivers/scsi/qla2xxx/
Thanks for the review, Ewan. My response inline..
On Mon, 17 Jun 2019, 11:38am, Ewan D. Milne wrote:
> See below.
>
> On Fri, 2019-06-14 at 15:10 -0700, Himanshu Madhani wrote:
> > From: Arun Easi
> >
> > BUG: unable to handle kernel NULL pointer dereference at (null)
> > IP: [] qla_
Hi Martin,
This patch series includes two fixes for patches that went upstream during the
v5.2-r1 merge window and a fix for a race condition in the abort handling code.
Please consider this patch series for kernel v5.3.
Thanks,
Bart.
Bart Van Assche (6):
qla2xxx: Make qla2x00_abort_srb() aga
Since qla2x00_abort_srb() starts with increasing the reference count of
@sp, decrease that same reference count before returning.
Cc: Himanshu Madhani
Cc: Giridhar Malavali
Fixes: 219d27d7147e ("scsi: qla2xxx: Fix race conditions in the code for
aborting SCSI commands") # v5.2.
Signed-off-by: B
I'm not sure how this happened but the patch that was intended to fix
abort handling was incomplete. This patch fixes that patch as follows:
- If aborting the SCSI command failed, wait until the SCSI command
completes.
- Return SUCCESS instead of FAILED if an abort attempt races with SCSI
comma
This patch fixes a race condition: it avoids that the
atomic_dec(&sp->ref_count) statement in qla2xxx_eh_abort() sporadically
triggers a use-after-free.
Cc: Himanshu Madhani
Cc: Giridhar Malavali
Signed-off-by: Bart Van Assche
---
drivers/scsi/qla2xxx/qla_bsg.c| 4 +--
drivers/scsi/qla2xx
Instead of making all qla2xxx_get_qpair_sp() callers initialize
sp->ref_count, move the initialization of that variable into
qla2xxx_get_qpair_sp(). This patch does not change any functionality.
Cc: Himanshu Madhani
Cc: Giridhar Malavali
Signed-off-by: Bart Van Assche
---
drivers/scsi/qla2xxx/
Since all pointers passed to the srb_t.done() and srb_t.free() functions
have type srb_t, change the type of the first argument of these functions
from void * into struct srb *. This allows the compiler to verify the
argument types for these functions. This patch does not change any
functionality.
For each SRB type, make the free function free all memory associated
with the SRB. Initialize the .free() function pointer after the
qla2x00_init_timer() call and before the first sp->free(sp) call to
make sure that all sp->free(sp) calls call the right .free() function.
Remove the qla24xx_sp_unmap
On 6/14/19 3:58 PM, Himanshu Madhani wrote:
Yes. We are in process of doing the larger cleanup. However, this > patch was
part of fixes we verified for a crash and want to get this
in a distro before the wider cleanup is submitted for inclusion.
Hi Himanshu,
It's not that hard to fix this pro
On Mon, 17 Jun 2019, Finn Thain wrote:
> On Mon, 17 Jun 2019, Ming Lei wrote:
>
> > Use the scatterlist iterators and remove direct indexing of the
> > scatterlist array.
> >
> > This way allows us to pre-allocate one small scatterlist, which can be
> > chained with one runtime allocated scatter
On 6/16/19 8:03 PM, Ming Lei wrote:
Scsi MQ makes a large static allocation for the first scatter gather
list chunk for the driver to use. This is a performance headache we'd
like to fix by reducing the size of the allocation to a 2 element
array. Doing this will break the current guarantee tha
Bart,
Attached is the clean-up patch that we held back from the series. We felt it
wasn't ready for wider audience because it needed additional soak time with our
test group.
We want to ahead and share it with you to let you know that we intent to
cleanup the duplicate atomic [ref_count|kref]
On Tue, Jun 18, 2019 at 09:35:48AM +1000, Finn Thain wrote:
> On Mon, 17 Jun 2019, Finn Thain wrote:
>
> > On Mon, 17 Jun 2019, Ming Lei wrote:
> >
> > > Use the scatterlist iterators and remove direct indexing of the
> > > scatterlist array.
> > >
> > > This way allows us to pre-allocate one sm
Use the scatterlist iterators and remove direct indexing of the scatterlist
array.
This way allows us to pre-allocate one small scatterlist, which can be chained
with one runtime allocated scatterlist if the pre-allocated one isn't enough
for the whole request.
Reviewed-by: Ewan D. Milne
Reviewe
Use the scatterlist iterators and remove direct indexing of the
scatterlist array.
This way allows us to pre-allocate one small scatterlist, which can be
chained with one runtime allocated scatterlist if the pre-allocated one
isn't enough for the whole request.
Reviewed-by: Ewan D. Milne
Reviewe
Use the scatterlist iterators and remove direct indexing of the
scatterlist array.
This way allows us to pre-allocate one small scatterlist, which can be
chained with one runtime allocated scatterlist if the pre-allocated one isn't
enough for the whole request.
Reviewed by: Ewan D. Milne
Reviewe
Use the scatterlist iterators and remove direct indexing of the
scatterlist array.
This way allows us to pre-allocate one small scatterlist, which can be
chained with one runtime allocated scatterlist if the pre-allocated one
isn't enough for the whole request.
Reviewed-by: Christoph Hellwig
Rev
Use the scatterlist iterators and remove direct indexing of the
scatterlist array.
This way allows us to pre-allocate one small scatterlist, which can be
chained with one runtime allocated scatterlist if the pre-allocated one
isn't enough for the whole request.
Reviewed-by: Bart Van Assche
Signe
Hi,
Scsi MQ makes a large static allocation for the first scatter gather
list chunk for the driver to use. This is a performance headache we'd
like to fix by reducing the size of the allocation to a 2 element
array. Doing this will break the current guarantee that any driver
using SG_ALL doesn't
Use the scatterlist iterators and remove direct indexing of the
scatterlist array.
This way allows us to pre-allocate one small scatterlist, which can be
chained with one runtime allocated scatterlist if the pre-allocated one
isn't enough for the whole request.
Reviewed-by: Christoph Hellwig
Rev
Use the scatterlist iterators and remove direct indexing of the
scatterlist array.
This way allows us to pre-allocate one small scatterlist, which can be
chained with one runtime allocated scatterlist if the pre-allocated one
isn't enough for the whole request.
Cc: Kim Bradley
Cc: de...@driverde
Use the scatterlist iterators and remove direct indexing of the
scatterlist array.
This way allows us to pre-allocate one small scatterlist, which can be
chained with one runtime allocated scatterlist if the pre-allocated one
isn't enough for the whole request.
Cc: de...@driverdev.osuosl.org
Cc:
Use the scatterlist iterators and remove direct indexing of the
scatterlist array.
This way allows us to pre-allocate one small scatterlist, which can be
chained with one runtime allocated scatterlist if the pre-allocated one
isn't enough for the whole request.
Cc: Oliver Neukum
Cc: Greg Kroah-H
From: Finn Thain
Use the scatterlist iterators and remove direct indexing of the
scatterlist array.
This way allows us to pre-allocate one small scatterlist, which can be
chained with one runtime allocated scatterlist if the pre-allocated one
isn't enough for the whole request.
Finn added the c
Use the scatterlist iterators and remove direct indexing of the
scatterlist array.
This way allows us to pre-allocate one small scatterlist, which can be
chained with one runtime allocated scatterlist if the pre-allocated one
isn't enough for the whole request.
Reviewed-by: Christoph Hellwig
Rev
From: Finn Thain
My understanding is that support for chained scatterlists is to
become mandatory for LLDs.
Use the scatterlist iterators and remove direct indexing of the
scatterlist array.
This way allows us to pre-allocate one small scatterlist, which can be
chained with one runtime allocate
Use the scatterlist iterators and remove direct indexing of the
scatterlist array.
This way allows us to pre-allocate one small scatterlist, which can be
chained with one runtime allocated scatterlist if the pre-allocated one
isn't enough for the whole request.
Reviewed-by: Christoph Hellwig
Rev
Use the scatterlist iterators and remove direct indexing of the
scatterlist array.
This way allows us to pre-allocate one small scatterlist, which can be
chained with one runtime allocated scatterlist if the pre-allocated one
isn't enough for the whole request.
Cc: Steffen Maier
Cc: Benjamin Blo
Use the scatterlist iterators and remove direct indexing of the
scatterlist array.
This way allows us to pre-allocate one small scatterlist, which can be
chained with one runtime allocated scatterlist if the pre-allocated one
isn't enough for the whole request.
Reviewed-by: Christoph Hellwig
Rev
Use the scatterlist iterators and remove direct indexing of the
scatterlist array.
This way allows us to pre-allocate one small scatterlist, which can be
chained with one runtime allocated scatterlist if the pre-allocated one
isn't enough for the whole request.
Reviewed-by: Christoph Hellwig
Rev
On Tue, 18 Jun 2019, Ming Lei wrote:
> From: Finn Thain
>
> Use the scatterlist iterators and remove direct indexing of the
> scatterlist array.
>
> This way allows us to pre-allocate one small scatterlist, which can be
> chained with one runtime allocated scatterlist if the pre-allocated one
>
On 6/17/19 5:18 PM, Bart Van Assche wrote:
> The ability to modify the SCSI device state was introduced by commit
> 638127e579a4 ("[PATCH] Fix error handler offline behaviour"; v2.6.12). That
> same commit introduced the following device states:
>
>{ SDEV_CREATED, "created" },
>{ S
On 6/17/19 5:18 PM, Bart Van Assche wrote:
> Several SCSI transport and LLD drivers surround code that does not
> tolerate concurrent calls of .queuecommand() with scsi_target_block() /
> scsi_target_unblock(). These last two functions use
> blk_mq_quiesce_queue() / blk_mq_unquiesce_queue() for scs
61 matches
Mail list logo