Hi,
I am trying to typecast a void* pointer to a structure I defined
called _sfrdm336_mdb. However, when I try, I get the following error:
Oops in fault.c, Unable to handle kernel paging request at virtual
address 00000004 .
Could you please help me? I'm very stuck! I even tried ioremap() to
map the physical address kmalloc returns to a virtual address. The
problem occurs when I try to do the typecast (sFRDM336_MDB *) below:
/
************************************************** ****************************/
typedef struct _sfrdm336_mdb
{
INT4 errModule; /* Global error Indicator for
module
calls */
UINT2 valid; /* Indicates that this structure
has been
initialized */
eFRDM336_MOD_STATE stateModule; /* Module state; can be one of
the following
FRDM336_MOD_START,
FRDM336_MOD_IDLE or
FRDM336_MOD_READY */
UINT2 maxDevs; /* Maximum number of devices
supported */
UINT2 numDevs; /* Number of devices currently
registered */
UINT2 maxInitProfs; /* Maximum number of
initialization
profiles */
sFRDM336_DDB *pddb; /* (array of) Device Data Blocks
(DDB) in
context memory */
sFRDM336_DIV *pinitProfs; /* (array of) Initialization
profiles in
context memory */
} sFRDM336_MDB;
sFRDM336_MDB *frdm336Mdb; // TOP OF FILE, public variable
INT4 frdm336ModuleOpen ()
{
frdm336Mdb = (sFRDM336_MDB *) kmalloc(sizeof(sFRDM336_MDB),
GFP_KERNEL);
sysFrdm336MemSet(frdm336Mdb, 0, size);
return 0;
} /* frdm336ModuleOpen */
/
************************************************** ****************************/
Thanks in advance for your help!
Matt