Estou com problemas ao usar dma_alloc_coherent(NULL, 1, &ack_physical_address, GFP_KERNEL); atingindo a desreferência de ponteiro nulo e, portanto, #PF. Quero criar um pequeno local de memória física contíguo de 1 byte.
Estou com problemas ao usar dma_alloc_coherent(NULL, 1, &ack_physical_address, GFP_KERNEL); atingindo a desreferência de ponteiro nulo e, portanto, #PF. Quero criar um pequeno local de memória física contíguo de 1 byte.
Você não pode usar NULL como primeiro argumento para dma_alloc_coherent () , pois ele espera uma struct device válida . Em vez disso, passe um ponteiro de dispositivo válido. Além disso, solicitar apenas 1 byte pode não ser prático, pois as alocações de DMA geralmente são alinhadas aos tamanhos de página ou linha de cache. Tente solicitar uma linha de cache completa (por exemplo, 64 bytes).