From: Thierry Reding <thierry.reding@gmail.com>
To: Stephen Rothwell <sfr@canb.auug.org.au>
Cc: Andrew Morton <akpm@linux-foundation.org>,
linux-next@vger.kernel.org, linux-kernel@vger.kernel.org,
Vladimir Davydov <vdavydov@parallels.com>
Subject: Re: linux-next: build failure after merge of the akpm tree
Date: Thu, 6 Nov 2014 12:30:32 +0100 [thread overview]
Message-ID: <20141106113031.GK26297@ulmo> (raw)
In-Reply-To: <20141106112359.GJ26297@ulmo>
[-- Attachment #1.1: Type: text/plain, Size: 3374 bytes --]
On Thu, Nov 06, 2014 at 12:24:00PM +0100, Thierry Reding wrote:
> On Thu, Nov 06, 2014 at 07:36:18PM +1100, Stephen Rothwell wrote:
> > Hi Andrew,
> >
> > After merging the akpm tree, today's linux-next build (sparc defconfig)
> > failed like this:
> >
> > mm/slab.c: In function 'slab_alloc':
> > mm/slab.c:3260:4: error: implicit declaration of function 'slab_free' [-Werror=implicit-function-declaration]
> > slab_free(cachep, objp);
> > ^
> > mm/slab.c: At top level:
> > mm/slab.c:3534:29: warning: conflicting types for 'slab_free'
> > static __always_inline void slab_free(struct kmem_cache *cachep, void *objp)
> > ^
> > mm/slab.c:3534:29: error: static declaration of 'slab_free' follows non-static declaration
> > mm/slab.c:3260:4: note: previous implicit declaration of 'slab_free' was here
> > slab_free(cachep, objp);
> > ^
> >
> > I am not sure what caused this, but it is something in the akpm-current
> > or akpm trees (possibly interacting with something else).
>
> I fixed this using the attached patch.
>
> Thierry
> From a9ec6cfacb892e044a5f76dce3b7fc9a3337d01a Mon Sep 17 00:00:00 2001
> From: Thierry Reding <treding@nvidia.com>
> Date: Thu, 6 Nov 2014 11:59:23 +0100
> Subject: [PATCH] mm/slab: Always predeclare slab_free()
>
> Commit 5da1c3c725ab ("slab: recharge slab pages to the allocating memory
> cgroup") added a predeclaration of the new slab_free() helper so that it
> can be used in slab_alloc_node() and slab_alloc(). However the prototype
> is added in an #ifdef CONFIG_NUMA protected section of code, which works
> fine for slab_alloc_node() but fails for slab_alloc().
>
> Fixes the following build warnings and errors:
>
> mm/slab.c: In function 'slab_alloc':
> mm/slab.c:3260:4: error: implicit declaration of function 'slab_free' [-Werror=implicit-function-declaration]
> slab_free(cachep, objp);
> ^
> mm/slab.c: At top level:
> mm/slab.c:3534:29: warning: conflicting types for 'slab_free'
> static __always_inline void slab_free(struct kmem_cache *cachep, void *objp)
> ^
> mm/slab.c:3534:29: error: static declaration of 'slab_free' follows non-static declaration
> mm/slab.c:3260:4: note: previous implicit declaration of 'slab_free' was here
> slab_free(cachep, objp);
> ^
>
> Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
> Signed-off-by: Thierry Reding <treding@nvidia.com>
> ---
> mm/slab.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/mm/slab.c b/mm/slab.c
> index 61b01c2ae1d9..00cd028404cb 100644
> --- a/mm/slab.c
> +++ b/mm/slab.c
> @@ -2961,6 +2961,8 @@ out:
> return objp;
> }
>
> +static __always_inline void slab_free(struct kmem_cache *cachep, void *objp);
> +
> #ifdef CONFIG_NUMA
> /*
> * Try allocating on another node if PFA_SPREAD_SLAB is a mempolicy is set.
> @@ -3133,8 +3135,6 @@ done:
> return obj;
> }
>
> -static __always_inline void slab_free(struct kmem_cache *cachep, void *objp);
> -
> static __always_inline void *
> slab_alloc_node(struct kmem_cache *cachep, gfp_t flags, int nodeid,
> unsigned long caller)
Attached is a follow-up cleanup patch that avoids the need for a pre-
declaration. Feel free to ignore if you prefer the predeclaration.
Thierry
[-- Attachment #1.2: 0001-mm-slab-Shuffle-code-around-to-avoid-a-predeclaratio.patch --]
[-- Type: text/x-diff, Size: 6840 bytes --]
From 3ad8947fd8613d13f2b9dc1ccd370d0a9ffaeb7b Mon Sep 17 00:00:00 2001
From: Thierry Reding <treding@nvidia.com>
Date: Thu, 6 Nov 2014 12:25:03 +0100
Subject: [PATCH] mm/slab: Shuffle code around to avoid a predeclaration
Instead of providing a predeclaration for the slab_free() helper, move
the helper and its dependencies before any of their users.
Signed-off-by: Thierry Reding <treding@nvidia.com>
---
mm/slab.c | 200 +++++++++++++++++++++++++++++++-------------------------------
1 file changed, 99 insertions(+), 101 deletions(-)
diff --git a/mm/slab.c b/mm/slab.c
index 00cd028404cb..3c025f5934da 100644
--- a/mm/slab.c
+++ b/mm/slab.c
@@ -2961,7 +2961,105 @@ out:
return objp;
}
-static __always_inline void slab_free(struct kmem_cache *cachep, void *objp);
+static void cache_flusharray(struct kmem_cache *cachep, struct array_cache *ac)
+{
+ int batchcount;
+ struct kmem_cache_node *n;
+ int node = numa_mem_id();
+ LIST_HEAD(list);
+
+ batchcount = ac->batchcount;
+#if DEBUG
+ BUG_ON(!batchcount || batchcount > ac->avail);
+#endif
+ check_irq_off();
+ n = get_node(cachep, node);
+ spin_lock(&n->list_lock);
+ if (n->shared) {
+ struct array_cache *shared_array = n->shared;
+ int max = shared_array->limit - shared_array->avail;
+ if (max) {
+ if (batchcount > max)
+ batchcount = max;
+ memcpy(&(shared_array->entry[shared_array->avail]),
+ ac->entry, sizeof(void *) * batchcount);
+ shared_array->avail += batchcount;
+ goto free_done;
+ }
+ }
+
+ free_block(cachep, ac->entry, batchcount, node, &list);
+free_done:
+#if STATS
+ {
+ int i = 0;
+ struct list_head *p;
+
+ p = n->slabs_free.next;
+ while (p != &(n->slabs_free)) {
+ struct page *page;
+
+ page = list_entry(p, struct page, lru);
+ BUG_ON(page->active);
+
+ i++;
+ p = p->next;
+ }
+ STATS_SET_FREEABLE(cachep, i);
+ }
+#endif
+ spin_unlock(&n->list_lock);
+ slabs_destroy(cachep, &list);
+ ac->avail -= batchcount;
+ memmove(ac->entry, &(ac->entry[batchcount]), sizeof(void *)*ac->avail);
+}
+
+/*
+ * Release an obj back to its cache. If the obj has a constructed state, it must
+ * be in this state _before_ it is released. Called with disabled ints.
+ */
+static inline void __cache_free(struct kmem_cache *cachep, void *objp,
+ unsigned long caller)
+{
+ struct array_cache *ac = cpu_cache_get(cachep);
+
+ check_irq_off();
+ kmemleak_free_recursive(objp, cachep->flags);
+ objp = cache_free_debugcheck(cachep, objp, caller);
+
+ kmemcheck_slab_free(cachep, objp, cachep->object_size);
+
+ /*
+ * Skip calling cache_free_alien() when the platform is not numa.
+ * This will avoid cache misses that happen while accessing slabp (which
+ * is per page memory reference) to get nodeid. Instead use a global
+ * variable to skip the call, which is mostly likely to be present in
+ * the cache.
+ */
+ if (nr_online_nodes > 1 && cache_free_alien(cachep, objp))
+ return;
+
+ if (ac->avail < ac->limit) {
+ STATS_INC_FREEHIT(cachep);
+ } else {
+ STATS_INC_FREEMISS(cachep);
+ cache_flusharray(cachep, ac);
+ }
+
+ ac_put_obj(cachep, ac, objp);
+}
+
+static __always_inline void slab_free(struct kmem_cache *cachep, void *objp)
+{
+ unsigned long flags;
+
+ local_irq_save(flags);
+ debug_check_no_locks_freed(objp, cachep->object_size);
+ if (!(cachep->flags & SLAB_DEBUG_OBJECTS))
+ debug_check_no_obj_freed(objp, cachep->object_size);
+ __cache_free(cachep, objp, _RET_IP_);
+ local_irq_restore(flags);
+}
#ifdef CONFIG_NUMA
/*
@@ -3307,94 +3405,6 @@ static void free_block(struct kmem_cache *cachep, void **objpp,
}
}
-static void cache_flusharray(struct kmem_cache *cachep, struct array_cache *ac)
-{
- int batchcount;
- struct kmem_cache_node *n;
- int node = numa_mem_id();
- LIST_HEAD(list);
-
- batchcount = ac->batchcount;
-#if DEBUG
- BUG_ON(!batchcount || batchcount > ac->avail);
-#endif
- check_irq_off();
- n = get_node(cachep, node);
- spin_lock(&n->list_lock);
- if (n->shared) {
- struct array_cache *shared_array = n->shared;
- int max = shared_array->limit - shared_array->avail;
- if (max) {
- if (batchcount > max)
- batchcount = max;
- memcpy(&(shared_array->entry[shared_array->avail]),
- ac->entry, sizeof(void *) * batchcount);
- shared_array->avail += batchcount;
- goto free_done;
- }
- }
-
- free_block(cachep, ac->entry, batchcount, node, &list);
-free_done:
-#if STATS
- {
- int i = 0;
- struct list_head *p;
-
- p = n->slabs_free.next;
- while (p != &(n->slabs_free)) {
- struct page *page;
-
- page = list_entry(p, struct page, lru);
- BUG_ON(page->active);
-
- i++;
- p = p->next;
- }
- STATS_SET_FREEABLE(cachep, i);
- }
-#endif
- spin_unlock(&n->list_lock);
- slabs_destroy(cachep, &list);
- ac->avail -= batchcount;
- memmove(ac->entry, &(ac->entry[batchcount]), sizeof(void *)*ac->avail);
-}
-
-/*
- * Release an obj back to its cache. If the obj has a constructed state, it must
- * be in this state _before_ it is released. Called with disabled ints.
- */
-static inline void __cache_free(struct kmem_cache *cachep, void *objp,
- unsigned long caller)
-{
- struct array_cache *ac = cpu_cache_get(cachep);
-
- check_irq_off();
- kmemleak_free_recursive(objp, cachep->flags);
- objp = cache_free_debugcheck(cachep, objp, caller);
-
- kmemcheck_slab_free(cachep, objp, cachep->object_size);
-
- /*
- * Skip calling cache_free_alien() when the platform is not numa.
- * This will avoid cache misses that happen while accessing slabp (which
- * is per page memory reference) to get nodeid. Instead use a global
- * variable to skip the call, which is mostly likely to be present in
- * the cache.
- */
- if (nr_online_nodes > 1 && cache_free_alien(cachep, objp))
- return;
-
- if (ac->avail < ac->limit) {
- STATS_INC_FREEHIT(cachep);
- } else {
- STATS_INC_FREEMISS(cachep);
- cache_flusharray(cachep, ac);
- }
-
- ac_put_obj(cachep, ac, objp);
-}
-
/**
* kmem_cache_alloc - Allocate an object
* @cachep: The cache to allocate from.
@@ -3531,18 +3541,6 @@ void *__kmalloc_track_caller(size_t size, gfp_t flags, unsigned long caller)
}
EXPORT_SYMBOL(__kmalloc_track_caller);
-static __always_inline void slab_free(struct kmem_cache *cachep, void *objp)
-{
- unsigned long flags;
-
- local_irq_save(flags);
- debug_check_no_locks_freed(objp, cachep->object_size);
- if (!(cachep->flags & SLAB_DEBUG_OBJECTS))
- debug_check_no_obj_freed(objp, cachep->object_size);
- __cache_free(cachep, objp, _RET_IP_);
- local_irq_restore(flags);
-}
-
/**
* kmem_cache_free - Deallocate an object
* @cachep: The cache the allocation was from.
--
2.1.3
[-- Attachment #2: Type: application/pgp-signature, Size: 819 bytes --]
next prev parent reply other threads:[~2014-11-06 11:30 UTC|newest]
Thread overview: 283+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-06 8:36 linux-next: build failure after merge of the akpm tree Stephen Rothwell
2014-11-06 11:24 ` Thierry Reding
2014-11-06 11:30 ` Thierry Reding [this message]
2014-11-09 23:55 ` Stephen Rothwell
-- strict thread matches above, loose matches on Subject: below --
2022-03-07 10:55 Stephen Rothwell
2022-03-07 16:43 ` Johannes Weiner
2022-03-07 21:27 ` Stephen Rothwell
2021-12-20 11:08 Stephen Rothwell
2021-12-20 12:44 ` Muchun Song
2021-12-01 5:06 Stephen Rothwell
2021-06-17 9:32 Stephen Rothwell
2021-06-17 12:15 ` Muneendra Kumar M
2021-06-16 13:07 Stephen Rothwell
2021-06-18 8:24 ` Stephen Rothwell
2020-12-21 5:16 Stephen Rothwell
2020-12-10 9:33 Stephen Rothwell
2020-12-03 8:52 Stephen Rothwell
2020-12-03 12:48 ` Andrey Konovalov
2020-11-13 7:02 Stephen Rothwell
2020-11-14 1:14 ` Andrew Morton
2020-11-15 9:01 ` Mike Rapoport
2020-11-16 6:17 ` Stephen Rothwell
2020-11-11 6:20 Stephen Rothwell
2020-09-28 11:25 Stephen Rothwell
2020-09-28 11:29 ` Christoph Hellwig
2020-09-08 10:45 Stephen Rothwell
2020-06-04 6:44 Stephen Rothwell
2020-06-04 8:24 ` Stephen Rothwell
2020-06-02 9:57 Stephen Rothwell
2020-06-02 19:12 ` Andrew Morton
2020-05-28 10:19 Stephen Rothwell
2020-05-28 13:15 ` Christoph Hellwig
2020-05-25 12:17 Stephen Rothwell
2020-05-25 18:18 ` John Hubbard
2020-05-25 22:17 ` Stephen Rothwell
2020-04-22 6:39 Stephen Rothwell
2020-04-22 6:39 ` Stephen Rothwell
2020-04-22 18:33 ` Haren Myneni
2020-03-02 4:23 Stephen Rothwell
2020-02-27 4:11 Stephen Rothwell
2020-02-27 5:20 ` Arjun Roy
2020-02-27 9:02 ` Geert Uytterhoeven
2020-02-27 17:13 ` Arjun Roy
2020-02-27 17:44 ` Arjun Roy
2020-02-27 17:57 ` Geert Uytterhoeven
2020-02-27 18:50 ` Arjun Roy
2020-02-27 21:28 ` Stephen Rothwell
2020-02-28 0:34 ` Arjun Roy
2020-02-28 0:59 ` Stephen Rothwell
2020-02-27 21:27 ` Stephen Rothwell
2020-02-17 3:57 Stephen Rothwell
2020-02-17 4:12 ` Arjun Roy
2020-02-17 6:45 ` Arjun Roy
2020-02-20 23:18 ` Stephen Rothwell
2020-02-20 23:22 ` Arjun Roy
2020-02-20 23:43 ` Stephen Rothwell
2020-02-20 23:44 ` Arjun Roy
2020-02-20 23:59 ` Stephen Rothwell
2020-02-21 21:29 ` Arjun Roy
2020-02-26 4:02 ` Stephen Rothwell
2020-02-26 4:25 ` Arjun Roy
2020-01-22 7:05 Stephen Rothwell
2019-02-26 7:39 Stephen Rothwell
2019-02-26 7:39 ` Stephen Rothwell
2019-02-26 8:16 ` Mike Rapoport
2019-02-26 8:16 ` Mike Rapoport
2018-12-03 7:00 Stephen Rothwell
2018-12-03 10:37 ` Anshuman Khandual
2018-12-12 17:05 ` Anshuman Khandual
2018-12-12 20:44 ` Stephen Rothwell
2018-11-30 5:30 Stephen Rothwell
2018-11-30 10:27 ` Anshuman Khandual
2018-10-08 8:03 Stephen Rothwell
2018-10-15 7:14 ` Stephen Rothwell
2018-10-16 7:46 ` Ingo Molnar
2018-10-05 6:14 Stephen Rothwell
2018-10-05 6:14 ` Stephen Rothwell
2018-10-05 12:02 ` Michael Ellerman
2018-10-05 12:02 ` Michael Ellerman
2018-10-05 12:46 ` Stephen Rothwell
2018-10-05 12:46 ` Stephen Rothwell
2018-10-06 12:10 ` Michael Ellerman
2018-10-06 12:10 ` Michael Ellerman
2018-10-02 8:53 Stephen Rothwell
2018-03-21 8:17 Stephen Rothwell
2018-03-21 10:02 ` Greg Kroah-Hartman
2018-03-21 10:38 ` Stephen Rothwell
2017-11-06 6:55 Stephen Rothwell
2017-08-01 6:25 Stephen Rothwell
2017-08-01 18:40 ` Kees Cook
2017-08-01 20:44 ` Arnd Bergmann
2017-06-30 6:32 Stephen Rothwell
2017-07-03 8:14 ` Stephen Rothwell
2017-07-03 8:57 ` David Miller
2017-06-26 6:53 Stephen Rothwell
2017-06-26 7:13 ` Michal Hocko
2017-06-26 21:48 ` Stephen Rothwell
2017-04-20 6:18 Stephen Rothwell
2017-04-18 8:09 Stephen Rothwell
2017-04-10 7:51 Stephen Rothwell
2017-03-20 5:37 Stephen Rothwell
2017-03-20 13:07 ` Michal Hocko
2017-03-20 13:22 ` Jaegeuk Kim
2017-03-07 3:07 Stephen Rothwell
2017-03-07 3:55 ` Laura Abbott
2017-03-07 2:38 Stephen Rothwell
2017-01-09 4:09 Stephen Rothwell
2015-12-31 12:22 Stephen Rothwell
2016-01-14 4:15 ` Stephen Rothwell
2016-01-15 21:05 ` Andrew Morton
2016-01-15 23:00 ` Stephen Rothwell
2016-01-15 23:14 ` Andrew Morton
2016-01-16 8:51 ` Takashi Iwai
2016-01-20 14:09 ` Takashi Iwai
2016-01-20 20:38 ` Stephen Rothwell
2016-01-22 0:24 ` Stephen Rothwell
2016-01-22 2:40 ` Stephen Rothwell
2016-01-25 9:29 ` Takashi Iwai
2016-01-25 9:40 ` Michael Ellerman
2016-01-25 10:19 ` Takashi Iwai
2016-01-25 10:41 ` Vinod Koul
2016-01-25 10:42 ` Takashi Iwai
2016-01-25 10:45 ` Sudip Mukherjee
2016-01-25 11:03 ` Takashi Iwai
2016-01-25 11:18 ` Sudip Mukherjee
2016-01-25 11:41 ` Mark Brown
2016-01-25 13:10 ` Takashi Iwai
2016-01-25 13:45 ` Takashi Iwai
2016-01-25 13:55 ` Mark Brown
2016-01-26 12:47 ` Vinod Koul
2016-01-25 14:02 ` Sudip Mukherjee
2016-01-26 12:26 ` Vinod Koul
2016-01-26 20:51 ` Stephen Rothwell
2016-01-26 21:22 ` Takashi Iwai
2016-01-22 3:03 ` Stephen Rothwell
2015-11-01 16:29 Stephen Rothwell
2015-10-06 7:03 Stephen Rothwell
2015-09-08 4:53 Stephen Rothwell
2015-07-14 5:19 Stephen Rothwell
2015-06-25 8:00 Stephen Rothwell
2015-06-20 14:31 Stephen Rothwell
2014-08-26 7:18 Stephen Rothwell
2014-08-26 13:54 ` Don Zickus
2014-08-26 21:37 ` Stephen Rothwell
2014-07-16 8:26 Stephen Rothwell
2014-07-16 8:54 ` Michal Hocko
2014-03-06 8:22 Stephen Rothwell
2014-03-06 21:48 ` Andrew Morton
2014-03-07 0:57 ` Stephen Rothwell
2014-03-07 1:38 ` Andrew Morton
2014-03-07 17:05 ` Christoph Lameter
2014-03-07 21:08 ` Andrew Morton
2014-03-07 17:02 ` Christoph Lameter
2014-03-06 7:54 Stephen Rothwell
2013-09-25 1:06 Stephen Rothwell
2013-09-25 1:06 ` Stephen Rothwell
2013-09-25 1:21 ` Timur Tabi
2013-09-25 1:21 ` Timur Tabi
2013-09-25 20:26 ` Andrew Morton
2013-09-25 20:26 ` Andrew Morton
2013-09-25 21:32 ` Hugh Dickins
2013-09-25 21:32 ` Hugh Dickins
2013-09-25 21:43 ` Andrew Morton
2013-09-25 21:43 ` Andrew Morton
2013-10-02 8:53 ` Frederic Weisbecker
2013-10-02 8:53 ` Frederic Weisbecker
2013-07-16 5:18 Stephen Rothwell
2013-06-07 6:28 Stephen Rothwell
2013-06-07 7:26 ` Peng Tao
2013-06-07 7:52 ` Stephen Rothwell
2013-06-07 8:11 ` Peng Tao
2013-06-04 6:55 Stephen Rothwell
2013-05-27 6:39 Stephen Rothwell
2013-04-04 6:44 Stephen Rothwell
2013-03-27 4:43 Stephen Rothwell
2013-03-01 4:31 Stephen Rothwell
2013-02-28 1:15 Stephen Rothwell
2013-02-20 6:28 Stephen Rothwell
2013-02-20 6:28 ` Stephen Rothwell
2013-02-11 7:13 Stephen Rothwell
2013-02-11 7:13 ` Stephen Rothwell
2013-02-11 12:04 ` Amir Vadai
2013-02-11 12:04 ` Amir Vadai
2013-02-06 6:59 Stephen Rothwell
2013-02-04 7:17 Stephen Rothwell
2012-12-18 2:29 Stephen Rothwell
2012-12-18 10:10 ` Mel Gorman
2012-12-10 8:58 Stephen Rothwell
2012-12-10 8:54 Stephen Rothwell
2012-12-10 10:43 ` Ingo Molnar
2012-11-09 3:39 Stephen Rothwell
2012-10-23 3:42 Stephen Rothwell
2012-10-23 4:21 ` Joe Perches
2012-10-23 19:44 ` Andrew Morton
2012-10-23 19:51 ` Joe Perches
2012-10-23 20:02 ` Andrew Morton
2012-10-24 19:19 ` Joe Perches
2012-10-24 19:38 ` Andrew Morton
2012-10-23 3:35 Stephen Rothwell
2012-09-28 6:30 Stephen Rothwell
2012-09-28 15:19 ` Mikulas Patocka
2012-10-01 19:56 ` Andrew Morton
2012-09-27 7:43 Stephen Rothwell
2012-09-26 6:01 Stephen Rothwell
2012-09-26 20:15 ` Kees Cook
2012-09-26 20:33 ` Andrew Morton
2012-09-26 20:42 ` Kees Cook
2012-09-26 20:47 ` Andrew Morton
2012-09-27 7:26 ` Stephen Rothwell
2012-09-24 14:02 Stephen Rothwell
[not found] ` <20120925000217.947b8cd8dca6979bfedee2ca-3FnU+UHB4dNDw9hX6IcOSA@public.gmane.org>
2012-09-24 19:36 ` Roland Dreier
2012-09-24 19:36 ` Roland Dreier
2012-09-24 19:46 ` Andrew Morton
2012-09-25 8:27 ` Jack Morgenstein
2012-09-21 6:26 Stephen Rothwell
2012-09-21 9:02 ` Denys Vlasenko
2012-09-21 6:08 Stephen Rothwell
2012-09-13 7:44 Stephen Rothwell
2012-09-13 7:49 ` Sachin Kamat
2012-09-13 8:31 ` Stephen Rothwell
2012-09-13 7:56 ` Andrew Morton
2012-09-13 8:31 ` Stephen Rothwell
2012-09-13 23:07 ` Stephen Rothwell
2012-09-13 8:46 ` Zhang Rui
2012-09-13 12:30 ` Stephen Rothwell
2012-08-06 3:43 Stephen Rothwell
2012-08-06 5:01 ` Michel Lespinasse
2012-08-06 5:04 ` Michel Lespinasse
2012-08-06 9:46 ` Steven Whitehouse
2012-07-31 4:40 Stephen Rothwell
2012-07-31 5:45 ` Michel Lespinasse
2012-07-31 6:31 ` Stephen Rothwell
2012-07-31 10:34 ` Michel Lespinasse
2012-06-25 6:41 Stephen Rothwell
2012-06-25 16:40 ` Kees Cook
2012-06-25 22:59 ` Stephen Rothwell
2012-04-27 5:38 Stephen Rothwell
2012-02-28 5:58 Stephen Rothwell
2012-02-28 12:00 ` Mark Brown
2012-02-28 22:08 ` Andrew Morton
2012-02-29 10:13 ` Mark Brown
2012-02-27 6:21 Stephen Rothwell
2012-02-27 6:31 ` H. Peter Anvin
2012-02-22 5:08 Stephen Rothwell
2012-02-17 5:21 Stephen Rothwell
2012-01-05 7:29 Stephen Rothwell
2012-01-05 23:52 ` Andrew Morton
2012-01-06 5:05 ` Greg KH
2012-01-06 7:22 ` Mike Galbraith
2012-01-05 7:29 Stephen Rothwell
2012-01-05 23:19 ` Greg KH
2012-01-05 23:45 ` Andrew Morton
2012-01-06 5:04 ` Greg KH
2011-12-16 5:39 Stephen Rothwell
2011-12-16 22:00 ` Andrew Morton
2011-12-17 17:49 ` Alexey Dobriyan
2011-12-18 22:43 ` Stephen Rothwell
2011-12-09 5:08 Stephen Rothwell
2011-12-09 5:47 ` Andrew Morton
2011-12-12 4:26 ` Stephen Rothwell
2011-12-12 4:41 ` Stephen Rothwell
2011-11-01 8:57 Stephen Rothwell
2011-10-05 8:07 Stephen Rothwell
2011-09-30 5:32 Stephen Rothwell
2011-09-30 5:32 ` Stephen Rothwell
2011-09-30 6:02 ` Andrew Morton
2011-09-30 6:02 ` Andrew Morton
2011-10-04 7:44 ` Stephen Rothwell
2011-10-04 7:44 ` Stephen Rothwell
2011-09-28 9:22 Stephen Rothwell
2011-09-28 9:22 ` Stephen Rothwell
2011-09-28 9:22 ` Stephen Rothwell
2011-09-28 15:51 ` Joe Perches
2011-09-28 22:03 ` Andrew Morton
2011-09-28 22:03 ` Andrew Morton
2011-09-28 22:03 ` Andrew Morton
2011-09-16 6:21 Stephen Rothwell
2011-07-01 5:19 Stephen Rothwell
2011-07-01 5:32 ` Cong Wang
2011-07-01 7:08 ` Stephen Rothwell
2011-07-01 10:10 ` Cong Wang
2011-07-01 10:37 ` Stephen Rothwell
2011-07-04 1:30 ` Cong Wang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20141106113031.GK26297@ulmo \
--to=thierry.reding@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-next@vger.kernel.org \
--cc=sfr@canb.auug.org.au \
--cc=vdavydov@parallels.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.