Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d838d2c0 authored by Oleg Drokin's avatar Oleg Drokin Committed by Stefan Richter
Browse files

firewire: ohci: Misleading kfree in ohci.c::pci_probe/remove



It seems drivers/firewire/ohci.c is making some optimistic assumptions
about struct fw_ohci and that member "card" will always remain the first
member of the struct.
Plus it's probably going to confuse a lot of static code analyzers too.

So I wonder if there is a good reason not to free the ohci struct just
like it was allocated instead of the tricky &ohci->card way?

Signed-off-by: default avatarOleg Drokin <green@linuxhacker.ru>

It is perhaps just a rudiment from before mainline submission of the
driver.

Signed-off-by: default avatarStefan Richter <stefanr@s5r6.in-berlin.de>
parent b6258fc1
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -3309,7 +3309,7 @@ static int __devinit pci_probe(struct pci_dev *dev,
 fail_disable:
	pci_disable_device(dev);
 fail_free:
	kfree(&ohci->card);
	kfree(ohci);
	pmac_ohci_off(dev);
 fail:
	if (err == -ENOMEM)
@@ -3353,7 +3353,7 @@ static void pci_remove(struct pci_dev *dev)
	pci_iounmap(dev, ohci->registers);
	pci_release_region(dev, 0);
	pci_disable_device(dev);
	kfree(&ohci->card);
	kfree(ohci);
	pmac_ohci_off(dev);

	fw_notify("Removed fw-ohci device.\n");