2002-09-29 02:17:03

by Hu Gang

[permalink] [raw]
Subject: a bug in 8250.c

Hi Russell King:

In [email protected], if all is pass it return 0, or failed return -XX, But you use
ret = serial8250_request_std_resource(up, &res_std);
-> if (ret)
return;
I'm guess it use as .
-> if (ret == 0)

After change code, 2.5.39 Can found my modem.
Please check, If not proble, Please apply.
--------------
Here is the patch.
--- 8250.c Sat Sep 28 11:15:16 2002
+++ 8250.c~fix Sat Sep 28 22:07:36 2002
@@ -1564,7 +1564,7 @@

if (up->port.type == PORT_RSA) {
ret = serial8250_request_rsa_resource(up, &res_rsa);
- if (ret)
+ if (ret == 0)
return ret;
}

@@ -1611,11 +1611,11 @@
* tells us whether we can probe for the type of port.
*/
ret = serial8250_request_std_resource(up, &res_std);
- if (ret)
+ if (ret == 0)
return;

ret = serial8250_request_rsa_resource(up, &res_rsa);
- if (ret)
+ if (ret == 0)
probeflags &= ~PROBE_RSA;

if (flags & UART_CONFIG_TYPE)


--
- Hu Gang



Attachments:
(No filename) (189.00 B)

2002-09-29 08:12:29

by Russell King

[permalink] [raw]
Subject: Re: a bug in 8250.c

On Sun, Sep 29, 2002 at 10:15:23AM +0800, Hu Gang wrote:
> In [email protected], if all is pass it return 0, or failed return -XX, But you use
> ret = serial8250_request_std_resource(up, &res_std);
> -> if (ret)
> return;
> I'm guess it use as .
> -> if (ret == 0)

This is very wrong.

If we claim the resource, we fail in this function. If we don't claim,
we succeed.

> After change code, 2.5.39 Can found my modem.

I guess you've got a resource clash. Can you remove this patch from your
system, and then send the kernel boot messages, and the contents of
/proc/iomem and /proc/ioports please.

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