[PATCH v2] drm/tegra: Add tegra_gem_mmap2 to fix 64-bit offsets

Emil Velikov emil.l.velikov at gmail.com
Fri Jan 30 03:41:53 PST 2015


On 30/01/15 10:21, Thierry Reding wrote:
> On Fri, Jan 30, 2015 at 11:15:30AM +0100, Erik Faye-Lund wrote:
>> On Fri, Jan 30, 2015 at 10:49 AM, Thierry Reding
>> <thierry.reding at gmail.com> wrote:
>>> On Thu, Jan 29, 2015 at 02:18:41PM -0500, Sean Paul wrote:
>>>> On 64-bit targets, tegra_gem_mmap doesn't return the
>>>> offset to userspace. As such, subsequent calls to mmap(2)
>>>> fail. Add a new tegra_gem_mmap2 ioctl to fix this.
>>>>
>>>> Signed-off-by: Sean Paul <seanpaul at chromium.org>
>>>> ---
>>>>  drivers/gpu/drm/tegra/drm.c  | 21 +++++++++++++++++++++
>>>>  include/uapi/drm/tegra_drm.h |  9 +++++++++
>>>>  2 files changed, 30 insertions(+)
>>>
>>> To be honest, I'd rather just fix the existing IOCTL to do the right
>>> thing on 64-bit. All IOCTLs are still protected by the DRM_TEGRA_STAGING
>>> Kconfig symbol which depends on STAGING. We originally did that
>>> precisely so we'd have some leeway in fixing things up. And we've done
>>> precisely that in the past.
>>>
>>> The only user of this IOCTL is libdrm and I don't think that has any
>>> users aside from a few projects that are still under heavy development
>>> (like grate or the xf86-video-opentegra driver).
>>>
>>> Cc'ing Erik, who's probably the only one that's ever worked with this,
>>> besides me.
>>
>> I also saw the patch, and had the same reaction. I'm fine with
>> changing the ABI, it was done already anyway
>> (cbfbbabb89b37f6bad05f478d906a385149f288d, "drm/tegra: Remove
>> gratuitous pad field"). And as you say, this is only in staging so
>> nobody is really relying on it, except grate and libdrm (in which this
>> is clearly marked as experimental). I'm fine with just changing it,
>> and updating grate and libdrm accordingly.
> 
> Okay, I can prepare a patch for libdrm and push it if we decide to go
> ahead with this plan.
> 
> Rob, Sean, (anyone,) any objections to just changing the ABI? I made
> another pass through the list of IOCTL argument structures and couldn't
> spot any others that would have the same issue. Perhaps we're finally
> approaching a point where we can remove the dependency on STAGING?
> 
Hi Thierry,

Just a small tip - pahole is nice little helper wrt structure
size/padding. Just scan the 32 & 64bit build and grep + diff the struct
sizes.

Cheers,
Emil


More information about the dri-devel mailing list