From: Mark Brown
Sent: 19 July 2022 11:17
On Tue, Jul 19, 2022 at 10:01:54AM +0000, David Laight wrote:
From: Shengjiu Wang
- ret = of_property_read_u32(np, "fsl,asrc-format", &asrc->asrc_format);
- ret = of_property_read_u32(np, "fsl,asrc-format", (u32 *)&asrc->asrc_format);
Ugg, you really shouldn't need to do that. It means that something is badly wrong somewhere. Casting pointers to integer types is just asking for a bug.
That's casting one pointer type to another pointer type.
It is casting the address of some type to a 'u32 *'. This will then be dereferenced by the called function. So the original type better be 32 bits.
I'm also guessing that sparse was complaining about endianness? It isn't at all clear that these casts actually fix it.
(Mark: You'll be glad to hear that the office aircon is broken again - two weeks lead time on the spare part.)
David
- Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK Registration No: 1397386 (Wales)