2010-07-24 05:04:44

by Gustavo Padovan

[permalink] [raw]
Subject: [PATCH 1/2] Bluetooth: Add __init and __exit marks to UART drivers

From: Gustavo F. Padovan <[email protected]>

Those marks are useful to save space in the binary and in the memory.

Signed-off-by: Gustavo F. Padovan <[email protected]>
---
drivers/bluetooth/hci_ath.c | 4 ++--
drivers/bluetooth/hci_bcsp.c | 4 ++--
drivers/bluetooth/hci_h4.c | 4 ++--
drivers/bluetooth/hci_ll.c | 4 ++--
4 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/drivers/bluetooth/hci_ath.c b/drivers/bluetooth/hci_ath.c
index 5ab258b..b941dd5 100644
--- a/drivers/bluetooth/hci_ath.c
+++ b/drivers/bluetooth/hci_ath.c
@@ -217,7 +217,7 @@ static struct hci_uart_proto athp = {
.flush = ath_flush,
};

-int ath_init(void)
+int __init ath_init(void)
{
int err = hci_uart_register_proto(&athp);

@@ -229,7 +229,7 @@ int ath_init(void)
return err;
}

-int ath_deinit(void)
+int __exit ath_deinit(void)
{
return hci_uart_unregister_proto(&athp);
}
diff --git a/drivers/bluetooth/hci_bcsp.c b/drivers/bluetooth/hci_bcsp.c
index 42d69d4..9c5b2dc 100644
--- a/drivers/bluetooth/hci_bcsp.c
+++ b/drivers/bluetooth/hci_bcsp.c
@@ -739,7 +739,7 @@ static struct hci_uart_proto bcsp = {
.flush = bcsp_flush
};

-int bcsp_init(void)
+int __init bcsp_init(void)
{
int err = hci_uart_register_proto(&bcsp);

@@ -751,7 +751,7 @@ int bcsp_init(void)
return err;
}

-int bcsp_deinit(void)
+int __exit bcsp_deinit(void)
{
return hci_uart_unregister_proto(&bcsp);
}
diff --git a/drivers/bluetooth/hci_h4.c b/drivers/bluetooth/hci_h4.c
index b2cf50e..7b8ad93 100644
--- a/drivers/bluetooth/hci_h4.c
+++ b/drivers/bluetooth/hci_h4.c
@@ -173,7 +173,7 @@ static struct hci_uart_proto h4p = {
.flush = h4_flush,
};

-int h4_init(void)
+int __init h4_init(void)
{
int err = hci_uart_register_proto(&h4p);

@@ -185,7 +185,7 @@ int h4_init(void)
return err;
}

-int h4_deinit(void)
+int __exit h4_deinit(void)
{
return hci_uart_unregister_proto(&h4p);
}
diff --git a/drivers/bluetooth/hci_ll.c b/drivers/bluetooth/hci_ll.c
index 5744aba..38595e7 100644
--- a/drivers/bluetooth/hci_ll.c
+++ b/drivers/bluetooth/hci_ll.c
@@ -517,7 +517,7 @@ static struct hci_uart_proto llp = {
.flush = ll_flush,
};

-int ll_init(void)
+int __init ll_init(void)
{
int err = hci_uart_register_proto(&llp);

@@ -529,7 +529,7 @@ int ll_init(void)
return err;
}

-int ll_deinit(void)
+int __exit ll_deinit(void)
{
return hci_uart_unregister_proto(&llp);
}
--
1.7.1.1


2010-07-31 23:10:06

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [PATCH] Bluetooth: Remove __exit from rfcomm_cleanup_ttys()

Hi Gustavo,

> rfcomm_cleanup_ttys() is also called from rfcomm_init(), so it can't have
> __exit.
>
> Reported-by: Mat Martineau <[email protected]>
> Signed-off-by: Gustavo F. Padovan <[email protected]>
> ---
> net/bluetooth/rfcomm/tty.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)

patch has been applied. Thanks.

Regards

Marcel



2010-07-31 22:57:05

by Gustavo Padovan

[permalink] [raw]
Subject: [PATCH] Bluetooth: Remove __exit from rfcomm_cleanup_ttys()

From: Gustavo F. Padovan <[email protected]>

rfcomm_cleanup_ttys() is also called from rfcomm_init(), so it can't have
__exit.

Reported-by: Mat Martineau <[email protected]>
Signed-off-by: Gustavo F. Padovan <[email protected]>
---
net/bluetooth/rfcomm/tty.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/net/bluetooth/rfcomm/tty.c b/net/bluetooth/rfcomm/tty.c
index 026205c..befc3a5 100644
--- a/net/bluetooth/rfcomm/tty.c
+++ b/net/bluetooth/rfcomm/tty.c
@@ -1183,7 +1183,7 @@ int __init rfcomm_init_ttys(void)
return 0;
}

