public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] 2.5.62: /proc/ide/via reads return incomplete data, Bug #374
@ 2003-02-20 21:55 Faik Uygur
       [not found] ` <Pine.LNX.4.44.0302210924001.18867-100000@cat.cvo>
  2003-03-14  8:49 ` Vojtech Pavlik
  0 siblings, 2 replies; 4+ messages in thread
From: Faik Uygur @ 2003-02-20 21:55 UTC (permalink / raw)
  To: vojtech; +Cc: linux-kernel, janekh


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 */


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] 2.5.62: /proc/ide/via reads return incomplete data, Bug #374
       [not found] ` <Pine.LNX.4.44.0302210924001.18867-100000@cat.cvo>
@ 2003-02-21 16:57   ` Faik Uygur
  2003-02-21 17:27   ` Faik Uygur
  1 sibling, 0 replies; 4+ messages in thread
From: Faik Uygur @ 2003-02-21 16:57 UTC (permalink / raw)
  To: Janek Hiis; +Cc: linux-kernel

> 
> 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.


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] 2.5.62: /proc/ide/via reads return incomplete data, Bug #374
       [not found] ` <Pine.LNX.4.44.0302210924001.18867-100000@cat.cvo>
  2003-02-21 16:57   ` Faik Uygur
@ 2003-02-21 17:27   ` Faik Uygur
  1 sibling, 0 replies; 4+ messages in thread
From: Faik Uygur @ 2003-02-21 17:27 UTC (permalink / raw)
  To: Janek Hiis; +Cc: linux-kernel

> 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.




^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] 2.5.62: /proc/ide/via reads return incomplete data, Bug #374
  2003-02-20 21:55 [PATCH] 2.5.62: /proc/ide/via reads return incomplete data, Bug #374 Faik Uygur
       [not found] ` <Pine.LNX.4.44.0302210924001.18867-100000@cat.cvo>
@ 2003-03-14  8:49 ` Vojtech Pavlik
  1 sibling, 0 replies; 4+ messages in thread
From: Vojtech Pavlik @ 2003-03-14  8:49 UTC (permalink / raw)
  To: vojtech, linux-kernel, janekh

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

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2003-03-14  8:39 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-02-20 21:55 [PATCH] 2.5.62: /proc/ide/via reads return incomplete data, Bug #374 Faik Uygur
     [not found] ` <Pine.LNX.4.44.0302210924001.18867-100000@cat.cvo>
2003-02-21 16:57   ` Faik Uygur
2003-02-21 17:27   ` Faik Uygur
2003-03-14  8:49 ` Vojtech Pavlik

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox