]> Pileus Git - ~andy/linux/blobdiff - drivers/firmware/sigma.c
Merge branch 'slab/urgent' into slab/for-linus
[~andy/linux] / drivers / firmware / sigma.c
index c780baa59ed965759a322db926f1e4fc56bcf991..1eedb6f7fdabe46efa082039818bef6f31fe1591 100644 (file)
@@ -130,9 +130,10 @@ int process_sigma_firmware(struct i2c_client *client, const char *name)
        if (memcmp(ssfw_head->magic, SIGMA_MAGIC, ARRAY_SIZE(ssfw_head->magic)))
                goto done;
 
-       crc = crc32(0, fw->data, fw->size);
+       crc = crc32(0, fw->data + sizeof(*ssfw_head),
+                       fw->size - sizeof(*ssfw_head));
        pr_debug("%s: crc=%x\n", __func__, crc);
-       if (crc != ssfw_head->crc)
+       if (crc != le32_to_cpu(ssfw_head->crc))
                goto done;
 
        ssfw.pos = sizeof(*ssfw_head);