From: Jörn Adamczewski-Musch Date: Fri, 22 Apr 2016 12:34:45 +0000 (+0200) Subject: pexor driver: bugfix in kernel module remove (wrong order of freeing X-Git-Url: https://jspc29.x-matter.uni-frankfurt.de/git/?a=commitdiff_plain;h=4d1eab1d983096093da4d78934f2cfd63b4fa3c4;p=trbnettools.git pexor driver: bugfix in kernel module remove (wrong order of freeing resources). Compiles with kernel 4.1.20 (openSUSE 42.1 leap) without further changes. --- diff --git a/pexor/kernel-module/pexor_trb.c b/pexor/kernel-module/pexor_trb.c index e806857..6beaa5f 100644 --- a/pexor/kernel-module/pexor_trb.c +++ b/pexor/kernel-module/pexor_trb.c @@ -266,12 +266,14 @@ unsigned char get_pci_revision(struct pci_dev* dev) void remove(struct pci_dev* dev) { struct pexor_privdata* priv = (struct pexor_privdata* )pci_get_drvdata(dev); + pexor_free_dma_buffer(priv); // JAM 2016: must be done before cleanup_device + if (priv->memwrite_buffer != NULL) { + vfree(priv->memwrite_buffer); + }// JAM 2016: must be done before cleanup_device cleanup_device(priv); - pexor_free_dma_buffer(priv); - if (priv->memwrite_buffer != NULL) { - vfree(priv->memwrite_buffer); - } + + pexor_msg(KERN_NOTICE "PEXOR pci driver end remove.\n"); } @@ -430,8 +432,13 @@ void cleanup_device(struct pexor_privdata* priv) priv->bases[j] = 0; priv->reglen[j] = 0; } + pexor_dbg(KERN_NOTICE " try to free privdata structure at %lx\n", + priv); kfree(priv); + pexor_dbg(KERN_NOTICE " - done. now disable pci device... \n", + priv); pci_disable_device(pcidev); + } @@ -1552,7 +1559,7 @@ int pexor_ioctl_trbnet_request(struct pexor_privdata* priv, MODULE_LICENSE("GPL"); MODULE_AUTHOR("Joern Adamczewski-Musch / Ludwig Maier"); MODULE_DESCRIPTION("pexor device driver for HADES TRBNet"); -MODULE_VERSION("2.0.0"); +MODULE_VERSION("2.0.1"); MODULE_DEVICE_TABLE(pci, ids); module_init(pexor_init); diff --git a/pexor/kernel-module/pexor_trb.h b/pexor/kernel-module/pexor_trb.h index 408508e..7317e28 100644 --- a/pexor/kernel-module/pexor_trb.h +++ b/pexor/kernel-module/pexor_trb.h @@ -95,7 +95,7 @@ #include -#define PEXORVERSION "0.995" +#define PEXORVERSION "2.0.1" /* the states:*/