linux-next.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* linux-next: manual merge of the cgroup tree with the net-next tree
@ 2016-07-20  6:11 Stephen Rothwell
  0 siblings, 0 replies; 7+ messages in thread
From: Stephen Rothwell @ 2016-07-20  6:11 UTC (permalink / raw)
  To: Tejun Heo, David Miller, netdev
  Cc: linux-next, linux-kernel, Martin KaFai Lau, Wei Yongjun

Hi Tejun,

Today's linux-next merge of the cgroup tree got a conflict in:

  kernel/cgroup.c

between commit:

  1f3fe7ebf613 ("cgroup: Add cgroup_get_from_fd")

from the net-next tree and commit:

  55094f575358 ("cgroup: remove duplicated include from cgroup.c")

from the cgroup tree.

I fixed it up (see below) and can carry the fix as necessary. This
is now fixed as far as linux-next is concerned, but any non trivial
conflicts should be mentioned to your upstream maintainer when your tree
is submitted for merging.  You may also want to consider cooperating
with the maintainer of the conflicting tree to minimise any particularly
complex conflicts.

-- 
Cheers,
Stephen Rothwell

diff --cc kernel/cgroup.c
index 50787cd61da2,cb7cc54e2716..000000000000
--- a/kernel/cgroup.c
+++ b/kernel/cgroup.c
@@@ -61,8 -61,6 +61,7 @@@
  #include <linux/cpuset.h>
  #include <linux/proc_ns.h>
  #include <linux/nsproxy.h>
