|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v2 8/9] xue: mark DMA buffers as reserved for the device
On Thu, Jul 14, 2022 at 01:51:06PM +0200, Jan Beulich wrote:
> On 06.07.2022 17:32, Marek Marczykowski-Górecki wrote:
> > + /*
> > + * Don't place anything else on this page - it will be
> > + * DMA-reachable by the USB controller.
> > + */
> > + char _pad[0] __aligned(XUE_PAGE_SIZE);
>
> I don't think this is needed, due to sizeof() being required to be
> a multiple of alignof().
I'd prefer to be explicit about this, because if some future change
breaks this property (makes alignment smaller than a page size), the
result will be pretty bad.
> > +};
> > +static struct xue_dma_bufs xue_dma_bufs __aligned(XUE_PAGE_SIZE);
>
> I don't think the alignment here is needed, as the struct will
> already have suitable alignment (derived from the biggest field
> alignment value). Instead please consider putting this in
> .bss.page_aligned.
Ok.
> > @@ -990,16 +999,22 @@ void __init xue_uart_init(void)
> > xue->sbdf = PCI_SBDF(0, bus, slot, func);
> > }
> >
> > - xue->dbc_ctx = &ctx;
> > - xue->dbc_erst = &erst;
> > - xue->dbc_ering.trb = evt_trb;
> > - xue->dbc_oring.trb = out_trb;
> > - xue->dbc_iring.trb = in_trb;
> > - xue->dbc_owork.buf = wrk_buf;
> > - xue->dbc_str = str_buf;
> > + xue->dbc_ctx = &xue_dma_bufs.ctx;
> > + xue->dbc_erst = &xue_dma_bufs.erst;
> > + xue->dbc_ering.trb = xue_dma_bufs.evt_trb;
> > + xue->dbc_oring.trb = xue_dma_bufs.out_trb;
> > + xue->dbc_iring.trb = xue_dma_bufs.in_trb;
> > + xue->dbc_owork.buf = xue_dma_bufs.wrk_buf;
> > + xue->dbc_str = xue_dma_bufs.str_buf;
> >
> > if ( xue_open(xue) )
> > + {
> > + iommu_add_extra_reserved_device_memory(
> > + PFN_DOWN(virt_to_maddr(&xue_dma_bufs)),
>
> virt_to_pfn()?
Doesn't exist. Did you mean virt_to_mfn()?
--
Best Regards,
Marek Marczykowski-Górecki
Invisible Things Lab
Attachment:
signature.asc
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |