# Re: \[PATCH\] gx1fb: Fix section mismatch derived from gx1fb\_driver variable

- From: Paul Mundt \<hidden\>
- Date: 2011-01-06 06:41:07 
- List: linux-fbdev
- Page: https://ratatoskr.run/linux-fbdev/2011/01/3662354
- Thread: https://ratatoskr.run/linux-fbdev/2011/01/3660843/t.md

```text
On Mon, Jan 03, 2011 at 02:31:29AM +0100, Sedat Dilek wrote:
> diff --git a/drivers/video/geode/gx1fb_core.c b/drivers/video/geode/gx1fb_core.c
> index c6b554f..9fdb115 100644
> --- a/drivers/video/geode/gx1fb_core.c
> +++ b/drivers/video/geode/gx1fb_core.c
> @@ -437,7 +437,7 @@ static struct pci_device_id gx1fb_id_table[] = {
>  
>  MODULE_DEVICE_TABLE(pci, gx1fb_id_table);
>  
> -static struct pci_driver gx1fb_driver = {
> +static struct pci_driver gx1fb_driver __refdata = {
>  	.name		= "gx1fb",
>  	.id_table	= gx1fb_id_table,
>  	.probe		= gx1fb_probe,

The problem seems to be because gx1fb_probe is annotated __init. In the
PCI case you want it to be __devinit, and you're also going to want to
annotate the remove function as __devexit and wrap it up with a
__devexit_p().
```
