On Fri, 2010-12-24 at 01:00 -0800, Dave Hylands wrote: > Hi Nilesh. > > On Thu, Dec 23, 2010 at 11:59 PM, Nilesh Tayade > <nilesh.tayade@xxxxxxxxxxxx> wrote: > ...snip... > > I tried it, and it seems adding mutex_init() works as Mukti mentioned. I > > did get a kernel oops before (but no segfault). After adding > > mutex_init() there is no oops/segfault. The code, however, is reading > > the garbage, that needs to be fixed. > > char n[20]; > short a = *((short *)&n[0]); > short b = *((short *)&n[2]); > short c = *((short *)&n[4]); > > This sets a b and c to have essentially random values. > > nbytes = read( fd, n, 40); > > This causes the value of n to change. However, the values of a, b, and > c retain the same random values you assigned them above. > > printf( "\r a = %d \n ", a); > printf("\r b = %d \n",b); > printf("\r c = %d \n",c); > > This prints the random values of a, b, and c rather than printing thee > values of n that you read in. Thanks for the explanation Dave. I did not really bother to debug to avoid the garbage values, as the main concern was for segfault and kernel oops. > > Dave Hylands -- Thanks, Nilesh _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies