On Tue, 28 May 2019 16:33:42 +0200 Halil Pasic <pasic@xxxxxxxxxxxxx> wrote: > On Mon, 27 May 2019 14:00:18 +0200 > Cornelia Huck <cohuck@xxxxxxxxxx> wrote: > > > On Thu, 23 May 2019 18:22:09 +0200 > > Michael Mueller <mimu@xxxxxxxxxxxxx> wrote: > > > > > From: Halil Pasic <pasic@xxxxxxxxxxxxx> > > > > > > Hypervisor needs to interact with the summary indicators, so these > > > need to be DMA memory as well (at least for protected virtualization > > > guests). > > > > > > Signed-off-by: Halil Pasic <pasic@xxxxxxxxxxxxx> > > > --- > > > drivers/s390/virtio/virtio_ccw.c | 22 +++++++++++++++------- > > > 1 file changed, 15 insertions(+), 7 deletions(-) > > > > (...) > > > > > @@ -1501,6 +1508,7 @@ static int __init virtio_ccw_init(void) > > > { > > > /* parse no_auto string before we do anything further */ > > > no_auto_parse(); > > > + summary_indicators = cio_dma_zalloc(MAX_AIRQ_AREAS); > > > > What happens if this fails? > > Bad things could happen! > > How about adding > > if (!summary_indicators) > virtio_ccw_use_airq = 0; /* fall back to classic */ > > ? > > Since it ain't very likely to happen, we could also just fail > virtio_ccw_init() with -ENOMEM. How high are the chances of things working if we fail to allocate here? Returning with -ENOMEM is probably the more reasonable approach here.