net: cdc_mbim: add "NDP to end" quirk for Huawei E3372
The Huawei E3372 (12d1:157d) needs this quirk in MBIM mode as well. Allow this by forcing the NTB to contain only a single NDP, and add a device specific entry for this ID. Due to the way Huawei use device IDs, this might be applied to other modems as well. It is assumed that those modems will be based on the same firmware and will need this quirk too. If not, it will still not harm normal usage, although multiplexing performance could be impacted. Cc: Enrico Mioso <mrkiko.rs@gmail.com> Reported-by: Sami Farin <hvtaifwkbgefbaei@gmail.com> Signed-off-by: Bjørn Mork <bjorn@mork.no> Acked-By: Enrico Mioso <mrkiko.rs@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
a90099d9fa
commit
f8c0cfa5ec
@@ -955,10 +955,18 @@ static struct usb_cdc_ncm_ndp16 *cdc_ncm_ndp(struct cdc_ncm_ctx *ctx, struct sk_
|
||||
* NTH16 header as we would normally do. NDP isn't written to the SKB yet, and
|
||||
* the wNdpIndex field in the header is actually not consistent with reality. It will be later.
|
||||
*/
|
||||
if (ctx->drvflags & CDC_NCM_FLAG_NDP_TO_END)
|
||||
if (ctx->drvflags & CDC_NCM_FLAG_NDP_TO_END) {
|
||||
if (ctx->delayed_ndp16->dwSignature == sign)
|
||||
return ctx->delayed_ndp16;
|
||||
|
||||
/* We can only push a single NDP to the end. Return
|
||||
* NULL to send what we've already got and queue this
|
||||
* skb for later.
|
||||
*/
|
||||
else if (ctx->delayed_ndp16->dwSignature)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* follow the chain of NDPs, looking for a match */
|
||||
while (ndpoffset) {
|
||||
ndp16 = (struct usb_cdc_ncm_ndp16 *)(skb->data + ndpoffset);
|
||||
|
Reference in New Issue
Block a user