From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: Neil Horman <nhorman@tuxdriver.com>
Cc: kernel-janitors@lists.osdl.org, kjhall@us.ibm.com, akpm@osdl.org,
maxk@qualcomm.com, linux-kernel@vger.kernel.org
Subject: Re: [KJ] [PATCH] Correct misc_register return code handling
Date: Tue, 24 Oct 2006 22:42:42 +0000 [thread overview]
Message-ID: <1161729762.10524.660.camel@localhost.localdomain> (raw)
In-Reply-To: <20061024125306.GA1608@hmsreliant.homelinux.net>
On Tue, 2006-10-24 at 08:53 -0400, Neil Horman wrote:
> On Tue, Oct 24, 2006 at 01:34:34PM +1000, Benjamin Herrenschmidt wrote:
> > On Mon, 2006-10-23 at 13:19 -0400, Neil Horman wrote:
> > > Hey All-
> > > Janitor patch to clean up return code handling and exit from failed
> > > calls to misc_register accross several modules.
> >
> > The patch doesn't match the description... What are those INIT_LIST_HEAD
> > things ? Is this something I've missed or is this a new requirement for
> > all misc devices ? Can't it be statically initialized instead ?
> >
>
> The INIT_LIST_HEAD is there to prevent a potential oops on module removal.
> misc_register, if it fails, leaves miscdevice.list unchanged. That means its
> next and prev pointers contain NULL or garbage, when both pointers should contain
> &miscdevice.list. If we don't do that, then there is a chance we will oops on
> module removal when we do a list_del in misc_deregister on the moudule_exit
> routine. I could have done this statically, but I thought it looked cleaner to
> do it with the macro in the code.
Hrm... I see, but I still for some reason don't like it that much.. I'd
rather have misc_register() do the initialisation unconditionally before
it can fail, don't you think ?
We would theorically have a similar problem with any driver that does
xxxx_register(&static_struct)
and
xxxx_unregister(&static_struct)
(pci, usb, etc...)
As long as there are list heads involved. I think the proper solution
here is to have either the unregister be smart and test for NULL/NULL or
the register initialize those fields before it has a chance to fail.
Ben.
_______________________________________________
Kernel-janitors mailing list
Kernel-janitors@lists.osdl.org
https://lists.osdl.org/mailman/listinfo/kernel-janitors
WARNING: multiple messages have this Message-ID (diff)
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: Neil Horman <nhorman@tuxdriver.com>
Cc: kernel-janitors@lists.osdl.org, kjhall@us.ibm.com, akpm@osdl.org,
maxk@qualcomm.com, linux-kernel@vger.kernel.org
Subject: Re: [KJ][PATCH] Correct misc_register return code handling in several drivers
Date: Wed, 25 Oct 2006 08:42:42 +1000 [thread overview]
Message-ID: <1161729762.10524.660.camel@localhost.localdomain> (raw)
In-Reply-To: <20061024125306.GA1608@hmsreliant.homelinux.net>
On Tue, 2006-10-24 at 08:53 -0400, Neil Horman wrote:
> On Tue, Oct 24, 2006 at 01:34:34PM +1000, Benjamin Herrenschmidt wrote:
> > On Mon, 2006-10-23 at 13:19 -0400, Neil Horman wrote:
> > > Hey All-
> > > Janitor patch to clean up return code handling and exit from failed
> > > calls to misc_register accross several modules.
> >
> > The patch doesn't match the description... What are those INIT_LIST_HEAD
> > things ? Is this something I've missed or is this a new requirement for
> > all misc devices ? Can't it be statically initialized instead ?
> >
>
> The INIT_LIST_HEAD is there to prevent a potential oops on module removal.
> misc_register, if it fails, leaves miscdevice.list unchanged. That means its
> next and prev pointers contain NULL or garbage, when both pointers should contain
> &miscdevice.list. If we don't do that, then there is a chance we will oops on
> module removal when we do a list_del in misc_deregister on the moudule_exit
> routine. I could have done this statically, but I thought it looked cleaner to
> do it with the macro in the code.
Hrm... I see, but I still for some reason don't like it that much.. I'd
rather have misc_register() do the initialisation unconditionally before
it can fail, don't you think ?
We would theorically have a similar problem with any driver that does
xxxx_register(&static_struct)
and
xxxx_unregister(&static_struct)
(pci, usb, etc...)
As long as there are list heads involved. I think the proper solution
here is to have either the unregister be smart and test for NULL/NULL or
the register initialize those fields before it has a chance to fail.
Ben.
next prev parent reply other threads:[~2006-10-24 22:42 UTC|newest]
Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-10-23 17:19 [KJ] [PATCH] Correct misc_register return code handling in several Neil Horman
2006-10-23 17:19 ` [KJ][PATCH] Correct misc_register return code handling in several drivers Neil Horman
2006-10-23 17:39 ` [KJ] [PATCH] Correct misc_register return code handling Alan Cox
2006-10-23 17:39 ` [KJ][PATCH] Correct misc_register return code handling in several drivers Alan Cox
2006-10-23 17:54 ` [KJ] [PATCH] Correct misc_register return code handling in Neil Horman
2006-10-23 17:54 ` [KJ][PATCH] Correct misc_register return code handling in several drivers Neil Horman
2006-10-23 18:23 ` [KJ] [PATCH] Correct misc_register return code handling Kylene Jo Hall
2006-10-23 18:23 ` [KJ][PATCH] Correct misc_register return code handling in several drivers Kylene Jo Hall
2006-10-23 19:18 ` [KJ] [PATCH] Correct misc_register return code handling Alan Cox
2006-10-23 19:18 ` [KJ][PATCH] Correct misc_register return code handling in several drivers Alan Cox
2006-10-23 18:01 ` [KJ] [PATCH] Correct misc_register return code handling in Dan Carpenter
2006-10-23 18:01 ` [KJ] [PATCH] Correct misc_register return code handling in several drivers Dan Carpenter
2006-10-23 18:13 ` [KJ] [PATCH] Correct misc_register return code handling in Neil Horman
2006-10-23 18:13 ` [KJ] [PATCH] Correct misc_register return code handling in several drivers Neil Horman
2006-10-23 18:32 ` [KJ] [PATCH] Correct misc_register return code handling in Dan Carpenter
2006-10-23 18:32 ` [KJ] [PATCH] Correct misc_register return code handling in several drivers Dan Carpenter
2006-10-23 18:44 ` [KJ] [PATCH] Correct misc_register return code handling in Neil Horman
2006-10-23 18:44 ` [KJ] [PATCH] Correct misc_register return code handling in several drivers Neil Horman
2006-10-23 19:42 ` [KJ] [PATCH] Correct misc_register return code handling in Håkon Løvdal
2006-10-24 3:34 ` [KJ] [PATCH] Correct misc_register return code handling Benjamin Herrenschmidt
2006-10-24 3:34 ` [KJ][PATCH] Correct misc_register return code handling in several drivers Benjamin Herrenschmidt
2006-10-24 12:53 ` [KJ] [PATCH] Correct misc_register return code handling in Neil Horman
2006-10-24 12:53 ` [KJ][PATCH] Correct misc_register return code handling in several drivers Neil Horman
2006-10-24 13:24 ` [KJ] [PATCH] Correct misc_register return code handling in Matthew Wilcox
2006-10-24 13:24 ` [KJ] [PATCH] Correct misc_register return code handling in several drivers Matthew Wilcox
2006-10-24 15:07 ` [KJ] [PATCH] Correct misc_register return code handling in Neil Horman
2006-10-24 15:07 ` [KJ] [PATCH] Correct misc_register return code handling in several drivers Neil Horman
2006-10-24 22:42 ` Benjamin Herrenschmidt [this message]
2006-10-24 22:42 ` [KJ][PATCH] " Benjamin Herrenschmidt
2006-10-25 13:17 ` [KJ] [PATCH] Correct misc_register return code handling in Neil Horman
2006-10-25 13:17 ` [KJ][PATCH] Correct misc_register return code handling in several drivers Neil Horman
2006-11-01 13:56 ` [KJ] [PATCH] Correct misc_register return code handling in Neil Horman
2006-11-01 13:56 ` [KJ][PATCH] Correct misc_register return code handling in several drivers Neil Horman
2006-11-01 23:55 ` [KJ] [PATCH] Correct misc_register return code handling in Andrew Morton
2006-11-01 23:55 ` [KJ][PATCH] Correct misc_register return code handling in several drivers Andrew Morton
2006-11-02 14:21 ` [KJ] [PATCH] Correct misc_register return code handling in Neil Horman
2006-11-02 14:21 ` [KJ][PATCH] Correct misc_register return code handling in several drivers Neil Horman
2006-11-02 0:05 ` [KJ] [PATCH] Correct misc_register return code handling in Jesper Juhl
2006-11-02 0:05 ` [KJ][PATCH] Correct misc_register return code handling in several drivers Jesper Juhl
2006-11-02 0:11 ` [KJ] [PATCH] Correct misc_register return code handling in Randy Dunlap
2006-11-02 0:11 ` [KJ][PATCH] Correct misc_register return code handling in several drivers Randy Dunlap
2006-11-02 0:24 ` [KJ] [PATCH] Correct misc_register return code handling in Jesper Juhl
2006-11-02 0:24 ` [KJ][PATCH] Correct misc_register return code handling in several drivers Jesper Juhl
2006-11-02 0:27 ` [KJ] [PATCH] Correct misc_register return code handling in Andrew Morton
2006-11-02 0:27 ` [KJ][PATCH] Correct misc_register return code handling in several drivers Andrew Morton
2006-11-02 0:44 ` [KJ] [PATCH] Correct misc_register return code handling in Jesper Juhl
2006-11-02 0:44 ` [KJ][PATCH] Correct misc_register return code handling in several drivers Jesper Juhl
2006-11-02 1:12 ` [KJ] [PATCH] Correct misc_register return code handling in Randy Dunlap
2006-11-02 1:12 ` [KJ][PATCH] Correct misc_register return code handling in several drivers Randy Dunlap
2006-11-02 1:23 ` [KJ] [PATCH] Correct misc_register return code handling in Jesper Juhl
2006-11-02 1:23 ` [KJ][PATCH] Correct misc_register return code handling in several drivers Jesper Juhl
2006-11-02 1:22 ` [KJ] [PATCH] Correct misc_register return code handling in Randy Dunlap
2006-11-02 1:22 ` [KJ][PATCH] Correct misc_register return code handling in several drivers Randy Dunlap
2006-11-15 0:04 ` [KJ] [PATCH] Correct misc_register return code handling in Randy Dunlap
2006-11-15 0:04 ` [KJ][PATCH] Correct misc_register return code handling in several drivers Randy Dunlap
2006-11-15 9:05 ` [KJ] [PATCH] Correct misc_register return code handling in Jesper Juhl
2006-11-15 9:05 ` [KJ][PATCH] Correct misc_register return code handling in several drivers Jesper Juhl
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=1161729762.10524.660.camel@localhost.localdomain \
--to=benh@kernel.crashing.org \
--cc=akpm@osdl.org \
--cc=kernel-janitors@lists.osdl.org \
--cc=kjhall@us.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=maxk@qualcomm.com \
--cc=nhorman@tuxdriver.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.