Thanks for the reply florian! I think I was able to fix this problem by writing the code differently. Initially I copied some code from the existing proc_read routines but they are assuming a maximum of page size, in this case 4K. I have modified the my proc read code as below, and it seem to work fine! static int mydriver_proc_read(char *page, char **start, off_t off, int count, int *eof void *d) { uint32_t pos, len, i; len = MIN(count, (SIZE-off)); pos = (off & (PAGE_SIZE-1)); if (len > 0) { for (i = 0; i < len; i++) page[pos+i] = ' ' + i % 64; *start = page + (off & (PAGE_SIZE-1)); } else { len = 0; *eof = 0; } } I am assuming that (off & (PAGE_SIZE-1)) + count <= PAGE_SIZE, which seems to be the case always during my testing. Krishna >X-Authentication-Warning: oss.sgi.com: mail owned process doing -bs >X-Authentication-Warning: oss.sgi.com: majordomo set sender to owner-linux-mips@oss.sgi.com using -f >Date: Sun, 12 May 2002 15:36:56 +0200 >From: Florian Lohoff <flo@rfc822.org> >To: Krishna Kondaka <krishna@Sanera.net> >Cc: linux-mips@oss.sgi.com >Subject: Re: Is this a /proc or kernel bug? (more info...) >Mime-Version: 1.0 >Content-Disposition: inline >User-Agent: Mutt/1.3.28i > >On Wed, May 08, 2002 at 08:28:32PM -0700, Krishna Kondaka wrote: >> The above function works fine as long as the SIZE is lessthan 4K. If SIZE is >> greater than 4K then some times I see the following kernel panic when >> I try to do "cat /proc/<myfilename>" >> >> Unhandled kernel unaligned access in unaligned.c:emulate_load_store_insn, line >> 373: >> $0 : 00000000 10009f00 8f20802c 48494a4b >> $4 : 8f320988 00000001 00000000 00000116 > >IIRC i386 has the same problem with reading more then a single page from >/proc. > >Retrieving more information should probably be a device driver with >a char or block interface. > >Flo >-- >Florian Lohoff flo@rfc822.org +49-5201-669912 > Heisenberg may have been here.