igb_uio: cast private data to correct struct type

This was working fine because addresses of two structs are same:

struct A {
	struct B b;
} a;

As above sample "a" and "b" has same address.

Now casting private data back to the correct struct type, to the one
stored.

Fixes: af75078fec ("first public release")

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
This commit is contained in:
Ferruh Yigit 2016-03-03 17:08:19 +00:00 committed by Thomas Monjalon
parent b367a3820d
commit edc774533f

View File

@ -561,24 +561,17 @@ igbuio_pci_probe(struct pci_dev *dev, const struct pci_device_id *id)
static void
igbuio_pci_remove(struct pci_dev *dev)
{
struct uio_info *info = pci_get_drvdata(dev);
struct rte_uio_pci_dev *udev;
if (info->priv == NULL) {
pr_notice("Not igbuio device\n");
return;
}
udev = info->priv;
struct rte_uio_pci_dev *udev = pci_get_drvdata(dev);
sysfs_remove_group(&dev->dev.kobj, &dev_attr_grp);
uio_unregister_device(info);
igbuio_pci_release_iomem(info);
uio_unregister_device(&udev->info);
igbuio_pci_release_iomem(&udev->info);
if (udev->mode == RTE_INTR_MODE_MSIX)
pci_disable_msix(dev);
pci_release_regions(dev);
pci_disable_device(dev);
pci_set_drvdata(dev, NULL);
kfree(info);
kfree(udev);
}
static int