lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Mon, 20 Sep 2021 12:07:23 +0200 From: Cornelia Huck <cohuck@...hat.com> To: Vineeth Vijayan <vneethv@...ux.ibm.com>, Halil Pasic <pasic@...ux.ibm.com> Cc: Heiko Carstens <hca@...ux.ibm.com>, Vasily Gorbik <gor@...ux.ibm.com>, Christian Borntraeger <borntraeger@...ibm.com>, Pierre Morel <pmorel@...ux.ibm.com>, Michael Mueller <mimu@...ux.ibm.com>, linux-s390@...r.kernel.org, virtualization@...ts.linux-foundation.org, kvm@...r.kernel.org, linux-kernel@...r.kernel.org, bfu@...hat.com Subject: Re: [PATCH 1/1] virtio/s390: fix vritio-ccw device teardown On Mon, Sep 20 2021, Vineeth Vijayan <vneethv@...ux.ibm.com> wrote: > On Mon, 2021-09-20 at 00:39 +0200, Halil Pasic wrote: >> On Fri, 17 Sep 2021 10:40:20 +0200 >> Cornelia Huck <cohuck@...hat.com> wrote: >> > ...snip... >> > > >> > > Thanks, if I find time for it, I will try to understand this >> > > better and >> > > come back with my findings. >> > > >> > > > > * Can virtio_ccw_remove() get called while !cdev->online and >> > > > > virtio_ccw_online() is running on a different cpu? If yes, >> > > > > what would >> > > > > happen then? >> > > > >> > > > All of the remove/online/... etc. callbacks are invoked via the >> > > > ccw bus >> > > > code. We have to trust that it gets it correct :) (Or have the >> > > > common >> > > > I/O layer maintainers double-check it.) >> > > > >> > > >> > > Vineeth, what is your take on this? Are the struct ccw_driver >> > > virtio_ccw_remove and the virtio_ccw_online callbacks mutually >> > > exclusive. Please notice that we may initiate the onlining by >> > > calling ccw_device_set_online() from a workqueue. >> > > >> > > @Conny: I'm not sure what is your definition of 'it gets it >> > > correct'... >> > > I doubt CIO can make things 100% foolproof in this area. >> > >> > Not 100% foolproof, but "don't online a device that is in the >> > progress >> > of going away" seems pretty basic to me. >> > >> >> I hope Vineeth will chime in on this. > Considering the online/offline processing, > The ccw_device_set_offline function or the online/offline is handled > inside device_lock. Also, the online_store function takes care of > avoiding multiple online/offline processing. > > Now, when we consider the unconditional remove of the device, > I am not familiar with the virtio_ccw driver. My assumptions are based > on how CIO/dasd drivers works. If i understand correctly, the dasd > driver sets different flags to make sure that a device_open is getting > prevented while the the device is in progress of offline-ing. Hm, if we are invoking the online/offline callbacks under the device lock already, how would that affect the remove callback? Shouldn't they be serialized under the device lock already? I think we are fine. For dasd, I think they also need to deal with the block device lifetimes. For virtio-ccw, we are basically a transport that does not know about devices further down the chain (that are associated with the virtio device, whose lifetime is tied to online/offline processing.) I'd presume that the serialization above would be enough.
Powered by blists - more mailing lists