* [PATCH RESEND] compat-ioctl/Xen: support at least some IOCTLs of evtchn and privcmd [not found] <5B30C6E202000078001CD724@prv1-mh.provo.novell.com> @ 2018-08-15 6:19 ` Jan Beulich 2018-08-15 12:41 ` Christoph Hellwig 2018-08-15 12:51 ` Al Viro 0 siblings, 2 replies; 5+ messages in thread From: Jan Beulich @ 2018-08-15 6:19 UTC (permalink / raw) To: Boris Ostrovsky, Juergen Gross, viro; +Cc: xen-devel, linux-fsdevel While this is only a start (IOCTL_PRIVCMD_MMAP* and IOCTL_PRIVCMD_DM_OP require more work), it at least allows some simple operations (like "xl dmesg") which have always been available on XenoLinux to work again with a 64-bit kernel underneath a 32-bit distro. Signed-off-by: Jan Beulich <jbeulich@suse.com> Acked-by: Juergen Gross <jgross@suse.com> --- Resend due to prior omission of file system related addressees. --- fs/compat_ioctl.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) --- 4.18/fs/compat_ioctl.c +++ 4.18-xen-privcmd-compat-ioctls/fs/compat_ioctl.c @@ -115,6 +115,12 @@ #include <asm/fbio.h> #endif +#ifdef CONFIG_XEN +#include <xen/interface/xen.h> +#include <xen/evtchn.h> +#include <xen/privcmd.h> +#endif + #define convert_in_user(srcptr, dstptr) \ ({ \ typeof(*srcptr) val; \ @@ -1300,6 +1306,17 @@ IGNORE_IOCTL(FBIOGETCMAP32) IGNORE_IOCTL(FBIOSCURSOR32) IGNORE_IOCTL(FBIOGCURSOR32) #endif + +#ifdef CONFIG_XEN +COMPATIBLE_IOCTL(IOCTL_PRIVCMD_HYPERCALL) +COMPATIBLE_IOCTL(IOCTL_PRIVCMD_RESTRICT) +COMPATIBLE_IOCTL(IOCTL_EVTCHN_BIND_VIRQ) +COMPATIBLE_IOCTL(IOCTL_EVTCHN_BIND_INTERDOMAIN) +COMPATIBLE_IOCTL(IOCTL_EVTCHN_BIND_UNBOUND_PORT) +COMPATIBLE_IOCTL(IOCTL_EVTCHN_UNBIND) +COMPATIBLE_IOCTL(IOCTL_EVTCHN_NOTIFY) +COMPATIBLE_IOCTL(IOCTL_EVTCHN_RESET) +#endif }; /* ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH RESEND] compat-ioctl/Xen: support at least some IOCTLs of evtchn and privcmd 2018-08-15 6:19 ` [PATCH RESEND] compat-ioctl/Xen: support at least some IOCTLs of evtchn and privcmd Jan Beulich @ 2018-08-15 12:41 ` Christoph Hellwig 2018-08-15 12:51 ` Al Viro 1 sibling, 0 replies; 5+ messages in thread From: Christoph Hellwig @ 2018-08-15 12:41 UTC (permalink / raw) To: Jan Beulich Cc: Boris Ostrovsky, Juergen Gross, viro, xen-devel, linux-fsdevel Please wire up a compat_ioctl handler for the xen privcmd handler instead of adding these to a global table. ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH RESEND] compat-ioctl/Xen: support at least some IOCTLs of evtchn and privcmd 2018-08-15 6:19 ` [PATCH RESEND] compat-ioctl/Xen: support at least some IOCTLs of evtchn and privcmd Jan Beulich 2018-08-15 12:41 ` Christoph Hellwig @ 2018-08-15 12:51 ` Al Viro 2018-08-15 13:16 ` Jan Beulich 1 sibling, 1 reply; 5+ messages in thread From: Al Viro @ 2018-08-15 12:51 UTC (permalink / raw) To: Jan Beulich; +Cc: Boris Ostrovsky, Juergen Gross, xen-devel, linux-fsdevel On Wed, Aug 15, 2018 at 12:19:00AM -0600, Jan Beulich wrote: > While this is only a start (IOCTL_PRIVCMD_MMAP* and IOCTL_PRIVCMD_DM_OP > require more work), it at least allows some simple operations (like > "xl dmesg") which have always been available on XenoLinux to work again > with a 64-bit kernel underneath a 32-bit distro. > > Signed-off-by: Jan Beulich <jbeulich@suse.com> > Acked-by: Juergen Gross <jgross@suse.com> Nacked-by: Al Viro <viro@zeniv.linux.org.uk> This belongs in drivers/xen/privcmd.c, not in fs/compat_ioctl.c *ANY* single-driver ioctl definitely should be handled by ->compat_ioctl() method and any patches dumping such stuff into fs/compat_ioctl.c will be rejected. ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH RESEND] compat-ioctl/Xen: support at least some IOCTLs of evtchn and privcmd 2018-08-15 12:51 ` Al Viro @ 2018-08-15 13:16 ` Jan Beulich 2018-08-15 13:27 ` Al Viro 0 siblings, 1 reply; 5+ messages in thread From: Jan Beulich @ 2018-08-15 13:16 UTC (permalink / raw) To: viro; +Cc: xen-devel, Boris Ostrovsky, Juergen Gross, linux-fsdevel >>> On 15.08.18 at 14:51, <viro@ZenIV.linux.org.uk> wrote: > On Wed, Aug 15, 2018 at 12:19:00AM -0600, Jan Beulich wrote: >> While this is only a start (IOCTL_PRIVCMD_MMAP* and IOCTL_PRIVCMD_DM_OP >> require more work), it at least allows some simple operations (like >> "xl dmesg") which have always been available on XenoLinux to work again >> with a 64-bit kernel underneath a 32-bit distro. >> >> Signed-off-by: Jan Beulich <jbeulich@suse.com> >> Acked-by: Juergen Gross <jgross@suse.com> > > > Nacked-by: Al Viro <viro@zeniv.linux.org.uk> > > This belongs in drivers/xen/privcmd.c, not in fs/compat_ioctl.c > *ANY* single-driver ioctl definitely should be handled by ->compat_ioctl() > method and any patches dumping such stuff into fs/compat_ioctl.c will be > rejected. Okay, I'll see about doing this; I have to admit I was unaware of ->compat_ioctl()'s existence. It would be rather helpful if the header of compat_ioctl.c indicated what you say. Without that, I've simply gone by the observation that there are things in the file which according to what you say shouldn't be there, and I've then wrongly implied adding the Xen stuff here would be fine. Jan ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH RESEND] compat-ioctl/Xen: support at least some IOCTLs of evtchn and privcmd 2018-08-15 13:16 ` Jan Beulich @ 2018-08-15 13:27 ` Al Viro 0 siblings, 0 replies; 5+ messages in thread From: Al Viro @ 2018-08-15 13:27 UTC (permalink / raw) To: Jan Beulich; +Cc: xen-devel, Boris Ostrovsky, Juergen Gross, linux-fsdevel On Wed, Aug 15, 2018 at 07:16:43AM -0600, Jan Beulich wrote: > >>> On 15.08.18 at 14:51, <viro@ZenIV.linux.org.uk> wrote: > > On Wed, Aug 15, 2018 at 12:19:00AM -0600, Jan Beulich wrote: > >> While this is only a start (IOCTL_PRIVCMD_MMAP* and IOCTL_PRIVCMD_DM_OP > >> require more work), it at least allows some simple operations (like > >> "xl dmesg") which have always been available on XenoLinux to work again > >> with a 64-bit kernel underneath a 32-bit distro. > >> > >> Signed-off-by: Jan Beulich <jbeulich@suse.com> > >> Acked-by: Juergen Gross <jgross@suse.com> > > > > > > Nacked-by: Al Viro <viro@zeniv.linux.org.uk> > > > > This belongs in drivers/xen/privcmd.c, not in fs/compat_ioctl.c > > *ANY* single-driver ioctl definitely should be handled by ->compat_ioctl() > > method and any patches dumping such stuff into fs/compat_ioctl.c will be > > rejected. > > Okay, I'll see about doing this; I have to admit I was unaware of > ->compat_ioctl()'s existence. It would be rather helpful if the header > of compat_ioctl.c indicated what you say. Without that, I've simply > gone by the observation that there are things in the file which > according to what you say shouldn't be there, and I've then wrongly > implied adding the Xen stuff here would be fine. Originally fs/compat_ioctl.c was a result of merger between several such beasts in arch/*; it's *old* - well before ->compat_ioctl() introduction. If you check the history of that thing, you'll see crap getting removed over the years. Sometimes the things sneak in, but generally it keeps shrinking... The only stuff that might belong there is widely-implemented ioctls. Anything that is natively handled in a couple of ->ioctl() instances should be getting ->compat_ioctl() instance to go with that one. And yes, big fat warning along the lines of "don't dump here" is probably a good idea... ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2018-08-15 16:19 UTC | newest] Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- [not found] <5B30C6E202000078001CD724@prv1-mh.provo.novell.com> 2018-08-15 6:19 ` [PATCH RESEND] compat-ioctl/Xen: support at least some IOCTLs of evtchn and privcmd Jan Beulich 2018-08-15 12:41 ` Christoph Hellwig 2018-08-15 12:51 ` Al Viro 2018-08-15 13:16 ` Jan Beulich 2018-08-15 13:27 ` Al Viro
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).