mirror of
https://github.com/genodelabs/genode.git
synced 2025-04-08 20:05:54 +00:00
platform: catch denied IO_MEM-session
In case core denies an IO_MEM session, the platform driver should survive and hand out an invalid capability instead. genodelabs/genode#5174
This commit is contained in:
parent
edaff9fb96
commit
7a042925fc
@ -78,15 +78,17 @@ Device_component::io_mem(unsigned idx, Range &range)
|
||||
if (iomem.idx != idx)
|
||||
return;
|
||||
|
||||
if (!iomem.io_mem.constructed())
|
||||
iomem.io_mem.construct(_env,
|
||||
iomem.range.start,
|
||||
iomem.range.size,
|
||||
iomem.prefetchable);
|
||||
try {
|
||||
if (!iomem.io_mem.constructed())
|
||||
iomem.io_mem.construct(_env,
|
||||
iomem.range.start,
|
||||
iomem.range.size,
|
||||
iomem.prefetchable);
|
||||
|
||||
range = iomem.range;
|
||||
range.start &= 0xfff;
|
||||
cap = iomem.io_mem->cap();
|
||||
range = iomem.range;
|
||||
range.start &= 0xfff;
|
||||
cap = iomem.io_mem->cap();
|
||||
} catch (Genode::Service_denied) { }
|
||||
});
|
||||
|
||||
return cap;
|
||||
|
Loading…
x
Reference in New Issue
Block a user