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
> <[email protected]> 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
[email protected]
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

Reply via email to