Skip to content

Feature/wb85 wbec drivers rebase - #241

Closed
pgasheev wants to merge 15 commits into
dev/v6.8from
feature/wb85-wbec-drivers-rebase
Closed

Feature/wb85 wbec drivers rebase#241
pgasheev wants to merge 15 commits into
dev/v6.8from
feature/wb85-wbec-drivers-rebase

Conversation

@pgasheev

@pgasheevpgasheev commented Aug 22, 2024

Copy link
Copy Markdown
Contributor

Ребейз #234 на ветку dev/v6.8
Также проверил через checkpatch, можно финально смотреть.

Потестить можно через тестинг-сет

echo "deb http://deb.wirenboard.com/all experimental.wb85_wbec main" > /etc/apt/sources.list.d/wb85_wbec.list
apt update; apt upgrade
wb-ec-firmware-update
reboot

@pgasheev
pgasheev requested a review from webconnAugust 22, 2024 14:11
Comment threadarch/arm64/boot/dts/allwinner/sun50i-h616-wirenboard85x.dtsi
Comment threadarch/arm64/boot/dts/allwinner/sun50i-h616-wirenboard85x.dtsi
Comment threadarch/arm64/boot/dts/allwinner/sun50i-h616-wirenboard85x.dtsi
Comment threadarch/arm64/configs/wb8.config

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

может сразу сделать какую-нибудь отладочную ручку для того, чтобы читать регистры pmic? коллеги-электронщики часто такое хотят

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Да, полезная штука, подумаю как сделать

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Но это ручка думаю будет через debugfs, в этот драйвер она вроде не особо ложится и изменений тут не потребуется

@pgasheev
pgasheev requested a review from webconnAugust 28, 2024 13:14

@webconnwebconn left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

debugfs драйвер на потом в итоге отложим?

Comment threadarch/arm64/boot/dts/allwinner/sun50i-h616-wirenboard85x.dtsi
@webconn

Copy link
Copy Markdown
Contributor

на железе не проверял

@pgasheev

Copy link
Copy Markdown
ContributorAuthor

debugfs драйвер на потом в итоге отложим?

Так там драйвера отдельного я думаю не будет, у нас уже есть в debugfs возможность читать/писать регистры. Вот на это скриптом можно натянуть чтение регистров PMIC

@pgasheev

Copy link
Copy Markdown
ContributorAuthor

Rebase #249

@pgasheev
pgasheev deleted the feature/wb85-wbec-drivers-rebase branch September 12, 2024 06:28
taraant pushed a commit that referenced this pull request Apr 14, 2026
[ Upstream commit fecacfc95f195b99c71c579a472120d0b4ed65fa ]
iavf incorrectly uses real_num_tx_queues for ETH_SS_STATS. Since the
value could change in runtime, we should use num_tx_queues instead.
Moreover iavf_get_ethtool_stats() uses num_active_queues while
iavf_get_sset_count() and iavf_get_stat_strings() use
real_num_tx_queues, which triggers out-of-bounds writes when we do
"ethtool -L" and "ethtool -S" simultaneously [1].
For example when we change channels from 1 to 8, Thread 3 could be
scheduled before Thread 2, and out-of-bounds writes could be triggered
in Thread 3:
Thread 1 (ethtool -L) Thread 2 (work) Thread 3 (ethtool -S)
iavf_set_channels()
...
iavf_alloc_queues()
-> num_active_queues = 8
iavf_schedule_finish_config()
iavf_get_sset_count()
real_num_tx_queues: 1
-> buffer for 1 queue
iavf_get_ethtool_stats()
num_active_queues: 8
-> out-of-bounds!
iavf_finish_config()
-> real_num_tx_queues = 8
Use immutable num_tx_queues in all related functions to avoid the issue.
[1]
BUG: KASAN: vmalloc-out-of-bounds in iavf_add_one_ethtool_stat+0x200/0x270
Write of size 8 at addr ffffc900031c9080 by task ethtool/5800
CPU: 1 UID: 0 PID: 5800 Comm: ethtool Not tainted 6.19.0-enjuk-08403-g8137e3db7f1c #241 PREEMPT(full)
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
Call Trace:
<TASK>
dump_stack_lvl+0x6f/0xb0
print_report+0x170/0x4f3
kasan_report+0xe1/0x180
iavf_add_one_ethtool_stat+0x200/0x270
iavf_get_ethtool_stats+0x14c/0x2e0
__dev_ethtool+0x3d0c/0x5830
dev_ethtool+0x12d/0x270
dev_ioctl+0x53c/0xe30
sock_do_ioctl+0x1a9/0x270
sock_ioctl+0x3d4/0x5e0
__x64_sys_ioctl+0x137/0x1c0
do_syscall_64+0xf3/0x690
entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7f7da0e6e36d
...
</TASK>
The buggy address belongs to a 1-page vmalloc region starting at 0xffffc900031c9000 allocated at __dev_ethtool+0x3cc9/0x5830
The buggy address belongs to the physical page: page: refcount:1 mapcount:0 mapping:0000000000000000
index:0xffff88813a013de0 pfn:0x13a013
flags: 0x200000000000000(node=0|zone=2)
raw: 0200000000000000 0000000000000000 dead000000000122 0000000000000000
raw: ffff88813a013de0 0000000000000000 00000001ffffffff 0000000000000000
page dumped because: kasan: bad access detected
Memory state around the buggy address:
ffffc900031c8f80: f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8
ffffc900031c9000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>ffffc900031c9080: f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8
^
ffffc900031c9100: f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8
ffffc900031c9180: f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8
Fixes: 64430f7 ("iavf: Fix displaying queue statistics shown by ethtool")
Signed-off-by: Kohei Enju <kohei@enjuk.jp>
Reviewed-by: Simon Horman <horms@kernel.org>
Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Reviewed-by: Paul Menzel <pmenzel@molgen.mpg.de>
Tested-by: Rafal Romanowski <rafal.romanowski@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@pgasheev@webconn