Messages in this thread | | | Date | Fri, 1 Feb 2008 17:24:17 +0900 | From | "Kenichi Okuyama" <> | Subject | Re: [patch] NULL pointer check for vma->vm_mm |
| |
Dear Andrew, all,
First of all, thank you for looking at the patch.
I do agree that if mm is NULL, system will call Oops anyway. However, since it's oops, it does not stop the system, nor call kdump.
By calling BUG_ON(), it'll gives us chance of calling kdump at the first chance.
Since this is very rare to happen, I thought we should capture the incident whenever possible. On other hand, because BUG_ON macro is very light, I thought this will not harm any performance...
Forgive me in advance if I was wrong. I still think checking mm with BUG_ON here is better than counting on Oops.
best regards,
2008/2/1, Andrew Morton <akpm@linux-foundation.org>: > On Fri, 1 Feb 2008 16:39:07 +0900 "Kenichi Okuyama" <kenichi.okuyama@gmail.com> wrote: > > > Dear all, > > > > I was looking at the ./mm/rmap.c .. I found that, in function > > "page_referenced_one()", > > struct mm_struct *mm = vma->vm_mm; > > was being refererred without NULL check. > > > > Though I do agree that this works for most of the cases, I thought it > > is better to add > > BUG_ON() for case of mm being NULL. > > > > attached is the patch for this > > If we dereference NULL then the kernel will display basically the same > information as would a BUG, and it takes the same action. So adding a > BUG_ON here really doesn't gain us anything. > > Also, I think vma->vm_mm == 0 is not a valid state, so this just shouldn't > happen - the code is OK to assume that a particular invariant is being > honoured. > >
-- 奥山 健一(Kenichi Okuyama) [煤背会: No. 0x00000001] URL: http://www.dd.iij4u.or.jp/~okuyamak/ http://developer.osdl.jp/projects/doubt/
| |