- #include <linux/proc_ns.h>
 +#include <linux/file.h>
  #include <net/sock.h>
  
  /*

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: linux-next: manual merge of the cgroup tree with the net-next tree
  2017-10-09 18:38 Mark Brown
  2017-10-09 23:04 ` Alexei Starovoitov
@ 2017-11-13  5:26 ` Stephen Rothwell
  1 sibling, 0 replies; 7+ messages in thread
From: Stephen Rothwell @ 2017-11-13  5:26 UTC (permalink / raw)
  To: Tejun Heo, David S. Miller, netdev
  Cc: Mark Brown, Alexei Starovoitov, Daniel Borkmann,
	Martin KaFai Lau, Linux-Next Mailing List,
	Linux Kernel Mailing List

Hi Mark,

On Mon, 9 Oct 2017 19:38:36 +0100 Mark Brown <broonie@kernel.org> wrote:
>
> Hi Tejun,
> 
> Today's linux-next merge of the cgroup tree got a conflict in:
> 
>   kernel/cgroup/cgroup.c
> 
> between commit:
> 
>   324bda9e6c5ad ("bpf: multi program support for cgroup+bpf")
> 
> from the net-next tree and commit:
> 
>   041cd640b2f3c ("cgroup: Implement cgroup2 basic CPU usage accounting")
> 
> from the cgroup tree.
> 
> I fixed it up (see below) and can carry the fix as necessary. This
> is now fixed as far as linux-next is concerned, but any non trivial
> conflicts should be mentioned to your upstream maintainer when your tree
> is submitted for merging.  You may also want to consider cooperating
> with the maintainer of the conflicting tree to minimise any particularly
> complex conflicts.
> 
> diff --cc kernel/cgroup/cgroup.c
> index 00f5b358aeac,c3421ee0d230..000000000000
> --- a/kernel/cgroup/cgroup.c
> +++ b/kernel/cgroup/cgroup.c
> @@@ -4765,8 -4785,9 +4788,11 @@@ static struct cgroup *cgroup_create(str
>   
>   	return cgrp;
>   
>  +out_idr_free:
>  +	cgroup_idr_remove(&root->cgroup_idr, cgrp->id);
> + out_stat_exit:
> + 	if (cgroup_on_dfl(parent))
> + 		cgroup_stat_exit(cgrp);
>   out_cancel_ref:
>   	percpu_ref_exit(&cgrp->self.refcnt);
>   out_free_cgrp:

Just a reminder that this conflict still exists.

-- 
Cheers,
Stephen Rothwell

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: linux-next: manual merge of the cgroup tree with the net-next tree
  2017-10-09 18:38 Mark Brown
@ 2017-10-09 23:04 ` Alexei Starovoitov
  2017-11-13  5:26 ` Stephen Rothwell
  1 sibling, 0 replies; 7+ messages in thread
From: Alexei Starovoitov @ 2017-10-09 23:04 UTC (permalink / raw)
  To: Mark Brown
  Cc: Tejun Heo, Alexei Starovoitov, Daniel Borkmann, Martin KaFai Lau,
	David S. Miller, netdev, Linux-Next Mailing List,
	Linux Kernel Mailing List

On Mon, Oct 09, 2017 at 07:38:36PM +0100, Mark Brown wrote:
> Hi Tejun,
> 
> Today's linux-next merge of the cgroup tree got a conflict in:
> 
>   kernel/cgroup/cgroup.c
> 
> between commit:
> 
>   324bda9e6c5ad ("bpf: multi program support for cgroup+bpf")
> 
> from the net-next tree and commit:
> 
>   041cd640b2f3c ("cgroup: Implement cgroup2 basic CPU usage accounting")
> 
> from the cgroup tree.
> 
> I fixed it up (see below) and can carry the fix as necessary. This
> is now fixed as far as linux-next is concerned, but any non trivial
> conflicts should be mentioned to your upstream maintainer when your tree
> is submitted for merging.  You may also want to consider cooperating
> with the maintainer of the conflicting tree to minimise any particularly
> complex conflicts.
> 
> diff --cc kernel/cgroup/cgroup.c
> index 00f5b358aeac,c3421ee0d230..000000000000
> --- a/kernel/cgroup/cgroup.c
> +++ b/kernel/cgroup/cgroup.c
> @@@ -4765,8 -4785,9 +4788,11 @@@ static struct cgroup *cgroup_create(str
>   
>   	return cgrp;
>   
>  +out_idr_free:
>  +	cgroup_idr_remove(&root->cgroup_idr, cgrp->id);
> + out_stat_exit:
> + 	if (cgroup_on_dfl(parent))
> + 		cgroup_stat_exit(cgrp);

thanks. I did the same merge conflict resolution for our combined tree.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* linux-next: manual merge of the cgroup tree with the net-next tree
@ 2017-10-09 18:38 Mark Brown
  2017-10-09 23:04 ` Alexei Starovoitov
  2017-11-13  5:26 ` Stephen Rothwell
  0 siblings, 2 replies; 7+ messages in thread
From: Mark Brown @ 2017-10-09 18:38 UTC (permalink / raw)
  To: Tejun Heo, Alexei Starovoitov, Daniel Borkmann, Martin KaFai Lau,
	David S. Miller
  Cc: netdev, Linux-Next Mailing List, Linux Kernel Mailing List

[-- Attachment #1: Type: text/plain, Size: 1172 bytes --]

Hi Tejun,

Today's linux-next merge of the cgroup tree got a conflict in:

  kernel/cgroup/cgroup.c

between commit:

  324bda9e6c5ad ("bpf: multi program support for cgroup+bpf")

from the net-next tree and commit:

  041cd640b2f3c ("cgroup: Implement cgroup2 basic CPU usage accounting")

from the cgroup tree.

I fixed it up (see below) and can carry the fix as necessary. This
is now fixed as far as linux-next is concerned, but any non trivial
conflicts should be mentioned to your upstream maintainer when your tree
is submitted for merging.  You may also want to consider cooperating
with the maintainer of the conflicting tree to minimise any particularly
complex conflicts.

diff --cc kernel/cgroup/cgroup.c
index 00f5b358aeac,c3421ee0d230..000000000000
--- a/kernel/cgroup/cgroup.c
+++ b/kernel/cgroup/cgroup.c
@@@ -4765,8 -4785,9 +4788,11 @@@ static struct cgroup *cgroup_create(str
  
  	return cgrp;
  
 +out_idr_free:
 +	cgroup_idr_remove(&root->cgroup_idr, cgrp->id);
+ out_stat_exit:
+ 	if (cgroup_on_dfl(parent))
+ 		cgroup_stat_exit(cgrp);
  out_cancel_ref:
  	percpu_ref_exit(&cgrp->self.refcnt);
  out_free_cgrp:

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* linux-next: manual merge of the cgroup tree with the net-next tree
@ 2015-12-31  8:10 Stephen Rothwell
  0 siblings, 0 replies; 7+ messages in thread
From: Stephen Rothwell @ 2015-12-31  8:10 UTC (permalink / raw)
  To: Tejun Heo, David Miller, netdev; +Cc: linux-next, linux-kernel, Serge E. Hallyn

Hi Tejun,

Today's linux-next merge of the cgroup tree got a conflict in:

  include/linux/cgroup.h
  kernel/cgroup.c

between commit:

  bd1060a1d671 ("sock, cgroup: add sock->sk_cgroup")

from the net-next tree and commit:

  f176ae3a5df6 ("cgroup: introduce cgroup namespaces")

from the cgroup tree.

I fixed it up (see below) and can carry the fix as necessary (no action
is required).

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

diff --cc include/linux/cgroup.h
index 322a28482745,6d0992f3543d..000000000000
--- a/include/linux/cgroup.h
+++ b/include/linux/cgroup.h
@@@ -577,45 -569,47 +569,88 @@@ static inline int cgroup_init(void) { r
  
  #endif /* !CONFIG_CGROUPS */
  
 +/*
 + * sock->sk_cgrp_data handling.  For more info, see sock_cgroup_data
 + * definition in cgroup-defs.h.
 + */
 +#ifdef CONFIG_SOCK_CGROUP_DATA
 +
 +#if defined(CONFIG_CGROUP_NET_PRIO) || defined(CONFIG_CGROUP_NET_CLASSID)
 +extern spinlock_t cgroup_sk_update_lock;
 +#endif
 +
 +void cgroup_sk_alloc_disable(void);
 +void cgroup_sk_alloc(struct sock_cgroup_data *skcd);
 +void cgroup_sk_free(struct sock_cgroup_data *skcd);
 +
 +static inline struct cgroup *sock_cgroup_ptr(struct sock_cgroup_data *skcd)
 +{
 +#if defined(CONFIG_CGROUP_NET_PRIO) || defined(CONFIG_CGROUP_NET_CLASSID)
 +	unsigned long v;
 +
 +	/*
 +	 * @skcd->val is 64bit but the following is safe on 32bit too as we
 +	 * just need the lower ulong to be written and read atomically.
 +	 */
 +	v = READ_ONCE(skcd->val);
 +
 +	if (v & 1)
 +		return &cgrp_dfl_root.cgrp;
 +
 +	return (struct cgroup *)(unsigned long)v ?: &cgrp_dfl_root.cgrp;
 +#else
 +	return (struct cgroup *)(unsigned long)skcd->val;
 +#endif
 +}
 +
 +#else	/* CONFIG_CGROUP_DATA */
 +
 +static inline void cgroup_sk_alloc(struct sock_cgroup_data *skcd) {}
 +static inline void cgroup_sk_free(struct sock_cgroup_data *skcd) {}
 +
 +#endif	/* CONFIG_CGROUP_DATA */
 +
