In oid_mgt.c after : priv->mib = kmalloc(OID_NUM_LAST * sizeof (void *), GFP_KERNEL); if (!priv->mib) return -ENOMEM; I think there should be : memset(priv->mib, 0, OID_NUM_LAST * sizeof(void *)); Don't assume kmalloc returns zeroed memory. If it doesn't and we get a kmalloc bailout in the oid loop, then we will bork in mgt_clean. Margit