All, Here are 2 more patches (mostly cleanup this time) for PS/2 ESDI. Patch 2: Correct MAX_HD, and use it throughout. Patch 3: Make more stuff static. As usual, these are available at the following URL's in case my mailer mangles them. http://www.sound.net/~hald/projects/ps2esdi/ps2esdi-2.4.3-patch2 http://www.sound.net/~hald/projects/ps2esdi/ps2esdi-2.4.3-patch3 Thanks, and not on the list, Hal Duston [EMAIL PROTECTED]
Make more stuff static. --- linux-2.4.3-hdd2/drivers/block/ps2esdi.c Tue Apr 10 00:51:30 2001 +++ linux-2.4.3-hdd3/drivers/block/ps2esdi.c Tue Apr 10 00:51:57 2001 @@ -105,14 +105,14 @@ static void ps2esdi_get_device_cfg(void); -void ps2esdi_reset_timer(unsigned long unused); +static void ps2esdi_reset_timer(unsigned long unused); -u_int dma_arb_level; /* DMA arbitration level */ +static u_int dma_arb_level; /* DMA arbitration level */ static DECLARE_WAIT_QUEUE_HEAD(ps2esdi_int); static DECLARE_WAIT_QUEUE_HEAD(ps2esdi_wait_open); -int no_int_yet; +static int no_int_yet; static int access_count[MAX_HD]; static char ps2esdi_valid[MAX_HD]; static int ps2esdi_sizes[MAX_HD << 6]; @@ -123,26 +123,26 @@ static struct timer_list esdi_timer = { function: ps2esdi_reset_timer }; static int reset_status; static int ps2esdi_slot = -1; -int tp720esdi = 0; /* Is it Integrated ESDI of ThinkPad-720? */ -int intg_esdi = 0; /* If integrated adapter */ +static int tp720esdi = 0; /* Is it Integrated ESDI of ThinkPad-720? */ +static int intg_esdi = 0; /* If integrated adapter */ struct ps2esdi_i_struct { unsigned int head, sect, cyl, wpcom, lzone, ctl; }; #if 0 #if 0 /* try both - I don't know which one is better... UB */ -struct ps2esdi_i_struct ps2esdi_info[MAX_HD] = +static struct ps2esdi_i_struct ps2esdi_info[MAX_HD] = { {4, 48, 1553, 0, 0, 0}, {0, 0, 0, 0, 0, 0}}; #else -struct ps2esdi_i_struct ps2esdi_info[MAX_HD] = +static struct ps2esdi_i_struct ps2esdi_info[MAX_HD] = { {64, 32, 161, 0, 0, 0}, {0, 0, 0, 0, 0, 0}}; #endif #endif -struct ps2esdi_i_struct ps2esdi_info[MAX_HD] = +static struct ps2esdi_i_struct ps2esdi_info[MAX_HD] = { {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}}; @@ -191,9 +191,9 @@ #ifdef MODULE -int cyl[MAX_HD] = {-1,-1}; -int head[MAX_HD] = {-1, -1}; -int sect[MAX_HD] = {-1, -1}; +static int cyl[MAX_HD] = {-1,-1}; +static int head[MAX_HD] = {-1, -1}; +static int sect[MAX_HD] = {-1, -1}; MODULE_PARM(tp720esdi, "i"); MODULE_PARM(cyl, "i"); @@ -1165,7 +1165,7 @@ return (0); } -void ps2esdi_reset_timer(unsigned long unused) +static void ps2esdi_reset_timer(unsigned long unused) { int status;
Correct MAX_HD, and use it throughout. --- linux-2.4.3-hdd1/drivers/block/ps2esdi.c Tue Apr 10 00:51:05 2001 +++ linux-2.4.3-hdd2/drivers/block/ps2esdi.c Tue Apr 10 00:51:30 2001 @@ -56,7 +56,7 @@ #include <asm/uaccess.h> #define PS2ESDI_IRQ 14 -#define MAX_HD 1 +#define MAX_HD 2 #define MAX_RETRIES 5 #define MAX_16BIT 65536 #define ESDI_TIMEOUT 0xf000 @@ -131,18 +131,18 @@ #if 0 #if 0 /* try both - I don't know which one is better... UB */ -struct ps2esdi_i_struct ps2esdi_info[] = +struct ps2esdi_i_struct ps2esdi_info[MAX_HD] = { {4, 48, 1553, 0, 0, 0}, {0, 0, 0, 0, 0, 0}}; #else -struct ps2esdi_i_struct ps2esdi_info[] = +struct ps2esdi_i_struct ps2esdi_info[MAX_HD] = { {64, 32, 161, 0, 0, 0}, {0, 0, 0, 0, 0, 0}}; #endif #endif -struct ps2esdi_i_struct ps2esdi_info[] = +struct ps2esdi_i_struct ps2esdi_info[MAX_HD] = { {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}}; @@ -191,9 +191,9 @@ #ifdef MODULE -int cyl[2] = {-1,-1}; -int head[2] = {-1, -1}; -int sect[2] = {-1, -1}; +int cyl[MAX_HD] = {-1,-1}; +int head[MAX_HD] = {-1, -1}; +int sect[MAX_HD] = {-1, -1}; MODULE_PARM(tp720esdi, "i"); MODULE_PARM(cyl, "i"); @@ -203,7 +203,7 @@ int init_module(void) { int drive; - for(drive = 0; drive <= 1; drive++) { + for(drive = 0; drive < MAX_HD; drive++) { struct ps2_esdi_i_struct *info = &ps2esdi_info[drive]; if (cyl[drive] != -1) {