Add a call to pfm_pmu_conf->unload_context() (if available) to the error path in __pfm_load_context().
Signed-off-by: Kevin Corry <[EMAIL PROTECTED]> Signed-off-by: Carl Love <[EMAIL PROTECTED]> Index: linux-2.6.21-perfmon1/perfmon/perfmon.c =================================================================== --- linux-2.6.21-perfmon1.orig/perfmon/perfmon.c +++ linux-2.6.21-perfmon1/perfmon/perfmon.c @@ -1295,7 +1295,7 @@ int __pfm_load_context(struct pfm_contex if (pfm_pmu_conf->load_context) { ret = pfm_pmu_conf->load_context(ctx); if (ret) - goto error; + goto error_arch_loaded; } /* @@ -1378,6 +1378,9 @@ int __pfm_load_context(struct pfm_contex return 0; error: + if (pfm_pmu_conf->unload_context) + ret = pfm_pmu_conf->unload_context(ctx); +error_arch_loaded: pfm_arch_unload_context(ctx, task); error_noload: /* _______________________________________________ perfmon mailing list perfmon@linux.hpl.hp.com http://www.hpl.hp.com/hosted/linux/mail-archives/perfmon/