From: David S. Miller Date: Thu, 14 Jul 2011 14:56:40 +0000 (-0700) Subject: Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=6a7ebdf2fd15417e87b4fd02ff411aeaca34da5f;p=GitHub%2Fmoto-9609%2Fandroid_kernel_motorola_exynos9610.git Merge branch 'master' of /linux/kernel/git/davem/net-2.6 Conflicts: net/bluetooth/l2cap_core.c --- 6a7ebdf2fd15417e87b4fd02ff411aeaca34da5f diff --cc drivers/ssb/driver_pcicore.c index 21b9465f71ad,d6620ad309ce..11d85bfd774e --- a/drivers/ssb/driver_pcicore.c +++ b/drivers/ssb/driver_pcicore.c @@@ -514,13 -514,22 +514,22 @@@ static void ssb_pcicore_pcie_setup_work * Generic and Clientmode operation code. **************************************************/ -static void ssb_pcicore_init_clientmode(struct ssb_pcicore *pc) +static void __devinit ssb_pcicore_init_clientmode(struct ssb_pcicore *pc) { + ssb_pcicore_fix_sprom_core_index(pc); + /* Disable PCI interrupts. */ ssb_write32(pc->dev, SSB_INTVEC, 0); + + /* Additional PCIe always once-executed workarounds */ + if (pc->dev->id.coreid == SSB_DEV_PCIE) { + ssb_pcicore_serdes_workaround(pc); + /* TODO: ASPM */ + /* TODO: Clock Request Update */ + } } -void ssb_pcicore_init(struct ssb_pcicore *pc) +void __devinit ssb_pcicore_init(struct ssb_pcicore *pc) { struct ssb_device *dev = pc->dev; diff --cc net/bluetooth/l2cap_core.c index 9ec9c8c5eb5e,ebff14c69078..fc219ec28711 --- a/net/bluetooth/l2cap_core.c +++ b/net/bluetooth/l2cap_core.c @@@ -2530,7 -2323,8 +2530,8 @@@ static inline int l2cap_config_req(stru sk = chan->sk; - if (chan->state != BT_CONFIG) { - if ((bt_sk(sk)->defer_setup && sk->sk_state != BT_CONNECT2) || - (!bt_sk(sk)->defer_setup && sk->sk_state != BT_CONFIG)) { ++ if ((bt_sk(sk)->defer_setup && chan->state != BT_CONNECT2) || ++ (!bt_sk(sk)->defer_setup && chan->state != BT_CONFIG)) { struct l2cap_cmd_rej rej; rej.reason = cpu_to_le16(0x0002); diff --cc net/wireless/nl80211.c index 491b0ba40c43,cea338150d05..6a82c898f831 --- a/net/wireless/nl80211.c +++ b/net/wireless/nl80211.c @@@ -3626,11 -3625,14 +3634,15 @@@ static int nl80211_stop_sched_scan(stru !rdev->ops->sched_scan_stop) return -EOPNOTSUPP; - return __cfg80211_stop_sched_scan(rdev, false); + mutex_lock(&rdev->sched_scan_mtx); + err = __cfg80211_stop_sched_scan(rdev, false); + mutex_unlock(&rdev->sched_scan_mtx); + + return err; } -static int nl80211_send_bss(struct sk_buff *msg, u32 pid, u32 seq, int flags, +static int nl80211_send_bss(struct sk_buff *msg, struct netlink_callback *cb, + u32 seq, int flags, struct cfg80211_registered_device *rdev, struct wireless_dev *wdev, struct cfg80211_internal_bss *intbss) diff --cc net/wireless/scan.c index 5d23503dd5e0,ae0c2256ba3b..2cc9d4ab5578 --- a/net/wireless/scan.c +++ b/net/wireless/scan.c @@@ -132,9 -132,10 +132,9 @@@ EXPORT_SYMBOL(cfg80211_sched_scan_stopp int __cfg80211_stop_sched_scan(struct cfg80211_registered_device *rdev, bool driver_initiated) { - int err; struct net_device *dev; - ASSERT_RDEV_LOCK(rdev); + lockdep_assert_held(&rdev->sched_scan_mtx); if (!rdev->sched_scan_req) return 0;