Zhizhou Zhang
b2d102bd01
tee: optee: avoid possible double list_del()
...
This bug occurs when:
- a new request arrives, one thread(let's call it A) is pending in
optee_supp_req() with req->busy is initial value false.
- tee-supplicant is killed, then optee_supp_release() is called, this
function calls list_del(&req->link), and set supp->ctx to NULL. And
it also wake up process A.
- process A continues, it firstly checks supp->ctx which is NULL,
then checks req->busy which is false, at last run list_del(&req->link).
This triggers double list_del() and results kernel panic.
For solve this problem, we rename req->busy to req->in_queue, and
associate it with state of whether req is linked to supp->reqs. So we
can just only check req->in_queue to make decision calling list_del()
or not.
Signed-off-by: Zhizhou Zhang <zhizhouzhang@asrmicro.com >
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org >
2018-12-11 14:38:21 +01:00
..
2018-12-09 09:46:54 -08:00
2018-11-26 20:01:47 +01:00
2018-12-03 12:54:39 -07:00
2018-11-27 15:32:06 -08:00
2018-11-01 18:34:46 -07:00
2018-11-11 11:40:04 -08:00
2018-11-16 09:31:59 -06:00
2018-10-24 14:43:41 +01:00
2018-10-29 15:16:01 -07:00
2018-10-25 11:17:40 -06:00
2018-10-27 09:24:24 -07:00
2018-12-03 09:54:48 -08:00
2018-11-11 16:41:50 -06:00
2018-11-19 11:26:06 +01:00
2018-11-08 18:53:00 +01:00
2018-11-09 17:35:43 +08:00
2018-12-06 22:53:05 +05:30
2018-11-16 08:50:53 +01:00
2018-11-02 11:17:22 -07:00
2018-11-27 13:50:20 +01:00
2018-10-16 11:13:50 +02:00
2018-11-26 10:13:04 +11:00
2018-12-06 17:22:23 +01:00
2018-12-02 12:19:44 -08:00
2018-12-06 14:12:02 +10:00
2018-12-04 08:47:04 -08:00
2018-12-03 08:01:01 +01:00
2018-11-18 14:34:56 -08:00
2018-10-11 12:12:55 +02:00
2018-12-06 23:14:59 +01:00
2018-12-02 22:09:09 -08:00
2018-10-23 13:32:18 +01:00
2018-11-16 11:42:12 +00:00
2018-11-29 15:16:45 -07:00
2018-12-04 08:47:04 -08:00
2018-11-22 17:02:21 +01:00
2018-11-01 12:38:48 +01:00
2018-11-01 19:58:52 -07:00
2018-11-08 17:49:04 -06:00
2018-10-09 08:25:08 -06:00
2018-10-31 08:54:16 -07:00
2018-10-29 10:30:44 -07:00
2018-11-02 11:25:48 -07:00
2018-11-27 13:51:32 -05:00
2018-12-05 09:59:38 +00:00
2018-11-27 09:00:38 +01:00
2018-11-19 14:11:07 +01:00
2018-11-28 15:41:50 +01:00
2018-10-23 08:45:05 +01:00
2018-12-09 11:46:58 -08:00
2018-10-23 13:28:53 -05:00
2018-11-01 10:33:12 -04:00
2018-12-05 14:16:12 -08:00
2018-12-07 07:11:11 -08:00
2018-11-11 09:15:29 -08:00
2018-11-09 16:41:58 -06:00
2018-11-23 10:47:21 +05:30
2018-10-17 17:22:26 +02:00
2018-12-03 18:05:17 -06:00
2018-10-26 14:36:21 -07:00
2018-10-22 17:30:06 +01:00
2018-11-21 13:13:58 +05:30
2018-11-05 09:33:22 +01:00
2018-11-01 08:42:21 -07:00
2018-10-26 12:09:58 -07:00
2018-10-23 13:32:18 +01:00
2018-10-28 19:20:06 -07:00
2018-10-16 13:16:15 +02:00
2018-10-23 01:54:44 +01:00
2018-10-19 12:54:03 -07:00
2018-10-29 15:16:01 -07:00
2018-11-30 12:23:44 -08:00
2018-12-06 14:22:35 -05:00
2018-12-02 20:55:23 -08:00
2018-12-05 17:06:31 -08:00
2018-10-31 08:54:16 -07:00
2018-11-07 14:59:28 +01:00
2018-11-02 11:22:09 -07:00
2018-11-28 08:33:55 -08:00
2018-10-05 11:37:20 +03:00
2018-12-09 10:35:33 -08:00
2018-11-05 22:16:00 -05:00
2018-10-11 09:16:44 -07:00
2018-12-11 14:38:21 +01:00
2018-12-05 06:47:46 -08:00
2018-11-26 20:38:49 +01:00
2018-12-09 10:24:29 -08:00
2018-11-11 09:21:46 -08:00
2018-12-06 18:02:58 +01:00
2018-10-31 11:01:38 -07:00
2018-12-09 15:12:33 -08:00
2018-10-31 11:41:37 -07:00
2018-10-24 20:57:55 -04:00
2018-10-15 20:50:32 +02:00
2018-10-22 10:16:28 +02:00
2018-12-02 12:15:55 -08:00