linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: u.kleine-koenig@pengutronix.de (Uwe Kleine-König)
To: linux-arm-kernel@lists.infradead.org
Subject: [RFC] [PATCH] arm & sh: factorised duplicated clkdev.c
Date: Thu, 2 Sep 2010 07:46:30 +0200	[thread overview]
Message-ID: <20100902054630.GB14214@pengutronix.de> (raw)
In-Reply-To: <20100901231849.GB25860@n2100.arm.linux.org.uk>

On Thu, Sep 02, 2010 at 12:18:49AM +0100, Russell King - ARM Linux wrote:
> On Wed, Sep 01, 2010 at 05:01:12PM +0200, Uwe Kleine-K?nig wrote:
> > On Wed, Sep 01, 2010 at 01:18:46PM +0200, Jean-Christophe PLAGNIOL-VILLARD wrote:
> > > > >  
> > > > > -struct clk_lookup *clkdev_alloc(struct clk *clk, const char *con_id,
> > > > > -	const char *dev_fmt, ...)
> > > > > +struct clk_lookup * __init_refok
> > > > Why do you need __init_refok?  __init_refok is defined as follows in
> > > > include/linux/init.h:
> > > > 
> > > > 	/* compatibility defines */
> > > > 	#define __init_refok     __ref
> > > > 
> > > > So if really needed better use __ref.  Couldn't this be __init?  
> > > ok for __ref but __init_refok is more clear IMHO
> > For me it was not, because before your mail I didn't know __init_refok
> > so I had to look it up.
> > 
> > > and yes we need it as for early device we may use bootmem as slab allocators
> > > may no be availlable in some case
> > Yes I got that, but it doesn't explain why you need to mark your
> > function as __ref or why you cannot use __init.
> 
> You can't use __init for this because this function may be used for
> non-init code.
Hmmm, as I don't seem to be able to persude someone else to do the hard
work, I did it.  Here are the hard facts:

	- clkdev_alloc is exported
	- clkdev is called by clk_add_alias
	- clk_add_alias is exported
	- clkdev_alloc is called by impd1_probe
	  (arch/arm/mach-integrator/impd1.c)
	  Can be compiled as a module.
	- clk_add_alias is called from __init functions only in
		arch/arm/mach-davinci/dm355.c
		arch/arm/mach-davinci/dm365.c
		arch/arm/mach-davinci/dm644x.c
		arch/arm/mach-pxa/eseries.c
		arch/arm/mach-pxa/lubbock.c
		arch/arm/mach-pxa/tosa.c
		arch/sh/kernel/cpu/clock-cpg.c
	  All these cannot be compiled as a module.
	- clk_add_alias is called from non-__init functions that could
	  be __init:
		arch/arm/mach-omap1/board-nokia770.c
	  This cannot be compiled as a module.

So the actions needed before make clkdev_alloc and clk_add_alias __init are:

	- register the clocks for impd1 in machine code, not the driver
	- move hwa742_dev_init to .init.text
	- don't export clkdev_alloc and clk_add_alias

I guess the first is simple, the rest trivial, no?

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-K?nig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

  reply	other threads:[~2010-09-02  5:46 UTC|newest]

