2002-09-29 04:21:17

by Hu Gang

[permalink] [raw]
Subject: [patch] Serial 2/2

Hello all:

fix ret check bug: 2.5.39

--- drivers/serial/8250.c~old Sun Sep 29 12:06:03 2002
+++ drivers/serial/8250.c Sun Sep 29 12:17:05 2002
@@ -1564,7 +1565,7 @@

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

@@ -1582,10 +1583,10 @@
ret = -ENOMEM;
}

- if (ret) {
- if (res_rsa)
+ if (ret == 0) {
+ if (res_rsa == 0)
release_resource(res_rsa);
- if (res)
+ if (res == 0)
release_resource(res);
}
return ret;
@@ -1611,11 +1612,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 16:05:43

by Matthew Wilcox

[permalink] [raw]
Subject: Re: [patch] Serial 2/2


> @@ -1582,10 +1583,10 @@
> ret = -ENOMEM;
> }
>
> - if (ret) {
> - if (res_rsa)
> + if (ret == 0) {
> + if (res_rsa == 0)
> release_resource(res_rsa);
> - if (res)
> + if (res == 0)
> release_resource(res);
> }
> return ret;

definitely not.

if (res_rsa)
release_resource(res_rsa);

will release the resource if we allocated it. your patch calls
release_resource with an argument of NULL, and we'll leak the resource
we allocated.

i'm not sure about the rest of your changes, but this one is definitely
wrong.

--
Revolutions do not require corporate support.

2002-09-29 17:22:21

by Russell King

[permalink] [raw]
Subject: Re: [patch] Serial 2/2

On Sun, Sep 29, 2002 at 05:11:04PM +0100, Matthew Wilcox wrote:
> i'm not sure about the rest of your changes, but this one is definitely
> wrong.

I've sent Hu my proposed solution and I'm waiting to hear back.

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