--- a/sierra_net.c +++ b/sierra_net.c @@ -840,8 +840,8 @@ static int sierra_net_bind(struct usbnet init_timer(&priv->sync_timer); /* verify fw attributes */ status = sierra_net_get_fw_attr(dev, &fwattr); - dev_dbg(&dev->udev->dev, "Fw attr: %x\n", fwattr); - if (status == sizeof(fwattr) && (fwattr & SWI_GET_FW_ATTR_APM)) { + dev_dbg(&dev->udev->dev, "Fw attr: %x\n", cpu_to_le16(fwattr)); + if (status == sizeof(fwattr) && (cpu_to_le16(fwattr) & SWI_GET_FW_ATTR_APM)) { /******************************************************************************* * If you want the default /sys/bus/usb/devices/.../.../power/level to be forced * to auto, the following needs to be compiled in. @@ -856,7 +856,7 @@ static int sierra_net_bind(struct usbnet usb_disable_autosuspend(dev->udev); } /* test whether firmware supports DHCP */ - if (!(status == sizeof(fwattr) && (fwattr & SWI_GET_FW_ATTR_MASK))) { + if (!(status == sizeof(fwattr) && (cpu_to_le16(fwattr) & SWI_GET_FW_ATTR_MASK))) { /* found incompatible firmware version */ dev_err(&dev->udev->dev, "Incompatible driver and firmware" " versions\n");