Manish Rangankar
397a8990c3
scsi: qedi: Fix crash while reading debugfs attribute
...
[ Upstream commit 28027ec8e32ecbadcd67623edb290dad61e735b5 ]
The qedi_dbg_do_not_recover_cmd_read() function invokes sprintf() directly
on a __user pointer, which results into the crash.
To fix this issue, use a small local stack buffer for sprintf() and then
call simple_read_from_buffer(), which in turns make the copy_to_user()
call.
BUG: unable to handle page fault for address: 00007f4801111000
PGD 8000000864df6067 P4D 8000000864df6067 PUD 864df7067 PMD 846028067 PTE 0
Oops: 0002 [#1 ] PREEMPT SMP PTI
Hardware name: HPE ProLiant DL380 Gen10/ProLiant DL380 Gen10, BIOS U30 06/15/2023
RIP: 0010:memcpy_orig+0xcd/0x130
RSP: 0018:ffffb7a18c3ffc40 EFLAGS: 00010202
RAX: 00007f4801111000 RBX: 00007f4801111000 RCX: 000000000000000f
RDX: 000000000000000f RSI: ffffffffc0bfd7a0 RDI: 00007f4801111000
RBP: ffffffffc0bfd7a0 R08: 725f746f6e5f6f64 R09: 3d7265766f636572
R10: ffffb7a18c3ffd08 R11: 0000000000000000 R12: 00007f4881110fff
R13: 000000007fffffff R14: ffffb7a18c3ffca0 R15: ffffffffc0bfd7af
FS: 00007f480118a740(0000) GS:ffff98e38af00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007f4801111000 CR3: 0000000864b8e001 CR4: 00000000007706e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
PKRU: 55555554
Call Trace:
<TASK>
? __die_body+0x1a/0x60
? page_fault_oops+0x183/0x510
? exc_page_fault+0x69/0x150
? asm_exc_page_fault+0x22/0x30
? memcpy_orig+0xcd/0x130
vsnprintf+0x102/0x4c0
sprintf+0x51/0x80
qedi_dbg_do_not_recover_cmd_read+0x2f/0x50 [qedi 6bcfdeeecdea037da47069eca2ba717c84a77324]
full_proxy_read+0x50/0x80
vfs_read+0xa5/0x2e0
? folio_add_new_anon_rmap+0x44/0xa0
? set_pte_at+0x15/0x30
? do_pte_missing+0x426/0x7f0
ksys_read+0xa5/0xe0
do_syscall_64+0x58/0x80
? __count_memcg_events+0x46/0x90
? count_memcg_event_mm+0x3d/0x60
? handle_mm_fault+0x196/0x2f0
? do_user_addr_fault+0x267/0x890
? exc_page_fault+0x69/0x150
entry_SYSCALL_64_after_hwframe+0x72/0xdc
RIP: 0033:0x7f4800f20b4d
Tested-by: Martin Hoyer <mhoyer@redhat.com>
Reviewed-by: John Meneghini <jmeneghi@redhat.com>
Signed-off-by: Manish Rangankar <mrangankar@marvell.com>
Link: https://lore.kernel.org/r/20240415072155.30840-1-mrangankar@marvell.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-07-05 09:14:26 +02:00
..
2021-08-11 22:25:38 -04:00
2021-07-11 10:59:53 -07:00
2023-03-10 09:39:28 +01:00
2024-02-23 08:54:41 +01:00
2021-10-04 21:54:18 -04:00
2023-12-13 18:36:41 +01:00
2024-06-16 13:39:24 +02:00
2024-05-17 11:50:52 +02:00
2022-08-17 14:23:45 +02:00
2024-03-26 18:21:33 -04:00
2022-10-26 12:35:15 +02:00
2021-09-07 19:13:42 -07:00
2023-03-30 12:47:45 +02:00
2022-12-31 13:14:44 +01:00
2021-06-02 01:37:04 -04:00
2024-02-23 08:55:05 +01:00
2024-01-25 14:52:37 -08:00
2024-01-25 14:52:38 -08:00
2023-11-28 16:56:18 +00:00
2022-04-20 09:34:15 +02:00
2024-02-23 08:54:52 +01:00
2024-02-23 08:54:42 +01:00
2024-06-16 13:39:21 +02:00
2024-05-17 11:50:52 +02:00
2023-11-28 16:56:27 +00:00
2024-07-05 09:14:22 +02:00
2024-07-05 09:14:22 +02:00
2022-04-20 09:34:17 +02:00
2021-08-09 23:30:25 -04:00
2023-10-06 13:18:17 +02:00
2024-06-16 13:39:24 +02:00
2024-07-05 09:14:26 +02:00
2024-06-16 13:39:43 +02:00
2023-09-19 12:22:45 +02:00
2022-08-17 14:23:51 +02:00
2023-08-30 16:18:21 +02:00
2021-08-11 22:25:42 -04:00
2024-06-16 13:40:01 +02:00
2022-10-26 12:35:46 +02:00
2021-05-15 18:01:34 -04:00
2021-03-18 22:18:09 -04:00
2021-01-22 21:14:08 -05:00
2023-07-23 13:47:11 +02:00
2021-01-22 21:14:07 -05:00
2023-08-16 18:22:03 +02:00
2021-05-07 00:26:34 -07:00
2021-03-29 23:33:06 -04:00
2021-11-25 09:48:27 +01:00
2022-04-13 20:59:07 +02:00
2021-08-11 22:25:38 -04:00
2021-01-13 00:14:07 -05:00
2021-06-18 23:27:04 -04:00
2020-11-23 22:12:09 -05:00
2021-03-15 22:29:00 -04:00
2021-01-22 21:14:08 -05:00
2021-08-01 13:27:46 -04:00
2021-05-14 22:19:04 -04:00
2021-07-28 22:24:25 -04:00
2021-06-02 23:09:39 -04:00
2022-06-09 10:23:22 +02:00
2021-01-22 21:14:10 -05:00
2023-06-09 10:32:34 +02:00
2023-06-09 10:32:34 +02:00
2021-05-31 22:48:21 -04:00
2021-01-26 07:42:27 +01:00
2021-05-31 22:48:24 -04:00
2020-07-08 01:12:44 -04:00
2021-06-02 01:37:04 -04:00
2021-01-26 07:42:27 +01:00
2024-04-10 16:19:32 +02:00
2021-04-01 22:52:40 -04:00
2024-06-16 13:39:21 +02:00
2020-09-02 22:49:06 -04:00
2021-05-31 22:48:21 -04:00
2021-06-18 23:01:03 -04:00
2021-03-18 23:35:55 -04:00
2021-01-22 21:14:10 -05:00
2023-03-11 13:57:31 +01:00
2021-06-29 16:46:08 -04:00
2021-08-11 22:25:39 -04:00
2021-05-07 00:26:34 -07:00
2023-04-13 16:48:24 +02:00
2022-10-26 12:35:16 +02:00
2021-04-13 00:20:48 -04:00
2024-03-01 13:21:58 +01:00
2021-08-30 10:18:25 +02:00
2022-04-27 14:38:56 +02:00
2023-02-09 11:26:39 +01:00
2021-03-24 22:16:12 -04:00
2020-10-02 21:52:53 -04:00
2020-12-07 20:24:09 -05:00
2021-08-23 23:07:05 -04:00
2023-05-11 23:00:26 +09:00
2021-05-31 22:48:23 -04:00
2021-08-11 22:25:40 -04:00
2024-04-10 16:19:41 +02:00
2024-04-10 16:19:41 +02:00
2021-09-13 22:15:47 -04:00
2021-01-22 21:14:12 -05:00
2021-08-11 22:25:38 -04:00
2020-12-07 20:24:09 -05:00
2021-05-31 22:48:23 -04:00
2022-06-22 14:21:57 +02:00
2021-05-21 16:59:33 -04:00
2021-06-18 23:01:03 -04:00
2021-05-31 22:48:21 -04:00
2021-08-23 23:06:56 -04:00
2021-05-31 22:48:23 -04:00
2021-08-11 22:25:41 -04:00
2023-08-30 16:18:21 +02:00
2021-08-01 13:21:40 -04:00
2021-07-28 22:24:27 -04:00
2022-12-31 13:14:25 +01:00
2022-01-27 11:05:22 +01:00
2023-03-30 12:47:55 +02:00
2021-03-24 23:03:43 -04:00
2024-02-23 08:54:59 +01:00
2022-08-03 12:03:47 +02:00
2024-02-23 08:54:59 +01:00
2021-08-11 22:25:37 -04:00
2022-01-27 11:04:15 +01:00
2024-02-23 08:54:53 +01:00
2023-08-16 18:22:03 +02:00
2023-02-09 11:26:34 +01:00
2022-11-10 18:15:34 +01:00
2022-04-08 14:22:54 +02:00
2023-09-19 12:22:44 +02:00
2024-07-05 09:14:22 +02:00
2021-08-11 22:25:37 -04:00
2021-04-05 23:14:53 -04:00
2023-04-26 13:51:50 +02:00
2021-05-06 19:24:11 -07:00
2021-09-21 23:52:55 -04:00
2022-11-03 23:59:20 +09:00
2020-10-14 15:15:35 -07:00
2020-09-15 20:28:06 -04:00
2023-04-20 12:13:55 +02:00
2022-08-17 14:22:55 +02:00
2020-09-25 06:20:44 +02:00
2021-03-18 22:52:29 -04:00
2021-05-07 00:26:34 -07:00
2022-04-27 14:38:58 +02:00
2022-01-27 11:05:03 +01:00
2023-09-19 12:23:02 +02:00
2022-03-16 14:23:46 +01:00
2021-08-23 12:54:30 -06:00
2023-06-09 10:32:29 +02:00
2024-02-23 08:55:03 +01:00
2021-08-11 22:25:41 -04:00
2021-04-13 00:20:48 -04:00
2020-10-02 21:52:55 -04:00
2021-09-28 22:47:28 -04:00
2022-01-05 12:42:39 +01:00
2022-06-22 14:21:57 +02:00
2021-05-31 22:48:23 -04:00
2021-08-16 13:33:24 -04:00
2022-03-11 12:22:36 +01:00
2021-08-30 10:18:25 +02:00
2022-04-13 20:59:15 +02:00