From mboxrd@z Thu Jan 1 00:00:00 1970 From: Gustavo Padovan Subject: Re: [PATCH 06/10] staging/android: turn fence_info into a __64 pointer Date: Tue, 2 Feb 2016 11:04:59 -0200 Message-ID: <20160202130459.GA29160@joana> References: <1454102426-20637-1-git-send-email-gustavo@padovan.org> <1454102426-20637-7-git-send-email-gustavo@padovan.org> <56AF1A43.5010900@linux.intel.com> <20160201180008.GB3207@joana> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-yk0-f194.google.com (mail-yk0-f194.google.com [209.85.160.194]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1D6E26E2B7 for ; Tue, 2 Feb 2016 05:05:05 -0800 (PST) Received: by mail-yk0-f194.google.com with SMTP id u9so2217969ykd.2 for ; Tue, 02 Feb 2016 05:05:05 -0800 (PST) Content-Disposition: inline In-Reply-To: <20160201180008.GB3207@joana> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Maarten Lankhorst , Greg Kroah-Hartman , linux-kernel@vger.kernel.org, devel@driverdev.osuosl.org, dri-devel@lists.freedesktop.org, Daniel Stone , Arve =?iso-8859-1?B?SGr4bm5lduVn?= , Riley Andrews , Daniel Vetter , Rob Clark , Greg Hackmann , John Harrison , Gustavo Padovan List-Id: dri-devel@lists.freedesktop.org MjAxNi0wMi0wMSBHdXN0YXZvIFBhZG92YW4gPGd1c3Rhdm9AcGFkb3Zhbi5vcmc+OgoKPiBIaSBN YWFydGVuLAo+IAo+IDIwMTYtMDItMDEgTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hv cnN0QGxpbnV4LmludGVsLmNvbT46Cj4gCj4gPiBPcCAyOS0wMS0xNiBvbSAyMjoyMCBzY2hyZWVm IEd1c3Rhdm8gUGFkb3ZhbjoKPiA+ID4gRnJvbTogR3VzdGF2byBQYWRvdmFuIDxndXN0YXZvLnBh ZG92YW5AY29sbGFib3JhLmNvLnVrPgo+ID4gPgo+ID4gPiBNYWtpbmcgZmVuY2VfaW5mbyBhIHBv aW50ZXIgZW5hYmxlcyB1cyB0byBleHRlbmQgdGhlIHN0cnVjdCBpbiB0aGUgZnV0dXJlCj4gPiA+ IHdpdGhvdXQgYnJlYWtpbmcgdGhlIEFCSS4KPiA+ID4KPiA+ID4gU2lnbmVkLW9mZi1ieTogR3Vz dGF2byBQYWRvdmFuIDxndXN0YXZvLnBhZG92YW5AY29sbGFib3JhLmNvLnVrPgo+ID4gPiAtLS0K PiA+ID4gIGRyaXZlcnMvc3RhZ2luZy9hbmRyb2lkL3N5bmMuYyAgICAgIHwgMiArLQo+ID4gPiAg ZHJpdmVycy9zdGFnaW5nL2FuZHJvaWQvdWFwaS9zeW5jLmggfCAyICstCj4gPiA+ICAyIGZpbGVz IGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKPiA+ID4KPiA+ID4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy9hbmRyb2lkL3N5bmMuYyBiL2RyaXZlcnMvc3RhZ2lu Zy9hbmRyb2lkL3N5bmMuYwo+ID4gPiBpbmRleCBmNzUzMGYwLi41MWQ0ZjQ3IDEwMDY0NAo+ID4g PiAtLS0gYS9kcml2ZXJzL3N0YWdpbmcvYW5kcm9pZC9zeW5jLmMKPiA+ID4gKysrIGIvZHJpdmVy cy9zdGFnaW5nL2FuZHJvaWQvc3luYy5jCj4gPiA+IEBAIC01MjUsNyArNTI1LDcgQEAgc3RhdGlj IGxvbmcgc3luY19maWxlX2lvY3RsX2ZlbmNlX2luZm8oc3RydWN0IHN5bmNfZmlsZSAqc3luY19m aWxlLAo+ID4gPiAgCWlmIChpbmZvLT5zdGF0dXMgPj0gMCkKPiA+ID4gIAkJaW5mby0+c3RhdHVz ID0gIWluZm8tPnN0YXR1czsKPiA+ID4gIAo+ID4gPiAtCWxlbiA9IHNpemVvZihzdHJ1Y3Qgc3lu Y19maWxlX2luZm8pOwo+ID4gPiArCWxlbiA9IHNpemVvZihzdHJ1Y3Qgc3luY19maWxlX2luZm8p IC0gc2l6ZW9mKF9fdTY0ICopOwo+ID4gPiAgCj4gPiA+ICAJZm9yIChpID0gMDsgaSA8IHN5bmNf ZmlsZS0+bnVtX2ZlbmNlczsgKytpKSB7Cj4gPiA+ICAJCXN0cnVjdCBmZW5jZSAqZmVuY2UgPSBz eW5jX2ZpbGUtPmNic1tpXS5mZW5jZTsKPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2lu Zy9hbmRyb2lkL3VhcGkvc3luYy5oIGIvZHJpdmVycy9zdGFnaW5nL2FuZHJvaWQvdWFwaS9zeW5j LmgKPiA+ID4gaW5kZXggZWQyODFmYy4uOWYwN2FhNyAxMDA2NDQKPiA+ID4gLS0tIGEvZHJpdmVy cy9zdGFnaW5nL2FuZHJvaWQvdWFwaS9zeW5jLmgKPiA+ID4gKysrIGIvZHJpdmVycy9zdGFnaW5n L2FuZHJvaWQvdWFwaS9zeW5jLmgKPiA+ID4gQEAgLTU0LDcgKzU0LDcgQEAgc3RydWN0IHN5bmNf ZmlsZV9pbmZvIHsKPiA+ID4gIAljaGFyCW5hbWVbMzJdOwo+ID4gPiAgCV9fczMyCXN0YXR1czsK PiA+ID4gIAo+ID4gPiAtCV9fdTgJZmVuY2VfaW5mb1swXTsKPiA+ID4gKwlfX3U2NAkqZmVuY2Vf aW5mbzsKPiA+ID4gIH07Cj4gPiA+Cj4gPiBQb2ludGVycyBhcmUgYXdmdWwsIGl0IHNob3VsZCBi ZSBhIF9fdTY0IHNpbmNlIGl0J3MgYSBwb2ludGVyIHR5cGUuIFVzZXJzcGFjZSBzaG91bGQgY2Fz dCBpdCB0byBhIHVpbnRwdHJfdCBpbiB1c2Vyc3BhY2UuCj4gCj4gT2gsIEkgbWFkZSBhIG1pc3Rh a2UuIEknbGwgZml4IHRoaXMuCj4gCj4gCj4gPiBUaGlzIHN0cnVjdHVyZSBhbHNvIHdvbid0IHdv cmsgb24gNjQtYml0cyBzeXN0ZW1zLCB0aGVyZSBtYXkgYmUgYSBob2xlIGJldHdlZW4gZmVuY2Vf aW5mbyBhbmQgc3RhdHVzIChvciBudW1fZmVuY2VzIGluIG5leHQgcGF0Y2gpLgo+ID4gCj4gPiBJ dCdzIHByb2JhYmx5IGJlc3QgdG8gbW92ZSBpdCB0byB0aGUgdG9wIGFuZCBlbnN1cmUgdGhlIHN0 cnVjdCBpcyA2NC1iaXRzIGFsaWduZWQuCj4gCj4gVGhhdCBpcyBub3QgcG9zc2libGUgYmVjYXVz ZSB3ZSBhcmUgbm90IGFsbG9jYXRpbmcgb25seSA2NGJpdHMgdGhlcmUgYnV0Cj4gYSBhcnJheSBv ZiBzdHJ1Y3QgZmVuY2VfaW5mbywgc28gaXQgbmVlZHMgdG8gYmUgdGhlIGxhc3Qgb25lLiBNYXli ZSB3ZQo+IGNhbiBhZGQgc29tZSBzb3J0IG9mIHBhZGRpbmc/CgpBY3R1YWxseSBpdCBpcyA2NGJp dHMgYWxpZ25lZDoKCnN0cnVjdCBzeW5jX2ZpbGVfaW5mbyB7ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgY2hhciAgICBuYW1l WzMyXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgCiAgICAgICAgX19zMzIgICBzdGF0dXM7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgX191MzIgICBmbGFnczsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAg ICAgX191MzIgICBudW1fZmVuY2VzOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgCiAgICAgICAgX191MzIgICBsZW47ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgCiAgICAgICAgX191NjQgICBmZW5jZV9pbmZvOyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCn07CgpTbyBub3RoaW5nIHRvIHdvcnJ5 IGhlcmUuCgoJR3VzdGF2bwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1k ZXZlbAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754893AbcBBNFI (ORCPT ); Tue, 2 Feb 2016 08:05:08 -0500 Received: from mail-yk0-f196.google.com ([209.85.160.196]:34060 "EHLO mail-yk0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754317AbcBBNFF (ORCPT ); Tue, 2 Feb 2016 08:05:05 -0500 Date: Tue, 2 Feb 2016 11:04:59 -0200 From: Gustavo Padovan To: Maarten Lankhorst , Greg Kroah-Hartman , linux-kernel@vger.kernel.org, devel@driverdev.osuosl.org, dri-devel@lists.freedesktop.org, Daniel Stone , Arve =?iso-8859-1?B?SGr4bm5lduVn?= , Riley Andrews , Daniel Vetter , Rob Clark , Greg Hackmann , John Harrison , Gustavo Padovan Subject: Re: [PATCH 06/10] staging/android: turn fence_info into a __64 pointer Message-ID: <20160202130459.GA29160@joana> Mail-Followup-To: Gustavo Padovan , Maarten Lankhorst , Greg Kroah-Hartman , linux-kernel@vger.kernel.org, devel@driverdev.osuosl.org, dri-devel@lists.freedesktop.org, Daniel Stone , Arve =?iso-8859-1?B?SGr4bm5lduVn?= , Riley Andrews , Daniel Vetter , Rob Clark , Greg Hackmann , John Harrison , Gustavo Padovan References: <1454102426-20637-1-git-send-email-gustavo@padovan.org> <1454102426-20637-7-git-send-email-gustavo@padovan.org> <56AF1A43.5010900@linux.intel.com> <20160201180008.GB3207@joana> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20160201180008.GB3207@joana> User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 2016-02-01 Gustavo Padovan : > Hi Maarten, > > 2016-02-01 Maarten Lankhorst : > > > Op 29-01-16 om 22:20 schreef Gustavo Padovan: > > > From: Gustavo Padovan > > > > > > Making fence_info a pointer enables us to extend the struct in the future > > > without breaking the ABI. > > > > > > Signed-off-by: Gustavo Padovan > > > --- > > > drivers/staging/android/sync.c | 2 +- > > > drivers/staging/android/uapi/sync.h | 2 +- > > > 2 files changed, 2 insertions(+), 2 deletions(-) > > > > > > diff --git a/drivers/staging/android/sync.c b/drivers/staging/android/sync.c > > > index f7530f0..51d4f47 100644 > > > --- a/drivers/staging/android/sync.c > > > +++ b/drivers/staging/android/sync.c > > > @@ -525,7 +525,7 @@ static long sync_file_ioctl_fence_info(struct sync_file *sync_file, > > > if (info->status >= 0) > > > info->status = !info->status; > > > > > > - len = sizeof(struct sync_file_info); > > > + len = sizeof(struct sync_file_info) - sizeof(__u64 *); > > > > > > for (i = 0; i < sync_file->num_fences; ++i) { > > > struct fence *fence = sync_file->cbs[i].fence; > > > diff --git a/drivers/staging/android/uapi/sync.h b/drivers/staging/android/uapi/sync.h > > > index ed281fc..9f07aa7 100644 > > > --- a/drivers/staging/android/uapi/sync.h > > > +++ b/drivers/staging/android/uapi/sync.h > > > @@ -54,7 +54,7 @@ struct sync_file_info { > > > char name[32]; > > > __s32 status; > > > > > > - __u8 fence_info[0]; > > > + __u64 *fence_info; > > > }; > > > > > Pointers are awful, it should be a __u64 since it's a pointer type. Userspace should cast it to a uintptr_t in userspace. > > Oh, I made a mistake. I'll fix this. > > > > This structure also won't work on 64-bits systems, there may be a hole between fence_info and status (or num_fences in next patch). > > > > It's probably best to move it to the top and ensure the struct is 64-bits aligned. > > That is not possible because we are not allocating only 64bits there but > a array of struct fence_info, so it needs to be the last one. Maybe we > can add some sort of padding? Actually it is 64bits aligned: struct sync_file_info { char name[32]; __s32 status; __u32 flags; __u32 num_fences; __u32 len; __u64 fence_info; }; So nothing to worry here. Gustavo