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

Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net

Pull to get the thermal netlink multicast group name fix, otherwise
the assertion added in net-next to netlink to detect that kind of bug
makes systems unbootable for some folks.

Signed-off-by: David S. Miller <davem@davemloft.net>

+133 -72
+4
drivers/bluetooth/ath3k.c
··· 73 73 { USB_DEVICE(0x03F0, 0x311D) }, 74 74 75 75 /* Atheros AR3012 with sflash firmware*/ 76 + { USB_DEVICE(0x0CF3, 0x0036) }, 76 77 { USB_DEVICE(0x0CF3, 0x3004) }, 77 78 { USB_DEVICE(0x0CF3, 0x3008) }, 78 79 { USB_DEVICE(0x0CF3, 0x311D) }, 80 + { USB_DEVICE(0x0CF3, 0x817a) }, 79 81 { USB_DEVICE(0x13d3, 0x3375) }, 80 82 { USB_DEVICE(0x04CA, 0x3004) }, 81 83 { USB_DEVICE(0x04CA, 0x3005) }, ··· 109 107 static struct usb_device_id ath3k_blist_tbl[] = { 110 108 111 109 /* Atheros AR3012 with sflash firmware*/ 110 + { USB_DEVICE(0x0CF3, 0x0036), .driver_info = BTUSB_ATH3012 }, 112 111 { USB_DEVICE(0x0cf3, 0x3004), .driver_info = BTUSB_ATH3012 }, 113 112 { USB_DEVICE(0x0cf3, 0x3008), .driver_info = BTUSB_ATH3012 }, 114 113 { USB_DEVICE(0x0cf3, 0x311D), .driver_info = BTUSB_ATH3012 }, 114 + { USB_DEVICE(0x0CF3, 0x817a), .driver_info = BTUSB_ATH3012 }, 115 115 { USB_DEVICE(0x13d3, 0x3375), .driver_info = BTUSB_ATH3012 }, 116 116 { USB_DEVICE(0x04ca, 0x3004), .driver_info = BTUSB_ATH3012 }, 117 117 { USB_DEVICE(0x04ca, 0x3005), .driver_info = BTUSB_ATH3012 },
+2
drivers/bluetooth/btusb.c
··· 131 131 { USB_DEVICE(0x03f0, 0x311d), .driver_info = BTUSB_IGNORE }, 132 132 133 133 /* Atheros 3012 with sflash firmware */ 134 + { USB_DEVICE(0x0cf3, 0x0036), .driver_info = BTUSB_ATH3012 }, 134 135 { USB_DEVICE(0x0cf3, 0x3004), .driver_info = BTUSB_ATH3012 }, 135 136 { USB_DEVICE(0x0cf3, 0x3008), .driver_info = BTUSB_ATH3012 }, 136 137 { USB_DEVICE(0x0cf3, 0x311d), .driver_info = BTUSB_ATH3012 }, 138 + { USB_DEVICE(0x0cf3, 0x817a), .driver_info = BTUSB_ATH3012 }, 137 139 { USB_DEVICE(0x13d3, 0x3375), .driver_info = BTUSB_ATH3012 }, 138 140 { USB_DEVICE(0x04ca, 0x3004), .driver_info = BTUSB_ATH3012 }, 139 141 { USB_DEVICE(0x04ca, 0x3005), .driver_info = BTUSB_ATH3012 },
+3
drivers/net/ethernet/freescale/fec_ptp.c
··· 128 128 129 129 spin_unlock_irqrestore(&fep->tmreg_lock, flags); 130 130 } 131 + EXPORT_SYMBOL(fec_ptp_start_cyclecounter); 131 132 132 133 /** 133 134 * fec_ptp_adjfreq - adjust ptp cycle frequency ··· 319 318 return copy_to_user(ifr->ifr_data, &config, sizeof(config)) ? 320 319 -EFAULT : 0; 321 320 } 321 + EXPORT_SYMBOL(fec_ptp_ioctl); 322 322 323 323 /** 324 324 * fec_time_keep - call timecounter_read every second to avoid timer overrun ··· 385 383 pr_info("registered PHC device on %s\n", ndev->name); 386 384 } 387 385 } 386 + EXPORT_SYMBOL(fec_ptp_init);
+1 -1
drivers/net/ethernet/lantiq_etop.c
··· 769 769 return 0; 770 770 771 771 err_free: 772 - kfree(dev); 772 + free_netdev(dev); 773 773 err_out: 774 774 return err; 775 775 }
+11 -11
drivers/net/ethernet/mellanox/mlx4/en_netdev.c
··· 1637 1637 /* Flush multicast filter */ 1638 1638 mlx4_SET_MCAST_FLTR(mdev->dev, priv->port, 0, 1, MLX4_MCAST_CONFIG); 1639 1639 1640 + /* Remove flow steering rules for the port*/ 1641 + if (mdev->dev->caps.steering_mode == 1642 + MLX4_STEERING_MODE_DEVICE_MANAGED) { 1643 + ASSERT_RTNL(); 1644 + list_for_each_entry_safe(flow, tmp_flow, 1645 + &priv->ethtool_list, list) { 1646 + mlx4_flow_detach(mdev->dev, flow->id); 1647 + list_del(&flow->list); 1648 + } 1649 + } 1650 + 1640 1651 mlx4_en_destroy_drop_qp(priv); 1641 1652 1642 1653 /* Free TX Rings */ ··· 1667 1656 mlx4_en_put_qp(priv); 1668 1657 if (!(mdev->dev->caps.flags2 & MLX4_DEV_CAP_FLAGS2_REASSIGN_MAC_EN)) 1669 1658 mdev->mac_removed[priv->port] = 1; 1670 - 1671 - /* Remove flow steering rules for the port*/ 1672 - if (mdev->dev->caps.steering_mode == 1673 - MLX4_STEERING_MODE_DEVICE_MANAGED) { 1674 - ASSERT_RTNL(); 1675 - list_for_each_entry_safe(flow, tmp_flow, 1676 - &priv->ethtool_list, list) { 1677 - mlx4_flow_detach(mdev->dev, flow->id); 1678 - list_del(&flow->list); 1679 - } 1680 - } 1681 1659 1682 1660 /* Free RX Rings */ 1683 1661 for (i = 0; i < priv->rx_ring_num; i++) {
+1 -1
drivers/net/ethernet/mellanox/mlx4/eq.c
··· 771 771 struct mlx4_slave_event_eq_info *event_eq = 772 772 priv->mfunc.master.slave_state[slave].event_eq; 773 773 u32 in_modifier = vhcr->in_modifier; 774 - u32 eqn = in_modifier & 0x1FF; 774 + u32 eqn = in_modifier & 0x3FF; 775 775 u64 in_param = vhcr->in_param; 776 776 int err = 0; 777 777 int i;
+35 -10
drivers/net/ethernet/mellanox/mlx4/resource_tracker.c
··· 99 99 struct list_head mcg_list; 100 100 spinlock_t mcg_spl; 101 101 int local_qpn; 102 + atomic_t ref_count; 102 103 }; 103 104 104 105 enum res_mtt_states { ··· 198 197 199 198 struct res_fs_rule { 200 199 struct res_common com; 200 + int qpn; 201 201 }; 202 202 203 203 static void *res_tracker_lookup(struct rb_root *root, u64 res_id) ··· 357 355 return dev->caps.num_mpts - 1; 358 356 } 359 357 360 - static void *find_res(struct mlx4_dev *dev, int res_id, 358 + static void *find_res(struct mlx4_dev *dev, u64 res_id, 361 359 enum mlx4_resource type) 362 360 { 363 361 struct mlx4_priv *priv = mlx4_priv(dev); ··· 449 447 ret->local_qpn = id; 450 448 INIT_LIST_HEAD(&ret->mcg_list); 451 449 spin_lock_init(&ret->mcg_spl); 450 + atomic_set(&ret->ref_count, 0); 452 451 453 452 return &ret->com; 454 453 } ··· 557 554 return &ret->com; 558 555 } 559 556 560 - static struct res_common *alloc_fs_rule_tr(u64 id) 557 + static struct res_common *alloc_fs_rule_tr(u64 id, int qpn) 561 558 { 562 559 struct res_fs_rule *ret; 563 560 ··· 567 564 568 565 ret->com.res_id = id; 569 566 ret->com.state = RES_FS_RULE_ALLOCATED; 570 - 567 + ret->qpn = qpn; 571 568 return &ret->com; 572 569 } 573 570 ··· 605 602 ret = alloc_xrcdn_tr(id); 606 603 break; 607 604 case RES_FS_RULE: 608 - ret = alloc_fs_rule_tr(id); 605 + ret = alloc_fs_rule_tr(id, extra); 609 606 break; 610 607 default: 611 608 return NULL; ··· 674 671 675 672 static int remove_qp_ok(struct res_qp *res) 676 673 { 677 - if (res->com.state == RES_QP_BUSY) 674 + if (res->com.state == RES_QP_BUSY || atomic_read(&res->ref_count) || 675 + !list_empty(&res->mcg_list)) { 676 + pr_err("resource tracker: fail to remove qp, state %d, ref_count %d\n", 677 + res->com.state, atomic_read(&res->ref_count)); 678 678 return -EBUSY; 679 - else if (res->com.state != RES_QP_RESERVED) 679 + } else if (res->com.state != RES_QP_RESERVED) { 680 680 return -EPERM; 681 + } 681 682 682 683 return 0; 683 684 } ··· 3131 3124 struct list_head *rlist = &tracker->slave_list[slave].res_list[RES_MAC]; 3132 3125 int err; 3133 3126 int qpn; 3127 + struct res_qp *rqp; 3134 3128 struct mlx4_net_trans_rule_hw_ctrl *ctrl; 3135 3129 struct _rule_hw *rule_header; 3136 3130 int header_id; ··· 3142 3134 3143 3135 ctrl = (struct mlx4_net_trans_rule_hw_ctrl *)inbox->buf; 3144 3136 qpn = be32_to_cpu(ctrl->qpn) & 0xffffff; 3145 - err = get_res(dev, slave, qpn, RES_QP, NULL); 3137 + err = get_res(dev, slave, qpn, RES_QP, &rqp); 3146 3138 if (err) { 3147 3139 pr_err("Steering rule with qpn 0x%x rejected.\n", qpn); 3148 3140 return err; ··· 3183 3175 if (err) 3184 3176 goto err_put; 3185 3177 3186 - err = add_res_range(dev, slave, vhcr->out_param, 1, RES_FS_RULE, 0); 3178 + err = add_res_range(dev, slave, vhcr->out_param, 1, RES_FS_RULE, qpn); 3187 3179 if (err) { 3188 3180 mlx4_err(dev, "Fail to add flow steering resources.\n "); 3189 3181 /* detach rule*/ 3190 3182 mlx4_cmd(dev, vhcr->out_param, 0, 0, 3191 3183 MLX4_QP_FLOW_STEERING_DETACH, MLX4_CMD_TIME_CLASS_A, 3192 3184 MLX4_CMD_NATIVE); 3185 + goto err_put; 3193 3186 } 3187 + atomic_inc(&rqp->ref_count); 3194 3188 err_put: 3195 3189 put_res(dev, slave, qpn, RES_QP); 3196 3190 return err; ··· 3205 3195 struct mlx4_cmd_info *cmd) 3206 3196 { 3207 3197 int err; 3198 + struct res_qp *rqp; 3199 + struct res_fs_rule *rrule; 3208 3200 3209 3201 if (dev->caps.steering_mode != 3210 3202 MLX4_STEERING_MODE_DEVICE_MANAGED) 3211 3203 return -EOPNOTSUPP; 3212 3204 3205 + err = get_res(dev, slave, vhcr->in_param, RES_FS_RULE, &rrule); 3206 + if (err) 3207 + return err; 3208 + /* Release the rule form busy state before removal */ 3209 + put_res(dev, slave, vhcr->in_param, RES_FS_RULE); 3210 + err = get_res(dev, slave, rrule->qpn, RES_QP, &rqp); 3211 + if (err) 3212 + return err; 3213 + 3213 3214 err = rem_res_range(dev, slave, vhcr->in_param, 1, RES_FS_RULE, 0); 3214 3215 if (err) { 3215 3216 mlx4_err(dev, "Fail to remove flow steering resources.\n "); 3216 - return err; 3217 + goto out; 3217 3218 } 3218 3219 3219 3220 err = mlx4_cmd(dev, vhcr->in_param, 0, 0, 3220 3221 MLX4_QP_FLOW_STEERING_DETACH, MLX4_CMD_TIME_CLASS_A, 3221 3222 MLX4_CMD_NATIVE); 3223 + if (!err) 3224 + atomic_dec(&rqp->ref_count); 3225 + out: 3226 + put_res(dev, slave, rrule->qpn, RES_QP); 3222 3227 return err; 3223 3228 } 3224 3229 ··· 3831 3806 mutex_lock(&priv->mfunc.master.res_tracker.slave_list[slave].mutex); 3832 3807 /*VLAN*/ 3833 3808 rem_slave_macs(dev, slave); 3809 + rem_slave_fs_rule(dev, slave); 3834 3810 rem_slave_qps(dev, slave); 3835 3811 rem_slave_srqs(dev, slave); 3836 3812 rem_slave_cqs(dev, slave); ··· 3840 3814 rem_slave_mtts(dev, slave); 3841 3815 rem_slave_counters(dev, slave); 3842 3816 rem_slave_xrcdns(dev, slave); 3843 - rem_slave_fs_rule(dev, slave); 3844 3817 mutex_unlock(&priv->mfunc.master.res_tracker.slave_list[slave].mutex); 3845 3818 }
+1 -1
drivers/net/ethernet/ti/cpsw.c
··· 1504 1504 struct platform_device *mdio; 1505 1505 1506 1506 parp = of_get_property(slave_node, "phy_id", &lenp); 1507 - if ((parp == NULL) && (lenp != (sizeof(void *) * 2))) { 1507 + if ((parp == NULL) || (lenp != (sizeof(void *) * 2))) { 1508 1508 pr_err("Missing slave[%d] phy_id property\n", i); 1509 1509 ret = -EINVAL; 1510 1510 goto error_ret;
+4
drivers/net/wireless/ath/ath9k/ar9003_calib.c
··· 1023 1023 AR_PHY_AGC_CONTROL_FLTR_CAL | 1024 1024 AR_PHY_AGC_CONTROL_PKDET_CAL; 1025 1025 1026 + /* Use chip chainmask only for calibration */ 1026 1027 ar9003_hw_set_chain_masks(ah, ah->caps.rx_chainmask, ah->caps.tx_chainmask); 1027 1028 1028 1029 if (rtt) { ··· 1150 1149 1151 1150 ar9003_hw_rtt_disable(ah); 1152 1151 } 1152 + 1153 + /* Revert chainmask to runtime parameters */ 1154 + ar9003_hw_set_chain_masks(ah, ah->rxchainmask, ah->txchainmask); 1153 1155 1154 1156 /* Initialize list pointers */ 1155 1157 ah->cal_list = ah->cal_list_last = ah->cal_list_curr = NULL;
+13 -13
drivers/net/wireless/ath/ath9k/link.c
··· 28 28 int i; 29 29 bool needreset = false; 30 30 31 - for (i = 0; i < ATH9K_NUM_TX_QUEUES; i++) 32 - if (ATH_TXQ_SETUP(sc, i)) { 33 - txq = &sc->tx.txq[i]; 34 - ath_txq_lock(sc, txq); 35 - if (txq->axq_depth) { 36 - if (txq->axq_tx_inprogress) { 37 - needreset = true; 38 - ath_txq_unlock(sc, txq); 39 - break; 40 - } else { 41 - txq->axq_tx_inprogress = true; 42 - } 31 + for (i = 0; i < IEEE80211_NUM_ACS; i++) { 32 + txq = sc->tx.txq_map[i]; 33 + 34 + ath_txq_lock(sc, txq); 35 + if (txq->axq_depth) { 36 + if (txq->axq_tx_inprogress) { 37 + needreset = true; 38 + ath_txq_unlock(sc, txq); 39 + break; 40 + } else { 41 + txq->axq_tx_inprogress = true; 43 42 } 44 - ath_txq_unlock_complete(sc, txq); 45 43 } 44 + ath_txq_unlock_complete(sc, txq); 45 + } 46 46 47 47 if (needreset) { 48 48 ath_dbg(ath9k_hw_common(sc->sc_ah), RESET,
+12 -10
drivers/net/wireless/iwlegacy/3945-mac.c
··· 475 475 dma_addr_t txcmd_phys; 476 476 int txq_id = skb_get_queue_mapping(skb); 477 477 u16 len, idx, hdr_len; 478 + u16 firstlen, secondlen; 478 479 u8 id; 479 480 u8 unicast; 480 481 u8 sta_id; ··· 590 589 len = 591 590 sizeof(struct il3945_tx_cmd) + sizeof(struct il_cmd_header) + 592 591 hdr_len; 593 - len = (len + 3) & ~3; 592 + firstlen = (len + 3) & ~3; 594 593 595 594 /* Physical address of this Tx command's header (not MAC header!), 596 595 * within command buffer array. */ 597 596 txcmd_phys = 598 - pci_map_single(il->pci_dev, &out_cmd->hdr, len, PCI_DMA_TODEVICE); 597 + pci_map_single(il->pci_dev, &out_cmd->hdr, firstlen, 598 + PCI_DMA_TODEVICE); 599 599 if (unlikely(pci_dma_mapping_error(il->pci_dev, txcmd_phys))) 600 600 goto drop_unlock; 601 601 602 602 /* Set up TFD's 2nd entry to point directly to remainder of skb, 603 603 * if any (802.11 null frames have no payload). */ 604 - len = skb->len - hdr_len; 605 - if (len) { 604 + secondlen = skb->len - hdr_len; 605 + if (secondlen > 0) { 606 606 phys_addr = 607 - pci_map_single(il->pci_dev, skb->data + hdr_len, len, 607 + pci_map_single(il->pci_dev, skb->data + hdr_len, secondlen, 608 608 PCI_DMA_TODEVICE); 609 609 if (unlikely(pci_dma_mapping_error(il->pci_dev, phys_addr))) 610 610 goto drop_unlock; ··· 613 611 614 612 /* Add buffer containing Tx command and MAC(!) header to TFD's 615 613 * first entry */ 616 - il->ops->txq_attach_buf_to_tfd(il, txq, txcmd_phys, len, 1, 0); 614 + il->ops->txq_attach_buf_to_tfd(il, txq, txcmd_phys, firstlen, 1, 0); 617 615 dma_unmap_addr_set(out_meta, mapping, txcmd_phys); 618 - dma_unmap_len_set(out_meta, len, len); 619 - if (len) 620 - il->ops->txq_attach_buf_to_tfd(il, txq, phys_addr, len, 0, 621 - U32_PAD(len)); 616 + dma_unmap_len_set(out_meta, len, firstlen); 617 + if (secondlen > 0) 618 + il->ops->txq_attach_buf_to_tfd(il, txq, phys_addr, secondlen, 0, 619 + U32_PAD(secondlen)); 622 620 623 621 if (!ieee80211_has_morefrags(hdr->frame_control)) { 624 622 txq->need_update = 1;
+16 -6
drivers/net/wireless/mwifiex/cmdevt.c
··· 157 157 return -1; 158 158 } 159 159 160 + cmd_code = le16_to_cpu(host_cmd->command); 161 + cmd_size = le16_to_cpu(host_cmd->size); 162 + 163 + if (adapter->hw_status == MWIFIEX_HW_STATUS_RESET && 164 + cmd_code != HostCmd_CMD_FUNC_SHUTDOWN && 165 + cmd_code != HostCmd_CMD_FUNC_INIT) { 166 + dev_err(adapter->dev, 167 + "DNLD_CMD: FW in reset state, ignore cmd %#x\n", 168 + cmd_code); 169 + mwifiex_complete_cmd(adapter, cmd_node); 170 + mwifiex_insert_cmd_to_free_q(adapter, cmd_node); 171 + return -1; 172 + } 173 + 160 174 /* Set command sequence number */ 161 175 adapter->seq_num++; 162 176 host_cmd->seq_num = cpu_to_le16(HostCmd_SET_SEQ_NO_BSS_INFO ··· 181 167 spin_lock_irqsave(&adapter->mwifiex_cmd_lock, flags); 182 168 adapter->curr_cmd = cmd_node; 183 169 spin_unlock_irqrestore(&adapter->mwifiex_cmd_lock, flags); 184 - 185 - cmd_code = le16_to_cpu(host_cmd->command); 186 - cmd_size = le16_to_cpu(host_cmd->size); 187 170 188 171 /* Adjust skb length */ 189 172 if (cmd_node->cmd_skb->len > cmd_size) ··· 495 484 496 485 ret = mwifiex_send_cmd_async(priv, cmd_no, cmd_action, cmd_oid, 497 486 data_buf); 498 - if (!ret) 499 - ret = mwifiex_wait_queue_complete(adapter); 500 487 501 488 return ret; 502 489 } ··· 597 588 if (cmd_no == HostCmd_CMD_802_11_SCAN) { 598 589 mwifiex_queue_scan_cmd(priv, cmd_node); 599 590 } else { 600 - adapter->cmd_queued = cmd_node; 601 591 mwifiex_insert_cmd_to_pending_q(adapter, cmd_node, true); 602 592 queue_work(adapter->workqueue, &adapter->main_work); 593 + if (cmd_node->wait_q_enabled) 594 + ret = mwifiex_wait_queue_complete(adapter, cmd_node); 603 595 } 604 596 605 597 return ret;
+8
drivers/net/wireless/mwifiex/init.c
··· 709 709 return ret; 710 710 } 711 711 712 + /* cancel current command */ 713 + if (adapter->curr_cmd) { 714 + dev_warn(adapter->dev, "curr_cmd is still in processing\n"); 715 + del_timer(&adapter->cmd_timer); 716 + mwifiex_insert_cmd_to_free_q(adapter, adapter->curr_cmd); 717 + adapter->curr_cmd = NULL; 718 + } 719 + 712 720 /* shut down mwifiex */ 713 721 dev_dbg(adapter->dev, "info: shutdown mwifiex...\n"); 714 722
+2 -2
drivers/net/wireless/mwifiex/main.h
··· 728 728 u16 cmd_wait_q_required; 729 729 struct mwifiex_wait_queue cmd_wait_q; 730 730 u8 scan_wait_q_woken; 731 - struct cmd_ctrl_node *cmd_queued; 732 731 spinlock_t queue_lock; /* lock for tx queues */ 733 732 struct completion fw_load; 734 733 u8 country_code[IEEE80211_COUNTRY_STRING_LEN]; ··· 1022 1023 struct mwifiex_multicast_list *mcast_list); 1023 1024 int mwifiex_copy_mcast_addr(struct mwifiex_multicast_list *mlist, 1024 1025 struct net_device *dev); 1025 - int mwifiex_wait_queue_complete(struct mwifiex_adapter *adapter); 1026 + int mwifiex_wait_queue_complete(struct mwifiex_adapter *adapter, 1027 + struct cmd_ctrl_node *cmd_queued); 1026 1028 int mwifiex_bss_start(struct mwifiex_private *priv, struct cfg80211_bss *bss, 1027 1029 struct cfg80211_ssid *req_ssid); 1028 1030 int mwifiex_cancel_hs(struct mwifiex_private *priv, int cmd_type);
+4 -4
drivers/net/wireless/mwifiex/scan.c
··· 1388 1388 list_del(&cmd_node->list); 1389 1389 spin_unlock_irqrestore(&adapter->scan_pending_q_lock, 1390 1390 flags); 1391 - adapter->cmd_queued = cmd_node; 1392 1391 mwifiex_insert_cmd_to_pending_q(adapter, cmd_node, 1393 1392 true); 1394 1393 queue_work(adapter->workqueue, &adapter->main_work); 1394 + 1395 + /* Perform internal scan synchronously */ 1396 + if (!priv->scan_request) 1397 + mwifiex_wait_queue_complete(adapter, cmd_node); 1395 1398 } else { 1396 1399 spin_unlock_irqrestore(&adapter->scan_pending_q_lock, 1397 1400 flags); ··· 1948 1945 else 1949 1946 /* Normal scan */ 1950 1947 ret = mwifiex_scan_networks(priv, NULL); 1951 - 1952 - if (!ret) 1953 - ret = mwifiex_wait_queue_complete(priv->adapter); 1954 1948 1955 1949 up(&priv->async_sem); 1956 1950
+2 -8
drivers/net/wireless/mwifiex/sta_ioctl.c
··· 54 54 * This function waits on a cmd wait queue. It also cancels the pending 55 55 * request after waking up, in case of errors. 56 56 */ 57 - int mwifiex_wait_queue_complete(struct mwifiex_adapter *adapter) 57 + int mwifiex_wait_queue_complete(struct mwifiex_adapter *adapter, 58 + struct cmd_ctrl_node *cmd_queued) 58 59 { 59 60 int status; 60 - struct cmd_ctrl_node *cmd_queued; 61 - 62 - if (!adapter->cmd_queued) 63 - return 0; 64 - 65 - cmd_queued = adapter->cmd_queued; 66 - adapter->cmd_queued = NULL; 67 61 68 62 dev_dbg(adapter->dev, "cmd pending\n"); 69 63 atomic_inc(&adapter->cmd_pending);
+1
drivers/net/wireless/rtlwifi/usb.c
··· 850 850 if (unlikely(!_urb)) { 851 851 RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, 852 852 "Can't allocate urb. Drop skb!\n"); 853 + kfree_skb(skb); 853 854 return; 854 855 } 855 856 _rtl_submit_tx_urb(hw, _urb);
+1 -1
include/linux/thermal.h
··· 44 44 /* Adding event notification support elements */ 45 45 #define THERMAL_GENL_FAMILY_NAME "thermal_event" 46 46 #define THERMAL_GENL_VERSION 0x01 47 - #define THERMAL_GENL_MCAST_GROUP_NAME "thermal_mc_group" 47 + #define THERMAL_GENL_MCAST_GROUP_NAME "thermal_mc_grp" 48 48 49 49 /* Default Thermal Governor */ 50 50 #if defined(CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE)
+3 -1
include/uapi/linux/packet_diag.h
··· 33 33 PACKET_DIAG_TX_RING, 34 34 PACKET_DIAG_FANOUT, 35 35 36 - PACKET_DIAG_MAX, 36 + __PACKET_DIAG_MAX, 37 37 }; 38 + 39 + #define PACKET_DIAG_MAX (__PACKET_DIAG_MAX - 1) 38 40 39 41 struct packet_diag_info { 40 42 __u32 pdi_index;
+3 -1
include/uapi/linux/unix_diag.h
··· 39 39 UNIX_DIAG_MEMINFO, 40 40 UNIX_DIAG_SHUTDOWN, 41 41 42 - UNIX_DIAG_MAX, 42 + __UNIX_DIAG_MAX, 43 43 }; 44 + 45 + #define UNIX_DIAG_MAX (__UNIX_DIAG_MAX - 1) 44 46 45 47 struct unix_diag_vfs { 46 48 __u32 udiag_vfs_ino;
+1
net/bluetooth/sco.c
··· 359 359 sco_chan_del(sk, ECONNRESET); 360 360 break; 361 361 362 + case BT_CONNECT2: 362 363 case BT_CONNECT: 363 364 case BT_DISCONN: 364 365 sco_chan_del(sk, ECONNRESET);
+5 -2
net/ipv4/tcp_output.c
··· 1640 1640 goto send_now; 1641 1641 } 1642 1642 1643 - /* Ok, it looks like it is advisable to defer. */ 1644 - tp->tso_deferred = 1 | (jiffies << 1); 1643 + /* Ok, it looks like it is advisable to defer. 1644 + * Do not rearm the timer if already set to not break TCP ACK clocking. 1645 + */ 1646 + if (!tp->tso_deferred) 1647 + tp->tso_deferred = 1 | (jiffies << 1); 1645 1648 1646 1649 return true; 1647 1650