[x86-64 patch 4/11] Fix the Granch driver

Vojtech Pavlik (vojtech@suse.cz)
Thu, 13 Sep 2001 18:35:04 +0200


Hi!

This patch constraints __asm__ usage in the Granch SBNI driver only to
i386, which is what the assembly parts are for. It also first casts a
pointer to long, to make sure it fits and avoid a warning. It also fixes
a wrongly typed __setup() function.

diff -urN linux-x86_64/drivers/net/wan/sbni.c linux/drivers/net/wan/sbni.c
--- linux-x86_64/drivers/net/wan/sbni.c Thu Aug 23 18:14:52 2001
+++ linux/drivers/net/wan/sbni.c Thu Sep 13 11:39:45 2001
@@ -155,7 +155,9 @@
static int emancipate( struct net_device * );
#endif

+#ifdef __i386__
#define ASM_CRC 1
+#endif

static const char version[] =
"Granch SBNI12 driver ver 5.0.1 Jun 22 2001 Denis I.Timofeev.\n";
@@ -361,7 +363,7 @@
/* store MAC address (generate if that isn't known) */
*(u16 *)dev->dev_addr = htons( 0x00ff );
*(u32 *)(dev->dev_addr + 2) = htonl( 0x01000000 |
- ( (mac[num] ? mac[num] : (u32)dev->priv) & 0x00ffffff) );
+ ( (mac[num] ? mac[num] : (u32)((long)dev->priv)) & 0x00ffffff) );

/* store link settings (speed, receive level ) */
nl->maxframe = DEFAULT_FRAME_LEN;
@@ -1517,7 +1519,7 @@

#else /* MODULE */

-void __init
+static int __init
sbni_setup( char *p )
{
int n, parm;
@@ -1528,7 +1530,7 @@
for( n = 0, parm = 0; *p && n < 8; ) {
(*dest[ parm ])[ n ] = simple_strtol( p, &p, 0 );
if( !*p || *p == ')' )
- return;
+ return 1;
if( *p == ';' )
++p, ++n, parm = 0;
else if( *p++ != ',' )
@@ -1539,6 +1541,7 @@
}
bad_param:
printk( KERN_ERR "Error in sbni kernel parameter!\n" );
+ return 0;
}

__setup( "sbni=", sbni_setup );

-- 
Vojtech Pavlik
SuSE Labs
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/