diff mbox series

bluetooth: hci_h5: avoid unused variable warnings

Message ID 20180813220419.4168133-1-arnd@arndb.de
State New
Headers show
Series bluetooth: hci_h5: avoid unused variable warnings | expand

Commit Message

Arnd Bergmann Aug. 13, 2018, 10:04 p.m. UTC
When CONFIG_BT_HCIUART_RTL is disabled, the hci_h5 driver produces a build
warning because of an incorrect set of #ifdef guards:

drivers/bluetooth/hci_h5.c:920:22: error: 'rtl_vnd' defined but not used [-Werror=unused-variable]

Replacing the #ifdef with an IS_ENABLED() check shuts up the error
and simplifies the logic.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>

---
 drivers/bluetooth/hci_h5.c | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)

-- 
2.18.0

Comments

Arnd Bergmann Aug. 14, 2018, 8:42 a.m. UTC | #1
On Tue, Aug 14, 2018 at 9:22 AM Hans de Goede <hdegoede@redhat.com> wrote:
>

> Hi Arnd,

>

> On 14-08-18 00:04, Arnd Bergmann wrote:

> > When CONFIG_BT_HCIUART_RTL is disabled, the hci_h5 driver produces a build

> > warning because of an incorrect set of #ifdef guards:

> >

> > drivers/bluetooth/hci_h5.c:920:22: error: 'rtl_vnd' defined but not used [-Werror=unused-variable]

> >

> > Replacing the #ifdef with an IS_ENABLED() check shuts up the error

> > and simplifies the logic.

> >

> > Signed-off-by: Arnd Bergmann <arnd@arndb.de>

>

> Hmm, so now you're counting on dead code elimination to remove

> references to unavailable symbols.


Generally depending on dead code elimination is very reliable, as this
is easy for gcc to get right. However, you are right that this is actually
an exception since the MODULE_DEVICE_TABLE() entry will keep
a reference around that prevents the compiler from eliminating it.

> I'm not sure I like this and

> since Marcel has also indicated the does not like this fix I

> believe we need another fix.

>

> I will write another fix for this.

>


Ok, thanks!

      Arnd
diff mbox series

Patch

diff --git a/drivers/bluetooth/hci_h5.c b/drivers/bluetooth/hci_h5.c
index 8eede1197cd2..b10e64ba0ff4 100644
--- a/drivers/bluetooth/hci_h5.c
+++ b/drivers/bluetooth/hci_h5.c
@@ -841,7 +841,6 @@  static void h5_serdev_remove(struct serdev_device *serdev)
 	hci_uart_unregister_device(&h5->serdev_hu);
 }
 
-#ifdef CONFIG_BT_HCIUART_RTL
 static int h5_btrtl_setup(struct h5 *h5)
 {
 	struct btrtl_device_info *btrtl_dev;
@@ -923,24 +922,21 @@  static struct h5_vnd rtl_vnd = {
 	.close		= h5_btrtl_close,
 	.acpi_gpio_map	= acpi_btrtl_gpios,
 };
-#endif
 
-#ifdef CONFIG_ACPI
 static const struct acpi_device_id h5_acpi_match[] = {
-#ifdef CONFIG_BT_HCIUART_RTL
 	{ "OBDA8723", (kernel_ulong_t)&rtl_vnd },
-#endif
 	{ },
 };
 MODULE_DEVICE_TABLE(acpi, h5_acpi_match);
-#endif
 
 static struct serdev_device_driver h5_serdev_driver = {
 	.probe = h5_serdev_probe,
 	.remove = h5_serdev_remove,
 	.driver = {
 		.name = "hci_uart_h5",
-		.acpi_match_table = ACPI_PTR(h5_acpi_match),
+		.acpi_match_table = (IS_ENABLED(CONFIG_BT_HCIUART_RTL) &&
+				     IS_ENABLED(CONFIG_ACPI)) ?
+					h5_acpi_match : 0,
 	},
 };