summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/spi/spi.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c
index e71881afe475..01a40bcfc352 100644
--- a/drivers/spi/spi.c
+++ b/drivers/spi/spi.c
@@ -2721,12 +2721,9 @@ EXPORT_SYMBOL_GPL(spi_res_add);
*/
void spi_res_release(struct spi_controller *ctlr, struct spi_message *message)
{
- struct spi_res *res;
-
- while (!list_empty(&message->resources)) {
- res = list_last_entry(&message->resources,
- struct spi_res, entry);
+ struct spi_res *res, *tmp;
+ list_for_each_entry_safe_reverse(res, tmp, &message->resources, entry) {
if (res->release)
res->release(ctlr, message, res->data);