From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christoph Hellwig Subject: Re: WARN_ON(irqs_disabled()) in dma_free_attrs? Date: Tue, 13 Mar 2018 14:17:45 +0100 Message-ID: <20180313131745.GC6260@lst.de> References: <20180302180704.GA3846@localhost.localdomain> <20180302213711.GA30356@lst.de> <20180303082234.GB24991@localhost.localdomain> <20180303161249.GA9516@lst.de> <20180303181904.GA19076@localhost.localdomain> <20180305151010.GA15965@lst.de> <20180311180124.GA27731@localhost.localdomain> <5696e17e-e0f4-4e6c-7783-4eeea0ff7a5e@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Content-Disposition: inline In-Reply-To: <5696e17e-e0f4-4e6c-7783-4eeea0ff7a5e-5wv7dgnIgG8@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: iommu-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org Errors-To: iommu-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org To: Robin Murphy Cc: Fredrik Noring , USB list , iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org, Alan Stern , =?iso-8859-1?Q?J=FCrgen?= Urban , Christoph Hellwig List-Id: iommu@lists.linux-foundation.org On Tue, Mar 13, 2018 at 12:11:49PM +0000, Robin Murphy wrote: > Taking a step back, though, provided the original rationale about > dma_declare_coherent_memory() is still valid, I wonder if we should simply > permit the USB code to call dma_{alloc,free}_from_dev_coherent() directly > here instead of being "good" and indirecting through the top-level DMA API > (which is the part which leads to problems). Given that it's a specific DMA > bounce buffer implementation within a core API, not just any old driver > code, I personally would consider that reasonable. Looking back I don't really understand why we even indirect the "classic" per-device dma_declare_coherent_memory use case through the DMA API. It seems like a pretty different use case to me. In the USB case we also have the following additional twist in that it doesn't even need the mapping to be coherent. So maybe for now the quick fix is to move the sleep check as suggested earlier in this thread, but in the long run we probably need to do some major rework of how dma_declare_coherent_memory and friends work. From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: WARN_ON(irqs_disabled()) in dma_free_attrs? From: Christoph Hellwig Message-Id: <20180313131745.GC6260@lst.de> Date: Tue, 13 Mar 2018 14:17:45 +0100 To: Robin Murphy Cc: Fredrik Noring , Christoph Hellwig , Alan Stern , Marek Szyprowski , iommu@lists.linux-foundation.org, USB list , =?iso-8859-1?Q?J=FCrgen?= Urban List-ID: T24gVHVlLCBNYXIgMTMsIDIwMTggYXQgMTI6MTE6NDlQTSArMDAwMCwgUm9iaW4gTXVycGh5IHdy b3RlOgo+IFRha2luZyBhIHN0ZXAgYmFjaywgdGhvdWdoLCBwcm92aWRlZCB0aGUgb3JpZ2luYWwg cmF0aW9uYWxlIGFib3V0IAo+IGRtYV9kZWNsYXJlX2NvaGVyZW50X21lbW9yeSgpIGlzIHN0aWxs IHZhbGlkLCBJIHdvbmRlciBpZiB3ZSBzaG91bGQgc2ltcGx5IAo+IHBlcm1pdCB0aGUgVVNCIGNv ZGUgdG8gY2FsbCBkbWFfe2FsbG9jLGZyZWV9X2Zyb21fZGV2X2NvaGVyZW50KCkgZGlyZWN0bHkg Cj4gaGVyZSBpbnN0ZWFkIG9mIGJlaW5nICJnb29kIiBhbmQgaW5kaXJlY3RpbmcgdGhyb3VnaCB0 aGUgdG9wLWxldmVsIERNQSBBUEkgCj4gKHdoaWNoIGlzIHRoZSBwYXJ0IHdoaWNoIGxlYWRzIHRv IHByb2JsZW1zKS4gR2l2ZW4gdGhhdCBpdCdzIGEgc3BlY2lmaWMgRE1BIAo+IGJvdW5jZSBidWZm ZXIgaW1wbGVtZW50YXRpb24gd2l0aGluIGEgY29yZSBBUEksIG5vdCBqdXN0IGFueSBvbGQgZHJp dmVyIAo+IGNvZGUsIEkgcGVyc29uYWxseSB3b3VsZCBjb25zaWRlciB0aGF0IHJlYXNvbmFibGUu CgpMb29raW5nIGJhY2sgSSBkb24ndCByZWFsbHkgdW5kZXJzdGFuZCB3aHkgd2UgZXZlbiBpbmRp cmVjdCB0aGUgImNsYXNzaWMiCnBlci1kZXZpY2UgZG1hX2RlY2xhcmVfY29oZXJlbnRfbWVtb3J5 IHVzZSBjYXNlIHRocm91Z2ggdGhlIERNQSBBUEkuCgpJdCBzZWVtcyBsaWtlIGEgcHJldHR5IGRp ZmZlcmVudCB1c2UgY2FzZSB0byBtZS4gIEluIHRoZSBVU0IgY2FzZSB3ZQphbHNvIGhhdmUgdGhl IGZvbGxvd2luZyBhZGRpdGlvbmFsIHR3aXN0IGluIHRoYXQgaXQgZG9lc24ndCBldmVuIG5lZWQK dGhlIG1hcHBpbmcgdG8gYmUgY29oZXJlbnQuCgpTbyBtYXliZSBmb3Igbm93IHRoZSBxdWljayBm aXggaXMgdG8gbW92ZSB0aGUgc2xlZXAgY2hlY2sgYXMgc3VnZ2VzdGVkCmVhcmxpZXIgaW4gdGhp cyB0aHJlYWQsIGJ1dCBpbiB0aGUgbG9uZyBydW4gd2UgcHJvYmFibHkgbmVlZCB0byBkbyBzb21l Cm1ham9yIHJld29yayBvZiBob3cgZG1hX2RlY2xhcmVfY29oZXJlbnRfbWVtb3J5IGFuZCBmcmll bmRzIHdvcmsuCi0tLQpUbyB1bnN1YnNjcmliZSBmcm9tIHRoaXMgbGlzdDogc2VuZCB0aGUgbGlu ZSAidW5zdWJzY3JpYmUgbGludXgtdXNiIiBpbgp0aGUgYm9keSBvZiBhIG1lc3NhZ2UgdG8gbWFq b3Jkb21vQHZnZXIua2VybmVsLm9yZwpNb3JlIG1ham9yZG9tbyBpbmZvIGF0ICBodHRwOi8vdmdl ci5rZXJuZWwub3JnL21ham9yZG9tby1pbmZvLmh0bWwK