diff --git a/src/chipset/intel_piix.c b/src/chipset/intel_piix.c index bff891bea..aeed83ab5 100644 --- a/src/chipset/intel_piix.c +++ b/src/chipset/intel_piix.c @@ -1397,11 +1397,14 @@ piix_reset(void *p) static void -piix_close(void *p) +piix_close(void *priv) { - piix_t *piix = (piix_t *)p; + piix_t *dev = (piix_t *) priv; - free(piix); + for (int i = 0; i < (sizeof(dev->io_traps) / sizeof(dev->io_traps[0])); i++) + io_trap_remove(dev->io_traps[i].trap); + + free(dev); }