+ struct cgroup_namespace {
+ 	atomic_t		count;
+ 	struct ns_common	ns;
+ 	struct user_namespace	*user_ns;
+ 	struct css_set          *root_cset;
+ };
+ 
+ extern struct cgroup_namespace init_cgroup_ns;
+ 
+ #ifdef CONFIG_CGROUPS
+ 
+ void free_cgroup_ns(struct cgroup_namespace *ns);
+ 
+ struct cgroup_namespace *
+ copy_cgroup_ns(unsigned long flags, struct user_namespace *user_ns,
+ 	       struct cgroup_namespace *old_ns);
+ 
+ char *cgroup_path(struct cgroup *cgrp, char *buf, size_t buflen);
+ 
+ #else /* !CONFIG_CGROUPS */
+ 
+ static inline void free_cgroup_ns(struct cgroup_namespace *ns) { }
+ static inline struct cgroup_namespace *
+ copy_cgroup_ns(unsigned long flags, struct user_namespace *user_ns,
+ 	       struct cgroup_namespace *old_ns)
+ {
+ 	return old_ns;
+ }
+ 
+ #endif /* !CONFIG_CGROUPS */
+ 
+ static inline void get_cgroup_ns(struct cgroup_namespace *ns)
+ {
+ 	if (ns)
+ 		atomic_inc(&ns->count);
+ }
+ 
+ static inline void put_cgroup_ns(struct cgroup_namespace *ns)
+ {
+ 	if (ns && atomic_dec_and_test(&ns->count))
+ 		free_cgroup_ns(ns);
+ }
+ 
  #endif /* _LINUX_CGROUP_H */
