Michael Ellerman
50934945d5
powerpc/uaccess: Use YZ asm constraint for ld
...
The 'ld' instruction requires a 4-byte aligned displacement because it
is a DS-form instruction. But the "m" asm constraint doesn't enforce
that.
Add a special case of __get_user_asm2_goto() so that the "YZ" constraint
can be used for "ld".
The "Z" constraint is documented in the GCC manual PowerPC machine
constraints, and specifies a "memory operand accessed with indexed or
indirect addressing". "Y" is not documented in the manual but specifies
a "memory operand for a DS-form instruction". Using both allows the
compiler to generate a DS-form "ld" or X-form "ldx" as appropriate.
The change has to be conditional on CONFIG_PPC_KERNEL_PREFIXED because
the "Y" constraint does not guarantee 4-byte alignment when prefixed
instructions are enabled.
No build errors have been reported due to this, but the possibility is
there depending on compiler code generation decisions.
Fixes: c20beffeec ("powerpc/uaccess: Use flexible addressing with __put_user()/__get_user()")
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au >
Link: https://msgid.link/20240529123029.146953-2-mpe@ellerman.id.au
2024-05-30 22:57:27 +10:00
..
2024-04-25 20:55:47 -07:00
2024-04-25 20:55:47 -07:00
2024-04-08 15:03:06 +02:00
2023-08-16 23:54:47 +10:00
2019-05-30 11:26:32 -07:00
2022-08-07 17:52:35 -07:00
2022-02-12 22:47:43 +11:00
2021-10-09 00:15:59 +11:00
2022-09-28 19:22:13 +10:00
2022-11-18 19:00:16 +11:00
2019-05-24 17:27:11 +02:00
2023-06-05 09:57:14 +02:00
2024-03-07 13:34:14 +01:00
2023-02-10 22:19:56 +11:00
2023-10-18 14:34:17 -07:00
2017-11-02 11:10:55 +01:00
2022-06-29 20:43:04 +10:00
2021-12-23 22:33:10 +11:00
2023-08-02 22:22:18 +10:00
2023-06-19 16:19:24 -07:00
2023-08-24 16:20:23 -07:00
2019-05-30 11:26:32 -07:00
2017-11-02 11:10:55 +01:00
2022-05-08 22:15:40 +10:00
2020-12-04 01:01:10 +11:00
2023-04-29 09:08:44 +02:00
2018-08-08 00:32:25 +10:00
2023-10-23 20:33:19 +11:00
2022-04-26 13:35:54 -07:00
2022-06-29 17:04:09 -07:00
2019-05-30 11:26:32 -07:00
2023-10-20 23:18:07 +11:00
2023-10-20 23:18:07 +11:00
2019-12-09 13:54:34 -06:00
2024-04-15 12:53:39 +10:00
2022-09-26 22:26:49 +10:00
2023-04-20 18:20:05 +08:00
2021-12-23 22:33:15 +11:00
2024-02-21 23:14:52 +11:00
2021-11-29 22:48:32 +11:00
2024-04-17 13:37:20 +02:00
2020-07-29 23:47:54 +10:00
2019-08-20 21:22:15 +10:00
2017-11-02 11:10:55 +01:00
2020-07-29 21:02:09 +10:00
2019-05-30 11:26:35 -07:00
2019-05-30 11:26:35 -07:00
2021-03-01 12:33:31 +11:00
2017-11-02 11:10:55 +01:00
2019-05-30 11:26:35 -07:00
2022-11-30 21:46:48 +11:00
2020-10-08 21:17:15 +11:00
2022-03-09 17:50:50 -08:00
2019-06-05 17:30:28 +02:00
2020-09-11 09:14:43 +02:00
2022-07-22 17:24:47 -05:00
2022-05-06 00:00:21 +10:00
2018-07-30 22:48:17 +10:00
2023-08-24 22:33:16 +10:00
2019-05-30 11:26:35 -07:00
2024-05-08 00:16:02 +10:00
2024-04-15 11:02:51 -07:00
2019-08-30 09:40:15 +10:00
2019-06-05 17:37:07 +02:00
2022-02-03 21:35:56 +11:00
2021-12-23 22:36:55 +11:00
2021-06-10 22:12:12 +10:00
2017-11-02 11:10:55 +01:00
2021-08-15 13:49:24 +10:00
2024-05-10 16:36:10 +10:00
2024-05-10 16:36:10 +10:00
2024-04-15 12:53:39 +10:00
2023-04-20 13:21:46 +10:00
2023-10-19 17:12:44 +11:00
2022-01-04 16:00:59 +11:00
2024-05-19 14:36:18 -07:00
2019-05-30 11:26:32 -07:00
2017-02-27 18:43:46 -08:00
2019-05-30 11:26:35 -07:00
2021-04-07 10:56:52 +02:00
2019-05-30 11:26:32 -07:00
2024-02-14 14:24:06 +11:00
2021-03-26 23:19:43 +11:00
2017-11-02 11:10:55 +01:00
2023-09-14 22:04:24 +10:00
2020-07-29 23:47:53 +10:00
2021-12-23 22:35:12 +11:00
2017-11-02 11:10:55 +01:00
2021-01-24 10:34:53 -08:00
2019-05-24 17:39:01 +02:00
2022-09-26 23:00:13 +10:00
2024-04-29 23:51:16 +10:00
2023-12-08 12:02:37 +01:00
2019-05-30 11:26:35 -07:00
2023-12-08 12:02:37 +01:00
2023-08-16 23:54:50 +10:00
2023-02-12 22:11:56 +11:00
2021-03-24 14:09:29 +11:00
2021-12-23 22:33:12 +11:00
2024-02-15 00:14:06 +11:00
2020-08-25 01:31:33 +10:00
2023-04-20 13:21:49 +10:00
2023-10-19 17:12:47 +11:00
2017-11-02 11:10:55 +01:00
2022-06-29 19:37:07 +10:00
2024-04-15 12:55:48 +10:00
2019-05-30 11:26:32 -07:00
2017-11-02 11:10:55 +01:00
2019-08-27 13:03:34 +10:00
2024-05-08 00:21:30 +10:00
2023-08-18 17:03:15 +10:00
2021-12-23 22:33:12 +11:00
2023-11-23 11:32:29 +01:00
2023-08-18 10:19:00 -07:00
2022-12-02 17:54:07 +11:00
2017-11-02 11:10:55 +01:00
2024-02-09 15:57:48 -08:00
2024-05-14 00:31:44 -07:00
2024-04-17 13:37:23 +02:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2024-04-23 15:00:04 +10:00
2024-04-23 15:00:04 +10:00
2017-11-02 11:10:55 +01:00
2023-08-16 23:54:49 +10:00
2022-09-26 23:00:13 +10:00
2023-11-10 19:59:05 +09:00
2023-08-02 22:22:18 +10:00
2021-11-24 21:09:02 +11:00
2019-06-05 17:30:28 +02:00
2023-12-07 23:33:08 +11:00
2022-11-24 23:31:47 +11:00
2020-07-28 12:34:52 +10:00
2023-12-07 23:33:07 +11:00
2019-06-19 17:09:55 +02:00
2023-09-14 22:04:23 +10:00
2019-06-05 17:30:28 +02:00
2021-12-23 22:33:10 +11:00
2023-11-14 08:31:31 -05:00
2020-12-04 01:01:22 +11:00
2024-04-11 13:18:27 -04:00
2017-11-02 11:10:55 +01:00
2023-12-13 21:49:22 +11:00
2022-05-24 08:46:37 +02:00
2023-10-04 11:38:11 +02:00
2023-08-24 22:33:17 +10:00
2019-05-30 11:26:39 -07:00
2024-03-03 22:20:29 +11:00
2024-03-07 23:06:19 +11:00
2019-05-30 11:26:32 -07:00
2022-03-08 00:05:00 +11:00
2017-11-02 11:10:55 +01:00
2021-10-04 11:47:24 +02:00
2021-08-10 23:14:55 +10:00
2022-06-29 16:45:05 +10:00
2019-04-08 12:09:27 +01:00
2023-08-02 22:22:18 +10:00
2024-05-19 09:21:03 -07:00
2023-12-01 21:15:33 +11:00
2024-05-03 20:46:51 +10:00
2020-09-25 00:36:41 +09:00
2022-06-22 12:51:49 +10:00
2017-11-02 11:10:55 +01:00
2023-05-15 23:25:56 +10:00
2019-05-24 17:27:12 +02:00
2019-06-05 17:37:18 +02:00
2019-06-05 17:37:17 +02:00
2019-05-30 11:26:32 -07:00
2024-02-15 00:14:06 +11:00
2019-06-05 17:37:17 +02:00
2023-06-23 17:04:04 -07:00
2019-05-30 11:26:32 -07:00
2017-11-02 11:10:55 +01:00
2024-05-08 00:21:30 +10:00
2023-12-08 12:02:37 +01:00
2024-02-21 15:15:40 +11:00
2023-06-19 16:19:24 -07:00
2020-04-10 15:36:21 -07:00
2024-03-06 19:29:03 +01:00
2024-02-05 17:01:25 +11:00
2022-09-05 14:14:02 +10:00
2023-12-15 13:50:39 +11:00
2022-05-06 00:00:20 +10:00
2019-06-05 17:37:06 +02:00
2023-03-15 00:51:46 +11:00
2023-11-06 15:21:33 +11:00
2024-04-15 12:55:48 +10:00
2019-05-30 11:26:32 -07:00
2021-12-23 22:33:11 +11:00
2021-02-09 01:09:44 +11:00
2023-08-18 10:12:23 -07:00
2022-09-26 20:58:18 +10:00
2023-10-19 17:12:47 +11:00
2022-09-26 20:58:18 +10:00
2024-03-06 13:04:19 -08:00
2021-02-09 01:09:44 +11:00
2023-09-14 22:04:24 +10:00
2024-04-22 23:37:51 +10:00
2024-05-08 00:21:30 +10:00
2019-05-30 11:26:32 -07:00
2018-05-25 12:04:41 +10:00
2021-08-25 16:37:18 +10:00
2019-05-30 11:26:32 -07:00
2020-12-04 01:01:30 +11:00
2022-05-08 22:15:40 +10:00
2019-07-13 16:08:36 -07:00
2019-05-24 17:27:12 +02:00
2024-03-03 23:05:21 +11:00
2024-05-07 22:17:02 +10:00
2024-02-19 16:16:34 +11:00
2022-07-27 21:36:05 +10:00
2024-05-06 22:04:31 +10:00
2022-12-07 20:14:49 +11:00
2023-11-21 12:06:50 +11:00
2022-09-15 22:55:46 +10:00
2019-06-05 17:37:07 +02:00
2019-07-13 16:08:36 -07:00
2022-11-24 23:12:18 +11:00
2023-10-20 17:55:56 +11:00
2022-12-02 17:48:50 +11:00
2022-12-02 17:48:50 +11:00
2020-01-23 21:31:14 +11:00
2022-09-26 23:00:13 +10:00
2024-03-07 00:13:28 +11:00
2024-05-08 00:25:00 +10:00
2018-05-25 12:04:43 +10:00
2019-05-30 11:26:32 -07:00
2023-03-30 23:36:34 +11:00
2023-02-13 22:35:02 +11:00
2024-02-23 17:21:12 +11:00
2022-09-28 19:22:11 +10:00
2020-11-20 11:16:35 -08:00
2024-02-14 14:24:06 +11:00
2019-11-12 12:25:49 +11:00
2021-10-07 19:52:58 +11:00
2023-02-12 22:12:37 +11:00
2019-05-30 11:26:32 -07:00
2024-02-22 21:55:33 +11:00
2020-04-01 14:30:51 +11:00
2023-08-24 22:33:16 +10:00
2018-12-04 19:45:01 +11:00
2017-11-02 11:10:55 +01:00
2022-05-19 23:11:26 +10:00
2021-12-07 15:14:12 +01:00
2023-06-09 23:29:51 +10:00
2024-02-15 00:14:05 +11:00
2021-12-23 22:33:14 +11:00
2020-11-22 10:48:22 -08:00
2022-12-02 17:48:02 +11:00
2022-12-02 17:48:02 +11:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:39 -07:00
2022-03-08 22:15:32 +11:00
2021-12-09 22:41:21 +11:00
2022-11-18 02:18:10 +01:00
2018-08-08 00:32:30 +10:00
2022-04-05 09:59:38 +02:00
2023-03-23 17:18:33 -07:00
2022-05-28 11:27:17 -07:00
2019-05-30 11:26:32 -07:00
2022-04-18 07:21:12 +02:00
2024-03-07 23:06:19 +11:00
2022-09-26 23:00:13 +10:00
2022-10-07 00:59:54 +11:00
2022-09-28 19:22:09 +10:00
2022-09-28 19:22:08 +10:00
2022-11-01 10:24:09 +11:00
2019-02-23 22:31:39 +11:00
2022-05-05 22:11:57 +10:00
2021-08-27 00:56:54 +10:00
2024-02-14 14:24:06 +11:00
2022-09-05 14:14:27 +10:00
2022-05-13 23:59:23 +02:00
2024-02-22 15:27:17 -08:00
2018-07-30 22:48:21 +10:00
2018-05-24 16:04:02 +10:00
2023-08-02 22:49:43 +10:00
2019-06-19 17:09:55 +02:00
2024-05-22 20:14:47 -04:00
2019-05-30 11:26:35 -07:00
2019-05-30 11:26:35 -07:00
2019-05-30 11:26:32 -07:00
2022-05-19 23:11:29 +10:00
2024-05-30 22:57:27 +10:00
2022-09-28 19:22:14 +10:00
2019-05-30 11:26:32 -07:00
2019-11-28 17:02:31 +11:00
2019-11-28 17:02:31 +11:00
2024-05-08 00:21:30 +10:00
2022-09-26 23:00:15 +10:00
2022-07-27 21:36:05 +10:00
2022-01-30 21:17:00 -05:00
2022-05-22 15:58:27 +10:00
2021-04-14 23:04:44 +10:00
2022-08-22 13:36:59 +10:00
2023-08-22 00:09:06 +10:00
2017-11-02 11:10:55 +01:00
2024-05-03 17:07:50 +02:00
2024-02-15 00:14:06 +11:00
2024-02-15 00:14:05 +11:00
2023-08-24 22:33:16 +10:00
2024-02-01 09:47:59 -08:00
2022-09-15 22:55:46 +10:00
2021-08-10 23:15:02 +10:00
2021-08-10 23:15:02 +10:00
2021-12-23 22:33:12 +11:00
2022-02-11 20:39:39 +11:00
2019-05-30 11:26:35 -07:00