Hello, Hmm... I'm a bit confused. These resources are tied to the platform device which is unregistered on probe failure which will invoke devres_release_all(). Matthew, can you please apply the following patch and see whether device_release() gets invoked? Thanks. diff --git a/drivers/ata/pata_legacy.c b/drivers/ata/pata_legacy.c index bce2a8c..0dd72ce 100644 --- a/drivers/ata/pata_legacy.c +++ b/drivers/ata/pata_legacy.c @@ -1013,6 +1013,7 @@ static __init int legacy_init_one(struct legacy_probe *probe) } ata_host_detach(host); fail: + printk("XXX pata_legacy: unregistering platform dev %p\n", pdev); platform_device_unregister(pdev); return ret; } diff --git a/drivers/base/core.c b/drivers/base/core.c index ce057a5..a3d112d 100644 --- a/drivers/base/core.c +++ b/drivers/base/core.c @@ -237,6 +237,7 @@ static void device_release(struct kobject *kobj) * is deleted but alive, so release devres here to avoid * possible memory leak. */ + printk("XXX device_release: invoking devres_release_all\n"); devres_release_all(dev); if (dev->release) -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html