diff --cc kernel/cgroup.c
index fe95970b1f79,7eb1d9de2afa..000000000000
--- a/kernel/cgroup.c
+++ b/kernel/cgroup.c
@@@ -57,8 -57,11 +57,12 @@@
  #include <linux/vmalloc.h> /* TODO: replace with more sophisticated array */
  #include <linux/kthread.h>
  #include <linux/delay.h>
+ #include <linux/proc_ns.h>
+ #include <linux/nsproxy.h>
+ #include <linux/proc_ns.h>
+ 
  #include <linux/atomic.h>
 +#include <net/sock.h>
  
  /*
   * pidlists linger the following amount before being destroyed.  The goal
@@@ -5839,59 -5900,134 +5901,187 @@@ struct cgroup *cgroup_get_from_path(con
  }
  EXPORT_SYMBOL_GPL(cgroup_get_from_path);
  
 +/*
 + * sock->sk_cgrp_data handling.  For more info, see sock_cgroup_data
 + * definition in cgroup-defs.h.
 + */
 +#ifdef CONFIG_SOCK_CGROUP_DATA
 +
 +#if defined(CONFIG_CGROUP_NET_PRIO) || defined(CONFIG_CGROUP_NET_CLASSID)
 +
 +DEFINE_SPINLOCK(cgroup_sk_update_lock);
 +static bool cgroup_sk_alloc_disabled __read_mostly;
 +
 +void cgroup_sk_alloc_disable(void)
 +{
 +	if (cgroup_sk_alloc_disabled)
 +		return;
 +	pr_info("cgroup: disabling cgroup2 socket matching due to net_prio or net_cls activation\n");
 +	cgroup_sk_alloc_disabled = true;
 +}
 +
 +#else
 +
 +#define cgroup_sk_alloc_disabled	false
 +
 +#endif
 +
 +void cgroup_sk_alloc(struct sock_cgroup_data *skcd)
 +{
 +	if (cgroup_sk_alloc_disabled)
 +		return;
 +
 +	rcu_read_lock();
 +
 +	while (true) {
 +		struct css_set *cset;
 +
 +		cset = task_css_set(current);
 +		if (likely(cgroup_tryget(cset->dfl_cgrp))) {
 +			skcd->val = (unsigned long)cset->dfl_cgrp;
 +			break;
 +		}
 +		cpu_relax();
 +	}
 +
 +	rcu_read_unlock();
 +}
 +
 +void cgroup_sk_free(struct sock_cgroup_data *skcd)
 +{
 +	cgroup_put(sock_cgroup_ptr(skcd));
 +}
 +
 +#endif	/* CONFIG_SOCK_CGROUP_DATA */
 +