Thread overview: 59+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-08-31 11:16 [RFC] [PATCH] arm & sh: factorised duplicated clkdev.c Jean-Christophe PLAGNIOL-VILLARD
2010-09-01  9:12 ` Russell King - ARM Linux
2010-09-01 11:13   ` Jean-Christophe PLAGNIOL-VILLARD
2010-09-01 23:17     ` Russell King - ARM Linux
2010-09-02  2:37       ` Jean-Christophe PLAGNIOL-VILLARD
2010-09-02  2:42         ` Paul Mundt
2010-09-01  9:51 ` Uwe Kleine-König
2010-09-01 11:18   ` Jean-Christophe PLAGNIOL-VILLARD
2010-09-01 15:01     ` Uwe Kleine-König
2010-09-01 15:27       ` Jean-Christophe PLAGNIOL-VILLARD
2010-09-01 15:40         ` Uwe Kleine-König
2010-09-01 23:18       ` Russell King - ARM Linux
2010-09-02  5:46         ` Uwe Kleine-König [this message]
2010-09-02  6:17           ` [PATCH] ARM: omap1/nokia770: mark some functions __init Uwe Kleine-König
2010-09-02  8:03             ` [PATCH 1/5] ARM: omap/fb: move omap_init_fb to .init.text Uwe Kleine-König
2010-09-09  8:40               ` Tomi Valkeinen
2010-09-02  8:03             ` [PATCH 2/5] ARM: omap/fb: move omapfb_reserve_sram " Uwe Kleine-König
2010-09-02  8:03             ` [PATCH 3/5] ARM: omap/fb: move get_fbmem_region() " Uwe Kleine-König
2010-09-02  8:03             ` [PATCH 4/5] ARM: omap: move omap_get_config et al. " Uwe Kleine-König
2010-09-02  8:03             ` [PATCH 5/5] wip: ARM: omap: move omap_board_config_kernel to .init.data Uwe Kleine-König
2011-02-03  8:15             ` [PATCH] ARM: omap1/nokia770: mark some functions __init Uwe Kleine-König
2011-02-08  9:59               ` Uwe Kleine-König
2011-02-09 19:27                 ` Tony Lindgren
2011-02-09 20:40                   ` [PATCH 1/4] " Uwe Kleine-König
2011-02-09 20:40                   ` [PATCH 2/4] ARM: omap: move omap_get_config et al. to .init.text Uwe Kleine-König
2011-02-09 20:40                   ` [PATCH 3/4] ARM: omap: move omap_board_config_kernel to .init.data Uwe Kleine-König
2011-02-09 20:40                   ` [PATCH 4/4] wip: fix section mismatches in omap1_defconfig Uwe Kleine-König
2011-02-10  0:43                   ` [PATCH] ARM: omap1/nokia770: mark some functions __init Tony Lindgren
2010-09-02  8:45           ` [RFC] [PATCH] arm & sh: factorised duplicated clkdev.c Russell King - ARM Linux
2010-09-01 10:01 ` Russell King - ARM Linux
2010-09-01 11:12   ` Jean-Christophe PLAGNIOL-VILLARD
2010-09-02 12:48 ` [RFC] [PATCH v2] " Jean-Christophe PLAGNIOL-VILLARD
2010-09-02 13:06   ` Russell King - ARM Linux
2010-09-02 13:26   ` Uwe Kleine-König
2010-09-02 13:47     ` Russell King - ARM Linux
2010-09-02 13:55       ` Uwe Kleine-König
2010-09-02 13:39   ` [PATCH V3] " Jean-Christophe PLAGNIOL-VILLARD
2010-09-03 10:18     ` Magnus Damm
2010-09-03 10:32       ` Jean-Christophe PLAGNIOL-VILLARD
2010-09-03 18:23       ` Uwe Kleine-König
2010-09-03 18:43         ` [BUG?] rename patch accepted with --dry-run, rejected without (Re: [PATCH V3] arm & sh: factorised duplicated clkdev.c) Jonathan Nieder
2010-09-03 19:29           ` Russell King - ARM Linux
2010-09-03 19:33             ` Uwe Kleine-König
2010-09-03 19:45               ` Andreas Schwab
2010-09-04  0:03               ` Russell King - ARM Linux
2010-09-04 21:33                 ` [bug-patch] " Andreas Gruenbacher
2010-09-04 21:45                   ` Russell King - ARM Linux
2010-09-04 21:46                     ` Andreas Gruenbacher
2010-09-04 22:01                       ` Russell King - ARM Linux
2010-09-04 22:26                         ` Andreas Gruenbacher
2010-09-03 19:34             ` Matthieu Moy
2010-09-03 22:58           ` [bug-patch] " Andreas Gruenbacher
2010-09-03 23:32             ` Jonathan Nieder
2010-09-04 21:57               ` Andreas Gruenbacher
2010-09-04  3:21             ` Jean-Christophe PLAGNIOL-VILLARD
2010-09-09  9:53     ` [PATCH V3] arm & sh: factorised duplicated clkdev.c Jean-Christophe PLAGNIOL-VILLARD
2010-09-14  7:59       ` Paul Mundt
2010-09-15  5:51         ` Jean-Christophe PLAGNIOL-VILLARD
2010-10-04 19:46       ` Russell King - ARM Linux

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=20100902054630.GB14214@pengutronix.de \
    --to=u.kleine-koenig@pengutronix.de \
    --cc=linux-arm-kernel@lists.infradead.org \
    /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).