Hi Bobby, Ah... my bad. Yours were right. For some reason I got an impression that 'pslot' is being passed to rcuupdate not '*pslot'. Thanks for correcting me.
Joonwoo On Sun, Jan 30, 2011 at 6:25 PM, Bobby Longpocket <[email protected]> wrote: > No, that's not the correct fix. The original fix was just a cast and had no > effect other than to appease the compiler. Your proposed fix makes the code > do something different. > > > --- On Sun, 1/30/11, Joonwoo Park <[email protected]> wrote: > >> From: Joonwoo Park <[email protected]> >> Subject: Re: [Click] Doing some research >> To: "Bobby Longpocket" <[email protected]>, "Outback Dingo" >> <[email protected]> >> Cc: [email protected] >> Date: Sunday, January 30, 2011, 2:00 PM >> Hi, >> >> Presumably this wouldn't affect to anything as radix tree >> is not being used anyware from click. But it seems to >> me below is correct fix. >> 150c150 >> < return >> rcu_dereference(*pslot); >> --- >> > return (void >> *)rcu_dereference(*(int **)&pslot); >> 176c176 >> < >> rcu_assign_pointer(*pslot, item); >> --- >> > >> rcu_assign_pointer(*(int **)&pslot, >> (int *)item); >> >> Dingo, if you have chance, please try patch serise that I >> posted yesterday. It should work with linux 2.6.37. >> >> Joonwoo >> >> On Mon, Jan 24, 2011 at 10:33:57PM -0800, Bobby Longpocket >> wrote: >> > Dingo: >> > >> > Click patchless has a problem with 2.6.37. In >> radix-tree.h there's a call to a macro that ends up trying >> to dereference a void*. The C++ compiler doesn't like >> this. You can apply the following changes to >> click/include/click-linuxmodule/include1/linux/radix-tree.h >> to make more progress with your compilation: >> > >> > 150c150 >> > < return >> rcu_dereference(*pslot); >> > --- >> > > return (void >> *)rcu_dereference(*(int **)pslot); >> > 176c176 >> > < rcu_assign_pointer(*pslot, >> item); >> > --- >> > > rcu_assign_pointer(*(int >> **)pslot, (int *)item); >> > >> > >> > >> > ---------------- >> > as for linux-2.6.37, any ideas ? and another note how >> does one enable >> > elements --enable-wifi (./configure --fix-includes >> --enable-wifi ) ?? >> > >> > today i cloned latest source from https://github.com/kohler/click >> > >> > cd click >> > ./configure --fix-includes >> > >> > all seems fine >> > >> > make >> > --------snip---------- >> > In file included from >> > >> /usr/builder/devel/click/include/click-linuxmodule/include1/linux/fs.h:392:0, >> > >> from >> /usr/builder/devel/click/linuxmodule/../lib/ino.cc:30: >> > >> /usr/builder/devel/click/include/click-linuxmodule/include1/linux/radix-tree.h: >> > In function ‘void* >> radix_tree_deref_slot(void**)’: >> > >> /usr/builder/devel/click/include/click-linuxmodule/include1/linux/radix-tree.h:150:9: >> > error: ‘void*’ is not a pointer-to-object type >> > >> /usr/builder/devel/click/include/click-linuxmodule/include1/linux/radix-tree.h:150:9: >> > error: invalid type in declaration before ‘=’ >> token >> > >> > >> > >> > >> > >> > _______________________________________________ >> > click mailing list >> > [email protected] >> > https://amsterdam.lcs.mit.edu/mailman/listinfo/click >> > > > > _______________________________________________ click mailing list [email protected] https://amsterdam.lcs.mit.edu/mailman/listinfo/click
