linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Sam Ravnborg <sam@ravnborg.org>
To: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>
Cc: linux-kernel@vger.kernel.org
Subject: Re: wrong usage of __devexit_p and __exit_p
Date: Mon, 12 Jan 2009 22:21:09 +0100	[thread overview]
Message-ID: <20090112212109.GA15185@uranus.ravnborg.org> (raw)
In-Reply-To: <20090112205520.GA10870@pengutronix.de>

On Mon, Jan 12, 2009 at 09:55:20PM +0100, Uwe Kleine-König wrote:
> Hello Sam,
> 
> > > Did you check that this did not introduce any new Section mismatch warnings?
> > > We have seen several __exit annotated functions that was used from __init
> > > annotated code or even from normal code.
> > > Thus the __exit annotation was wrong in these cases.
> > I wrote in the commit logs, that the functions are only used as argument
> > to __{dev,}exit_p.  There are no direct calls. (IIRC there was only one
> > exception that I checked manually.)
> Actually the case I remembered here isn't part of the series.
>  
> > I think the __{dev,}exit_p wrappers are only used to define remove
> > callbacks, so there should be no harm.
> In the meantime I checked this:
> 
> 	~/gsrc/linux-2.6$ git diff-tree -r linus/master expsec-master | cut -f 2 | xargs grep -h -E '__(dev)?exit_p'
> 		.remove		= __devexit_p(s3c_adc_remove),
> 		.remove		= __devexit_p(s3c_pwm_remove),
> 		.remove =	__devexit_p(virtblk_remove),
> 		.remove =	__devexit_p(virtrng_remove),
> 		.remove = __devexit_p(stli_pciremove)
> 		.remove   = __devexit_p(hifn_remove),
> 		.remove = __devexit_p(mpc85xx_pci_err_remove),
> 		.remove = __devexit_p(mv64x60_pci_err_remove),
> 		.remove		= __devexit_p(max7301_remove),
> 		.remove		= __devexit_p(bbc_remove),
> 		.remove		= __devexit_p(grover_remove),
> 		.remove		= __exit_p(pxa_camera_remove),
> 		.remove		= __devexit_p(asic3_remove),
> 		.remove   = __devexit_p(ilo_remove),
> 		.remove = __exit_p(mxcnd_remove),
> 		.remove =	__devexit_p(virtnet_remove),
> 		.remove		= __devexit_p(atp870u_remove),
> 		.remove		= __devexit_p(megaraid_detach_one),
> 		.remove		= __devexit_p(stex_remove),
> 		.remove		= __devexit_p(jsm_remove_one),
> 		.remove	= __devexit_p(sc26xx_driver_remove),
> 		.remove =	__devexit_p(spidev_remove),
> 		.remove	= __devexit_p(vhci_hcd_remove),
> 		.remove =	__devexit_p(virtballoon_remove),
> 
> So in the patched files __(dev)?exit_p is only used to fill struct
> members.  Provided this is the only usage of the respective
> functions---and I checked that---it doesn't make sense that they don't
> live in .devexit.text (or .exit.text respectively).
> 
> Does it make sence for you, too?

Yes - if I understood you correct.

You already convinced me with your first mail that you had checked
that the functions was not used for anything else then the exit path.

	Sam

  reply	other threads:[~2009-01-12 21:19 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-01-12 13:50 wrong usage of __devexit_p and __exit_p Uwe Kleine-König
2009-01-12 13:52 ` [PATCH] move asic3_remove to .devexit.text Uwe Kleine-König
2009-01-12 13:52 ` [PATCH] move bbc_remove " Uwe Kleine-König
2009-01-12 13:52 ` [PATCH] move grover_remove " Uwe Kleine-König
2009-01-12 13:52 ` [PATCH] move hifn_remove " Uwe Kleine-König
2009-01-12 13:52 ` [PATCH] move ilo_remove " Uwe Kleine-König
2009-01-12 13:52 ` [PATCH] move jsm_remove_one " Uwe Kleine-König
2009-01-12 13:52 ` [PATCH] move max7301_remove " Uwe Kleine-König
2009-01-12 13:52 ` [PATCH] move megaraid_detach_one " Uwe Kleine-König
2009-01-12 13:52 ` [PATCH] move mpc85xx_pci_err_remove " Uwe Kleine-König
2009-01-12 13:52 ` [PATCH] move mv64x60_pci_err_remove " Uwe Kleine-König
2009-01-12 13:52 ` [PATCH] move mxcnd_remove to .exit.text Uwe Kleine-König
2009-01-12 13:52 ` [PATCH] move pxa_camera_remove " Uwe Kleine-König
2009-01-12 13:52 ` [PATCH] move s3c_adc_remove to .devexit.text Uwe Kleine-König
2009-01-12 13:52 ` [PATCH] move s3c_pwm_remove " Uwe Kleine-König
2009-01-12 13:52 ` [PATCH] move sc26xx_driver_remove " Uwe Kleine-König
2009-01-12 13:52 ` [PATCH] move spidev_remove " Uwe Kleine-König
2009-01-12 13:52 ` [PATCH] move stex_remove " Uwe Kleine-König
2009-01-12 13:52 ` [PATCH] move stli_pciremove " Uwe Kleine-König
2009-01-12 13:52 ` [PATCH] move vhci_hcd_remove " Uwe Kleine-König
2009-01-12 13:52 ` [PATCH] move virtballoon_remove " Uwe Kleine-König
2009-01-12 13:52 ` [PATCH] move virtblk_remove " Uwe Kleine-König
2009-01-12 13:52 ` [PATCH] move virtnet_remove " Uwe Kleine-König
2009-01-12 13:52 ` [PATCH] move virtrng_remove " Uwe Kleine-König
2009-01-12 14:14 ` wrong usage of __devexit_p and __exit_p Sam Ravnborg
2009-01-12 14:43   ` Uwe Kleine-König
2009-01-12 20:55     ` Uwe Kleine-König
2009-01-12 21:21       ` Sam Ravnborg [this message]
2009-01-12 22:15         ` Uwe Kleine-König
2009-01-13  5:37           ` Sam Ravnborg
2009-01-13 20:54             ` Uwe Kleine-König

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=20090112212109.GA15185@uranus.ravnborg.org \
    --to=sam@ravnborg.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=u.kleine-koenig@pengutronix.de \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).