+ /* cgroup namespaces */
+ 
+ static struct cgroup_namespace *alloc_cgroup_ns(void)
+ {
+ 	struct cgroup_namespace *new_ns;
+ 	int ret;
+ 
+ 	new_ns = kzalloc(sizeof(struct cgroup_namespace), GFP_KERNEL);
+ 	if (!new_ns)
+ 		return ERR_PTR(-ENOMEM);
+ 	ret = ns_alloc_inum(&new_ns->ns);
+ 	if (ret) {
+ 		kfree(new_ns);
+ 		return ERR_PTR(ret);
+ 	}
+ 	atomic_set(&new_ns->count, 1);
+ 	new_ns->ns.ops = &cgroupns_operations;
+ 	return new_ns;
+ }
+ 
+ void free_cgroup_ns(struct cgroup_namespace *ns)
+ {
+ 	put_css_set(ns->root_cset);
+ 	put_user_ns(ns->user_ns);
+ 	ns_free_inum(&ns->ns);
+ 	kfree(ns);
+ }
+ EXPORT_SYMBOL(free_cgroup_ns);
+ 
+ struct cgroup_namespace *
+ copy_cgroup_ns(unsigned long flags, struct user_namespace *user_ns,
+ 	       struct cgroup_namespace *old_ns)
+ {
+ 	struct cgroup_namespace *new_ns = NULL;
+ 	struct css_set *cset = NULL;
+ 	int err;
+ 
+ 	BUG_ON(!old_ns);
+ 
+ 	if (!(flags & CLONE_NEWCGROUP)) {
+ 		get_cgroup_ns(old_ns);
+ 		return old_ns;
+ 	}
+ 
+ 	/* Allow only sysadmin to create cgroup namespace. */
+ 	err = -EPERM;
+ 	if (!ns_capable(user_ns, CAP_SYS_ADMIN))
+ 		goto err_out;
+ 
+ 	cset = task_css_set(current);
+ 	get_css_set(cset);
+ 
+ 	err = -ENOMEM;
+ 	new_ns = alloc_cgroup_ns();
+ 	if (!new_ns)
+ 		goto err_out;
+ 
+ 	new_ns->user_ns = get_user_ns(user_ns);
+ 	new_ns->root_cset = cset;
+ 
+ 	return new_ns;
+ 
+ err_out:
+ 	if (cset)
+ 		put_css_set(cset);
+ 	kfree(new_ns);
+ 	return ERR_PTR(err);
+ }
+ 
+ static inline struct cgroup_namespace *to_cg_ns(struct ns_common *ns)
+ {
+ 	return container_of(ns, struct cgroup_namespace, ns);
+ }
+ 
+ static int cgroupns_install(struct nsproxy *nsproxy, struct ns_common *ns)
+ {
+ 	struct cgroup_namespace *cgroup_ns = to_cg_ns(ns);
+ 
+ 	if (!ns_capable(current_user_ns(), CAP_SYS_ADMIN) ||
+ 	    !ns_capable(cgroup_ns->user_ns, CAP_SYS_ADMIN))
+ 		return -EPERM;
+ 
+ 	/* Don't need to do anything if we are attaching to our own cgroupns. */
+ 	if (cgroup_ns == nsproxy->cgroup_ns)
+ 		return 0;
+ 
+ 	get_cgroup_ns(cgroup_ns);
+ 	put_cgroup_ns(nsproxy->cgroup_ns);
+ 	nsproxy->cgroup_ns = cgroup_ns;
+ 
+ 	return 0;
+ }
+ 
+ static struct ns_common *cgroupns_get(struct task_struct *task)
+ {
+ 	struct cgroup_namespace *ns = NULL;
+ 	struct nsproxy *nsproxy;
+ 
+ 	task_lock(task);
+ 	nsproxy = task->nsproxy;
+ 	if (nsproxy) {
+ 		ns = nsproxy->cgroup_ns;
+ 		get_cgroup_ns(ns);
+ 	}
+ 	task_unlock(task);
+ 
+ 	return ns ? &ns->ns : NULL;
+ }
+ 
+ static void cgroupns_put(struct ns_common *ns)
+ {
+ 	put_cgroup_ns(to_cg_ns(ns));
+ }
+ 
+ const struct proc_ns_operations cgroupns_operations = {
+ 	.name		= "cgroup",
+ 	.type		= CLONE_NEWCGROUP,
+ 	.get		= cgroupns_get,
+ 	.put		= cgroupns_put,
+ 	.install	= cgroupns_install,
+ };
+ 
+ static __init int cgroup_namespaces_init(void)
+ {
+ 	return 0;
+ }
+ subsys_initcall(cgroup_namespaces_init);
+ 
  #ifdef CONFIG_CGROUP_DEBUG
  static struct cgroup_subsys_state *
  debug_css_alloc(struct cgroup_subsys_state *parent_css)

^ permalink raw reply	[flat|nested] 7+ messages in thread

* linux-next: manual merge of the cgroup tree with the net-next tree
@ 2013-08-12  2:21 Stephen Rothwell
  0 siblings, 0 replies; 7+ messages in thread
