nvme_drv: move PRP list helper construction

Since the 'Platform::Device' constructor will defer the creation until
the content of the devices ROM is valid performing the PRP list helper
creation afterwards should be done with valid IOMMU information.

Issue #4715.
This commit is contained in:
Josef Söntgen 2023-01-02 20:39:17 +00:00 committed by Christian Helmuth
parent 76a99015c1
commit 9f9bed7aa8

View File

@ -1374,19 +1374,6 @@ class Nvme::Driver : Genode::Noncopyable
} catch (...) { } } catch (...) { }
} }
/*********
** DMA **
*********/
Constructible<Platform::Dma_buffer> _dma_buffer { };
/*
* The PRP (Physical Region Pages) page is used to setup
* large requests.
*/
Platform::Dma_buffer _prp_list_helper { _platform, Nvme::PRP_DS_SIZE,
UNCACHED };
/************** /**************
** Requests ** ** Requests **
**************/ **************/
@ -1463,6 +1450,19 @@ class Nvme::Driver : Genode::Noncopyable
Signal_context_capability _irq_sigh; Signal_context_capability _irq_sigh;
Nvme::Controller _nvme_ctrlr { _env, _platform, _delayer, _irq_sigh }; Nvme::Controller _nvme_ctrlr { _env, _platform, _delayer, _irq_sigh };
/*********
** DMA **
*********/
Constructible<Platform::Dma_buffer> _dma_buffer { };
/*
* The PRP (Physical Region Pages) page is used to setup
* large requests.
*/
Platform::Dma_buffer _prp_list_helper { _platform, Nvme::PRP_DS_SIZE,
UNCACHED };
/*********** /***********
** Block ** ** Block **
***********/ ***********/