From: Peter Chubb <peterc@gelato.unsw.edu.au>

The stallion driver currently fails to compile.  The attached patch fixes
it, and fixes a couple of 32/64 bit problems in printk statements.  The
resulting driver appears to work on IA64 with an 8-port EasyIO board.



 drivers/char/stallion.c |   15 ++++++++-------
 1 files changed, 8 insertions(+), 7 deletions(-)

diff -puN drivers/char/stallion.c~stallion-build-fix-2 drivers/char/stallion.c
--- 25/drivers/char/stallion.c~stallion-build-fix-2	2003-08-26 20:38:05.000000000 -0700
+++ 25-akpm/drivers/char/stallion.c	2003-08-26 20:38:05.000000000 -0700
@@ -979,7 +979,7 @@ static stlbrd_t *stl_allocbrd()
 
 	brdp = (stlbrd_t *) stl_memalloc(sizeof(stlbrd_t));
 	if (brdp == (stlbrd_t *) NULL) {
-		printk("STALLION: failed to allocate memory (size=%d)\n",
+		printk("STALLION: failed to allocate memory (size=%ld)\n",
 			sizeof(stlbrd_t));
 		return((stlbrd_t *) NULL);
 	}
@@ -2228,6 +2228,7 @@ static int __init stl_mapirq(int irq, ch
 			break;
 	}
 	if (i >= stl_numintrs) {
+		/* FIXME -- pass in a valid device id */
 		if (request_irq(irq, stl_intr, SA_SHIRQ, name, NULL) != 0) {
 			printk("STALLION: failed to register interrupt "
 				"routine for %s irq=%d\n", name, irq);
@@ -2264,7 +2265,7 @@ static int __init stl_initports(stlbrd_t
 		portp = (stlport_t *) stl_memalloc(sizeof(stlport_t));
 		if (portp == (stlport_t *) NULL) {
 			printk("STALLION: failed to allocate memory "
-				"(size=%d)\n", sizeof(stlport_t));
+				"(size=%ld)\n", sizeof(stlport_t));
 			break;
 		}
 		memset(portp, 0, sizeof(stlport_t));
@@ -2401,7 +2402,7 @@ static inline int stl_initeio(stlbrd_t *
 	panelp = (stlpanel_t *) stl_memalloc(sizeof(stlpanel_t));
 	if (panelp == (stlpanel_t *) NULL) {
 		printk(KERN_WARNING "STALLION: failed to allocate memory "
-			"(size=%d)\n", sizeof(stlpanel_t));
+			"(size=%ld)\n", sizeof(stlpanel_t));
 		return(-ENOMEM);
 	}
 	memset(panelp, 0, sizeof(stlpanel_t));
@@ -2570,7 +2571,7 @@ static inline int stl_initech(stlbrd_t *
 		panelp = (stlpanel_t *) stl_memalloc(sizeof(stlpanel_t));
 		if (panelp == (stlpanel_t *) NULL) {
 			printk("STALLION: failed to allocate memory "
-				"(size=%d)\n", sizeof(stlpanel_t));
+				"(size=%ld)\n", sizeof(stlpanel_t));
 			break;
 		}
 		memset(panelp, 0, sizeof(stlpanel_t));
@@ -4234,7 +4235,7 @@ static void stl_cd1400mdmisr(stlpanel_t 
 	misr = inb(ioaddr + EREG_DATA);
 	if (misr & MISR_DCD) {
 		set_bit(ASYI_DCDCHANGE, &portp->istate);
-		schedule_task(&portp->tqueue);
+		schedule_work(&portp->tqueue);
 		portp->stats.modem++;
 	}
 
@@ -5031,7 +5032,7 @@ static void stl_sc26198txisr(stlport_t *
 	if ((len == 0) || ((len < STL_TXBUFLOW) &&
 	    (test_bit(ASYI_TXLOW, &portp->istate) == 0))) {
 		set_bit(ASYI_TXLOW, &portp->istate);
-		schedule_task(&portp->tqueue); 
+		schedule_work(&portp->tqueue);
 	}
 
 	if (len == 0) {
@@ -5248,7 +5249,7 @@ static void stl_sc26198otherisr(stlport_
 		ipr = stl_sc26198getreg(portp, IPR);
 		if (ipr & IPR_DCDCHANGE) {
 			set_bit(ASYI_DCDCHANGE, &portp->istate);
-			schedule_task(&portp->tqueue); 
+			schedule_work(&portp->tqueue);
 			portp->stats.modem++;
 		}
 		break;

_