mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-02 03:57:34 -04:00
Merge tag 'thunderbolt-for-v5.10-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/westeri/thunderbolt into usb-linus
Mika writes: thunderbolt: Fix for v5.10-rc7 This includes a single fix for use-after-free bug after resume from hibernation. * tag 'thunderbolt-for-v5.10-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/westeri/thunderbolt: thunderbolt: Fix use-after-free in remove_unplugged_switch()
This commit is contained in:
@@ -1976,7 +1976,9 @@ static int complete_rpm(struct device *dev, void *data)
|
||||
|
||||
static void remove_unplugged_switch(struct tb_switch *sw)
|
||||
{
|
||||
pm_runtime_get_sync(sw->dev.parent);
|
||||
struct device *parent = get_device(sw->dev.parent);
|
||||
|
||||
pm_runtime_get_sync(parent);
|
||||
|
||||
/*
|
||||
* Signal this and switches below for rpm_complete because
|
||||
@@ -1987,8 +1989,10 @@ static void remove_unplugged_switch(struct tb_switch *sw)
|
||||
bus_for_each_dev(&tb_bus_type, &sw->dev, NULL, complete_rpm);
|
||||
tb_switch_remove(sw);
|
||||
|
||||
pm_runtime_mark_last_busy(sw->dev.parent);
|
||||
pm_runtime_put_autosuspend(sw->dev.parent);
|
||||
pm_runtime_mark_last_busy(parent);
|
||||
pm_runtime_put_autosuspend(parent);
|
||||
|
||||
put_device(parent);
|
||||
}
|
||||
|
||||
static void icm_free_unplugged_children(struct tb_switch *sw)
|
||||
|
||||
Reference in New Issue
Block a user