[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH 1/2] xen: make include/xen/unaligned.h usable on all architectures
Hi Arnd, Thanks for the answer. On 05/12/2023 14:10, Arnd Bergmann wrote: On Tue, Dec 5, 2023, at 15:01, Julien Grall wrote:On 05/12/2023 13:59, Jan Beulich wrote:On 05.12.2023 14:46, Julien Grall wrote:On 05/12/2023 13:41, Juergen Gross wrote:On 05.12.23 14:31, Julien Grall wrote:Anyway, given you don't seem to have a use-case yet, I would simply to consider to surround the declaration with an a config which can be selected if unaligned access is supported.Like in xen/common/lzo.c et al?Just to clarify, I am suggesting to add in unaligned.h: #ifdef CONFIG_HAS_UNALIGNED_ACCESS your definitions #endifBut that would be wrong: HAS_UNALIGNED_ACCESS would be there to indicate one does _not_ need any special accessors.I am guessing you are disagreeing on the name rather than the concept? If so, what about CONFIG_UNALIGNED_ACCESS_ALLOWED?This would repeat the mistake that we had in Linux in the past (and still do in some drivers): Simply dereferencing a misaligned pointer is always a bug, even on architectures that have efficient unaligned load/store instructions, because C makes this undefined behavior and gcc has optimizations that assume e.g. 'int *' to never have the lower two bits set [1]. Just to clarify, I haven't suggested to use 'int *'. My point was more that I don't think that the helpers would work as-is on arm32 because even if the ISA allows a direct access, we are setting the bit in SCTLR to disable unaligned access. As Juergen is proposing a common header, then I could ask him to do the work to confirm that the helpers properly work on arm32. But I think this is unfair. I also don't have the time to chase to look at it and this is not yet used in code reached by Arm. Hence my suggestion for now to protect the code so if someone tries to use them, then they know that it doesn't (yet) work on Arm. Cheers, -- Julien Grall
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |