.. | .. |
---|
76 | 76 | |
---|
77 | 77 | static void do_mcu_done(struct rk_tb_serv *serv) |
---|
78 | 78 | { |
---|
79 | | - struct rk_tb_client *client, *client_s; |
---|
| 79 | + struct rk_tb_client *client; |
---|
80 | 80 | struct rockchip_mbox_msg msg; |
---|
81 | 81 | |
---|
82 | 82 | rockchip_mbox_read_msg(serv->mbox_rx_chan, &msg); |
---|
.. | .. |
---|
97 | 97 | return; |
---|
98 | 98 | } |
---|
99 | 99 | |
---|
100 | | - list_for_each_entry_safe(client, client_s, &clients_list, node) { |
---|
| 100 | + while (!list_empty(&clients_list)) { |
---|
| 101 | + client = list_first_entry(&clients_list, struct rk_tb_client, node); |
---|
| 102 | + list_del(&client->node); |
---|
101 | 103 | spin_unlock(&lock); |
---|
102 | 104 | if (client->cb) |
---|
103 | 105 | client->cb(client->data); |
---|
104 | 106 | spin_lock(&lock); |
---|
105 | | - list_del(&client->node); |
---|
106 | 107 | } |
---|
107 | 108 | atomic_set(&mcu_done, 1); |
---|
108 | 109 | spin_unlock(&lock); |
---|