From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on sa.local.altlinux.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.1 Message-ID: <2f111be2-002b-4641-9fc4-8dededf9baef@altlinux.org> Date: Thu, 11 Jun 2026 14:15:20 +0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird To: devel-kernel@lists.altlinux.org References: <'<20260610083910.23062-1-rauty@altlinux.org> <20260611104408.227113-1-rauty@altlinux.org> <7f0d3faa-8609-b404-0aa1-4f5f679556f3@basealt.ru> Content-Language: en-US, ru From: Ajrat Makhmutov Autocrypt: addr=rauty@altlinux.org; keydata= xsFNBGTxrz4BEADS3JS2wc11A3Q+rlvmRN6X58lIHeGZf3uWsGsx7socqKxEMpntJIl9nf2n XjfqIIbrGOKmbMFUt/M9BipgyAoHkdi9lXRMrj6SNh9Z6cG7UrAUC9St+NavAFM5p5JpeDsJ VBO4a3yTc/0p1NobsPnoVhjQ9g8izEzu0NEcjoqL5F+iBesGVmtROCv/O0TqxvUuC2z+YE/N JDS9RbleFwVQHrq1IH0yM64tF+Bo1OP8LPkopPbBqtSocsCRRUmTZq/yyahH5RvG6GAvOYYv 3gwVJ9O9yJoq7/utIuhHxuV5naw+HbIsqaIfkF3fptiEx8pZr/gjDE2+ifO+EJ2qcAGqicni fcSnM5mB1MnPpMkOSMJ5h+1hx1xfstT+0SSiT1ZNfCoGSEDhhP3tyKCQYlDJNCrOnCOPxipL /SeH8wA79n3PWwDyCozUY9/3SIgRR1SlSHRoQEE5sBm49Wv3b8UN8DMz2+a2srzH/zOXYZbg n9ZjQa2z3In2rNOGK330QVmNrbVu46eQGNqSp/ZXMqJDN7ZrgDB5CbxcxYQLNfu8Oh4K+xQV 2RQPUZhdc3tARY4g2dD2iL9aypzg27vgGgpcLCFsx0WoSDkzr/M64RKVbJQKk1wjX4eF+vpR RT2RAYce4nO3jSQhY/kr/o9Unx43yjpVP9507ajZ0bLIbtwnBQARAQABzSRBanJhdCBNYWto bXV0b3YgPHJhdXR5QGFsdGxpbnV4Lm9yZz7CwXgEEwEIACIFAmTxrz4CGwMGCwkIBwMCBhUI AgkKCwQWAgMBAh4BAheAAAoJEDrM0NQduXvDxYUQAMGis2uKPtfXyRJAvXwh8/rGi76zW9Rj 2RUi8PiCpreXPm7jBrZVnsa/NGgQiHaUhhF6O0sEdadgr7rzMM+hnKrVX+GU2ilHRs5d55mN rgaC42f9+MMfwqnzA062ao32GTbgakU/IBl6ThwBnIA9yw7XckK0a4EKZ8w1hrnS/sBgSHJe xWNMdSIorYSIduDb2TuTYlSOVS4kvmik2xyViWheyuTfptgM6uwt0Fi+L/E7DHY3WFMJ/pE5 m36gr/qBS4btJc5yFhtOpirfz3qyvNoHfG6+dt9gIJEf4BSPabwl5y/XjTiwcZZSKnpvZaBd KygJlH+3XOrqNBZPbHYZexjcxzdc/ApIlpo6bdYTuj0wogEdzMYEnOdqX9NEg3pab4uB59cG YoY/85xsbP597mAK/jgvWrhSMiGpCSzeRKMQguxgetNZ1cY7q4KsBb0KIVxljYwMGzBIj1wu 2gbWzG791VDBoQjhBEw2LJRYdtVxsfMIdM9+hUHqckQm6zl5s2aFti75i1JsycHIPul6QsJu XVhVLFYjH5L1lp9rQfvTrKt/0Gmt8hkLbyuztenIwyI3qvCWOb2GDIc9GkfE4jbUx5M5G+8s T+dfH0rdXZ7J4Zydv2i7PWYGymc8ByDMe0P5WBKsN+/zeuHZQZR3lrNQvAf3741ZYz0fAowr y/HFzsFNBGTxrz4BEADBQxRdhzyi81QIDqdZShYK+9UYFZEpOuUe/4cTihJXIVgdW6YQ0xMs la77mmmCmM9sJz8/qRAQa/mq+HPc+Pp84/x2MTOLPmVZVAl11O/GOlU2ynxPKwX5ePq+JYHv yj4+z39OKtd4rlqCp2f4tlCljR06hKm1J7ssfdCgpFcV6rMSEpw0JW+2IAdpnS6tKEvOVnvS S6NR9erTHIsd0+zHmDGyIw7qs7iy9ArNcmTKxUR73qS0/zZVmqpr30WY9V2W/GNkbXB5NlCZ 5H4jy1lK9nV1QI4GcHvbGP64Zp62Oy/EE8dsN+1l2uxeTDDJIlGMq+GuEJ7658qxztr8A4OJ yCrI8ukaXXLABDt7s0DTJSMGOjqX0r3OiEDFftQv8d90A+wp3klEysfetTHvaZHLVrstUN+O nCsH8OJywe9wnEsVZZV3wKOrMeGODddmEzqUiZ9/EYMjvkuqEONnUoZjX6IA4fEEq6RhK9Xu KrmwoU3ln8/0hTVmHgTCYQzwKs1JB4b5XCjN870N9pSjedotJ+oHnhnbXSwBW09jJ/0sf7Co cLjDG1kxLaS3BvVm4jjdAujMADeHUTivjigM9LoObCMf4Eb8BGR49SUSue4dMCdimy8bI78a vYXgajrAbUGJurzzkzdF1eRBcvXNkOUHd5DIg/ebmzp3AMiDrezlRQARAQABwsFfBBgBCAAJ BQJk8a8+AhsMAAoJEDrM0NQduXvDg7cP/R+QFbYXqoG+Ua0g7P0n/4BFrBpckl0gsSzYZdqN JE1HHNfpcVtAH1vW2RDG028hWpvyFWBdeNxqvhArhQJNpkVs7Mm9KgZLaU2hWle/qolOc/wJ 74LrpGPw9JQWOE3zp1NHC9XLni/0UfTxlPaBGAqDGjlKPvVC7PX8thREJbQcOo5JavjiUpzF 0LKELH2ETL05AgnkH/DJROpeioVHQaLFeGP9JaBqJKWYq0wTBp6vlZj9DkzigmnJkcOKz227 ulbgSb4h3XAxbdd7tHXUfOW8ibfzrDCtJwn51N6qY435wyrlJ6tWdM8dWM3QK0HvEbPif9L+ w/5f5H5p/1rZCg2bt5Z8Ym2WVpx3pvrkPZsYdmH9SY/W7UquiF1NdSEvKR4ZQSKfiaa+TNxj J3yvCaFU+42DOJL5kruq9N42roZhfc7Gv4XypJ5I5D7helbCjNWh6XtgRDOICpSGH1JyyDCN cwcWCiyS7xg9peO/KC/R8fpRQm1IbTZy9c+Zlc84XnixrMa0ug9g6AT2kq4+JeFkH7eqedP9 71Um/IardWD9SRYZv+ktKUxn8prkAXIqEA/R2BmsgjPuChS7iqIO47LKo9pHY5VsicrmngP/ AF3jaArAFLmSJaXO3xq1AcvrUL37CBaZqP1IswgQ1l9k2z5iRi96j1Xl3ieaFrqwscG+ In-Reply-To: <7f0d3faa-8609-b404-0aa1-4f5f679556f3@basealt.ru> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Subject: Re: [d-kernel] [PATCH 3/2] wifi: mt76: mt7921: fix potential deadlock in mt7921_roc_abort_sync X-BeenThere: devel-kernel@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux kernel packages development List-Id: ALT Linux kernel packages development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Jun 2026 11:15:24 -0000 Archived-At: List-Archive: List-Post: Привет, Василий! 11.06.2026 14:07, Vasiliy Kovalev пишет: > Добрый день, > > On 6/11/26 13:44, Ajrat Makhmutov wrote: >> From: Sean Wang >> > > При бэкпортировании следует указывать хэш оригинального коммита из > mainline, например: > > commit d5059e52fd8bc624ec4255c9fa01a266513d126b upstream. > >> roc_abort_sync() can deadlock with roc_work(). roc_work() holds >> dev->mt76.mutex, while cancel_work_sync() waits for roc_work() >> to finish. If the caller already owns the same mutex, both >> sides block and no progress is possible. >> >> This deadlock can occur during station removal when >> mt76_sta_state() -> mt76_sta_remove() -> mt7921_mac_sta_remove() -> >> mt7921_roc_abort_sync() invokes cancel_work_sync() while >> roc_work() is still running and holding dev->mt76.mutex. >> >> This avoids the mutex deadlock and preserves exactly-once >> work ownership. >> >> Fixes: 352d966126e6 ("wifi: mt76: mt7921: fix a potential association >> failure upon resuming") >> Co-developed-by: Quan Zhou >> Signed-off-by: Quan Zhou >> Signed-off-by: Sean Wang >> Link: >> https://patch.msgid.link/20260126180013.8167-1-sean.wang@kernel.org >> Signed-off-by: Felix Fietkau >> (cherry picked from commit d5059e52fd8bc624ec4255c9fa01a266513d126b) > > cherry picked здесь не дает полезной информации, можно убрать > >> [ALT: keep del_timer_sync() instead of timer_delete_sync() — the >>   timer API rename is not present in 6.12.y. ] > > вместо "ALT" лучше указать бэкпортера "Ajrat" > >> --- >> Дополнение к ранее присланной серии из двух патчей. >> >> Саша Левин на ревью запроса в stable@ указал, что patch 2/2 (5ed54896, >> "fix a potential scan no APs") в одиночку вносит достижимый >> self-deadlock >> по dev->mt76.mutex: путь удаления станции идёт под этим mutex (его берёт >> ядровая mt76_sta_remove()), а добавленный там roc_abort_sync() делает >> cancel_work_sync() по roc_work(), который тоже хочет этот mutex. > > Саша Левин вроде как не против [1] принять серию из 3х патчей в stable > 6.12.y ветку, подготовьте исправленную версию и отправьте туда. > > [1] https://lore.kernel.org/all/20260610-stable-reply-0014@kernel.org/#t Апстрим по сути ещё не принял. Это только rc 7.1 из linux-next. Саша пишет, что либо я докажу, что исправление стабильное, либо нужно ждать выпуска 7.1. Ок, попробую доказать. > >> Этот коммит (d5059e52) — обязательное лечение, применять вместе с 2/2. >> Таким образом серия теперь из трёх патчей. >> >>   drivers/net/wireless/mediatek/mt76/mt7921/main.c | 13 ++++++++----- >>   1 file changed, 8 insertions(+), 5 deletions(-) >> >> diff --git a/drivers/net/wireless/mediatek/mt76/mt7921/main.c >> b/drivers/net/wireless/mediatek/mt76/mt7921/main.c >> index f2fffca868b51..99561094640f1 100644 >> --- a/drivers/net/wireless/mediatek/mt76/mt7921/main.c >> +++ b/drivers/net/wireless/mediatek/mt76/mt7921/main.c >> @@ -365,12 +365,15 @@ void mt7921_roc_abort_sync(struct mt792x_dev *dev) >>   { >>       struct mt792x_phy *phy = &dev->phy; >> >> +    if (!test_and_clear_bit(MT76_STATE_ROC, &phy->mt76->state)) >> +        return; >> + >>       del_timer_sync(&phy->roc_timer); >> -    cancel_work_sync(&phy->roc_work); >> -    if (test_and_clear_bit(MT76_STATE_ROC, &phy->mt76->state)) >> -        ieee80211_iterate_interfaces(mt76_hw(dev), >> -                         IEEE80211_IFACE_ITER_RESUME_ALL, >> -                         mt7921_roc_iter, (void *)phy); >> +    cancel_work(&phy->roc_work); >> + >> +    ieee80211_iterate_interfaces(mt76_hw(dev), >> +                     IEEE80211_IFACE_ITER_RESUME_ALL, >> +                     mt7921_roc_iter, (void *)phy); >>   } >>   EXPORT_SYMBOL_GPL(mt7921_roc_abort_sync); >> >> -- >> 2.50.1 >> _______________________________________________ >> devel-kernel mailing list >> devel-kernel@lists.altlinux.org >> https://lists.altlinux.org/mailman/listinfo/devel-kernel >