Skip to contentSkip to conversation

USB-FHCI: Use a signed return type for fhci_create_ep()

PATCH Superseded SF Markus Elfring 3 participants 8 messages Dec 19, 2015 – Dec 22, 2015

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 USB-FHCI: Use a signed return type for fhci_create_ep()

From: Markus Elfring <[email protected]>
Date: Sat, 19 Dec 2015 21:10:20 +0100

The return type "u32" was used by the fhci_create_ep() function even though it will eventually return a negative error code.
Improve this implementation detail by using the type "s32" instead.

This issue was detected by using the Coccinelle software.

---
 drivers/usb/host/fhci-tds.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/usb/host/fhci-tds.c +1 -1
index f82ad5d..c1ae172 100644
@@ -149,7 +149,7 @@ void fhci_ep0_free(struct fhci_usb *usb)
  * data_mem	The data memory partition(BUS)
  * ring_len	TD ring length
  */
-u32 fhci_create_ep(struct fhci_usb *usb, enum fhci_mem_alloc data_mem,
+s32 fhci_create_ep(struct fhci_usb *usb, enum fhci_mem_alloc data_mem,
 			   u32 ring_len)
 {
 	struct endpoint *ep;
Signature · 1 line
2.6.3
#1 lore raw

Just make it an int. The caller also casts it to u32...

regards,
dan carpenter

#7 lore raw
In reply to SF Markus Elfring

Hello.

Quoted 19 lines · SF Markus Elfring

From: Markus Elfring <[email protected]>
Date: Sat, 19 Dec 2015 21:10:20 +0100

The return type "u32" was used by the fhci_create_ep() function even though it will eventually return a negative error code.
Improve this implementation detail by using the type "s32" instead.

This issue was detected by using the Coccinelle software.

---
  drivers/usb/host/fhci-tds.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
drivers/usb/host/fhci-tds.c +0 -0
index f82ad5d..c1ae172 100644

drivers/usb/host/fhci-tds.c void fhci_ep0_free(struct fhci_usb *usb) · line 152

Quoted 5 lines
drivers/usb/host/fhci-tds.c +1 -1
@@ -149,7 +149,7 @@ void fhci_ep0_free(struct fhci_usb *usb)
   * data_mem	The data memory partition(BUS)
   * ring_len	TD ring length
   */
-u32 fhci_create_ep(struct fhci_usb *usb, enum fhci_mem_alloc data_mem,
+s32 fhci_create_ep(struct fhci_usb *usb, enum fhci_mem_alloc data_mem,

Should be just *int*, I think.

[...]

MBR, Sergei

#2 lore raw
In reply to Dan Carpenter
Quoted 1 line

Just make it an int.

Thanks for your suggestion.

Will any more software developers prefer this data type at some source code places?

Quoted 1 line

The caller also casts it to u32...

Do you want to get rid of similar casts in affected functions?

Regards,
Markus

#3 lore raw
Quoted 7 lines · SF Markus Elfring
Quoted 1 line

Just make it an int.

Thanks for your suggestion.

Will any more software developers prefer this data type at some source code places?

Use s32 if the hardware spec specifies that you must. Otherwise prefer ordinary types.

Quoted 4 lines
Quoted 2 lines

The caller also casts it to u32...

Do you want to get rid of similar casts in affected functions?

If you want, that would be great. I just enjoy complaining generally, though. :P

regards,
dan carpenter

#4 lore raw

v2 cover USB-FHCI: Use return type "int" for two functions

In reply to Dan Carpenter

From: Markus Elfring <[email protected]>
Date: Tue, 22 Dec 2015 16:43:12 +0100

Another update suggestion was taken into account after a patch was applied from static source code analysis.

Markus Elfring (2):
Use a signed return type for fhci_create_ep() Use a signed return type for endpoint_zero_init()

 drivers/usb/host/fhci-hcd.c | 4 ++--
 drivers/usb/host/fhci-tds.c | 2 +-
 drivers/usb/host/fhci.h     | 2 +-
 3 files changed, 4 insertions(+), 4 deletions(-)
Signature · 1 line
2.6.3
#5 lore raw

PATCH v2 1/2 USB-FHCI: Use a signed return type for fhci_create_ep()

From: Markus Elfring <[email protected]>
Date: Tue, 22 Dec 2015 16:10:14 +0100

The return type "u32" was used by the fhci_create_ep() function even though it will eventually return a negative error code.
Improve this implementation detail by using the type "int" instead.

This issue was detected by using the Coccinelle software.

---
 drivers/usb/host/fhci-tds.c | 2 +-
 drivers/usb/host/fhci.h     | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
drivers/usb/host/fhci-tds.c +1 -1
index f82ad5d..fc0b525 100644
@@ -149,7 +149,7 @@ void fhci_ep0_free(struct fhci_usb *usb)
  * data_mem	The data memory partition(BUS)
  * ring_len	TD ring length
  */
-u32 fhci_create_ep(struct fhci_usb *usb, enum fhci_mem_alloc data_mem,
+int fhci_create_ep(struct fhci_usb *usb, enum fhci_mem_alloc data_mem,
 			   u32 ring_len)
 {
 	struct endpoint *ep;
drivers/usb/host/fhci.h +1 -1
index 154e6a0..afa3cfc 100644
@@ -547,7 +547,7 @@ u32 fhci_host_transaction(struct fhci_usb *usb, struct packet *pkt,
 void fhci_host_transmit_actual_frame(struct fhci_usb *usb);
 void fhci_tx_conf_interrupt(struct fhci_usb *usb);
 void fhci_push_dummy_bd(struct endpoint *ep);
-u32 fhci_create_ep(struct fhci_usb *usb, enum fhci_mem_alloc data_mem,
+int fhci_create_ep(struct fhci_usb *usb, enum fhci_mem_alloc data_mem,
 		   u32 ring_len);
 void fhci_init_ep_registers(struct fhci_usb *usb,
 			    struct endpoint *ep,
Signature · 1 line
2.6.3
#6 lore raw

PATCH v2 2/2 USB-FHCI: Use a signed return type for endpoint_zero_init()

In reply to SF Markus Elfring

From: Markus Elfring <[email protected]>
Date: Tue, 22 Dec 2015 16:24:46 +0100

The return type "u32" was used by the endpoint_zero_init() function even though it can return a value which corresponds to a negative error code from a call of the fhci_create_ep() function. Improve this implementation detail by using the type "int" instead.

---
 drivers/usb/host/fhci-hcd.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
drivers/usb/host/fhci-hcd.c +2 -2
index c6cebb9..b2889f0 100644
@@ -64,11 +64,11 @@ u16 fhci_get_sof_timer_count(struct fhci_usb *usb)
 }
 
 /* initialize the endpoint zero */
-static u32 endpoint_zero_init(struct fhci_usb *usb,
+static int endpoint_zero_init(struct fhci_usb *usb,
 			      enum fhci_mem_alloc data_mem,
 			      u32 ring_len)
 {
-	u32 rc;
+	int rc;
 
 	rc = fhci_create_ep(usb, data_mem, ring_len);
 	if (rc)
Signature · 1 line
2.6.3