2003-09-11 04:21:16

by Stephen Hemminger

[permalink] [raw]
Subject: [PATCH] ps2esdi broken

This driver has problems all over the place and needs
to be be disabled (or deleted)

In file included from include/linux/mca.h:140,
from drivers/block/ps2esdi.c:42:
include/linux/mca-legacy.h:10:2: warning: #warning "MCA legacy - please
move your driver to the new sysfs api"
drivers/block/ps2esdi.c:186: error: redefinition of `init_module'
drivers/block/ps2esdi.c:172: error: `init_module' previously defined here
drivers/block/ps2esdi.c: In function `init_module':
drivers/block/ps2esdi.c:190: warning: initialization from incompatible
pointer type
drivers/block/ps2esdi.c:193: error: dereferencing pointer to incomplete type
drivers/block/ps2esdi.c:193: error: dereferencing pointer to incomplete type
drivers/block/ps2esdi.c:194: error: dereferencing pointer to incomplete type
drivers/block/ps2esdi.c:197: error: dereferencing pointer to incomplete type
drivers/block/ps2esdi.c:198: error: dereferencing pointer to incomplete type
drivers/block/ps2esdi.c:200: error: dereferencing pointer to incomplete type
drivers/block/ps2esdi.c: In function `cleanup_module':
drivers/block/ps2esdi.c:216: error: `i' undeclared (first use in this
function)
drivers/block/ps2esdi.c:216: error: (Each undeclared identifier is
reported only once
drivers/block/ps2esdi.c:216: error: for each function it appears in.)
make[2]: *** [drivers/block/ps2esdi.o] Error 1

diff -Nru a/drivers/block/Kconfig b/drivers/block/Kconfig
--- a/drivers/block/Kconfig Wed Sep 10 21:15:51 2003
+++ b/drivers/block/Kconfig Wed Sep 10 21:15:51 2003
@@ -44,7 +44,7 @@

config BLK_DEV_PS2
tristate "PS/2 ESDI hard disk support"
- depends on MCA
+ depends on MCA && BROKEN
help
Say Y here if you have a PS/2 machine with a MCA bus and an ESDI
hard disk.



2003-09-11 05:36:26

by Al Viro

[permalink] [raw]
Subject: Re: [PATCH] ps2esdi broken

On Wed, Sep 10, 2003 at 09:20:57PM -0700, Stephen Hemminger wrote:
> This driver has problems all over the place and needs
> to be be disabled (or deleted)
>
> diff -Nru a/drivers/block/Kconfig b/drivers/block/Kconfig
> --- a/drivers/block/Kconfig Wed Sep 10 21:15:51 2003
> +++ b/drivers/block/Kconfig Wed Sep 10 21:15:51 2003
> @@ -44,7 +44,7 @@
>
> config BLK_DEV_PS2
> tristate "PS/2 ESDI hard disk support"
> - depends on MCA
> + depends on MCA && BROKEN
> help
> Say Y here if you have a PS/2 machine with a MCA bus and an ESDI
> hard disk.

Or just the following, since these problems are actually a couple of
typos on the modular side and misuse of module_init():

diff -urN B5-misc4/drivers/block/Kconfig B5-current/drivers/block/Kconfig
--- B5-misc4/drivers/block/Kconfig Mon Jul 28 11:13:03 2003
+++ B5-current/drivers/block/Kconfig Thu Sep 11 01:16:22 2003
@@ -44,7 +44,7 @@

config BLK_DEV_PS2
tristate "PS/2 ESDI hard disk support"
- depends on MCA
+ depends on MCA && MCA_LEGACY
help
Say Y here if you have a PS/2 machine with a MCA bus and an ESDI
hard disk.
diff -urN B5-misc4/drivers/block/ps2esdi.c B5-current/drivers/block/ps2esdi.c
--- B5-misc4/drivers/block/ps2esdi.c Sat Aug 9 02:20:46 2003
+++ B5-current/drivers/block/ps2esdi.c Thu Sep 11 01:18:39 2003
@@ -62,8 +62,6 @@

static void reset_ctrl(void);

-int ps2esdi_init(void);
-
static int ps2esdi_geninit(void);

static void do_ps2esdi_request(request_queue_t * q);
@@ -141,7 +139,7 @@
static struct gendisk *ps2esdi_gendisk[2];

/* initialization routine called by ll_rw_blk.c */
-int __init ps2esdi_init(void)
+static int __init ps2esdi_init(void)
{

int error = 0;
@@ -169,9 +167,11 @@
return 0;
} /* ps2esdi_init */

+#ifndef MODULE
+
module_init(ps2esdi_init);

-#ifdef MODULE
+#else

static int cyl[MAX_HD] = {-1,-1};
static int head[MAX_HD] = {-1, -1};
@@ -187,7 +187,7 @@
int drive;

for(drive = 0; drive < MAX_HD; drive++) {
- struct ps2_esdi_i_struct *info = &ps2esdi_info[drive];
+ struct ps2esdi_i_struct *info = &ps2esdi_info[drive];

if (cyl[drive] != -1) {
info->cyl = info->lzone = cyl[drive];
@@ -204,6 +204,7 @@

void
cleanup_module(void) {
+ int i;
if(ps2esdi_slot) {
mca_mark_as_unused(ps2esdi_slot);
mca_set_adapter_procfn(ps2esdi_slot, NULL, NULL);