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: [v3] NFC: pn533: don't send USB data off of the stack From: Greg Kroah-Hartman Message-Id: <20180519070838.GC2943@kroah.com> Date: Sat, 19 May 2018 09:08:38 +0200 To: Johan Hovold Cc: Arend van Spriel , Carlos Manuel Santos , Samuel Ortiz , Stephen Hemminger , linux-usb@vger.kernel.org, linux-wireless@vger.kernel.org List-ID: T24gRnJpLCBNYXkgMTgsIDIwMTggYXQgMDU6NDg6NDdQTSArMDIwMCwgSm9oYW4gSG92b2xkIHdy b3RlOgo+IE9uIEZyaSwgTWF5IDE4LCAyMDE4IGF0IDEyOjM4OjExUE0gKzAyMDAsIEdyZWcgS3Jv YWgtSGFydG1hbiB3cm90ZToKPiA+IEl0J3MgYW1hemluZyB0aGF0IHRoaXMgZHJpdmVyIGV2ZXIg d29ya2VkLCBidXQgbm93IHRoYXQgeDg2IGRvZXNuJ3QKPiA+IGFsbG93IFVTQiBkYXRhIHRvIGJl IHNlbnQgb2ZmIG9mIHRoZSBzdGFjaywgaXQgcmVhbGx5IGRvZXMgbm90IHdvcmsgYXQKPiA+IGFs bC4gIEZpeCB0aGlzIHVwIGJ5IHByb3Blcmx5IGFsbG9jYXRpbmcgdGhlIGRhdGEgZm9yIHRoZSBz bWFsbAo+ID4gImNvbW1hbmRzIiB0aGF0IGdldCBzZW50IHRvIHRoZSBkZXZpY2UuCj4gPiAKPiA+ IFRoZSBVU0Igc3RhY2sgd2lsbCBmcmVlIHRoZSBidWZmZXIgd2hlbiB0aGUgZGF0YSBoYXMgYmVl biB0cmFuc21pdHRlZCwKPiA+IHRoYXQgaXMgd2h5IHRoZXJlIGlzIG5vIGtmcmVlKCkgdG8gbWly cm9yIHRoZSBjYWxsIHRvIGttYWxsb2MoKS4KPiAKPiBJdCBsb29rcyBsaWtlIHlvdSdyZSBub3cg bGVha2luZyBhbGwgYnV0IHRoZSBmaW5hbCB0cmFuc2ZlciBidWZmZXIgdGhhdAo+IGlzIGFsbG9j YXRlZCBmb3Igb3V0Z29pbmcgY29tbWFuZHMsIGFzIHRoZSBVUkJzIHRoZW1zZWx2ZXMgYXJlIG5v dCBmcmVlZAo+IHVudGlsIGRpc2Nvbm5lY3QoKSAoYW5kIHRoYXQncyB3aGVuIGNvcmUgd291bGQg ZnJlZSB0aGUgYnVmZmVycyBhbG9uZwo+IHdpdGggdGhlIFVSQnMgaWYgVVJCX0ZSRUVfQlVGRkVS IGlzIHNldCkuCgpVZ2gsIHlvdSBhcmUgcmlnaHQuICBUaGUgdXJiIGhhbmRsaW5nIGluIHRoaXMg ZHJpdmVyIGlzIGNyYXp5Li4uCgpMZXQgbWUgZ28gcmVkbyB0aGlzIHdob2xlIHRoaW5nLCBnaXZl IG1lIGEgZmV3IGRheXMuLi4KCnRoYW5rcyBmb3IgdGhlIHJldmlldywgbXVjaCBhcHByZWNpYXRl ZC4KCkNhcmxvcywgaXQgd291bGQgYmUgZ29vZCB0byBrbm93IGlmIHlvdXIgdGVzdGluZyBzaG93 ZWQgdGhhdCB0aGUgcGF0Y2gKYXQgbGVhc3QgZW5hYmxlcyB0aGUgZGV2aWNlIHRvIHdvcmsgZm9y IG5vdy4gIEl0IHdpbGwgbGVhayBtZW1vcnkgbGlrZQpjcmF6eSwgc28gSSBkb24ndCByZWNvbW1l bnQgcmVseWluZyBvbiB0aGUgZHJpdmVyLCBidXQgaXQgc2hvdWxkIGJlIGdvb2QKZW5vdWdoIHRv IHNlZSBpZiBteSB0aGlua2luZyBhcyB0byB3aHkgdGhlIGRyaXZlciB3YXMgbm90IHdvcmtpbmcg aXMKY29ycmVjdCBvciBub3QuCgpncmVnIGstaAotLS0KVG8gdW5zdWJzY3JpYmUgZnJvbSB0aGlz IGxpc3Q6IHNlbmQgdGhlIGxpbmUgInVuc3Vic2NyaWJlIGxpbnV4LXVzYiIgaW4KdGhlIGJvZHkg b2YgYSBtZXNzYWdlIHRvIG1ham9yZG9tb0B2Z2VyLmtlcm5lbC5vcmcKTW9yZSBtYWpvcmRvbW8g aW5mbyBhdCAgaHR0cDovL3ZnZXIua2VybmVsLm9yZy9tYWpvcmRvbW8taW5mby5odG1sCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mail.kernel.org ([198.145.29.99]:54398 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750771AbeESHI5 (ORCPT ); Sat, 19 May 2018 03:08:57 -0400 Date: Sat, 19 May 2018 09:08:38 +0200 From: Greg Kroah-Hartman To: Johan Hovold Cc: Arend van Spriel , Carlos Manuel Santos , Samuel Ortiz , Stephen Hemminger , linux-usb@vger.kernel.org, linux-wireless@vger.kernel.org Subject: Re: [PATCH v3] NFC: pn533: don't send USB data off of the stack Message-ID: <20180519070838.GC2943@kroah.com> (sfid-20180519_090901_241417_63905957) References: <20180518103811.GA29186@kroah.com> <20180518154847.GB2668@localhost> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii In-Reply-To: <20180518154847.GB2668@localhost> Sender: linux-wireless-owner@vger.kernel.org List-ID: On Fri, May 18, 2018 at 05:48:47PM +0200, Johan Hovold wrote: > On Fri, May 18, 2018 at 12:38:11PM +0200, Greg Kroah-Hartman wrote: > > It's amazing that this driver ever worked, but now that x86 doesn't > > allow USB data to be sent off of the stack, it really does not work at > > all. Fix this up by properly allocating the data for the small > > "commands" that get sent to the device. > > > > The USB stack will free the buffer when the data has been transmitted, > > that is why there is no kfree() to mirror the call to kmalloc(). > > It looks like you're now leaking all but the final transfer buffer that > is allocated for outgoing commands, as the URBs themselves are not freed > until disconnect() (and that's when core would free the buffers along > with the URBs if URB_FREE_BUFFER is set). Ugh, you are right. The urb handling in this driver is crazy... Let me go redo this whole thing, give me a few days... thanks for the review, much appreciated. Carlos, it would be good to know if your testing showed that the patch at least enables the device to work for now. It will leak memory like crazy, so I don't recomment relying on the driver, but it should be good enough to see if my thinking as to why the driver was not working is correct or not. greg k-h