]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
dpll: fix xa_alloc_cyclic() error handling
authorMichal Swiatkowski <michal.swiatkowski@linux.intel.com>
Wed, 12 Mar 2025 09:52:50 +0000 (10:52 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 28 Mar 2025 21:03:27 +0000 (22:03 +0100)
commitcb2f8a5c1fd9e7a1fefa23afe20570e16da1ada4
treedcb40b3e3d63966525a98e69ddb498acab214c3c
parentf8aaa38cfaf6f20afa4db36b6529032fb69165dc
dpll: fix xa_alloc_cyclic() error handling

[ Upstream commit 3614bf90130d60f191a5fe218d04f6251c678e13 ]

In case of returning 1 from xa_alloc_cyclic() (wrapping) ERR_PTR(1) will
be returned, which will cause IS_ERR() to be false. Which can lead to
dereference not allocated pointer (pin).

Fix it by checking if err is lower than zero.

This wasn't found in real usecase, only noticed. Credit to Pierre.

Fixes: 97f265ef7f5b ("dpll: allocate pin ids in cycle")
Signed-off-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com>
Reviewed-by: Vadim Fedorenko <vadim.fedorenko@linux.dev>
Reviewed-by: Arkadiusz Kubalewski <arkadiusz.kubalewski@intel.com>
Reviewed-by: Jiri Pirko <jiri@nvidia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/dpll/dpll_core.c