Jonghwan Choi <jhbird.choi@xxxxxxxxxxx> writes: > This patch looks like it should be in the 3.11-stable tree, should we apply > it? No. Supporting BE on virtio_mmio is in fact a new feature. And this doesn't make it work anyway. Grumble, Rusty. > ------------------ > > From: "Marc Zyngier <marc.zyngier@xxxxxxx>" > > commit 4ae85370720156025e9cb873c13a0afb06ca1612 upstream > > As virtio-mmio config registers are specified to be little-endian, > using readl() to read the magic value and then memcmp() to check it > fails on BE (as readl() has an implicit swab). > > Fix it by encoding the magic value as an integer instead of a string. > > Cc: Michael S. Tsirkin <mst@xxxxxxxxxx> > Signed-off-by: Marc Zyngier <marc.zyngier@xxxxxxx> > Acked-by: Pawel Moll <pawel.moll@xxxxxxx> > Signed-off-by: Rusty Russell <rusty@xxxxxxxxxxxxxxx> > Signed-off-by: Jonghwan Choi <jhbird.choi@xxxxxxxxxxx> > --- > drivers/virtio/virtio_mmio.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/virtio/virtio_mmio.c b/drivers/virtio/virtio_mmio.c > index 1ba0d68..57f24fd 100644 > --- a/drivers/virtio/virtio_mmio.c > +++ b/drivers/virtio/virtio_mmio.c > @@ -470,7 +470,7 @@ static int virtio_mmio_probe(struct platform_device > *pdev) > > /* Check magic value */ > magic = readl(vm_dev->base + VIRTIO_MMIO_MAGIC_VALUE); > - if (memcmp(&magic, "virt", 4) != 0) { > + if (magic != ('v' | 'i' << 8 | 'r' << 16 | 't' << 24)) { > dev_warn(&pdev->dev, "Wrong magic value 0x%08lx!\n", magic); > return -ENODEV; > } > -- > 1.7.9.5 -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html