For starters, I'm talking about 2.5.51 here. Secondly, what does register_ioctl32_conversion have to do with emulating 32bit modutils? Code in quesion is this: int register_ioctl32_conversion(unsigned int cmd, int (*handler)(unsigned int, unsigned int, unsigned long, ...)) { int i; if (!additional_ioctls) { additional_ioctls = module_map(PAGE_SIZE); if (!additional_ioctls) return -ENOMEM; memset(additional_ioctls, 0, PAGE_SIZE); } ..... As far as I can tell, There is nothing that prevents us from replacing module_map with vmalloc, or even get_free_pages, but I am not sure. There must be some reason, why it is there :) Ralf, it's question for you. Ilya. On Mon, Jun 02, 2003 at 11:27:46PM +1000, Keith Owens wrote: > On Sun, 1 Jun 2003 21:57:00 -0700, > ilya@theIlya.com wrote: > >module_map is referenced in register_ioctl32_conversion in arch/mips64/ioctl32.c > >As far as I can see, it should simply be possible to replace module_map > >with vmalloc in there, but I am not sure, as I don't know how exactly > >ioctl translations work... > > Not in 2.4.20 nor 2.4.21-rc6 from Marcelo, must be a mips local change. > I strongly suggest that you get rid of it, there is no good reason to > emulate the 32 bit module syscalls on a 64 bit machine. modutils is > pure Linux and there is absolutely no justification for emulating 32 > bit versions of modutils when the user can install the 64 bit version > of modutils instead. 32 bit emulation is a crutch to let binary only > programs work when you do not have the source to rebuild to 64 bit, by > definition we have the source to modutils. > > IA64 and x86_64 make no attempt to emulate 32 bit modutils. sparc64, > ppc64 and s390x all pass the data straight to the 64 bit kernel code, > they require the user space modutils to supply 64 bit data. Emulation > is a waste of time. >
Attachment:
pgp00287.pgp
Description: PGP signature