Skip to content
  • Bjørn Mork's avatar
    net: qmi_wwan: fixup missing ethernet header (firmware bug workaround) · 6ff509af
    Bjørn Mork authored
    
    
    A number of LTE devices from different vendors all suffer from the
    same firmware bug: Most of the packets received from the device while
    it is attached to a LTE network will not have an ethernet header. The
    devices work as expected when attached to 2G or 3G networks, sending
    an ethernet header with all packets.
    
    This driver is not aware of which network the modem attached to, and
    even if it were there are still some packet types which are always
    received with the header intact.
    
    All devices supported by this driver have severely limited
    networking capabilities:
     - can only transmit IPv4, IPv6 and possibly ARP
     - can only support a single host hardware address at any time
     - will only do point-to-point communcation with the host
    
    Because of this, we are able to reliably identify any bogus raw IP
    packets by simply looking at the 4 IP version bits.  All we need to
    do is to avoid 4 or 6 in the first digit of the mac address.  This
    workaround ensures this, and fix up the received packets as necessary.
    
    Given the distribution of the bug, it is believed that the source is
    the chipset vendor.  The devices which are verified to be affected are:
     Huawei E392u-12 (Qualcomm MDM9200)
     Pantech UML290  (Qualcomm MDM9600)
     Novatel USB551L (Qualcomm MDM9600)
     Novatel E362    (Qualcomm MDM9600)
    
    It is believed that the bug depend on firmware revision, which means
    that possibly all devices based on the above mentioned chipset may be
    affected if we consider all available firmware revisions.
    
    The information about affected devices and versions is likely
    incomplete.  As the additional overhead for packets not needing this
    fixup is very small, it is considered acceptable to apply the
    workaround to all devices handled by this driver.
    
    Reported-by: default avatarDan Williams <dcbw@redhat.com>
    Signed-off-by: default avatarBjørn Mork <bjorn@mork.no>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    6ff509af