[PATCH 4/7] ARM: oprofile: Move non-ARM code into separate init/exit

Robert Richter robert.richter at amd.com
Wed Oct 6 10:59:03 EDT 2010


On 06.10.10 10:53:11, Paul Mundt wrote:
> On Wed, Oct 06, 2010 at 04:49:21PM +0200, Robert Richter wrote:
> > On 06.10.10 15:33:09, Robert Richter wrote:
> > > On 04.10.10 16:44:22, Matt Fleming wrote:
> > > > -void __exit oprofile_arch_exit(void)
> > > > +int __init oprofile_arch_init(struct oprofile_operations *ops)
> > > > +{
> > > 
> > > We should do here a:
> > > 
> > > 	memset(ops, 0, sizeof(*ops));
> > 
> > Matt,
> > 
> > an alternative would be to move this to oprofile_perf_init() and
> > modify ops->backtrace afterwards, but then we will lose the function's
> > tail call. Not sure that is better. Paul, what do you think?
> > 
> I'm a bit confused as to why we just don't do:
> 
> ---
> 
> diff --git a/drivers/oprofile/oprof.c b/drivers/oprofile/oprof.c
> index b336cd9..76d97a5 100644
> --- a/drivers/oprofile/oprof.c
> +++ b/drivers/oprofile/oprof.c
> @@ -252,6 +252,8 @@ static int __init oprofile_init(void)
>  {
>  	int err;
>  
> +	memset(&oprofile_ops, 0, sizeof(struct oprofile_operations));
> +

Yes, this looks much better. Thanks Paul.

-Robert

>  	err = oprofile_arch_init(&oprofile_ops);
>  	if (err < 0 || timer) {
>  		printk(KERN_INFO "oprofile: using timer interrupt.\n");
> 

-- 
Advanced Micro Devices, Inc.
Operating System Research Center




More information about the linux-arm-kernel mailing list