Power management fix for 5.16-rc7

Fix a recent regression causing the loop in dpm_prepare() to become
 infinite if one of the device ->prepare() callbacks returns an error.
 -----BEGIN PGP SIGNATURE-----
 
 iQJGBAABCAAwFiEE4fcc61cGeeHD/fCwgsRv/nhiVHEFAmHCKZ4SHHJqd0Byand5
 c29ja2kubmV0AAoJEILEb/54YlRxrIwP/3gQbaUQjdMZ2rSX9hV8rZxEdzqOY9Js
 +JBMNSH9jc/8t0QlKGl+LmPlu79+Y5QFljCN0c4xCoSGisQfOnOrGtIAxWT2ldP0
 Uk02NXqAfJRnZ+g4FbwSN/CfdENdsKnBttpaKRQbXcxgzqERp+ahjVtPV1aSKE5i
 aAlsAgGqBAZCiSVkp0jG3ubo8Z/x6dWfjd4Y/CcSyhMpX8F4TjRR2Ka7QqRbdJr/
 5oEw4u8O4fkufiVCjq2Owd352VGJ1XFBasx1+OtyLkSy7wIH2Ofq9HIClM8+eJnH
 a8b9T0HEmNnKgSKQyIFzAOcpt4YCe0oQsfjGctFAvAAl6dBcGUQFGxzHAuNjSvrv
 yDdWkuFScXCTgM6vHoawwR4fCU5t5iHMNgp8o7qf3mWMA1EwCuC4CduK/W8QSQT8
 s/jsC4tuNOiW14PpUPpCEjButv0ylsZwyDu/VvztYEHKO1VsG3j065zoTio0WsaM
 Nu4IDRuR+1hDEDo0U1x+0BJPQh28o24Hu0iyU67ku0u2vcNoyn+/kVTPWMO4zLKZ
 fghe19hpTPwiSp3KEEtqDiRmW9bBRulJHuRxAHSgXDLPm7zeruW3pnQlGXBBzE2z
 TOYANBBPoaMpbZmLbg14ZsZvcw8IERXLJXqK5SoKYUVYp2IAXL4sIItU4ZRRKIBm
 NLBez5NM78bS
 =5TSj
 -----END PGP SIGNATURE-----

Merge tag 'pm-5.16-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm

Pull power management fix from Rafael Wysocki:
 "Fix a recent regression causing the loop in dpm_prepare() to become
  infinite if one of the device ->prepare() callbacks returns an error"

* tag 'pm-5.16-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
  PM: sleep: Fix error handling in dpm_prepare()
This commit is contained in:
Linus Torvalds 2021-12-21 12:31:55 -08:00
commit 2f47a9a4df

View file

@ -1902,7 +1902,7 @@ int dpm_prepare(pm_message_t state)
device_block_probing();
mutex_lock(&dpm_list_mtx);
while (!list_empty(&dpm_list)) {
while (!list_empty(&dpm_list) && !error) {
struct device *dev = to_device(dpm_list.next);
get_device(dev);