On 07/31/2017 03:43 PM, Marek Vasut wrote: > On 08/01/2017 12:20 AM, Alexandru Gagniuc wrote: >> On 07/31/2017 02:33 PM, Marek Vasut wrote: >>> On 07/31/2017 07:17 PM, Alexandru Gagniuc wrote: >>>>>> +struct anarion_qspi { >>>>>> + struct spi_nor nor; >>>>>> + struct device *dev; >>>>>> + uintptr_t regbase; >>>>> >>>>> Should be void __iomem * I guess ? >>>> >>>> I chose uintptr_t as opposed to void *, because arithmetic on void * is >>>> not valid in C. What is the right answer hen, without risking undefined >>>> behavior? >>> >>> What sort of arithmetic ? It's perfectly valid in general ... >> >> ISO/IEC 9899:201x, Section 6.5.6, constraint(2) is not met when the one >> of the operands to addition is a void pointer. >> Section 6.2.5 (19) defines void to be an incomplete type. > > Is that something new in C 201x draft ? C99 had similar restrictions. > Anyway, this would mean half of the drivers are broken, so I'm not convinced. They are. Feel free to send me a private email if you want to discuss this further. Alex