Control: tags -1 + moreinfo

Hi James,

On Thu, Oct 05, 2017 at 03:24:12PM +0100, James Cowgill wrote:
> Source: linux
> Version: 4.12.13-1
> Severity: normal
> 
> Hi,
> 
> I recently attempted to install an out-of-tree module (an old version of
> the octeon mmc driver) on an octeon machine running big endian 32-bit
> mips. In this configuration, the kernel is 64-bit, but userspace is 32-bit.
> 
> The module build failed with this error:
> > LD [M]  /var/lib/dkms/octeon-mmc/9/build/octeon-mmc.o
> >   Building modules, stage 2.
> >   MODPOST 1 modules
> > FATAL: /var/lib/dkms/octeon-mmc/9/build/octeon-mmc: sizeof(struct 
> > of_device_id)=196 is not a modulo of the size of section 
> > __mod_of__<identifier>_device_table=600.
> > Fix definition of struct of_device_id in mod_devicetable.h
> 
> of_device_id is defined like this in mod_devicetable.h:
> > struct of_device_id {
> >     char    name[32];
> >     char    type[32];
> >     char    compatible[128];
> >     const void *data;
> > };
> 
> The size of this structure is 200 bytes and not 196 byte as modpost
> claims because the kernel is compiled as 64-bit (so the pointer at the
> end is 8 bytes instead of 4).
> 
> I think there is a bug in the way Debian compiles modpost, because using
> upstream's modpost works correctly. I see that the
> real-XXX/devicetable-offsets.s file gets compiled with the target
> compiler, but not with the target flags so flags such as "-mabi=64
> -mnoabicalls" which are used in 64-bit MIPS kernels are not used. This
> will cause the compiler to default to the userspace ABI which is 32-bit
> in this case.
> 
> I'm not sure what the correct solution is here. Using the target flags
> directly might make modpost specific to a kernel flavour. Hacking in
> some special flags for mips* doesn't sound great either.
> 
> I have not tested any other platforms, but I am guessing this issue will
> affect other platforms when the size of pointers in userspace and the
> kernel differ.

Going through some older bugreports for src:linux found the above; Is
this still an issue? I have not digged deeper at all.

Regards,
Salvatore

Reply via email to