[...] > I looked at intel wifi drivers and this is handled by amsdu_size module > parameter, supported values are 4k, 8k and 12k. RX allocation size and > proper values in vht_cap & ht_cap are set accordingly. Assuming (some) > mt76 HW and FW can handle bigger AMSDUs I think we should do similar > thing. > > Otherwise looks for me, we just waste memory and have not needed code > for no true reason. > > > space needed for skb_shared_info is 320B on a x86_64 device > > Uhh, I haven't expected that sk_shared_info() is that big, so indeed build_skb > could not used and 128B copy fallback will be necessary. Hi Stanislaw, reviewing the original patch I think we can't trigger any IOMMU bug since the usb buffer length is actually 2048 and not 2048 + skb_shared_info_size: in mt76u_fill_rx_sg() data_size = SKB_WITH_OVERHEAD(q->buf_size); q->buf_size = MT_BUF_WITH_OVERHEAD(MT_RX_BUF_SIZE); where MT_BUF_WITH_OVERHEAD is ((x) + SKB_DATA_ALIGN(sizeof(struct skb_shared_info))) anyway we can even set q->buf_size = PAGE_SIZE data_size = rounddown(SKB_WITH_OVERHEAD(q->buf_size), usb_endpoint_maxp()) Regards, Lorenzo > > > Stanislaw
Attachment:
signature.asc
Description: PGP signature