2001-11-14 10:08:16

by Roman Kurakin

[permalink] [raw]
Subject: Serial.c Bug

--- serial.c.orig Tue Nov 13 20:50:16 2001
+++ serial.c Tue Nov 13 20:52:28 2001
@@ -2077,6 +2077,7 @@
unsigned int i,change_irq,change_port;
int retval = 0;
unsigned long new_port;
+ unsigned long new_mem;

if (copy_from_user(&new_serial,new_info,sizeof(new_serial)))
return -EFAULT;
@@ -2087,6 +2088,8 @@
if (HIGH_BITS_OFFSET)
new_port += (unsigned long) new_serial.port_high << HIGH_BITS_OFFSET;

+ new_mem = new_serial.iomem_base;
+
change_irq = new_serial.irq != state->irq;
change_port = (new_port != ((int) state->port)) ||
(new_serial.hub6 != state->hub6);
@@ -2127,6 +2130,7 @@
for (i = 0 ; i < NR_PORTS; i++)
if ((state != &rs_table[i]) &&
(rs_table[i].port == new_port) &&
+ (rs_table[i].iomem_base == new_mem) &&
rs_table[i].type)
return -EADDRINUSE;
}


Attachments:
serial.pch (841.00 B)

2001-11-14 23:59:38

by Russell King

[permalink] [raw]
Subject: Re: Serial.c Bug

On Wed, Nov 14, 2001 at 01:02:47PM +0300, Roman Kurakin wrote:
> I have found a bug. It is in support of serial cards which uses
> memory for I/O insted of ports. I made a patch for serial.c and fix
> one place, but probably the problem like this one could be somewhere
> else.

I've got this fish caught in the my serial driver rewrite - the driver
always handles the requesting and freeing of the resources. If it is
unable to request the resources, then you will receive a suitable error
when trying to configure two ports.

Please note that I'm not about to take on maintainence of the current
serial.c driver, except where I spot obvious bugs.

I'd recommend that you pass this one to Marcelo to incorporate (only
after he's got his feet on the ground again. 8)) It looks sensible.

--
Russell King ([email protected]) The developer of ARM Linux
http://www.arm.linux.org.uk/personal/aboutme.html

2001-11-15 13:39:09

by Roman Kurakin

[permalink] [raw]
Subject: Re: Serial.c Bug

Thanks

Russell King wrote:

>On Wed, Nov 14, 2001 at 01:02:47PM +0300, Roman Kurakin wrote:
>
>> I have found a bug. It is in support of serial cards which uses
>>memory for I/O insted of ports. I made a patch for serial.c and fix
>>one place, but probably the problem like this one could be somewhere
>>else.
>>
>
>I've got this fish caught in the my serial driver rewrite - the driver
>always handles the requesting and freeing of the resources. If it is
>unable to request the resources, then you will receive a suitable error
>when trying to configure two ports.
>
>Please note that I'm not about to take on maintainence of the current
>serial.c driver, except where I spot obvious bugs.
>
>I'd recommend that you pass this one to Marcelo to incorporate (only
>after he's got his feet on the ground again. 8)) It looks sensible.
>
>--
>Russell King ([email protected]) The developer of ARM Linux
> http://www.arm.linux.org.uk/personal/aboutme.html
>
>-
>To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
>the body of a message to [email protected]
>More majordomo info at http://vger.kernel.org/majordomo-info.html
>Please read the FAQ at http://www.tux.org/lkml/
>
>