Re: nr_pages calculation in scsi_req_map_sg()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Jan Beulich wrote:
>>>> Boaz Harrosh <bharrosh@xxxxxxxxxxx> 22.07.08 15:28 >>>
>> Jan Beulich wrote:
>>> James,
>>>
>>> while reviewing code derived from that function I found this calculation
>>> to be suspicious: I would think that it should get it wrong when both
>>> start and end of the buffer area are misaligned (e.g. consider the case
>>> where sgl->offset equals PAGE_SIZE-1 and bufflen equals 2 - the result
>>> would be 1 when it should have been 2).
>>> Is there something preventing this from happening?
>>>
>>> Thanks, Jan
>>>
>>> --
>> It has been discussed before for example look here:
>> http://www.spinics.net/lists/linux-scsi/msg13454.html 
>>
>> But for me the main reason it is not fixed is because
>> this is only called from scsi_execute_async() which
>> is a deprecated function. It is still used by old code
>> which is supposed to be removed soon. Any new code will
>> not be accepted if it uses scsi_execute_async().
> 
> No, that's a different issue: Even if the sg elements are all contiguous,
> the count can be wrong, as described in the original mail. And as said,
> I found this in code cloned from scsi_req_map_sg(), hence would be
> interested in confirmation of that fact (or explanation why it's not an
> issue) regardless of the function itself sitting in a to-be-removed code
> path only.
> 
> Thanks, Jan
> 
lets write it like this:
nr_pages = (bufflen + sgl[0].offset + PAGE_SIZE - 1) / PAGE_SIZE;

now you say:
nr_pages = (2 + (PAGE_SIZE-1) + PAGE_SIZE - 1) / PAGE_SIZE;

which is (PAGE_SIZE + PAGE_SIZE) / PAGE_SIZE; No?

What am I missing?

Boaz
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux