Staging driver fixes for 5.0-rc4

Here are some small staging driver fixes for 5.0-rc4.
 
 They resolve some reported bugs and add a new device id for one driver.
 Nothing major at all, but all good to have.
 
 All of these have been in linux-next for a while with no reported
 issues.
 
 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 -----BEGIN PGP SIGNATURE-----
 
 iG0EABECAC0WIQT0tgzFv3jCIUoxPcsxR9QN2y37KQUCXEr+Xw8cZ3JlZ0Brcm9h
 aC5jb20ACgkQMUfUDdst+ymMhQCgvyEifc3BlhEp6AJtznXTqgIrBXUAn363S3zJ
 k0o8Rr4iONcRwyIbWMn5
 =mO7R
 -----END PGP SIGNATURE-----

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

Pull staging driver fixes from Greg KH:
 "Here are some small staging driver fixes for 5.0-rc4.

  They resolve some reported bugs and add a new device id for one
  driver. Nothing major at all, but all good to have.

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

* tag 'staging-5.0-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
  staging: android: ion: Support cpu access during dma_buf_detach
  staging: rtl8723bs: Fix build error with Clang when inlining is disabled
  staging: rtl8188eu: Add device code for D-Link DWA-121 rev B1
  staging: vchiq: Fix local event signalling
  Staging: wilc1000: unlock on error in init_chip()
  staging: wilc1000: fix memory leak in wilc_add_rx_gtk
  staging: wilc1000: fix registration frame size
This commit is contained in:
Linus Torvalds 2019-01-25 13:02:12 -10:00
Родитель 473721f9c6 31eb79db42
Коммит 96f18cb89f
6 изменённых файлов: 12 добавлений и 10 удалений

Просмотреть файл

@ -248,10 +248,10 @@ static void ion_dma_buf_detatch(struct dma_buf *dmabuf,
struct ion_dma_buf_attachment *a = attachment->priv; struct ion_dma_buf_attachment *a = attachment->priv;
struct ion_buffer *buffer = dmabuf->priv; struct ion_buffer *buffer = dmabuf->priv;
free_duped_table(a->table);
mutex_lock(&buffer->lock); mutex_lock(&buffer->lock);
list_del(&a->list); list_del(&a->list);
mutex_unlock(&buffer->lock); mutex_unlock(&buffer->lock);
free_duped_table(a->table);
kfree(a); kfree(a);
} }

Просмотреть файл

