Portable code must only use set_bit() on a long, otherwise Sparc64 and
mips64 break (and probably PPC64 in future).

Personally, I'd be much happier if set_bit(N,addr) were defined to
operate on the byte `(char *)addr + N/8': then we could use it on
`char', etc, as well (ie. set_le_bit renamed to set_bit).

I even changed cases where it didn't matter eg. hardware only used on
32-bit platforms, since people obviously copy that code...

Not fixed:
./fs/affs/bitmap.c:77:  set_bit(bit & 31,&blk);
        - This seems gratuitous anyway.

./drivers/net/wan/cycx_x25.c:1175:      set_bit(key, 
(void*)&card->u.x.connection_keys);
        - I think this is also gratuitous.

./drivers/block/cpqarray.c:1353:                } while(test_and_set_bit(i%32, 
h->cmd_pool_bits+(i/32)) != 0);
        - Broken on bigendian 64bit.

./drivers/block/cciss.c:235:                } while(test_and_set_bit(i%32, 
h->cmd_pool_bits+(i/32)) != 0);
        - Broken on bigendian 64bit.

./drivers/char/agp/agpgart_be.c:198:            set_bit(bit, agp_bridge.key_list);
        - Broken, but changing to long would break other things I think.

./drivers/scsi/qla1280.c:1522:    if(test_and_set_bit(QLA1280_IN_ISR_BIT, &ha->flags))
        - Completely broken (bitfield), but painful to fix.

./drivers/ieee1394/ohci1394.c:866:                if (!test_and_set_bit(channelbit, 
isochannels))
        - Doesn't seem trivial to fix.

Rusty.
--
Hacking time.
PS. Resent to l-k list because my fingers still remember vger.rutgers...

diff -urN -I \$.*\$ -X /tmp/kerndiff.oiH8zd --minimal 
linux-2.4.0-test11-5/Documentation/DocBook/kernel-hacking.tmpl 
working-2.4.0-test11-5/Documentation/DocBook/kernel-hacking.tmpl
--- linux-2.4.0-test11-5/Documentation/DocBook/kernel-hacking.tmpl      Thu May 25 
12:41:11 2000
+++ working-2.4.0-test11-5/Documentation/DocBook/kernel-hacking.tmpl    Fri Nov 17 
+09:04:46 2000
@@ -846,7 +846,7 @@
    first class of operations work on <type>atomic_t</type>
 
    <filename class=headerfile>include/asm/atomic.h</filename>; this
-   contains a signed integer (at least 32 bits long), and you must use
+   contains a signed integer (at least 24 bits long), and you must use
    these functions to manipulate or read atomic_t variables.
    <function>atomic_read()</function> and
    <function>atomic_set()</function> get and set the counter,
@@ -870,8 +870,8 @@
   </para>
 
   <para>
-   The second class of atomic operations is atomic bit operations,
-   defined in
+   The second class of atomic operations is atomic bit operations on a
+   <type>long</type>, defined in
 
    <filename class=headerfile>include/asm/bitops.h</filename>.  These
    operations generally take a pointer to the bit pattern, and a bit
@@ -887,8 +887,14 @@
   
   <para>
    It is possible to call these operations with bit indices greater
-   than 31.  The resulting behavior is strange on big-endian
+   than BITS_PER_LONG.  The resulting behavior is strange on big-endian
    platforms though so it is a good idea not to do this.
+  </para>
+
+  <para>
+   Note that the order of bits depends on the architecture, and in
+   particular, the bitfield passed to these operations must be at
+   least as large as a <type>long</type>.
   </para>
  </chapter>
 
