PATCH: radeondrm x86_64 and android32

Christian König deathsimple at vodafone.de
Mon Sep 15 09:07:39 PDT 2014


Hi Sergey,

that probably works, but a compat function is the wrong approach here.

The definition of the field was always 64bit and when userspace fails to 
properly set the upper 32bits than userspace needs to get fixed, not the 
kernel.

Can you try to figure out where the random bits in the upper 32bits come 
from?

Regards,
Christian.

Am 15.09.2014 um 17:43 schrieb Sergey Korshunoff:
> Hi Christian!
> Yes, it is. Android-x86 4.0-r1 dos'nt fill right a value fild of the
> structture drm_radeon_info_t: high bits are a random value. But I
> wrote a compat function for this ioctl which clears this bits only for
> 32-bit applications. This patch is against a 3.10 kernel.
>
> 2014-09-15 15:54 GMT+04:00, Christian König <deathsimple at vodafone.de>:
>> Am 15.09.2014 um 12:09 schrieb Sergey Korshunoff:
>>> Android-x86 4.0-r1 (32 bit) have problems with x86_64 kernel when he
>>> trying to use a radeon kms. The following change correct a problem:
>>>
>>> drivers/gpu/drm/radeon_kms.c (function radeon_info_ioctl):
>>>
>>> - value_ptr = (uint32_t *)((unsigned long)info->value);
>>> + value_ptr = (uint32_t *)((unsigned)info->value);
>>>
>>> Looks like a userspace data in android running under x86_64 is located
>>> above 4 Gb. I don't think so. But after this change android run fine.
>> That's most likely a bug on the userspace side, caused by the upper
>> 32bits of info->value not initialized properly.
>>
>> The kernel patch you show above will most likely just break 64bit
>> userspace.
>>
>> Regards,
>> Christian.
>>
>>> _______________________________________________
>>> dri-devel mailing list
>>> dri-devel at lists.freedesktop.org
>>> http://lists.freedesktop.org/mailman/listinfo/dri-devel
>>



More information about the dri-devel mailing list