Manu Abraham wrote: >So it now looks like this but i have another problem now, after >consecutive, load/unload, i get an oops .. No idea, sorry. >static int __devinit mantis_pci_probe(struct pci_dev *pdev, > const struct pci_device_id *mantis_pci_table) >{ > u8 revision, latency; >// u8 data[2]; > struct mantis_pci *mantis; > > dprintk(verbose, MANTIS_ERROR, 1, "<1:>IRQ=%d", pdev->irq); > if (pci_enable_device(pdev)) { > dprintk(verbose, MANTIS_ERROR, 1, "Mantis PCI enable failed"); > goto err; > } > dprintk(verbose, MANTIS_ERROR, 1, "<2:>IRQ=%d", pdev->irq); > > mantis = (struct mantis_pci *) > kmalloc(sizeof (struct mantis_pci), GFP_KERNEL); mantis = kmalloc(sizeof(*mantis), GFP_KERNEL); You don't have to cast a void* to any other pointer and this way you will always get the correct size of memory allocated, even if mantis will become another pointer type. Eike