MIPS: Change type of asid_cache to unsigned long
authorRalf Baechle <ralf@linux-mips.org>
Wed, 21 May 2014 09:42:10 +0000 (11:42 +0200)
committerRalf Baechle <ralf@linux-mips.org>
Wed, 21 May 2014 10:25:39 +0000 (12:25 +0200)
asid_cache must be unsigned long otherwise on 64 bit systems it will
become 0 if the value in get_new_mmu_context() reaches 0xffffffff and
in the end the assumption of ASID_FIRST_VERSION is not true anymore
thus leads to more dangerous things.

Initial patch by Yong Zhang <yong.zhang@windriver.com>

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Reported-by: libin <huawei.libin@huawei.com>
arch/mips/include/asm/cpu-info.h

index dc2135be2a3a4ed2c044870e3c8c8b24881535f6..ff2707ab3295f2b0cd3481168ee18360b0b0f15a 100644 (file)
@@ -39,14 +39,14 @@ struct cache_desc {
 #define MIPS_CACHE_PINDEX      0x00000020      /* Physically indexed cache */
 
 struct cpuinfo_mips {
-       unsigned int            udelay_val;
-       unsigned int            asid_cache;
+       unsigned long           asid_cache;
 
        /*
         * Capability and feature descriptor structure for MIPS CPU
         */
        unsigned long           options;
        unsigned long           ases;
+       unsigned int            udelay_val;
        unsigned int            processor_id;
        unsigned int            fpu_id;
        unsigned int            msa_id;