set_bit takes a `long *'
Subsystems (21)
PATCH 1/1 set_bit takes a `long *'
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...
Documentation/DocBook/kernel-hacking.tmpl +10 -4
@@ -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>
arch/alpha/kernel/semaphore.c +1 -0
@@ -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 ();
arch/alpha/kernel/smp.c +1 -0
@@ -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 );
arch/i386/kernel/irq.c +1 -1
@@ -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);
arch/ia64/kernel/irq.c +1 -1
@@ -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);
arch/ppc/kernel/irq.c +1 -1
@@ -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;
arch/ppc/kernel/local_irq.h +3 -2
@@ -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 */
arch/s390/kernel/irq.c +4 -0
@@ -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))
drivers/acorn/block/fd1772.c +2 -2
@@ -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 */
drivers/block/ataflop.c +1 -1
@@ -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)
drivers/char/drm/mga_drv.h +2 -2
@@ -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;
drivers/char/mixcomwd.c +1 -1
@@ -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;
drivers/char/moxa.c +1 -1
@@ -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;
drivers/char/rio/host.h +1 -1
@@ -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
drivers/char/riscom8.h +1 -1
@@ -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;
drivers/char/sx.h +1 -1
@@ -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 {
drivers/ide/ide-floppy.c +1 -1
@@ -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;/*
drivers/ide/ide-tape.c +2 -2
@@ -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 */ /*
drivers/isdn/hisax/hisax.h +8 -7
@@ -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
drivers/media/video/zr36120.h +2 -1
@@ -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 1struct vidinfo * workqueue;/* buffers to grab, head is active */
drivers/net/3c505.h +1 -1
@@ -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 */
drivers/net/aironet4500.h +1 -1
@@ -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;
drivers/net/arlan.h +3 -3
@@ -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;
drivers/net/atarilance.c +3 -3
@@ -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 */
drivers/net/bagetlance.c +3 -3
@@ -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 */
drivers/net/hamradio/6pack.h +2 -1
@@ -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 */
drivers/net/hamradio/mkiss.h +2 -1
@@ -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 */
drivers/net/ni52.c +2 -1
@@ -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 */
drivers/net/pcmcia/ray_cs.h +2 -2
@@ -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;
drivers/net/slip.h +1 -1
@@ -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 */
drivers/net/sun3lance.c +3 -3
@@ -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 */
drivers/net/wan/comx-hw-mixcom.c +1 -1
@@ -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;
drivers/net/wan/comx.h +2 -2
@@ -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
drivers/net/wan/cosa.c +2 -2
@@ -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;
drivers/net/wan/x25_asy.h +2 -1
@@ -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 */
drivers/s390/char/hwc_rw.c +2 -1
@@ -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)
drivers/s390/net/ctc.c +2 -1
@@ -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;
drivers/scsi/3w-xxxx.h +1 -1
@@ -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 */
drivers/scsi/aic7xxx.c +1 -1
@@ -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 */
drivers/scsi/ips.h +1 -1
@@ -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 */
drivers/scsi/ultrastor.c +1 -1
@@ -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 ];
include/asm-generic/bitops.h +4 -4
@@ -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;
include/asm-ia64/hardirq.h +1 -1
@@ -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 ) {
include/asm-mips/semaphore.h +1 -1
@@ -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
include/asm-mips64/semaphore.h +1 -1
@@ -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
include/linux/agpgart.h +1 -1
@@ -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 {
include/linux/atmdev.h +2 -1
@@ -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 {
include/linux/hdlcdrv.h +1 -1
@@ -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;
include/linux/netfilter_ipv4/ip_conntrack.h +1 -1
@@ -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;
include/linux/netfilter_ipv4/lockhelp.h +2 -2
@@ -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) \
include/linux/parport.h +1 -1
@@ -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;
include/linux/spinlock.h +2 -2
@@ -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 ;
include/linux/stallion.h +1 -1
@@ -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;
include/linux/wanrouter.h +1 -1
@@ -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);
net/sunrpc/sched.c +1 -1
@@ -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/