On Mon, 2019-06-10 at 15:36 -0400, Ewan D. Milne wrote: > On Mon, 2019-06-10 at 11:37 -0700, James Bottomley wrote: > > On Mon, 2019-06-10 at 23:03 +0800, Ming Lei wrote: > > > The current way isn't safe for chained sgl, so use sgl helper to > > > operate sgl. > > > > The advansys driver doesn't currently use a chained > > scatterlist. In > > theory it could; the > > > > if (shost->sg_tablesize > SG_ALL) { > > shost->sg_tablesize = SG_ALL; > > } > > > > At around line 11226 is what prevents it and that could be > > eliminated provided someone actually has the hardware to test. > > > > However, provided drivers make the correct SG_ALL or less > > declaration, they're entitled to treat scatterlists as fully > > contiguous, so there's no real justification (beyond uniformity) > > for making it use the chain helpers. > > > > James > > > > I thought the whole issue came about because Ming's earlier changes > to scsi_lib.c made the previously SG_CHUNK_SIZE scatterlist allocated > with the struct request much smaller, (SCSI_INLINE_SG_CNT is 2) so > everything needs to support it? Um, well, I'm just going by the commit log. If the problem is someone broke the SG_ALL no chaining assumption in an earlier commit, finger that as the buggy commit you're fixing rather than implying the drivers had a longstanding bug. In fact, preferably do this work as a precursor to the original instead of leaving the drivers broken for a bisect. James