• Bjørn Mork's avatar
    net: huawei_cdc_ncm: increase command buffer size · 3acc7461
    Bjørn Mork authored
    Messages from the modem exceeding 256 bytes cause communication
    failure.
    
    The WDM protocol is strictly "read on demand", meaning that we only
    poll for unread data after receiving a notification from the modem.
    Since we have no way to know how much data the modem has to send,
    we must make sure that the buffer we provide is "big enough".
    Message truncation does not work. Truncated messages are left unread
    until the modem has another message to send.  Which often won't
    happen until the userspace application has given up waiting for the
    final part of the last message, and therefore sends another command.
    
    With a proper CDC WDM function there is a descriptor telling us
    which buffer size the modem uses. But with this vendor specific
    implementation there is no known way to calculate the exact "big
    enough" number.  It is an unknown property of the modem firmware.
    Experience has shown that 256 is too small.  The discussion of
    this failure ended up concluding that 512 might be too small as
    well. So 1024 seems like a reasonable value for now.
    
    Fixes: 41c47d8c ("net: huawei_cdc_ncm: Introduce the huawei_cdc_ncm driver")
    Cc: Enrico Mioso <mrkiko.rs@gmail.com>
    Reported-by: default avatarDan Williams <dcbw@redhat.com>
    Signed-off-by: default avatarBjørn Mork <bjorn@mork.no>
    Acked-By: default avatarEnrico Mioso <mrkiko.rs@gmail.com>
    Tested-by: default avatarDan Williams <dcbw@redhat.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    3acc7461
huawei_cdc_ncm.c 5.9 KB