From: Nicolas Pitre <nico@cam.org>

The PAGE_SIZE mask is indeed confusing.  Use the exact mask for this
context which has nothing to do with memory pages at all.  Also cast to int
since the value to compare with is an int.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 25-akpm/drivers/net/smc91x.c |    2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)

diff -puN drivers/net/smc91x.c~smc91x-addr-config-check drivers/net/smc91x.c
--- 25/drivers/net/smc91x.c~smc91x-addr-config-check	2005-03-16 17:23:45.000000000 -0800
+++ 25-akpm/drivers/net/smc91x.c	2005-03-16 17:23:45.000000000 -0800
@@ -1863,7 +1863,7 @@ static int __init smc_probe(struct net_d
 	SMC_SELECT_BANK(1);
 	val = SMC_GET_BASE();
 	val = ((val & 0x1F00) >> 3) << SMC_IO_SHIFT;
-	if (((unsigned long)ioaddr & ((PAGE_SIZE-1)<<SMC_IO_SHIFT)) != val) { /*XXX: WTF? */
+	if (((unsigned int)ioaddr & (0x3e0 << SMC_IO_SHIFT)) != val) {
 		printk("%s: IOADDR %p doesn't match configuration (%x).\n",
 			CARDNAME, ioaddr, val);
 	}
_