On Mon, Jun 24, 2002 at 08:28:23PM +1000, James Morris wrote: > On Sun, 23 Jun 2002, Rob Radez wrote: > > > Hi, > > I looked at the pending patches page, tried to browse through the mailing > > archives, and checked google, but didn't see if anyone had already addressed > > this. > > See http://marc.theaimsgroup.com/?l=linux-kernel&m=100909932003300&w=2 > > > fini() in net/ipv4/netfilter/ip_nat_snmp_basic.c is marked __exit, > > but on Sparc32 will fail to link into the kernel because of some btfixup > > magic. > > Can you please post the build error message and the version of binutils > that you're using?
This is slightly different: it's not ld complaining, but btfixup. (background info: btfixup is a way for one kernel to run on sun4c/sun4d/sun4m with the kernel determining all the hardware-specific functions to call at boot time instead of compile time.) When compiling for smp with the snmp code builtin, btfixupprep complains "Wrong use of 'smp_processor_id' in '.text.exit' section. It can only be used in .text, .fixup and .text.init". Of all the files that I compiled into the kernel, ip_nat_snmp_basic is the only one that had this problem, so I figured that while the __exit tag is correct, it was simplest to just remove it and suffer the miniscule loss of not being able to free the memory it takes up. > The purpose of this lock/unlock is to synchronize with net_rx_action(). Perhaps a comment in the code to that effect? Regards, Rob Radez