Re: next: kernel BUG at drivers/virtio/virtio.c:122!

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 20 Dec 2022 at 18:56, Michael S. Tsirkin <mst@xxxxxxxxxx> wrote:
>
> On Tue, Dec 20, 2022 at 02:17:45PM +0100, Marek Szyprowski wrote:
> > On 20.12.2022 11:54, Michael S. Tsirkin wrote:
> > > On Tue, Dec 20, 2022 at 06:27:59PM +0800, Xuan Zhuo wrote:
> > >> On Tue, 20 Dec 2022 14:51:54 +0530, Naresh Kamboju <naresh.kamboju@xxxxxxxxxx> wrote:
> > >>> The qemu-x86_64 and qemu-arm64 boot failed with Linux next-20221220 tag.
> > >>> It is always reproducible with gcc-11/ gcc-12 and clang tool chains.
> > >>>
> > >>> Reported-by: Linux Kernel Functional Testing <lkft@xxxxxxxxxx>
> > >>>
> > >>> <6>[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x000f0510]
> > >>> <5>[    0.000000] Linux version 6.1.0-next-20221220 (tuxmake@tuxmake)
> > >>> (Debian clang version 16.0.0
> > >>> (++20221218072110+9c1b82599dac-1~exp1~20221218072217.501), Debian LLD
> > >>> 16.0.0) #1 SMP PREEMPT @1671498176
> > >>> <5>[    0.000000] random: crng init done
> > >>> <6>[    0.000000] Machine model: linux,dummy-virt
> > >>> ....
> > >>> <6>[    3.571098] loop: module loaded
> > >>> <6>[    3.573410] virtio_blk virtio0: 1/0/0 default/read/poll queues
> > >>> <5>[    3.578816] virtio_blk virtio0: [vda] 2816420 512-byte logical
> > >>> blocks (1.44 GB/1.34 GiB)
> > >>> <4>[    3.581234] ------------[ cut here ]------------
> > >>> <2>[    3.581595] kernel BUG at drivers/virtio/virtio.c:122!
> > >>> <0>[    3.582906] Internal error: Oops - BUG: 00000000f2000800 [#1] PREEMPT SMP

<Trim>

> > > Testing this fixup now:

Thanks for providing a quick fix.

> > > commit f9503d0fd839b59e0f48b00c20635437c41420ed
> > > Author: Michael S. Tsirkin <mst@xxxxxxxxxx>
> > > Date:   Tue Dec 20 05:53:41 2022 -0500
> > >
> > >      fixup! virtio-blk: add support for zoned block devices
> >
> > I also confirm that this patch fixes the issue with broken virtio block
> > device observed on QEMU arm/arm64 'virt' machines and linux
> > next-20221220. Thanks for the fix!
> >
> > Tested-by: Marek Szyprowski <m.szyprowski@xxxxxxxxxxx>

Tested-by: Linux Kernel Functional Testing <lkft@xxxxxxxxxx>

>
> Merged the fix already so I'm not sure I can add this tag.
> If I rebase before pull request I will, thanks!

[Sorry for delayed reply]

> > > diff --git a/drivers/block/virtio_blk.c b/drivers/block/virtio_blk.c
> > > index ff49052e26f7..d8cdaeb51d1c 100644
> > > --- a/drivers/block/virtio_blk.c
> > > +++ b/drivers/block/virtio_blk.c
> > > @@ -775,6 +775,10 @@ static int virtblk_probe_zoned_device(struct virtio_device *vdev,
> > >     return ret;
> > >   }
> > >
> > > +static inline bool virtblk_has_zoned_feature(struct virtio_device *vdev)
> > > +{
> > > +   return virtio_has_feature(vdev, VIRTIO_BLK_F_ZONED);
> > > +}
> > >   #else
> > >
> > >   /*
> > > @@ -790,6 +794,11 @@ static inline int virtblk_probe_zoned_device(struct virtio_device *vdev,
> > >   {
> > >     return -EOPNOTSUPP;
> > >   }
> > > +
> > > +static inline bool virtblk_has_zoned_feature(struct virtio_device *vdev)
> > > +{
> > > +   return false;
> > > +}
> > >   #endif /* CONFIG_BLK_DEV_ZONED */
> > >
> > >   /* return id (s/n) string for *disk to *id_str
> > > @@ -1576,11 +1585,11 @@ static int virtblk_probe(struct virtio_device *vdev)
> > >             else
> > >                     q->limits.discard_granularity = blk_size;
> > >     }
> > >
> > >     virtblk_update_capacity(vblk, false);
> > >     virtio_device_ready(vdev);
> > >
> > > -   if (virtio_has_feature(vdev, VIRTIO_BLK_F_ZONED)) {
> > > +   if (virtblk_has_zoned_feature(vdev)) {
> > >             err = virtblk_probe_zoned_device(vdev, vblk, q);
> > >             if (err)
> > >                     goto out_cleanup_disk;
> >
> > Best regards
> > --
> > Marek Szyprowski, PhD
> > Samsung R&D Institute Poland


--
Linaro LKFT
https://lkft.linaro.org



[Index of Archives]     [Linux Kernel]     [Linux USB Development]     [Yosemite News]     [Linux SCSI]

  Powered by Linux