struct X
{
struct Y* desc;
dma_addr_t addr;
};
X->desc = dma_alloc_coherent(pdata->dev,
(sizeof(struct Y) *
1024),
&X->addr,
GFP_KERNEL);
按照内核文档DMA-API-HOWTO.txt的描述:dma_alloc_coherent返回的cpu虚拟地址和DMA总线地址都保证对齐在最小的PAGE_SIZE上
但是实际运行中我打印&X->addr确实是以PAGE_SIZE对齐的,但是打印X->desc却不是按照PAGE_SIZE对齐的,有人能告诉我这是为什么吗?