mic_virtio: robust feature array size calculation
authorMichael S. Tsirkin <mst@redhat.com>
Thu, 27 Nov 2014 11:29:24 +0000 (13:29 +0200)
committerMichael S. Tsirkin <mst@redhat.com>
Tue, 9 Dec 2014 10:05:23 +0000 (12:05 +0200)
mic reads sizeof(vdev->features) bits from device, but in fact it stores
bits in local features variable. use sizeof(features) to make code
robust against future changes extending sizeof(vdev->features).

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
drivers/misc/mic/card/mic_virtio.c

index 4f070ad1875c21a1e1a103fc5782ae3830b36588..d5da9ff646cb73ad7d064f892dcb54cdb44ea0c1 100644 (file)
@@ -76,8 +76,7 @@ static u32 mic_get_features(struct virtio_device *vdev)
        u8 __iomem *in_features = mic_vq_features(desc);
        int feature_len = ioread8(&desc->feature_len);
 
-       bits = min_t(unsigned, feature_len,
-               sizeof(vdev->features)) * 8;
+       bits = min_t(unsigned, feature_len, sizeof(features)) * 8;
        for (i = 0; i < bits; i++)
                if (ioread8(&in_features[i / 8]) & (BIT(i % 8)))
                        features |= BIT(i);