diff options
author | Sumit Semwal <sumit.semwal@linaro.org> | 2015-06-01 12:44:44 +0530 |
---|---|---|
committer | Amit Pundir <amit.pundir@linaro.org> | 2015-06-08 11:13:17 +0530 |
commit | 17b3b28baf84999421d56dce68c4b1c1ec7f1ef3 (patch) | |
tree | 137bdd42efcd74419ff1344e70bbbc4728d94f5b | |
parent | 05b7504d11ce32148c4f73656936fa34375f377f (diff) |
fix: align closely to AOSP.
To support Android on a member platform, LMG carry forwarded
quiet a few (200+) aosp/android-3.10 patches to
linaro-android-3.14-lsk tree when aosp/android-3.14 was not
announced. There are few gaps in our forward-ported branch
from 3.10->3.14, and how AOSP is maintaining the patches.
This consolidated patch help align our tree with AOSP, unless
we've added some fixes. Listed below are file-wise changes
and rationale behind them:
- arch/arm/Kconfig: c0cc1d84: seccomp revert is missing from AOSP,
potentially because of cleaner seccomp patches
=> Align with AOSP.
- arch/arm/mm/mmu.c: 97b095e5: "ARM: mm: Split memory banks that span
multiple sections when sparsemem is enabled" doesn't seem required
anymore, and isn't added to AOSP
=> Align with AOSP.
- arch/arm64/Kconfig:
27aa5398: "arm64: a backwards compatible config option", and
8354fc2d: "arm64: cpuinfo: ARMv7 compatable cpuinfo option" are
reverted in AOSP trees
=> Remove and align with AOSP
- arch/arm64/include/asm/debug-monitors.h: Minor differences with AOSP
merge v/s ours
=> Align with AOSP
- arch/mips/include/uapi/asm/unistd.h: 598966e MIPS: add seccomp
syscall has merge differences between AOSP and ours
=> Align with AOSP.
- drivers/mmc/core/core.c:
drivers/mmc/core/host.c:
include/linux/mmc/host.h:
2f76feb mmc: core: host: only use wakelock for detect work by
Colin Cross: was present in 3.10,and so in fwd-port; Missing from
3.14/3.18; it als introduced a memory leak w/ TI
=> Align with AOSP by reverting the above commit
- drivers/usb/gadget/f_accessory.c: feee075e: "usb: gadget:
f_accessory: fix missing NULL pointer check" by Amit Pundir that was
being carried in linaro-fixes isn't required anymore due to the AOSP
merged fix.
=> Align with AOSP.
- drivers/usb/gadget/u_ether.c: minor code rearrangement during our
merge
=> ALIGN with AOSP.
- include/net/bluetooth/hci.h:
include/net/bluetooth/hci_core.h:
net/bluetooth/hci_conn.c:
net/bluetooth/hci_event.c:
net/bluetooth/rfcomm/core.c:
=> BT Patches not in 3.14/3.18; ALIGN with AOSP.
- include/net/netfilter/ipv4/nf_reject.h:
include/net/netfilter/ipv6/nf_reject.h:
net/ipv4/netfilter/Kconfig:
net/ipv6/netfilter/Kconfig:
8d83a89758: netfilter: have ip*t REJECT set the sock err when
an icmp is to be sent: NOT in 3.14/3.18
=> ALIGN with AOSP
- include/uapi/asm-generic/unistd.h: 08f6b117d: seccomp: add "seccomp"
syscall has merge differences between our merge and AOSP's
=> ALIGN with AOSP
- kernel/irq/pm.c: c2d35c6 irq: pm: Remove unused variable by Dmitry
Shmidt
=> ALIGN with AOSP.
- kernel/power/wakelock.c: 11388c8 PM / Sleep: Require
CAP_BLOCK_SUSPEND to use wake_lock/wake_unlock by Rafael J. Wysocki
has merge differences between our merge and AOSP's
=> ALIGN with AOSP
- kernel/sys.c: 77d83f8d: prctl: adds PR_SET_TIMERSLACK_PID for setting
timer slack of an arbitrary thread has merge differences between our
merge and AOSP's
=> ALIGN with AOSP
- net/wireless/Kconfig:
net/wireless/sme.c:
CONFIG_CFG80211 related patches are not in 3.14/3.18 AOSP
=> ALIGN with AOSP
Signed-off-by: Sumit Semwal <sumit.semwal@linaro.org>
Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
-rw-r--r-- | arch/arm/Kconfig | 7 | ||||
-rw-r--r-- | arch/arm/mm/mmu.c | 23 | ||||
-rw-r--r-- | arch/arm64/Kconfig | 21 | ||||
-rw-r--r-- | arch/arm64/include/asm/debug-monitors.h | 7 | ||||
-rw-r--r-- | arch/mips/include/uapi/asm/unistd.h | 6 | ||||
-rw-r--r-- | drivers/mmc/core/core.c | 23 | ||||
-rw-r--r-- | drivers/mmc/core/host.c | 3 | ||||
-rw-r--r-- | drivers/usb/gadget/f_accessory.c | 3 | ||||
-rw-r--r-- | drivers/usb/gadget/u_ether.c | 22 | ||||
-rw-r--r-- | include/linux/mmc/host.h | 2 | ||||
-rw-r--r-- | include/net/bluetooth/hci.h | 3 | ||||
-rw-r--r-- | include/net/bluetooth/hci_core.h | 2 | ||||
-rw-r--r-- | include/net/netfilter/ipv4/nf_reject.h | 8 | ||||
-rw-r--r-- | include/net/netfilter/ipv6/nf_reject.h | 9 | ||||
-rw-r--r-- | include/uapi/asm-generic/unistd.h | 5 | ||||
-rw-r--r-- | kernel/irq/pm.c | 1 | ||||
-rw-r--r-- | kernel/power/wakelock.c | 7 | ||||
-rw-r--r-- | kernel/sys.c | 20 | ||||
-rw-r--r-- | net/bluetooth/hci_conn.c | 18 | ||||
-rw-r--r-- | net/bluetooth/hci_event.c | 1 | ||||
-rw-r--r-- | net/bluetooth/rfcomm/core.c | 1 | ||||
-rw-r--r-- | net/ipv4/netfilter/Kconfig | 12 | ||||
-rw-r--r-- | net/ipv6/netfilter/Kconfig | 12 | ||||
-rw-r--r-- | net/wireless/Kconfig | 11 | ||||
-rw-r--r-- | net/wireless/sme.c | 7 |
25 files changed, 46 insertions, 188 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index d5e596b88a71..4cec3565f6bc 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -26,7 +26,7 @@ config ARM select HARDIRQS_SW_RESEND select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL select HAVE_ARCH_KGDB - select HAVE_ARCH_SECCOMP_FILTER + select HAVE_ARCH_SECCOMP_FILTER if (AEABI && !OABI_COMPAT) select HAVE_ARCH_TRACEHOOK select HAVE_BPF_JIT select HAVE_CONTEXT_TRACKING @@ -1761,6 +1761,11 @@ config OABI_COMPAT in memory differs between the legacy ABI and the new ARM EABI (only for non "thumb" binaries). This option adds a tiny overhead to all syscalls and produces a slightly larger kernel. + + The seccomp filter system will not be available when this is + selected, since there is no way yet to sensibly distinguish + between calling conventions during filtering. + If you know you'll be using only pure EABI user space then you can say N here. If this option is not selected and you attempt to execute a legacy ABI binary then the result will be diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c index a60ae9c72bd7..a623cb3ad012 100644 --- a/arch/arm/mm/mmu.c +++ b/arch/arm/mm/mmu.c @@ -1059,29 +1059,6 @@ void __init sanity_check_meminfo(void) phys_addr_t size_limit; *bank = meminfo.bank[i]; - -#ifdef CONFIG_SPARSEMEM - if (pfn_to_section_nr(bank_pfn_start(bank)) != - pfn_to_section_nr(bank_pfn_end(bank) - 1)) { - phys_addr_t sz; - unsigned long start_pfn = bank_pfn_start(bank); - unsigned long end_pfn = SECTION_ALIGN_UP(start_pfn + 1); - sz = ((phys_addr_t)(end_pfn - start_pfn) << PAGE_SHIFT); - - if (meminfo.nr_banks >= NR_BANKS) { - pr_crit("NR_BANKS too low, ignoring %lld bytes of memory\n", - (unsigned long long)(bank->size - sz)); - } else { - memmove(bank + 1, bank, - (meminfo.nr_banks - i) * sizeof(*bank)); - meminfo.nr_banks++; - bank[1].size -= sz; - bank[1].start = __pfn_to_phys(end_pfn); - } - bank->size = sz; - } -#endif - size_limit = bank->size; if (bank->start >= vmalloc_limit) diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig index 00b6d0035d66..e0d57fbb510b 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@ -224,27 +224,6 @@ config ARCH_WANT_HUGE_PMD_SHARE config HAVE_ARCH_TRANSPARENT_HUGEPAGE def_bool y -config ARMV7_COMPAT - bool "Kernel support for ARMv7 applications" - depends on COMPAT - select SWP_EMULATE - help - This option enables features that allow that ran on an ARMv7 or older - processor to continue functioning. - - If you want to execute ARMv7 applications, say Y - -config ARMV7_COMPAT_CPUINFO - bool "Report backwards compatible cpu features in /proc/cpuinfo" - depends on ARMV7_COMPAT - default y - help - This option makes /proc/cpuinfo list CPU features that an ARMv7 or - earlier kernel would report, but are not optional on an ARMv8 or later - processor. - - If you want to execute ARMv7 applications, say Y - source "mm/Kconfig" config XEN_DOM0 diff --git a/arch/arm64/include/asm/debug-monitors.h b/arch/arm64/include/asm/debug-monitors.h index 1bc1c4f15c14..62314791570c 100644 --- a/arch/arm64/include/asm/debug-monitors.h +++ b/arch/arm64/include/asm/debug-monitors.h @@ -104,14 +104,7 @@ static inline int reinstall_suspended_bps(struct pt_regs *regs) } #endif -#ifdef CONFIG_COMPAT int aarch32_break_handler(struct pt_regs *regs); -#else -static int aarch32_break_handler(struct pt_regs *regs) -{ - return -EFAULT; -} -#endif #endif /* __ASSEMBLY */ #endif /* __KERNEL__ */ diff --git a/arch/mips/include/uapi/asm/unistd.h b/arch/mips/include/uapi/asm/unistd.h index 19244e913837..d6e154a9e6a5 100644 --- a/arch/mips/include/uapi/asm/unistd.h +++ b/arch/mips/include/uapi/asm/unistd.h @@ -1029,15 +1029,17 @@ #define __NR_process_vm_writev (__NR_Linux + 310) #define __NR_kcmp (__NR_Linux + 311) #define __NR_finit_module (__NR_Linux + 312) +#define __NR_sched_setattr (__NR_Linux + 313) +#define __NR_sched_getattr (__NR_Linux + 314) /* * Offset of the last N32 flavoured syscall */ -#define __NR_Linux_syscalls 312 +#define __NR_Linux_syscalls 314 #endif /* _MIPS_SIM == _MIPS_SIM_NABI32 */ #define __NR_N32_Linux 6000 -#define __NR_N32_Linux_syscalls 312 +#define __NR_N32_Linux_syscalls 314 #endif /* _UAPI_ASM_UNISTD_H */ diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c index 2a1cc36b3ace..11655e90be53 100644 --- a/drivers/mmc/core/core.c +++ b/drivers/mmc/core/core.c @@ -63,6 +63,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(mmc_blk_rw_end); #define MMC_BKOPS_MAX_TIMEOUT (4 * 60 * 1000) /* max time to wait in ms */ static struct workqueue_struct *workqueue; +static struct wake_lock mmc_delayed_work_wake_lock; static const unsigned freqs[] = { 400000, 300000, 200000, 100000 }; /* @@ -96,6 +97,7 @@ MODULE_PARM_DESC( static int mmc_schedule_delayed_work(struct delayed_work *work, unsigned long delay) { + wake_lock(&mmc_delayed_work_wake_lock); return queue_delayed_work(workqueue, work, delay); } @@ -1726,8 +1728,6 @@ static void _mmc_detect_change(struct mmc_host *host, unsigned long delay, pm_wakeup_event(mmc_dev(host), 5000); host->detect_change = 1; - - wake_lock(&host->detect_wake_lock); mmc_schedule_delayed_work(&host->detect, delay); } @@ -2511,13 +2511,11 @@ void mmc_rescan(struct work_struct *work) out: if (extend_wakelock) - wake_lock_timeout(&host->detect_wake_lock, HZ / 2); + wake_lock_timeout(&mmc_delayed_work_wake_lock, HZ / 2); else - wake_unlock(&host->detect_wake_lock); - if (host->caps & MMC_CAP_NEEDS_POLL) { - wake_lock(&host->detect_wake_lock); + wake_unlock(&mmc_delayed_work_wake_lock); + if (host->caps & MMC_CAP_NEEDS_POLL) mmc_schedule_delayed_work(&host->detect, HZ); - } } void mmc_start_host(struct mmc_host *host) @@ -2541,8 +2539,7 @@ void mmc_stop_host(struct mmc_host *host) #endif host->rescan_disable = 1; - if (cancel_delayed_work_sync(&host->detect)) - wake_unlock(&host->detect_wake_lock); + cancel_delayed_work_sync(&host->detect); mmc_flush_scheduled_work(); /* clear pm flags now and let card drivers set them as needed */ @@ -2699,8 +2696,7 @@ int mmc_pm_notify(struct notifier_block *notify_block, spin_lock_irqsave(&host->lock, flags); host->rescan_disable = 1; spin_unlock_irqrestore(&host->lock, flags); - if (cancel_delayed_work_sync(&host->detect)) - wake_unlock(&host->detect_wake_lock); + cancel_delayed_work_sync(&host->detect); if (!host->bus_ops) break; @@ -2776,6 +2772,9 @@ static int __init mmc_init(void) if (!workqueue) return -ENOMEM; + wake_lock_init(&mmc_delayed_work_wake_lock, WAKE_LOCK_SUSPEND, + "mmc_delayed_work"); + ret = mmc_register_bus(); if (ret) goto destroy_workqueue; @@ -2796,6 +2795,7 @@ unregister_bus: mmc_unregister_bus(); destroy_workqueue: destroy_workqueue(workqueue); + wake_lock_destroy(&mmc_delayed_work_wake_lock); return ret; } @@ -2806,6 +2806,7 @@ static void __exit mmc_exit(void) mmc_unregister_host_class(); mmc_unregister_bus(); destroy_workqueue(workqueue); + wake_lock_destroy(&mmc_delayed_work_wake_lock); } subsys_initcall(mmc_init); diff --git a/drivers/mmc/core/host.c b/drivers/mmc/core/host.c index 2c886ae34198..cc3164a939eb 100644 --- a/drivers/mmc/core/host.c +++ b/drivers/mmc/core/host.c @@ -481,8 +481,6 @@ struct mmc_host *mmc_alloc_host(int extra, struct device *dev) spin_lock_init(&host->lock); init_waitqueue_head(&host->wq); - wake_lock_init(&host->detect_wake_lock, WAKE_LOCK_SUSPEND, - kasprintf(GFP_KERNEL, "%s_detect", mmc_hostname(host))); INIT_DELAYED_WORK(&host->detect, mmc_rescan); #ifdef CONFIG_PM host->pm_notify.notifier_call = mmc_pm_notify; @@ -582,7 +580,6 @@ void mmc_free_host(struct mmc_host *host) spin_lock(&mmc_host_lock); idr_remove(&mmc_host_idr, host->index); spin_unlock(&mmc_host_lock); - wake_lock_destroy(&host->detect_wake_lock); put_device(&host->class_dev); } diff --git a/drivers/usb/gadget/f_accessory.c b/drivers/usb/gadget/f_accessory.c index dcedeb4b2fef..0237f1e059b4 100644 --- a/drivers/usb/gadget/f_accessory.c +++ b/drivers/usb/gadget/f_accessory.c @@ -1204,8 +1204,7 @@ err: static void acc_disconnect(void) { /* unregister all HID devices if USB is disconnected */ - if (_acc_dev) - kill_all_hid_devices(_acc_dev); + kill_all_hid_devices(_acc_dev); } static void acc_cleanup(void) diff --git a/drivers/usb/gadget/u_ether.c b/drivers/usb/gadget/u_ether.c index bf6589eb7cb5..28b291a4e0e5 100644 --- a/drivers/usb/gadget/u_ether.c +++ b/drivers/usb/gadget/u_ether.c @@ -875,17 +875,6 @@ static int get_ether_addr(const char *str, u8 *dev_addr) return 1; } -static int get_host_ether_addr(u8 *str, u8 *dev_addr) -{ - memcpy(dev_addr, str, ETH_ALEN); - if (is_valid_ether_addr(dev_addr)) - return 0; - - random_ether_addr(dev_addr); - memcpy(str, dev_addr, ETH_ALEN); - return 1; -} - static int get_ether_addr_str(u8 dev_addr[ETH_ALEN], char *str, int len) { if (len < 18) @@ -897,6 +886,17 @@ static int get_ether_addr_str(u8 dev_addr[ETH_ALEN], char *str, int len) return 18; } +static int get_host_ether_addr(u8 *str, u8 *dev_addr) +{ + memcpy(dev_addr, str, ETH_ALEN); + if (is_valid_ether_addr(dev_addr)) + return 0; + + random_ether_addr(dev_addr); + memcpy(str, dev_addr, ETH_ALEN); + return 1; +} + static const struct net_device_ops eth_netdev_ops = { .ndo_open = eth_open, .ndo_stop = eth_stop, diff --git a/include/linux/mmc/host.h b/include/linux/mmc/host.h index 1c923ab2dd73..9b92af47577f 100644 --- a/include/linux/mmc/host.h +++ b/include/linux/mmc/host.h @@ -15,7 +15,6 @@ #include <linux/sched.h> #include <linux/device.h> #include <linux/fault-inject.h> -#include <linux/wakelock.h> #include <linux/mmc/core.h> #include <linux/mmc/pm.h> @@ -330,7 +329,6 @@ struct mmc_host { int claim_cnt; /* "claim" nesting count */ struct delayed_work detect; - struct wake_lock detect_wake_lock; int detect_change; /* card detect flag */ struct mmc_slot slot; diff --git a/include/net/bluetooth/hci.h b/include/net/bluetooth/hci.h index 73a22fd1fd66..66c1cd87bfe7 100644 --- a/include/net/bluetooth/hci.h +++ b/include/net/bluetooth/hci.h @@ -1762,9 +1762,6 @@ struct hci_conn_info { __u8 out; __u16 state; __u32 link_mode; - __u32 mtu; - __u32 cnt; - __u32 pkts; }; struct hci_dev_req { diff --git a/include/net/bluetooth/hci_core.h b/include/net/bluetooth/hci_core.h index 6e17a54ac302..f2f0cf5865c4 100644 --- a/include/net/bluetooth/hci_core.h +++ b/include/net/bluetooth/hci_core.h @@ -659,7 +659,7 @@ static inline void hci_conn_drop(struct hci_conn *conn) if (conn->state == BT_CONNECTED) { timeo = conn->disc_timeout; if (!conn->out) - timeo *= 20; + timeo *= 2; } else { timeo = msecs_to_jiffies(10); } diff --git a/include/net/netfilter/ipv4/nf_reject.h b/include/net/netfilter/ipv4/nf_reject.h index 99fdd82a1306..931fbf812171 100644 --- a/include/net/netfilter/ipv4/nf_reject.h +++ b/include/net/netfilter/ipv4/nf_reject.h @@ -9,14 +9,6 @@ static inline void nf_send_unreach(struct sk_buff *skb_in, int code) { icmp_send(skb_in, ICMP_DEST_UNREACH, code, 0); -#ifdef CONFIG_IP_NF_TARGET_REJECT_SKERR - if (skb_in->sk) { - skb_in->sk->sk_err = icmp_err_convert[code].errno; - skb_in->sk->sk_error_report(skb_in->sk); - pr_debug("ipt_REJECT: sk_err=%d for skb=%p sk=%p\n", - skb_in->sk->sk_err, skb_in, skb_in->sk); - } -#endif } /* Send RST reply */ diff --git a/include/net/netfilter/ipv6/nf_reject.h b/include/net/netfilter/ipv6/nf_reject.h index 5f9795c8feb6..710d17ed70b4 100644 --- a/include/net/netfilter/ipv6/nf_reject.h +++ b/include/net/netfilter/ipv6/nf_reject.h @@ -15,15 +15,6 @@ nf_send_unreach6(struct net *net, struct sk_buff *skb_in, unsigned char code, skb_in->dev = net->loopback_dev; icmpv6_send(skb_in, ICMPV6_DEST_UNREACH, code, 0); -#ifdef CONFIG_IP6_NF_TARGET_REJECT_SKERR - if (skb_in->sk) { - icmpv6_err_convert(ICMPV6_DEST_UNREACH, code, - &skb_in->sk->sk_err); - skb_in->sk->sk_error_report(skb_in->sk); - pr_debug("ip6t_REJECT: sk_err=%d for skb=%p sk=%p\n", - skb_in->sk->sk_err, skb_in, skb_in->sk); - } -#endif } /* Send RST reply */ diff --git a/include/uapi/asm-generic/unistd.h b/include/uapi/asm-generic/unistd.h index 0f74c7bdff3c..f2011a9b37d7 100644 --- a/include/uapi/asm-generic/unistd.h +++ b/include/uapi/asm-generic/unistd.h @@ -696,11 +696,12 @@ __SYSCALL(__NR_finit_module, sys_finit_module) __SYSCALL(__NR_sched_setattr, sys_sched_setattr) #define __NR_sched_getattr 275 __SYSCALL(__NR_sched_getattr, sys_sched_getattr) -#define __NR_seccomp 276 + +#define __NR_seccomp 277 __SYSCALL(__NR_seccomp, sys_seccomp) #undef __NR_syscalls -#define __NR_syscalls 277 +#define __NR_syscalls 278 /* * All syscalls below here should go away really, diff --git a/kernel/irq/pm.c b/kernel/irq/pm.c index f94d703c9f55..da5f2ffa7106 100644 --- a/kernel/irq/pm.c +++ b/kernel/irq/pm.c @@ -100,7 +100,6 @@ EXPORT_SYMBOL_GPL(resume_device_irqs); int check_wakeup_irqs(void) { struct irq_desc *desc; - char __maybe_unused suspend_abort[MAX_SUSPEND_ABORT_LEN]; int irq; for_each_irq_desc(irq, desc) { diff --git a/kernel/power/wakelock.c b/kernel/power/wakelock.c index c8fba3380076..8f50de394d22 100644 --- a/kernel/power/wakelock.c +++ b/kernel/power/wakelock.c @@ -9,6 +9,7 @@ * manipulate wakelocks on Android. */ +#include <linux/capability.h> #include <linux/ctype.h> #include <linux/device.h> #include <linux/err.h> @@ -188,6 +189,9 @@ int pm_wake_lock(const char *buf) size_t len; int ret = 0; + if (!capable(CAP_BLOCK_SUSPEND)) + return -EPERM; + while (*str && !isspace(*str)) str++; @@ -231,6 +235,9 @@ int pm_wake_unlock(const char *buf) size_t len; int ret = 0; + if (!capable(CAP_BLOCK_SUSPEND)) + return -EPERM; + len = strlen(buf); if (!len) return -EINVAL; diff --git a/kernel/sys.c b/kernel/sys.c index 8ba889e31bea..4bf3cb0f337c 100644 --- a/kernel/sys.c +++ b/kernel/sys.c @@ -2111,26 +2111,6 @@ SYSCALL_DEFINE5(prctl, int, option, unsigned long, arg2, unsigned long, arg3, else return -EINVAL; break; - case PR_SET_TIMERSLACK_PID: - if (current->pid != (pid_t)arg3 && - !capable(CAP_SYS_NICE)) - return -EPERM; - rcu_read_lock(); - tsk = find_task_by_pid_ns((pid_t)arg3, &init_pid_ns); - if (tsk == NULL) { - rcu_read_unlock(); - return -EINVAL; - } - get_task_struct(tsk); - rcu_read_unlock(); - if (arg2 <= 0) - tsk->timer_slack_ns = - tsk->default_timer_slack_ns; - else - tsk->timer_slack_ns = arg2; - put_task_struct(tsk); - error = 0; - break; default: return -EINVAL; } diff --git a/net/bluetooth/hci_conn.c b/net/bluetooth/hci_conn.c index ad4a57779ea7..ba5366c320da 100644 --- a/net/bluetooth/hci_conn.c +++ b/net/bluetooth/hci_conn.c @@ -980,15 +980,6 @@ int hci_get_conn_list(void __user *arg) (ci + n)->out = c->out; (ci + n)->state = c->state; (ci + n)->link_mode = c->link_mode; - if (c->type == SCO_LINK) { - (ci + n)->mtu = hdev->sco_mtu; - (ci + n)->cnt = hdev->sco_cnt; - (ci + n)->pkts = hdev->sco_pkts; - } else { - (ci + n)->mtu = hdev->acl_mtu; - (ci + n)->cnt = hdev->acl_cnt; - (ci + n)->pkts = hdev->acl_pkts; - } if (++n >= req.conn_num) break; } @@ -1025,15 +1016,6 @@ int hci_get_conn_info(struct hci_dev *hdev, void __user *arg) ci.out = conn->out; ci.state = conn->state; ci.link_mode = conn->link_mode; - if (req.type == SCO_LINK) { - ci.mtu = hdev->sco_mtu; - ci.cnt = hdev->sco_cnt; - ci.pkts = hdev->sco_pkts; - } else { - ci.mtu = hdev->acl_mtu; - ci.cnt = hdev->acl_cnt; - ci.pkts = hdev->acl_pkts; - } } hci_dev_unlock(hdev); diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c index bf1ea633c048..5f812455a450 100644 --- a/net/bluetooth/hci_event.c +++ b/net/bluetooth/hci_event.c @@ -2901,7 +2901,6 @@ static void hci_sync_conn_complete_evt(struct hci_dev *hdev, break; case 0x0d: /* Connection Rejected due to Limited Resources */ - case 0x10: /* Connection Accept Timeout */ case 0x11: /* Unsupported Feature or Parameter Value */ case 0x1c: /* SCO interval rejected */ case 0x1a: /* Unsupported Remote Feature */ diff --git a/net/bluetooth/rfcomm/core.c b/net/bluetooth/rfcomm/core.c index c377bf288f32..facd8a79c038 100644 --- a/net/bluetooth/rfcomm/core.c +++ b/net/bluetooth/rfcomm/core.c @@ -436,6 +436,7 @@ static int __rfcomm_dlc_close(struct rfcomm_dlc *d, int err) switch (d->state) { case BT_CONNECT: + case BT_CONFIG: if (test_and_clear_bit(RFCOMM_DEFER_SETUP, &d->flags)) { set_bit(RFCOMM_AUTH_REJECT, &d->flags); rfcomm_schedule(); diff --git a/net/ipv4/netfilter/Kconfig b/net/ipv4/netfilter/Kconfig index 34d630d35cc7..a26ce035e3fa 100644 --- a/net/ipv4/netfilter/Kconfig +++ b/net/ipv4/netfilter/Kconfig @@ -159,18 +159,6 @@ config IP_NF_TARGET_SYNPROXY To compile it as a module, choose M here. If unsure, say N. -config IP_NF_TARGET_REJECT_SKERR - bool "Force socket error when rejecting with icmp*" - depends on IP_NF_TARGET_REJECT - default n - help - This option enables turning a "--reject-with icmp*" into a matching - socket error also. - The REJECT target normally allows sending an ICMP message. But it - leaves the local socket unaware of any ingress rejects. - - If unsure, say N. - config IP_NF_TARGET_ULOG tristate "ULOG target support (obsolete)" default m if NETFILTER_ADVANCED=n diff --git a/net/ipv6/netfilter/Kconfig b/net/ipv6/netfilter/Kconfig index c842cd3059c7..4bff1f297e39 100644 --- a/net/ipv6/netfilter/Kconfig +++ b/net/ipv6/netfilter/Kconfig @@ -196,18 +196,6 @@ config IP6_NF_TARGET_SYNPROXY To compile it as a module, choose M here. If unsure, say N. -config IP6_NF_TARGET_REJECT_SKERR - bool "Force socket error when rejecting with icmp*" - depends on IP6_NF_TARGET_REJECT - default n - help - This option enables turning a "--reject-with icmp*" into a matching - socket error also. - The REJECT target normally allows sending an ICMP message. But it - leaves the local socket unaware of any ingress rejects. - - If unsure, say N. - config IP6_NF_MANGLE tristate "Packet mangling" default m if NETFILTER_ADVANCED=n diff --git a/net/wireless/Kconfig b/net/wireless/Kconfig index 4c602d100480..16d08b399210 100644 --- a/net/wireless/Kconfig +++ b/net/wireless/Kconfig @@ -166,14 +166,3 @@ config LIB80211_DEBUG from lib80211. If unsure, say N. - -config CFG80211_ALLOW_RECONNECT - bool "Allow reconnect while already connected" - depends on CFG80211 - default n - help - cfg80211 stack doesn't allow to connect if you are already - connected. This option allows to make a connection in this case. - - Select this option ONLY for wlan drivers that are specifically - built for such purposes. diff --git a/net/wireless/sme.c b/net/wireless/sme.c index fc90e14a3859..f04d4c32e96e 100644 --- a/net/wireless/sme.c +++ b/net/wireless/sme.c @@ -429,18 +429,11 @@ static int cfg80211_sme_connect(struct wireless_dev *wdev, if (!rdev->ops->auth || !rdev->ops->assoc) return -EOPNOTSUPP; -#ifndef CONFIG_CFG80211_ALLOW_RECONNECT if (wdev->current_bss) return -EALREADY; if (WARN_ON(wdev->conn)) return -EINPROGRESS; -#else - if (wdev->conn) { - kfree(wdev->conn); - wdev->conn = NULL; - } -#endif wdev->conn = kzalloc(sizeof(*wdev->conn), GFP_KERNEL); if (!wdev->conn) |