lkml.org 
[lkml]   [2018]   [Oct]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: linux-next: Tree for Oct 31 (vboxguest)
From
Date
Hi,

On 31-10-18 16:51, Randy Dunlap wrote:
> On 10/30/18 8:59 PM, Stephen Rothwell wrote:
>> Hi all,
>>
>> Please do not add any v4.21/v5.1 code to your linux-next included trees
>> until after the merge window closes.
>>
>> Changes since 20181030:
>>
>
>
> on i386:
>
> ld: drivers/virt/vboxguest/vboxguest_core.o: in function `vbg_ioctl_hgcm_call':
> vboxguest_core.c:(.text+0x212b): undefined reference to `vbg_hgcm_call32'

Are you perhaps using weird compiler options?

This call should be optimized out on i386 (and we rely on calls being
removed be dead code elimination to avoid #ifdefs in various places,
iow this is a normal thing to rely on) :

First we have:

bool f32bit = false;

...

switch (req_no_size) {
#ifdef CONFIG_COMPAT
case VBG_IOCTL_HGCM_CALL_32(0):
f32bit = true;
/* Fall through */
#endif
case VBG_IOCTL_HGCM_CALL(0):
return vbg_ioctl_hgcm_call(gdev, session, f32bit, data);
}

And then we also have:

static int vbg_ioctl_hgcm_call(struct vbg_dev *gdev,
struct vbg_session *session, bool f32bit,
struct vbg_ioctl_hgcm_call *call)
{
...

if (f32bit)
ret = vbg_hgcm_call32(gdev, client_id,
call->function, call->timeout_ms,
VBG_IOCTL_HGCM_CALL_PARMS32(call),
call->parm_count, &call->hdr.rc);
else
ret = vbg_hgcm_call(gdev, client_id,
call->function, call->timeout_ms,
VBG_IOCTL_HGCM_CALL_PARMS(call),
call->parm_count, &call->hdr.rc);
}

So on i386 CONFIG_COMPAT is never set, this f32bit is a 0 const
and the compiler removes the if branch of the if ... else ...

This has been upstream like this since 4.16 without any problems sofar.

Regards,

Hans

\
 
 \ /
  Last update: 2018-10-31 17:51    [W:0.102 / U:0.016 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site