1: ba4a60a19233 ! 1: b717538431ae wifi: rtw88: usb: Download the reserved page synchronously @@ drivers/net/wireless/realtek/rtw88/usb.c: static int rtw_usb_write_port(struct r  +{  + struct rtw_usb *rtwusb = rtw_get_usb_priv(rtwdev);  + struct usb_device *usbd = rtwusb->udev; ++ int ep = qsel_to_ep(rtwusb, qsel);  + DECLARE_COMPLETION_ONSTACK(done); -+ struct urb *urb;  + unsigned int pipe; ++ struct urb *urb;  + int ret; -+ int ep = qsel_to_ep(rtwusb, qsel);  +  + if (ep < 0)  + return ep; @@ drivers/net/wireless/realtek/rtw88/usb.c: static int rtw_usb_write_port(struct r  + if (wait_for_completion_timeout(&done, secs_to_jiffies(5))) {  + ret = urb->status;  + } else { -+ /* returns after the completion handler has finished with &done */ ++ /* timed out; usb_kill_urb() waits for the completion handler */  + usb_kill_urb(urb);  + ret = urb->status == -ENOENT ? -ETIMEDOUT : urb->status;  + } @@ drivers/net/wireless/realtek/rtw88/usb.c: static void rtw_usb_write_port_complet { const struct rtw_chip_info *chip = rtwdev->chip; struct sk_buff *skb; + unsigned int size; + u8 qsel; +- int ret = 0; ++ int ret; +  + size = pkt_info->tx_pkt_size; + qsel = pkt_info->qsel;  @@ drivers/net/wireless/realtek/rtw88/usb.c: static int rtw_usb_write_data(struct rtw_dev *rtwdev, rtw_tx_fill_tx_desc(rtwdev, pkt_info, skb); rtw_tx_fill_txdesc_checksum(rtwdev, pkt_info, skb->data);