Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fabce1a4 authored by Inaky Perez-Gonzalez's avatar Inaky Perez-Gonzalez
Browse files

wimax/i2400m: verify firmware format version is known



Make sure the bootloading code checks that the format of the file is
understood (major version match). This also fixes a dumb typo in
extracting the major version field.

Signed-off-by: default avatarInaky Perez-Gonzalez <inaky@linux.intel.com>
parent 923d708f
Loading
Loading
Loading
Loading
+7 −1
Original line number Original line Diff line number Diff line
@@ -1179,7 +1179,7 @@ int i2400m_fw_check(struct i2400m *i2400m,


	module_type = bcf->module_type;
	module_type = bcf->module_type;
	header_len = sizeof(u32) * le32_to_cpu(bcf->header_len);
	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;
	minor_version = le32_to_cpu(bcf->header_version) & 0x0000ffff;
	module_id = le32_to_cpu(bcf->module_id);
	module_id = le32_to_cpu(bcf->module_id);
	module_vendor = le32_to_cpu(bcf->module_vendor);
	module_vendor = le32_to_cpu(bcf->module_vendor);
@@ -1205,6 +1205,12 @@ int i2400m_fw_check(struct i2400m *i2400m,
		goto error;
		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 */
	/* Check soft-er errors */
	result = 0;
	result = 0;
	if (module_vendor != 0x8086)
	if (module_vendor != 0x8086)