2.5.62: /proc/ide/aec62xx returns incomplete data [1/17]
PATCH 1/1 2.5.62: /proc/ide/aec62xx returns incomplete data [1/17]
This patch fixes the incomplete data return problem of /proc/ide/aec62xx. When the number of consecutive read bytes are smaller than the total data in aec62xx_get_info(), the second read() returns 0.
drivers/ide/pci/aec62xx.c +6 -1
@@ -38,6 +38,7 @@char *chipset_nums[] = {"error" ,"error" ,"error" ,"error" ,"error" ,"error" ,"850UF" ,"860" ,"860R" ,"865" ,"865R" ,"error" }; +int len;int i;for (i =0 ; i < n_aec_devs; i++) {
@@ -170,7 +171,11 @@ #endif /* DEBUG_AEC_REGS */ } } -return p-buffer;/* => must be less than 4k! */ +/* p - buffer must be less than 4k! */ + len = (p - buffer) - offset; + *addr = buffer + offset; + +return len > count ? count : len; }#endif /* defined(DISPLAY_AEC62xx_TIMINGS) && defined(CONFIG_PROC_FS) */