Re: usb: musb: omap: Add device tree support for omap musb glue

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On Wednesday 11 June 2014 12:32 AM, Dan Carpenter wrote:
> Hello Kishon Vijay Abraham I,
> 
> The patch 00a0b1d58af873d8: "usb: musb: omap: Add device tree support
> for omap musb glue", from Sep 11 2012, leads to the following static
> checker warning:
> 
> 	drivers/usb/musb/omap2430.c:569 omap2430_probe()
> 	warn: does endianness matter for 'config->num_eps'?
> 
> drivers/usb/musb/omap2430.c
>    565  
>    566                  of_property_read_u32(np, "mode", (u32 *)&pdata->mode);
>    567                  of_property_read_u32(np, "interface-type",
>    568                                                  (u32 *)&data->interface_type);
>    569                  of_property_read_u32(np, "num-eps", (u32 *)&config->num_eps);
>                                                                     ^^^^^^^^^^^^^^^
> 
> This is not endian safe, but more importantly ->num_eps is a u8 so when
> we write 32 bits to it, we are corrupting ->dma_channels,
> ->dyn_fifo_size, and ->vendor_ctrl.  On little endian, it's going to be
> setting them to zero so it might not cause and immediate problem.
> 
> The way to do this is to use a 32 bit temporary variable and then save
> the value to ->num_eps afterward.  Create a small function to do this in
> a nice way.

Sure. Will do it.

Thanks
Kishon
> 
> All the casts here are a bit scary.
> 
>    570                  of_property_read_u32(np, "ram-bits", (u32 *)&config->ram_bits);
>    571                  of_property_read_u32(np, "power", (u32 *)&pdata->power);
> 
> regards,
> dan carpenter
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux