2003-02-20 21:45:51

by Faik Uygur

[permalink] [raw]
Subject: [PATCH] 2.5.62: /proc/ide/via reads return incomplete data, Bug #374


This patch fixes the incomplete data return problem of /proc/ide/via and
addresses Bug #374 of Bugzilla.

When the number of consecutive read bytes are smaller than the total data
in via_get_info(), the second read() returns 0.

--- linux-2.5.62-vanilla/drivers/ide/pci/via82cxxx.c Thu Feb 20 18:51:52 2003
+++ linux-2.5.62/drivers/ide/pci/via82cxxx.c Thu Feb 20 23:09:23 2003
@@ -145,6 +145,7 @@
uen[4], udma[4], umul[4], active8b[4], recover8b[4];
struct pci_dev *dev = bmide_dev;
unsigned int v, u, i;
+ int len;
u16 c, w;
u8 t, x;
char *p = buffer;
@@ -274,7 +275,10 @@
speed[i] / 1000, speed[i] / 100 % 10);

/* hoping it is less than 4K... */
- return p - buffer;
+ len = (p - buffer) - offset;
+ *addr = buffer + offset;
+
+ return len > count ? count : len;
}

#endif /* DISPLAY_VIA_TIMINGS && CONFIG_PROC_FS */


2003-02-21 16:47:45

by Faik Uygur

[permalink] [raw]
Subject: Re: [PATCH] 2.5.62: /proc/ide/via reads return incomplete data, Bug #374

>
> Isn't there another problem ? As I can see the amd74xx.c has also the same
> return in amd74xx_get_info(..) :
>
> return p - buffer;
>
> I don't have such hardware to test but there might be the same error ?

Yes, there are other drivers that have the same problem. I was planning to
send patches for them, as well.
So, if this patch fixes your problem, could you please change the bug status
to RESOLVED. Thanks.

2003-02-21 17:17:24

by Faik Uygur

[permalink] [raw]
Subject: Re: [PATCH] 2.5.62: /proc/ide/via reads return incomplete data, Bug #374

> Isn't there another problem ? As I can see the amd74xx.c has also the same
> return in amd74xx_get_info(..) :
>
> return p - buffer;
>
> I don't have such hardware to test but there might be the same error ?

Ah, sorry for replying you in public, I didn't notice that you did not cc'ed
to the list. Please, cc your replies to lkml, as well. Thanks.



2003-03-14 08:39:18

by Vojtech Pavlik

[permalink] [raw]
Subject: Re: [PATCH] 2.5.62: /proc/ide/via reads return incomplete data, Bug #374

On Thu, Feb 20, 2003 at 11:55:19PM +0200, Faik Uygur wrote:
>
> This patch fixes the incomplete data return problem of /proc/ide/via and
> addresses Bug #374 of Bugzilla.
>
> When the number of consecutive read bytes are smaller than the total data
> in via_get_info(), the second read() returns 0.
>
> --- linux-2.5.62-vanilla/drivers/ide/pci/via82cxxx.c Thu Feb 20 18:51:52 2003
> +++ linux-2.5.62/drivers/ide/pci/via82cxxx.c Thu Feb 20 23:09:23 2003
> @@ -145,6 +145,7 @@
> uen[4], udma[4], umul[4], active8b[4], recover8b[4];
> struct pci_dev *dev = bmide_dev;
> unsigned int v, u, i;
> + int len;
> u16 c, w;
> u8 t, x;
> char *p = buffer;
> @@ -274,7 +275,10 @@
> speed[i] / 1000, speed[i] / 100 % 10);
>
> /* hoping it is less than 4K... */
> - return p - buffer;
> + len = (p - buffer) - offset;
> + *addr = buffer + offset;
> +
> + return len > count ? count : len;
> }
>
> #endif /* DISPLAY_VIA_TIMINGS && CONFIG_PROC_FS */

Thanks; applied.

--
Vojtech Pavlik
SuSE Labs