From: Stephen Rothwell @ 2013-08-12  2:21 UTC (permalink / raw)
  To: Tejun Heo; +Cc: linux-next, linux-kernel, Joe Perches, David Miller, netdev

[-- Attachment #1: Type: text/plain, Size: 994 bytes --]

Hi Tejun,

Today's linux-next merge of the cgroup tree got a conflict in
include/net/netprio_cgroup.h between commit 378307217ed9 ("cls_cgroup.h
netprio_cgroup.h: Remove extern from function prototypes") from the
net-next tree and commit 6d37b97428d2 ("netprio_cgroup: pass around @css
instead of @cgroup and kill struct cgroup_netprio_state") from the cgroup
tree.

I fixed it up (see below) and can carry the fix as necessary (no action
is required).

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

diff --cc include/net/netprio_cgroup.h
index 379dd5d,a24f8bb..0000000
--- a/include/net/netprio_cgroup.h
+++ b/include/net/netprio_cgroup.h
@@@ -25,11 -25,7 +25,7 @@@ struct netprio_map 
  	u32 priomap[];
  };
  
- struct cgroup_netprio_state {
- 	struct cgroup_subsys_state css;
- };
- 
 -extern void sock_update_netprioidx(struct sock *sk);
 +void sock_update_netprioidx(struct sock *sk);
  
  #if IS_BUILTIN(CONFIG_NETPRIO_CGROUP)
  

[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* linux-next: manual merge of the cgroup tree with the net-next tree
@ 2012-11-26  4:31 Stephen Rothwell
  0 siblings, 0 replies; 7+ messages in thread
From: Stephen Rothwell @ 2012-11-26  4:31 UTC (permalink / raw)
  To: Tejun Heo
  Cc: linux-next-u79uwXL29TY76Z2rM5mHXA,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA, Daniel Wagner, David Miller,
	netdev-u79uwXL29TY76Z2rM5mHXA, cgroups-u79uwXL29TY76Z2rM5mHXA

[-- Attachment #1: Type: text/plain, Size: 1203 bytes --]

Hi Tejun,

Today's linux-next merge of the cgroup tree got a conflict in
net/sched/cls_cgroup.c between commit 6a328d8c6f03 ("cgroup: net_cls:
Rework update socket logic") from the net-next tree and commits
92fb97487a7e ("cgroup: rename ->create/post_create/pre_destroy/destroy()
to ->css_alloc/online/offline/free()") and 0ba18f7a5e26 ("netcls_cgroup:
move config inheritance to ->css_online() and remove .broken_hierarchy
marking") from the cgroup tree.

I fixed it up (I think - see below) and can carry the fix as necessary
(no action is required).

-- 
Cheers,
Stephen Rothwell                    sfr-3FnU+UHB4dNDw9hX6IcOSA@public.gmane.org

diff --cc net/sched/cls_cgroup.c
index 709b0fb,31f06b6..0000000
--- a/net/sched/cls_cgroup.c
+++ b/net/sched/cls_cgroup.c
@@@ -98,9 -79,9 +102,10 @@@ static struct cftype ss_files[] = 
  
  struct cgroup_subsys net_cls_subsys = {
  	.name		= "net_cls",
- 	.create		= cgrp_create,
- 	.destroy	= cgrp_destroy,
+ 	.css_alloc	= cgrp_css_alloc,
+ 	.css_online	= cgrp_css_online,
+ 	.css_free	= cgrp_css_free,
 +	.attach		= cgrp_attach,
  	.subsys_id	= net_cls_subsys_id,
  	.base_cftypes	= ss_files,
  	.module		= THIS_MODULE,

[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2017-11-13  5:26 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-07-20  6:11 linux-next: manual merge of the cgroup tree with the net-next tree Stephen Rothwell
  -- strict thread matches above, loose matches on Subject: below --
2017-10-09 18:38 Mark Brown
2017-10-09 23:04 ` Alexei Starovoitov
2017-11-13  5:26 ` Stephen Rothwell
2015-12-31  8:10 Stephen Rothwell
2013-08-12  2:21 Stephen Rothwell
2012-11-26  4:31 Stephen Rothwell

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).