Skip to contentSkip to conversation

usb: musb: Fix format specifier warning

PATCH Superseded Emil Goode 4 participants 7 messages May 31, 2013 – Jun 1, 2013

Subsystems (3)

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore

Emil Goode

author
#0 lore raw

PATCH 1/1 usb: musb: Fix format specifier warning

This patch fixes a format specifier warning. dma_addr_t can be either u32 or u64 so we should cast to the largest type and change the format specifier to %llx.
The addition of urb->transfer_dma and urb->actual_length is also done a few lines below. I have moved this code up and pass the variable buf to dev_dbg.

Sparse output:
drivers/usb/musb/musb_host.c:1761:4: warning:
format ‘%x’ expects argument of type ‘unsigned int’, but argument 6 has type ‘dma_addr_t’ [-Wformat]

---
 drivers/usb/musb/musb_host.c |   11 ++++-------
 1 file changed, 4 insertions(+), 7 deletions(-)
drivers/usb/musb/musb_host.c +4 -7
index 094cf80..d647ccb 100644
@@ -1756,11 +1756,11 @@ void musb_host_rx(struct musb *musb, u8 epnum)
 			dma_addr_t		buf;
 
 			rx_count = musb_readw(epio, MUSB_RXCOUNT);
+			buf = urb->transfer_dma + urb->actual_length;
 
-			dev_dbg(musb->controller, "RX%d count %d, buffer 0x%x len %d/%d\n",
+			dev_dbg(musb->controller, "RX%d count %d, buffer 0x%llx len %d/%d\n",
 					epnum, rx_count,
-					urb->transfer_dma
-						+ urb->actual_length,
+					(unsigned long long)buf,
 					qh->offset,
 					urb->transfer_buffer_length);
 
@@ -1789,11 +1789,8 @@ void musb_host_rx(struct musb *musb, u8 epnum)
 					length = rx_count;
 				d->status = d_status;
 				buf = urb->transfer_dma + d->offset;
-			} else {
+			} else
 				length = rx_count;
-				buf = urb->transfer_dma +
-						urb->actual_length;
-			}
 
 			dma->desired_mode = 0;
 #ifdef USE_MODE1
Signature · 1 line
1.7.10.4
#1 lore raw

Hello.

Quoted 21 lines · Emil Goode

This patch fixes a format specifier warning. dma_addr_t can be either u32 or u64 so we should cast to the largest type and change the format specifier to %llx.
The addition of urb->transfer_dma and urb->actual_length is also done a few lines below. I have moved this code up and pass the variable buf to dev_dbg.

Sparse output:
drivers/usb/musb/musb_host.c:1761:4: warning:
format ‘%x’ expects argument of type ‘unsigned int’, but argument 6 has type ‘dma_addr_t’ [-Wformat]

---
  drivers/usb/musb/musb_host.c |   11 ++++-------
  1 file changed, 4 insertions(+), 7 deletions(-)
drivers/usb/musb/musb_host.c +0 -0
index 094cf80..d647ccb 100644

[...]

drivers/usb/musb/musb_host.c void musb_host_rx(struct musb *musb, u8 epnum) · line 1792

Quoted 6 lines
drivers/usb/musb/musb_host.c +1 -1
@@ -1789,11 +1789,8 @@ void musb_host_rx(struct musb *musb, u8 epnum)
  					length = rx_count;
  				d->status = d_status;
  				buf = urb->transfer_dma + d->offset;
-			} else {
+			} else

You should keep {} on the *else* branch since *if* branch has {},
according to Documentation/CodingStyle.

drivers/usb/musb/musb_host.c void musb_host_rx(struct musb *musb, u8 epnum) · line 1796

Quoted 4 lines
drivers/usb/musb/musb_host.c +0 -3
  				length = rx_count;
-				buf = urb->transfer_dma +
-						urb->actual_length;
-			}

WBR, Sergei

#2 lore raw
In reply to Emil Goode
Quoted 3 lines · Emil Goode

This patch fixes a format specifier warning. dma_addr_t can be either u32 or u64 so we should cast to the largest type and change the format specifier to %llx.

dma_addr_t is derived from phys_addr_t, thus you may use %pa specifier which is available from v3.8(?).

Something like this:
dma_addr_t src_addr;
dev_dbg(dev, "DMA addr: %pa\n", src_addr);

--
With Best Regards,
Andy Shevchenko

#3 lore raw
Quoted 11 lines · Andy Shevchenko
Quoted 3 lines · Emil Goode

This patch fixes a format specifier warning. dma_addr_t can be either u32 or u64 so we should cast to the largest type and change the format specifier to %llx.

dma_addr_t is derived from phys_addr_t, thus you may use %pa specifier which is available from v3.8(?).

Something like this:
dma_addr_t src_addr;
dev_dbg(dev, "DMA addr: %pa\n", src_addr);

Isn't that:

  deb_dbg(dev, "DMA addr: %pa\n", &src_addr);
Signature · 1 line
~Randy
#4 lore raw
Quoted 9 lines · Randy Dunlap
Quoted 8 lines · Andy Shevchenko
Quoted 3 lines · Emil Goode

This patch fixes a format specifier warning. dma_addr_t can be either u32 or u64 so we should cast to the largest type and change the format specifier to %llx.

dma_addr_t is derived from phys_addr_t, thus you may use %pa specifier which is available from v3.8(?).

Quoted 7 lines
Quoted 3 lines

Something like this:
dma_addr_t src_addr;
dev_dbg(dev, "DMA addr: %pa\n", src_addr);

Isn't that:

  deb_dbg(dev, "DMA addr: %pa\n", &src_addr);

It's.
You are right.

--
With Best Regards,
Andy Shevchenko

author
#5 lore raw

Hello,

Thank's for your pointers.
I will send a patch that applies on top of Felipe's patch.

Best regards,

Emil Goode

Quoted 24 lines · Andy Shevchenko
Quoted 9 lines · Randy Dunlap
Quoted 8 lines · Andy Shevchenko
Quoted 3 lines · Emil Goode

This patch fixes a format specifier warning. dma_addr_t can be either u32 or u64 so we should cast to the largest type and change the format specifier to %llx.

dma_addr_t is derived from phys_addr_t, thus you may use %pa specifier which is available from v3.8(?).

Quoted 7 lines
Quoted 3 lines

Something like this:
dma_addr_t src_addr;
dev_dbg(dev, "DMA addr: %pa\n", src_addr);

Isn't that:

  deb_dbg(dev, "DMA addr: %pa\n", &src_addr);

It's.
You are right.

--
With Best Regards,
Andy Shevchenko

#6 lore raw
Quoted 2 lines · Emil Goode

Thank's for your pointers.
I will send a patch that applies on top of Felipe's patch.

I guess there is not much sense to do that since Felipe applied your patch already. Just keep in mind the hint for future changes.

--
With Best Regards,
Andy Shevchenko