On Tue, Feb 12, 2019 at 02:24:47PM +0100, LorenzoBianconilorenzo@xxxxxxxxxx wrote: > From: Lorenzo Bianconi <lorenzo@xxxxxxxxxx> > > Use linear fragment and not a single usb scatter-gather buffer in mt76u > {tx,rx} datapath if the usb controller has sg data length constraints. > Moreover add disable_usb_sg module parameter in order to explicitly > disable scatter-gather. SG I/O is not supported by all host drivers and > some users have reported sg issues on AMD IOMMU. Again. This is not right approach. SG issues should be fixed not workarounded. > This series has been tested on AMD IOMMU cpus/motherboards and on rpi3+ > - rebased on top of 'fix multiple issues in mt76u error path' > https://patchwork.kernel.org/cover/10804919/ > > Lorenzo Bianconi (4): > mt76: usb: move mt76u_check_sg in usb.c > mt76: usb: do not use sg buffers for mcu messages > mt76: usb: use a linear buffer for tx/rx datapath if sg is not > supported > mt76: usb: introduce disable_usb_sg parameter > > drivers/net/wireless/mediatek/mt76/mt76.h | 14 +- > .../net/wireless/mediatek/mt76/mt76x0/usb.c | 2 +- > .../wireless/mediatek/mt76/mt76x02_usb_mcu.c | 3 +- > .../wireless/mediatek/mt76/mt76x2/usb_init.c | 2 +- > drivers/net/wireless/mediatek/mt76/usb.c | 133 +++++++++++++----- > drivers/net/wireless/mediatek/mt76/usb_mcu.c | 5 +- > 6 files changed, 105 insertions(+), 54 deletions(-) I really think my approach is simpler. Diffstat from my proposed patch is: drivers/net/wireless/mediatek/mt76/mt76.h | 1 + drivers/net/wireless/mediatek/mt76/usb.c | 55 ++++++++++++++--------- 2 files changed, 36 insertions(+), 20 deletions(-) Also this fix bug(s), presumably regression for mt76x0, should be backported. Stanislaw