Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'staging-5.14-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging

Pull staging driver fixes from Greg KH:
"Here are a few small staging driver fixes for 5.14-rc5 to resolve some
reported problems. They include:

- mt7621 driver fix

- rtl8723bs driver fixes

- rtl8712 driver fixes.

Nothing major, just small problems resolved.

All have been in linux-next for a while with no reported issues"

* tag 'staging-5.14-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
staging: mt7621-pci: avoid to re-disable clock for those pcies not in use
staging: rtl8712: error handling refactoring
staging: rtl8712: get rid of flush_scheduled_work
staging: rtl8723bs: select CONFIG_CRYPTO_LIB_ARC4
staging: rtl8723bs: Fix a resource leak in sd_int_dpc

+62 -37
-1
drivers/staging/mt7621-pci/pci-mt7621.c
··· 422 422 dev_err(dev, "pcie%d no card, disable it (RST & CLK)\n", 423 423 slot); 424 424 mt7621_control_assert(port); 425 - clk_disable_unprepare(port->clk); 426 425 port->enabled = false; 427 426 428 427 if (slot == 0) {
+20 -10
drivers/staging/rtl8712/hal_init.c
··· 29 29 #define FWBUFF_ALIGN_SZ 512 30 30 #define MAX_DUMP_FWSZ (48 * 1024) 31 31 32 + static void rtl871x_load_fw_fail(struct _adapter *adapter) 33 + { 34 + struct usb_device *udev = adapter->dvobjpriv.pusbdev; 35 + struct device *dev = &udev->dev; 36 + struct device *parent = dev->parent; 37 + 38 + complete(&adapter->rtl8712_fw_ready); 39 + 40 + dev_err(&udev->dev, "r8712u: Firmware request failed\n"); 41 + 42 + if (parent) 43 + device_lock(parent); 44 + 45 + device_release_driver(dev); 46 + 47 + if (parent) 48 + device_unlock(parent); 49 + } 50 + 32 51 static void rtl871x_load_fw_cb(const struct firmware *firmware, void *context) 33 52 { 34 53 struct _adapter *adapter = context; 35 54 36 55 if (!firmware) { 37 - struct usb_device *udev = adapter->dvobjpriv.pusbdev; 38 - struct usb_interface *usb_intf = adapter->pusb_intf; 39 - 40 - dev_err(&udev->dev, "r8712u: Firmware request failed\n"); 41 - usb_put_dev(udev); 42 - usb_set_intfdata(usb_intf, NULL); 43 - r8712_free_drv_sw(adapter); 44 - adapter->dvobj_deinit(adapter); 45 - complete(&adapter->rtl8712_fw_ready); 46 - free_netdev(adapter->pnetdev); 56 + rtl871x_load_fw_fail(adapter); 47 57 return; 48 58 } 49 59 adapter->fw = firmware;
+8
drivers/staging/rtl8712/rtl8712_led.c
··· 1820 1820 break; 1821 1821 } 1822 1822 } 1823 + 1824 + void r8712_flush_led_works(struct _adapter *padapter) 1825 + { 1826 + struct led_priv *pledpriv = &padapter->ledpriv; 1827 + 1828 + flush_work(&pledpriv->SwLed0.BlinkWorkItem); 1829 + flush_work(&pledpriv->SwLed1.BlinkWorkItem); 1830 + }
+1
drivers/staging/rtl8712/rtl871x_led.h
··· 112 112 void r8712_InitSwLeds(struct _adapter *padapter); 113 113 void r8712_DeInitSwLeds(struct _adapter *padapter); 114 114 void LedControl871x(struct _adapter *padapter, enum LED_CTL_MODE LedAction); 115 + void r8712_flush_led_works(struct _adapter *padapter); 115 116 116 117 #endif 117 118
+8
drivers/staging/rtl8712/rtl871x_pwrctrl.c
··· 224 224 } 225 225 mutex_unlock(&pwrctrl->mutex_lock); 226 226 } 227 + 228 + void r8712_flush_rwctrl_works(struct _adapter *padapter) 229 + { 230 + struct pwrctrl_priv *pwrctrl = &padapter->pwrctrlpriv; 231 + 232 + flush_work(&pwrctrl->SetPSModeWorkItem); 233 + flush_work(&pwrctrl->rpwm_workitem); 234 + }
+1
drivers/staging/rtl8712/rtl871x_pwrctrl.h
··· 108 108 void r8712_set_ps_mode(struct _adapter *padapter, uint ps_mode, 109 109 uint smart_ps); 110 110 void r8712_set_rpwm(struct _adapter *padapter, u8 val8); 111 + void r8712_flush_rwctrl_works(struct _adapter *padapter); 111 112 112 113 #endif /* __RTL871X_PWRCTRL_H_ */
+21 -26
drivers/staging/rtl8712/usb_intf.c
··· 591 591 { 592 592 struct net_device *pnetdev = usb_get_intfdata(pusb_intf); 593 593 struct usb_device *udev = interface_to_usbdev(pusb_intf); 594 + struct _adapter *padapter = netdev_priv(pnetdev); 594 595 595 - if (pnetdev) { 596 - struct _adapter *padapter = netdev_priv(pnetdev); 596 + /* never exit with a firmware callback pending */ 597 + wait_for_completion(&padapter->rtl8712_fw_ready); 598 + usb_set_intfdata(pusb_intf, NULL); 599 + release_firmware(padapter->fw); 600 + if (drvpriv.drv_registered) 601 + padapter->surprise_removed = true; 602 + if (pnetdev->reg_state != NETREG_UNINITIALIZED) 603 + unregister_netdev(pnetdev); /* will call netdev_close() */ 604 + r8712_flush_rwctrl_works(padapter); 605 + r8712_flush_led_works(padapter); 606 + udelay(1); 607 + /* Stop driver mlme relation timer */ 608 + r8712_stop_drv_timers(padapter); 609 + r871x_dev_unload(padapter); 610 + r8712_free_drv_sw(padapter); 611 + free_netdev(pnetdev); 597 612 598 - /* never exit with a firmware callback pending */ 599 - wait_for_completion(&padapter->rtl8712_fw_ready); 600 - pnetdev = usb_get_intfdata(pusb_intf); 601 - usb_set_intfdata(pusb_intf, NULL); 602 - if (!pnetdev) 603 - goto firmware_load_fail; 604 - release_firmware(padapter->fw); 605 - if (drvpriv.drv_registered) 606 - padapter->surprise_removed = true; 607 - if (pnetdev->reg_state != NETREG_UNINITIALIZED) 608 - unregister_netdev(pnetdev); /* will call netdev_close() */ 609 - flush_scheduled_work(); 610 - udelay(1); 611 - /* Stop driver mlme relation timer */ 612 - r8712_stop_drv_timers(padapter); 613 - r871x_dev_unload(padapter); 614 - r8712_free_drv_sw(padapter); 615 - free_netdev(pnetdev); 613 + /* decrease the reference count of the usb device structure 614 + * when disconnect 615 + */ 616 + usb_put_dev(udev); 616 617 617 - /* decrease the reference count of the usb device structure 618 - * when disconnect 619 - */ 620 - usb_put_dev(udev); 621 - } 622 - firmware_load_fail: 623 618 /* If we didn't unplug usb dongle and remove/insert module, driver 624 619 * fails on sitesurvey for the first time when device is up. 625 620 * Reset usb port for sitesurvey fail issue.
+1
drivers/staging/rtl8723bs/Kconfig
··· 5 5 depends on m 6 6 select WIRELESS_EXT 7 7 select WEXT_PRIV 8 + select CRYPTO_LIB_ARC4 8 9 help 9 10 This option enables support for RTL8723BS SDIO drivers, such as 10 11 the wifi found on the 1st gen Intel Compute Stick, the CHIP
+2
drivers/staging/rtl8723bs/hal/sdio_ops.c
··· 909 909 } else { 910 910 rtw_c2h_wk_cmd(adapter, (u8 *)c2h_evt); 911 911 } 912 + } else { 913 + kfree(c2h_evt); 912 914 } 913 915 } else { 914 916 /* Error handling for malloc fail */