Greetings,
We're using the SDIO stack for MMC/SD support from the latest LSP 1.30
release on DM644x.
We've noticed occasional kernel Oops with null pointer de-references while
running applications which use SCHED_RR and SCHED_FIFO.
It probably happens in other scenarios too, but it's easier to trigger when
a process is eating up scheduling slices.
I usually run a dummy dd copy to and from the MMC/SD card to accelerate the
frequency of the occurrences.
I've tracked it down to:
// around line 277 in drivers/sdio/hcd/davinci/sdio_hcd_os_2_6.c
--- SNIP
static void SD_DMACompleteCallback(int Channel, u16 DMAStatus. PVOID
pContext)
{
PSDHCD_DEVICE pDevice = (PSDHCD_DEVICE) pContext;
PSDREQUEST pReq;
SDIO_STATUS Status = SDIO_STATUS_SUCCESS;
pReq = GET_CURRENT_REQUEST(&pDevice->Hcd);
// ... and so on
---
It appears that GET_CURRENT_REQUEST(&pDevice->Hcd) is returning a NULL
pointer.
I've added code to detect this and just bail out of the callback, but that
seems like a cop-out to me...
Any harm in just returning if the pointer happens to be NULL?
It would be nice if I knew how this was happening in the first place, but
I'm not familiar with the sdio driver arch.
Anyone else seen behaviors like this from the driver?
Thanks,
David
--
DAVID A. KONDRAD
Software Design Engineer
On-Q/Legrand
Telephone (717) 546-5442 *NEW NUMBER*
www.onqlegrand.com
_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source