Message ID | 1487683261-2655-1-git-send-email-m.szyprowski@samsung.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Am 21.02.2017 um 14:21 schrieb Marek Szyprowski: > Add compat ioctl support to dma-buf. This lets one to use DMA_BUF_IOCTL_SYNC > ioctl from 32bit application on 64bit kernel. Data structures for both 32 > and 64bit modes are same, so there is no need for additional translation > layer. Well I might be wrong, but IIRC compat_ioctl was just optional and if not specified unlocked_ioctl was called instead. If that is true your patch wouldn't have any effect at all. Regards, Christian. > > Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> > --- > drivers/dma-buf/dma-buf.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/dma-buf/dma-buf.c b/drivers/dma-buf/dma-buf.c > index 718f832a5c71..0007b792827b 100644 > --- a/drivers/dma-buf/dma-buf.c > +++ b/drivers/dma-buf/dma-buf.c > @@ -325,6 +325,9 @@ static long dma_buf_ioctl(struct file *file, > .llseek = dma_buf_llseek, > .poll = dma_buf_poll, > .unlocked_ioctl = dma_buf_ioctl, > +#ifdef CONFIG_COMPAT > + .compat_ioctl = dma_buf_ioctl, > +#endif > }; > > /*
Hi Christian, On 2017-02-21 14:59, Christian König wrote: > Am 21.02.2017 um 14:21 schrieb Marek Szyprowski: >> Add compat ioctl support to dma-buf. This lets one to use >> DMA_BUF_IOCTL_SYNC >> ioctl from 32bit application on 64bit kernel. Data structures for >> both 32 >> and 64bit modes are same, so there is no need for additional translation >> layer. > > Well I might be wrong, but IIRC compat_ioctl was just optional and if > not specified unlocked_ioctl was called instead. > > If that is true your patch wouldn't have any effect at all. Well, then why I got -ENOTTY in the 32bit test app for this ioctl on 64bit ARM64 kernel without this patch? Best regards
Dear All, On 2017-02-21 15:37, Marek Szyprowski wrote: > Hi Christian, > > On 2017-02-21 14:59, Christian König wrote: >> Am 21.02.2017 um 14:21 schrieb Marek Szyprowski: >>> Add compat ioctl support to dma-buf. This lets one to use >>> DMA_BUF_IOCTL_SYNC >>> ioctl from 32bit application on 64bit kernel. Data structures for >>> both 32 >>> and 64bit modes are same, so there is no need for additional >>> translation >>> layer. >> >> Well I might be wrong, but IIRC compat_ioctl was just optional and if >> not specified unlocked_ioctl was called instead. >> >> If that is true your patch wouldn't have any effect at all. > > Well, then why I got -ENOTTY in the 32bit test app for this ioctl on > 64bit ARM64 kernel without this patch? > I've checked in fs/compat_ioctl.c, I see no fallback in COMPAT_SYSCALL_DEFINE3, so one has to provide compat_ioctl callback to have ioctl working with 32bit apps. Best regards
Am 21.02.2017 um 15:55 schrieb Marek Szyprowski: > Dear All, > > On 2017-02-21 15:37, Marek Szyprowski wrote: >> Hi Christian, >> >> On 2017-02-21 14:59, Christian König wrote: >>> Am 21.02.2017 um 14:21 schrieb Marek Szyprowski: >>>> Add compat ioctl support to dma-buf. This lets one to use >>>> DMA_BUF_IOCTL_SYNC >>>> ioctl from 32bit application on 64bit kernel. Data structures for >>>> both 32 >>>> and 64bit modes are same, so there is no need for additional >>>> translation >>>> layer. >>> >>> Well I might be wrong, but IIRC compat_ioctl was just optional and >>> if not specified unlocked_ioctl was called instead. >>> >>> If that is true your patch wouldn't have any effect at all. >> >> Well, then why I got -ENOTTY in the 32bit test app for this ioctl on >> 64bit ARM64 kernel without this patch? >> > > I've checked in fs/compat_ioctl.c, I see no fallback in > COMPAT_SYSCALL_DEFINE3, > so one has to provide compat_ioctl callback to have ioctl working with > 32bit > apps. Then my memory cheated on me. In this case the patch is Reviewed-by: Christian König <christian.koenig@amd.com>. Regards, Christian. > > Best regards
On Tue, Feb 21, 2017 at 4:08 PM, Christian König <deathsimple@vodafone.de> wrote: > Am 21.02.2017 um 15:55 schrieb Marek Szyprowski: >> >> Dear All, >> >> On 2017-02-21 15:37, Marek Szyprowski wrote: >>> >>> Hi Christian, >>> >>> On 2017-02-21 14:59, Christian König wrote: >>>> >>>> Am 21.02.2017 um 14:21 schrieb Marek Szyprowski: >>>>> >>>>> Add compat ioctl support to dma-buf. This lets one to use >>>>> DMA_BUF_IOCTL_SYNC >>>>> ioctl from 32bit application on 64bit kernel. Data structures for both >>>>> 32 >>>>> and 64bit modes are same, so there is no need for additional >>>>> translation >>>>> layer. >>>> >>>> >>>> Well I might be wrong, but IIRC compat_ioctl was just optional and if >>>> not specified unlocked_ioctl was called instead. >>>> >>>> If that is true your patch wouldn't have any effect at all. >>> >>> >>> Well, then why I got -ENOTTY in the 32bit test app for this ioctl on >>> 64bit ARM64 kernel without this patch? >>> >> >> I've checked in fs/compat_ioctl.c, I see no fallback in >> COMPAT_SYSCALL_DEFINE3, >> so one has to provide compat_ioctl callback to have ioctl working with >> 32bit >> apps. > > > Then my memory cheated on me. > > In this case the patch is Reviewed-by: Christian König > <christian.koenig@amd.com>. Since you have commit rights for drm-misc, care to push this to drm-misc-next-fixes pls? Also I think this warrants a cc: stable, clearly an obvious screw-up in creating this api on our side :( So feel free to smash my ack on the patch. Thanks, Daniel
Hi Marek, On 23 February 2017 at 00:37, Daniel Vetter <daniel@ffwll.ch> wrote: > On Tue, Feb 21, 2017 at 4:08 PM, Christian König > <deathsimple@vodafone.de> wrote: >> Am 21.02.2017 um 15:55 schrieb Marek Szyprowski: >>> >>> Dear All, >>> >>> On 2017-02-21 15:37, Marek Szyprowski wrote: >>>> >>>> Hi Christian, >>>> >>>> On 2017-02-21 14:59, Christian König wrote: >>>>> >>>>> Am 21.02.2017 um 14:21 schrieb Marek Szyprowski: >>>>>> >>>>>> Add compat ioctl support to dma-buf. This lets one to use >>>>>> DMA_BUF_IOCTL_SYNC >>>>>> ioctl from 32bit application on 64bit kernel. Data structures for both >>>>>> 32 >>>>>> and 64bit modes are same, so there is no need for additional >>>>>> translation >>>>>> layer. >>>>> >>>>> >>>>> Well I might be wrong, but IIRC compat_ioctl was just optional and if >>>>> not specified unlocked_ioctl was called instead. >>>>> >>>>> If that is true your patch wouldn't have any effect at all. >>>> >>>> >>>> Well, then why I got -ENOTTY in the 32bit test app for this ioctl on >>>> 64bit ARM64 kernel without this patch? >>>> >>> >>> I've checked in fs/compat_ioctl.c, I see no fallback in >>> COMPAT_SYSCALL_DEFINE3, >>> so one has to provide compat_ioctl callback to have ioctl working with >>> 32bit >>> apps. >> >> >> Then my memory cheated on me. >> >> In this case the patch is Reviewed-by: Christian König >> <christian.koenig@amd.com>. > Thanks much for spotting this! > Since you have commit rights for drm-misc, care to push this to > drm-misc-next-fixes pls? Also I think this warrants a cc: stable, > clearly an obvious screw-up in creating this api on our side :( So > feel free to smash my ack on the patch. > Daniel, Christian, I saw this just now, so if Christian hasn't already pulled it into drm-misc-next-fixes, I'll give it a stab. > Thanks, Daniel > -- > Daniel Vetter > Software Engineer, Intel Corporation > +41 (0) 79 365 57 48 - http://blog.ffwll.ch > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel Best, Sumit.
diff --git a/drivers/dma-buf/dma-buf.c b/drivers/dma-buf/dma-buf.c index 718f832a5c71..0007b792827b 100644 --- a/drivers/dma-buf/dma-buf.c +++ b/drivers/dma-buf/dma-buf.c @@ -325,6 +325,9 @@ static long dma_buf_ioctl(struct file *file, .llseek = dma_buf_llseek, .poll = dma_buf_poll, .unlocked_ioctl = dma_buf_ioctl, +#ifdef CONFIG_COMPAT + .compat_ioctl = dma_buf_ioctl, +#endif }; /*
Add compat ioctl support to dma-buf. This lets one to use DMA_BUF_IOCTL_SYNC ioctl from 32bit application on 64bit kernel. Data structures for both 32 and 64bit modes are same, so there is no need for additional translation layer. Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> --- drivers/dma-buf/dma-buf.c | 3 +++ 1 file changed, 3 insertions(+)