2022-07-25 08:14:22

by Javier Martinez Canillas

[permalink] [raw]
Subject: [PATCH] fbdev: Make registered_fb[] private to fbmem.c

From: Daniel Vetter <[email protected]>

No driver access this anymore, except for the olpc dcon fbdev driver but
that has been marked as broken anyways by commit de0952f267ff ("staging:
olpc_dcon: mark driver as broken").

Signed-off-by: Daniel Vetter <[email protected]>
Signed-off-by: Daniel Vetter <[email protected]>
Reviewed-by: Javier Martinez Canillas <[email protected]>
Signed-off-by: Javier Martinez Canillas <[email protected]>
---

drivers/video/fbdev/core/fbmem.c | 6 +++---
include/linux/fb.h | 6 ------
2 files changed, 3 insertions(+), 9 deletions(-)

diff --git a/drivers/video/fbdev/core/fbmem.c b/drivers/video/fbdev/core/fbmem.c
index 6ae1c5fa19f9..1e70d8c67653 100644
--- a/drivers/video/fbdev/core/fbmem.c
+++ b/drivers/video/fbdev/core/fbmem.c
@@ -51,10 +51,10 @@
static DEFINE_MUTEX(registration_lock);

struct fb_info *registered_fb[FB_MAX] __read_mostly;
-EXPORT_SYMBOL(registered_fb);
-
int num_registered_fb __read_mostly;
-EXPORT_SYMBOL(num_registered_fb);
+#define for_each_registered_fb(i) \
+ for (i = 0; i < FB_MAX; i++) \
+ if (!registered_fb[i]) {} else

bool fb_center_logo __read_mostly;

diff --git a/include/linux/fb.h b/include/linux/fb.h
index 453c3b2b6b8e..0aff76bcbb00 100644
--- a/include/linux/fb.h
+++ b/include/linux/fb.h
@@ -627,16 +627,10 @@ extern int fb_get_color_depth(struct fb_var_screeninfo *var,
extern int fb_get_options(const char *name, char **option);
extern int fb_new_modelist(struct fb_info *info);

-extern struct fb_info *registered_fb[FB_MAX];
-extern int num_registered_fb;
extern bool fb_center_logo;
extern int fb_logo_count;
extern struct class *fb_class;

-#define for_each_registered_fb(i) \
- for (i = 0; i < FB_MAX; i++) \
- if (!registered_fb[i]) {} else
-
static inline void lock_fb_info(struct fb_info *info)
{
mutex_lock(&info->lock);
--
2.37.1


2022-07-26 07:42:00

by Helge Deller

[permalink] [raw]
Subject: Re: [PATCH] fbdev: Make registered_fb[] private to fbmem.c

On 7/25/22 09:54, Javier Martinez Canillas wrote:
> From: Daniel Vetter <[email protected]>
>
> No driver access this anymore, except for the olpc dcon fbdev driver but
> that has been marked as broken anyways by commit de0952f267ff ("staging:
> olpc_dcon: mark driver as broken").
>
> Signed-off-by: Daniel Vetter <[email protected]>
> Signed-off-by: Daniel Vetter <[email protected]>
> Reviewed-by: Javier Martinez Canillas <[email protected]>
> Signed-off-by: Javier Martinez Canillas <[email protected]>

I've applied it to the fbdev git tree.

Thanks!
Helge

> ---
>
> drivers/video/fbdev/core/fbmem.c | 6 +++---
> include/linux/fb.h | 6 ------
> 2 files changed, 3 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/video/fbdev/core/fbmem.c b/drivers/video/fbdev/core/fbmem.c
> index 6ae1c5fa19f9..1e70d8c67653 100644
> --- a/drivers/video/fbdev/core/fbmem.c
> +++ b/drivers/video/fbdev/core/fbmem.c
> @@ -51,10 +51,10 @@
> static DEFINE_MUTEX(registration_lock);
>
> struct fb_info *registered_fb[FB_MAX] __read_mostly;
> -EXPORT_SYMBOL(registered_fb);
> -
> int num_registered_fb __read_mostly;
> -EXPORT_SYMBOL(num_registered_fb);
> +#define for_each_registered_fb(i) \
> + for (i = 0; i < FB_MAX; i++) \
> + if (!registered_fb[i]) {} else
>
> bool fb_center_logo __read_mostly;
>
> diff --git a/include/linux/fb.h b/include/linux/fb.h
> index 453c3b2b6b8e..0aff76bcbb00 100644
> --- a/include/linux/fb.h
> +++ b/include/linux/fb.h
> @@ -627,16 +627,10 @@ extern int fb_get_color_depth(struct fb_var_screeninfo *var,
> extern int fb_get_options(const char *name, char **option);
> extern int fb_new_modelist(struct fb_info *info);
>
> -extern struct fb_info *registered_fb[FB_MAX];
> -extern int num_registered_fb;
> extern bool fb_center_logo;
> extern int fb_logo_count;
> extern struct class *fb_class;
>
> -#define for_each_registered_fb(i) \
> - for (i = 0; i < FB_MAX; i++) \
> - if (!registered_fb[i]) {} else
> -
> static inline void lock_fb_info(struct fb_info *info)
> {
> mutex_lock(&info->lock);

2022-07-27 04:27:36

by Helge Deller

[permalink] [raw]
Subject: Re: [PATCH] fbdev: Make registered_fb[] private to fbmem.c

On 7/26/22 09:22, Helge Deller wrote:
> On 7/25/22 09:54, Javier Martinez Canillas wrote:
>> From: Daniel Vetter <[email protected]>
>>
>> No driver access this anymore, except for the olpc dcon fbdev driver but
>> that has been marked as broken anyways by commit de0952f267ff ("staging:
>> olpc_dcon: mark driver as broken").
>>
>> Signed-off-by: Daniel Vetter <[email protected]>
>> Signed-off-by: Daniel Vetter <[email protected]>
>> Reviewed-by: Javier Martinez Canillas <[email protected]>
>> Signed-off-by: Javier Martinez Canillas <[email protected]>
>
> I've applied it to the fbdev git tree.

I've dropped that patch for now from the fbdev git tree, since
it gave build errors [1] in for-next:

drivers/video/fbdev/simplefb.c:426:6: error: use of undeclared identifier 'num_registered_fb'; did you mean 'WB_registered'?
if (num_registered_fb > 0) {
^~~~~~~~~~~~~~~~~

Helge

[1] https://lore.kernel.org/all/[email protected]/


>>
>> drivers/video/fbdev/core/fbmem.c | 6 +++---
>> include/linux/fb.h | 6 ------
>> 2 files changed, 3 insertions(+), 9 deletions(-)
>>
>> diff --git a/drivers/video/fbdev/core/fbmem.c b/drivers/video/fbdev/core/fbmem.c
>> index 6ae1c5fa19f9..1e70d8c67653 100644
>> --- a/drivers/video/fbdev/core/fbmem.c
>> +++ b/drivers/video/fbdev/core/fbmem.c
>> @@ -51,10 +51,10 @@
>> static DEFINE_MUTEX(registration_lock);
>>
>> struct fb_info *registered_fb[FB_MAX] __read_mostly;
>> -EXPORT_SYMBOL(registered_fb);
>> -
>> int num_registered_fb __read_mostly;
>> -EXPORT_SYMBOL(num_registered_fb);
>> +#define for_each_registered_fb(i) \
>> + for (i = 0; i < FB_MAX; i++) \
>> + if (!registered_fb[i]) {} else
>>
>> bool fb_center_logo __read_mostly;
>>
>> diff --git a/include/linux/fb.h b/include/linux/fb.h
>> index 453c3b2b6b8e..0aff76bcbb00 100644
>> --- a/include/linux/fb.h
>> +++ b/include/linux/fb.h
>> @@ -627,16 +627,10 @@ extern int fb_get_color_depth(struct fb_var_screeninfo *var,
>> extern int fb_get_options(const char *name, char **option);
>> extern int fb_new_modelist(struct fb_info *info);
>>
>> -extern struct fb_info *registered_fb[FB_MAX];
>> -extern int num_registered_fb;
>> extern bool fb_center_logo;
>> extern int fb_logo_count;
>> extern struct class *fb_class;
>>
>> -#define for_each_registered_fb(i) \
>> - for (i = 0; i < FB_MAX; i++) \
>> - if (!registered_fb[i]) {} else
>> -
>> static inline void lock_fb_info(struct fb_info *info)
>> {
>> mutex_lock(&info->lock);
>

2022-07-27 09:08:00

by Thomas Zimmermann

[permalink] [raw]
Subject: Re: [PATCH] fbdev: Make registered_fb[] private to fbmem.c

Hi

Am 27.07.22 um 06:08 schrieb Helge Deller:
> On 7/26/22 09:22, Helge Deller wrote:
>> On 7/25/22 09:54, Javier Martinez Canillas wrote:
>>> From: Daniel Vetter <[email protected]>
>>>
>>> No driver access this anymore, except for the olpc dcon fbdev driver but
>>> that has been marked as broken anyways by commit de0952f267ff ("staging:
>>> olpc_dcon: mark driver as broken").
>>>
>>> Signed-off-by: Daniel Vetter <[email protected]>
>>> Signed-off-by: Daniel Vetter <[email protected]>
>>> Reviewed-by: Javier Martinez Canillas <[email protected]>
>>> Signed-off-by: Javier Martinez Canillas <[email protected]>
>>
>> I've applied it to the fbdev git tree.
>
> I've dropped that patch for now from the fbdev git tree, since
> it gave build errors [1] in for-next:
>
> drivers/video/fbdev/simplefb.c:426:6: error: use of undeclared identifier 'num_registered_fb'; did you mean 'WB_registered'?
> if (num_registered_fb > 0) {
> ^~~~~~~~~~~~~~~~~

I've added the patch to drm-misc-next. The issue has been fixed there.

Best regards
Thomas

>
> Helge
>
> [1] https://lore.kernel.org/all/[email protected]/
>
>
>>>
>>> drivers/video/fbdev/core/fbmem.c | 6 +++---
>>> include/linux/fb.h | 6 ------
>>> 2 files changed, 3 insertions(+), 9 deletions(-)
>>>
>>> diff --git a/drivers/video/fbdev/core/fbmem.c b/drivers/video/fbdev/core/fbmem.c
>>> index 6ae1c5fa19f9..1e70d8c67653 100644
>>> --- a/drivers/video/fbdev/core/fbmem.c
>>> +++ b/drivers/video/fbdev/core/fbmem.c
>>> @@ -51,10 +51,10 @@
>>> static DEFINE_MUTEX(registration_lock);
>>>
>>> struct fb_info *registered_fb[FB_MAX] __read_mostly;
>>> -EXPORT_SYMBOL(registered_fb);
>>> -
>>> int num_registered_fb __read_mostly;
>>> -EXPORT_SYMBOL(num_registered_fb);
>>> +#define for_each_registered_fb(i) \
>>> + for (i = 0; i < FB_MAX; i++) \
>>> + if (!registered_fb[i]) {} else
>>>
>>> bool fb_center_logo __read_mostly;
>>>
>>> diff --git a/include/linux/fb.h b/include/linux/fb.h
>>> index 453c3b2b6b8e..0aff76bcbb00 100644
>>> --- a/include/linux/fb.h
>>> +++ b/include/linux/fb.h
>>> @@ -627,16 +627,10 @@ extern int fb_get_color_depth(struct fb_var_screeninfo *var,
>>> extern int fb_get_options(const char *name, char **option);
>>> extern int fb_new_modelist(struct fb_info *info);
>>>
>>> -extern struct fb_info *registered_fb[FB_MAX];
>>> -extern int num_registered_fb;
>>> extern bool fb_center_logo;
>>> extern int fb_logo_count;
>>> extern struct class *fb_class;
>>>
>>> -#define for_each_registered_fb(i) \
>>> - for (i = 0; i < FB_MAX; i++) \
>>> - if (!registered_fb[i]) {} else
>>> -
>>> static inline void lock_fb_info(struct fb_info *info)
>>> {
>>> mutex_lock(&info->lock);
>>
>

--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Maxfeldstr. 5, 90409 Nürnberg, Germany
(HRB 36809, AG Nürnberg)
Geschäftsführer: Ivo Totev


Attachments:
OpenPGP_signature (855.00 B)
OpenPGP digital signature