On 20.04.2022 18:03, Juergen Gross wrote: > On 20.04.22 17:56, Andrew Cooper wrote: >> When CONFIG_GDBSX is compiled out, iommu_do_domctl() falls over a NULL >> pointer. It isn't really correct for processing of XEN_DOMCTL_gdbsx_* to >> fall >> into the default case when compiled out. >> >> Signed-off-by: Andrew Cooper <andrew.coop...@citrix.com> >> --- >> CC: George Dunlap <george.dun...@eu.citrix.com> >> CC: Jan Beulich <jbeul...@suse.com> >> CC: Stefano Stabellini <sstabell...@kernel.org> >> CC: Wei Liu <w...@xen.org> >> CC: Julien Grall <jul...@xen.org> >> CC: Juergen Gross <jgr...@suse.com> >> CC: Roger Pau Monné <roger....@citrix.com> >> CC: Volodymyr Babchuk <volodymyr_babc...@epam.com> >> CC: Bertrand Marquis <bertrand.marq...@arm.com> >> >> RFC, because this has implications across the codebase. The tl;dr is that >> case FOO:'s shouldn't be compiled out; we still know what the subops are, >> even >> when the functionality is compiled out. >> >> There are several ways to express this. Alternatives would be: >> >> case XEN_DOMCTL_gdbsx_guestmemio: >> if ( !IS_ENABLED(CONFIG_GDBSX) ) >> { >> rc = -EOPNOTSUPP; >> break; >> } >> ...; >> >> but given my debugger series creating gdbsx.c, I was also considering: >> >> case XEN_DOMCTL_gdbsx_guestmemio: >> case XEN_DOMCTL_gdbsx_pausevcpu: >> case XEN_DOMCTL_gdbsx_unpausevcpu: >> case XEN_DOMCTL_gdbsx_domstatus: >> rc = gdbsx_do_domctl(d, iop); >> break; > > I'd go this route.
+1 if we already start enumerating sub-system domctl-s (as proposed for the IOMMU ones as well). Jan