mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 10:11:27 +01:00
xen/sysctl: wrap around XEN_SYSCTL_readconsole
The following functions is to deal with XEN_SYSCTL_readconsole sub-op, and shall be wrapped: - xsm_readconsole() - read_console_ring() Signed-off-by: Penny Zheng <Penny.Zheng@amd.com> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org> Acked-by: Daniel P. Smith <dpsmith@apertussolutions.com>
This commit is contained in:
1 parent
c9eabaa03a
commit
bddd9af604
4 files changed
+9
-3
No files matched your search
@@ -368,6 +368,7 @@ static void conring_puts(const char *str, size_t len)
|
||||
conringc = conringp - conring_size;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_SYSCTL
|
||||
long read_console_ring(struct xen_sysctl_readconsole *op)
|
||||
{
|
||||
XEN_GUEST_HANDLE_PARAM(char) str;
|
||||
@@ -410,6 +411,7 @@ long read_console_ring(struct xen_sysctl_readconsole *op)
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif /* CONFIG_SYSCTL */
|
||||
|
||||
|
||||
/*
|
||||
|
||||
@@ -270,7 +270,11 @@ static inline int xsm_sysctl(xsm_default_t def, int cmd)
|
||||
|
||||
static inline int xsm_readconsole(xsm_default_t def, uint32_t clear)
|
||||
{
|
||||
#ifdef CONFIG_SYSCTL
|
||||
return alternative_call(xsm_ops.readconsole, clear);
|
||||
#else
|
||||
return -EOPNOTSUPP;
|
||||
#endif
|
||||
}
|
||||
|
||||
static inline int xsm_evtchn_unbound(
|
||||
|
||||
+1
-1
@@ -24,8 +24,8 @@ static const struct xsm_ops __initconst_cf_clobber dummy_ops = {
|
||||
.domctl = xsm_domctl,
|
||||
#ifdef CONFIG_SYSCTL
|
||||
.sysctl = xsm_sysctl,
|
||||
#endif
|
||||
.readconsole = xsm_readconsole,
|
||||
#endif
|
||||
|
||||
.evtchn_unbound = xsm_evtchn_unbound,
|
||||
.evtchn_interdomain = xsm_evtchn_interdomain,
|
||||
|
||||
@@ -934,7 +934,6 @@ static int cf_check flask_sysctl(int cmd)
|
||||
return avc_unknown_permission("sysctl", cmd);
|
||||
}
|
||||
}
|
||||
#endif /* CONFIG_SYSCTL */
|
||||
|
||||
static int cf_check flask_readconsole(uint32_t clear)
|
||||
{
|
||||
@@ -945,6 +944,7 @@ static int cf_check flask_readconsole(uint32_t clear)
|
||||
|
||||
return domain_has_xen(current->domain, perms);
|
||||
}
|
||||
#endif /* CONFIG_SYSCTL */
|
||||
|
||||
static inline uint32_t resource_to_perm(uint8_t access)
|
||||
{
|
||||
@@ -1888,8 +1888,8 @@ static const struct xsm_ops __initconst_cf_clobber flask_ops = {
|
||||
.domctl = flask_domctl,
|
||||
#ifdef CONFIG_SYSCTL
|
||||
.sysctl = flask_sysctl,
|
||||
#endif
|
||||
.readconsole = flask_readconsole,
|
||||
#endif
|
||||
|
||||
.evtchn_unbound = flask_evtchn_unbound,
|
||||
.evtchn_interdomain = flask_evtchn_interdomain,
|
||||
|
||||