diff options
Diffstat (limited to 'include/net/netprio_cgroup.h')
| -rw-r--r-- | include/net/netprio_cgroup.h | 49 |
1 files changed, 14 insertions, 35 deletions
diff --git a/include/net/netprio_cgroup.h b/include/net/netprio_cgroup.h index 50ab8c26ab59..dec7522b6ce1 100644 --- a/include/net/netprio_cgroup.h +++ b/include/net/netprio_cgroup.h @@ -1,75 +1,54 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ /* * netprio_cgroup.h Control Group Priority set * - * * Authors: Neil Horman <nhorman@tuxdriver.com> - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) - * any later version. - * */ #ifndef _NETPRIO_CGROUP_H #define _NETPRIO_CGROUP_H + #include <linux/cgroup.h> #include <linux/hardirq.h> #include <linux/rcupdate.h> - -#if IS_ENABLED(CONFIG_NETPRIO_CGROUP) +#if IS_ENABLED(CONFIG_CGROUP_NET_PRIO) struct netprio_map { struct rcu_head rcu; u32 priomap_len; u32 priomap[]; }; -struct cgroup_netprio_state { - struct cgroup_subsys_state css; -}; - -extern void sock_update_netprioidx(struct sock *sk); - -#if IS_BUILTIN(CONFIG_NETPRIO_CGROUP) - static inline u32 task_netprioidx(struct task_struct *p) { struct cgroup_subsys_state *css; u32 idx; rcu_read_lock(); - css = task_subsys_state(p, net_prio_subsys_id); - idx = css->cgroup->id; + css = task_css(p, net_prio_cgrp_id); + idx = css->id; rcu_read_unlock(); return idx; } -#elif IS_MODULE(CONFIG_NETPRIO_CGROUP) - -static inline u32 task_netprioidx(struct task_struct *p) +static inline void sock_update_netprioidx(struct sock_cgroup_data *skcd) { - struct cgroup_subsys_state *css; - u32 idx = 0; + if (in_interrupt()) + return; - rcu_read_lock(); - css = task_subsys_state(p, net_prio_subsys_id); - if (css) - idx = css->cgroup->id; - rcu_read_unlock(); - return idx; + sock_cgroup_set_prioidx(skcd, task_netprioidx(current)); } -#endif -#else /* !CONFIG_NETPRIO_CGROUP */ +#else /* !CONFIG_CGROUP_NET_PRIO */ static inline u32 task_netprioidx(struct task_struct *p) { return 0; } -#define sock_update_netprioidx(sk) - -#endif /* CONFIG_NETPRIO_CGROUP */ +static inline void sock_update_netprioidx(struct sock_cgroup_data *skcd) +{ +} +#endif /* CONFIG_CGROUP_NET_PRIO */ #endif /* _NET_CLS_CGROUP_H */ |
