patch-2.4.21 linux-2.4.21/drivers/char/epca.c
Next file: linux-2.4.21/drivers/char/genrtc.c
Previous file: linux-2.4.21/drivers/char/efirtc.c
Back to the patch index
Back to the overall index
- Lines: 44
- Date:
2003-06-13 07:51:33.000000000 -0700
- Orig file:
linux-2.4.20/drivers/char/epca.c
- Orig date:
2002-08-02 17:39:43.000000000 -0700
diff -urN linux-2.4.20/drivers/char/epca.c linux-2.4.21/drivers/char/epca.c
@@ -2023,7 +2023,8 @@
(*(ushort *)((ulong)memaddr + XEPORTS) < 3))
shrinkmem = 1;
if (bd->type < PCIXEM)
- request_region((int)bd->port, 4, board_desc[bd->type]);
+ if (!request_region((int)bd->port, 4, board_desc[bd->type]))
+ return;
memwinon(bd, 0);
@@ -2187,9 +2188,13 @@
if (!(ch->tmp_buf))
{
printk(KERN_ERR "POST FEP INIT : kmalloc failed for port 0x%x\n",i);
-
+ release_region((int)bd->port, 4);
+ while(i-- > 0)
+ kfree((ch--)->tmp_buf);
+ return;
}
- memset((void *)ch->tmp_buf,0,ch->txbufsize);
+ else
+ memset((void *)ch->tmp_buf,0,ch->txbufsize);
} /* End for each port */
printk(KERN_INFO
@@ -3750,7 +3755,7 @@
case 5:
board.port = (unsigned char *)ints[index];
- if (board.port <= 0)
+ if (ints[index] <= 0)
{
printk(KERN_ERR "<Error> - epca_setup: Invalid io port 0x%x\n", (unsigned int)board.port);
invalid_lilo_config = 1;
@@ -3762,7 +3767,7 @@
case 6:
board.membase = (unsigned char *)ints[index];
- if (board.membase <= 0)
+ if (ints[index] <= 0)
{
printk(KERN_ERR "<Error> - epca_setup: Invalid memory base 0x%x\n",(unsigned int)board.membase);
invalid_lilo_config = 1;
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)