[PATCH] Staging: nvec: Change container_of macro to an inline function.

From: Sumitra Sharma
Date: Sat Mar 18 2023 - 13:05:29 EST


The macro has the drawback that one cannot determine
what type it applies to by looking at the definition.
Hence this macro definition is not type-safe.

The inline function gives the same benefits as the
macro and only accepts the specific type of arguments.
Use static because the definition only requires it to be
visible in the current file.

Signed-off-by: Sumitra Sharma <sumitraartsy@xxxxxxxxx>
---
drivers/staging/nvec/nvec_paz00.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/staging/nvec/nvec_paz00.c b/drivers/staging/nvec/nvec_paz00.c
index 8b4da95081c8..9573ba762cdd 100644
--- a/drivers/staging/nvec/nvec_paz00.c
+++ b/drivers/staging/nvec/nvec_paz00.c
@@ -14,8 +14,10 @@
#include <linux/platform_device.h>
#include "nvec.h"

-#define to_nvec_led(led_cdev) \
- container_of(led_cdev, struct nvec_led, cdev)
+static inline struct nvec_led *to_nvec_led(struct led_classdev *led_cdev)
+{
+ return container_of(led_cdev, struct nvec_led, cdev);
+}

#define NVEC_LED_REQ {'\x0d', '\x10', '\x45', '\x10', '\x00'}

--
2.25.1