From: John Mock <kd6pag@qsl.net>

If 'parport_pc' is compile as a module, it fails to properly return certain
ioport resources after being removed.



 drivers/parport/parport_pc.c |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletion(-)

diff -puN drivers/parport/parport_pc.c~parport_pc-resource-release-fix drivers/parport/parport_pc.c
--- 25/drivers/parport/parport_pc.c~parport_pc-resource-release-fix	2003-10-18 17:33:37.000000000 -0700
+++ 25-akpm/drivers/parport/parport_pc.c	2003-10-18 17:33:37.000000000 -0700
@@ -2358,7 +2358,11 @@ struct parport *parport_pc_probe_port (u
 		release_region(base_hi, 3);
 		ECR_res = NULL;
 	}
-
+	/* Likewise for EEP ports */
+	if (EPP_res && (p->modes & PARPORT_MODE_EPP) == 0) {
+		release_region(base+3, 5);
+		EPP_res = NULL;
+	}
 	if (p->irq != PARPORT_IRQ_NONE) {
 		if (request_irq (p->irq, parport_pc_interrupt,
 				 0, p->name, p)) {

_