Estoy portando/depurando un controlador de dispositivo (que es usado por otro módulo kernel) y mirando hacia un callejón sin salida porque dma_sync_single_for_device() falla con un kernel oops.Dónde comenzar a aprender sobre Linux DMA/controladores de dispositivo/asignación de memoria
No tengo ni idea de qué se supone que tiene que hacer esa función y Google realmente no ayuda, por lo que probablemente necesite aprender más sobre este tema en total.
La pregunta es, ¿por dónde empezar?
Oh sí, en caso de que sea pertinente, el código se supone para funcionar en un PowerPC (y el Linux es OpenWRT)
EDIT: recursos en línea preferible (libros toman unos días para ser entregado :)
Podría ayudar a tener el rastreo de oops (en forma simbólica). Eso no se supone que suceda, como probablemente hayas adivinado. La razón más probable es que se llame dos veces en la misma región DMA. –
En realidad, creo que voy a publicar una nueva pregunta sobre esto (ya que el problema ocurre con 2.6.30.10, pero no en 2.6.23) – Kimvais