diff --git a/l4/pkg/l4re-core/sigma0/server/src/ioports_x86.cc b/l4/pkg/l4re-core/sigma0/server/src/ioports_x86.cc index 111ca716..3f8b90e0 100644 --- a/l4/pkg/l4re-core/sigma0/server/src/ioports_x86.cc +++ b/l4/pkg/l4re-core/sigma0/server/src/ioports_x86.cc @@ -39,8 +39,9 @@ void handle_io_page_fault(l4_umword_t t, l4_utcb_t *utcb, Answer *a) size = l4_fpage_size(fp) + PORT_SHIFT; unsigned long i = io_ports.alloc(Region::bs(port, 1UL << size, t)); - if (i == port) + if (i == port) { a->snd_fpage(l4_iofpage(port >> PORT_SHIFT, size - PORT_SHIFT)); - else + a->tag = l4_msgtag(0, 0, 1, 0); + } else a->error(L4_ENOMEM); }