2019-07-03 17:02:57

by Denis Efremov (Oracle)

[permalink] [raw]
Subject: [PATCH] drm/client: remove the exporting of drm_client_close

The function drm_client_close is declared as static and marked as
EXPORT_SYMBOL. It's a bit confusing for an internal function to be
exported. The area of visibility for such function is its .c file
and all other modules. Other *.c files of the same module can't use it,
despite all other modules can. Relying on the fact that this is the
internal function and it's not a crucial part of the API, the patch
removes the EXPORT_SYMBOL marking of drm_client_close.

Signed-off-by: Denis Efremov <[email protected]>
---
drivers/gpu/drm/drm_client.c | 1 -
1 file changed, 1 deletion(-)

diff --git a/drivers/gpu/drm/drm_client.c b/drivers/gpu/drm/drm_client.c
index f20d1dda3961..bffc87ac21c7 100644
--- a/drivers/gpu/drm/drm_client.c
+++ b/drivers/gpu/drm/drm_client.c
@@ -60,7 +60,6 @@ static void drm_client_close(struct drm_client_dev *client)

drm_file_free(client->file);
}
-EXPORT_SYMBOL(drm_client_close);

/**
* drm_client_init - Initialise a DRM client
--
2.21.0


2019-07-04 14:09:31

by Emil Velikov

[permalink] [raw]
Subject: Re: [PATCH] drm/client: remove the exporting of drm_client_close

On Thu, 4 Jul 2019 at 08:27, Denis Efremov <[email protected]> wrote:
>
> The function drm_client_close is declared as static and marked as
> EXPORT_SYMBOL. It's a bit confusing for an internal function to be
> exported. The area of visibility for such function is its .c file
> and all other modules. Other *.c files of the same module can't use it,
> despite all other modules can. Relying on the fact that this is the
> internal function and it's not a crucial part of the API, the patch
> removes the EXPORT_SYMBOL marking of drm_client_close.
>
> Signed-off-by: Denis Efremov <[email protected]>

Nice one:
Reviewed-by: Emil Velikov <[email protected]>

Out of curiosity: Did you use some tool to spot this?

-Emil

2019-07-04 16:35:21

by Denis Efremov (Oracle)

[permalink] [raw]
Subject: Re: [PATCH] drm/client: remove the exporting of drm_client_close

>
> Out of curiosity: Did you use some tool to spot this?
>

Just regular expressions:
https://github.com/evdenis/export_checking

But it's not very reliable because of false positives. I think I can try
to implement this kind of check as a part of modpost in addition to
CONFIG_DEBUG_SECTION_MISMATCH.

Denis

2019-07-09 09:44:04

by Noralf Trønnes

[permalink] [raw]
Subject: Re: [PATCH] drm/client: remove the exporting of drm_client_close



Den 04.07.2019 16.07, skrev Emil Velikov:
> On Thu, 4 Jul 2019 at 08:27, Denis Efremov <[email protected]> wrote:
>>
>> The function drm_client_close is declared as static and marked as
>> EXPORT_SYMBOL. It's a bit confusing for an internal function to be
>> exported. The area of visibility for such function is its .c file
>> and all other modules. Other *.c files of the same module can't use it,
>> despite all other modules can. Relying on the fact that this is the
>> internal function and it's not a crucial part of the API, the patch
>> removes the EXPORT_SYMBOL marking of drm_client_close.
>>
>> Signed-off-by: Denis Efremov <[email protected]>
>
> Nice one:
> Reviewed-by: Emil Velikov <[email protected]>

Thanks, applied.

Noralf.