From: Olaf Hering decode_winbond and decode_smsc return now 1 if the region is available, or 0 if request_region fails. Signed-off-by: Andrew Morton --- 25-akpm/drivers/parport/parport_pc.c | 6 ++++-- 1 files changed, 4 insertions(+), 2 deletions(-) diff -puN drivers/parport/parport_pc.c~request_region-for-winbond-and-smsc-parport-drivers-fix drivers/parport/parport_pc.c --- 25/drivers/parport/parport_pc.c~request_region-for-winbond-and-smsc-parport-drivers-fix 2004-08-27 02:14:04.076337712 -0700 +++ 25-akpm/drivers/parport/parport_pc.c 2004-08-27 02:14:04.081336952 -0700 @@ -1482,7 +1482,8 @@ static void __devinit winbond_check2(int if ((x_devid == devid) && (x_devrev == devrev) && (x_oldid == oldid)) goto out; /* protection against false positives */ - decode_winbond(io,key,devid,devrev,oldid); + if (decode_winbond(io,key,devid,devrev,oldid)) + return; out: release_region(io, 3); } @@ -1521,7 +1522,8 @@ static void __devinit smsc_check(int io, (x_oldid == oldid) && (x_rev == rev)) goto out; /* protection against false positives */ - decode_smsc(io,key,oldid,oldrev); + if (decode_smsc(io,key,oldid,oldrev)) + return; out: release_region(io, 3); } _