The patch titled pnp: card_probe(): fix memory leak has been removed from the -mm tree. Its filename is pnp-card_probe-fix-memory-leak.patch This patch was dropped because it was merged into mainline or a subsystem tree ------------------------------------------------------ Subject: pnp: card_probe(): fix memory leak From: Jesper Juhl <jesper.juhl@xxxxxxxxx> We can leak `clink' if drv->probe == 0. Signed-off-by: Jesper Juhl <jesper.juhl@xxxxxxxxx> Cc: Adam Belay <ambx1@xxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxx> --- drivers/pnp/card.c | 48 +++++++++++++++++++++++-------------------- 1 file changed, 26 insertions(+), 22 deletions(-) diff -puN drivers/pnp/card.c~pnp-card_probe-fix-memory-leak drivers/pnp/card.c --- a/drivers/pnp/card.c~pnp-card_probe-fix-memory-leak +++ a/drivers/pnp/card.c @@ -60,30 +60,34 @@ static void card_remove_first(struct pnp card_remove(dev); } -static int card_probe(struct pnp_card * card, struct pnp_card_driver * drv) +static int card_probe(struct pnp_card *card, struct pnp_card_driver *drv) { - const struct pnp_card_device_id *id = match_card(drv,card); - if (id) { - struct pnp_card_link * clink = pnp_alloc(sizeof(struct pnp_card_link)); - if (!clink) - return 0; - clink->card = card; - clink->driver = drv; - clink->pm_state = PMSG_ON; - if (drv->probe) { - if (drv->probe(clink, id)>=0) - return 1; - else { - struct pnp_dev * dev; - card_for_each_dev(card, dev) { - if (dev->card_link == clink) - pnp_release_card_device(dev); - } - kfree(clink); - } - } else - return 1; + const struct pnp_card_device_id *id; + struct pnp_card_link *clink; + struct pnp_dev *dev; + + if (!drv->probe) + return 0; + id = match_card(drv,card); + if (!id) + return 0; + + clink = pnp_alloc(sizeof(*clink)); + if (!clink) + return 0; + clink->card = card; + clink->driver = drv; + clink->pm_state = PMSG_ON; + + if (drv->probe(clink, id) >= 0) + return 1; + + /* Recovery */ + card_for_each_dev(card, dev) { + if (dev->card_link == clink) + pnp_release_card_device(dev); } + kfree(clink); return 0; } _ Patches currently in -mm which might be from jesper.juhl@xxxxxxxxx are origin.patch small-whitespace-cleanup-for-qlogic-driver.patch add-scsi_add_host-failure-handling-for-nsp32.patch bluetooth-fix-potential-null-ptr-deref-in-dtl1_cscdtl1_hci_send_frame.patch i-force-joystick-remove-some-pointless-casts.patch remove-redundant-null-checks-before-free-in-fs.patch remove-redundant-null-checks-before-free-in-kernel.patch remove-redundant-null-checks-before-free-in-drivers.patch - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html