Skip to contentSkip to conversation

staging: most: dim2: replace macro with static inline function

PATCH Superseded Ethan Tidmore 2 participants 2 messages Jan 23

Subsystems (2)

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 staging: most: dim2: replace macro with static inline function

Replace unsafe macro with static inline function to avoid side effects.

---
 drivers/staging/most/dim2/dim2.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)
drivers/staging/most/dim2/dim2.c +7 -5
index dad2abe6c0c9..a075a2df349e 100644
@@ -113,10 +113,12 @@ static inline struct dim2_hdm *iface_to_hdm(struct most_interface *iface)
 	return container_of(iface, struct dim2_hdm, most_iface);
 }
 
-/* Macro to identify a network status message */
-#define PACKET_IS_NET_INFO(p)  \
-	(((p)[1] == 0x18) && ((p)[2] == 0x05) && ((p)[3] == 0x0C) && \
-	 ((p)[13] == 0x3C) && ((p)[14] == 0x00) && ((p)[15] == 0x0A))
+/* Identify a network status message */
+static inline bool packet_is_net_info(const u8 *p)
+{
+	return p[1] == 0x18 && p[2] == 0x05 && p[3] == 0x0C &&
+		p[13] == 0x3C && p[14] == 0x00 && p[15] == 0x0A;
+}
 
 static ssize_t state_show(struct device *dev, struct device_attribute *attr,
 			  char *buf)
@@ -304,7 +306,7 @@ static void service_done_flag(struct dim2_hdm *dev, int ch_idx)
 
 		if (hdm_ch->data_type == MOST_CH_ASYNC &&
 		    hdm_ch->direction == MOST_CH_RX &&
-		    PACKET_IS_NET_INFO(data)) {
+		    packet_is_net_info(data)) {
 			retrieve_netinfo(dev, mbo);
 
 			spin_lock_irqsave(&dim_lock, flags);
Signature · 1 line
2.52.0
#1 lore raw
Quoted 12 lines · Ethan Tidmore

Replace unsafe macro with static inline function to avoid side effects.

---
 drivers/staging/most/dim2/dim2.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)
drivers/staging/most/dim2/dim2.c +0 -0
index dad2abe6c0c9..a075a2df349e 100644

drivers/staging/most/dim2/dim2.c static inline struct dim2_hdm *iface_to_hdm(struct most_interface *iface) · line 117

Quoted 9 lines
drivers/staging/most/dim2/dim2.c +2 -4
@@ -113,10 +113,12 @@ static inline struct dim2_hdm *iface_to_hdm(struct most_interface *iface)
 	return container_of(iface, struct dim2_hdm, most_iface);
 }
 
-/* Macro to identify a network status message */
-#define PACKET_IS_NET_INFO(p)  \
-	(((p)[1] == 0x18) && ((p)[2] == 0x05) && ((p)[3] == 0x0C) && \
-	 ((p)[13] == 0x3C) && ((p)[14] == 0x00) && ((p)[15] == 0x0A))
+/* Identify a network status message */
+static inline bool packet_is_net_info(const u8 *p)

These days we tend not to mark functions as inline since the compiler is smart enough to do it on it's own and it's mostly going to ignore our inlining suggestions anyway. If it really matters in benchmarking the use the __always_inline annotation.

drivers/staging/most/dim2/dim2.c static inline struct dim2_hdm *iface_to_hdm(struct most_interface *iface) · line 120

Quoted 3 lines
drivers/staging/most/dim2/dim2.c +3 -0
+{
+	return p[1] == 0x18 && p[2] == 0x05 && p[3] == 0x0C &&
+		p[13] == 0x3C && p[14] == 0x00 && p[15] == 0x0A;

This should be aligned slight differently.
[tab][space x 7]p[13] == 0x3C && p[14] == 0x00 && p[15] == 0x0A;

regards,
dan carpenter