[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <87vbxo83wp.fsf@nemi.mork.no>
Date: Mon, 13 Jan 2014 13:25:26 +0100
From: Bjørn Mork <bjorn@...k.no>
To: David Laight <David.Laight@...LAB.COM>
Cc: Thomas Kear <thomas@...r.co.nz>,
Ben Hutchings <bhutchings@...arflare.com>,
netdev <netdev@...r.kernel.org>,
"linux-usb\@vger.kernel.org" <linux-usb@...r.kernel.org>
Subject: Re: PROBLEM: usbnet / ax88179_178a: Panic in usb_hcd_map_urb_for_dma
David Laight <David.Laight@...LAB.COM> writes:
> From: Bjørn Mork
>> David Laight <David.Laight@...LAB.COM> writes:
>>
>> > The patch you submitted is wrong.
>> > Whoever wrote the sg interface was on crack.
>> > The 'last' marker needs moving as well.
>>
>> I'm afraid I don't understand what you meant by this.
>>
>> sg_init_table() set the 'last' marker. AFAICS, you don't need to change
>> it unless you want to chain lists.
>>
>> Care to explain with some code?
>
> Just assuming that there will be some code, somewhere, that will try
> to process the entire sg list - so won't like the entry with a
> NULL pointer and zero length at the end.
>
> If all the places that process the list are given an explicit
> number of entries, or don't care about the NULL it doesn't matter.
I believe all processing use the urb->num_sgs field to limit the number
of entries. Common interfaces like dma_map_sg() and for_each_sg() limit
their processing to "nents" entries, and the USB code use the value of
urb->num_sgs for this parameter.
Bjørn
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists