@@ -47,63 +47,94 @@ SYM_FUNC_START(__put_user_1)
4747 LOAD_TASK_SIZE_MINUS_N(0 )
4848 cmp %_ASM_BX,%_ASM_CX
4949 jae .Lbad_put_user
50- SYM_INNER_LABEL(__put_user_nocheck_1, SYM_L_GLOBAL)
51- ENDBR
5250 ASM_STAC
53511: movb %al ,(%_ASM_CX)
5452 xor %ecx ,%ecx
5553 ASM_CLAC
5654 RET
5755SYM_FUNC_END(__put_user_1)
5856EXPORT_SYMBOL(__put_user_1)
57+
58+ SYM_FUNC_START(__put_user_nocheck_1)
59+ ENDBR
60+ ASM_STAC
61+ 2: movb %al ,(%_ASM_CX)
62+ xor %ecx ,%ecx
63+ ASM_CLAC
64+ RET
65+ SYM_FUNC_END(__put_user_nocheck_1)
5966EXPORT_SYMBOL(__put_user_nocheck_1)
6067
6168SYM_FUNC_START(__put_user_2)
6269 LOAD_TASK_SIZE_MINUS_N(1 )
6370 cmp %_ASM_BX,%_ASM_CX
6471 jae .Lbad_put_user
65- SYM_INNER_LABEL(__put_user_nocheck_2, SYM_L_GLOBAL)
66- ENDBR
6772 ASM_STAC
68- 2 : movw %ax ,(%_ASM_CX)
73+ 3 : movw %ax ,(%_ASM_CX)
6974 xor %ecx ,%ecx
7075 ASM_CLAC
7176 RET
7277SYM_FUNC_END(__put_user_2)
7378EXPORT_SYMBOL(__put_user_2)
79+
80+ SYM_FUNC_START(__put_user_nocheck_2)
81+ ENDBR
82+ ASM_STAC
83+ 4: movw %ax ,(%_ASM_CX)
84+ xor %ecx ,%ecx
85+ ASM_CLAC
86+ RET
87+ SYM_FUNC_END(__put_user_nocheck_2)
7488EXPORT_SYMBOL(__put_user_nocheck_2)
7589
7690SYM_FUNC_START(__put_user_4)
7791 LOAD_TASK_SIZE_MINUS_N(3 )
7892 cmp %_ASM_BX,%_ASM_CX
7993 jae .Lbad_put_user
80- SYM_INNER_LABEL(__put_user_nocheck_4, SYM_L_GLOBAL)
81- ENDBR
8294 ASM_STAC
83- 3 : movl %eax ,(%_ASM_CX)
95+ 5 : movl %eax ,(%_ASM_CX)
8496 xor %ecx ,%ecx
8597 ASM_CLAC
8698 RET
8799SYM_FUNC_END(__put_user_4)
88100EXPORT_SYMBOL(__put_user_4)
101+
102+ SYM_FUNC_START(__put_user_nocheck_4)
103+ ENDBR
104+ ASM_STAC
105+ 6: movl %eax ,(%_ASM_CX)
106+ xor %ecx ,%ecx
107+ ASM_CLAC
108+ RET
109+ SYM_FUNC_END(__put_user_nocheck_4)
89110EXPORT_SYMBOL(__put_user_nocheck_4)
90111
91112SYM_FUNC_START(__put_user_8)
92113 LOAD_TASK_SIZE_MINUS_N(7 )
93114 cmp %_ASM_BX,%_ASM_CX
94115 jae .Lbad_put_user
95- SYM_INNER_LABEL(__put_user_nocheck_8, SYM_L_GLOBAL)
96- ENDBR
97116 ASM_STAC
98- 4 : mov %_ASM_AX,(%_ASM_CX)
117+ 7 : mov %_ASM_AX,(%_ASM_CX)
99118#ifdef CONFIG_X86_32
100- 5 : movl %edx ,4 (%_ASM_CX)
119+ 8 : movl %edx ,4 (%_ASM_CX)
101120#endif
102121 xor %ecx ,%ecx
103122 ASM_CLAC
104123 RET
105124SYM_FUNC_END(__put_user_8)
106125EXPORT_SYMBOL(__put_user_8)
126+
127+ SYM_FUNC_START(__put_user_nocheck_8)
128+ ENDBR
129+ ASM_STAC
130+ 9: mov %_ASM_AX,(%_ASM_CX)
131+ #ifdef CONFIG_X86_32
132+ 10: movl %edx ,4 (%_ASM_CX)
133+ #endif
134+ xor %ecx ,%ecx
135+ ASM_CLAC
136+ RET
137+ SYM_FUNC_END(__put_user_nocheck_8)
107138EXPORT_SYMBOL(__put_user_nocheck_8)
108139
109140SYM_CODE_START_LOCAL (.Lbad_put_user_clac)
@@ -117,6 +148,11 @@ SYM_CODE_END(.Lbad_put_user_clac)
117148 _ASM_EXTABLE_UA(2b, .Lbad_put_user_clac)
118149 _ASM_EXTABLE_UA(3b, .Lbad_put_user_clac)
119150 _ASM_EXTABLE_UA(4b, .Lbad_put_user_clac)
120- #ifdef CONFIG_X86_32
121151 _ASM_EXTABLE_UA(5b, .Lbad_put_user_clac)
152+ _ASM_EXTABLE_UA(6b, .Lbad_put_user_clac)
153+ _ASM_EXTABLE_UA(7b, .Lbad_put_user_clac)
154+ _ASM_EXTABLE_UA(9b, .Lbad_put_user_clac)
155+ #ifdef CONFIG_X86_32
156+ _ASM_EXTABLE_UA(8b, .Lbad_put_user_clac)
157+ _ASM_EXTABLE_UA(10b, .Lbad_put_user_clac)
122158#endif
0 commit comments