summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/wimax/i2400m/fw.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/net/wimax/i2400m/fw.c b/drivers/net/wimax/i2400m/fw.c
index eef236d85af..1fd2fee4c6c 100644
--- a/drivers/net/wimax/i2400m/fw.c
+++ b/drivers/net/wimax/i2400m/fw.c
@@ -1179,7 +1179,7 @@ int i2400m_fw_check(struct i2400m *i2400m,
module_type = bcf->module_type;
header_len = sizeof(u32) * le32_to_cpu(bcf->header_len);
- major_version = le32_to_cpu(bcf->header_version) & 0xffff0000 >> 16;
+ major_version = (le32_to_cpu(bcf->header_version) & 0xffff0000) >> 16;
minor_version = le32_to_cpu(bcf->header_version) & 0x0000ffff;
module_id = le32_to_cpu(bcf->module_id);
module_vendor = le32_to_cpu(bcf->module_vendor);
@@ -1205,6 +1205,12 @@ int i2400m_fw_check(struct i2400m *i2400m,
goto error;
}
+ if (major_version != 1) {
+ dev_err(dev, "%s: major header version v%u.%u not supported\n",
+ i2400m->fw_name, major_version, minor_version);
+ goto error;
+ }
+
/* Check soft-er errors */
result = 0;
if (module_vendor != 0x8086)