Re: [PATCH] sg: recheck MMAP_IO request length with lock held

From: Martin K. Petersen
Date: Tue Aug 22 2017 - 21:47:02 EST



Todd,

> Commit 1bc0eb044615 ("scsi: sg: protect accesses to 'reserved' page
> array") adds needed concurrency protection for the "reserve" buffer.
> Some checks that are initially made outside the lock are replicated once
> the lock is taken to ensure the checks and resulting decisions are made
> using consistent state.
>
> The check that a request with flag SG_FLAG_MMAP_IO set fits in the
> reserve buffer also needs to be performed again under the lock to
> ensure the reserve buffer length compared against matches the value in
> effect when the request is linked to the reserve buffer. An -ENOMEM
> should be returned in this case, instead of switching over to an
> indirect buffer as for non-MMAP_IO requests.

Applied to 4.14/scsi-queue, thank you!

--
Martin K. Petersen Oracle Linux Engineering