patch-2.4.23 linux-2.4.23/arch/x86_64/kernel/ioport.c
Next file: linux-2.4.23/arch/x86_64/kernel/irq.c
Previous file: linux-2.4.23/arch/x86_64/kernel/io_apic.c
Back to the patch index
Back to the overall index
- Lines: 41
- Date:
2003-11-28 10:26:19.000000000 -0800
- Orig file:
linux-2.4.22/arch/x86_64/kernel/ioport.c
- Orig date:
2003-06-13 07:51:32.000000000 -0700
diff -urN linux-2.4.22/arch/x86_64/kernel/ioport.c linux-2.4.23/arch/x86_64/kernel/ioport.c
@@ -19,35 +19,13 @@
/* Set EXTENT bits starting at BASE in BITMAP to value TURN_ON. */
static void set_bitmap(unsigned long *bitmap, short base, short extent, int new_value)
{
- unsigned long mask;
- unsigned long *bitmap_base = bitmap + base / sizeof(long);
- unsigned low_index = base & (BITS_PER_LONG - 1);
- int length = low_index + extent;
-
- if (low_index != 0) {
- mask = (~0UL << low_index);
- if (length < 64)
- mask &= ~(~0UL << length);
+ int i;
if (new_value)
- *bitmap_base++ |= mask;
+ for (i = base; i < base + extent; i++)
+ __set_bit(i, bitmap);
else
- *bitmap_base++ &= ~mask;
- length -= 64;
- }
-
- mask = (new_value ? ~0UL : 0UL);
- while (length >= 64) {
- *bitmap_base++ = mask;
- length -= 64;
- }
-
- if (length > 0) {
- mask = ~(~0UL << length);
- if (new_value)
- *bitmap_base++ |= mask;
- else
- *bitmap_base++ &= ~mask;
- }
+ for (i = base; i < base + extent; i++)
+ clear_bit(i, bitmap);
}
/*
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)