From: Sam Ravnborg <[EMAIL PROTECTED]>
Date: Tue, 22 Jan 2008 06:14:01 +0100

> In eg. psycho_pbm_init() we have:
>       pbm->scan_bus = psycho_scan_bus;
> 
> I found only one usage of pbm->scan_bus:
> static void __init pci_scan_each_controller_bus(void)
> {
>       struct pci_pbm_info *pbm;
> 
>       for (pbm = pci_pbm_root; pbm; pbm = pbm->next)
>               pbm->scan_bus(pbm);
> }
> 
> This function is marked __init so it looks OK from this suage to
> annotate the functions __init.

Ok, we've established that you and I know it's fine.  Great :-)

I was more concerned with the larger question that contexts like this,
assignment of __init function pointers to dynamic data structure
members, is not checked.

The checker has no way to make sure that pbm->scan_bus() is only
made in __init contexts, even though we can plainly see that is
the case here.

What would be really clever would be a way to mark datastructure
members as "this is a pointer to an __init function".
-
To unsubscribe from this list: send the line "unsubscribe sparclinux" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to