-void __exit rfcomm_cleanup_ttys(void)
+void rfcomm_cleanup_ttys(void)
{
tty_unregister_driver(rfcomm_tty_driver);
put_tty_driver(rfcomm_tty_driver);
--
1.7.1.1

2010-07-30 20:39:47

by Mat Martineau

[permalink] [raw]
Subject: Re: [PATCH 2/2] Bluetooth: Add __init and __exit marks to RFCOMM


Gustavo -

On Sat, 24 Jul 2010, Gustavo F. Padovan wrote:

> From: Gustavo F. Padovan <[email protected]>
>
> Those annotation save memory and space on the binary. __init code is
> discarded just after execute and __exit code is discarded if the module is
> built into the kernel image or unload of modules is not allowed.
>
> Signed-off-by: Gustavo F. Padovan <[email protected]>
> ---
> net/bluetooth/rfcomm/sock.c | 2 +-
> net/bluetooth/rfcomm/tty.c | 4 ++--
> 2 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/net/bluetooth/rfcomm/sock.c b/net/bluetooth/rfcomm/sock.c
> index 43fbf6b..44a6232 100644
> --- a/net/bluetooth/rfcomm/sock.c
> +++ b/net/bluetooth/rfcomm/sock.c
> @@ -1152,7 +1152,7 @@ error:
> return err;
> }
>
> -void rfcomm_cleanup_sockets(void)
> +void __exit rfcomm_cleanup_sockets(void)
> {
> debugfs_remove(rfcomm_sock_debugfs);
>
> diff --git a/net/bluetooth/rfcomm/tty.c b/net/bluetooth/rfcomm/tty.c
> index 309b6c2..026205c 100644
> --- a/net/bluetooth/rfcomm/tty.c
> +++ b/net/bluetooth/rfcomm/tty.c
> @@ -1153,7 +1153,7 @@ static const struct tty_operations rfcomm_ops = {
> .tiocmset = rfcomm_tty_tiocmset,
> };
>
> -int rfcomm_init_ttys(void)
> +int __init rfcomm_init_ttys(void)
> {
> rfcomm_tty_driver = alloc_tty_driver(RFCOMM_TTY_PORTS);
> if (!rfcomm_tty_driver)
> @@ -1183,7 +1183,7 @@ int rfcomm_init_ttys(void)
> return 0;
> }
>
> -void rfcomm_cleanup_ttys(void)
> +void __exit rfcomm_cleanup_ttys(void)
> {
> tty_unregister_driver(rfcomm_tty_driver);
> put_tty_driver(rfcomm_tty_driver);

The change to rfcomm_cleanup_ttys() causes a warning:

WARNING: modpost: Found 1 section mismatch(es).

rfcomm_cleanup_ttys() is also called by rfcomm_init, so it should not
be marked with __exit.

--
Mat Martineau
Employee of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum

2010-07-27 19:37:19

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [PATCH 2/2] Bluetooth: Add __init and __exit marks to RFCOMM

Hi Gustavo,

> Those annotation save memory and space on the binary. __init code is
> discarded just after execute and __exit code is discarded if the module is
> built into the kernel image or unload of modules is not allowed.
>
> Signed-off-by: Gustavo F. Padovan <[email protected]>
> ---
> net/bluetooth/rfcomm/sock.c | 2 +-
> net/bluetooth/rfcomm/tty.c | 4 ++--
> 2 files changed, 3 insertions(+), 3 deletions(-)

patch has been applied. Thanks.

Regards

Marcel



2010-07-27 19:36:22

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [PATCH 1/2] Bluetooth: Add __init and __exit marks to UART drivers

Hi Gustavo,

> Those marks are useful to save space in the binary and in the memory.
>
> Signed-off-by: Gustavo F. Padovan <[email protected]>
> ---
> drivers/bluetooth/hci_ath.c | 4 ++--
> drivers/bluetooth/hci_bcsp.c | 4 ++--
> drivers/bluetooth/hci_h4.c | 4 ++--
> drivers/bluetooth/hci_ll.c | 4 ++--
> 4 files changed, 8 insertions(+), 8 deletions(-)

patch has been applied. Thanks.

Regards

Marcel



2010-07-24 05:04:45

by Gustavo Padovan

[permalink] [raw]
Subject: [PATCH 2/2] Bluetooth: Add __init and __exit marks to RFCOMM

From: Gustavo F. Padovan <[email protected]>

Those annotation save memory and space on the binary. __init code is
discarded just after execute and __exit code is discarded if the module is
built into the kernel image or unload of modules is not allowed.

Signed-off-by: Gustavo F. Padovan <[email protected]>
---
net/bluetooth/rfcomm/sock.c | 2 +-
net/bluetooth/rfcomm/tty.c | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/net/bluetooth/rfcomm/sock.c b/net/bluetooth/rfcomm/sock.c
index 43fbf6b..44a6232 100644
--- a/net/bluetooth/rfcomm/sock.c
+++ b/net/bluetooth/rfcomm/sock.c
@@ -1152,7 +1152,7 @@ error:
return err;
}

-void rfcomm_cleanup_sockets(void)
+void __exit rfcomm_cleanup_sockets(void)
{
debugfs_remove(rfcomm_sock_debugfs);

diff --git a/net/bluetooth/rfcomm/tty.c b/net/bluetooth/rfcomm/tty.c
index 309b6c2..026205c 100644
--- a/net/bluetooth/rfcomm/tty.c
+++ b/net/bluetooth/rfcomm/tty.c
@@ -1153,7 +1153,7 @@ static const struct tty_operations rfcomm_ops = {
.tiocmset = rfcomm_tty_tiocmset,
};

-int rfcomm_init_ttys(void)
+int __init rfcomm_init_ttys(void)
{
rfcomm_tty_driver = alloc_tty_driver(RFCOMM_TTY_PORTS);
if (!rfcomm_tty_driver)
@@ -1183,7 +1183,7 @@ int rfcomm_init_ttys(void)
return 0;
}

-void rfcomm_cleanup_ttys(void)
+void __exit rfcomm_cleanup_ttys(void)
{
tty_unregister_driver(rfcomm_tty_driver);
put_tty_driver(rfcomm_tty_driver);
--
1.7.1.1