Martin Schwidefsky
0d01792300
[S390] pud_present/pmd_present bug.
...
Git commit 3610cce87af0693603db171d5b6f6735f5e3dc5b (yeah my own :-/)
introduced a bug in regard to pud/pmd table entries.
If the address of the page table refered to by a pud/pmd value happens
to have zeroes in the lower 32 bits, pud_present and pmd_present return
false. The obvious effect is that this triggers the BUG_ON in exit_mmap
because some ptes will not get released on process end. Worse is that
the next fault for memory covered by that pud/pmd will allocate another
pmd/pte table and populate the pud/pmd entry. The old page table
entries hanging below this entry are lost!
The fix is simple, properly check against 0. The check is added for
pud_none/pmd_none as well even if these two functions work because
the invalid bit is in the lower 32 bits.
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
2007-12-17 16:25:56 +01:00
..
2007-07-19 10:04:45 -07:00
2006-09-28 16:56:43 +02:00
2007-08-22 13:51:49 +02:00
2005-09-07 16:57:21 -07:00
2007-10-19 11:53:41 -07:00
2007-08-01 20:45:38 -07:00
2007-03-05 23:35:50 +01:00
2006-09-28 16:56:43 +02:00
2007-10-12 16:13:07 +02:00
2006-12-13 09:27:08 -08:00
2007-10-12 16:13:01 +02:00
2007-10-12 16:12:59 +02:00
2007-03-26 20:43:46 +02:00
2007-04-27 16:01:39 +02:00
2007-10-12 16:12:59 +02:00
2007-10-12 16:12:59 +02:00
2007-07-16 09:05:48 -07:00
2006-12-04 15:40:30 +01:00
2007-10-22 12:52:47 +02:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2006-12-08 15:54:15 +01:00
2006-09-16 12:54:31 -07:00
2005-04-16 15:20:36 -07:00
2006-12-01 14:52:01 -08:00
2007-08-22 13:51:47 +02:00
2006-09-28 16:55:39 +02:00
2006-09-20 15:58:51 +02:00
2006-09-28 16:56:43 +02:00
2007-05-04 18:48:35 +02:00
2005-07-26 14:35:41 -07:00
2005-04-16 15:20:36 -07:00
2007-02-05 21:18:19 +01:00
2005-04-16 15:20:36 -07:00
2007-07-17 10:23:11 -07:00
2005-09-07 16:57:38 -07:00
2007-01-09 10:18:50 +01:00
2007-02-05 21:18:19 +01:00
2006-04-26 12:56:16 +01:00
2007-02-12 15:49:57 +01:00
2006-01-10 08:01:34 -08:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2007-05-10 15:45:52 +02:00
2006-10-06 16:38:35 +02:00
2006-09-29 09:18:05 -07:00
2006-09-28 16:56:43 +02:00
2006-09-24 22:07:25 +01:00
2007-10-16 09:42:50 -07:00
2007-05-08 11:15:07 -07:00
2005-04-16 15:20:36 -07:00
2007-10-16 09:43:10 -07:00
2005-04-16 15:20:36 -07:00
2007-02-21 10:55:55 +01:00
2007-05-04 18:48:35 +02:00
2005-04-16 15:20:36 -07:00
2006-02-15 15:32:22 -08:00
2007-10-22 12:52:49 +02:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2006-09-20 15:59:34 +02:00
2005-04-16 15:20:36 -07:00
2006-01-09 15:59:19 -08:00
2005-04-16 15:20:36 -07:00
2007-10-22 12:52:49 +02:00
2007-05-10 15:46:08 +02:00
2005-04-16 15:20:36 -07:00
2007-07-19 10:04:44 -07:00
2007-10-22 12:52:49 +02:00
2007-12-17 16:25:56 +01:00
2007-05-11 08:29:34 -07:00
2007-01-11 18:18:22 -08:00
2007-10-22 12:52:49 +02:00
2007-06-19 13:10:20 +02:00
2007-05-08 01:16:23 -04:00
2005-04-16 15:20:36 -07:00
2007-02-05 21:18:37 +01:00
2005-04-16 15:20:36 -07:00
2006-09-28 16:56:43 +02:00
2007-10-12 16:13:07 +02:00
2006-01-14 18:27:10 -08:00
2007-10-22 21:20:03 +02:00
2007-07-10 11:24:43 +02:00
2007-02-21 10:55:37 +01:00
2005-04-16 15:20:36 -07:00
2007-10-17 08:42:47 -07:00
2005-04-16 15:20:36 -07:00
2007-04-27 16:01:44 +02:00
2007-07-10 11:24:47 +02:00
2007-07-10 11:24:47 +02:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2006-01-14 18:27:08 -08:00
2005-05-01 08:59:08 -07:00
2006-07-02 13:58:48 -07:00
2006-09-28 16:56:43 +02:00
2007-07-27 12:29:17 +02:00
2007-04-25 22:24:21 -07:00
2007-04-25 22:24:04 -07:00
2006-10-01 00:39:22 -07:00
2006-10-04 20:02:12 +02:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2006-09-28 16:56:43 +02:00
2005-04-16 15:20:36 -07:00
2007-11-20 11:13:45 +01:00
2007-02-05 21:18:26 +01:00
2007-07-10 17:51:13 -07:00
2007-02-11 10:51:26 -08:00
2006-06-29 15:02:47 +02:00
2007-02-05 21:16:47 +01:00
2007-02-05 21:18:22 +01:00
2007-10-22 12:52:49 +02:00
2007-10-22 12:52:49 +02:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2007-10-17 08:42:53 -07:00
2007-02-05 21:18:17 +01:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2007-07-27 12:29:19 +02:00
2005-06-04 17:13:00 -07:00
2006-05-04 01:18:33 +01:00
2005-04-16 15:20:36 -07:00
2007-10-12 16:13:04 +02:00