Dan Williams
2e6edc9538
block: protect rw_page against device teardown
...
Fix use after free crashes like the following:
general protection fault: 0000 [#1 ] SMP
Call Trace:
[<ffffffffa0050216>] ? pmem_do_bvec.isra.12+0xa6/0xf0 [nd_pmem]
[<ffffffffa0050ba2>] pmem_rw_page+0x42/0x80 [nd_pmem]
[<ffffffff8128fd90>] bdev_read_page+0x50/0x60
[<ffffffff812972f0>] do_mpage_readpage+0x510/0x770
[<ffffffff8128fd20>] ? I_BDEV+0x20/0x20
[<ffffffff811d86dc>] ? lru_cache_add+0x1c/0x50
[<ffffffff81297657>] mpage_readpages+0x107/0x170
[<ffffffff8128fd20>] ? I_BDEV+0x20/0x20
[<ffffffff8128fd20>] ? I_BDEV+0x20/0x20
[<ffffffff8129058d>] blkdev_readpages+0x1d/0x20
[<ffffffff811d615f>] __do_page_cache_readahead+0x28f/0x310
[<ffffffff811d6039>] ? __do_page_cache_readahead+0x169/0x310
[<ffffffff811c5abd>] ? pagecache_get_page+0x2d/0x1d0
[<ffffffff811c76f6>] filemap_fault+0x396/0x530
[<ffffffff811f816e>] __do_fault+0x4e/0xf0
[<ffffffff811fce7d>] handle_mm_fault+0x11bd/0x1b50
Cc: <stable@vger.kernel.org>
Cc: Jens Axboe <axboe@fb.com>
Cc: Alexander Viro <viro@zeniv.linux.org.uk>
Reported-by: kbuild test robot <lkp@intel.com>
Acked-by: Matthew Wilcox <willy@linux.intel.com>
[willy: symmetry fixups]
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
2015-11-19 13:47:10 -08:00
..
2015-02-12 14:13:23 -08:00
2015-10-21 14:43:44 -06:00
2015-11-06 17:50:42 -08:00
2015-11-05 14:51:32 -08:00
2015-11-11 09:36:57 -07:00
2015-05-05 13:40:42 -06:00
2015-08-15 09:45:21 -06:00
2015-10-21 14:43:45 -06:00
2015-11-06 17:50:42 -08:00
2014-06-03 12:57:53 -07:00
2015-10-28 09:12:58 +09:00
2015-09-11 09:03:50 -06:00
2015-10-21 15:00:51 -06:00
2014-05-28 10:15:41 -06:00
2015-09-29 11:32:50 -06:00
2015-11-07 10:40:47 -07:00
2015-11-06 17:50:42 -08:00
2015-10-01 10:10:57 +02:00
2015-11-11 09:36:56 -07:00
2015-11-11 09:36:56 -07:00
2015-09-02 13:10:25 -07:00
2014-04-09 21:54:06 -06:00
2015-11-07 10:40:47 -07:00
2015-01-23 14:15:46 -07:00
2015-09-18 11:56:28 -04:00
2015-01-08 08:59:01 -07:00
2015-11-19 13:47:10 -08:00
2015-09-19 18:57:09 -07:00
2012-12-06 14:33:02 +01:00
2015-02-04 09:57:52 -07:00
2015-09-18 11:56:28 -04:00
2014-01-21 20:18:26 -08:00
2014-09-08 10:00:35 -06:00
2014-02-24 14:46:32 -08:00
2015-10-21 15:00:54 -06:00
2015-10-21 14:42:42 -06:00
2015-10-21 14:46:56 -06:00
2015-11-06 17:50:42 -08:00
2014-09-27 09:14:59 -06:00
2012-03-06 21:27:21 +01:00
2014-09-27 09:14:59 -06:00
2013-07-03 13:25:24 +02:00
2015-10-21 14:42:42 -06:00
2015-11-06 17:50:42 -08:00
2015-10-21 14:42:38 -06:00