On 06/11/2013 03:32 PM, Geert Uytterhoeven wrote: > On Tue, Jun 11, 2013 at 12:26 AM, Tony Luck <tony.luck@xxxxxxxxx> wrote: >> > On Sat, Jun 8, 2013 at 3:08 AM, Chen Gang <gang.chen@xxxxxxxxxxx> wrote: >>> >> using 'unsigned int *', implicitly: >>> >> ./ia64/include/asm/bitops.h:63:__set_bit (int nr, volatile void *addr) >> > >> > There is some downside on ia64 to your suggestion. If "addr" is properly >> > aligned for an "int", but misaligned for a long ... i.e. addr%8 == 4, then I'll >> > take an unaligned reference trap if I work with long* where the current code >> > working with int* does not. >> > >> > Now perhaps all the callers do guarantee long* alignment? But I don't know. >> > >> > Apart from uniformity, there doesn't see to be any upside to changing this. > The address pointers have been supposed to be "long *" for a very long time. > Probably alpha (the second official Linux platform) did it > differently, and never > standardized to "long *". Excuse me, I am not quite familiar with the details, but I guess, it is about functional feature issues, not (or not only) about bug issues. For the architectures which can fully support 64-bit OS, excluding ia64 and alpha, all of them can support setting 64 bits (from 0 to 63) under 64-bit machine. I am not quite sure whether any sub-systems have already set higher bit (> 31) under 64-bit machine, but in the future, it seems they could (at least our API supposed so). Thanks. -- Chen Gang Asianux Corporation -- To unsubscribe from this list: send the line "unsubscribe linux-alpha" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html