Manish Rangankar
21c963de2e
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:08:21 +02:00
..
2020-10-01 13:17:56 +02:00
2021-07-25 14:35:12 +02:00
2023-03-11 16:43:47 +01:00
2019-05-21 10:50:46 +02:00
2020-08-19 08:16:09 +02:00
2023-12-13 18:18:13 +01:00
2024-06-16 13:28:36 +02:00
2024-05-17 11:43:50 +02:00
2021-07-20 16:10:43 +02:00
2024-03-26 18:22:23 -04:00
2021-07-20 16:10:43 +02:00
2020-10-01 13:18:02 +02:00
2023-04-05 11:16:36 +02:00
2019-05-30 11:26:32 -07:00
2020-01-23 08:22:58 +01:00
2024-02-23 08:25:10 +01:00
2024-01-25 14:34:25 -08:00
2024-01-25 14:34:25 -08:00
2021-05-14 09:44:25 +02:00
2022-04-20 09:19:36 +02:00
2024-02-23 08:25:04 +01:00
2024-02-23 08:24:58 +01:00
2024-06-16 13:28:35 +02:00
2024-05-17 11:43:50 +02:00
2023-11-28 16:50:18 +00:00
2024-07-05 09:08:15 +02:00
2022-04-20 09:19:37 +02:00
2021-09-22 12:26:24 +02:00
2023-06-09 10:29:01 +02:00
2024-06-16 13:28:36 +02:00
2024-07-05 09:08:21 +02:00
2024-06-16 13:28:44 +02:00
2023-09-23 10:59:49 +02:00
2022-08-25 11:17:56 +02:00
2023-08-30 16:27:27 +02:00
2019-08-12 21:58:07 -04:00
2024-06-16 13:28:34 +02:00
2022-10-26 13:22:56 +02:00
2019-03-02 11:39:54 -08:00
2023-07-27 08:37:16 +02:00
2023-08-16 18:19:25 +02:00
2019-05-21 10:50:45 +02:00
2019-05-21 10:50:45 +02:00
2019-05-21 10:50:45 +02:00
2021-11-26 10:47:15 +01:00
2022-04-15 14:18:34 +02:00
2019-05-21 10:50:45 +02:00
2019-05-21 10:50:45 +02:00
2020-01-04 19:18:10 +01:00
2019-05-21 10:50:45 +02:00
2021-09-22 12:26:37 +02:00
2021-06-03 08:59:11 +02:00
2019-05-21 10:50:45 +02:00
2019-10-09 23:39:35 -04:00
2023-06-09 10:29:01 +02:00
2019-05-24 17:36:45 +02:00
2023-06-09 10:29:04 +02:00
2023-06-09 10:29:03 +02:00
2019-07-11 15:17:41 -07:00
2019-06-20 15:21:33 -04:00
2019-07-30 12:18:24 -04:00
2019-06-18 19:46:18 -04:00
2019-07-30 12:17:28 -04:00
2019-06-18 19:46:22 -04:00
2021-07-14 16:53:41 +02:00
2019-05-21 10:50:45 +02:00
2019-05-30 11:25:18 -07:00
2019-05-21 10:50:45 +02:00
2024-04-13 12:51:32 +02:00
2019-07-11 15:14:01 -07:00
2024-06-16 13:28:35 +02:00
2019-06-18 19:46:18 -04:00
2019-06-05 17:36:37 +02:00
2019-06-05 17:36:37 +02:00
2019-07-11 15:17:41 -07:00
2019-05-21 11:28:46 +02:00
2023-03-11 16:44:13 +01:00
2020-04-01 11:01:54 +02:00
2020-06-24 17:50:37 +02:00
2023-02-22 12:50:25 +01:00
2019-05-30 11:26:37 -07:00
2021-05-14 09:44:25 +02:00
2024-03-01 13:13:37 +01:00
2019-05-24 17:36:45 +02:00
2019-07-11 15:14:01 -07:00
2022-01-11 15:23:33 +01:00
2019-05-21 10:50:45 +02:00
2019-05-21 10:50:45 +02:00
2020-01-04 19:18:10 +01:00
2019-07-17 22:39:27 +09:00
2023-05-17 11:35:41 +02:00
2020-08-19 08:16:15 +02:00
2019-05-21 10:50:45 +02:00
2020-10-29 09:58:04 +01:00
2019-05-30 11:26:39 -07:00
2024-04-13 12:51:36 +02:00
2024-04-13 12:51:36 +02:00
2019-08-07 21:53:23 -04:00
2019-05-24 17:36:45 +02:00
2020-01-04 19:18:16 +01:00
2019-06-20 15:37:02 -04:00
2019-05-24 17:39:02 +02:00
2019-05-24 17:39:02 +02:00
2022-06-22 14:11:20 +02:00
2019-05-30 11:26:35 -07:00
2019-06-20 15:21:33 -04:00
2019-05-30 11:26:38 -07:00
2019-08-16 11:33:56 -07:00
2019-08-16 11:33:56 -07:00
2019-03-19 17:11:37 -04:00
2019-08-07 21:32:53 -04:00
2019-02-13 22:07:03 -05:00
2023-08-30 16:27:27 +02:00
2019-05-24 17:36:45 +02:00
2023-01-18 11:41:18 +01:00
2022-01-27 09:19:52 +01:00
2019-05-21 06:16:21 -04:00
2023-04-05 11:16:40 +02:00
2020-07-29 10:18:27 +02:00
2019-10-03 21:43:04 -04:00
2019-05-21 06:16:21 -04:00
2023-06-09 10:28:58 +02:00
2019-08-07 21:47:29 -04:00
2019-05-30 11:26:35 -07:00
2020-06-07 13:18:50 +02:00
2019-06-18 19:46:17 -04:00
2023-08-16 18:19:24 +02:00
2023-02-22 12:50:23 +01:00
2019-05-30 11:29:53 -07:00
2022-11-10 17:57:53 +01:00
2020-01-23 08:22:59 +01:00
2019-07-11 15:14:01 -07:00
2023-09-23 10:59:49 +02:00
2020-01-23 08:22:58 +01:00
2021-01-12 20:16:09 +01:00
2021-04-21 12:56:14 +02:00
2023-04-26 11:24:03 +02:00
2019-06-05 17:37:14 +02:00
2019-11-05 23:17:53 -05:00
2021-10-09 14:39:49 +02:00
2019-08-04 21:41:29 -06:00
2023-04-20 12:07:32 +02:00
2022-08-25 11:18:17 +02:00
2019-05-24 17:36:45 +02:00
2021-05-14 09:44:25 +02:00
2022-01-27 09:19:48 +01:00
2022-01-27 09:19:48 +01:00
2021-04-07 14:47:39 +02:00
2023-06-09 10:29:00 +02:00
2023-09-23 10:59:39 +02:00
2020-01-04 19:18:10 +01:00
2021-05-14 09:44:25 +02:00
2019-05-21 10:50:45 +02:00
2021-10-17 10:42:34 +02:00
2022-01-05 12:37:46 +01:00
2022-06-22 14:11:20 +02:00
2019-08-07 21:35:59 -04:00
2019-05-24 17:39:02 +02:00
2019-07-11 15:14:01 -07:00
2022-03-11 11:22:39 +01:00
2019-05-21 10:50:45 +02:00
2022-04-15 14:18:37 +02:00
2020-01-04 19:17:37 +01:00