diff --git a/repos/os/include/platform_session/client.h b/repos/os/include/platform_session/client.h index 08803b7a35..fa96596d17 100644 --- a/repos/os/include/platform_session/client.h +++ b/repos/os/include/platform_session/client.h @@ -15,6 +15,7 @@ #define _INCLUDE__PLATFORM_SESSION__CLIENT_H_ #include +#include #include namespace Platform { struct Client; } @@ -43,8 +44,16 @@ struct Platform::Client : Genode::Rpc_client void free_dma_buffer(Ram_dataspace_capability cap) override { call(cap); } - addr_t dma_addr(Ram_dataspace_capability cap) override { - return call(cap); } + addr_t dma_addr(Ram_dataspace_capability cap) override + { + addr_t const result = call(cap); + + /* the platform driver may lack the 'managing_system' role */ + if (!result) + warning("unable to obtain DMA address from platform driver"); + + return result; + } }; #endif /* _INCLUDE__PLATFORM_SESSION__CLIENT_H_ */