From: Peter Chubb 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; _