diff -urN -I \$.*\$ -X /tmp/kerndiff.oiH8zd --minimal 
linux-2.4.0-test11-5/arch/alpha/kernel/semaphore.c 
working-2.4.0-test11-5/arch/alpha/kernel/semaphore.c
--- linux-2.4.0-test11-5/arch/alpha/kernel/semaphore.c  Sun Feb 27 19:26:13 2000
+++ working-2.4.0-test11-5/arch/alpha/kernel/semaphore.c        Fri Nov 17 08:32:34 
+2000
@@ -261,6 +261,7 @@
 void
 __do_rwsem_wake(struct rw_semaphore *sem, int readers)
 {
+       /* set_bit is safe, even though granted is `int': little endian --RR */
        if (readers) {
                if (test_and_set_bit(0, &sem->granted))
                        BUG();
diff -urN -I \$.*\$ -X /tmp/kerndiff.oiH8zd --minimal 
linux-2.4.0-test11-5/arch/alpha/kernel/smp.c 
working-2.4.0-test11-5/arch/alpha/kernel/smp.c
--- linux-2.4.0-test11-5/arch/alpha/kernel/smp.c        Wed Oct  4 15:16:14 2000
+++ working-2.4.0-test11-5/arch/alpha/kernel/smp.c      Fri Nov 17 08:31:33 2000
@@ -1081,6 +1081,7 @@
 debug_spin_trylock(spinlock_t * lock, const char *base_file, int line_no)
 {
        int ret;
+       /* this is safe, even though lock is `int': little endian --RR */
        if ((ret = !test_and_set_bit(0, lock))) {
                lock->on_cpu = smp_processor_id();
                lock->previous = __builtin_return_address(0);
diff -urN -I \$.*\$ -X /tmp/kerndiff.oiH8zd --minimal 
linux-2.4.0-test11-5/arch/i386/kernel/irq.c 
working-2.4.0-test11-5/arch/i386/kernel/irq.c
--- linux-2.4.0-test11-5/arch/i386/kernel/irq.c Sat Aug 12 00:23:15 2000
+++ working-2.4.0-test11-5/arch/i386/kernel/irq.c       Fri Nov 17 08:28:22 2000
@@ -179,7 +179,7 @@
 
 #ifdef CONFIG_SMP
 unsigned char global_irq_holder = NO_PROC_ID;
-unsigned volatile int global_irq_lock;
+unsigned volatile long global_irq_lock; /* pendantic: long for set_bit --RR */
 
 extern void show_stack(unsigned long* esp);
 
diff -urN -I \$.*\$ -X /tmp/kerndiff.oiH8zd --minimal 
linux-2.4.0-test11-5/arch/ia64/kernel/irq.c 
working-2.4.0-test11-5/arch/ia64/kernel/irq.c
--- linux-2.4.0-test11-5/arch/ia64/kernel/irq.c Thu Nov  9 16:15:46 2000
+++ working-2.4.0-test11-5/arch/ia64/kernel/irq.c       Fri Nov 17 08:56:00 2000
@@ -181,7 +181,7 @@
 
 #ifdef CONFIG_SMP
 unsigned int global_irq_holder = NO_PROC_ID;
-volatile unsigned int global_irq_lock;
+volatile unsigned long global_irq_lock; /* long for set_bit --RR */
 
 extern void show_stack(unsigned long* esp);
 
diff -urN -I \$.*\$ -X /tmp/kerndiff.oiH8zd --minimal 
linux-2.4.0-test11-5/arch/ppc/kernel/irq.c working-2.4.0-test11-5/arch/ppc/kernel/irq.c
--- linux-2.4.0-test11-5/arch/ppc/kernel/irq.c  Wed Oct  4 15:16:18 2000
+++ working-2.4.0-test11-5/arch/ppc/kernel/irq.c        Fri Nov 17 08:36:36 2000
@@ -357,7 +357,7 @@
 
 #ifdef CONFIG_SMP
 unsigned char global_irq_holder = NO_PROC_ID;
-unsigned volatile int global_irq_lock;
+unsigned volatile long global_irq_lock; /* pendantic :long for set_bit--RR*/
 atomic_t global_irq_count;
 
 atomic_t global_bh_count;
diff -urN -I \$.*\$ -X /tmp/kerndiff.oiH8zd --minimal 
linux-2.4.0-test11-5/arch/ppc/kernel/local_irq.h 
working-2.4.0-test11-5/arch/ppc/kernel/local_irq.h
--- linux-2.4.0-test11-5/arch/ppc/kernel/local_irq.h    Sat Aug 12 00:23:18 2000
+++ working-2.4.0-test11-5/arch/ppc/kernel/local_irq.h  Fri Nov 17 08:49:37 2000
@@ -15,8 +15,9 @@
 extern int ppc_spurious_interrupts;
 extern int ppc_second_irq;
 extern struct irqaction *ppc_irq_action[NR_IRQS];
-extern unsigned int ppc_cached_irq_mask[NR_MASK_WORDS];
-extern unsigned int ppc_lost_interrupts[NR_MASK_WORDS];
+/* pendatic: these are long because they are used with set_bit --RR */
+extern unsigned long ppc_cached_irq_mask[NR_MASK_WORDS];
+extern unsigned long ppc_lost_interrupts[NR_MASK_WORDS];
 extern atomic_t ppc_n_lost_interrupts;
 
 #endif /* _PPC_KERNEL_LOCAL_IRQ_H */
diff -urN -I \$.*\$ -X /tmp/kerndiff.oiH8zd --minimal 
linux-2.4.0-test11-5/arch/s390/kernel/irq.c 
working-2.4.0-test11-5/arch/s390/kernel/irq.c
--- linux-2.4.0-test11-5/arch/s390/kernel/irq.c Sat Aug 12 00:23:18 2000
+++ working-2.4.0-test11-5/arch/s390/kernel/irq.c       Fri Nov 17 09:00:52 2000
@@ -205,6 +205,8 @@
                        if (!local_bh_count(cpu)
                            && atomic_read(&global_bh_count))
                                continue;
+                       /* this works even though global_irq_lock not
+                           a long, but is arch-specific --RR */
                        if (!test_and_set_bit(0,&global_irq_lock))
                                break;
                }
@@ -243,6 +245,8 @@
 
 static inline void get_irqlock(int cpu)
 {
+       /* this works even though global_irq_lock not a long, but is
+          arch-specific --RR */
        if (test_and_set_bit(0,&global_irq_lock)) {
                /* do we already hold the lock? */
                if ( cpu == atomic_read(&global_irq_holder))
diff -urN -I \$.*\$ -X /tmp/kerndiff.oiH8zd --minimal 
linux-2.4.0-test11-5/drivers/acorn/block/fd1772.c 
working-2.4.0-test11-5/drivers/acorn/block/fd1772.c
--- linux-2.4.0-test11-5/drivers/acorn/block/fd1772.c   Wed Oct  4 15:16:19 2000
+++ working-2.4.0-test11-5/drivers/acorn/block/fd1772.c Fri Nov 17 08:11:16 2000
@@ -276,8 +276,8 @@
 static volatile int fdc_busy = 0;
 static DECLARE_WAIT_QUEUE_HEAD(fdc_wait);
 
-
-static unsigned int changed_floppies = 0xff, fake_change = 0;
+/* long req'd for set_bit --RR */
+static unsigned long changed_floppies = 0xff, fake_change = 0;
 #define        CHECK_CHANGE_DELAY      HZ/2
 
 /* DAG - increased to 30*HZ - not sure if this is the correct thing to do */
diff -urN -I \$.*\$ -X /tmp/kerndiff.oiH8zd --minimal 
linux-2.4.0-test11-5/drivers/block/ataflop.c 
working-2.4.0-test11-5/drivers/block/ataflop.c
--- linux-2.4.0-test11-5/drivers/block/ataflop.c        Wed Jul 12 17:52:03 2000
+++ working-2.4.0-test11-5/drivers/block/ataflop.c      Fri Nov 17 07:11:35 2000
@@ -317,7 +317,7 @@
 static DECLARE_WAIT_QUEUE_HEAD(fdc_wait);
 static DECLARE_WAIT_QUEUE_HEAD(format_wait);
 
-static unsigned int changed_floppies = 0xff, fake_change = 0;
+static unsigned long changed_floppies = 0xff, fake_change = 0;
 #define        CHECK_CHANGE_DELAY      HZ/2
 
 #define        FD_MOTOR_OFF_DELAY      (3*HZ)
diff -urN -I \$.*\$ -X /tmp/kerndiff.oiH8zd --minimal 
linux-2.4.0-test11-5/drivers/char/drm/mga_drv.h 
working-2.4.0-test11-5/drivers/char/drm/mga_drv.h
--- linux-2.4.0-test11-5/drivers/char/drm/mga_drv.h     Wed Oct  4 15:16:27 2000
+++ working-2.4.0-test11-5/drivers/char/drm/mga_drv.h   Fri Nov 17 07:29:17 2000
@@ -38,7 +38,7 @@
 #define MGA_BUF_NEEDS_OVERFLOW 3
 
 typedef struct {
-       u32 buffer_status;
+       long buffer_status; /* long req'd for set_bit() --RR */
        int num_dwords;
        int max_dwords;
        u32 *current_dma_ptr;
@@ -62,7 +62,7 @@
 #define MGA_IN_GETBUF    3
 
 typedef struct _drm_mga_private {
-       u32 dispatch_status;
+       long dispatch_status;   /* long req'd for set_bit() --RR */
        unsigned int next_prim_age;
        __volatile__ unsigned int last_prim_age;
        int reserved_map_idx;
diff -urN -I \$.*\$ -X /tmp/kerndiff.oiH8zd --minimal 
linux-2.4.0-test11-5/drivers/char/mixcomwd.c 
working-2.4.0-test11-5/drivers/char/mixcomwd.c
--- linux-2.4.0-test11-5/drivers/char/mixcomwd.c        Wed Oct  4 15:16:27 2000
+++ working-2.4.0-test11-5/drivers/char/mixcomwd.c      Fri Nov 17 07:24:05 2000
@@ -54,7 +54,7 @@
 #define FLASHCOM_WATCHDOG_OFFSET 0x4
 #define FLASHCOM_ID 0x18
 
-static int mixcomwd_opened;
+static long mixcomwd_opened; /* long req'd for setbit --RR */
 
 static int watchdog_port;
 
diff -urN -I \$.*\$ -X /tmp/kerndiff.oiH8zd --minimal 
linux-2.4.0-test11-5/drivers/char/moxa.c working-2.4.0-test11-5/drivers/char/moxa.c
--- linux-2.4.0-test11-5/drivers/char/moxa.c    Fri May 12 13:22:17 2000
+++ working-2.4.0-test11-5/drivers/char/moxa.c  Fri Nov 17 07:23:24 2000
@@ -152,7 +152,7 @@
        unsigned short closing_wait;
        int count;
        int blocked_open;
-       int event;
+       long event; /* long req'd for set_bit --RR */
        int asyncflags;
        long session;
        long pgrp;
diff -urN -I \$.*\$ -X /tmp/kerndiff.oiH8zd --minimal 
linux-2.4.0-test11-5/drivers/char/rio/host.h 
working-2.4.0-test11-5/drivers/char/rio/host.h
--- linux-2.4.0-test11-5/drivers/char/rio/host.h        Tue May 23 02:43:11 2000
+++ working-2.4.0-test11-5/drivers/char/rio/host.h      Fri Nov 17 07:39:43 2000
@@ -110,7 +110,7 @@
     struct UnixRup         UnixRups[MAX_RUP+LINKS_PER_UNIT];
        int                             timeout_id;     /* For calling 100 ms delays */
        int                             timeout_sem;/* For calling 100 ms delays */
-    int locks;
+    long locks; /* long req'd for set_bit --RR */
     char                   ____end_marker____;
 };
 #define Control      CardP->DpControl
diff -urN -I \$.*\$ -X /tmp/kerndiff.oiH8zd --minimal 
linux-2.4.0-test11-5/drivers/char/riscom8.h 
working-2.4.0-test11-5/drivers/char/riscom8.h
--- linux-2.4.0-test11-5/drivers/char/riscom8.h Thu May 13 06:27:37 1999
+++ working-2.4.0-test11-5/drivers/char/riscom8.h       Fri Nov 17 07:20:47 2000
@@ -71,7 +71,7 @@
        struct tty_struct       * tty;
        int                     count;
        int                     blocked_open;
-       int                     event;
+       long                    event; /* long req'd for set_bit --RR */
        int                     timeout;
        int                     close_delay;
        long                    session;
diff -urN -I \$.*\$ -X /tmp/kerndiff.oiH8zd --minimal 
linux-2.4.0-test11-5/drivers/char/sx.h working-2.4.0-test11-5/drivers/char/sx.h
--- linux-2.4.0-test11-5/drivers/char/sx.h      Fri May 12 13:47:06 2000
+++ working-2.4.0-test11-5/drivers/char/sx.h    Fri Nov 17 07:19:57 2000
@@ -31,7 +31,7 @@
   int                     c_dcd;
   struct sx_board         *board;
   int                     line;
-  int                     locks;
+  long                    locks; /* long req'd for set_bit --RR */
 };
 
 struct sx_board {
diff -urN -I \$.*\$ -X /tmp/kerndiff.oiH8zd --minimal 
linux-2.4.0-test11-5/drivers/ide/ide-floppy.c 
working-2.4.0-test11-5/drivers/ide/ide-floppy.c
--- linux-2.4.0-test11-5/drivers/ide/ide-floppy.c       Thu Apr 27 12:57:27 2000
+++ working-2.4.0-test11-5/drivers/ide/ide-floppy.c     Fri Nov 17 08:05:58 2000
@@ -104,7 +104,7 @@
        byte *current_position;                 /* Pointer into the above buffer */
        void (*callback) (ide_drive_t *);       /* Called when this packet command is 
completed */
        byte pc_buffer[IDEFLOPPY_PC_BUFFER_SIZE];       /* Temporary buffer */
-       unsigned int flags;                     /* Status/Action bit flags */
+       unsigned long flags;                    /* Status/Action bit flags: long for 
+set_bit */
 } idefloppy_pc_t;
 
 /*
diff -urN -I \$.*\$ -X /tmp/kerndiff.oiH8zd --minimal 
linux-2.4.0-test11-5/drivers/ide/ide-tape.c 
working-2.4.0-test11-5/drivers/ide/ide-tape.c
--- linux-2.4.0-test11-5/drivers/ide/ide-tape.c Thu Nov  9 16:15:52 2000
+++ working-2.4.0-test11-5/drivers/ide/ide-tape.c       Fri Nov 17 08:07:53 2000
@@ -686,7 +686,7 @@
        byte *current_position;                 /* Pointer into the above buffer */
        ide_startstop_t (*callback) (ide_drive_t *);    /* Called when this packet 
command is completed */
        byte pc_buffer[IDETAPE_PC_BUFFER_SIZE]; /* Temporary buffer */
-       unsigned int flags;                     /* Status/Action bit flags */
+       unsigned long flags;                    /* Status/Action bit flags: long for 
+set_bit */
 } idetape_pc_t;
 
 /*
@@ -908,7 +908,7 @@
        int pages_per_stage;
        int excess_bh_size;                     /* Wasted space in each stage */
 
-       unsigned int flags;                     /* Status/Action flags */
+       unsigned long flags;                    /* Status/Action flags: long for 
+set_bit --RR */
        spinlock_t spinlock;                    /* protects the ide-tape queue */
 
        /*
diff -urN -I \$.*\$ -X /tmp/kerndiff.oiH8zd --minimal 
linux-2.4.0-test11-5/drivers/isdn/hisax/hisax.h 
working-2.4.0-test11-5/drivers/isdn/hisax/hisax.h
--- linux-2.4.0-test11-5/drivers/isdn/hisax/hisax.h     Sun Aug 27 15:10:58 2000
+++ working-2.4.0-test11-5/drivers/isdn/hisax/hisax.h   Fri Nov 17 08:02:16 2000
@@ -202,7 +202,7 @@
        void *hardware;
        struct BCState *bcs;
        struct PStack **stlistp;
-       int Flags;
+       long Flags; /* long req'd for set_bit --RR */
        struct FsmInst l1m;
        struct FsmTimer timer;
        void (*l1l2) (struct PStack *, int, void *);
@@ -241,7 +241,7 @@
        int tei;
        int sap;
        int maxlen;
-       unsigned int flag;
+       unsigned long flag; /* long req'd for set_bit --RR */
        unsigned int vs, va, vr;
        int rc;
        unsigned int window;
@@ -366,7 +366,7 @@
 };
 
 struct isar_reg {
-       unsigned int Flags;
+       unsigned long Flags;    /* long req'd for set_bit --RR */
        volatile u_char bstat;
        volatile u_char iis;
        volatile u_char cmsb;
@@ -483,7 +483,7 @@
 struct BCState {
        int channel;
        int mode;
-       int Flag;
+       long Flag; /* long req'd for set_bit --RR */
        struct IsdnCardState *cs;
        int tx_cnt;             /* B-Channel transmit counter */
        struct sk_buff *tx_skb; /* B-Channel transmit Buffer */
@@ -528,7 +528,8 @@
        int data_open;
        struct l3_process *proc;
        setup_parm setup;       /* from isdnif.h numbers and Serviceindicator */
-       int Flags;              /* for remembering action done in l4 */
+       long Flags;             /* for remembering action done in l4 */
+                               /* long req'd for set_bit --RR */
        int leased;
 };
 
@@ -865,7 +866,7 @@
        int protocol;
        unsigned int irq;
        unsigned long irq_flags;
-       int HW_Flags;
+       long HW_Flags; /* long req'd for set_bit --RR */
        int *busy_flag;
         int chanlimit; /* limited number of B-chans to use */
         int logecho; /* log echo if supported by card */
@@ -932,7 +933,7 @@
        int rcvidx;
        struct sk_buff *tx_skb;
        int tx_cnt;
-       int event;
+       long event; /* long req'd for set_bit --RR */
        struct tq_struct tqueue;
        struct timer_list dbusytimer;
 #ifdef ERROR_STATISTIC
diff -urN -I \$.*\$ -X /tmp/kerndiff.oiH8zd --minimal 
linux-2.4.0-test11-5/drivers/media/video/zr36120.h 
working-2.4.0-test11-5/drivers/media/video/zr36120.h
--- linux-2.4.0-test11-5/drivers/media/video/zr36120.h  Sun Aug 27 15:10:59 2000
+++ working-2.4.0-test11-5/drivers/media/video/zr36120.h        Fri Nov 17 08:25:29 
+2000
@@ -130,7 +130,8 @@
        int             tuner_type;     /* tuner type, when found       */
        int             running;        /* are we rolling?              */
        rwlock_t        lock;
-       int             state;          /* what is requested of us?     */
+       long            state;          /* what is requested of us?     */
+                                       /* long req'd for set_bit --RR */
 #define STATE_OVERLAY  0
 #define STATE_VBI      1
        struct vidinfo* workqueue;      /* buffers to grab, head is active */
diff -urN -I \$.*\$ -X /tmp/kerndiff.oiH8zd --minimal 
linux-2.4.0-test11-5/drivers/net/3c505.h working-2.4.0-test11-5/drivers/net/3c505.h
--- linux-2.4.0-test11-5/drivers/net/3c505.h    Mon Feb 14 19:19:30 2000
+++ working-2.4.0-test11-5/drivers/net/3c505.h  Thu Nov 16 19:42:35 2000
@@ -284,7 +284,7 @@
 
        /* flags */
        unsigned long send_pcb_semaphore;
-       unsigned int dmaing;
+       unsigned long dmaing;
        unsigned long busy;
 
        unsigned int rx_active;  /* number of receive PCBs */
diff -urN -I \$.*\$ -X /tmp/kerndiff.oiH8zd --minimal 
linux-2.4.0-test11-5/drivers/net/aironet4500.h 
working-2.4.0-test11-5/drivers/net/aironet4500.h
--- linux-2.4.0-test11-5/drivers/net/aironet4500.h      Fri Jul 21 02:30:52 2000
+++ working-2.4.0-test11-5/drivers/net/aironet4500.h    Fri Nov 17 07:03:22 2000
@@ -1487,7 +1487,7 @@
        volatile int            ejected;
        volatile int            bh_running;
        volatile int            bh_active;
-       volatile int            tx_chain_active;
+       volatile long           tx_chain_active; /* long req'd: set_bit --RR */
        volatile u16            enabled_interrupts;
        volatile u16            waiting_interrupts;
        volatile int            interrupt_count;
diff -urN -I \$.*\$ -X /tmp/kerndiff.oiH8zd --minimal 
linux-2.4.0-test11-5/drivers/net/arlan.h working-2.4.0-test11-5/drivers/net/arlan.h
--- linux-2.4.0-test11-5/drivers/net/arlan.h    Fri Jul 21 02:30:52 2000
+++ working-2.4.0-test11-5/drivers/net/arlan.h  Fri Nov 17 07:01:12 2000
@@ -388,7 +388,7 @@
       volatile int     tx_chain_active;
       volatile int     timer_chain_active;
       volatile int     interrupt_ack_requested;
-      volatile int     command_lock;
+      volatile long    command_lock; /* long req'd for set_bit() --RR */
       volatile int     rx_command_needed;
       volatile int     tx_command_needed;
       volatile int     waiting_command_mask;
@@ -398,8 +398,8 @@
       volatile int     under_reset;
       volatile int     under_config;
       volatile int     rx_command_given;
-      volatile int     tx_command_given;
-      volatile int     interrupt_processing_active;
+      volatile long    tx_command_given; /* long req'd for set_bit() --RR */
+      volatile long    interrupt_processing_active; /* and here --RR */
       volatile long long       last_tx_time;
       volatile long long       last_rx_time;
       volatile long long       last_rx_int_ack_time;
diff -urN -I \$.*\$ -X /tmp/kerndiff.oiH8zd --minimal 
linux-2.4.0-test11-5/drivers/net/atarilance.c 
working-2.4.0-test11-5/drivers/net/atarilance.c
--- linux-2.4.0-test11-5/drivers/net/atarilance.c       Fri Oct 15 15:51:16 1999
+++ working-2.4.0-test11-5/drivers/net/atarilance.c     Fri Nov 17 09:08:32 2000
@@ -225,9 +225,9 @@
                                                /* copy function */
        void                            *(*memcpy_f)( void *, const void *, size_t );
        struct net_device_stats stats;
-/* These two must be ints for set_bit() */
-       int                                     tx_full;
-       int                                     lock;
+/* These two must be longs for set_bit() */
+       long int                        tx_full;
+       long int                        lock;
 };
 
 /* I/O register access macros */
diff -urN -I \$.*\$ -X /tmp/kerndiff.oiH8zd --minimal 
linux-2.4.0-test11-5/drivers/net/bagetlance.c 
working-2.4.0-test11-5/drivers/net/bagetlance.c
--- linux-2.4.0-test11-5/drivers/net/bagetlance.c       Tue May 23 02:43:15 2000
+++ working-2.4.0-test11-5/drivers/net/bagetlance.c     Fri Nov 17 07:05:30 2000
@@ -224,9 +224,9 @@
                                                /* copy function */
        void                            *(*memcpy_f)( void *, const void *, size_t );
        struct net_device_stats stats;
-/* These two must be ints for set_bit() */
-       int                                     tx_full;
-       int                                     lock;
+/* These two must be longs for set_bit() */
+       long                            tx_full;
+       long                            lock;
 };
 
 /* I/O register access macros */
diff -urN -I \$.*\$ -X /tmp/kerndiff.oiH8zd --minimal 
linux-2.4.0-test11-5/drivers/net/hamradio/6pack.h 
working-2.4.0-test11-5/drivers/net/hamradio/6pack.h
--- linux-2.4.0-test11-5/drivers/net/hamradio/6pack.h   Fri Oct 15 15:51:16 1999
+++ working-2.4.0-test11-5/drivers/net/hamradio/6pack.h Fri Nov 17 09:08:34 2000
@@ -101,7 +101,8 @@
   int                  mtu;            /* Our mtu (to spot changes!)   */
   int                   buffsize;       /* Max buffers sizes            */
 
-  unsigned char                flags;          /* Flag values/ mode etc        */
+  unsigned long                flags;          /* Flag values/ mode etc        */
+                                       /* long req'd for set_bit --RR */
   unsigned char                mode;           /* 6pack mode                   */
 
 /* 6pack stuff */
diff -urN -I \$.*\$ -X /tmp/kerndiff.oiH8zd --minimal 
linux-2.4.0-test11-5/drivers/net/hamradio/mkiss.h 
working-2.4.0-test11-5/drivers/net/hamradio/mkiss.h
--- linux-2.4.0-test11-5/drivers/net/hamradio/mkiss.h   Fri Oct 15 15:51:16 1999
+++ working-2.4.0-test11-5/drivers/net/hamradio/mkiss.h Fri Nov 17 09:08:35 2000
@@ -42,7 +42,8 @@
        int                 buffsize;           /* Max buffers sizes            */
 
 
-       unsigned char       flags;              /* Flag values/ mode etc        */
+       unsigned long   flags;          /* Flag values/ mode etc        */
+                                       /* long req'd: used by set_bit --RR */
 #define AXF_INUSE      0               /* Channel in use               */
 #define AXF_ESCAPE     1               /* ESC received                 */
 #define AXF_ERROR      2               /* Parity, etc. error           */
diff -urN -I \$.*\$ -X /tmp/kerndiff.oiH8zd --minimal 
linux-2.4.0-test11-5/drivers/net/ni52.c working-2.4.0-test11-5/drivers/net/ni52.c
--- linux-2.4.0-test11-5/drivers/net/ni52.c     Thu Nov  9 16:15:56 2000
+++ working-2.4.0-test11-5/drivers/net/ni52.c   Thu Nov 16 19:43:03 2000
@@ -219,7 +219,8 @@
        struct net_device_stats stats;
        unsigned long base;
        char *memtop;
-       int lock,reseted;
+       long int lock;
+       int reseted;
        volatile struct rfd_struct      *rfd_last,*rfd_top,*rfd_first;
        volatile struct scp_struct      *scp;   /* volatile is important */
        volatile struct iscp_struct     *iscp;  /* volatile is important */
diff -urN -I \$.*\$ -X /tmp/kerndiff.oiH8zd --minimal 
linux-2.4.0-test11-5/drivers/net/pcmcia/ray_cs.h 
working-2.4.0-test11-5/drivers/net/pcmcia/ray_cs.h
--- linux-2.4.0-test11-5/drivers/net/pcmcia/ray_cs.h    Fri Jul 21 02:30:52 2000
+++ working-2.4.0-test11-5/drivers/net/pcmcia/ray_cs.h  Fri Nov 17 07:07:34 2000
@@ -33,8 +33,8 @@
     UCHAR *rmem;                   /* pointer to receive buffer window       */
     dev_link_t *finder;            /* pointer back to dev_link_t for card    */
     struct timer_list timer;
-    int tx_ccs_lock;
-    int ccs_lock;
+    long tx_ccs_lock;             /* long req'd for set_bit() --RR */
+    long ccs_lock;                /* long req'd for set_bit() --RR */
     int   dl_param_ccs;
     union {
         struct b4_startup_params b4;
diff -urN -I \$.*\$ -X /tmp/kerndiff.oiH8zd --minimal 
linux-2.4.0-test11-5/drivers/net/slip.h working-2.4.0-test11-5/drivers/net/slip.h
--- linux-2.4.0-test11-5/drivers/net/slip.h     Thu Oct  5 15:34:34 2000
+++ working-2.4.0-test11-5/drivers/net/slip.h   Thu Nov 16 19:40:58 2000
@@ -91,7 +91,7 @@
   int                  xdata, xbits;   /* 6 bit slip controls          */
 #endif
 
-  unsigned int         flags;          /* Flag values/ mode etc        */
+  unsigned long                flags;          /* Flag values/ mode etc        */
 #define SLF_INUSE      0               /* Channel in use               */
 #define SLF_ESCAPE     1               /* ESC received                 */
 #define SLF_ERROR      2               /* Parity, etc. error           */
diff -urN -I \$.*\$ -X /tmp/kerndiff.oiH8zd --minimal 
linux-2.4.0-test11-5/drivers/net/sun3lance.c 
working-2.4.0-test11-5/drivers/net/sun3lance.c
--- linux-2.4.0-test11-5/drivers/net/sun3lance.c        Tue Feb  1 22:19:40 2000
+++ working-2.4.0-test11-5/drivers/net/sun3lance.c      Fri Nov 17 07:06:11 2000
@@ -147,9 +147,9 @@
        int new_rx, new_tx;     /* The next free ring entry */
        int old_tx, old_rx;     /* ring entry to be processed */
        struct net_device_stats stats;
-/* These two must be ints for set_bit() */
-       int                                     tx_full;
-       int                                     lock;
+/* These two must be longs for set_bit() */
+       long                                    tx_full;
+       long                                    lock;
 };
 
 /* I/O register access macros */
diff -urN -I \$.*\$ -X /tmp/kerndiff.oiH8zd --minimal 
linux-2.4.0-test11-5/drivers/net/wan/comx-hw-mixcom.c 
working-2.4.0-test11-5/drivers/net/wan/comx-hw-mixcom.c
--- linux-2.4.0-test11-5/drivers/net/wan/comx-hw-mixcom.c       Wed Oct  4 15:16:40 
2000
+++ working-2.4.0-test11-5/drivers/net/wan/comx-hw-mixcom.c     Fri Nov 17 06:46:17 
+2000
@@ -76,7 +76,7 @@
 struct mixcom_privdata {
        u16     clock;
        char    channel;
-       char    txbusy;
+       long    txbusy; /* Must be long: used with set_bit --RR */
        struct sk_buff *sending;
        unsigned tx_ptr;
        struct sk_buff *recving;
diff -urN -I \$.*\$ -X /tmp/kerndiff.oiH8zd --minimal 
linux-2.4.0-test11-5/drivers/net/wan/comx.h 
working-2.4.0-test11-5/drivers/net/wan/comx.h
--- linux-2.4.0-test11-5/drivers/net/wan/comx.h Thu Apr 27 12:57:32 2000
+++ working-2.4.0-test11-5/drivers/net/wan/comx.h       Fri Nov 17 09:08:36 2000
@@ -55,12 +55,12 @@
        unsigned char   line_status;
 
        struct timer_list lineup_timer; // against line jitter
-       int             lineup_pending;
+       long int        lineup_pending; // long req'd: used in set_bit -- RR
        unsigned char   lineup_delay;
 
 #if 0
        struct timer_list reset_timer; // for board resetting
-       int             reset_pending;
+       long            reset_pending; // long req'd: used in set_bit -- RR
        int             reset_timeout;
 #endif
 
diff -urN -I \$.*\$ -X /tmp/kerndiff.oiH8zd --minimal 
linux-2.4.0-test11-5/drivers/net/wan/cosa.c 
working-2.4.0-test11-5/drivers/net/wan/cosa.c
--- linux-2.4.0-test11-5/drivers/net/wan/cosa.c Thu Nov  9 16:15:57 2000
+++ working-2.4.0-test11-5/drivers/net/wan/cosa.c       Thu Nov 16 19:44:44 2000
@@ -165,8 +165,8 @@
        int nchannels;                  /* # of channels on this card */
        int driver_status;              /* For communicating with firware */
        int firmware_status;            /* Downloaded, reseted, etc. */
-       int rxbitmap, txbitmap;         /* Bitmap of channels who are willing to 
send/receive data */
-       int rxtx;                       /* RX or TX in progress? */
+       long int rxbitmap, txbitmap;    /* Bitmap of channels who are willing to 
+send/receive data */
+       long int rxtx;                  /* RX or TX in progress? */
        int enabled;
        int usage;                              /* usage count */
        int txchan, txsize, rxsize;
diff -urN -I \$.*\$ -X /tmp/kerndiff.oiH8zd --minimal 
linux-2.4.0-test11-5/drivers/net/wan/x25_asy.h 
working-2.4.0-test11-5/drivers/net/wan/x25_asy.h
--- linux-2.4.0-test11-5/drivers/net/wan/x25_asy.h      Fri Oct 15 15:52:04 1999
+++ working-2.4.0-test11-5/drivers/net/wan/x25_asy.h    Thu Nov 16 19:48:17 2000
@@ -42,7 +42,8 @@
   int                  mtu;            /* Our mtu (to spot changes!)   */
   int                   buffsize;       /* Max buffers sizes            */
 
-  unsigned int         flags;          /* Flag values/ mode etc        */
+  unsigned long                flags;          /* Flag values/ mode etc        */
+                                       /* long req'd for set_bit --RR  */
 #define SLF_INUSE      0               /* Channel in use               */
 #define SLF_ESCAPE     1               /* ESC received                 */
 #define SLF_ERROR      2               /* Parity, etc. error           */
diff -urN -I \$.*\$ -X /tmp/kerndiff.oiH8zd --minimal 
linux-2.4.0-test11-5/drivers/s390/char/hwc_rw.c 
working-2.4.0-test11-5/drivers/s390/char/hwc_rw.c
--- linux-2.4.0-test11-5/drivers/s390/char/hwc_rw.c     Thu May 18 18:10:15 2000
+++ working-2.4.0-test11-5/drivers/s390/char/hwc_rw.c   Fri Nov 17 08:21:44 2000
@@ -118,7 +118,8 @@
 static unsigned char
  _page[PAGE_SIZE] __attribute__ ((aligned (PAGE_SIZE)));
 
-typedef u32 kmem_pages_t;
+/* pedantic: long because we use set_bit on it --RR */
+typedef long kmem_pages_t;
 
 #define MAX_KMEM_PAGES (sizeof(kmem_pages_t) << 3)
 
diff -urN -I \$.*\$ -X /tmp/kerndiff.oiH8zd --minimal 
linux-2.4.0-test11-5/drivers/s390/net/ctc.c 
working-2.4.0-test11-5/drivers/s390/net/ctc.c
--- linux-2.4.0-test11-5/drivers/s390/net/ctc.c Thu May 18 18:10:15 2000
+++ working-2.4.0-test11-5/drivers/s390/net/ctc.c       Fri Nov 17 08:22:41 2000
@@ -128,7 +128,8 @@
  *
  */  
 
-static int channel_tab_initialized = 0;     /* channel[] structure initialized */
+/* long req'd by set_bit --RR */
+static long channel_tab_initialized = 0;     /* channel[] structure initialized */
 
 struct devicelist {  
         unsigned int  devno;
diff -urN -I \$.*\$ -X /tmp/kerndiff.oiH8zd --minimal 
linux-2.4.0-test11-5/drivers/scsi/3w-xxxx.h 
working-2.4.0-test11-5/drivers/scsi/3w-xxxx.h
--- linux-2.4.0-test11-5/drivers/scsi/3w-xxxx.h Wed Oct  4 15:16:41 2000
+++ working-2.4.0-test11-5/drivers/scsi/3w-xxxx.h       Fri Nov 17 07:47:50 2000
@@ -289,7 +289,7 @@
        unsigned short          aen_queue[TW_Q_LENGTH];
        unsigned char           aen_head;
        unsigned char           aen_tail;
-       u32                     flags;
+       long                    flags; /* long req'd for set_bit --RR */
 } TW_Device_Extension;
 
 /* Function prototypes */
diff -urN -I \$.*\$ -X /tmp/kerndiff.oiH8zd --minimal 
linux-2.4.0-test11-5/drivers/scsi/aic7xxx.c 
working-2.4.0-test11-5/drivers/scsi/aic7xxx.c
--- linux-2.4.0-test11-5/drivers/scsi/aic7xxx.c Thu Nov  9 16:15:58 2000
+++ working-2.4.0-test11-5/drivers/scsi/aic7xxx.c       Fri Nov 17 07:42:35 2000
@@ -935,7 +935,7 @@
    * We are grouping things here....first, items that get either read or
    * written with nearly every interrupt
    */
-  volatile ahc_flag_type   flags;
+  volatile long            flags;           /* long req'd for set_bit --RR */
   ahc_feature              features;         /* chip features */
   unsigned long            base;             /* card base address */
   volatile unsigned char  *maddr;            /* memory mapped address */
diff -urN -I \$.*\$ -X /tmp/kerndiff.oiH8zd --minimal 
linux-2.4.0-test11-5/drivers/scsi/ips.h working-2.4.0-test11-5/drivers/scsi/ips.h
--- linux-2.4.0-test11-5/drivers/scsi/ips.h     Wed Oct  4 15:16:47 2000
+++ working-2.4.0-test11-5/drivers/scsi/ips.h   Fri Nov 17 07:46:44 2000
@@ -929,7 +929,7 @@
    char              *ioctl_data;         /* IOCTL data area            */
    u32                ioctl_datasize;     /* IOCTL data size            */
    u32                cmd_in_progress;    /* Current command in progress*/
-   u32                flags;              /* HA flags                   */
+   long               flags;              /* HA flags: long req'd by set_bit */
    u8                 waitflag;           /* are we waiting for cmd     */
    u8                 active;
    u16                reset_count;        /* number of resets           */
diff -urN -I \$.*\$ -X /tmp/kerndiff.oiH8zd --minimal 
linux-2.4.0-test11-5/drivers/scsi/ultrastor.c 
working-2.4.0-test11-5/drivers/scsi/ultrastor.c
--- linux-2.4.0-test11-5/drivers/scsi/ultrastor.c       Wed Oct  4 15:16:50 2000
+++ working-2.4.0-test11-5/drivers/scsi/ultrastor.c     Fri Nov 17 07:43:38 2000
@@ -252,7 +252,7 @@
 #if ULTRASTOR_MAX_CMDS == 1
   unsigned char mscp_busy;
 #else
-  unsigned short mscp_free;
+  unsigned long mscp_free; /* long req'd for set_bit --RR */
 #endif
   volatile unsigned char aborted[ULTRASTOR_MAX_CMDS];
   struct mscp mscp[ULTRASTOR_MAX_CMDS];
diff -urN -I \$.*\$ -X /tmp/kerndiff.oiH8zd --minimal 
linux-2.4.0-test11-5/include/asm-generic/bitops.h 
working-2.4.0-test11-5/include/asm-generic/bitops.h
--- linux-2.4.0-test11-5/include/asm-generic/bitops.h   Tue Jul 21 10:23:32 1998
+++ working-2.4.0-test11-5/include/asm-generic/bitops.h Fri Nov 17 06:44:22 2000
@@ -9,14 +9,14 @@
  * disable interrupts while they operate.  (You have to provide inline
  * routines to cli() and sti().)
  *
- * Also note, these routines assume that you have 32 bit integers.
+ * Also note, these routines assume that you have 32 bit longs.
  * You will have to change this if you are trying to port Linux to the
  * Alpha architecture or to a Cray.  :-)
  * 
  * C language equivalents written by Theodore Ts'o, 9/26/92
  */
 
-extern __inline__ int set_bit(int nr,int * addr)
+extern __inline__ int set_bit(int nr,long * addr)
 {
        int     mask, retval;
 
@@ -29,7 +29,7 @@
        return retval;
 }
 
-extern __inline__ int clear_bit(int nr, int * addr)
+extern __inline__ int clear_bit(int nr, long * addr)
 {
        int     mask, retval;
 
@@ -42,7 +42,7 @@
        return retval;
 }
 
-extern __inline__ int test_bit(int nr, int * addr)
+extern __inline__ int test_bit(int nr, long * addr)
 {
        int     mask;
 
diff -urN -I \$.*\$ -X /tmp/kerndiff.oiH8zd --minimal 
linux-2.4.0-test11-5/include/asm-ia64/hardirq.h 
working-2.4.0-test11-5/include/asm-ia64/hardirq.h
--- linux-2.4.0-test11-5/include/asm-ia64/hardirq.h     Thu Nov  9 16:16:05 2000
+++ working-2.4.0-test11-5/include/asm-ia64/hardirq.h   Fri Nov 17 08:56:27 2000
@@ -49,7 +49,7 @@
 #include <asm/smp.h>
 
 extern unsigned int global_irq_holder;
-extern volatile unsigned int global_irq_lock;
+extern volatile unsigned long global_irq_lock;
 
 static inline int irqs_running (void)
 {
diff -urN -I \$.*\$ -X /tmp/kerndiff.oiH8zd --minimal 
linux-2.4.0-test11-5/include/asm-mips/semaphore.h 
working-2.4.0-test11-5/include/asm-mips/semaphore.h
--- linux-2.4.0-test11-5/include/asm-mips/semaphore.h   Tue May 23 02:43:26 2000
+++ working-2.4.0-test11-5/include/asm-mips/semaphore.h Fri Nov 17 08:35:49 2000
@@ -215,7 +215,7 @@
        atomic_t                count;
        /* bit 0 means read bias granted;
           bit 1 means write bias granted.  */
-       unsigned                granted;
+       unsigned long           granted; /* pendant: long req'd for set_bit */
        wait_queue_head_t       wait;
        wait_queue_head_t       write_bias_wait;
 #if WAITQUEUE_DEBUG
diff -urN -I \$.*\$ -X /tmp/kerndiff.oiH8zd --minimal 
linux-2.4.0-test11-5/include/asm-mips64/semaphore.h 
working-2.4.0-test11-5/include/asm-mips64/semaphore.h
--- linux-2.4.0-test11-5/include/asm-mips64/semaphore.h Tue May 23 02:43:27 2000
+++ working-2.4.0-test11-5/include/asm-mips64/semaphore.h       Fri Nov 17 08:58:01 
+2000
@@ -196,7 +196,7 @@
        atomic_t                count;
        /* bit 0 means read bias granted;
           bit 1 means write bias granted.  */
-       unsigned                granted;
+       unsigned long           granted; /* long req'd for set_bit --RR */
        wait_queue_head_t       wait;
        wait_queue_head_t       write_bias_wait;
 #if WAITQUEUE_DEBUG
diff -urN -I \$.*\$ -X /tmp/kerndiff.oiH8zd --minimal 
linux-2.4.0-test11-5/include/linux/agpgart.h 
working-2.4.0-test11-5/include/linux/agpgart.h
--- linux-2.4.0-test11-5/include/linux/agpgart.h        Thu Oct  5 15:33:45 2000
+++ working-2.4.0-test11-5/include/linux/agpgart.h      Fri Nov 17 07:37:51 2000
@@ -207,7 +207,7 @@
        struct _agp_file_private *next;
        struct _agp_file_private *prev;
        pid_t my_pid;
-       u32 access_flags;
+       long access_flags;      /* long req'd for set_bit --RR */
 } agp_file_private;
 
 struct agp_front_data {
diff -urN -I \$.*\$ -X /tmp/kerndiff.oiH8zd --minimal 
linux-2.4.0-test11-5/include/linux/atmdev.h 
working-2.4.0-test11-5/include/linux/atmdev.h
--- linux-2.4.0-test11-5/include/linux/atmdev.h Fri Nov 10 12:37:40 2000
+++ working-2.4.0-test11-5/include/linux/atmdev.h       Thu Nov 16 19:39:44 2000
@@ -257,7 +257,8 @@
 #define ATM_ATMOPT_CLP 1       /* set CLP bit */
 
 
-typedef struct { unsigned int bits; } atm_vcc_flags_t;
+/* Needs to be unsigned long: used with bitops --RR */
+typedef struct { unsigned long bits; } atm_vcc_flags_t;
 
 
 struct atm_vcc {
diff -urN -I \$.*\$ -X /tmp/kerndiff.oiH8zd --minimal 
linux-2.4.0-test11-5/include/linux/hdlcdrv.h 
working-2.4.0-test11-5/include/linux/hdlcdrv.h
--- linux-2.4.0-test11-5/include/linux/hdlcdrv.h        Wed Oct  4 15:17:09 2000
+++ working-2.4.0-test11-5/include/linux/hdlcdrv.h      Fri Nov 17 09:08:35 2000
@@ -199,7 +199,7 @@
 
        struct hdlcdrv_hdlcrx {
                struct hdlcdrv_hdlcbuffer hbuf;
-               int in_hdlc_rx;
+               long int in_hdlc_rx; /* long req'd: used by set_bit --RR */
                /* 0 = sync hunt, != 0 receiving */
                int rx_state;   
                unsigned int bitstream;
diff -urN -I \$.*\$ -X /tmp/kerndiff.oiH8zd --minimal 
linux-2.4.0-test11-5/include/linux/netfilter_ipv4/ip_conntrack.h 
working-2.4.0-test11-5/include/linux/netfilter_ipv4/ip_conntrack.h
--- linux-2.4.0-test11-5/include/linux/netfilter_ipv4/ip_conntrack.h    Tue Nov  7 
15:33:02 2000
+++ working-2.4.0-test11-5/include/linux/netfilter_ipv4/ip_conntrack.h  Thu Nov 16 
+19:38:19 2000
@@ -101,7 +101,7 @@
        struct ip_conntrack_tuple_hash tuplehash[IP_CT_DIR_MAX];
 
        /* Have we seen traffic both ways yet? (bitset) */
-       volatile unsigned int status;
+       volatile unsigned long status;
 
        /* Timer function; drops refcnt when it goes off. */
        struct timer_list timeout;
diff -urN -I \$.*\$ -X /tmp/kerndiff.oiH8zd --minimal 
linux-2.4.0-test11-5/include/linux/netfilter_ipv4/lockhelp.h 
working-2.4.0-test11-5/include/linux/netfilter_ipv4/lockhelp.h
--- linux-2.4.0-test11-5/include/linux/netfilter_ipv4/lockhelp.h        Fri Nov 10 
12:40:00 2000
+++ working-2.4.0-test11-5/include/linux/netfilter_ipv4/lockhelp.h      Thu Nov 16 
+19:33:25 2000
@@ -19,8 +19,8 @@
 struct rwlock_debug
 {
        rwlock_t l;
-       int read_locked_map;
-       int write_locked_map;
+       long read_locked_map; /* long req'd for set_bit */
+       long write_locked_map;
 };
 
 #define DECLARE_LOCK(l)                                                \
diff -urN -I \$.*\$ -X /tmp/kerndiff.oiH8zd --minimal 
linux-2.4.0-test11-5/include/linux/parport.h 
working-2.4.0-test11-5/include/linux/parport.h
--- linux-2.4.0-test11-5/include/linux/parport.h        Sat Oct  7 13:43:20 2000
+++ working-2.4.0-test11-5/include/linux/parport.h      Fri Nov 17 08:17:52 2000
@@ -229,7 +229,7 @@
        unsigned long int time;
        unsigned long int timeslice;
        volatile long int timeout;
-       unsigned int waiting;
+       unsigned long waiting;           /* long req'd for set_bit --RR */
        struct pardevice *waitprev;
        struct pardevice *waitnext;
        void * sysctl_table;
diff -urN -I \$.*\$ -X /tmp/kerndiff.oiH8zd --minimal 
linux-2.4.0-test11-5/include/linux/spinlock.h 
working-2.4.0-test11-5/include/linux/spinlock.h
--- linux-2.4.0-test11-5/include/linux/spinlock.h       Fri Nov 10 12:31:22 2000
+++ working-2.4.0-test11-5/include/linux/spinlock.h     Thu Nov 16 19:32:34 2000
@@ -65,7 +65,7 @@
 #elif (DEBUG_SPINLOCKS < 2)
 
 typedef struct {
-       volatile unsigned int lock;
+       volatile unsigned long lock; /* long required for set_bit --RR */
 } spinlock_t;
 #define SPIN_LOCK_UNLOCKED (spinlock_t) { 0 }
 
@@ -80,7 +80,7 @@
 #else /* (DEBUG_SPINLOCKS >= 2) */
 
 typedef struct {
-       volatile unsigned int lock;
+       volatile unsigned long lock; /* long required for set_bit --RR */
        volatile unsigned int babble;
        const char *module;
 } spinlock_t;
diff -urN -I \$.*\$ -X /tmp/kerndiff.oiH8zd --minimal 
linux-2.4.0-test11-5/include/linux/stallion.h 
working-2.4.0-test11-5/include/linux/stallion.h
--- linux-2.4.0-test11-5/include/linux/stallion.h       Fri Oct 15 15:51:38 1999
+++ working-2.4.0-test11-5/include/linux/stallion.h     Fri Nov 17 07:40:39 2000
@@ -75,7 +75,7 @@
        int                     ioaddr;
        int                     uartaddr;
        int                     pagenr;
-       int                     istate;
+       long                    istate; /* long req'd for set_bit --RR */
        int                     flags;
        int                     baud_base;
        int                     custom_divisor;
diff -urN -I \$.*\$ -X /tmp/kerndiff.oiH8zd --minimal 
linux-2.4.0-test11-5/include/linux/wanrouter.h 
working-2.4.0-test11-5/include/linux/wanrouter.h
--- linux-2.4.0-test11-5/include/linux/wanrouter.h      Fri Nov 10 12:38:30 2000
+++ working-2.4.0-test11-5/include/linux/wanrouter.h    Thu Nov 16 19:46:42 2000
@@ -442,7 +442,7 @@
        char api_status;                /* device api status */
        struct net_device_stats stats;  /* interface statistics */
        unsigned reserved[16];          /* reserved for future use */
-       unsigned critical;              /* critical section flag */
+       unsigned long critical;         /* critical section flag */
                                        /****** device management methods ***/
        int (*setup) (struct wan_device *wandev, wandev_conf_t *conf);
        int (*shutdown) (struct wan_device *wandev);
diff -urN -I \$.*\$ -X /tmp/kerndiff.oiH8zd --minimal 
linux-2.4.0-test11-5/net/sunrpc/sched.c working-2.4.0-test11-5/net/sunrpc/sched.c
--- linux-2.4.0-test11-5/net/sunrpc/sched.c     Wed Oct  4 15:17:16 2000
+++ working-2.4.0-test11-5/net/sunrpc/sched.c   Thu Nov 16 19:38:33 2000
@@ -82,7 +82,7 @@
  * This is the last-ditch buffer for NFS swap requests
  */
 static u32                     swap_buffer[PAGE_SIZE >> 2];
-static int                     swap_buffer_used;
+static long                    swap_buffer_used; /* long req'd for set_bit */
 
 /*
  * Make allocation of the swap_buffer SMP-safe
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/

Reply via email to