Zqiang
31fa985b41
kasan: prevent cpu_quarantine corruption when CPU offline and cache shrink occur at same time
...
kasan_quarantine_remove_cache() is called in kmem_cache_shrink()/
destroy(). The kasan_quarantine_remove_cache() call is protected by
cpuslock in kmem_cache_destroy() to ensure serialization with
kasan_cpu_offline().
However the kasan_quarantine_remove_cache() call is not protected by
cpuslock in kmem_cache_shrink(). When a CPU is going offline and cache
shrink occurs at same time, the cpu_quarantine may be corrupted by
interrupt (per_cpu_remove_cache operation).
So add a cpu_quarantine offline flags check in per_cpu_remove_cache().
[akpm@linux-foundation.org: add comment, per Zqiang]
Link: https://lkml.kernel.org/r/20220414025925.2423818-1-qiang1.zhang@intel.com
Signed-off-by: Zqiang <qiang1.zhang@intel.com>
Reviewed-by: Dmitry Vyukov <dvyukov@google.com>
Cc: Andrey Ryabinin <ryabinin.a.a@gmail.com>
Cc: Alexander Potapenko <glider@google.com>
Cc: Andrey Konovalov <andreyknvl@gmail.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2022-04-27 13:28:48 -07:00
..
2022-04-01 11:46:09 -07:00
2022-04-27 13:28:48 -07:00
2022-04-15 14:49:55 -07:00
2022-03-22 15:57:01 -07:00
2022-03-28 16:52:57 -04:00
2022-01-06 12:27:03 +01:00
2021-05-05 11:27:21 -07:00
2021-05-05 11:27:24 -07:00
2022-03-22 15:57:09 -07:00
2022-03-22 15:57:09 -07:00
2022-04-15 14:49:55 -07:00
2022-02-04 09:25:04 -08:00
2022-03-24 19:06:45 -07:00
2022-01-15 16:30:28 +02:00
2022-03-22 15:57:11 -07:00
2022-03-22 15:57:01 -07:00
2019-07-12 11:05:43 -07:00
2022-04-15 14:49:54 -07:00
2022-03-21 13:01:35 -04:00
2022-01-22 08:33:38 +02:00
2021-05-05 11:27:26 -07:00
2021-05-05 11:27:26 -07:00
2022-04-01 11:46:09 -07:00
2022-04-08 14:20:36 -10:00
2022-03-22 15:57:12 -07:00
2022-04-07 09:43:41 -04:00
2022-01-15 16:30:29 +02:00
2022-03-22 15:57:08 -07:00
2021-06-30 20:47:25 -07:00
2022-04-21 20:01:09 -07:00
2022-03-22 15:57:07 -07:00
2022-02-14 19:51:47 +01:00
2022-04-01 11:46:09 -07:00
2021-04-30 11:20:38 -07:00
2021-04-30 11:20:39 -07:00
2021-09-08 11:50:24 -07:00
2022-03-24 19:06:51 -07:00
2022-01-15 16:30:28 +02:00
2022-03-24 19:06:51 -07:00
2022-04-15 14:49:56 -07:00
2022-03-22 17:03:12 -07:00
2022-04-08 14:20:36 -10:00
2022-03-23 18:03:08 -07:00
2022-04-01 11:46:09 -07:00
2022-03-03 12:47:33 -05:00
2022-01-15 16:30:27 +02:00
2022-03-27 13:36:06 -07:00
2022-04-21 20:01:09 -07:00
2022-03-05 11:08:32 -08:00
2022-03-22 17:03:12 -07:00
2022-04-21 20:01:09 -07:00
2022-04-01 11:46:09 -07:00
2022-04-08 14:31:41 -10:00
2021-10-18 06:17:01 -06:00
2022-03-24 19:06:45 -07:00
2022-03-21 13:01:35 -04:00
2022-04-08 14:20:36 -10:00
2021-01-24 14:27:16 +01:00
2022-04-01 11:46:09 -07:00
2021-04-30 11:20:42 -07:00
2021-07-23 17:43:28 -07:00
2022-04-21 20:01:09 -07:00
2022-01-15 16:30:27 +02:00
2022-04-21 20:01:10 -07:00
2022-03-22 17:03:12 -07:00
2022-03-22 15:57:09 -07:00
2022-04-08 14:20:36 -10:00
2021-04-30 11:20:37 -07:00
2022-04-25 10:11:49 -07:00
2022-04-21 20:01:10 -07:00
2022-04-24 10:00:54 -07:00
2022-01-15 16:30:27 +02:00
2022-01-15 16:30:31 +02:00
2022-03-21 13:01:35 -04:00
2022-04-15 14:49:55 -07:00
2022-02-04 09:25:04 -08:00
2022-03-24 19:06:44 -07:00
2021-04-30 11:20:36 -07:00
2021-06-29 10:53:47 -07:00
2021-06-29 10:53:47 -07:00
2022-03-22 15:57:11 -07:00
2022-04-07 10:11:20 -04:00
2022-03-24 19:06:51 -07:00
2021-06-29 10:53:49 -07:00
2022-01-15 16:30:31 +02:00
2021-07-04 18:30:17 +00:00
2022-03-08 09:30:46 -05:00
2021-07-04 18:30:17 +00:00
2022-01-23 06:20:44 +02:00
2021-05-07 00:26:35 -07:00
2022-01-15 16:30:27 +02:00
2021-05-05 11:27:27 -07:00
2022-03-22 15:57:08 -07:00
2022-04-01 14:40:42 -04:00
2022-04-01 11:46:09 -07:00
2020-08-21 09:52:53 -07:00
2022-04-15 14:49:54 -07:00
2022-04-15 14:49:54 -07:00
2021-04-16 16:10:36 -07:00
2021-05-22 15:09:07 -10:00
2022-04-15 14:49:55 -07:00
2022-04-15 14:49:55 -07:00
2022-04-15 14:49:55 -07:00
2022-04-15 14:49:55 -07:00
2022-04-15 14:49:55 -07:00
2022-03-22 15:57:08 -07:00
2022-03-22 15:57:05 -07:00
2022-03-08 09:30:46 -05:00
2021-12-03 10:58:13 -08:00
2022-03-22 18:26:56 -07:00
2022-04-01 11:46:09 -07:00
2022-03-24 19:06:51 -07:00
2022-03-22 18:26:56 -07:00
2022-03-22 16:11:53 -07:00
2022-04-21 20:01:09 -07:00
2022-04-24 10:05:38 -07:00
2020-06-10 19:14:18 -07:00
2022-04-22 09:20:16 -07:00
2021-11-06 13:30:40 -07:00
2022-03-22 17:03:12 -07:00
2022-03-22 15:57:11 -07:00
2022-04-21 20:01:09 -07:00
2021-07-01 11:06:03 -07:00
2021-07-01 11:06:03 -07:00
2022-01-15 16:30:31 +02:00
2022-01-22 08:33:37 +02:00
2022-03-22 15:57:11 -07:00