mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-08 12:52:40 -04:00
Merge tag 'gpio-fixes-for-v6.4-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux
Pull gpio fixes from Bartosz Golaszewski: "Two fixes for the GPIO testing module and one commit making Andy a reviewer for the GPIO subsystem: - fix a memory corruption bug in gpio-sim - fix inconsistencies in user-space configuration of gpio-sim - make Andy Shevchenko a reviewer for the GPIO subsystem" * tag 'gpio-fixes-for-v6.4-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux: MAINTAINERS: add Andy Shevchenko as reviewer for the GPIO subsystem gpio: sim: quietly ignore configured lines outside the bank gpio: sim: fix memory corruption when adding named lines and unnamed hogs
This commit is contained in:
@@ -8799,6 +8799,7 @@ F: include/linux/gpio/regmap.h
|
||||
GPIO SUBSYSTEM
|
||||
M: Linus Walleij <linus.walleij@linaro.org>
|
||||
M: Bartosz Golaszewski <brgl@bgdev.pl>
|
||||
R: Andy Shevchenko <andy@kernel.org>
|
||||
L: linux-gpio@vger.kernel.org
|
||||
S: Maintained
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux.git
|
||||
|
||||
@@ -696,6 +696,9 @@ static char **gpio_sim_make_line_names(struct gpio_sim_bank *bank,
|
||||
char **line_names;
|
||||
|
||||
list_for_each_entry(line, &bank->line_list, siblings) {
|
||||
if (line->offset >= bank->num_lines)
|
||||
continue;
|
||||
|
||||
if (line->name) {
|
||||
if (line->offset > max_offset)
|
||||
max_offset = line->offset;
|
||||
@@ -721,8 +724,13 @@ static char **gpio_sim_make_line_names(struct gpio_sim_bank *bank,
|
||||
if (!line_names)
|
||||
return ERR_PTR(-ENOMEM);
|
||||
|
||||
list_for_each_entry(line, &bank->line_list, siblings)
|
||||
line_names[line->offset] = line->name;
|
||||
list_for_each_entry(line, &bank->line_list, siblings) {
|
||||
if (line->offset >= bank->num_lines)
|
||||
continue;
|
||||
|
||||
if (line->name && (line->offset <= max_offset))
|
||||
line_names[line->offset] = line->name;
|
||||
}
|
||||
|
||||
return line_names;
|
||||
}
|
||||
@@ -754,6 +762,9 @@ static int gpio_sim_add_hogs(struct gpio_sim_device *dev)
|
||||
|
||||
list_for_each_entry(bank, &dev->bank_list, siblings) {
|
||||
list_for_each_entry(line, &bank->line_list, siblings) {
|
||||
if (line->offset >= bank->num_lines)
|
||||
continue;
|
||||
|
||||
if (line->hog)
|
||||
num_hogs++;
|
||||
}
|
||||
@@ -769,6 +780,9 @@ static int gpio_sim_add_hogs(struct gpio_sim_device *dev)
|
||||
|
||||
list_for_each_entry(bank, &dev->bank_list, siblings) {
|
||||
list_for_each_entry(line, &bank->line_list, siblings) {
|
||||
if (line->offset >= bank->num_lines)
|
||||
continue;
|
||||
|
||||
if (!line->hog)
|
||||
continue;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user