@ -35,6 +35,7 @@ static const struct usb_device_id rtw_usb_id_tbl[] = {
{USB_DEVICE(0x2001, 0x330F)}, /* DLink DWA-125 REV D1 */ {USB_DEVICE(0x2001, 0x330F)}, /* DLink DWA-125 REV D1 */
{USB_DEVICE(0x2001, 0x3310)}, /* Dlink DWA-123 REV D1 */ {USB_DEVICE(0x2001, 0x3310)}, /* Dlink DWA-123 REV D1 */
{USB_DEVICE(0x2001, 0x3311)}, /* DLink GO-USB-N150 REV B1 */ {USB_DEVICE(0x2001, 0x3311)}, /* DLink GO-USB-N150 REV B1 */
{USB_DEVICE(0x2001, 0x331B)}, /* D-Link DWA-121 rev B1 */
{USB_DEVICE(0x2357, 0x010c)}, /* TP-Link TL-WN722N v2 */ {USB_DEVICE(0x2357, 0x010c)}, /* TP-Link TL-WN722N v2 */
{USB_DEVICE(0x0df6, 0x0076)}, /* Sitecom N150 v2 */ {USB_DEVICE(0x0df6, 0x0076)}, /* Sitecom N150 v2 */
{USB_DEVICE(USB_VENDER_ID_REALTEK, 0xffef)}, /* Rosewill RNX-N150NUB */ {USB_DEVICE(USB_VENDER_ID_REALTEK, 0xffef)}, /* Rosewill RNX-N150NUB */

Просмотреть файл

@ -850,18 +850,18 @@ enum ieee80211_state {
#define IP_FMT "%pI4" #define IP_FMT "%pI4"
#define IP_ARG(x) (x) #define IP_ARG(x) (x)
extern __inline int is_multicast_mac_addr(const u8 *addr) static inline int is_multicast_mac_addr(const u8 *addr)
{ {
return ((addr[0] != 0xff) && (0x01 & addr[0])); return ((addr[0] != 0xff) && (0x01 & addr[0]));
} }
extern __inline int is_broadcast_mac_addr(const u8 *addr) static inline int is_broadcast_mac_addr(const u8 *addr)
{ {
return ((addr[0] == 0xff) && (addr[1] == 0xff) && (addr[2] == 0xff) && \ return ((addr[0] == 0xff) && (addr[1] == 0xff) && (addr[2] == 0xff) && \
(addr[3] == 0xff) && (addr[4] == 0xff) && (addr[5] == 0xff)); (addr[3] == 0xff) && (addr[4] == 0xff) && (addr[5] == 0xff));
} }
extern __inline int is_zero_mac_addr(const u8 *addr) static inline int is_zero_mac_addr(const u8 *addr)
{ {
return ((addr[0] == 0x00) && (addr[1] == 0x00) && (addr[2] == 0x00) && \ return ((addr[0] == 0x00) && (addr[1] == 0x00) && (addr[2] == 0x00) && \
(addr[3] == 0x00) && (addr[4] == 0x00) && (addr[5] == 0x00)); (addr[3] == 0x00) && (addr[4] == 0x00) && (addr[5] == 0x00));

Просмотреть файл

@ -446,6 +446,7 @@ remote_event_wait(wait_queue_head_t *wq, struct remote_event *event)
static inline void static inline void
remote_event_signal_local(wait_queue_head_t *wq, struct remote_event *event) remote_event_signal_local(wait_queue_head_t *wq, struct remote_event *event)
{ {
event->fired = 1;
event->armed = 0; event->armed = 0;
wake_up_all(wq); wake_up_all(wq);
} }

Просмотреть файл

@ -36,7 +36,7 @@ struct wilc_op_mode {
struct wilc_reg_frame { struct wilc_reg_frame {
bool reg; bool reg;
u8 reg_id; u8 reg_id;
__le32 frame_type; __le16 frame_type;
} __packed; } __packed;
struct wilc_drv_handler { struct wilc_drv_handler {
@ -1744,7 +1744,6 @@ int wilc_add_rx_gtk(struct wilc_vif *vif, const u8 *rx_gtk, u8 gtk_key_len,
result = wilc_send_config_pkt(vif, WILC_SET_CFG, wid_list, result = wilc_send_config_pkt(vif, WILC_SET_CFG, wid_list,
ARRAY_SIZE(wid_list), ARRAY_SIZE(wid_list),
wilc_get_vif_idx(vif)); wilc_get_vif_idx(vif));
kfree(gtk_key);
} else if (mode == WILC_STATION_MODE) { } else if (mode == WILC_STATION_MODE) {
struct wid wid; struct wid wid;
@ -1754,9 +1753,9 @@ int wilc_add_rx_gtk(struct wilc_vif *vif, const u8 *rx_gtk, u8 gtk_key_len,
wid.val = (u8 *)gtk_key; wid.val = (u8 *)gtk_key;
result = wilc_send_config_pkt(vif, WILC_SET_CFG, &wid, 1, result = wilc_send_config_pkt(vif, WILC_SET_CFG, &wid, 1,
wilc_get_vif_idx(vif)); wilc_get_vif_idx(vif));
kfree(gtk_key);
} }
kfree(gtk_key);
return result; return result;
} }

Просмотреть файл

@ -1252,21 +1252,22 @@ static u32 init_chip(struct net_device *dev)
ret = wilc->hif_func->hif_read_reg(wilc, 0x1118, &reg); ret = wilc->hif_func->hif_read_reg(wilc, 0x1118, &reg);
if (!ret) { if (!ret) {
netdev_err(dev, "fail read reg 0x1118\n"); netdev_err(dev, "fail read reg 0x1118\n");
return ret; goto release;
} }
reg |= BIT(0); reg |= BIT(0);
ret = wilc->hif_func->hif_write_reg(wilc, 0x1118, reg); ret = wilc->hif_func->hif_write_reg(wilc, 0x1118, reg);
if (!ret) { if (!ret) {
netdev_err(dev, "fail write reg 0x1118\n"); netdev_err(dev, "fail write reg 0x1118\n");
return ret; goto release;
} }
ret = wilc->hif_func->hif_write_reg(wilc, 0xc0000, 0x71); ret = wilc->hif_func->hif_write_reg(wilc, 0xc0000, 0x71);
if (!ret) { if (!ret) {
netdev_err(dev, "fail write reg 0xc0000\n"); netdev_err(dev, "fail write reg 0xc0000\n");
return ret; goto release;
} }
} }
release:
release_bus(wilc, WILC_BUS_RELEASE_ONLY); release_bus(wilc, WILC_BUS_RELEASE_ONLY);
return ret; return ret;