From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from todd.t-8ch.de (todd.t-8ch.de [159.69.126.157]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A550A4EB24; Tue, 23 Apr 2024 07:56:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=159.69.126.157 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713858981; cv=none; b=FbT6gqQzlCuggrlehgIoWan7MRQFIwudOa53G7EyLT0fAc8Xzr04i11bdsMyshUrf4utu8+wpSjB4vaQf2IZ0XqhPsMG+5SEVglOKFVGMxK3a3vmGvzFNLApb22XA6Zsqlsb3i+39CiwkemGRGhwDkLtLqOkW+ATTDhpFuuHMwo= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713858981; c=relaxed/simple; bh=FVysOkPE/qiRLZCuxnkxsMnTX0foyNtgrbyactsZP2Y=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Vb62sIvx12Ajrfc9PpDWX7DpEVHxYpcpcsyRoZ5bg2G84CyFQJr2KK6rD4ML/nBjTyb8Nl4n/WDfF8QemjIHo5HN2S0KcVjnyn5czK9HQXHhYk3fGOPnZcoPwm3S0VUGSumuzeRr3fcVe8C+bx5NAIssRNzQma6zJfJ4iulqk8A= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=weissschuh.net; spf=pass smtp.mailfrom=weissschuh.net; dkim=pass (1024-bit key) header.d=weissschuh.net header.i=@weissschuh.net header.b=uagAM0++; arc=none smtp.client-ip=159.69.126.157 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=weissschuh.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=weissschuh.net Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=weissschuh.net header.i=@weissschuh.net header.b="uagAM0++" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=weissschuh.net; s=mail; t=1713858962; bh=FVysOkPE/qiRLZCuxnkxsMnTX0foyNtgrbyactsZP2Y=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=uagAM0++rugBquWWZc12oBXw1p0sZNjLZ2P0BRn3a7mK4KfkLqVjep/MFqJY/7LAF 9caAdhgcu3xO8svnWs6UiBpEw54gG1sTupswjoZ3XrmizzbipFrDAq+6AqF37skYwx BR63gR5QqQWcerDyrgrTLAOjD+xHRp30erwz41hs= From: =?utf-8?q?Thomas_Wei=C3=9Fschuh?= Date: Tue, 23 Apr 2024 09:54:46 +0200 Subject: [PATCH v3 11/11] sysctl: treewide: constify the ctl_table argument of handlers Precedence: bulk X-Mailing-List: bpf@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit Message-Id: <20240423-sysctl-const-handler-v3-11-e0beccb836e2@weissschuh.net> References: <20240423-sysctl-const-handler-v3-0-e0beccb836e2@weissschuh.net> In-Reply-To: <20240423-sysctl-const-handler-v3-0-e0beccb836e2@weissschuh.net> To: Luis Chamberlain , Joel Granados , Kees Cook Cc: Eric Dumazet , Dave Chinner , linux-fsdevel@vger.kernel.org, netdev@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, linux-mm@kvack.org, linux-security-module@vger.kernel.org, bpf@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-xfs@vger.kernel.org, linux-trace-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, netfilter-devel@vger.kernel.org, coreteam@netfilter.org, kexec@lists.infradead.org, linux-hardening@vger.kernel.org, bridge@lists.linux.dev, lvs-devel@vger.kernel.org, linux-rdma@vger.kernel.org, rds-devel@oss.oracle.com, linux-sctp@vger.kernel.org, linux-nfs@vger.kernel.org, apparmor@lists.ubuntu.com, =?utf-8?q?Thomas_Wei=C3=9Fschuh?= X-Mailer: b4 0.13.0 X-Developer-Signature: v=1; a=ed25519-sha256; t=1713858961; l=108174; i=linux@weissschuh.net; s=20221212; h=from:subject:message-id; bh=FVysOkPE/qiRLZCuxnkxsMnTX0foyNtgrbyactsZP2Y=; b=5wEbCfrcoLTsgxV7Uxepjuju0i3n3dX4eEy0jjS4qXCKmY0HYJZJRKgtvn3SvZv68yUf+15PI DCOFgsjg7ChC0MoGza+B8re+o9KUvCk6GNeS16w70HPuLDKhvC0QRKO X-Developer-Key: i=linux@weissschuh.net; a=ed25519; pk=KcycQgFPX2wGR5azS7RhpBqedglOZVgRPfdFSPB1LNw= Adapt the proc_hander function signature to make it clear that handlers are not supposed to modify their ctl_table argument. This is a prerequisite to moving the static ctl_table structs into .rodata. By migrating all handlers at once a lengthy transition can be avoided. The patch was mostly generated by coccinelle with the following script: @@ identifier func, ctl, write, buffer, lenp, ppos; @@ int func( - struct ctl_table *ctl, + const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { ... } In addition to the scripted changes some other changes are done: * the typedef proc_handler is adapted * the prototypes of non-static handler are adapted * kernel/seccomp.c:{read,write}_actions_logged() and kernel/watchdog.c:proc_watchdog_common() are adapted as they need to adapted together with the handlers for type-consistency reasons Signed-off-by: Thomas Weißschuh --- arch/arm64/kernel/armv8_deprecated.c | 2 +- arch/arm64/kernel/fpsimd.c | 2 +- arch/s390/appldata/appldata_base.c | 10 ++--- arch/s390/kernel/debug.c | 2 +- arch/s390/kernel/topology.c | 2 +- arch/s390/mm/cmm.c | 6 +-- arch/x86/kernel/itmt.c | 2 +- drivers/cdrom/cdrom.c | 4 +- drivers/char/random.c | 6 +-- drivers/macintosh/mac_hid.c | 2 +- drivers/net/vrf.c | 2 +- drivers/parport/procfs.c | 12 +++--- drivers/perf/arm_pmuv3.c | 4 +- drivers/perf/riscv_pmu_sbi.c | 2 +- fs/coredump.c | 2 +- fs/dcache.c | 4 +- fs/drop_caches.c | 2 +- fs/exec.c | 4 +- fs/file_table.c | 4 +- fs/fs-writeback.c | 2 +- fs/inode.c | 4 +- fs/pipe.c | 2 +- fs/quota/dquot.c | 2 +- fs/xfs/xfs_sysctl.c | 6 +-- include/linux/ftrace.h | 4 +- include/linux/mm.h | 8 ++-- include/linux/perf_event.h | 6 +-- include/linux/security.h | 2 +- include/linux/sysctl.h | 34 ++++++++-------- include/linux/vmstat.h | 6 +-- include/linux/writeback.h | 2 +- include/net/ndisc.h | 2 +- include/net/neighbour.h | 6 +-- include/net/netfilter/nf_hooks_lwtunnel.h | 2 +- ipc/ipc_sysctl.c | 8 ++-- kernel/bpf/syscall.c | 4 +- kernel/delayacct.c | 4 +- kernel/events/callchain.c | 2 +- kernel/events/core.c | 4 +- kernel/fork.c | 2 +- kernel/hung_task.c | 6 +-- kernel/kexec_core.c | 2 +- kernel/kprobes.c | 2 +- kernel/latencytop.c | 4 +- kernel/pid_namespace.c | 2 +- kernel/pid_sysctl.h | 2 +- kernel/printk/internal.h | 2 +- kernel/printk/printk.c | 2 +- kernel/printk/sysctl.c | 5 ++- kernel/sched/core.c | 8 ++-- kernel/sched/rt.c | 16 ++++---- kernel/sched/topology.c | 2 +- kernel/seccomp.c | 10 ++--- kernel/stackleak.c | 2 +- kernel/sysctl.c | 68 +++++++++++++++---------------- kernel/time/timer.c | 2 +- kernel/trace/ftrace.c | 2 +- kernel/trace/trace.c | 2 +- kernel/trace/trace_events_user.c | 2 +- kernel/trace/trace_stack.c | 2 +- kernel/umh.c | 2 +- kernel/utsname_sysctl.c | 2 +- kernel/watchdog.c | 12 +++--- mm/compaction.c | 6 +-- mm/hugetlb.c | 8 ++-- mm/page-writeback.c | 18 ++++---- mm/page_alloc.c | 14 +++---- mm/util.c | 12 +++--- mm/vmstat.c | 4 +- net/bridge/br_netfilter_hooks.c | 2 +- net/core/neighbour.c | 18 ++++---- net/core/sysctl_net_core.c | 20 ++++----- net/ipv4/devinet.c | 6 +-- net/ipv4/route.c | 2 +- net/ipv4/sysctl_net_ipv4.c | 32 +++++++-------- net/ipv6/addrconf.c | 19 +++++---- net/ipv6/ndisc.c | 2 +- net/ipv6/route.c | 2 +- net/ipv6/sysctl_net_ipv6.c | 4 +- net/mpls/af_mpls.c | 4 +- net/netfilter/ipvs/ip_vs_ctl.c | 12 +++--- net/netfilter/nf_conntrack_standalone.c | 2 +- net/netfilter/nf_hooks_lwtunnel.c | 2 +- net/netfilter/nf_log.c | 2 +- net/phonet/sysctl.c | 2 +- net/rds/tcp.c | 4 +- net/sctp/sysctl.c | 32 +++++++-------- net/sunrpc/sysctl.c | 6 +-- net/sunrpc/xprtrdma/svc_rdma.c | 2 +- security/apparmor/lsm.c | 2 +- security/min_addr.c | 2 +- security/yama/yama_lsm.c | 2 +- 92 files changed, 295 insertions(+), 293 deletions(-) diff --git a/arch/arm64/kernel/armv8_deprecated.c b/arch/arm64/kernel/armv8_deprecated.c index dd6ce86d4332..a3085cb68852 100644 --- a/arch/arm64/kernel/armv8_deprecated.c +++ b/arch/arm64/kernel/armv8_deprecated.c @@ -504,7 +504,7 @@ static int update_insn_emulation_mode(struct insn_emulation *insn, return ret; } -static int emulation_proc_handler(struct ctl_table *table, int write, +static int emulation_proc_handler(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { diff --git a/arch/arm64/kernel/fpsimd.c b/arch/arm64/kernel/fpsimd.c index ebb0158997ca..98efb587ef36 100644 --- a/arch/arm64/kernel/fpsimd.c +++ b/arch/arm64/kernel/fpsimd.c @@ -535,7 +535,7 @@ static unsigned int find_supported_vector_length(enum vec_type type, #if defined(CONFIG_ARM64_SVE) && defined(CONFIG_SYSCTL) -static int vec_proc_do_default_vl(struct ctl_table *table, int write, +static int vec_proc_do_default_vl(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct vl_info *info = table->extra1; diff --git a/arch/s390/appldata/appldata_base.c b/arch/s390/appldata/appldata_base.c index c2978cb03b36..91a30e017d65 100644 --- a/arch/s390/appldata/appldata_base.c +++ b/arch/s390/appldata/appldata_base.c @@ -46,9 +46,9 @@ * /proc entries (sysctl) */ static const char appldata_proc_name[APPLDATA_PROC_NAME_LENGTH] = "appldata"; -static int appldata_timer_handler(struct ctl_table *ctl, int write, +static int appldata_timer_handler(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos); -static int appldata_interval_handler(struct ctl_table *ctl, int write, +static int appldata_interval_handler(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos); static struct ctl_table_header *appldata_sysctl_header; @@ -199,7 +199,7 @@ static void __appldata_vtimer_setup(int cmd) * Start/Stop timer, show status of timer (0 = not active, 1 = active) */ static int -appldata_timer_handler(struct ctl_table *ctl, int write, +appldata_timer_handler(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { int timer_active = appldata_timer_active; @@ -232,7 +232,7 @@ appldata_timer_handler(struct ctl_table *ctl, int write, * current timer interval. */ static int -appldata_interval_handler(struct ctl_table *ctl, int write, +appldata_interval_handler(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { int interval = appldata_interval; @@ -262,7 +262,7 @@ appldata_interval_handler(struct ctl_table *ctl, int write, * monitoring (0 = not in process, 1 = in process) */ static int -appldata_generic_handler(struct ctl_table *ctl, int write, +appldata_generic_handler(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct appldata_ops *ops = NULL, *tmp_ops; diff --git a/arch/s390/kernel/debug.c b/arch/s390/kernel/debug.c index 85328a0ef3b6..bce50ca75ea7 100644 --- a/arch/s390/kernel/debug.c +++ b/arch/s390/kernel/debug.c @@ -954,7 +954,7 @@ static int debug_active = 1; * always allow read, allow write only if debug_stoppable is set or * if debug_active is already off */ -static int s390dbf_procactive(struct ctl_table *table, int write, +static int s390dbf_procactive(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { if (!write || debug_stoppable || !debug_active) diff --git a/arch/s390/kernel/topology.c b/arch/s390/kernel/topology.c index 89e91b8ce842..1df3dc118696 100644 --- a/arch/s390/kernel/topology.c +++ b/arch/s390/kernel/topology.c @@ -600,7 +600,7 @@ static int __init topology_setup(char *str) } early_param("topology", topology_setup); -static int topology_ctl_handler(struct ctl_table *ctl, int write, +static int topology_ctl_handler(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { int enabled = topology_is_enabled(); diff --git a/arch/s390/mm/cmm.c b/arch/s390/mm/cmm.c index f8b13f247646..1d6749e095f7 100644 --- a/arch/s390/mm/cmm.c +++ b/arch/s390/mm/cmm.c @@ -243,7 +243,7 @@ static int cmm_skip_blanks(char *cp, char **endp) return str != cp; } -static int cmm_pages_handler(struct ctl_table *ctl, int write, +static int cmm_pages_handler(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { long nr = cmm_get_pages(); @@ -262,7 +262,7 @@ static int cmm_pages_handler(struct ctl_table *ctl, int write, return 0; } -static int cmm_timed_pages_handler(struct ctl_table *ctl, int write, +static int cmm_timed_pages_handler(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { @@ -282,7 +282,7 @@ static int cmm_timed_pages_handler(struct ctl_table *ctl, int write, return 0; } -static int cmm_timeout_handler(struct ctl_table *ctl, int write, +static int cmm_timeout_handler(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { char buf[64], *p; diff --git a/arch/x86/kernel/itmt.c b/arch/x86/kernel/itmt.c index 9a7c03d47861..51b805c727fc 100644 --- a/arch/x86/kernel/itmt.c +++ b/arch/x86/kernel/itmt.c @@ -38,7 +38,7 @@ static bool __read_mostly sched_itmt_capable; */ unsigned int __read_mostly sysctl_sched_itmt_enabled; -static int sched_itmt_update_handler(struct ctl_table *table, int write, +static int sched_itmt_update_handler(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { unsigned int old_sysctl; diff --git a/drivers/cdrom/cdrom.c b/drivers/cdrom/cdrom.c index a5e07270e0d4..d0bd64129d43 100644 --- a/drivers/cdrom/cdrom.c +++ b/drivers/cdrom/cdrom.c @@ -3473,7 +3473,7 @@ static int cdrom_print_info(const char *header, int val, char *info, return 0; } -static int cdrom_sysctl_info(struct ctl_table *ctl, int write, +static int cdrom_sysctl_info(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { int pos; @@ -3586,7 +3586,7 @@ static void cdrom_update_settings(void) mutex_unlock(&cdrom_mutex); } -static int cdrom_sysctl_handler(struct ctl_table *ctl, int write, +static int cdrom_sysctl_handler(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { int ret; diff --git a/drivers/char/random.c b/drivers/char/random.c index 2597cb43f438..ca414208f899 100644 --- a/drivers/char/random.c +++ b/drivers/char/random.c @@ -1604,7 +1604,7 @@ static u8 sysctl_bootid[UUID_SIZE]; * UUID. The difference is in whether table->data is NULL; if it is, * then a new UUID is generated and returned to the user. */ -static int proc_do_uuid(struct ctl_table *table, int write, void *buf, +static int proc_do_uuid(const struct ctl_table *table, int write, void *buf, size_t *lenp, loff_t *ppos) { u8 tmp_uuid[UUID_SIZE], *uuid; @@ -1635,8 +1635,8 @@ static int proc_do_uuid(struct ctl_table *table, int write, void *buf, } /* The same as proc_dointvec, but writes don't change anything. */ -static int proc_do_rointvec(struct ctl_table *table, int write, void *buf, - size_t *lenp, loff_t *ppos) +static int proc_do_rointvec(const struct ctl_table *table, int write, + void *buf, size_t *lenp, loff_t *ppos) { return write ? 0 : proc_dointvec(table, 0, buf, lenp, ppos); } diff --git a/drivers/macintosh/mac_hid.c b/drivers/macintosh/mac_hid.c index 1ae3539beff5..891047c8a110 100644 --- a/drivers/macintosh/mac_hid.c +++ b/drivers/macintosh/mac_hid.c @@ -182,7 +182,7 @@ static void mac_hid_stop_emulation(void) mac_hid_destroy_emumouse(); } -static int mac_hid_toggle_emumouse(struct ctl_table *table, int write, +static int mac_hid_toggle_emumouse(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { int *valp = table->data; diff --git a/drivers/net/vrf.c b/drivers/net/vrf.c index 66f8542f3b18..14c5efd234ad 100644 --- a/drivers/net/vrf.c +++ b/drivers/net/vrf.c @@ -1908,7 +1908,7 @@ static int vrf_strict_mode_change(struct vrf_map *vmap, bool new_mode) return res; } -static int vrf_shared_table_handler(struct ctl_table *table, int write, +static int vrf_shared_table_handler(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct net *net = (struct net *)table->extra1; diff --git a/drivers/parport/procfs.c b/drivers/parport/procfs.c index bd388560ed59..efa7c90e4234 100644 --- a/drivers/parport/procfs.c +++ b/drivers/parport/procfs.c @@ -33,7 +33,7 @@ #define PARPORT_MIN_SPINTIME_VALUE 1 #define PARPORT_MAX_SPINTIME_VALUE 1000 -static int do_active_device(struct ctl_table *table, int write, +static int do_active_device(const struct ctl_table *table, int write, void *result, size_t *lenp, loff_t *ppos) { struct parport *port = (struct parport *)table->extra1; @@ -70,7 +70,7 @@ static int do_active_device(struct ctl_table *table, int write, } #ifdef CONFIG_PARPORT_1284 -static int do_autoprobe(struct ctl_table *table, int write, +static int do_autoprobe(const struct ctl_table *table, int write, void *result, size_t *lenp, loff_t *ppos) { struct parport_device_info *info = table->extra2; @@ -113,7 +113,7 @@ static int do_autoprobe(struct ctl_table *table, int write, } #endif /* IEEE1284.3 support. */ -static int do_hardware_base_addr(struct ctl_table *table, int write, +static int do_hardware_base_addr(const struct ctl_table *table, int write, void *result, size_t *lenp, loff_t *ppos) { struct parport *port = (struct parport *)table->extra1; @@ -140,7 +140,7 @@ static int do_hardware_base_addr(struct ctl_table *table, int write, return 0; } -static int do_hardware_irq(struct ctl_table *table, int write, +static int do_hardware_irq(const struct ctl_table *table, int write, void *result, size_t *lenp, loff_t *ppos) { struct parport *port = (struct parport *)table->extra1; @@ -167,7 +167,7 @@ static int do_hardware_irq(struct ctl_table *table, int write, return 0; } -static int do_hardware_dma(struct ctl_table *table, int write, +static int do_hardware_dma(const struct ctl_table *table, int write, void *result, size_t *lenp, loff_t *ppos) { struct parport *port = (struct parport *)table->extra1; @@ -194,7 +194,7 @@ static int do_hardware_dma(struct ctl_table *table, int write, return 0; } -static int do_hardware_modes(struct ctl_table *table, int write, +static int do_hardware_modes(const struct ctl_table *table, int write, void *result, size_t *lenp, loff_t *ppos) { struct parport *port = (struct parport *)table->extra1; diff --git a/drivers/perf/arm_pmuv3.c b/drivers/perf/arm_pmuv3.c index 23fa6c5da82c..accdf3ac4c1d 100644 --- a/drivers/perf/arm_pmuv3.c +++ b/drivers/perf/arm_pmuv3.c @@ -1253,8 +1253,8 @@ static void armv8pmu_disable_user_access_ipi(void *unused) armv8pmu_disable_user_access(); } -static int armv8pmu_proc_user_access_handler(struct ctl_table *table, int write, - void *buffer, size_t *lenp, loff_t *ppos) +static int armv8pmu_proc_user_access_handler(const struct ctl_table *table, + int write, void *buffer, size_t *lenp, loff_t *ppos) { int ret = proc_dointvec_minmax(table, write, buffer, lenp, ppos); if (ret || !write || sysctl_perf_user_access) diff --git a/drivers/perf/riscv_pmu_sbi.c b/drivers/perf/riscv_pmu_sbi.c index 82636273d726..9c9ceec3a206 100644 --- a/drivers/perf/riscv_pmu_sbi.c +++ b/drivers/perf/riscv_pmu_sbi.c @@ -1013,7 +1013,7 @@ static void riscv_pmu_update_counter_access(void *info) csr_write(CSR_SCOUNTEREN, 0x2); } -static int riscv_pmu_proc_user_access_handler(struct ctl_table *table, +static int riscv_pmu_proc_user_access_handler(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { diff --git a/fs/coredump.c b/fs/coredump.c index 8eae24afb3cb..b4f68117d203 100644 --- a/fs/coredump.c +++ b/fs/coredump.c @@ -986,7 +986,7 @@ void validate_coredump_safety(void) } } -static int proc_dostring_coredump(struct ctl_table *table, int write, +static int proc_dostring_coredump(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { int error = proc_dostring(table, write, buffer, lenp, ppos); diff --git a/fs/dcache.c b/fs/dcache.c index 407095188f83..5c6ae57d0321 100644 --- a/fs/dcache.c +++ b/fs/dcache.c @@ -174,8 +174,8 @@ static long get_nr_dentry_negative(void) return sum < 0 ? 0 : sum; } -static int proc_nr_dentry(struct ctl_table *table, int write, void *buffer, - size_t *lenp, loff_t *ppos) +static int proc_nr_dentry(const struct ctl_table *table, int write, + void *buffer, size_t *lenp, loff_t *ppos) { dentry_stat.nr_dentry = get_nr_dentry(); dentry_stat.nr_unused = get_nr_dentry_unused(); diff --git a/fs/drop_caches.c b/fs/drop_caches.c index b9575957a7c2..d45ef541d848 100644 --- a/fs/drop_caches.c +++ b/fs/drop_caches.c @@ -48,7 +48,7 @@ static void drop_pagecache_sb(struct super_block *sb, void *unused) iput(toput_inode); } -int drop_caches_sysctl_handler(struct ctl_table *table, int write, +int drop_caches_sysctl_handler(const struct ctl_table *table, int write, void *buffer, size_t *length, loff_t *ppos) { int ret; diff --git a/fs/exec.c b/fs/exec.c index 40073142288f..ba59402194c7 100644 --- a/fs/exec.c +++ b/fs/exec.c @@ -2181,8 +2181,8 @@ COMPAT_SYSCALL_DEFINE5(execveat, int, fd, #ifdef CONFIG_SYSCTL -static int proc_dointvec_minmax_coredump(struct ctl_table *table, int write, - void *buffer, size_t *lenp, loff_t *ppos) +static int proc_dointvec_minmax_coredump(const struct ctl_table *table, + int write, void *buffer, size_t *lenp, loff_t *ppos) { int error = proc_dointvec_minmax(table, write, buffer, lenp, ppos); diff --git a/fs/file_table.c b/fs/file_table.c index 4f03beed4737..f5480473727e 100644 --- a/fs/file_table.c +++ b/fs/file_table.c @@ -96,8 +96,8 @@ EXPORT_SYMBOL_GPL(get_max_files); /* * Handle nr_files sysctl */ -static int proc_nr_files(struct ctl_table *table, int write, void *buffer, - size_t *lenp, loff_t *ppos) +static int proc_nr_files(const struct ctl_table *table, int write, + void *buffer, size_t *lenp, loff_t *ppos) { files_stat.nr_files = get_nr_files(); return proc_doulongvec_minmax(table, write, buffer, lenp, ppos); diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c index 92a5b8283528..b865a3fa52f3 100644 --- a/fs/fs-writeback.c +++ b/fs/fs-writeback.c @@ -2413,7 +2413,7 @@ static int __init start_dirtytime_writeback(void) } __initcall(start_dirtytime_writeback); -int dirtytime_interval_handler(struct ctl_table *table, int write, +int dirtytime_interval_handler(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { int ret; diff --git a/fs/inode.c b/fs/inode.c index 3a41f83a4ba5..a622503a992c 100644 --- a/fs/inode.c +++ b/fs/inode.c @@ -107,8 +107,8 @@ long get_nr_dirty_inodes(void) */ static struct inodes_stat_t inodes_stat; -static int proc_nr_inodes(struct ctl_table *table, int write, void *buffer, - size_t *lenp, loff_t *ppos) +static int proc_nr_inodes(const struct ctl_table *table, int write, + void *buffer, size_t *lenp, loff_t *ppos) { inodes_stat.nr_inodes = get_nr_inodes(); inodes_stat.nr_unused = get_nr_inodes_unused(); diff --git a/fs/pipe.c b/fs/pipe.c index 50c8a8596b52..7dff2aa50a6d 100644 --- a/fs/pipe.c +++ b/fs/pipe.c @@ -1469,7 +1469,7 @@ static int do_proc_dopipe_max_size_conv(unsigned long *lvalp, return 0; } -static int proc_dopipe_max_size(struct ctl_table *table, int write, +static int proc_dopipe_max_size(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { return do_proc_douintvec(table, write, buffer, lenp, ppos, diff --git a/fs/quota/dquot.c b/fs/quota/dquot.c index 627eb2f72ef3..4c3936b8f7b6 100644 --- a/fs/quota/dquot.c +++ b/fs/quota/dquot.c @@ -2917,7 +2917,7 @@ const struct quotactl_ops dquot_quotactl_sysfile_ops = { }; EXPORT_SYMBOL(dquot_quotactl_sysfile_ops); -static int do_proc_dqstats(struct ctl_table *table, int write, +static int do_proc_dqstats(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { unsigned int type = (unsigned long *)table->data - dqstats.stat; diff --git a/fs/xfs/xfs_sysctl.c b/fs/xfs/xfs_sysctl.c index a191f6560f98..c84df23b494d 100644 --- a/fs/xfs/xfs_sysctl.c +++ b/fs/xfs/xfs_sysctl.c @@ -11,7 +11,7 @@ static struct ctl_table_header *xfs_table_header; #ifdef CONFIG_PROC_FS STATIC int xfs_stats_clear_proc_handler( - struct ctl_table *ctl, + const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, @@ -31,7 +31,7 @@ xfs_stats_clear_proc_handler( STATIC int xfs_panic_mask_proc_handler( - struct ctl_table *ctl, + const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, @@ -52,7 +52,7 @@ xfs_panic_mask_proc_handler( STATIC int xfs_deprecated_dointvec_minmax( - struct ctl_table *ctl, + const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, diff --git a/include/linux/ftrace.h b/include/linux/ftrace.h index 54d53f345d14..c3af2e5947aa 100644 --- a/include/linux/ftrace.h +++ b/include/linux/ftrace.h @@ -470,7 +470,7 @@ static inline void arch_ftrace_set_direct_caller(struct ftrace_regs *fregs, extern int stack_tracer_enabled; -int stack_trace_sysctl(struct ctl_table *table, int write, void *buffer, +int stack_trace_sysctl(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos); /* DO NOT MODIFY THIS VARIABLE DIRECTLY! */ @@ -1159,7 +1159,7 @@ extern int tracepoint_printk; extern void disable_trace_on_warning(void); extern int __disable_trace_on_warning; -int tracepoint_printk_sysctl(struct ctl_table *table, int write, +int tracepoint_printk_sysctl(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos); #else /* CONFIG_TRACING */ diff --git a/include/linux/mm.h b/include/linux/mm.h index dc33f8269fb5..828d97c23834 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -204,11 +204,11 @@ extern int sysctl_overcommit_memory; extern int sysctl_overcommit_ratio; extern unsigned long sysctl_overcommit_kbytes; -int overcommit_ratio_handler(struct ctl_table *, int, void *, size_t *, +int overcommit_ratio_handler(const struct ctl_table *, int, void *, size_t *, loff_t *); -int overcommit_kbytes_handler(struct ctl_table *, int, void *, size_t *, +int overcommit_kbytes_handler(const struct ctl_table *, int, void *, size_t *, loff_t *); -int overcommit_policy_handler(struct ctl_table *, int, void *, size_t *, +int overcommit_policy_handler(const struct ctl_table *, int, void *, size_t *, loff_t *); #if defined(CONFIG_SPARSEMEM) && !defined(CONFIG_SPARSEMEM_VMEMMAP) @@ -3897,7 +3897,7 @@ extern bool process_shares_mm(struct task_struct *p, struct mm_struct *mm); #ifdef CONFIG_SYSCTL extern int sysctl_drop_caches; -int drop_caches_sysctl_handler(struct ctl_table *, int, void *, size_t *, +int drop_caches_sysctl_handler(const struct ctl_table *, int, void *, size_t *, loff_t *); #endif diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h index a5304ae8c654..ce102aac11c0 100644 --- a/include/linux/perf_event.h +++ b/include/linux/perf_event.h @@ -1587,11 +1587,11 @@ extern int sysctl_perf_cpu_time_max_percent; extern void perf_sample_event_took(u64 sample_len_ns); -int perf_event_max_sample_rate_handler(struct ctl_table *table, int write, +int perf_event_max_sample_rate_handler(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos); -int perf_cpu_time_max_percent_handler(struct ctl_table *table, int write, +int perf_cpu_time_max_percent_handler(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos); -int perf_event_max_stack_handler(struct ctl_table *table, int write, +int perf_event_max_stack_handler(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos); /* Access to perf_event_open(2) syscall. */ diff --git a/include/linux/security.h b/include/linux/security.h index 21cf70346b33..96799ff57230 100644 --- a/include/linux/security.h +++ b/include/linux/security.h @@ -228,7 +228,7 @@ struct request_sock; #define LSM_UNSAFE_NO_NEW_PRIVS 4 #ifdef CONFIG_MMU -extern int mmap_min_addr_handler(struct ctl_table *table, int write, +extern int mmap_min_addr_handler(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos); #endif diff --git a/include/linux/sysctl.h b/include/linux/sysctl.h index 54fbec062772..aa4c6d44aaa0 100644 --- a/include/linux/sysctl.h +++ b/include/linux/sysctl.h @@ -61,31 +61,31 @@ extern const int sysctl_vals[]; extern const unsigned long sysctl_long_vals[]; -typedef int proc_handler(struct ctl_table *ctl, int write, void *buffer, +typedef int proc_handler(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos); -int proc_dostring(struct ctl_table *, int, void *, size_t *, loff_t *); -int proc_dobool(struct ctl_table *table, int write, void *buffer, +int proc_dostring(const struct ctl_table *, int, void *, size_t *, loff_t *); +int proc_dobool(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos); -int proc_dointvec(struct ctl_table *, int, void *, size_t *, loff_t *); -int proc_douintvec(struct ctl_table *, int, void *, size_t *, loff_t *); -int proc_dointvec_minmax(struct ctl_table *, int, void *, size_t *, loff_t *); -int proc_douintvec_minmax(struct ctl_table *table, int write, void *buffer, +int proc_dointvec(const struct ctl_table *, int, void *, size_t *, loff_t *); +int proc_douintvec(const struct ctl_table *, int, void *, size_t *, loff_t *); +int proc_dointvec_minmax(const struct ctl_table *, int, void *, size_t *, loff_t *); +int proc_douintvec_minmax(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos); -int proc_dou8vec_minmax(struct ctl_table *table, int write, void *buffer, +int proc_dou8vec_minmax(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos); -int proc_dointvec_jiffies(struct ctl_table *, int, void *, size_t *, loff_t *); -int proc_dointvec_ms_jiffies_minmax(struct ctl_table *table, int write, +int proc_dointvec_jiffies(const struct ctl_table *, int, void *, size_t *, loff_t *); +int proc_dointvec_ms_jiffies_minmax(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos); -int proc_dointvec_userhz_jiffies(struct ctl_table *, int, void *, size_t *, +int proc_dointvec_userhz_jiffies(const struct ctl_table *, int, void *, size_t *, loff_t *); -int proc_dointvec_ms_jiffies(struct ctl_table *, int, void *, size_t *, +int proc_dointvec_ms_jiffies(const struct ctl_table *, int, void *, size_t *, loff_t *); -int proc_doulongvec_minmax(struct ctl_table *, int, void *, size_t *, loff_t *); -int proc_doulongvec_ms_jiffies_minmax(struct ctl_table *table, int, void *, +int proc_doulongvec_minmax(const struct ctl_table *, int, void *, size_t *, loff_t *); +int proc_doulongvec_ms_jiffies_minmax(const struct ctl_table *table, int, void *, size_t *, loff_t *); -int proc_do_large_bitmap(struct ctl_table *, int, void *, size_t *, loff_t *); -int proc_do_static_key(struct ctl_table *table, int write, void *buffer, +int proc_do_large_bitmap(const struct ctl_table *, int, void *, size_t *, loff_t *); +int proc_do_static_key(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos); /* @@ -287,7 +287,7 @@ static inline bool sysctl_is_alias(char *param) } #endif /* CONFIG_SYSCTL */ -int sysctl_max_threads(struct ctl_table *table, int write, void *buffer, +int sysctl_max_threads(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos); #endif /* _LINUX_SYSCTL_H */ diff --git a/include/linux/vmstat.h b/include/linux/vmstat.h index 735eae6e272c..7da26d1aea12 100644 --- a/include/linux/vmstat.h +++ b/include/linux/vmstat.h @@ -17,7 +17,7 @@ extern int sysctl_stat_interval; #define DISABLE_NUMA_STAT 0 extern int sysctl_vm_numa_stat; DECLARE_STATIC_KEY_TRUE(vm_numa_stat_key); -int sysctl_vm_numa_stat_handler(struct ctl_table *table, int write, +int sysctl_vm_numa_stat_handler(const struct ctl_table *table, int write, void *buffer, size_t *length, loff_t *ppos); #endif @@ -301,8 +301,8 @@ void cpu_vm_stats_fold(int cpu); void refresh_zone_stat_thresholds(void); struct ctl_table; -int vmstat_refresh(struct ctl_table *, int write, void *buffer, size_t *lenp, - loff_t *ppos); +int vmstat_refresh(const struct ctl_table *, int write, void *buffer, + size_t *lenp, loff_t *ppos); void drain_zonestat(struct zone *zone, struct per_cpu_zonestat *); diff --git a/include/linux/writeback.h b/include/linux/writeback.h index 112d806ddbe4..1a54676d843a 100644 --- a/include/linux/writeback.h +++ b/include/linux/writeback.h @@ -350,7 +350,7 @@ extern unsigned int dirty_expire_interval; extern unsigned int dirtytime_expire_interval; extern int laptop_mode; -int dirtytime_interval_handler(struct ctl_table *table, int write, +int dirtytime_interval_handler(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos); void global_dirty_limits(unsigned long *pbackground, unsigned long *pdirty); diff --git a/include/net/ndisc.h b/include/net/ndisc.h index 9bbdf6eaa942..7a533d5b1d59 100644 --- a/include/net/ndisc.h +++ b/include/net/ndisc.h @@ -486,7 +486,7 @@ void igmp6_event_report(struct sk_buff *skb); #ifdef CONFIG_SYSCTL -int ndisc_ifinfo_sysctl_change(struct ctl_table *ctl, int write, +int ndisc_ifinfo_sysctl_change(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos); #endif diff --git a/include/net/neighbour.h b/include/net/neighbour.h index 0d28172193fa..a44f262a7384 100644 --- a/include/net/neighbour.h +++ b/include/net/neighbour.h @@ -412,12 +412,12 @@ void *neigh_seq_start(struct seq_file *, loff_t *, struct neigh_table *, void *neigh_seq_next(struct seq_file *, void *, loff_t *); void neigh_seq_stop(struct seq_file *, void *); -int neigh_proc_dointvec(struct ctl_table *ctl, int write, +int neigh_proc_dointvec(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos); -int neigh_proc_dointvec_jiffies(struct ctl_table *ctl, int write, +int neigh_proc_dointvec_jiffies(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos); -int neigh_proc_dointvec_ms_jiffies(struct ctl_table *ctl, int write, +int neigh_proc_dointvec_ms_jiffies(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos); int neigh_sysctl_register(struct net_device *dev, struct neigh_parms *p, diff --git a/include/net/netfilter/nf_hooks_lwtunnel.h b/include/net/netfilter/nf_hooks_lwtunnel.h index 52e27920f829..cef7a4eb8f97 100644 --- a/include/net/netfilter/nf_hooks_lwtunnel.h +++ b/include/net/netfilter/nf_hooks_lwtunnel.h @@ -2,6 +2,6 @@ #include #ifdef CONFIG_SYSCTL -int nf_hooks_lwtunnel_sysctl_handler(struct ctl_table *table, int write, +int nf_hooks_lwtunnel_sysctl_handler(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos); #endif diff --git a/ipc/ipc_sysctl.c b/ipc/ipc_sysctl.c index 9465b0ae470b..5d383a9a520e 100644 --- a/ipc/ipc_sysctl.c +++ b/ipc/ipc_sysctl.c @@ -17,8 +17,8 @@ #include #include "util.h" -static int proc_ipc_dointvec_minmax_orphans(struct ctl_table *table, int write, - void *buffer, size_t *lenp, loff_t *ppos) +static int proc_ipc_dointvec_minmax_orphans(const struct ctl_table *table, + int write, void *buffer, size_t *lenp, loff_t *ppos) { struct ipc_namespace *ns = container_of(table->data, struct ipc_namespace, shm_rmid_forced); @@ -33,7 +33,7 @@ static int proc_ipc_dointvec_minmax_orphans(struct ctl_table *table, int write, return err; } -static int proc_ipc_auto_msgmni(struct ctl_table *table, int write, +static int proc_ipc_auto_msgmni(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct ctl_table ipc_table; @@ -48,7 +48,7 @@ static int proc_ipc_auto_msgmni(struct ctl_table *table, int write, return proc_dointvec_minmax(&ipc_table, write, buffer, lenp, ppos); } -static int proc_ipc_sem_dointvec(struct ctl_table *table, int write, +static int proc_ipc_sem_dointvec(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct ipc_namespace *ns = diff --git a/kernel/bpf/syscall.c b/kernel/bpf/syscall.c index 7dcd7f174bb1..93d1f856f3d4 100644 --- a/kernel/bpf/syscall.c +++ b/kernel/bpf/syscall.c @@ -5937,7 +5937,7 @@ const struct bpf_prog_ops bpf_syscall_prog_ops = { }; #ifdef CONFIG_SYSCTL -static int bpf_stats_handler(struct ctl_table *table, int write, +static int bpf_stats_handler(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct static_key *key = (struct static_key *)table->data; @@ -5972,7 +5972,7 @@ void __weak unpriv_ebpf_notify(int new_state) { } -static int bpf_unpriv_handler(struct ctl_table *table, int write, +static int bpf_unpriv_handler(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { int ret, unpriv_enable = *(int *)table->data; diff --git a/kernel/delayacct.c b/kernel/delayacct.c index e039b0f99a0b..5cc4e0ef4128 100644 --- a/kernel/delayacct.c +++ b/kernel/delayacct.c @@ -44,8 +44,8 @@ void delayacct_init(void) } #ifdef CONFIG_PROC_SYSCTL -static int sysctl_delayacct(struct ctl_table *table, int write, void *buffer, - size_t *lenp, loff_t *ppos) +static int sysctl_delayacct(const struct ctl_table *table, int write, + void *buffer, size_t *lenp, loff_t *ppos) { int state = delayacct_on; struct ctl_table t; diff --git a/kernel/events/callchain.c b/kernel/events/callchain.c index 1273be84392c..bd5699f869c3 100644 --- a/kernel/events/callchain.c +++ b/kernel/events/callchain.c @@ -229,7 +229,7 @@ get_perf_callchain(struct pt_regs *regs, u32 init_nr, bool kernel, bool user, * Used for sysctl_perf_event_max_stack and * sysctl_perf_event_max_contexts_per_stack. */ -int perf_event_max_stack_handler(struct ctl_table *table, int write, +int perf_event_max_stack_handler(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { int *value = table->data; diff --git a/kernel/events/core.c b/kernel/events/core.c index f0128c5ff278..01cc910d31f3 100644 --- a/kernel/events/core.c +++ b/kernel/events/core.c @@ -450,7 +450,7 @@ static void update_perf_cpu_limits(void) static bool perf_rotate_context(struct perf_cpu_pmu_context *cpc); -int perf_event_max_sample_rate_handler(struct ctl_table *table, int write, +int perf_event_max_sample_rate_handler(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { int ret; @@ -474,7 +474,7 @@ int perf_event_max_sample_rate_handler(struct ctl_table *table, int write, int sysctl_perf_cpu_time_max_percent __read_mostly = DEFAULT_CPU_TIME_MAX_PERCENT; -int perf_cpu_time_max_percent_handler(struct ctl_table *table, int write, +int perf_cpu_time_max_percent_handler(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { int ret = proc_dointvec_minmax(table, write, buffer, lenp, ppos); diff --git a/kernel/fork.c b/kernel/fork.c index 99076dbe27d8..985bd0a5834c 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -3418,7 +3418,7 @@ int unshare_files(void) return 0; } -int sysctl_max_threads(struct ctl_table *table, int write, +int sysctl_max_threads(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct ctl_table t; diff --git a/kernel/hung_task.c b/kernel/hung_task.c index 1d92016b0b3c..688ab3443156 100644 --- a/kernel/hung_task.c +++ b/kernel/hung_task.c @@ -239,9 +239,9 @@ static long hung_timeout_jiffies(unsigned long last_checked, /* * Process updating of timeout sysctl */ -static int proc_dohung_task_timeout_secs(struct ctl_table *table, int write, - void *buffer, - size_t *lenp, loff_t *ppos) +static int proc_dohung_task_timeout_secs(const struct ctl_table *table, + int write, void *buffer, + size_t *lenp, loff_t *ppos) { int ret; diff --git a/kernel/kexec_core.c b/kernel/kexec_core.c index 9112d69d68b0..c0caa14880c3 100644 --- a/kernel/kexec_core.c +++ b/kernel/kexec_core.c @@ -888,7 +888,7 @@ struct kimage *kexec_crash_image; static int kexec_load_disabled; #ifdef CONFIG_SYSCTL -static int kexec_limit_handler(struct ctl_table *table, int write, +static int kexec_limit_handler(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct kexec_load_limit *limit = table->data; diff --git a/kernel/kprobes.c b/kernel/kprobes.c index 668ea401744b..fec9f6c4b0f1 100644 --- a/kernel/kprobes.c +++ b/kernel/kprobes.c @@ -939,7 +939,7 @@ static void unoptimize_all_kprobes(void) static DEFINE_MUTEX(kprobe_sysctl_mutex); static int sysctl_kprobes_optimization; -static int proc_kprobes_optimization_handler(struct ctl_table *table, +static int proc_kprobes_optimization_handler(const struct ctl_table *table, int write, void *buffer, size_t *length, loff_t *ppos) { diff --git a/kernel/latencytop.c b/kernel/latencytop.c index 84c53285f499..b03af86018f4 100644 --- a/kernel/latencytop.c +++ b/kernel/latencytop.c @@ -65,8 +65,8 @@ static struct latency_record latency_record[MAXLR]; int latencytop_enabled; #ifdef CONFIG_SYSCTL -static int sysctl_latencytop(struct ctl_table *table, int write, void *buffer, - size_t *lenp, loff_t *ppos) +static int sysctl_latencytop(const struct ctl_table *table, int write, + void *buffer, size_t *lenp, loff_t *ppos) { int err; diff --git a/kernel/pid_namespace.c b/kernel/pid_namespace.c index dc48fecfa1dc..afd7d54acb56 100644 --- a/kernel/pid_namespace.c +++ b/kernel/pid_namespace.c @@ -277,7 +277,7 @@ void zap_pid_ns_processes(struct pid_namespace *pid_ns) } #ifdef CONFIG_CHECKPOINT_RESTORE -static int pid_ns_ctl_handler(struct ctl_table *table, int write, +static int pid_ns_ctl_handler(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct pid_namespace *pid_ns = task_active_pid_ns(current); diff --git a/kernel/pid_sysctl.h b/kernel/pid_sysctl.h index fe9fb991dc42..18ecaef6be41 100644 --- a/kernel/pid_sysctl.h +++ b/kernel/pid_sysctl.h @@ -5,7 +5,7 @@ #include #if defined(CONFIG_SYSCTL) && defined(CONFIG_MEMFD_CREATE) -static int pid_mfd_noexec_dointvec_minmax(struct ctl_table *table, +static int pid_mfd_noexec_dointvec_minmax(const struct ctl_table *table, int write, void *buf, size_t *lenp, loff_t *ppos) { struct pid_namespace *ns = task_active_pid_ns(current); diff --git a/kernel/printk/internal.h b/kernel/printk/internal.h index 6c2afee5ef62..19dcc5832651 100644 --- a/kernel/printk/internal.h +++ b/kernel/printk/internal.h @@ -8,7 +8,7 @@ #if defined(CONFIG_PRINTK) && defined(CONFIG_SYSCTL) void __init printk_sysctl_init(void); -int devkmsg_sysctl_set_loglvl(struct ctl_table *table, int write, +int devkmsg_sysctl_set_loglvl(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos); #else #define printk_sysctl_init() do { } while (0) diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c index 6206804d275b..6d00e89744e9 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -197,7 +197,7 @@ __setup("printk.devkmsg=", control_devkmsg); char devkmsg_log_str[DEVKMSG_STR_MAX_SIZE] = "ratelimit"; #if defined(CONFIG_PRINTK) && defined(CONFIG_SYSCTL) -int devkmsg_sysctl_set_loglvl(struct ctl_table *table, int write, +int devkmsg_sysctl_set_loglvl(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { char old_str[DEVKMSG_STR_MAX_SIZE]; diff --git a/kernel/printk/sysctl.c b/kernel/printk/sysctl.c index 3e47dedce9e5..6aaddb90149f 100644 --- a/kernel/printk/sysctl.c +++ b/kernel/printk/sysctl.c @@ -11,8 +11,9 @@ static const int ten_thousand = 10000; -static int proc_dointvec_minmax_sysadmin(struct ctl_table *table, int write, - void *buffer, size_t *lenp, loff_t *ppos) +static int proc_dointvec_minmax_sysadmin(const struct ctl_table *table, + int write, void *buffer, + size_t *lenp, loff_t *ppos) { if (write && !capable(CAP_SYS_ADMIN)) return -EPERM; diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 5f9d32a110f9..d65f21c27304 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -1835,7 +1835,7 @@ static void uclamp_sync_util_min_rt_default(void) uclamp_update_util_min_rt_default(p); } -static int sysctl_sched_uclamp_handler(struct ctl_table *table, int write, +static int sysctl_sched_uclamp_handler(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { bool update_root_tg = false; @@ -4603,7 +4603,7 @@ static void reset_memory_tiering(void) } } -static int sysctl_numa_balancing(struct ctl_table *table, int write, +static int sysctl_numa_balancing(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct ctl_table t; @@ -4672,8 +4672,8 @@ static int __init setup_schedstats(char *str) __setup("schedstats=", setup_schedstats); #ifdef CONFIG_PROC_SYSCTL -static int sysctl_schedstats(struct ctl_table *table, int write, void *buffer, - size_t *lenp, loff_t *ppos) +static int sysctl_schedstats(const struct ctl_table *table, int write, + void *buffer, size_t *lenp, loff_t *ppos) { struct ctl_table t; int err; diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c index aa4c1c874fa4..3f8c046755fd 100644 --- a/kernel/sched/rt.c +++ b/kernel/sched/rt.c @@ -26,10 +26,10 @@ int sysctl_sched_rt_runtime = 950000; #ifdef CONFIG_SYSCTL static int sysctl_sched_rr_timeslice = (MSEC_PER_SEC * RR_TIMESLICE) / HZ; -static int sched_rt_handler(struct ctl_table *table, int write, void *buffer, - size_t *lenp, loff_t *ppos); -static int sched_rr_handler(struct ctl_table *table, int write, void *buffer, - size_t *lenp, loff_t *ppos); +static int sched_rt_handler(const struct ctl_table *table, int write, + void *buffer, size_t *lenp, loff_t *ppos); +static int sched_rr_handler(const struct ctl_table *table, int write, + void *buffer, size_t *lenp, loff_t *ppos); static struct ctl_table sched_rt_sysctls[] = { { .procname = "sched_rt_period_us", @@ -2952,8 +2952,8 @@ static void sched_rt_do_global(void) raw_spin_unlock_irqrestore(&def_rt_bandwidth.rt_runtime_lock, flags); } -static int sched_rt_handler(struct ctl_table *table, int write, void *buffer, - size_t *lenp, loff_t *ppos) +static int sched_rt_handler(const struct ctl_table *table, int write, + void *buffer, size_t *lenp, loff_t *ppos) { int old_period, old_runtime; static DEFINE_MUTEX(mutex); @@ -2991,8 +2991,8 @@ static int sched_rt_handler(struct ctl_table *table, int write, void *buffer, return ret; } -static int sched_rr_handler(struct ctl_table *table, int write, void *buffer, - size_t *lenp, loff_t *ppos) +static int sched_rr_handler(const struct ctl_table *table, int write, + void *buffer, size_t *lenp, loff_t *ppos) { int ret; static DEFINE_MUTEX(mutex); diff --git a/kernel/sched/topology.c b/kernel/sched/topology.c index 1d6eefa4032e..2b52f34dc35c 100644 --- a/kernel/sched/topology.c +++ b/kernel/sched/topology.c @@ -285,7 +285,7 @@ void rebuild_sched_domains_energy(void) } #ifdef CONFIG_PROC_SYSCTL -static int sched_energy_aware_handler(struct ctl_table *table, int write, +static int sched_energy_aware_handler(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { int ret, state; diff --git a/kernel/seccomp.c b/kernel/seccomp.c index 7ed72723fb8a..97a3d0e81ac1 100644 --- a/kernel/seccomp.c +++ b/kernel/seccomp.c @@ -2334,7 +2334,7 @@ static bool seccomp_actions_logged_from_names(u32 *actions_logged, char *names) return true; } -static int read_actions_logged(struct ctl_table *ro_table, void *buffer, +static int read_actions_logged(const struct ctl_table *ro_table, void *buffer, size_t *lenp, loff_t *ppos) { char names[sizeof(seccomp_actions_avail)]; @@ -2352,7 +2352,7 @@ static int read_actions_logged(struct ctl_table *ro_table, void *buffer, return proc_dostring(&table, 0, buffer, lenp, ppos); } -static int write_actions_logged(struct ctl_table *ro_table, void *buffer, +static int write_actions_logged(const struct ctl_table *ro_table, void *buffer, size_t *lenp, loff_t *ppos, u32 *actions_logged) { char names[sizeof(seccomp_actions_avail)]; @@ -2413,9 +2413,9 @@ static void audit_actions_logged(u32 actions_logged, u32 old_actions_logged, return audit_seccomp_actions_logged(new, old, !ret); } -static int seccomp_actions_logged_handler(struct ctl_table *ro_table, int write, - void *buffer, size_t *lenp, - loff_t *ppos) +static int seccomp_actions_logged_handler(const struct ctl_table *ro_table, + int write, void *buffer, + size_t *lenp, loff_t *ppos) { int ret; diff --git a/kernel/stackleak.c b/kernel/stackleak.c index 558b9d6d28d3..f64b2b3d0244 100644 --- a/kernel/stackleak.c +++ b/kernel/stackleak.c @@ -21,7 +21,7 @@ static DEFINE_STATIC_KEY_FALSE(stack_erasing_bypass); #ifdef CONFIG_SYSCTL -static int stack_erasing_sysctl(struct ctl_table *table, int write, +static int stack_erasing_sysctl(const struct ctl_table *table, int write, void __user *buffer, size_t *lenp, loff_t *ppos) { int ret = 0; diff --git a/kernel/sysctl.c b/kernel/sysctl.c index 62dd27752960..4d3e5cecbc88 100644 --- a/kernel/sysctl.c +++ b/kernel/sysctl.c @@ -256,7 +256,7 @@ static bool proc_first_pos_non_zero_ignore(loff_t *ppos, * * Returns 0 on success. */ -int proc_dostring(struct ctl_table *table, int write, +int proc_dostring(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { if (write) @@ -702,7 +702,7 @@ int do_proc_douintvec(const struct ctl_table *table, int write, * * Returns 0 on success. */ -int proc_dobool(struct ctl_table *table, int write, void *buffer, +int proc_dobool(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct ctl_table tmp; @@ -739,7 +739,7 @@ int proc_dobool(struct ctl_table *table, int write, void *buffer, * * Returns 0 on success. */ -int proc_dointvec(struct ctl_table *table, int write, void *buffer, +int proc_dointvec(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { return do_proc_dointvec(table, write, buffer, lenp, ppos, NULL, NULL); @@ -758,7 +758,7 @@ int proc_dointvec(struct ctl_table *table, int write, void *buffer, * * Returns 0 on success. */ -int proc_douintvec(struct ctl_table *table, int write, void *buffer, +int proc_douintvec(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { return do_proc_douintvec(table, write, buffer, lenp, ppos, @@ -769,7 +769,7 @@ int proc_douintvec(struct ctl_table *table, int write, void *buffer, * Taint values can only be increased * This means we can safely use a temporary. */ -static int proc_taint(struct ctl_table *table, int write, +static int proc_taint(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct ctl_table t; @@ -864,7 +864,7 @@ static int do_proc_dointvec_minmax_conv(bool *negp, unsigned long *lvalp, * * Returns 0 on success or -EINVAL on write when the range check fails. */ -int proc_dointvec_minmax(struct ctl_table *table, int write, +int proc_dointvec_minmax(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct do_proc_dointvec_minmax_conv_param param = { @@ -933,7 +933,7 @@ static int do_proc_douintvec_minmax_conv(unsigned long *lvalp, * * Returns 0 on success or -ERANGE on write when the range check fails. */ -int proc_douintvec_minmax(struct ctl_table *table, int write, +int proc_douintvec_minmax(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct do_proc_douintvec_minmax_conv_param param = { @@ -961,7 +961,7 @@ int proc_douintvec_minmax(struct ctl_table *table, int write, * * Returns 0 on success or an error on write when the range check fails. */ -int proc_dou8vec_minmax(struct ctl_table *table, int write, +int proc_dou8vec_minmax(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct ctl_table tmp; @@ -1004,7 +1004,7 @@ int proc_dou8vec_minmax(struct ctl_table *table, int write, EXPORT_SYMBOL_GPL(proc_dou8vec_minmax); #ifdef CONFIG_MAGIC_SYSRQ -static int sysrq_sysctl_handler(struct ctl_table *table, int write, +static int sysrq_sysctl_handler(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { int tmp, ret; @@ -1121,7 +1121,7 @@ static int do_proc_doulongvec_minmax(const struct ctl_table *table, int write, * * Returns 0 on success. */ -int proc_doulongvec_minmax(struct ctl_table *table, int write, +int proc_doulongvec_minmax(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { return do_proc_doulongvec_minmax(table, write, buffer, lenp, ppos, 1l, 1l); @@ -1144,7 +1144,7 @@ int proc_doulongvec_minmax(struct ctl_table *table, int write, * * Returns 0 on success. */ -int proc_doulongvec_ms_jiffies_minmax(struct ctl_table *table, int write, +int proc_doulongvec_ms_jiffies_minmax(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { return do_proc_doulongvec_minmax(table, write, buffer, @@ -1265,14 +1265,14 @@ static int do_proc_dointvec_ms_jiffies_minmax_conv(bool *negp, unsigned long *lv * * Returns 0 on success. */ -int proc_dointvec_jiffies(struct ctl_table *table, int write, +int proc_dointvec_jiffies(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { return do_proc_dointvec(table,write,buffer,lenp,ppos, do_proc_dointvec_jiffies_conv,NULL); } -int proc_dointvec_ms_jiffies_minmax(struct ctl_table *table, int write, +int proc_dointvec_ms_jiffies_minmax(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct do_proc_dointvec_minmax_conv_param param = { @@ -1298,7 +1298,7 @@ int proc_dointvec_ms_jiffies_minmax(struct ctl_table *table, int write, * * Returns 0 on success. */ -int proc_dointvec_userhz_jiffies(struct ctl_table *table, int write, +int proc_dointvec_userhz_jiffies(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { return do_proc_dointvec(table, write, buffer, lenp, ppos, @@ -1321,15 +1321,15 @@ int proc_dointvec_userhz_jiffies(struct ctl_table *table, int write, * * Returns 0 on success. */ -int proc_dointvec_ms_jiffies(struct ctl_table *table, int write, void *buffer, - size_t *lenp, loff_t *ppos) +int proc_dointvec_ms_jiffies(const struct ctl_table *table, int write, + void *buffer, size_t *lenp, loff_t *ppos) { return do_proc_dointvec(table, write, buffer, lenp, ppos, do_proc_dointvec_ms_jiffies_conv, NULL); } -static int proc_do_cad_pid(struct ctl_table *table, int write, void *buffer, - size_t *lenp, loff_t *ppos) +static int proc_do_cad_pid(const struct ctl_table *table, int write, + void *buffer, size_t *lenp, loff_t *ppos) { struct pid *new_pid; pid_t tmp; @@ -1367,7 +1367,7 @@ static int proc_do_cad_pid(struct ctl_table *table, int write, void *buffer, * * Returns 0 on success. */ -int proc_do_large_bitmap(struct ctl_table *table, int write, +int proc_do_large_bitmap(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { int err = 0; @@ -1499,85 +1499,85 @@ int proc_do_large_bitmap(struct ctl_table *table, int write, #else /* CONFIG_PROC_SYSCTL */ -int proc_dostring(struct ctl_table *table, int write, +int proc_dostring(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { return -ENOSYS; } -int proc_dobool(struct ctl_table *table, int write, +int proc_dobool(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { return -ENOSYS; } -int proc_dointvec(struct ctl_table *table, int write, +int proc_dointvec(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { return -ENOSYS; } -int proc_douintvec(struct ctl_table *table, int write, +int proc_douintvec(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { return -ENOSYS; } -int proc_dointvec_minmax(struct ctl_table *table, int write, +int proc_dointvec_minmax(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { return -ENOSYS; } -int proc_douintvec_minmax(struct ctl_table *table, int write, +int proc_douintvec_minmax(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { return -ENOSYS; } -int proc_dou8vec_minmax(struct ctl_table *table, int write, +int proc_dou8vec_minmax(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { return -ENOSYS; } -int proc_dointvec_jiffies(struct ctl_table *table, int write, +int proc_dointvec_jiffies(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { return -ENOSYS; } -int proc_dointvec_ms_jiffies_minmax(struct ctl_table *table, int write, +int proc_dointvec_ms_jiffies_minmax(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { return -ENOSYS; } -int proc_dointvec_userhz_jiffies(struct ctl_table *table, int write, +int proc_dointvec_userhz_jiffies(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { return -ENOSYS; } -int proc_dointvec_ms_jiffies(struct ctl_table *table, int write, +int proc_dointvec_ms_jiffies(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { return -ENOSYS; } -int proc_doulongvec_minmax(struct ctl_table *table, int write, +int proc_doulongvec_minmax(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { return -ENOSYS; } -int proc_doulongvec_ms_jiffies_minmax(struct ctl_table *table, int write, +int proc_doulongvec_ms_jiffies_minmax(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { return -ENOSYS; } -int proc_do_large_bitmap(struct ctl_table *table, int write, +int proc_do_large_bitmap(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { return -ENOSYS; @@ -1586,7 +1586,7 @@ int proc_do_large_bitmap(struct ctl_table *table, int write, #endif /* CONFIG_PROC_SYSCTL */ #if defined(CONFIG_SYSCTL) -int proc_do_static_key(struct ctl_table *table, int write, +int proc_do_static_key(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct static_key *key = (struct static_key *)table->data; diff --git a/kernel/time/timer.c b/kernel/time/timer.c index 48288dd4a102..64b0d8a0aa0f 100644 --- a/kernel/time/timer.c +++ b/kernel/time/timer.c @@ -289,7 +289,7 @@ static void timers_update_migration(void) } #ifdef CONFIG_SYSCTL -static int timer_migration_handler(struct ctl_table *table, int write, +static int timer_migration_handler(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { int ret; diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c index f783d7b279f6..db1ebe70866a 100644 --- a/kernel/trace/ftrace.c +++ b/kernel/trace/ftrace.c @@ -8223,7 +8223,7 @@ static bool is_permanent_ops_registered(void) } static int -ftrace_enable_sysctl(struct ctl_table *table, int write, +ftrace_enable_sysctl(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { int ret = -ENODEV; diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index 233d1af39fff..2e6a0b1142d3 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c @@ -2761,7 +2761,7 @@ static void output_printk(struct trace_event_buffer *fbuffer) raw_spin_unlock_irqrestore(&tracepoint_iter_lock, flags); } -int tracepoint_printk_sysctl(struct ctl_table *table, int write, +int tracepoint_printk_sysctl(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { diff --git a/kernel/trace/trace_events_user.c b/kernel/trace/trace_events_user.c index 304ceed9fd7d..a2f048c8382f 100644 --- a/kernel/trace/trace_events_user.c +++ b/kernel/trace/trace_events_user.c @@ -2811,7 +2811,7 @@ static int create_user_tracefs(void) return -ENODEV; } -static int set_max_user_events_sysctl(struct ctl_table *table, int write, +static int set_max_user_events_sysctl(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { int ret; diff --git a/kernel/trace/trace_stack.c b/kernel/trace/trace_stack.c index 5a48dba912ea..7f9572a37333 100644 --- a/kernel/trace/trace_stack.c +++ b/kernel/trace/trace_stack.c @@ -514,7 +514,7 @@ static const struct file_operations stack_trace_filter_fops = { #endif /* CONFIG_DYNAMIC_FTRACE */ int -stack_trace_sysctl(struct ctl_table *table, int write, void *buffer, +stack_trace_sysctl(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { int was_enabled; diff --git a/kernel/umh.c b/kernel/umh.c index 598b3ffe1522..ff1f13a27d29 100644 --- a/kernel/umh.c +++ b/kernel/umh.c @@ -495,7 +495,7 @@ int call_usermodehelper(const char *path, char **argv, char **envp, int wait) EXPORT_SYMBOL(call_usermodehelper); #if defined(CONFIG_SYSCTL) -static int proc_cap_handler(struct ctl_table *table, int write, +static int proc_cap_handler(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct ctl_table t; diff --git a/kernel/utsname_sysctl.c b/kernel/utsname_sysctl.c index 04e4513f2985..7282f61a8650 100644 --- a/kernel/utsname_sysctl.c +++ b/kernel/utsname_sysctl.c @@ -30,7 +30,7 @@ static void *get_uts(const struct ctl_table *table) * Special case of dostring for the UTS structure. This has locks * to observe. Should this be in kernel/sys.c ???? */ -static int proc_do_uts_string(struct ctl_table *table, int write, +static int proc_do_uts_string(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct ctl_table uts_table; diff --git a/kernel/watchdog.c b/kernel/watchdog.c index 941236828de8..6cbdd1143f06 100644 --- a/kernel/watchdog.c +++ b/kernel/watchdog.c @@ -974,7 +974,7 @@ static void proc_watchdog_update(void) * -------------------|----------------------------------|------------------------------- * proc_soft_watchdog | watchdog_softlockup_user_enabled | WATCHDOG_SOFTOCKUP_ENABLED */ -static int proc_watchdog_common(int which, struct ctl_table *table, int write, +static int proc_watchdog_common(int which, const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { int err, old, *param = table->data; @@ -1001,7 +1001,7 @@ static int proc_watchdog_common(int which, struct ctl_table *table, int write, /* * /proc/sys/kernel/watchdog */ -static int proc_watchdog(struct ctl_table *table, int write, +static int proc_watchdog(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { return proc_watchdog_common(WATCHDOG_HARDLOCKUP_ENABLED | @@ -1012,7 +1012,7 @@ static int proc_watchdog(struct ctl_table *table, int write, /* * /proc/sys/kernel/nmi_watchdog */ -static int proc_nmi_watchdog(struct ctl_table *table, int write, +static int proc_nmi_watchdog(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { if (!watchdog_hardlockup_available && write) @@ -1025,7 +1025,7 @@ static int proc_nmi_watchdog(struct ctl_table *table, int write, /* * /proc/sys/kernel/soft_watchdog */ -static int proc_soft_watchdog(struct ctl_table *table, int write, +static int proc_soft_watchdog(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { return proc_watchdog_common(WATCHDOG_SOFTOCKUP_ENABLED, @@ -1036,7 +1036,7 @@ static int proc_soft_watchdog(struct ctl_table *table, int write, /* * /proc/sys/kernel/watchdog_thresh */ -static int proc_watchdog_thresh(struct ctl_table *table, int write, +static int proc_watchdog_thresh(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { int err, old; @@ -1059,7 +1059,7 @@ static int proc_watchdog_thresh(struct ctl_table *table, int write, * user to specify a mask that will include cpus that have not yet * been brought online, if desired. */ -static int proc_watchdog_cpumask(struct ctl_table *table, int write, +static int proc_watchdog_cpumask(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { int err; diff --git a/mm/compaction.c b/mm/compaction.c index e731d45befc7..ea5957c2da39 100644 --- a/mm/compaction.c +++ b/mm/compaction.c @@ -2955,7 +2955,7 @@ static int compact_nodes(void) return 0; } -static int compaction_proactiveness_sysctl_handler(struct ctl_table *table, int write, +static int compaction_proactiveness_sysctl_handler(const struct ctl_table *table, int write, void *buffer, size_t *length, loff_t *ppos) { int rc, nid; @@ -2985,7 +2985,7 @@ static int compaction_proactiveness_sysctl_handler(struct ctl_table *table, int * This is the entry point for compacting all nodes via * /proc/sys/vm/compact_memory */ -static int sysctl_compaction_handler(struct ctl_table *table, int write, +static int sysctl_compaction_handler(const struct ctl_table *table, int write, void *buffer, size_t *length, loff_t *ppos) { int ret; @@ -3296,7 +3296,7 @@ static int kcompactd_cpu_online(unsigned int cpu) return 0; } -static int proc_dointvec_minmax_warn_RT_change(struct ctl_table *table, +static int proc_dointvec_minmax_warn_RT_change(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { int ret, old; diff --git a/mm/hugetlb.c b/mm/hugetlb.c index 8d12ce63a439..9b0834634e8b 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c @@ -4950,7 +4950,7 @@ static int hugetlb_sysctl_handler_common(bool obey_mempolicy, return ret; } -static int hugetlb_sysctl_handler(struct ctl_table *table, int write, +static int hugetlb_sysctl_handler(const struct ctl_table *table, int write, void *buffer, size_t *length, loff_t *ppos) { @@ -4959,15 +4959,15 @@ static int hugetlb_sysctl_handler(struct ctl_table *table, int write, } #ifdef CONFIG_NUMA -static int hugetlb_mempolicy_sysctl_handler(struct ctl_table *table, int write, - void *buffer, size_t *length, loff_t *ppos) +static int hugetlb_mempolicy_sysctl_handler(const struct ctl_table *table, + int write, void *buffer, size_t *length, loff_t *ppos) { return hugetlb_sysctl_handler_common(true, table, write, buffer, length, ppos); } #endif /* CONFIG_NUMA */ -static int hugetlb_overcommit_handler(struct ctl_table *table, int write, +static int hugetlb_overcommit_handler(const struct ctl_table *table, int write, void *buffer, size_t *length, loff_t *ppos) { struct hstate *h = &default_hstate; diff --git a/mm/page-writeback.c b/mm/page-writeback.c index db5769cb12fd..b86aece672bf 100644 --- a/mm/page-writeback.c +++ b/mm/page-writeback.c @@ -493,8 +493,8 @@ bool node_dirty_ok(struct pglist_data *pgdat) } #ifdef CONFIG_SYSCTL -static int dirty_background_ratio_handler(struct ctl_table *table, int write, - void *buffer, size_t *lenp, loff_t *ppos) +static int dirty_background_ratio_handler(const struct ctl_table *table, + int write, void *buffer, size_t *lenp, loff_t *ppos) { int ret; @@ -504,8 +504,8 @@ static int dirty_background_ratio_handler(struct ctl_table *table, int write, return ret; } -static int dirty_background_bytes_handler(struct ctl_table *table, int write, - void *buffer, size_t *lenp, loff_t *ppos) +static int dirty_background_bytes_handler(const struct ctl_table *table, + int write, void *buffer, size_t *lenp, loff_t *ppos) { int ret; @@ -515,8 +515,8 @@ static int dirty_background_bytes_handler(struct ctl_table *table, int write, return ret; } -static int dirty_ratio_handler(struct ctl_table *table, int write, void *buffer, - size_t *lenp, loff_t *ppos) +static int dirty_ratio_handler(const struct ctl_table *table, int write, + void *buffer, size_t *lenp, loff_t *ppos) { int old_ratio = vm_dirty_ratio; int ret; @@ -529,7 +529,7 @@ static int dirty_ratio_handler(struct ctl_table *table, int write, void *buffer, return ret; } -static int dirty_bytes_handler(struct ctl_table *table, int write, +static int dirty_bytes_handler(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { unsigned long old_bytes = vm_dirty_bytes; @@ -2151,8 +2151,8 @@ bool wb_over_bg_thresh(struct bdi_writeback *wb) /* * sysctl handler for /proc/sys/vm/dirty_writeback_centisecs */ -static int dirty_writeback_centisecs_handler(struct ctl_table *table, int write, - void *buffer, size_t *length, loff_t *ppos) +static int dirty_writeback_centisecs_handler(const struct ctl_table *table, + int write, void *buffer, size_t *length, loff_t *ppos) { unsigned int old_interval = dirty_writeback_interval; int ret; diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 33d4a1be927b..9810ea000e71 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -5135,7 +5135,7 @@ static char numa_zonelist_order[] = "Node"; /* * sysctl handler for numa_zonelist_order */ -static int numa_zonelist_order_handler(struct ctl_table *table, int write, +static int numa_zonelist_order_handler(const struct ctl_table *table, int write, void *buffer, size_t *length, loff_t *ppos) { if (write) @@ -6102,7 +6102,7 @@ postcore_initcall(init_per_zone_wmark_min) * that we can call two helper functions whenever min_free_kbytes * changes. */ -static int min_free_kbytes_sysctl_handler(struct ctl_table *table, int write, +static int min_free_kbytes_sysctl_handler(const struct ctl_table *table, int write, void *buffer, size_t *length, loff_t *ppos) { int rc; @@ -6118,7 +6118,7 @@ static int min_free_kbytes_sysctl_handler(struct ctl_table *table, int write, return 0; } -static int watermark_scale_factor_sysctl_handler(struct ctl_table *table, int write, +static int watermark_scale_factor_sysctl_handler(const struct ctl_table *table, int write, void *buffer, size_t *length, loff_t *ppos) { int rc; @@ -6148,7 +6148,7 @@ static void setup_min_unmapped_ratio(void) } -static int sysctl_min_unmapped_ratio_sysctl_handler(struct ctl_table *table, int write, +static int sysctl_min_unmapped_ratio_sysctl_handler(const struct ctl_table *table, int write, void *buffer, size_t *length, loff_t *ppos) { int rc; @@ -6175,7 +6175,7 @@ static void setup_min_slab_ratio(void) sysctl_min_slab_ratio) / 100; } -static int sysctl_min_slab_ratio_sysctl_handler(struct ctl_table *table, int write, +static int sysctl_min_slab_ratio_sysctl_handler(const struct ctl_table *table, int write, void *buffer, size_t *length, loff_t *ppos) { int rc; @@ -6199,7 +6199,7 @@ static int sysctl_min_slab_ratio_sysctl_handler(struct ctl_table *table, int wri * minimum watermarks. The lowmem reserve ratio can only make sense * if in function of the boot time zone sizes. */ -static int lowmem_reserve_ratio_sysctl_handler(struct ctl_table *table, +static int lowmem_reserve_ratio_sysctl_handler(const struct ctl_table *table, int write, void *buffer, size_t *length, loff_t *ppos) { int i; @@ -6220,7 +6220,7 @@ static int lowmem_reserve_ratio_sysctl_handler(struct ctl_table *table, * cpu. It is the fraction of total pages in each zone that a hot per cpu * pagelist can have before it gets flushed back to buddy allocator. */ -static int percpu_pagelist_high_fraction_sysctl_handler(struct ctl_table *table, +static int percpu_pagelist_high_fraction_sysctl_handler(const struct ctl_table *table, int write, void *buffer, size_t *length, loff_t *ppos) { struct zone *zone; diff --git a/mm/util.c b/mm/util.c index c9e519e6811f..958b9013d2f3 100644 --- a/mm/util.c +++ b/mm/util.c @@ -835,8 +835,8 @@ int sysctl_max_map_count __read_mostly = DEFAULT_MAX_MAP_COUNT; unsigned long sysctl_user_reserve_kbytes __read_mostly = 1UL << 17; /* 128MB */ unsigned long sysctl_admin_reserve_kbytes __read_mostly = 1UL << 13; /* 8MB */ -int overcommit_ratio_handler(struct ctl_table *table, int write, void *buffer, - size_t *lenp, loff_t *ppos) +int overcommit_ratio_handler(const struct ctl_table *table, int write, + void *buffer, size_t *lenp, loff_t *ppos) { int ret; @@ -851,8 +851,8 @@ static void sync_overcommit_as(struct work_struct *dummy) percpu_counter_sync(&vm_committed_as); } -int overcommit_policy_handler(struct ctl_table *table, int write, void *buffer, - size_t *lenp, loff_t *ppos) +int overcommit_policy_handler(const struct ctl_table *table, int write, + void *buffer, size_t *lenp, loff_t *ppos) { struct ctl_table t; int new_policy = -1; @@ -887,8 +887,8 @@ int overcommit_policy_handler(struct ctl_table *table, int write, void *buffer, return ret; } -int overcommit_kbytes_handler(struct ctl_table *table, int write, void *buffer, - size_t *lenp, loff_t *ppos) +int overcommit_kbytes_handler(const struct ctl_table *table, int write, + void *buffer, size_t *lenp, loff_t *ppos) { int ret; diff --git a/mm/vmstat.c b/mm/vmstat.c index 8507c497218b..33a032d69554 100644 --- a/mm/vmstat.c +++ b/mm/vmstat.c @@ -74,7 +74,7 @@ static void invalid_numa_statistics(void) static DEFINE_MUTEX(vm_numa_stat_lock); -int sysctl_vm_numa_stat_handler(struct ctl_table *table, int write, +int sysctl_vm_numa_stat_handler(const struct ctl_table *table, int write, void *buffer, size_t *length, loff_t *ppos) { int ret, oldval; @@ -1887,7 +1887,7 @@ static void refresh_vm_stats(struct work_struct *work) refresh_cpu_vm_stats(true); } -int vmstat_refresh(struct ctl_table *table, int write, +int vmstat_refresh(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { long val; diff --git a/net/bridge/br_netfilter_hooks.c b/net/bridge/br_netfilter_hooks.c index 7948a9e7542c..0c95eb0ae8f0 100644 --- a/net/bridge/br_netfilter_hooks.c +++ b/net/bridge/br_netfilter_hooks.c @@ -1177,7 +1177,7 @@ int br_nf_hook_thresh(unsigned int hook, struct net *net, #ifdef CONFIG_SYSCTL static -int brnf_sysctl_call_tables(struct ctl_table *ctl, int write, +int brnf_sysctl_call_tables(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { int ret; diff --git a/net/core/neighbour.c b/net/core/neighbour.c index 92a01664a723..9a089e3bcd34 100644 --- a/net/core/neighbour.c +++ b/net/core/neighbour.c @@ -3543,7 +3543,7 @@ EXPORT_SYMBOL(neigh_app_ns); #ifdef CONFIG_SYSCTL static int unres_qlen_max = INT_MAX / SKB_TRUESIZE(ETH_FRAME_LEN); -static int proc_unres_qlen(struct ctl_table *ctl, int write, +static int proc_unres_qlen(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { int size, ret; @@ -3595,7 +3595,7 @@ static void neigh_proc_update(const struct ctl_table *ctl, int write) neigh_copy_dflt_parms(net, p, index); } -static int neigh_proc_dointvec_zero_intmax(struct ctl_table *ctl, int write, +static int neigh_proc_dointvec_zero_intmax(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { @@ -3610,7 +3610,7 @@ static int neigh_proc_dointvec_zero_intmax(struct ctl_table *ctl, int write, return ret; } -static int neigh_proc_dointvec_ms_jiffies_positive(struct ctl_table *ctl, int write, +static int neigh_proc_dointvec_ms_jiffies_positive(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct ctl_table tmp = *ctl; @@ -3626,7 +3626,7 @@ static int neigh_proc_dointvec_ms_jiffies_positive(struct ctl_table *ctl, int wr return ret; } -int neigh_proc_dointvec(struct ctl_table *ctl, int write, void *buffer, +int neigh_proc_dointvec(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { int ret = proc_dointvec(ctl, write, buffer, lenp, ppos); @@ -3636,7 +3636,7 @@ int neigh_proc_dointvec(struct ctl_table *ctl, int write, void *buffer, } EXPORT_SYMBOL(neigh_proc_dointvec); -int neigh_proc_dointvec_jiffies(struct ctl_table *ctl, int write, void *buffer, +int neigh_proc_dointvec_jiffies(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { int ret = proc_dointvec_jiffies(ctl, write, buffer, lenp, ppos); @@ -3646,7 +3646,7 @@ int neigh_proc_dointvec_jiffies(struct ctl_table *ctl, int write, void *buffer, } EXPORT_SYMBOL(neigh_proc_dointvec_jiffies); -static int neigh_proc_dointvec_userhz_jiffies(struct ctl_table *ctl, int write, +static int neigh_proc_dointvec_userhz_jiffies(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { @@ -3656,7 +3656,7 @@ static int neigh_proc_dointvec_userhz_jiffies(struct ctl_table *ctl, int write, return ret; } -int neigh_proc_dointvec_ms_jiffies(struct ctl_table *ctl, int write, +int neigh_proc_dointvec_ms_jiffies(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { int ret = proc_dointvec_ms_jiffies(ctl, write, buffer, lenp, ppos); @@ -3666,7 +3666,7 @@ int neigh_proc_dointvec_ms_jiffies(struct ctl_table *ctl, int write, } EXPORT_SYMBOL(neigh_proc_dointvec_ms_jiffies); -static int neigh_proc_dointvec_unres_qlen(struct ctl_table *ctl, int write, +static int neigh_proc_dointvec_unres_qlen(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { @@ -3676,7 +3676,7 @@ static int neigh_proc_dointvec_unres_qlen(struct ctl_table *ctl, int write, return ret; } -static int neigh_proc_base_reachable_time(struct ctl_table *ctl, int write, +static int neigh_proc_base_reachable_time(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { diff --git a/net/core/sysctl_net_core.c b/net/core/sysctl_net_core.c index 903ab4a51c17..ba9842d773e3 100644 --- a/net/core/sysctl_net_core.c +++ b/net/core/sysctl_net_core.c @@ -94,7 +94,7 @@ static struct cpumask *rps_default_mask_cow_alloc(struct net *net) return rps_default_mask; } -static int rps_default_mask_sysctl(struct ctl_table *table, int write, +static int rps_default_mask_sysctl(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct net *net = (struct net *)table->data; @@ -125,7 +125,7 @@ static int rps_default_mask_sysctl(struct ctl_table *table, int write, return err; } -static int rps_sock_flow_sysctl(struct ctl_table *table, int write, +static int rps_sock_flow_sysctl(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { unsigned int orig_size, size; @@ -197,7 +197,7 @@ static int rps_sock_flow_sysctl(struct ctl_table *table, int write, #ifdef CONFIG_NET_FLOW_LIMIT static DEFINE_MUTEX(flow_limit_update_mutex); -static int flow_limit_cpu_sysctl(struct ctl_table *table, int write, +static int flow_limit_cpu_sysctl(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct sd_flow_limit *cur; @@ -254,7 +254,7 @@ static int flow_limit_cpu_sysctl(struct ctl_table *table, int write, return ret; } -static int flow_limit_table_len_sysctl(struct ctl_table *table, int write, +static int flow_limit_table_len_sysctl(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { unsigned int old, *ptr; @@ -276,7 +276,7 @@ static int flow_limit_table_len_sysctl(struct ctl_table *table, int write, #endif /* CONFIG_NET_FLOW_LIMIT */ #ifdef CONFIG_NET_SCHED -static int set_default_qdisc(struct ctl_table *table, int write, +static int set_default_qdisc(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { char id[IFNAMSIZ]; @@ -295,7 +295,7 @@ static int set_default_qdisc(struct ctl_table *table, int write, } #endif -static int proc_do_dev_weight(struct ctl_table *table, int write, +static int proc_do_dev_weight(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { static DEFINE_MUTEX(dev_weight_mutex); @@ -313,7 +313,7 @@ static int proc_do_dev_weight(struct ctl_table *table, int write, return ret; } -static int proc_do_rss_key(struct ctl_table *table, int write, +static int proc_do_rss_key(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct ctl_table fake_table; @@ -326,7 +326,7 @@ static int proc_do_rss_key(struct ctl_table *table, int write, } #ifdef CONFIG_BPF_JIT -static int proc_dointvec_minmax_bpf_enable(struct ctl_table *table, int write, +static int proc_dointvec_minmax_bpf_enable(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { @@ -359,7 +359,7 @@ static int proc_dointvec_minmax_bpf_enable(struct ctl_table *table, int write, # ifdef CONFIG_HAVE_EBPF_JIT static int -proc_dointvec_minmax_bpf_restricted(struct ctl_table *table, int write, +proc_dointvec_minmax_bpf_restricted(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { if (!capable(CAP_SYS_ADMIN)) @@ -370,7 +370,7 @@ proc_dointvec_minmax_bpf_restricted(struct ctl_table *table, int write, # endif /* CONFIG_HAVE_EBPF_JIT */ static int -proc_dolongvec_minmax_bpf_restricted(struct ctl_table *table, int write, +proc_dolongvec_minmax_bpf_restricted(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { if (!capable(CAP_SYS_ADMIN)) diff --git a/net/ipv4/devinet.c b/net/ipv4/devinet.c index 7592f242336b..2e6912c1fb21 100644 --- a/net/ipv4/devinet.c +++ b/net/ipv4/devinet.c @@ -2377,7 +2377,7 @@ static int devinet_conf_ifindex(struct net *net, struct ipv4_devconf *cnf) } } -static int devinet_conf_proc(struct ctl_table *ctl, int write, +static int devinet_conf_proc(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { int old_value = *(int *)ctl->data; @@ -2429,7 +2429,7 @@ static int devinet_conf_proc(struct ctl_table *ctl, int write, return ret; } -static int devinet_sysctl_forward(struct ctl_table *ctl, int write, +static int devinet_sysctl_forward(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { int *valp = ctl->data; @@ -2476,7 +2476,7 @@ static int devinet_sysctl_forward(struct ctl_table *ctl, int write, return ret; } -static int ipv4_doint_and_flush(struct ctl_table *ctl, int write, +static int ipv4_doint_and_flush(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { int *valp = ctl->data; diff --git a/net/ipv4/route.c b/net/ipv4/route.c index 2e29ab819967..d2e88f3e6fe8 100644 --- a/net/ipv4/route.c +++ b/net/ipv4/route.c @@ -3394,7 +3394,7 @@ static int ip_rt_gc_min_interval __read_mostly = HZ / 2; static int ip_rt_gc_elasticity __read_mostly = 8; static int ip_min_valid_pmtu __read_mostly = IPV4_MIN_MTU; -static int ipv4_sysctl_rtcache_flush(struct ctl_table *__ctl, int write, +static int ipv4_sysctl_rtcache_flush(const struct ctl_table *__ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct net *net = (struct net *)__ctl->extra1; diff --git a/net/ipv4/sysctl_net_ipv4.c b/net/ipv4/sysctl_net_ipv4.c index fc4c001bf72a..4c3a03b7a0f8 100644 --- a/net/ipv4/sysctl_net_ipv4.c +++ b/net/ipv4/sysctl_net_ipv4.c @@ -62,7 +62,7 @@ static void set_local_port_range(struct net *net, unsigned int low, unsigned int } /* Validate changes from /proc interface. */ -static int ipv4_local_port_range(struct ctl_table *table, int write, +static int ipv4_local_port_range(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct net *net = table->data; @@ -96,7 +96,7 @@ static int ipv4_local_port_range(struct ctl_table *table, int write, } /* Validate changes from /proc interface. */ -static int ipv4_privileged_ports(struct ctl_table *table, int write, +static int ipv4_privileged_ports(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct net *net = container_of(table->data, struct net, @@ -159,7 +159,7 @@ static void set_ping_group_range(const struct ctl_table *table, } /* Validate changes from /proc interface. */ -static int ipv4_ping_group_range(struct ctl_table *table, int write, +static int ipv4_ping_group_range(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct user_namespace *user_ns = current_user_ns(); @@ -194,7 +194,7 @@ static int ipv4_ping_group_range(struct ctl_table *table, int write, return ret; } -static int ipv4_fwd_update_priority(struct ctl_table *table, int write, +static int ipv4_fwd_update_priority(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct net *net; @@ -210,7 +210,7 @@ static int ipv4_fwd_update_priority(struct ctl_table *table, int write, return ret; } -static int proc_tcp_congestion_control(struct ctl_table *ctl, int write, +static int proc_tcp_congestion_control(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct net *net = container_of(ctl->data, struct net, @@ -230,7 +230,7 @@ static int proc_tcp_congestion_control(struct ctl_table *ctl, int write, return ret; } -static int proc_tcp_available_congestion_control(struct ctl_table *ctl, +static int proc_tcp_available_congestion_control(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { @@ -246,7 +246,7 @@ static int proc_tcp_available_congestion_control(struct ctl_table *ctl, return ret; } -static int proc_allowed_congestion_control(struct ctl_table *ctl, +static int proc_allowed_congestion_control(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { @@ -283,7 +283,7 @@ static int sscanf_key(char *buf, __le32 *key) return ret; } -static int proc_tcp_fastopen_key(struct ctl_table *table, int write, +static int proc_tcp_fastopen_key(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct net *net = container_of(table->data, struct net, @@ -354,7 +354,7 @@ static int proc_tcp_fastopen_key(struct ctl_table *table, int write, return ret; } -static int proc_tfo_blackhole_detect_timeout(struct ctl_table *table, +static int proc_tfo_blackhole_detect_timeout(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { @@ -369,7 +369,7 @@ static int proc_tfo_blackhole_detect_timeout(struct ctl_table *table, return ret; } -static int proc_tcp_available_ulp(struct ctl_table *ctl, +static int proc_tcp_available_ulp(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { @@ -386,7 +386,7 @@ static int proc_tcp_available_ulp(struct ctl_table *ctl, return ret; } -static int proc_tcp_ehash_entries(struct ctl_table *table, int write, +static int proc_tcp_ehash_entries(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct net *net = container_of(table->data, struct net, @@ -410,7 +410,7 @@ static int proc_tcp_ehash_entries(struct ctl_table *table, int write, return proc_dointvec(&tbl, write, buffer, lenp, ppos); } -static int proc_udp_hash_entries(struct ctl_table *table, int write, +static int proc_udp_hash_entries(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct net *net = container_of(table->data, struct net, @@ -434,8 +434,8 @@ static int proc_udp_hash_entries(struct ctl_table *table, int write, } #ifdef CONFIG_IP_ROUTE_MULTIPATH -static int proc_fib_multipath_hash_policy(struct ctl_table *table, int write, - void *buffer, size_t *lenp, +static int proc_fib_multipath_hash_policy(const struct ctl_table *table, + int write, void *buffer, size_t *lenp, loff_t *ppos) { struct net *net = container_of(table->data, struct net, @@ -449,8 +449,8 @@ static int proc_fib_multipath_hash_policy(struct ctl_table *table, int write, return ret; } -static int proc_fib_multipath_hash_fields(struct ctl_table *table, int write, - void *buffer, size_t *lenp, +static int proc_fib_multipath_hash_fields(const struct ctl_table *table, + int write, void *buffer, size_t *lenp, loff_t *ppos) { struct net *net; diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c index 96ab349e8ba4..5190acc3c4f8 100644 --- a/net/ipv6/addrconf.c +++ b/net/ipv6/addrconf.c @@ -6308,7 +6308,7 @@ static void ipv6_ifa_notify(int event, struct inet6_ifaddr *ifp) #ifdef CONFIG_SYSCTL -static int addrconf_sysctl_forward(struct ctl_table *ctl, int write, +static int addrconf_sysctl_forward(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { int *valp = ctl->data; @@ -6333,7 +6333,7 @@ static int addrconf_sysctl_forward(struct ctl_table *ctl, int write, return ret; } -static int addrconf_sysctl_mtu(struct ctl_table *ctl, int write, +static int addrconf_sysctl_mtu(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct inet6_dev *idev = ctl->extra1; @@ -6404,7 +6404,7 @@ static int addrconf_disable_ipv6(const struct ctl_table *table, int *p, int newf return 0; } -static int addrconf_sysctl_disable(struct ctl_table *ctl, int write, +static int addrconf_sysctl_disable(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { int *valp = ctl->data; @@ -6429,7 +6429,7 @@ static int addrconf_sysctl_disable(struct ctl_table *ctl, int write, return ret; } -static int addrconf_sysctl_proxy_ndp(struct ctl_table *ctl, int write, +static int addrconf_sysctl_proxy_ndp(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { int *valp = ctl->data; @@ -6470,7 +6470,7 @@ static int addrconf_sysctl_proxy_ndp(struct ctl_table *ctl, int write, return ret; } -static int addrconf_sysctl_addr_gen_mode(struct ctl_table *ctl, int write, +static int addrconf_sysctl_addr_gen_mode(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { @@ -6533,7 +6533,7 @@ static int addrconf_sysctl_addr_gen_mode(struct ctl_table *ctl, int write, return ret; } -static int addrconf_sysctl_stable_secret(struct ctl_table *ctl, int write, +static int addrconf_sysctl_stable_secret(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { @@ -6601,7 +6601,7 @@ static int addrconf_sysctl_stable_secret(struct ctl_table *ctl, int write, } static -int addrconf_sysctl_ignore_routes_with_linkdown(struct ctl_table *ctl, +int addrconf_sysctl_ignore_routes_with_linkdown(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) @@ -6701,8 +6701,9 @@ int addrconf_disable_policy(const struct ctl_table *ctl, int *valp, int val) return 0; } -static int addrconf_sysctl_disable_policy(struct ctl_table *ctl, int write, - void *buffer, size_t *lenp, loff_t *ppos) +static int addrconf_sysctl_disable_policy(const struct ctl_table *ctl, + int write, void *buffer, + size_t *lenp, loff_t *ppos) { int *valp = ctl->data; int val = *valp; diff --git a/net/ipv6/ndisc.c b/net/ipv6/ndisc.c index 945d5f5ca039..abcd93bee5d7 100644 --- a/net/ipv6/ndisc.c +++ b/net/ipv6/ndisc.c @@ -1951,7 +1951,7 @@ static void ndisc_warn_deprecated_sysctl(const struct ctl_table *ctl, } } -int ndisc_ifinfo_sysctl_change(struct ctl_table *ctl, int write, void *buffer, +int ndisc_ifinfo_sysctl_change(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct net_device *dev = ctl->extra1; diff --git a/net/ipv6/route.c b/net/ipv6/route.c index 1f4b935a0e57..c8340013bf72 100644 --- a/net/ipv6/route.c +++ b/net/ipv6/route.c @@ -6329,7 +6329,7 @@ static int rt6_stats_seq_show(struct seq_file *seq, void *v) #ifdef CONFIG_SYSCTL -static int ipv6_sysctl_rtcache_flush(struct ctl_table *ctl, int write, +static int ipv6_sysctl_rtcache_flush(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct net *net; diff --git a/net/ipv6/sysctl_net_ipv6.c b/net/ipv6/sysctl_net_ipv6.c index 75de55f907b0..e5a4cbc3e8c3 100644 --- a/net/ipv6/sysctl_net_ipv6.c +++ b/net/ipv6/sysctl_net_ipv6.c @@ -30,7 +30,7 @@ static u32 rt6_multipath_hash_fields_all_mask = static u32 ioam6_id_max = IOAM6_DEFAULT_ID; static u64 ioam6_id_wide_max = IOAM6_DEFAULT_ID_WIDE; -static int proc_rt6_multipath_hash_policy(struct ctl_table *table, int write, +static int proc_rt6_multipath_hash_policy(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct net *net; @@ -46,7 +46,7 @@ static int proc_rt6_multipath_hash_policy(struct ctl_table *table, int write, } static int -proc_rt6_multipath_hash_fields(struct ctl_table *table, int write, void *buffer, +proc_rt6_multipath_hash_fields(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct net *net; diff --git a/net/mpls/af_mpls.c b/net/mpls/af_mpls.c index 5d2012d1cf4a..9ed2db996ec1 100644 --- a/net/mpls/af_mpls.c +++ b/net/mpls/af_mpls.c @@ -1347,7 +1347,7 @@ static int mpls_netconf_dump_devconf(struct sk_buff *skb, #define MPLS_PERDEV_SYSCTL_OFFSET(field) \ (&((struct mpls_dev *)0)->field) -static int mpls_conf_proc(struct ctl_table *ctl, int write, +static int mpls_conf_proc(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { int oval = *(int *)ctl->data; @@ -2601,7 +2601,7 @@ static int resize_platform_label_table(struct net *net, size_t limit) return -ENOMEM; } -static int mpls_platform_labels(struct ctl_table *table, int write, +static int mpls_platform_labels(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct net *net = table->data; diff --git a/net/netfilter/ipvs/ip_vs_ctl.c b/net/netfilter/ipvs/ip_vs_ctl.c index 689ac521ea2d..e34879f7a2f4 100644 --- a/net/netfilter/ipvs/ip_vs_ctl.c +++ b/net/netfilter/ipvs/ip_vs_ctl.c @@ -1846,7 +1846,7 @@ static int ip_vs_zero_all(struct netns_ipvs *ipvs) #ifdef CONFIG_SYSCTL static int -proc_do_defense_mode(struct ctl_table *table, int write, +proc_do_defense_mode(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct netns_ipvs *ipvs = table->extra2; @@ -1873,7 +1873,7 @@ proc_do_defense_mode(struct ctl_table *table, int write, } static int -proc_do_sync_threshold(struct ctl_table *table, int write, +proc_do_sync_threshold(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct netns_ipvs *ipvs = table->extra2; @@ -1901,7 +1901,7 @@ proc_do_sync_threshold(struct ctl_table *table, int write, } static int -proc_do_sync_ports(struct ctl_table *table, int write, +proc_do_sync_ports(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { int *valp = table->data; @@ -1984,7 +1984,7 @@ static int ipvs_proc_est_cpumask_get(const struct ctl_table *table, return ret; } -static int ipvs_proc_est_cpulist(struct ctl_table *table, int write, +static int ipvs_proc_est_cpulist(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { int ret; @@ -2011,7 +2011,7 @@ static int ipvs_proc_est_cpulist(struct ctl_table *table, int write, return ret; } -static int ipvs_proc_est_nice(struct ctl_table *table, int write, +static int ipvs_proc_est_nice(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct netns_ipvs *ipvs = table->extra2; @@ -2041,7 +2041,7 @@ static int ipvs_proc_est_nice(struct ctl_table *table, int write, return ret; } -static int ipvs_proc_run_estimation(struct ctl_table *table, int write, +static int ipvs_proc_run_estimation(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct netns_ipvs *ipvs = table->extra2; diff --git a/net/netfilter/nf_conntrack_standalone.c b/net/netfilter/nf_conntrack_standalone.c index bb9dea676ec1..3d5284639ca8 100644 --- a/net/netfilter/nf_conntrack_standalone.c +++ b/net/netfilter/nf_conntrack_standalone.c @@ -527,7 +527,7 @@ EXPORT_SYMBOL_GPL(nf_conntrack_count); static unsigned int nf_conntrack_htable_size_user __read_mostly; static int -nf_conntrack_hash_sysctl(struct ctl_table *table, int write, +nf_conntrack_hash_sysctl(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { int ret; diff --git a/net/netfilter/nf_hooks_lwtunnel.c b/net/netfilter/nf_hooks_lwtunnel.c index 00e89ffd78f6..3d237f9cc8ee 100644 --- a/net/netfilter/nf_hooks_lwtunnel.c +++ b/net/netfilter/nf_hooks_lwtunnel.c @@ -25,7 +25,7 @@ static inline int nf_hooks_lwtunnel_set(int enable) } #ifdef CONFIG_SYSCTL -int nf_hooks_lwtunnel_sysctl_handler(struct ctl_table *table, int write, +int nf_hooks_lwtunnel_sysctl_handler(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { int proc_nf_hooks_lwtunnel_enabled = 0; diff --git a/net/netfilter/nf_log.c b/net/netfilter/nf_log.c index efedd2f13ac7..a8edc3e75db9 100644 --- a/net/netfilter/nf_log.c +++ b/net/netfilter/nf_log.c @@ -409,7 +409,7 @@ static struct ctl_table nf_log_sysctl_ftable[] = { { } }; -static int nf_log_proc_dostring(struct ctl_table *table, int write, +static int nf_log_proc_dostring(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { const struct nf_logger *logger; diff --git a/net/phonet/sysctl.c b/net/phonet/sysctl.c index 0d0bf41381c2..e59d16e67376 100644 --- a/net/phonet/sysctl.c +++ b/net/phonet/sysctl.c @@ -48,7 +48,7 @@ void phonet_get_local_port_range(int *min, int *max) } while (read_seqretry(&local_port_range_lock, seq)); } -static int proc_local_port_range(struct ctl_table *table, int write, +static int proc_local_port_range(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { int ret; diff --git a/net/rds/tcp.c b/net/rds/tcp.c index 2dba7505b414..d23ea8c11902 100644 --- a/net/rds/tcp.c +++ b/net/rds/tcp.c @@ -61,7 +61,7 @@ static atomic_t rds_tcp_unloading = ATOMIC_INIT(0); static struct kmem_cache *rds_tcp_conn_slab; -static int rds_tcp_skbuf_handler(struct ctl_table *ctl, int write, +static int rds_tcp_skbuf_handler(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *fpos); static int rds_tcp_min_sndbuf = SOCK_MIN_SNDBUF; @@ -683,7 +683,7 @@ static void rds_tcp_sysctl_reset(struct net *net) spin_unlock_irq(&rds_tcp_conn_lock); } -static int rds_tcp_skbuf_handler(struct ctl_table *ctl, int write, +static int rds_tcp_skbuf_handler(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *fpos) { struct net *net = current->nsproxy->net_ns; diff --git a/net/sctp/sysctl.c b/net/sctp/sysctl.c index 25bdf17c7262..3af5d7b05ae9 100644 --- a/net/sctp/sysctl.c +++ b/net/sctp/sysctl.c @@ -43,19 +43,19 @@ static unsigned long max_autoclose_max = (MAX_SCHEDULE_TIMEOUT / HZ > UINT_MAX) ? UINT_MAX : MAX_SCHEDULE_TIMEOUT / HZ; -static int proc_sctp_do_hmac_alg(struct ctl_table *ctl, int write, +static int proc_sctp_do_hmac_alg(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos); -static int proc_sctp_do_rto_min(struct ctl_table *ctl, int write, +static int proc_sctp_do_rto_min(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos); -static int proc_sctp_do_rto_max(struct ctl_table *ctl, int write, void *buffer, - size_t *lenp, loff_t *ppos); -static int proc_sctp_do_udp_port(struct ctl_table *ctl, int write, void *buffer, - size_t *lenp, loff_t *ppos); -static int proc_sctp_do_alpha_beta(struct ctl_table *ctl, int write, +static int proc_sctp_do_rto_max(const struct ctl_table *ctl, int write, + void *buffer, size_t *lenp, loff_t *ppos); +static int proc_sctp_do_udp_port(const struct ctl_table *ctl, int write, + void *buffer, size_t *lenp, loff_t *ppos); +static int proc_sctp_do_alpha_beta(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos); -static int proc_sctp_do_auth(struct ctl_table *ctl, int write, +static int proc_sctp_do_auth(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos); -static int proc_sctp_do_probe_interval(struct ctl_table *ctl, int write, +static int proc_sctp_do_probe_interval(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos); static struct ctl_table sctp_table[] = { @@ -388,7 +388,7 @@ static struct ctl_table sctp_net_table[] = { { /* sentinel */ } }; -static int proc_sctp_do_hmac_alg(struct ctl_table *ctl, int write, +static int proc_sctp_do_hmac_alg(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct net *net = current->nsproxy->net_ns; @@ -433,7 +433,7 @@ static int proc_sctp_do_hmac_alg(struct ctl_table *ctl, int write, return ret; } -static int proc_sctp_do_rto_min(struct ctl_table *ctl, int write, +static int proc_sctp_do_rto_min(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct net *net = current->nsproxy->net_ns; @@ -461,7 +461,7 @@ static int proc_sctp_do_rto_min(struct ctl_table *ctl, int write, return ret; } -static int proc_sctp_do_rto_max(struct ctl_table *ctl, int write, +static int proc_sctp_do_rto_max(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct net *net = current->nsproxy->net_ns; @@ -489,7 +489,7 @@ static int proc_sctp_do_rto_max(struct ctl_table *ctl, int write, return ret; } -static int proc_sctp_do_alpha_beta(struct ctl_table *ctl, int write, +static int proc_sctp_do_alpha_beta(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { if (write) @@ -499,7 +499,7 @@ static int proc_sctp_do_alpha_beta(struct ctl_table *ctl, int write, return proc_dointvec_minmax(ctl, write, buffer, lenp, ppos); } -static int proc_sctp_do_auth(struct ctl_table *ctl, int write, +static int proc_sctp_do_auth(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct net *net = current->nsproxy->net_ns; @@ -528,7 +528,7 @@ static int proc_sctp_do_auth(struct ctl_table *ctl, int write, return ret; } -static int proc_sctp_do_udp_port(struct ctl_table *ctl, int write, +static int proc_sctp_do_udp_port(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct net *net = current->nsproxy->net_ns; @@ -569,7 +569,7 @@ static int proc_sctp_do_udp_port(struct ctl_table *ctl, int write, return ret; } -static int proc_sctp_do_probe_interval(struct ctl_table *ctl, int write, +static int proc_sctp_do_probe_interval(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct net *net = current->nsproxy->net_ns; diff --git a/net/sunrpc/sysctl.c b/net/sunrpc/sysctl.c index 93941ab12549..672067efacef 100644 --- a/net/sunrpc/sysctl.c +++ b/net/sunrpc/sysctl.c @@ -40,7 +40,7 @@ EXPORT_SYMBOL_GPL(nlm_debug); #if IS_ENABLED(CONFIG_SUNRPC_DEBUG) -static int proc_do_xprt(struct ctl_table *table, int write, +static int proc_do_xprt(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { char tmpbuf[256]; @@ -62,8 +62,8 @@ static int proc_do_xprt(struct ctl_table *table, int write, } static int -proc_dodebug(struct ctl_table *table, int write, void *buffer, size_t *lenp, - loff_t *ppos) +proc_dodebug(const struct ctl_table *table, int write, void *buffer, + size_t *lenp, loff_t *ppos) { char tmpbuf[20], *s = NULL; char *p; diff --git a/net/sunrpc/xprtrdma/svc_rdma.c b/net/sunrpc/xprtrdma/svc_rdma.c index f86970733eb0..09832e4945a3 100644 --- a/net/sunrpc/xprtrdma/svc_rdma.c +++ b/net/sunrpc/xprtrdma/svc_rdma.c @@ -74,7 +74,7 @@ enum { SVCRDMA_COUNTER_BUFSIZ = sizeof(unsigned long long), }; -static int svcrdma_counter_handler(struct ctl_table *table, int write, +static int svcrdma_counter_handler(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct percpu_counter *stat = (struct percpu_counter *)table->data; diff --git a/security/apparmor/lsm.c b/security/apparmor/lsm.c index 6239777090c4..16568b6d589d 100644 --- a/security/apparmor/lsm.c +++ b/security/apparmor/lsm.c @@ -2029,7 +2029,7 @@ static int __init alloc_buffers(void) } #ifdef CONFIG_SYSCTL -static int apparmor_dointvec(struct ctl_table *table, int write, +static int apparmor_dointvec(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { if (!aa_current_policy_admin_capable(NULL)) diff --git a/security/min_addr.c b/security/min_addr.c index 88c9a6a21f47..0ce267c041ab 100644 --- a/security/min_addr.c +++ b/security/min_addr.c @@ -29,7 +29,7 @@ static void update_mmap_min_addr(void) * sysctl handler which just sets dac_mmap_min_addr = the new value and then * calls update_mmap_min_addr() so non MAP_FIXED hints get rounded properly */ -int mmap_min_addr_handler(struct ctl_table *table, int write, +int mmap_min_addr_handler(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { int ret; diff --git a/security/yama/yama_lsm.c b/security/yama/yama_lsm.c index b6684a074a59..5b762f452977 100644 --- a/security/yama/yama_lsm.c +++ b/security/yama/yama_lsm.c @@ -435,7 +435,7 @@ static struct security_hook_list yama_hooks[] __ro_after_init = { }; #ifdef CONFIG_SYSCTL -static int yama_dointvec_minmax(struct ctl_table *table, int write, +static int yama_dointvec_minmax(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct ctl_table table_copy; -- 2.44.0 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id D0553C10F16 for ; Tue, 30 Apr 2024 18:28:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Cc:To:In-Reply-To:References:Message-Id :MIME-Version:Subject:Date:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=pHDUfrfASQDlhQCLoWigCgGelKzoBMnbuORgHD551aI=; b=h2hlrNTleuJfy/ ObBB5C8n3gLmw6Yog+JPcw7L87QNBceiCE6UtFBx7zKqhTpqmPqVnPoEzOsVOOnYxZvMoobC/Xht1 mqFlCj0cNW1wPbVYK5g5qYLhFWK/0wZf5rhMX5+8hpgvGB+l2fZjh+w/rcYSXpeFiIYjgeUFCcfDP VCeGysLry7vNCcr0sXYQpNVwdDMSdYiK0hlZeKu5qMuhWrxp4yiuaK8aaqahEmYIUx8zOMyMNVecM rGUm4jSgRqexfiU70OEF0lpKICnRQSQOiKbX6CDWrX31kgWGxpKic1K0J5HWjdJtuV5+rCsArm1nL Tc9WbUHe3v/6wQ0ryBQw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1s1sDR-00000007a39-1G2T; Tue, 30 Apr 2024 18:28:33 +0000 Received: from todd.t-8ch.de ([2a01:4f8:c010:41de::1]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rzB0f-0000000GKKj-0Jzc; Tue, 23 Apr 2024 07:56:26 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=weissschuh.net; s=mail; t=1713858962; bh=FVysOkPE/qiRLZCuxnkxsMnTX0foyNtgrbyactsZP2Y=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=uagAM0++rugBquWWZc12oBXw1p0sZNjLZ2P0BRn3a7mK4KfkLqVjep/MFqJY/7LAF 9caAdhgcu3xO8svnWs6UiBpEw54gG1sTupswjoZ3XrmizzbipFrDAq+6AqF37skYwx BR63gR5QqQWcerDyrgrTLAOjD+xHRp30erwz41hs= From: =?utf-8?q?Thomas_Wei=C3=9Fschuh?= Date: Tue, 23 Apr 2024 09:54:46 +0200 Subject: [PATCH v3 11/11] sysctl: treewide: constify the ctl_table argument of handlers MIME-Version: 1.0 Message-Id: <20240423-sysctl-const-handler-v3-11-e0beccb836e2@weissschuh.net> References: <20240423-sysctl-const-handler-v3-0-e0beccb836e2@weissschuh.net> In-Reply-To: <20240423-sysctl-const-handler-v3-0-e0beccb836e2@weissschuh.net> To: Luis Chamberlain , Joel Granados , Kees Cook Cc: Eric Dumazet , Dave Chinner , linux-fsdevel@vger.kernel.org, netdev@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, linux-mm@kvack.org, linux-security-module@vger.kernel.org, bpf@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-xfs@vger.kernel.org, linux-trace-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, netfilter-devel@vger.kernel.org, coreteam@netfilter.org, kexec@lists.infradead.org, linux-hardening@vger.kernel.org, bridge@lists.linux.dev, lvs-devel@vger.kernel.org, linux-rdma@vger.kernel.org, rds-devel@oss.oracle.com, linux-sctp@vger.kernel.org, linux-nfs@vger.kernel.org, apparmor@lists.ubuntu.com, =?utf-8?q?Thomas_Wei=C3=9Fschuh?= X-Mailer: b4 0.13.0 X-Developer-Signature: v=1; a=ed25519-sha256; t=1713858961; l=108174; i=linux@weissschuh.net; s=20221212; h=from:subject:message-id; bh=FVysOkPE/qiRLZCuxnkxsMnTX0foyNtgrbyactsZP2Y=; b=5wEbCfrcoLTsgxV7Uxepjuju0i3n3dX4eEy0jjS4qXCKmY0HYJZJRKgtvn3SvZv68yUf+15PI DCOFgsjg7ChC0MoGza+B8re+o9KUvCk6GNeS16w70HPuLDKhvC0QRKO X-Developer-Key: i=linux@weissschuh.net; a=ed25519; pk=KcycQgFPX2wGR5azS7RhpBqedglOZVgRPfdFSPB1LNw= X-Mailman-Approved-At: Tue, 30 Apr 2024 11:28:31 -0700 X-BeenThere: kexec@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "kexec" Errors-To: kexec-bounces+kexec=archiver.kernel.org@lists.infradead.org QWRhcHQgdGhlIHByb2NfaGFuZGVyIGZ1bmN0aW9uIHNpZ25hdHVyZSB0byBtYWtlIGl0IGNsZWFy IHRoYXQgaGFuZGxlcnMKYXJlIG5vdCBzdXBwb3NlZCB0byBtb2RpZnkgdGhlaXIgY3RsX3RhYmxl IGFyZ3VtZW50LgoKVGhpcyBpcyBhIHByZXJlcXVpc2l0ZSB0byBtb3ZpbmcgdGhlIHN0YXRpYyBj dGxfdGFibGUgc3RydWN0cyBpbnRvCi5yb2RhdGEuCkJ5IG1pZ3JhdGluZyBhbGwgaGFuZGxlcnMg YXQgb25jZSBhIGxlbmd0aHkgdHJhbnNpdGlvbiBjYW4gYmUgYXZvaWRlZC4KClRoZSBwYXRjaCB3 YXMgbW9zdGx5IGdlbmVyYXRlZCBieSBjb2NjaW5lbGxlIHdpdGggdGhlIGZvbGxvd2luZyBzY3Jp cHQ6CgogICAgQEAKICAgIGlkZW50aWZpZXIgZnVuYywgY3RsLCB3cml0ZSwgYnVmZmVyLCBsZW5w LCBwcG9zOwogICAgQEAKCiAgICBpbnQgZnVuYygKICAgIC0gc3RydWN0IGN0bF90YWJsZSAqY3Rs LAogICAgKyBjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICpjdGwsCiAgICAgIGludCB3cml0ZSwgdm9p ZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKICAgIHsgLi4uIH0KCkluIGFk ZGl0aW9uIHRvIHRoZSBzY3JpcHRlZCBjaGFuZ2VzIHNvbWUgb3RoZXIgY2hhbmdlcyBhcmUgZG9u ZToKCiogdGhlIHR5cGVkZWYgcHJvY19oYW5kbGVyIGlzIGFkYXB0ZWQKCiogdGhlIHByb3RvdHlw ZXMgb2Ygbm9uLXN0YXRpYyBoYW5kbGVyIGFyZSBhZGFwdGVkCgoqIGtlcm5lbC9zZWNjb21wLmM6 e3JlYWQsd3JpdGV9X2FjdGlvbnNfbG9nZ2VkKCkgYW5kCiAga2VybmVsL3dhdGNoZG9nLmM6cHJv Y193YXRjaGRvZ19jb21tb24oKSBhcmUgYWRhcHRlZCBhcyB0aGV5IG5lZWQgdG8KICBhZGFwdGVk IHRvZ2V0aGVyIHdpdGggdGhlIGhhbmRsZXJzIGZvciB0eXBlLWNvbnNpc3RlbmN5IHJlYXNvbnMK ClNpZ25lZC1vZmYtYnk6IFRob21hcyBXZWnDn3NjaHVoIDxsaW51eEB3ZWlzc3NjaHVoLm5ldD4K LS0tCiBhcmNoL2FybTY0L2tlcm5lbC9hcm12OF9kZXByZWNhdGVkLmMgICAgICB8ICAyICstCiBh cmNoL2FybTY0L2tlcm5lbC9mcHNpbWQuYyAgICAgICAgICAgICAgICB8ICAyICstCiBhcmNoL3Mz OTAvYXBwbGRhdGEvYXBwbGRhdGFfYmFzZS5jICAgICAgICB8IDEwICsrLS0tCiBhcmNoL3MzOTAv a2VybmVsL2RlYnVnLmMgICAgICAgICAgICAgICAgICB8ICAyICstCiBhcmNoL3MzOTAva2VybmVs L3RvcG9sb2d5LmMgICAgICAgICAgICAgICB8ICAyICstCiBhcmNoL3MzOTAvbW0vY21tLmMgICAg ICAgICAgICAgICAgICAgICAgICB8ICA2ICstLQogYXJjaC94ODYva2VybmVsL2l0bXQuYyAgICAg ICAgICAgICAgICAgICAgfCAgMiArLQogZHJpdmVycy9jZHJvbS9jZHJvbS5jICAgICAgICAgICAg ICAgICAgICAgfCAgNCArLQogZHJpdmVycy9jaGFyL3JhbmRvbS5jICAgICAgICAgICAgICAgICAg ICAgfCAgNiArLS0KIGRyaXZlcnMvbWFjaW50b3NoL21hY19oaWQuYyAgICAgICAgICAgICAgIHwg IDIgKy0KIGRyaXZlcnMvbmV0L3ZyZi5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0K IGRyaXZlcnMvcGFycG9ydC9wcm9jZnMuYyAgICAgICAgICAgICAgICAgIHwgMTIgKysrLS0tCiBk cml2ZXJzL3BlcmYvYXJtX3BtdXYzLmMgICAgICAgICAgICAgICAgICB8ICA0ICstCiBkcml2ZXJz L3BlcmYvcmlzY3ZfcG11X3NiaS5jICAgICAgICAgICAgICB8ICAyICstCiBmcy9jb3JlZHVtcC5j ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBmcy9kY2FjaGUuYyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICstCiBmcy9kcm9wX2NhY2hlcy5jICAgICAgICAg ICAgICAgICAgICAgICAgICB8ICAyICstCiBmcy9leGVjLmMgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICA0ICstCiBmcy9maWxlX3RhYmxlLmMgICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICA0ICstCiBmcy9mcy13cml0ZWJhY2suYyAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAyICstCiBmcy9pbm9kZS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICst CiBmcy9waXBlLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBmcy9x dW90YS9kcXVvdC5jICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBmcy94ZnMveGZz X3N5c2N0bC5jICAgICAgICAgICAgICAgICAgICAgICB8ICA2ICstLQogaW5jbHVkZS9saW51eC9m dHJhY2UuaCAgICAgICAgICAgICAgICAgICAgfCAgNCArLQogaW5jbHVkZS9saW51eC9tbS5oICAg ICAgICAgICAgICAgICAgICAgICAgfCAgOCArKy0tCiBpbmNsdWRlL2xpbnV4L3BlcmZfZXZlbnQu aCAgICAgICAgICAgICAgICB8ICA2ICstLQogaW5jbHVkZS9saW51eC9zZWN1cml0eS5oICAgICAg ICAgICAgICAgICAgfCAgMiArLQogaW5jbHVkZS9saW51eC9zeXNjdGwuaCAgICAgICAgICAgICAg ICAgICAgfCAzNCArKysrKysrKy0tLS0tLS0tCiBpbmNsdWRlL2xpbnV4L3Ztc3RhdC5oICAgICAg ICAgICAgICAgICAgICB8ICA2ICstLQogaW5jbHVkZS9saW51eC93cml0ZWJhY2suaCAgICAgICAg ICAgICAgICAgfCAgMiArLQogaW5jbHVkZS9uZXQvbmRpc2MuaCAgICAgICAgICAgICAgICAgICAg ICAgfCAgMiArLQogaW5jbHVkZS9uZXQvbmVpZ2hib3VyLmggICAgICAgICAgICAgICAgICAgfCAg NiArLS0KIGluY2x1ZGUvbmV0L25ldGZpbHRlci9uZl9ob29rc19sd3R1bm5lbC5oIHwgIDIgKy0K IGlwYy9pcGNfc3lzY3RsLmMgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDggKystLQoga2Vy bmVsL2JwZi9zeXNjYWxsLmMgICAgICAgICAgICAgICAgICAgICAgfCAgNCArLQoga2VybmVsL2Rl bGF5YWNjdC5jICAgICAgICAgICAgICAgICAgICAgICAgfCAgNCArLQoga2VybmVsL2V2ZW50cy9j YWxsY2hhaW4uYyAgICAgICAgICAgICAgICAgfCAgMiArLQoga2VybmVsL2V2ZW50cy9jb3JlLmMg ICAgICAgICAgICAgICAgICAgICAgfCAgNCArLQoga2VybmVsL2ZvcmsuYyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgMiArLQoga2VybmVsL2h1bmdfdGFzay5jICAgICAgICAgICAgICAg ICAgICAgICAgfCAgNiArLS0KIGtlcm5lbC9rZXhlY19jb3JlLmMgICAgICAgICAgICAgICAgICAg ICAgIHwgIDIgKy0KIGtlcm5lbC9rcHJvYmVzLmMgICAgICAgICAgICAgICAgICAgICAgICAgIHwg IDIgKy0KIGtlcm5lbC9sYXRlbmN5dG9wLmMgICAgICAgICAgICAgICAgICAgICAgIHwgIDQgKy0K IGtlcm5lbC9waWRfbmFtZXNwYWNlLmMgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGtlcm5l bC9waWRfc3lzY3RsLmggICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGtlcm5lbC9wcmlu dGsvaW50ZXJuYWwuaCAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGtlcm5lbC9wcmludGsvcHJp bnRrLmMgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGtlcm5lbC9wcmludGsvc3lzY3RsLmMg ICAgICAgICAgICAgICAgICAgIHwgIDUgKystCiBrZXJuZWwvc2NoZWQvY29yZS5jICAgICAgICAg ICAgICAgICAgICAgICB8ICA4ICsrLS0KIGtlcm5lbC9zY2hlZC9ydC5jICAgICAgICAgICAgICAg ICAgICAgICAgIHwgMTYgKysrKy0tLS0KIGtlcm5lbC9zY2hlZC90b3BvbG9neS5jICAgICAgICAg ICAgICAgICAgIHwgIDIgKy0KIGtlcm5lbC9zZWNjb21wLmMgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgMTAgKystLS0KIGtlcm5lbC9zdGFja2xlYWsuYyAgICAgICAgICAgICAgICAgICAgICAg IHwgIDIgKy0KIGtlcm5lbC9zeXNjdGwuYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNjgg KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLQoga2VybmVsL3RpbWUvdGltZXIuYyAgICAg ICAgICAgICAgICAgICAgICAgfCAgMiArLQoga2VybmVsL3RyYWNlL2Z0cmFjZS5jICAgICAgICAg ICAgICAgICAgICAgfCAgMiArLQoga2VybmVsL3RyYWNlL3RyYWNlLmMgICAgICAgICAgICAgICAg ICAgICAgfCAgMiArLQoga2VybmVsL3RyYWNlL3RyYWNlX2V2ZW50c191c2VyLmMgICAgICAgICAg fCAgMiArLQoga2VybmVsL3RyYWNlL3RyYWNlX3N0YWNrLmMgICAgICAgICAgICAgICAgfCAgMiAr LQoga2VybmVsL3VtaC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQoga2Vy bmVsL3V0c25hbWVfc3lzY3RsLmMgICAgICAgICAgICAgICAgICAgfCAgMiArLQoga2VybmVsL3dh dGNoZG9nLmMgICAgICAgICAgICAgICAgICAgICAgICAgfCAxMiArKystLS0KIG1tL2NvbXBhY3Rp b24uYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDYgKy0tCiBtbS9odWdldGxiLmMgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA4ICsrLS0KIG1tL3BhZ2Utd3JpdGViYWNrLmMg ICAgICAgICAgICAgICAgICAgICAgIHwgMTggKysrKy0tLS0KIG1tL3BhZ2VfYWxsb2MuYyAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgMTQgKysrLS0tLQogbW0vdXRpbC5jICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAxMiArKystLS0KIG1tL3Ztc3RhdC5jICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgIDQgKy0KIG5ldC9icmlkZ2UvYnJfbmV0ZmlsdGVyX2hvb2tz LmMgICAgICAgICAgIHwgIDIgKy0KIG5ldC9jb3JlL25laWdoYm91ci5jICAgICAgICAgICAgICAg ICAgICAgIHwgMTggKysrKy0tLS0KIG5ldC9jb3JlL3N5c2N0bF9uZXRfY29yZS5jICAgICAgICAg ICAgICAgIHwgMjAgKysrKy0tLS0tCiBuZXQvaXB2NC9kZXZpbmV0LmMgICAgICAgICAgICAgICAg ICAgICAgICB8ICA2ICstLQogbmV0L2lwdjQvcm91dGUuYyAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgMiArLQogbmV0L2lwdjQvc3lzY3RsX25ldF9pcHY0LmMgICAgICAgICAgICAgICAgfCAz MiArKysrKysrLS0tLS0tLS0KIG5ldC9pcHY2L2FkZHJjb25mLmMgICAgICAgICAgICAgICAgICAg ICAgIHwgMTkgKysrKystLS0tCiBuZXQvaXB2Ni9uZGlzYy5jICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAyICstCiBuZXQvaXB2Ni9yb3V0ZS5jICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAyICstCiBuZXQvaXB2Ni9zeXNjdGxfbmV0X2lwdjYuYyAgICAgICAgICAgICAgICB8ICA0ICst CiBuZXQvbXBscy9hZl9tcGxzLmMgICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICstCiBuZXQv bmV0ZmlsdGVyL2lwdnMvaXBfdnNfY3RsLmMgICAgICAgICAgICB8IDEyICsrKy0tLQogbmV0L25l dGZpbHRlci9uZl9jb25udHJhY2tfc3RhbmRhbG9uZS5jICAgfCAgMiArLQogbmV0L25ldGZpbHRl ci9uZl9ob29rc19sd3R1bm5lbC5jICAgICAgICAgfCAgMiArLQogbmV0L25ldGZpbHRlci9uZl9s b2cuYyAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogbmV0L3Bob25ldC9zeXNjdGwuYyAgICAg ICAgICAgICAgICAgICAgICAgfCAgMiArLQogbmV0L3Jkcy90Y3AuYyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgNCArLQogbmV0L3NjdHAvc3lzY3RsLmMgICAgICAgICAgICAgICAgICAg ICAgICAgfCAzMiArKysrKysrLS0tLS0tLS0KIG5ldC9zdW5ycGMvc3lzY3RsLmMgICAgICAgICAg ICAgICAgICAgICAgIHwgIDYgKy0tCiBuZXQvc3VucnBjL3hwcnRyZG1hL3N2Y19yZG1hLmMgICAg ICAgICAgICB8ICAyICstCiBzZWN1cml0eS9hcHBhcm1vci9sc20uYyAgICAgICAgICAgICAgICAg ICB8ICAyICstCiBzZWN1cml0eS9taW5fYWRkci5jICAgICAgICAgICAgICAgICAgICAgICB8ICAy ICstCiBzZWN1cml0eS95YW1hL3lhbWFfbHNtLmMgICAgICAgICAgICAgICAgICB8ICAyICstCiA5 MiBmaWxlcyBjaGFuZ2VkLCAyOTUgaW5zZXJ0aW9ucygrKSwgMjkzIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2FyY2gvYXJtNjQva2VybmVsL2FybXY4X2RlcHJlY2F0ZWQuYyBiL2FyY2gvYXJt NjQva2VybmVsL2FybXY4X2RlcHJlY2F0ZWQuYwppbmRleCBkZDZjZTg2ZDQzMzIuLmEzMDg1Y2I2 ODg1MiAxMDA2NDQKLS0tIGEvYXJjaC9hcm02NC9rZXJuZWwvYXJtdjhfZGVwcmVjYXRlZC5jCisr KyBiL2FyY2gvYXJtNjQva2VybmVsL2FybXY4X2RlcHJlY2F0ZWQuYwpAQCAtNTA0LDcgKzUwNCw3 IEBAIHN0YXRpYyBpbnQgdXBkYXRlX2luc25fZW11bGF0aW9uX21vZGUoc3RydWN0IGluc25fZW11 bGF0aW9uICppbnNuLAogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyBpbnQgZW11bGF0aW9uX3By b2NfaGFuZGxlcihzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAorc3RhdGljIGlu dCBlbXVsYXRpb25fcHJvY19oYW5kbGVyKGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBp bnQgd3JpdGUsCiAJCQkJICB2b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCwKIAkJCQkgIGxvZmZf dCAqcHBvcykKIHsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQva2VybmVsL2Zwc2ltZC5jIGIvYXJj aC9hcm02NC9rZXJuZWwvZnBzaW1kLmMKaW5kZXggZWJiMDE1ODk5N2NhLi45OGVmYjU4N2VmMzYg MTAwNjQ0Ci0tLSBhL2FyY2gvYXJtNjQva2VybmVsL2Zwc2ltZC5jCisrKyBiL2FyY2gvYXJtNjQv a2VybmVsL2Zwc2ltZC5jCkBAIC01MzUsNyArNTM1LDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBm aW5kX3N1cHBvcnRlZF92ZWN0b3JfbGVuZ3RoKGVudW0gdmVjX3R5cGUgdHlwZSwKIAogI2lmIGRl ZmluZWQoQ09ORklHX0FSTTY0X1NWRSkgJiYgZGVmaW5lZChDT05GSUdfU1lTQ1RMKQogCi1zdGF0 aWMgaW50IHZlY19wcm9jX2RvX2RlZmF1bHRfdmwoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGlu dCB3cml0ZSwKK3N0YXRpYyBpbnQgdmVjX3Byb2NfZG9fZGVmYXVsdF92bChjb25zdCBzdHJ1Y3Qg Y3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCQkJCSAgdm9pZCAqYnVmZmVyLCBzaXplX3Qg KmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlzdHJ1Y3QgdmxfaW5mbyAqaW5mbyA9IHRhYmxlLT5l eHRyYTE7CmRpZmYgLS1naXQgYS9hcmNoL3MzOTAvYXBwbGRhdGEvYXBwbGRhdGFfYmFzZS5jIGIv YXJjaC9zMzkwL2FwcGxkYXRhL2FwcGxkYXRhX2Jhc2UuYwppbmRleCBjMjk3OGNiMDNiMzYuLjkx YTMwZTAxN2Q2NSAxMDA2NDQKLS0tIGEvYXJjaC9zMzkwL2FwcGxkYXRhL2FwcGxkYXRhX2Jhc2Uu YworKysgYi9hcmNoL3MzOTAvYXBwbGRhdGEvYXBwbGRhdGFfYmFzZS5jCkBAIC00Niw5ICs0Niw5 IEBACiAgKiAvcHJvYyBlbnRyaWVzIChzeXNjdGwpCiAgKi8KIHN0YXRpYyBjb25zdCBjaGFyIGFw cGxkYXRhX3Byb2NfbmFtZVtBUFBMREFUQV9QUk9DX05BTUVfTEVOR1RIXSA9ICJhcHBsZGF0YSI7 Ci1zdGF0aWMgaW50IGFwcGxkYXRhX3RpbWVyX2hhbmRsZXIoc3RydWN0IGN0bF90YWJsZSAqY3Rs LCBpbnQgd3JpdGUsCitzdGF0aWMgaW50IGFwcGxkYXRhX3RpbWVyX2hhbmRsZXIoY29uc3Qgc3Ry dWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsCiAJCQkJICB2b2lkICpidWZmZXIsIHNpemVf dCAqbGVucCwgbG9mZl90ICpwcG9zKTsKLXN0YXRpYyBpbnQgYXBwbGRhdGFfaW50ZXJ2YWxfaGFu ZGxlcihzdHJ1Y3QgY3RsX3RhYmxlICpjdGwsIGludCB3cml0ZSwKK3N0YXRpYyBpbnQgYXBwbGRh dGFfaW50ZXJ2YWxfaGFuZGxlcihjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICpjdGwsIGludCB3cml0 ZSwKIAkJCQkgICAgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpOwog CiBzdGF0aWMgc3RydWN0IGN0bF90YWJsZV9oZWFkZXIgKmFwcGxkYXRhX3N5c2N0bF9oZWFkZXI7 CkBAIC0xOTksNyArMTk5LDcgQEAgc3RhdGljIHZvaWQgX19hcHBsZGF0YV92dGltZXJfc2V0dXAo aW50IGNtZCkKICAqIFN0YXJ0L1N0b3AgdGltZXIsIHNob3cgc3RhdHVzIG9mIHRpbWVyICgwID0g bm90IGFjdGl2ZSwgMSA9IGFjdGl2ZSkKICAqLwogc3RhdGljIGludAotYXBwbGRhdGFfdGltZXJf aGFuZGxlcihzdHJ1Y3QgY3RsX3RhYmxlICpjdGwsIGludCB3cml0ZSwKK2FwcGxkYXRhX3RpbWVy X2hhbmRsZXIoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsCiAJCQkgICB2 b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQogewogCWludCB0aW1lcl9h Y3RpdmUgPSBhcHBsZGF0YV90aW1lcl9hY3RpdmU7CkBAIC0yMzIsNyArMjMyLDcgQEAgYXBwbGRh dGFfdGltZXJfaGFuZGxlcihzdHJ1Y3QgY3RsX3RhYmxlICpjdGwsIGludCB3cml0ZSwKICAqIGN1 cnJlbnQgdGltZXIgaW50ZXJ2YWwuCiAgKi8KIHN0YXRpYyBpbnQKLWFwcGxkYXRhX2ludGVydmFs X2hhbmRsZXIoc3RydWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsCithcHBsZGF0YV9pbnRl cnZhbF9oYW5kbGVyKGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKmN0bCwgaW50IHdyaXRlLAogCQkJ ICAgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlpbnQgaW50 ZXJ2YWwgPSBhcHBsZGF0YV9pbnRlcnZhbDsKQEAgLTI2Miw3ICsyNjIsNyBAQCBhcHBsZGF0YV9p bnRlcnZhbF9oYW5kbGVyKHN0cnVjdCBjdGxfdGFibGUgKmN0bCwgaW50IHdyaXRlLAogICogbW9u aXRvcmluZyAoMCA9IG5vdCBpbiBwcm9jZXNzLCAxID0gaW4gcHJvY2VzcykKICAqLwogc3RhdGlj IGludAotYXBwbGRhdGFfZ2VuZXJpY19oYW5kbGVyKHN0cnVjdCBjdGxfdGFibGUgKmN0bCwgaW50 IHdyaXRlLAorYXBwbGRhdGFfZ2VuZXJpY19oYW5kbGVyKGNvbnN0IHN0cnVjdCBjdGxfdGFibGUg KmN0bCwgaW50IHdyaXRlLAogCQkJICAgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZf dCAqcHBvcykKIHsKIAlzdHJ1Y3QgYXBwbGRhdGFfb3BzICpvcHMgPSBOVUxMLCAqdG1wX29wczsK ZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9rZXJuZWwvZGVidWcuYyBiL2FyY2gvczM5MC9rZXJuZWwv ZGVidWcuYwppbmRleCA4NTMyOGEwZWYzYjYuLmJjZTUwY2E3NWVhNyAxMDA2NDQKLS0tIGEvYXJj aC9zMzkwL2tlcm5lbC9kZWJ1Zy5jCisrKyBiL2FyY2gvczM5MC9rZXJuZWwvZGVidWcuYwpAQCAt OTU0LDcgKzk1NCw3IEBAIHN0YXRpYyBpbnQgZGVidWdfYWN0aXZlID0gMTsKICAqIGFsd2F5cyBh bGxvdyByZWFkLCBhbGxvdyB3cml0ZSBvbmx5IGlmIGRlYnVnX3N0b3BwYWJsZSBpcyBzZXQgb3IK ICAqIGlmIGRlYnVnX2FjdGl2ZSBpcyBhbHJlYWR5IG9mZgogICovCi1zdGF0aWMgaW50IHMzOTBk YmZfcHJvY2FjdGl2ZShzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAorc3RhdGlj IGludCBzMzkwZGJmX3Byb2NhY3RpdmUoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGlu dCB3cml0ZSwKIAkJCSAgICAgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBw b3MpCiB7CiAJaWYgKCF3cml0ZSB8fCBkZWJ1Z19zdG9wcGFibGUgfHwgIWRlYnVnX2FjdGl2ZSkK ZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9rZXJuZWwvdG9wb2xvZ3kuYyBiL2FyY2gvczM5MC9rZXJu ZWwvdG9wb2xvZ3kuYwppbmRleCA4OWU5MWI4Y2U4NDIuLjFkZjNkYzExODY5NiAxMDA2NDQKLS0t IGEvYXJjaC9zMzkwL2tlcm5lbC90b3BvbG9neS5jCisrKyBiL2FyY2gvczM5MC9rZXJuZWwvdG9w b2xvZ3kuYwpAQCAtNjAwLDcgKzYwMCw3IEBAIHN0YXRpYyBpbnQgX19pbml0IHRvcG9sb2d5X3Nl dHVwKGNoYXIgKnN0cikKIH0KIGVhcmx5X3BhcmFtKCJ0b3BvbG9neSIsIHRvcG9sb2d5X3NldHVw KTsKIAotc3RhdGljIGludCB0b3BvbG9neV9jdGxfaGFuZGxlcihzdHJ1Y3QgY3RsX3RhYmxlICpj dGwsIGludCB3cml0ZSwKK3N0YXRpYyBpbnQgdG9wb2xvZ3lfY3RsX2hhbmRsZXIoY29uc3Qgc3Ry dWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsCiAJCQkJdm9pZCAqYnVmZmVyLCBzaXplX3Qg KmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlpbnQgZW5hYmxlZCA9IHRvcG9sb2d5X2lzX2VuYWJs ZWQoKTsKZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9tbS9jbW0uYyBiL2FyY2gvczM5MC9tbS9jbW0u YwppbmRleCBmOGIxM2YyNDc2NDYuLjFkNjc0OWUwOTVmNyAxMDA2NDQKLS0tIGEvYXJjaC9zMzkw L21tL2NtbS5jCisrKyBiL2FyY2gvczM5MC9tbS9jbW0uYwpAQCAtMjQzLDcgKzI0Myw3IEBAIHN0 YXRpYyBpbnQgY21tX3NraXBfYmxhbmtzKGNoYXIgKmNwLCBjaGFyICoqZW5kcCkKIAlyZXR1cm4g c3RyICE9IGNwOwogfQogCi1zdGF0aWMgaW50IGNtbV9wYWdlc19oYW5kbGVyKHN0cnVjdCBjdGxf dGFibGUgKmN0bCwgaW50IHdyaXRlLAorc3RhdGljIGludCBjbW1fcGFnZXNfaGFuZGxlcihjb25z dCBzdHJ1Y3QgY3RsX3RhYmxlICpjdGwsIGludCB3cml0ZSwKIAkJCSAgICAgdm9pZCAqYnVmZmVy LCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlsb25nIG5yID0gY21tX2dldF9wYWdl cygpOwpAQCAtMjYyLDcgKzI2Miw3IEBAIHN0YXRpYyBpbnQgY21tX3BhZ2VzX2hhbmRsZXIoc3Ry dWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBp bnQgY21tX3RpbWVkX3BhZ2VzX2hhbmRsZXIoc3RydWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3Jp dGUsCitzdGF0aWMgaW50IGNtbV90aW1lZF9wYWdlc19oYW5kbGVyKGNvbnN0IHN0cnVjdCBjdGxf dGFibGUgKmN0bCwgaW50IHdyaXRlLAogCQkJCSAgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5w LAogCQkJCSAgIGxvZmZfdCAqcHBvcykKIHsKQEAgLTI4Miw3ICsyODIsNyBAQCBzdGF0aWMgaW50 IGNtbV90aW1lZF9wYWdlc19oYW5kbGVyKHN0cnVjdCBjdGxfdGFibGUgKmN0bCwgaW50IHdyaXRl LAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGNtbV90aW1lb3V0X2hhbmRsZXIoc3RydWN0 IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsCitzdGF0aWMgaW50IGNtbV90aW1lb3V0X2hhbmRs ZXIoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsCiAJCQkgICAgICAgdm9p ZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAljaGFyIGJ1Zls2NF0s ICpwOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2l0bXQuYyBiL2FyY2gveDg2L2tlcm5l bC9pdG10LmMKaW5kZXggOWE3YzAzZDQ3ODYxLi41MWI4MDVjNzI3ZmMgMTAwNjQ0Ci0tLSBhL2Fy Y2gveDg2L2tlcm5lbC9pdG10LmMKKysrIGIvYXJjaC94ODYva2VybmVsL2l0bXQuYwpAQCAtMzgs NyArMzgsNyBAQCBzdGF0aWMgYm9vbCBfX3JlYWRfbW9zdGx5IHNjaGVkX2l0bXRfY2FwYWJsZTsK ICAqLwogdW5zaWduZWQgaW50IF9fcmVhZF9tb3N0bHkgc3lzY3RsX3NjaGVkX2l0bXRfZW5hYmxl ZDsKIAotc3RhdGljIGludCBzY2hlZF9pdG10X3VwZGF0ZV9oYW5kbGVyKHN0cnVjdCBjdGxfdGFi bGUgKnRhYmxlLCBpbnQgd3JpdGUsCitzdGF0aWMgaW50IHNjaGVkX2l0bXRfdXBkYXRlX2hhbmRs ZXIoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIAkJCQkgICAgIHZv aWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJdW5zaWduZWQgaW50 IG9sZF9zeXNjdGw7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nkcm9tL2Nkcm9tLmMgYi9kcml2ZXJz L2Nkcm9tL2Nkcm9tLmMKaW5kZXggYTVlMDcyNzBlMGQ0Li5kMGJkNjQxMjlkNDMgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvY2Ryb20vY2Ryb20uYworKysgYi9kcml2ZXJzL2Nkcm9tL2Nkcm9tLmMKQEAg LTM0NzMsNyArMzQ3Myw3IEBAIHN0YXRpYyBpbnQgY2Ryb21fcHJpbnRfaW5mbyhjb25zdCBjaGFy ICpoZWFkZXIsIGludCB2YWwsIGNoYXIgKmluZm8sCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBp bnQgY2Ryb21fc3lzY3RsX2luZm8oc3RydWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsCitz dGF0aWMgaW50IGNkcm9tX3N5c2N0bF9pbmZvKGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKmN0bCwg aW50IHdyaXRlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqYnVmZmVyLCBzaXpl X3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlpbnQgcG9zOwpAQCAtMzU4Niw3ICszNTg2LDcg QEAgc3RhdGljIHZvaWQgY2Ryb21fdXBkYXRlX3NldHRpbmdzKHZvaWQpCiAJbXV0ZXhfdW5sb2Nr KCZjZHJvbV9tdXRleCk7CiB9CiAKLXN0YXRpYyBpbnQgY2Ryb21fc3lzY3RsX2hhbmRsZXIoc3Ry dWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsCitzdGF0aWMgaW50IGNkcm9tX3N5c2N0bF9o YW5kbGVyKGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKmN0bCwgaW50IHdyaXRlLAogCQkJCXZvaWQg KmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJaW50IHJldDsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvY2hhci9yYW5kb20uYyBiL2RyaXZlcnMvY2hhci9yYW5kb20uYwppbmRl eCAyNTk3Y2I0M2Y0MzguLmNhNDE0MjA4Zjg5OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL3Jh bmRvbS5jCisrKyBiL2RyaXZlcnMvY2hhci9yYW5kb20uYwpAQCAtMTYwNCw3ICsxNjA0LDcgQEAg c3RhdGljIHU4IHN5c2N0bF9ib290aWRbVVVJRF9TSVpFXTsKICAqIFVVSUQuIFRoZSBkaWZmZXJl bmNlIGlzIGluIHdoZXRoZXIgdGFibGUtPmRhdGEgaXMgTlVMTDsgaWYgaXQgaXMsCiAgKiB0aGVu IGEgbmV3IFVVSUQgaXMgZ2VuZXJhdGVkIGFuZCByZXR1cm5lZCB0byB0aGUgdXNlci4KICAqLwot c3RhdGljIGludCBwcm9jX2RvX3V1aWQoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0 ZSwgdm9pZCAqYnVmLAorc3RhdGljIGludCBwcm9jX2RvX3V1aWQoY29uc3Qgc3RydWN0IGN0bF90 YWJsZSAqdGFibGUsIGludCB3cml0ZSwgdm9pZCAqYnVmLAogCQkJc2l6ZV90ICpsZW5wLCBsb2Zm X3QgKnBwb3MpCiB7CiAJdTggdG1wX3V1aWRbVVVJRF9TSVpFXSwgKnV1aWQ7CkBAIC0xNjM1LDgg KzE2MzUsOCBAQCBzdGF0aWMgaW50IHByb2NfZG9fdXVpZChzdHJ1Y3QgY3RsX3RhYmxlICp0YWJs ZSwgaW50IHdyaXRlLCB2b2lkICpidWYsCiB9CiAKIC8qIFRoZSBzYW1lIGFzIHByb2NfZG9pbnR2 ZWMsIGJ1dCB3cml0ZXMgZG9uJ3QgY2hhbmdlIGFueXRoaW5nLiAqLwotc3RhdGljIGludCBwcm9j X2RvX3JvaW50dmVjKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsIHZvaWQgKmJ1 ZiwKLQkJCSAgICBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKK3N0YXRpYyBpbnQgcHJvY19k b19yb2ludHZlYyhjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAorCQkJ ICAgIHZvaWQgKmJ1Ziwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJcmV0dXJuIHdy aXRlID8gMCA6IHByb2NfZG9pbnR2ZWModGFibGUsIDAsIGJ1ZiwgbGVucCwgcHBvcyk7CiB9CmRp ZmYgLS1naXQgYS9kcml2ZXJzL21hY2ludG9zaC9tYWNfaGlkLmMgYi9kcml2ZXJzL21hY2ludG9z aC9tYWNfaGlkLmMKaW5kZXggMWFlMzUzOWJlZmY1Li44OTEwNDdjOGExMTAgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvbWFjaW50b3NoL21hY19oaWQuYworKysgYi9kcml2ZXJzL21hY2ludG9zaC9tYWNf aGlkLmMKQEAgLTE4Miw3ICsxODIsNyBAQCBzdGF0aWMgdm9pZCBtYWNfaGlkX3N0b3BfZW11bGF0 aW9uKHZvaWQpCiAJbWFjX2hpZF9kZXN0cm95X2VtdW1vdXNlKCk7CiB9CiAKLXN0YXRpYyBpbnQg bWFjX2hpZF90b2dnbGVfZW11bW91c2Uoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0 ZSwKK3N0YXRpYyBpbnQgbWFjX2hpZF90b2dnbGVfZW11bW91c2UoY29uc3Qgc3RydWN0IGN0bF90 YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIAkJCQkgICB2b2lkICpidWZmZXIsIHNpemVfdCAqbGVu cCwgbG9mZl90ICpwcG9zKQogewogCWludCAqdmFscCA9IHRhYmxlLT5kYXRhOwpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQvdnJmLmMgYi9kcml2ZXJzL25ldC92cmYuYwppbmRleCA2NmY4NTQyZjNi MTguLjE0YzVlZmQyMzRhZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvdnJmLmMKKysrIGIvZHJp dmVycy9uZXQvdnJmLmMKQEAgLTE5MDgsNyArMTkwOCw3IEBAIHN0YXRpYyBpbnQgdnJmX3N0cmlj dF9tb2RlX2NoYW5nZShzdHJ1Y3QgdnJmX21hcCAqdm1hcCwgYm9vbCBuZXdfbW9kZSkKIAlyZXR1 cm4gcmVzOwogfQogCi1zdGF0aWMgaW50IHZyZl9zaGFyZWRfdGFibGVfaGFuZGxlcihzdHJ1Y3Qg Y3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAorc3RhdGljIGludCB2cmZfc2hhcmVkX3RhYmxl X2hhbmRsZXIoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIAkJCQkg ICAgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlzdHJ1Y3Qg bmV0ICpuZXQgPSAoc3RydWN0IG5ldCAqKXRhYmxlLT5leHRyYTE7CmRpZmYgLS1naXQgYS9kcml2 ZXJzL3BhcnBvcnQvcHJvY2ZzLmMgYi9kcml2ZXJzL3BhcnBvcnQvcHJvY2ZzLmMKaW5kZXggYmQz ODg1NjBlZDU5Li5lZmE3YzkwZTQyMzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGFycG9ydC9wcm9j ZnMuYworKysgYi9kcml2ZXJzL3BhcnBvcnQvcHJvY2ZzLmMKQEAgLTMzLDcgKzMzLDcgQEAKICNk ZWZpbmUgUEFSUE9SVF9NSU5fU1BJTlRJTUVfVkFMVUUgMQogI2RlZmluZSBQQVJQT1JUX01BWF9T UElOVElNRV9WQUxVRSAxMDAwCiAKLXN0YXRpYyBpbnQgZG9fYWN0aXZlX2RldmljZShzdHJ1Y3Qg Y3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAorc3RhdGljIGludCBkb19hY3RpdmVfZGV2aWNl KGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJCSAgICAgIHZvaWQg KnJlc3VsdCwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJc3RydWN0IHBhcnBvcnQg KnBvcnQgPSAoc3RydWN0IHBhcnBvcnQgKil0YWJsZS0+ZXh0cmExOwpAQCAtNzAsNyArNzAsNyBA QCBzdGF0aWMgaW50IGRvX2FjdGl2ZV9kZXZpY2Uoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGlu dCB3cml0ZSwKIH0KIAogI2lmZGVmIENPTkZJR19QQVJQT1JUXzEyODQKLXN0YXRpYyBpbnQgZG9f YXV0b3Byb2JlKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCitzdGF0aWMgaW50 IGRvX2F1dG9wcm9iZShjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAog CQkJdm9pZCAqcmVzdWx0LCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlzdHJ1Y3Qg cGFycG9ydF9kZXZpY2VfaW5mbyAqaW5mbyA9IHRhYmxlLT5leHRyYTI7CkBAIC0xMTMsNyArMTEz LDcgQEAgc3RhdGljIGludCBkb19hdXRvcHJvYmUoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGlu dCB3cml0ZSwKIH0KICNlbmRpZiAvKiBJRUVFMTI4NC4zIHN1cHBvcnQuICovCiAKLXN0YXRpYyBp bnQgZG9faGFyZHdhcmVfYmFzZV9hZGRyKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3Jp dGUsCitzdGF0aWMgaW50IGRvX2hhcmR3YXJlX2Jhc2VfYWRkcihjb25zdCBzdHJ1Y3QgY3RsX3Rh YmxlICp0YWJsZSwgaW50IHdyaXRlLAogCQkJCSB2b2lkICpyZXN1bHQsIHNpemVfdCAqbGVucCwg bG9mZl90ICpwcG9zKQogewogCXN0cnVjdCBwYXJwb3J0ICpwb3J0ID0gKHN0cnVjdCBwYXJwb3J0 ICopdGFibGUtPmV4dHJhMTsKQEAgLTE0MCw3ICsxNDAsNyBAQCBzdGF0aWMgaW50IGRvX2hhcmR3 YXJlX2Jhc2VfYWRkcihzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCXJldHVy biAwOwogfQogCi1zdGF0aWMgaW50IGRvX2hhcmR3YXJlX2lycShzdHJ1Y3QgY3RsX3RhYmxlICp0 YWJsZSwgaW50IHdyaXRlLAorc3RhdGljIGludCBkb19oYXJkd2FyZV9pcnEoY29uc3Qgc3RydWN0 IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIAkJCSAgIHZvaWQgKnJlc3VsdCwgc2l6ZV90 ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJc3RydWN0IHBhcnBvcnQgKnBvcnQgPSAoc3RydWN0 IHBhcnBvcnQgKil0YWJsZS0+ZXh0cmExOwpAQCAtMTY3LDcgKzE2Nyw3IEBAIHN0YXRpYyBpbnQg ZG9faGFyZHdhcmVfaXJxKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJcmV0 dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgZG9faGFyZHdhcmVfZG1hKHN0cnVjdCBjdGxfdGFibGUg KnRhYmxlLCBpbnQgd3JpdGUsCitzdGF0aWMgaW50IGRvX2hhcmR3YXJlX2RtYShjb25zdCBzdHJ1 Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCQkJICAgdm9pZCAqcmVzdWx0LCBzaXpl X3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlzdHJ1Y3QgcGFycG9ydCAqcG9ydCA9IChzdHJ1 Y3QgcGFycG9ydCAqKXRhYmxlLT5leHRyYTE7CkBAIC0xOTQsNyArMTk0LDcgQEAgc3RhdGljIGlu dCBkb19oYXJkd2FyZV9kbWEoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIAly ZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBkb19oYXJkd2FyZV9tb2RlcyhzdHJ1Y3QgY3RsX3Rh YmxlICp0YWJsZSwgaW50IHdyaXRlLAorc3RhdGljIGludCBkb19oYXJkd2FyZV9tb2Rlcyhjb25z dCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCQkJICAgICB2b2lkICpyZXN1 bHQsIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQogewogCXN0cnVjdCBwYXJwb3J0ICpwb3J0 ID0gKHN0cnVjdCBwYXJwb3J0ICopdGFibGUtPmV4dHJhMTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv cGVyZi9hcm1fcG11djMuYyBiL2RyaXZlcnMvcGVyZi9hcm1fcG11djMuYwppbmRleCAyM2ZhNmM1 ZGE4MmMuLmFjY2RmM2FjNGMxZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9wZXJmL2FybV9wbXV2My5j CisrKyBiL2RyaXZlcnMvcGVyZi9hcm1fcG11djMuYwpAQCAtMTI1Myw4ICsxMjUzLDggQEAgc3Rh dGljIHZvaWQgYXJtdjhwbXVfZGlzYWJsZV91c2VyX2FjY2Vzc19pcGkodm9pZCAqdW51c2VkKQog CWFybXY4cG11X2Rpc2FibGVfdXNlcl9hY2Nlc3MoKTsKIH0KIAotc3RhdGljIGludCBhcm12OHBt dV9wcm9jX3VzZXJfYWNjZXNzX2hhbmRsZXIoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3 cml0ZSwKLQkJdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKK3N0YXRp YyBpbnQgYXJtdjhwbXVfcHJvY191c2VyX2FjY2Vzc19oYW5kbGVyKGNvbnN0IHN0cnVjdCBjdGxf dGFibGUgKnRhYmxlLAorCQlpbnQgd3JpdGUsIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBs b2ZmX3QgKnBwb3MpCiB7CiAJaW50IHJldCA9IHByb2NfZG9pbnR2ZWNfbWlubWF4KHRhYmxlLCB3 cml0ZSwgYnVmZmVyLCBsZW5wLCBwcG9zKTsKIAlpZiAocmV0IHx8ICF3cml0ZSB8fCBzeXNjdGxf cGVyZl91c2VyX2FjY2VzcykKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGVyZi9yaXNjdl9wbXVfc2Jp LmMgYi9kcml2ZXJzL3BlcmYvcmlzY3ZfcG11X3NiaS5jCmluZGV4IDgyNjM2MjczZDcyNi4uOWM5 Y2VlYzNhMjA2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3BlcmYvcmlzY3ZfcG11X3NiaS5jCisrKyBi L2RyaXZlcnMvcGVyZi9yaXNjdl9wbXVfc2JpLmMKQEAgLTEwMTMsNyArMTAxMyw3IEBAIHN0YXRp YyB2b2lkIHJpc2N2X3BtdV91cGRhdGVfY291bnRlcl9hY2Nlc3Modm9pZCAqaW5mbykKIAkJY3Ny X3dyaXRlKENTUl9TQ09VTlRFUkVOLCAweDIpOwogfQogCi1zdGF0aWMgaW50IHJpc2N2X3BtdV9w cm9jX3VzZXJfYWNjZXNzX2hhbmRsZXIoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsCitzdGF0aWMg aW50IHJpc2N2X3BtdV9wcm9jX3VzZXJfYWNjZXNzX2hhbmRsZXIoY29uc3Qgc3RydWN0IGN0bF90 YWJsZSAqdGFibGUsCiAJCQkJCSAgICAgIGludCB3cml0ZSwgdm9pZCAqYnVmZmVyLAogCQkJCQkg ICAgICBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKZGlmZiAtLWdpdCBhL2ZzL2NvcmVk dW1wLmMgYi9mcy9jb3JlZHVtcC5jCmluZGV4IDhlYWUyNGFmYjNjYi4uYjRmNjgxMTdkMjAzIDEw MDY0NAotLS0gYS9mcy9jb3JlZHVtcC5jCisrKyBiL2ZzL2NvcmVkdW1wLmMKQEAgLTk4Niw3ICs5 ODYsNyBAQCB2b2lkIHZhbGlkYXRlX2NvcmVkdW1wX3NhZmV0eSh2b2lkKQogCX0KIH0KIAotc3Rh dGljIGludCBwcm9jX2Rvc3RyaW5nX2NvcmVkdW1wKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBp bnQgd3JpdGUsCitzdGF0aWMgaW50IHByb2NfZG9zdHJpbmdfY29yZWR1bXAoY29uc3Qgc3RydWN0 IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIAkJICB2b2lkICpidWZmZXIsIHNpemVfdCAq bGVucCwgbG9mZl90ICpwcG9zKQogewogCWludCBlcnJvciA9IHByb2NfZG9zdHJpbmcodGFibGUs IHdyaXRlLCBidWZmZXIsIGxlbnAsIHBwb3MpOwpkaWZmIC0tZ2l0IGEvZnMvZGNhY2hlLmMgYi9m cy9kY2FjaGUuYwppbmRleCA0MDcwOTUxODhmODMuLjVjNmFlNTdkMDMyMSAxMDA2NDQKLS0tIGEv ZnMvZGNhY2hlLmMKKysrIGIvZnMvZGNhY2hlLmMKQEAgLTE3NCw4ICsxNzQsOCBAQCBzdGF0aWMg bG9uZyBnZXRfbnJfZGVudHJ5X25lZ2F0aXZlKHZvaWQpCiAJcmV0dXJuIHN1bSA8IDAgPyAwIDog c3VtOwogfQogCi1zdGF0aWMgaW50IHByb2NfbnJfZGVudHJ5KHN0cnVjdCBjdGxfdGFibGUgKnRh YmxlLCBpbnQgd3JpdGUsIHZvaWQgKmJ1ZmZlciwKLQkJCSAgc2l6ZV90ICpsZW5wLCBsb2ZmX3Qg KnBwb3MpCitzdGF0aWMgaW50IHByb2NfbnJfZGVudHJ5KGNvbnN0IHN0cnVjdCBjdGxfdGFibGUg KnRhYmxlLCBpbnQgd3JpdGUsCisJCQkgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2Zm X3QgKnBwb3MpCiB7CiAJZGVudHJ5X3N0YXQubnJfZGVudHJ5ID0gZ2V0X25yX2RlbnRyeSgpOwog CWRlbnRyeV9zdGF0Lm5yX3VudXNlZCA9IGdldF9ucl9kZW50cnlfdW51c2VkKCk7CmRpZmYgLS1n aXQgYS9mcy9kcm9wX2NhY2hlcy5jIGIvZnMvZHJvcF9jYWNoZXMuYwppbmRleCBiOTU3NTk1N2E3 YzIuLmQ0NWVmNTQxZDg0OCAxMDA2NDQKLS0tIGEvZnMvZHJvcF9jYWNoZXMuYworKysgYi9mcy9k cm9wX2NhY2hlcy5jCkBAIC00OCw3ICs0OCw3IEBAIHN0YXRpYyB2b2lkIGRyb3BfcGFnZWNhY2hl X3NiKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHZvaWQgKnVudXNlZCkKIAlpcHV0KHRvcHV0X2lu b2RlKTsKIH0KIAotaW50IGRyb3BfY2FjaGVzX3N5c2N0bF9oYW5kbGVyKHN0cnVjdCBjdGxfdGFi bGUgKnRhYmxlLCBpbnQgd3JpdGUsCitpbnQgZHJvcF9jYWNoZXNfc3lzY3RsX2hhbmRsZXIoY29u c3Qgc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIAkJdm9pZCAqYnVmZmVyLCBz aXplX3QgKmxlbmd0aCwgbG9mZl90ICpwcG9zKQogewogCWludCByZXQ7CmRpZmYgLS1naXQgYS9m cy9leGVjLmMgYi9mcy9leGVjLmMKaW5kZXggNDAwNzMxNDIyODhmLi5iYTU5NDAyMTk0YzcgMTAw NjQ0Ci0tLSBhL2ZzL2V4ZWMuYworKysgYi9mcy9leGVjLmMKQEAgLTIxODEsOCArMjE4MSw4IEBA IENPTVBBVF9TWVNDQUxMX0RFRklORTUoZXhlY3ZlYXQsIGludCwgZmQsCiAKICNpZmRlZiBDT05G SUdfU1lTQ1RMCiAKLXN0YXRpYyBpbnQgcHJvY19kb2ludHZlY19taW5tYXhfY29yZWR1bXAoc3Ry dWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKLQkJdm9pZCAqYnVmZmVyLCBzaXplX3Qg KmxlbnAsIGxvZmZfdCAqcHBvcykKK3N0YXRpYyBpbnQgcHJvY19kb2ludHZlY19taW5tYXhfY29y ZWR1bXAoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqdGFibGUsCisJCWludCB3cml0ZSwgdm9pZCAq YnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlpbnQgZXJyb3IgPSBwcm9j X2RvaW50dmVjX21pbm1heCh0YWJsZSwgd3JpdGUsIGJ1ZmZlciwgbGVucCwgcHBvcyk7CiAKZGlm ZiAtLWdpdCBhL2ZzL2ZpbGVfdGFibGUuYyBiL2ZzL2ZpbGVfdGFibGUuYwppbmRleCA0ZjAzYmVl ZDQ3MzcuLmY1NDgwNDczNzI3ZSAxMDA2NDQKLS0tIGEvZnMvZmlsZV90YWJsZS5jCisrKyBiL2Zz L2ZpbGVfdGFibGUuYwpAQCAtOTYsOCArOTYsOCBAQCBFWFBPUlRfU1lNQk9MX0dQTChnZXRfbWF4 X2ZpbGVzKTsKIC8qCiAgKiBIYW5kbGUgbnJfZmlsZXMgc3lzY3RsCiAgKi8KLXN0YXRpYyBpbnQg cHJvY19ucl9maWxlcyhzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLCB2b2lkICpi dWZmZXIsCi0JCQkgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCitzdGF0aWMgaW50IHByb2Nf bnJfZmlsZXMoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKKwkJCSB2 b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQogewogCWZpbGVzX3N0YXQu bnJfZmlsZXMgPSBnZXRfbnJfZmlsZXMoKTsKIAlyZXR1cm4gcHJvY19kb3Vsb25ndmVjX21pbm1h eCh0YWJsZSwgd3JpdGUsIGJ1ZmZlciwgbGVucCwgcHBvcyk7CmRpZmYgLS1naXQgYS9mcy9mcy13 cml0ZWJhY2suYyBiL2ZzL2ZzLXdyaXRlYmFjay5jCmluZGV4IDkyYTViODI4MzUyOC4uYjg2NWEz ZmE1MmYzIDEwMDY0NAotLS0gYS9mcy9mcy13cml0ZWJhY2suYworKysgYi9mcy9mcy13cml0ZWJh Y2suYwpAQCAtMjQxMyw3ICsyNDEzLDcgQEAgc3RhdGljIGludCBfX2luaXQgc3RhcnRfZGlydHl0 aW1lX3dyaXRlYmFjayh2b2lkKQogfQogX19pbml0Y2FsbChzdGFydF9kaXJ0eXRpbWVfd3JpdGVi YWNrKTsKIAotaW50IGRpcnR5dGltZV9pbnRlcnZhbF9oYW5kbGVyKHN0cnVjdCBjdGxfdGFibGUg KnRhYmxlLCBpbnQgd3JpdGUsCitpbnQgZGlydHl0aW1lX2ludGVydmFsX2hhbmRsZXIoY29uc3Qg c3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIAkJCSAgICAgICB2b2lkICpidWZm ZXIsIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQogewogCWludCByZXQ7CmRpZmYgLS1naXQg YS9mcy9pbm9kZS5jIGIvZnMvaW5vZGUuYwppbmRleCAzYTQxZjgzYTRiYTUuLmE2MjI1MDNhOTky YyAxMDA2NDQKLS0tIGEvZnMvaW5vZGUuYworKysgYi9mcy9pbm9kZS5jCkBAIC0xMDcsOCArMTA3 LDggQEAgbG9uZyBnZXRfbnJfZGlydHlfaW5vZGVzKHZvaWQpCiAgKi8KIHN0YXRpYyBzdHJ1Y3Qg aW5vZGVzX3N0YXRfdCBpbm9kZXNfc3RhdDsKIAotc3RhdGljIGludCBwcm9jX25yX2lub2Rlcyhz dHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLCB2b2lkICpidWZmZXIsCi0JCQkgIHNp emVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQorc3RhdGljIGludCBwcm9jX25yX2lub2Rlcyhjb25z dCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAorCQkJICB2b2lkICpidWZmZXIs IHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQogewogCWlub2Rlc19zdGF0Lm5yX2lub2RlcyA9 IGdldF9ucl9pbm9kZXMoKTsKIAlpbm9kZXNfc3RhdC5ucl91bnVzZWQgPSBnZXRfbnJfaW5vZGVz X3VudXNlZCgpOwpkaWZmIC0tZ2l0IGEvZnMvcGlwZS5jIGIvZnMvcGlwZS5jCmluZGV4IDUwYzhh ODU5NmI1Mi4uN2RmZjJhYTUwYTZkIDEwMDY0NAotLS0gYS9mcy9waXBlLmMKKysrIGIvZnMvcGlw ZS5jCkBAIC0xNDY5LDcgKzE0NjksNyBAQCBzdGF0aWMgaW50IGRvX3Byb2NfZG9waXBlX21heF9z aXplX2NvbnYodW5zaWduZWQgbG9uZyAqbHZhbHAsCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBp bnQgcHJvY19kb3BpcGVfbWF4X3NpemUoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0 ZSwKK3N0YXRpYyBpbnQgcHJvY19kb3BpcGVfbWF4X3NpemUoY29uc3Qgc3RydWN0IGN0bF90YWJs ZSAqdGFibGUsIGludCB3cml0ZSwKIAkJCQl2b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCwgbG9m Zl90ICpwcG9zKQogewogCXJldHVybiBkb19wcm9jX2RvdWludHZlYyh0YWJsZSwgd3JpdGUsIGJ1 ZmZlciwgbGVucCwgcHBvcywKZGlmZiAtLWdpdCBhL2ZzL3F1b3RhL2RxdW90LmMgYi9mcy9xdW90 YS9kcXVvdC5jCmluZGV4IDYyN2ViMmY3MmVmMy4uNGMzOTM2YjhmN2I2IDEwMDY0NAotLS0gYS9m cy9xdW90YS9kcXVvdC5jCisrKyBiL2ZzL3F1b3RhL2RxdW90LmMKQEAgLTI5MTcsNyArMjkxNyw3 IEBAIGNvbnN0IHN0cnVjdCBxdW90YWN0bF9vcHMgZHF1b3RfcXVvdGFjdGxfc3lzZmlsZV9vcHMg PSB7CiB9OwogRVhQT1JUX1NZTUJPTChkcXVvdF9xdW90YWN0bF9zeXNmaWxlX29wcyk7CiAKLXN0 YXRpYyBpbnQgZG9fcHJvY19kcXN0YXRzKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3Jp dGUsCitzdGF0aWMgaW50IGRvX3Byb2NfZHFzdGF0cyhjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0 YWJsZSwgaW50IHdyaXRlLAogCQkgICAgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2Zm X3QgKnBwb3MpCiB7CiAJdW5zaWduZWQgaW50IHR5cGUgPSAodW5zaWduZWQgbG9uZyAqKXRhYmxl LT5kYXRhIC0gZHFzdGF0cy5zdGF0OwpkaWZmIC0tZ2l0IGEvZnMveGZzL3hmc19zeXNjdGwuYyBi L2ZzL3hmcy94ZnNfc3lzY3RsLmMKaW5kZXggYTE5MWY2NTYwZjk4Li5jODRkZjIzYjQ5NGQgMTAw NjQ0Ci0tLSBhL2ZzL3hmcy94ZnNfc3lzY3RsLmMKKysrIGIvZnMveGZzL3hmc19zeXNjdGwuYwpA QCAtMTEsNyArMTEsNyBAQCBzdGF0aWMgc3RydWN0IGN0bF90YWJsZV9oZWFkZXIgKnhmc190YWJs ZV9oZWFkZXI7CiAjaWZkZWYgQ09ORklHX1BST0NfRlMKIFNUQVRJQyBpbnQKIHhmc19zdGF0c19j bGVhcl9wcm9jX2hhbmRsZXIoCi0Jc3RydWN0IGN0bF90YWJsZQkqY3RsLAorCWNvbnN0IHN0cnVj dCBjdGxfdGFibGUJKmN0bCwKIAlpbnQJCQl3cml0ZSwKIAl2b2lkCQkJKmJ1ZmZlciwKIAlzaXpl X3QJCQkqbGVucCwKQEAgLTMxLDcgKzMxLDcgQEAgeGZzX3N0YXRzX2NsZWFyX3Byb2NfaGFuZGxl cigKIAogU1RBVElDIGludAogeGZzX3BhbmljX21hc2tfcHJvY19oYW5kbGVyKAotCXN0cnVjdCBj dGxfdGFibGUJKmN0bCwKKwljb25zdCBzdHJ1Y3QgY3RsX3RhYmxlCSpjdGwsCiAJaW50CQkJd3Jp dGUsCiAJdm9pZAkJCSpidWZmZXIsCiAJc2l6ZV90CQkJKmxlbnAsCkBAIC01Miw3ICs1Miw3IEBA IHhmc19wYW5pY19tYXNrX3Byb2NfaGFuZGxlcigKIAogU1RBVElDIGludAogeGZzX2RlcHJlY2F0 ZWRfZG9pbnR2ZWNfbWlubWF4KAotCXN0cnVjdCBjdGxfdGFibGUJKmN0bCwKKwljb25zdCBzdHJ1 Y3QgY3RsX3RhYmxlCSpjdGwsCiAJaW50CQkJd3JpdGUsCiAJdm9pZAkJCSpidWZmZXIsCiAJc2l6 ZV90CQkJKmxlbnAsCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2Z0cmFjZS5oIGIvaW5jbHVk ZS9saW51eC9mdHJhY2UuaAppbmRleCA1NGQ1M2YzNDVkMTQuLmMzYWYyZTU5NDdhYSAxMDA2NDQK LS0tIGEvaW5jbHVkZS9saW51eC9mdHJhY2UuaAorKysgYi9pbmNsdWRlL2xpbnV4L2Z0cmFjZS5o CkBAIC00NzAsNyArNDcwLDcgQEAgc3RhdGljIGlubGluZSB2b2lkIGFyY2hfZnRyYWNlX3NldF9k aXJlY3RfY2FsbGVyKHN0cnVjdCBmdHJhY2VfcmVncyAqZnJlZ3MsCiAKIGV4dGVybiBpbnQgc3Rh Y2tfdHJhY2VyX2VuYWJsZWQ7CiAKLWludCBzdGFja190cmFjZV9zeXNjdGwoc3RydWN0IGN0bF90 YWJsZSAqdGFibGUsIGludCB3cml0ZSwgdm9pZCAqYnVmZmVyLAoraW50IHN0YWNrX3RyYWNlX3N5 c2N0bChjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLCB2b2lkICpidWZm ZXIsCiAJCSAgICAgICBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcyk7CiAKIC8qIERPIE5PVCBN T0RJRlkgVEhJUyBWQVJJQUJMRSBESVJFQ1RMWSEgKi8KQEAgLTExNTksNyArMTE1OSw3IEBAIGV4 dGVybiBpbnQgdHJhY2Vwb2ludF9wcmludGs7CiBleHRlcm4gdm9pZCBkaXNhYmxlX3RyYWNlX29u X3dhcm5pbmcodm9pZCk7CiBleHRlcm4gaW50IF9fZGlzYWJsZV90cmFjZV9vbl93YXJuaW5nOwog Ci1pbnQgdHJhY2Vwb2ludF9wcmludGtfc3lzY3RsKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBp bnQgd3JpdGUsCitpbnQgdHJhY2Vwb2ludF9wcmludGtfc3lzY3RsKGNvbnN0IHN0cnVjdCBjdGxf dGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJCQkgICAgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICps ZW5wLCBsb2ZmX3QgKnBwb3MpOwogCiAjZWxzZSAvKiBDT05GSUdfVFJBQ0lORyAqLwpkaWZmIC0t Z2l0IGEvaW5jbHVkZS9saW51eC9tbS5oIGIvaW5jbHVkZS9saW51eC9tbS5oCmluZGV4IGRjMzNm ODI2OWZiNS4uODI4ZDk3YzIzODM0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L21tLmgKKysr IGIvaW5jbHVkZS9saW51eC9tbS5oCkBAIC0yMDQsMTEgKzIwNCwxMSBAQCBleHRlcm4gaW50IHN5 c2N0bF9vdmVyY29tbWl0X21lbW9yeTsKIGV4dGVybiBpbnQgc3lzY3RsX292ZXJjb21taXRfcmF0 aW87CiBleHRlcm4gdW5zaWduZWQgbG9uZyBzeXNjdGxfb3ZlcmNvbW1pdF9rYnl0ZXM7CiAKLWlu dCBvdmVyY29tbWl0X3JhdGlvX2hhbmRsZXIoc3RydWN0IGN0bF90YWJsZSAqLCBpbnQsIHZvaWQg Kiwgc2l6ZV90ICosCitpbnQgb3ZlcmNvbW1pdF9yYXRpb19oYW5kbGVyKGNvbnN0IHN0cnVjdCBj dGxfdGFibGUgKiwgaW50LCB2b2lkICosIHNpemVfdCAqLAogCQlsb2ZmX3QgKik7Ci1pbnQgb3Zl cmNvbW1pdF9rYnl0ZXNfaGFuZGxlcihzdHJ1Y3QgY3RsX3RhYmxlICosIGludCwgdm9pZCAqLCBz aXplX3QgKiwKK2ludCBvdmVyY29tbWl0X2tieXRlc19oYW5kbGVyKGNvbnN0IHN0cnVjdCBjdGxf dGFibGUgKiwgaW50LCB2b2lkICosIHNpemVfdCAqLAogCQlsb2ZmX3QgKik7Ci1pbnQgb3ZlcmNv bW1pdF9wb2xpY3lfaGFuZGxlcihzdHJ1Y3QgY3RsX3RhYmxlICosIGludCwgdm9pZCAqLCBzaXpl X3QgKiwKK2ludCBvdmVyY29tbWl0X3BvbGljeV9oYW5kbGVyKGNvbnN0IHN0cnVjdCBjdGxfdGFi bGUgKiwgaW50LCB2b2lkICosIHNpemVfdCAqLAogCQlsb2ZmX3QgKik7CiAKICNpZiBkZWZpbmVk KENPTkZJR19TUEFSU0VNRU0pICYmICFkZWZpbmVkKENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUCkK QEAgLTM4OTcsNyArMzg5Nyw3IEBAIGV4dGVybiBib29sIHByb2Nlc3Nfc2hhcmVzX21tKHN0cnVj dCB0YXNrX3N0cnVjdCAqcCwgc3RydWN0IG1tX3N0cnVjdCAqbW0pOwogCiAjaWZkZWYgQ09ORklH X1NZU0NUTAogZXh0ZXJuIGludCBzeXNjdGxfZHJvcF9jYWNoZXM7Ci1pbnQgZHJvcF9jYWNoZXNf c3lzY3RsX2hhbmRsZXIoc3RydWN0IGN0bF90YWJsZSAqLCBpbnQsIHZvaWQgKiwgc2l6ZV90ICos CitpbnQgZHJvcF9jYWNoZXNfc3lzY3RsX2hhbmRsZXIoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAq LCBpbnQsIHZvaWQgKiwgc2l6ZV90ICosCiAJCWxvZmZfdCAqKTsKICNlbmRpZgogCmRpZmYgLS1n aXQgYS9pbmNsdWRlL2xpbnV4L3BlcmZfZXZlbnQuaCBiL2luY2x1ZGUvbGludXgvcGVyZl9ldmVu dC5oCmluZGV4IGE1MzA0YWU4YzY1NC4uY2UxMDJhYWMxMWMwIDEwMDY0NAotLS0gYS9pbmNsdWRl L2xpbnV4L3BlcmZfZXZlbnQuaAorKysgYi9pbmNsdWRlL2xpbnV4L3BlcmZfZXZlbnQuaApAQCAt MTU4NywxMSArMTU4NywxMSBAQCBleHRlcm4gaW50IHN5c2N0bF9wZXJmX2NwdV90aW1lX21heF9w ZXJjZW50OwogCiBleHRlcm4gdm9pZCBwZXJmX3NhbXBsZV9ldmVudF90b29rKHU2NCBzYW1wbGVf bGVuX25zKTsKIAotaW50IHBlcmZfZXZlbnRfbWF4X3NhbXBsZV9yYXRlX2hhbmRsZXIoc3RydWN0 IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKK2ludCBwZXJmX2V2ZW50X21heF9zYW1wbGVf cmF0ZV9oYW5kbGVyKGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJ CXZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpOwotaW50IHBlcmZfY3B1 X3RpbWVfbWF4X3BlcmNlbnRfaGFuZGxlcihzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdy aXRlLAoraW50IHBlcmZfY3B1X3RpbWVfbWF4X3BlcmNlbnRfaGFuZGxlcihjb25zdCBzdHJ1Y3Qg Y3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCQl2b2lkICpidWZmZXIsIHNpemVfdCAqbGVu cCwgbG9mZl90ICpwcG9zKTsKLWludCBwZXJmX2V2ZW50X21heF9zdGFja19oYW5kbGVyKHN0cnVj dCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCitpbnQgcGVyZl9ldmVudF9tYXhfc3RhY2tf aGFuZGxlcihjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCQl2b2lk ICpidWZmZXIsIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKTsKIAogLyogQWNjZXNzIHRvIHBl cmZfZXZlbnRfb3BlbigyKSBzeXNjYWxsLiAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9z ZWN1cml0eS5oIGIvaW5jbHVkZS9saW51eC9zZWN1cml0eS5oCmluZGV4IDIxY2Y3MDM0NmIzMy4u OTY3OTlmZjU3MjMwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3NlY3VyaXR5LmgKKysrIGIv aW5jbHVkZS9saW51eC9zZWN1cml0eS5oCkBAIC0yMjgsNyArMjI4LDcgQEAgc3RydWN0IHJlcXVl c3Rfc29jazsKICNkZWZpbmUgTFNNX1VOU0FGRV9OT19ORVdfUFJJVlMJNAogCiAjaWZkZWYgQ09O RklHX01NVQotZXh0ZXJuIGludCBtbWFwX21pbl9hZGRyX2hhbmRsZXIoc3RydWN0IGN0bF90YWJs ZSAqdGFibGUsIGludCB3cml0ZSwKK2V4dGVybiBpbnQgbW1hcF9taW5fYWRkcl9oYW5kbGVyKGNv bnN0IHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJCQkJIHZvaWQgKmJ1ZmZl ciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL2lu Y2x1ZGUvbGludXgvc3lzY3RsLmggYi9pbmNsdWRlL2xpbnV4L3N5c2N0bC5oCmluZGV4IDU0ZmJl YzA2Mjc3Mi4uYWE0YzZkNDRhYWEwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3N5c2N0bC5o CisrKyBiL2luY2x1ZGUvbGludXgvc3lzY3RsLmgKQEAgLTYxLDMxICs2MSwzMSBAQCBleHRlcm4g Y29uc3QgaW50IHN5c2N0bF92YWxzW107CiAKIGV4dGVybiBjb25zdCB1bnNpZ25lZCBsb25nIHN5 c2N0bF9sb25nX3ZhbHNbXTsKIAotdHlwZWRlZiBpbnQgcHJvY19oYW5kbGVyKHN0cnVjdCBjdGxf dGFibGUgKmN0bCwgaW50IHdyaXRlLCB2b2lkICpidWZmZXIsCit0eXBlZGVmIGludCBwcm9jX2hh bmRsZXIoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsIHZvaWQgKmJ1ZmZl ciwKIAkJc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpOwogCi1pbnQgcHJvY19kb3N0cmluZyhz dHJ1Y3QgY3RsX3RhYmxlICosIGludCwgdm9pZCAqLCBzaXplX3QgKiwgbG9mZl90ICopOwotaW50 IHByb2NfZG9ib29sKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsIHZvaWQgKmJ1 ZmZlciwKK2ludCBwcm9jX2Rvc3RyaW5nKGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKiwgaW50LCB2 b2lkICosIHNpemVfdCAqLCBsb2ZmX3QgKik7CitpbnQgcHJvY19kb2Jvb2woY29uc3Qgc3RydWN0 IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwgdm9pZCAqYnVmZmVyLAogCQlzaXplX3QgKmxl bnAsIGxvZmZfdCAqcHBvcyk7Ci1pbnQgcHJvY19kb2ludHZlYyhzdHJ1Y3QgY3RsX3RhYmxlICos IGludCwgdm9pZCAqLCBzaXplX3QgKiwgbG9mZl90ICopOwotaW50IHByb2NfZG91aW50dmVjKHN0 cnVjdCBjdGxfdGFibGUgKiwgaW50LCB2b2lkICosIHNpemVfdCAqLCBsb2ZmX3QgKik7Ci1pbnQg cHJvY19kb2ludHZlY19taW5tYXgoc3RydWN0IGN0bF90YWJsZSAqLCBpbnQsIHZvaWQgKiwgc2l6 ZV90ICosIGxvZmZfdCAqKTsKLWludCBwcm9jX2RvdWludHZlY19taW5tYXgoc3RydWN0IGN0bF90 YWJsZSAqdGFibGUsIGludCB3cml0ZSwgdm9pZCAqYnVmZmVyLAoraW50IHByb2NfZG9pbnR2ZWMo Y29uc3Qgc3RydWN0IGN0bF90YWJsZSAqLCBpbnQsIHZvaWQgKiwgc2l6ZV90ICosIGxvZmZfdCAq KTsKK2ludCBwcm9jX2RvdWludHZlYyhjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICosIGludCwgdm9p ZCAqLCBzaXplX3QgKiwgbG9mZl90ICopOworaW50IHByb2NfZG9pbnR2ZWNfbWlubWF4KGNvbnN0 IHN0cnVjdCBjdGxfdGFibGUgKiwgaW50LCB2b2lkICosIHNpemVfdCAqLCBsb2ZmX3QgKik7Citp bnQgcHJvY19kb3VpbnR2ZWNfbWlubWF4KGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBp bnQgd3JpdGUsIHZvaWQgKmJ1ZmZlciwKIAkJc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpOwot aW50IHByb2NfZG91OHZlY19taW5tYXgoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0 ZSwgdm9pZCAqYnVmZmVyLAoraW50IHByb2NfZG91OHZlY19taW5tYXgoY29uc3Qgc3RydWN0IGN0 bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwgdm9pZCAqYnVmZmVyLAogCQkJc2l6ZV90ICpsZW5w LCBsb2ZmX3QgKnBwb3MpOwotaW50IHByb2NfZG9pbnR2ZWNfamlmZmllcyhzdHJ1Y3QgY3RsX3Rh YmxlICosIGludCwgdm9pZCAqLCBzaXplX3QgKiwgbG9mZl90ICopOwotaW50IHByb2NfZG9pbnR2 ZWNfbXNfamlmZmllc19taW5tYXgoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwK K2ludCBwcm9jX2RvaW50dmVjX2ppZmZpZXMoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqLCBpbnQs IHZvaWQgKiwgc2l6ZV90ICosIGxvZmZfdCAqKTsKK2ludCBwcm9jX2RvaW50dmVjX21zX2ppZmZp ZXNfbWlubWF4KGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJCXZv aWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpOwotaW50IHByb2NfZG9pbnR2 ZWNfdXNlcmh6X2ppZmZpZXMoc3RydWN0IGN0bF90YWJsZSAqLCBpbnQsIHZvaWQgKiwgc2l6ZV90 ICosCitpbnQgcHJvY19kb2ludHZlY191c2VyaHpfamlmZmllcyhjb25zdCBzdHJ1Y3QgY3RsX3Rh YmxlICosIGludCwgdm9pZCAqLCBzaXplX3QgKiwKIAkJbG9mZl90ICopOwotaW50IHByb2NfZG9p bnR2ZWNfbXNfamlmZmllcyhzdHJ1Y3QgY3RsX3RhYmxlICosIGludCwgdm9pZCAqLCBzaXplX3Qg KiwKK2ludCBwcm9jX2RvaW50dmVjX21zX2ppZmZpZXMoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAq LCBpbnQsIHZvaWQgKiwgc2l6ZV90ICosCiAJCWxvZmZfdCAqKTsKLWludCBwcm9jX2RvdWxvbmd2 ZWNfbWlubWF4KHN0cnVjdCBjdGxfdGFibGUgKiwgaW50LCB2b2lkICosIHNpemVfdCAqLCBsb2Zm X3QgKik7Ci1pbnQgcHJvY19kb3Vsb25ndmVjX21zX2ppZmZpZXNfbWlubWF4KHN0cnVjdCBjdGxf dGFibGUgKnRhYmxlLCBpbnQsIHZvaWQgKiwKK2ludCBwcm9jX2RvdWxvbmd2ZWNfbWlubWF4KGNv bnN0IHN0cnVjdCBjdGxfdGFibGUgKiwgaW50LCB2b2lkICosIHNpemVfdCAqLCBsb2ZmX3QgKik7 CitpbnQgcHJvY19kb3Vsb25ndmVjX21zX2ppZmZpZXNfbWlubWF4KGNvbnN0IHN0cnVjdCBjdGxf dGFibGUgKnRhYmxlLCBpbnQsIHZvaWQgKiwKIAkJc2l6ZV90ICosIGxvZmZfdCAqKTsKLWludCBw cm9jX2RvX2xhcmdlX2JpdG1hcChzdHJ1Y3QgY3RsX3RhYmxlICosIGludCwgdm9pZCAqLCBzaXpl X3QgKiwgbG9mZl90ICopOwotaW50IHByb2NfZG9fc3RhdGljX2tleShzdHJ1Y3QgY3RsX3RhYmxl ICp0YWJsZSwgaW50IHdyaXRlLCB2b2lkICpidWZmZXIsCitpbnQgcHJvY19kb19sYXJnZV9iaXRt YXAoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqLCBpbnQsIHZvaWQgKiwgc2l6ZV90ICosIGxvZmZf dCAqKTsKK2ludCBwcm9jX2RvX3N0YXRpY19rZXkoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqdGFi bGUsIGludCB3cml0ZSwgdm9pZCAqYnVmZmVyLAogCQlzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBv cyk7CiAKIC8qCkBAIC0yODcsNyArMjg3LDcgQEAgc3RhdGljIGlubGluZSBib29sIHN5c2N0bF9p c19hbGlhcyhjaGFyICpwYXJhbSkKIH0KICNlbmRpZiAvKiBDT05GSUdfU1lTQ1RMICovCiAKLWlu dCBzeXNjdGxfbWF4X3RocmVhZHMoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwg dm9pZCAqYnVmZmVyLAoraW50IHN5c2N0bF9tYXhfdGhyZWFkcyhjb25zdCBzdHJ1Y3QgY3RsX3Rh YmxlICp0YWJsZSwgaW50IHdyaXRlLCB2b2lkICpidWZmZXIsCiAJCXNpemVfdCAqbGVucCwgbG9m Zl90ICpwcG9zKTsKIAogI2VuZGlmIC8qIF9MSU5VWF9TWVNDVExfSCAqLwpkaWZmIC0tZ2l0IGEv aW5jbHVkZS9saW51eC92bXN0YXQuaCBiL2luY2x1ZGUvbGludXgvdm1zdGF0LmgKaW5kZXggNzM1 ZWFlNmUyNzJjLi43ZGEyNmQxYWVhMTIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvdm1zdGF0 LmgKKysrIGIvaW5jbHVkZS9saW51eC92bXN0YXQuaApAQCAtMTcsNyArMTcsNyBAQCBleHRlcm4g aW50IHN5c2N0bF9zdGF0X2ludGVydmFsOwogI2RlZmluZSBESVNBQkxFX05VTUFfU1RBVCAgIDAK IGV4dGVybiBpbnQgc3lzY3RsX3ZtX251bWFfc3RhdDsKIERFQ0xBUkVfU1RBVElDX0tFWV9UUlVF KHZtX251bWFfc3RhdF9rZXkpOwotaW50IHN5c2N0bF92bV9udW1hX3N0YXRfaGFuZGxlcihzdHJ1 Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAoraW50IHN5c2N0bF92bV9udW1hX3N0YXRf aGFuZGxlcihjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCQl2b2lk ICpidWZmZXIsIHNpemVfdCAqbGVuZ3RoLCBsb2ZmX3QgKnBwb3MpOwogI2VuZGlmCiAKQEAgLTMw MSw4ICszMDEsOCBAQCB2b2lkIGNwdV92bV9zdGF0c19mb2xkKGludCBjcHUpOwogdm9pZCByZWZy ZXNoX3pvbmVfc3RhdF90aHJlc2hvbGRzKHZvaWQpOwogCiBzdHJ1Y3QgY3RsX3RhYmxlOwotaW50 IHZtc3RhdF9yZWZyZXNoKHN0cnVjdCBjdGxfdGFibGUgKiwgaW50IHdyaXRlLCB2b2lkICpidWZm ZXIsIHNpemVfdCAqbGVucCwKLQkJbG9mZl90ICpwcG9zKTsKK2ludCB2bXN0YXRfcmVmcmVzaChj b25zdCBzdHJ1Y3QgY3RsX3RhYmxlICosIGludCB3cml0ZSwgdm9pZCAqYnVmZmVyLAorCQkgICBz aXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcyk7CiAKIHZvaWQgZHJhaW5fem9uZXN0YXQoc3RydWN0 IHpvbmUgKnpvbmUsIHN0cnVjdCBwZXJfY3B1X3pvbmVzdGF0ICopOwogCmRpZmYgLS1naXQgYS9p bmNsdWRlL2xpbnV4L3dyaXRlYmFjay5oIGIvaW5jbHVkZS9saW51eC93cml0ZWJhY2suaAppbmRl eCAxMTJkODA2ZGRiZTQuLjFhNTQ2NzZkODQzYSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC93 cml0ZWJhY2suaAorKysgYi9pbmNsdWRlL2xpbnV4L3dyaXRlYmFjay5oCkBAIC0zNTAsNyArMzUw LDcgQEAgZXh0ZXJuIHVuc2lnbmVkIGludCBkaXJ0eV9leHBpcmVfaW50ZXJ2YWw7CiBleHRlcm4g dW5zaWduZWQgaW50IGRpcnR5dGltZV9leHBpcmVfaW50ZXJ2YWw7CiBleHRlcm4gaW50IGxhcHRv cF9tb2RlOwogCi1pbnQgZGlydHl0aW1lX2ludGVydmFsX2hhbmRsZXIoc3RydWN0IGN0bF90YWJs ZSAqdGFibGUsIGludCB3cml0ZSwKK2ludCBkaXJ0eXRpbWVfaW50ZXJ2YWxfaGFuZGxlcihjb25z dCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCQl2b2lkICpidWZmZXIsIHNp emVfdCAqbGVucCwgbG9mZl90ICpwcG9zKTsKIAogdm9pZCBnbG9iYWxfZGlydHlfbGltaXRzKHVu c2lnbmVkIGxvbmcgKnBiYWNrZ3JvdW5kLCB1bnNpZ25lZCBsb25nICpwZGlydHkpOwpkaWZmIC0t Z2l0IGEvaW5jbHVkZS9uZXQvbmRpc2MuaCBiL2luY2x1ZGUvbmV0L25kaXNjLmgKaW5kZXggOWJi ZGY2ZWFhOTQyLi43YTUzM2Q1YjFkNTkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L25kaXNjLmgK KysrIGIvaW5jbHVkZS9uZXQvbmRpc2MuaApAQCAtNDg2LDcgKzQ4Niw3IEBAIHZvaWQgaWdtcDZf ZXZlbnRfcmVwb3J0KHN0cnVjdCBza19idWZmICpza2IpOwogCiAKICNpZmRlZiBDT05GSUdfU1lT Q1RMCi1pbnQgbmRpc2NfaWZpbmZvX3N5c2N0bF9jaGFuZ2Uoc3RydWN0IGN0bF90YWJsZSAqY3Rs LCBpbnQgd3JpdGUsCitpbnQgbmRpc2NfaWZpbmZvX3N5c2N0bF9jaGFuZ2UoY29uc3Qgc3RydWN0 IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsCiAJCQkgICAgICAgdm9pZCAqYnVmZmVyLCBzaXpl X3QgKmxlbnAsIGxvZmZfdCAqcHBvcyk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9u ZXQvbmVpZ2hib3VyLmggYi9pbmNsdWRlL25ldC9uZWlnaGJvdXIuaAppbmRleCAwZDI4MTcyMTkz ZmEuLmE0NGYyNjJhNzM4NCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvbmVpZ2hib3VyLmgKKysr IGIvaW5jbHVkZS9uZXQvbmVpZ2hib3VyLmgKQEAgLTQxMiwxMiArNDEyLDEyIEBAIHZvaWQgKm5l aWdoX3NlcV9zdGFydChzdHJ1Y3Qgc2VxX2ZpbGUgKiwgbG9mZl90ICosIHN0cnVjdCBuZWlnaF90 YWJsZSAqLAogdm9pZCAqbmVpZ2hfc2VxX25leHQoc3RydWN0IHNlcV9maWxlICosIHZvaWQgKiwg bG9mZl90ICopOwogdm9pZCBuZWlnaF9zZXFfc3RvcChzdHJ1Y3Qgc2VxX2ZpbGUgKiwgdm9pZCAq KTsKIAotaW50IG5laWdoX3Byb2NfZG9pbnR2ZWMoc3RydWN0IGN0bF90YWJsZSAqY3RsLCBpbnQg d3JpdGUsCitpbnQgbmVpZ2hfcHJvY19kb2ludHZlYyhjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICpj dGwsIGludCB3cml0ZSwKIAkJCXZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBw b3MpOwotaW50IG5laWdoX3Byb2NfZG9pbnR2ZWNfamlmZmllcyhzdHJ1Y3QgY3RsX3RhYmxlICpj dGwsIGludCB3cml0ZSwKK2ludCBuZWlnaF9wcm9jX2RvaW50dmVjX2ppZmZpZXMoY29uc3Qgc3Ry dWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsCiAJCQkJdm9pZCAqYnVmZmVyLAogCQkJCXNp emVfdCAqbGVucCwgbG9mZl90ICpwcG9zKTsKLWludCBuZWlnaF9wcm9jX2RvaW50dmVjX21zX2pp ZmZpZXMoc3RydWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsCitpbnQgbmVpZ2hfcHJvY19k b2ludHZlY19tc19qaWZmaWVzKGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKmN0bCwgaW50IHdyaXRl LAogCQkJCSAgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpOwogCiBp bnQgbmVpZ2hfc3lzY3RsX3JlZ2lzdGVyKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBu ZWlnaF9wYXJtcyAqcCwKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L25ldGZpbHRlci9uZl9ob29r c19sd3R1bm5lbC5oIGIvaW5jbHVkZS9uZXQvbmV0ZmlsdGVyL25mX2hvb2tzX2x3dHVubmVsLmgK aW5kZXggNTJlMjc5MjBmODI5Li5jZWY3YTRlYjhmOTcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0 L25ldGZpbHRlci9uZl9ob29rc19sd3R1bm5lbC5oCisrKyBiL2luY2x1ZGUvbmV0L25ldGZpbHRl ci9uZl9ob29rc19sd3R1bm5lbC5oCkBAIC0yLDYgKzIsNiBAQAogI2luY2x1ZGUgPGxpbnV4L3R5 cGVzLmg+CiAKICNpZmRlZiBDT05GSUdfU1lTQ1RMCi1pbnQgbmZfaG9va3NfbHd0dW5uZWxfc3lz Y3RsX2hhbmRsZXIoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKK2ludCBuZl9o b29rc19sd3R1bm5lbF9zeXNjdGxfaGFuZGxlcihjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJs ZSwgaW50IHdyaXRlLAogCQkJCSAgICAgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZf dCAqcHBvcyk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2lwYy9pcGNfc3lzY3RsLmMgYi9pcGMvaXBj X3N5c2N0bC5jCmluZGV4IDk0NjViMGFlNDcwYi4uNWQzODNhOWE1MjBlIDEwMDY0NAotLS0gYS9p cGMvaXBjX3N5c2N0bC5jCisrKyBiL2lwYy9pcGNfc3lzY3RsLmMKQEAgLTE3LDggKzE3LDggQEAK ICNpbmNsdWRlIDxsaW51eC9jcmVkLmg+CiAjaW5jbHVkZSAidXRpbC5oIgogCi1zdGF0aWMgaW50 IHByb2NfaXBjX2RvaW50dmVjX21pbm1heF9vcnBoYW5zKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxl LCBpbnQgd3JpdGUsCi0JCXZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3Mp CitzdGF0aWMgaW50IHByb2NfaXBjX2RvaW50dmVjX21pbm1heF9vcnBoYW5zKGNvbnN0IHN0cnVj dCBjdGxfdGFibGUgKnRhYmxlLAorCQlpbnQgd3JpdGUsIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICps ZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJc3RydWN0IGlwY19uYW1lc3BhY2UgKm5zID0KIAkJY29u dGFpbmVyX29mKHRhYmxlLT5kYXRhLCBzdHJ1Y3QgaXBjX25hbWVzcGFjZSwgc2htX3JtaWRfZm9y Y2VkKTsKQEAgLTMzLDcgKzMzLDcgQEAgc3RhdGljIGludCBwcm9jX2lwY19kb2ludHZlY19taW5t YXhfb3JwaGFucyhzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCXJldHVybiBl cnI7CiB9CiAKLXN0YXRpYyBpbnQgcHJvY19pcGNfYXV0b19tc2dtbmkoc3RydWN0IGN0bF90YWJs ZSAqdGFibGUsIGludCB3cml0ZSwKK3N0YXRpYyBpbnQgcHJvY19pcGNfYXV0b19tc2dtbmkoY29u c3Qgc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIAkJdm9pZCAqYnVmZmVyLCBz aXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlzdHJ1Y3QgY3RsX3RhYmxlIGlwY190YWJs ZTsKQEAgLTQ4LDcgKzQ4LDcgQEAgc3RhdGljIGludCBwcm9jX2lwY19hdXRvX21zZ21uaShzdHJ1 Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCXJldHVybiBwcm9jX2RvaW50dmVjX21p bm1heCgmaXBjX3RhYmxlLCB3cml0ZSwgYnVmZmVyLCBsZW5wLCBwcG9zKTsKIH0KIAotc3RhdGlj IGludCBwcm9jX2lwY19zZW1fZG9pbnR2ZWMoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3 cml0ZSwKK3N0YXRpYyBpbnQgcHJvY19pcGNfc2VtX2RvaW50dmVjKGNvbnN0IHN0cnVjdCBjdGxf dGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxv ZmZfdCAqcHBvcykKIHsKIAlzdHJ1Y3QgaXBjX25hbWVzcGFjZSAqbnMgPQpkaWZmIC0tZ2l0IGEv a2VybmVsL2JwZi9zeXNjYWxsLmMgYi9rZXJuZWwvYnBmL3N5c2NhbGwuYwppbmRleCA3ZGNkN2Yx NzRiYjEuLjkzZDFmODU2ZjNkNCAxMDA2NDQKLS0tIGEva2VybmVsL2JwZi9zeXNjYWxsLmMKKysr IGIva2VybmVsL2JwZi9zeXNjYWxsLmMKQEAgLTU5MzcsNyArNTkzNyw3IEBAIGNvbnN0IHN0cnVj dCBicGZfcHJvZ19vcHMgYnBmX3N5c2NhbGxfcHJvZ19vcHMgPSB7CiB9OwogCiAjaWZkZWYgQ09O RklHX1NZU0NUTAotc3RhdGljIGludCBicGZfc3RhdHNfaGFuZGxlcihzdHJ1Y3QgY3RsX3RhYmxl ICp0YWJsZSwgaW50IHdyaXRlLAorc3RhdGljIGludCBicGZfc3RhdHNfaGFuZGxlcihjb25zdCBz dHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCQkJICAgICB2b2lkICpidWZmZXIs IHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQogewogCXN0cnVjdCBzdGF0aWNfa2V5ICprZXkg PSAoc3RydWN0IHN0YXRpY19rZXkgKil0YWJsZS0+ZGF0YTsKQEAgLTU5NzIsNyArNTk3Miw3IEBA IHZvaWQgX193ZWFrIHVucHJpdl9lYnBmX25vdGlmeShpbnQgbmV3X3N0YXRlKQogewogfQogCi1z dGF0aWMgaW50IGJwZl91bnByaXZfaGFuZGxlcihzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50 IHdyaXRlLAorc3RhdGljIGludCBicGZfdW5wcml2X2hhbmRsZXIoY29uc3Qgc3RydWN0IGN0bF90 YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIAkJCSAgICAgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICps ZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJaW50IHJldCwgdW5wcml2X2VuYWJsZSA9ICooaW50ICop dGFibGUtPmRhdGE7CmRpZmYgLS1naXQgYS9rZXJuZWwvZGVsYXlhY2N0LmMgYi9rZXJuZWwvZGVs YXlhY2N0LmMKaW5kZXggZTAzOWIwZjk5YTBiLi41Y2M0ZTBlZjQxMjggMTAwNjQ0Ci0tLSBhL2tl cm5lbC9kZWxheWFjY3QuYworKysgYi9rZXJuZWwvZGVsYXlhY2N0LmMKQEAgLTQ0LDggKzQ0LDgg QEAgdm9pZCBkZWxheWFjY3RfaW5pdCh2b2lkKQogfQogCiAjaWZkZWYgQ09ORklHX1BST0NfU1lT Q1RMCi1zdGF0aWMgaW50IHN5c2N0bF9kZWxheWFjY3Qoc3RydWN0IGN0bF90YWJsZSAqdGFibGUs IGludCB3cml0ZSwgdm9pZCAqYnVmZmVyLAotCQkgICAgIHNpemVfdCAqbGVucCwgbG9mZl90ICpw cG9zKQorc3RhdGljIGludCBzeXNjdGxfZGVsYXlhY2N0KGNvbnN0IHN0cnVjdCBjdGxfdGFibGUg KnRhYmxlLCBpbnQgd3JpdGUsCisJCQkgICAgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxv ZmZfdCAqcHBvcykKIHsKIAlpbnQgc3RhdGUgPSBkZWxheWFjY3Rfb247CiAJc3RydWN0IGN0bF90 YWJsZSB0OwpkaWZmIC0tZ2l0IGEva2VybmVsL2V2ZW50cy9jYWxsY2hhaW4uYyBiL2tlcm5lbC9l dmVudHMvY2FsbGNoYWluLmMKaW5kZXggMTI3M2JlODQzOTJjLi5iZDU2OTlmODY5YzMgMTAwNjQ0 Ci0tLSBhL2tlcm5lbC9ldmVudHMvY2FsbGNoYWluLmMKKysrIGIva2VybmVsL2V2ZW50cy9jYWxs Y2hhaW4uYwpAQCAtMjI5LDcgKzIyOSw3IEBAIGdldF9wZXJmX2NhbGxjaGFpbihzdHJ1Y3QgcHRf cmVncyAqcmVncywgdTMyIGluaXRfbnIsIGJvb2wga2VybmVsLCBib29sIHVzZXIsCiAgKiBVc2Vk IGZvciBzeXNjdGxfcGVyZl9ldmVudF9tYXhfc3RhY2sgYW5kCiAgKiBzeXNjdGxfcGVyZl9ldmVu dF9tYXhfY29udGV4dHNfcGVyX3N0YWNrLgogICovCi1pbnQgcGVyZl9ldmVudF9tYXhfc3RhY2tf aGFuZGxlcihzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAoraW50IHBlcmZfZXZl bnRfbWF4X3N0YWNrX2hhbmRsZXIoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3 cml0ZSwKIAkJCQkgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsK IAlpbnQgKnZhbHVlID0gdGFibGUtPmRhdGE7CmRpZmYgLS1naXQgYS9rZXJuZWwvZXZlbnRzL2Nv cmUuYyBiL2tlcm5lbC9ldmVudHMvY29yZS5jCmluZGV4IGYwMTI4YzVmZjI3OC4uMDFjYzkxMGQz MWYzIDEwMDY0NAotLS0gYS9rZXJuZWwvZXZlbnRzL2NvcmUuYworKysgYi9rZXJuZWwvZXZlbnRz L2NvcmUuYwpAQCAtNDUwLDcgKzQ1MCw3IEBAIHN0YXRpYyB2b2lkIHVwZGF0ZV9wZXJmX2NwdV9s aW1pdHModm9pZCkKIAogc3RhdGljIGJvb2wgcGVyZl9yb3RhdGVfY29udGV4dChzdHJ1Y3QgcGVy Zl9jcHVfcG11X2NvbnRleHQgKmNwYyk7CiAKLWludCBwZXJmX2V2ZW50X21heF9zYW1wbGVfcmF0 ZV9oYW5kbGVyKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCitpbnQgcGVyZl9l dmVudF9tYXhfc2FtcGxlX3JhdGVfaGFuZGxlcihjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJs ZSwgaW50IHdyaXRlLAogCQkJCSAgICAgICB2b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCwgbG9m Zl90ICpwcG9zKQogewogCWludCByZXQ7CkBAIC00NzQsNyArNDc0LDcgQEAgaW50IHBlcmZfZXZl bnRfbWF4X3NhbXBsZV9yYXRlX2hhbmRsZXIoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3 cml0ZSwKIAogaW50IHN5c2N0bF9wZXJmX2NwdV90aW1lX21heF9wZXJjZW50IF9fcmVhZF9tb3N0 bHkgPSBERUZBVUxUX0NQVV9USU1FX01BWF9QRVJDRU5UOwogCi1pbnQgcGVyZl9jcHVfdGltZV9t YXhfcGVyY2VudF9oYW5kbGVyKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCitp bnQgcGVyZl9jcHVfdGltZV9tYXhfcGVyY2VudF9oYW5kbGVyKGNvbnN0IHN0cnVjdCBjdGxfdGFi bGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJCXZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2Zm X3QgKnBwb3MpCiB7CiAJaW50IHJldCA9IHByb2NfZG9pbnR2ZWNfbWlubWF4KHRhYmxlLCB3cml0 ZSwgYnVmZmVyLCBsZW5wLCBwcG9zKTsKZGlmZiAtLWdpdCBhL2tlcm5lbC9mb3JrLmMgYi9rZXJu ZWwvZm9yay5jCmluZGV4IDk5MDc2ZGJlMjdkOC4uOTg1YmQwYTU4MzRjIDEwMDY0NAotLS0gYS9r ZXJuZWwvZm9yay5jCisrKyBiL2tlcm5lbC9mb3JrLmMKQEAgLTM0MTgsNyArMzQxOCw3IEBAIGlu dCB1bnNoYXJlX2ZpbGVzKHZvaWQpCiAJcmV0dXJuIDA7CiB9CiAKLWludCBzeXNjdGxfbWF4X3Ro cmVhZHMoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKK2ludCBzeXNjdGxfbWF4 X3RocmVhZHMoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIAkJICAg ICAgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJc3RydWN0 IGN0bF90YWJsZSB0OwpkaWZmIC0tZ2l0IGEva2VybmVsL2h1bmdfdGFzay5jIGIva2VybmVsL2h1 bmdfdGFzay5jCmluZGV4IDFkOTIwMTZiMGIzYy4uNjg4YWIzNDQzMTU2IDEwMDY0NAotLS0gYS9r ZXJuZWwvaHVuZ190YXNrLmMKKysrIGIva2VybmVsL2h1bmdfdGFzay5jCkBAIC0yMzksOSArMjM5 LDkgQEAgc3RhdGljIGxvbmcgaHVuZ190aW1lb3V0X2ppZmZpZXModW5zaWduZWQgbG9uZyBsYXN0 X2NoZWNrZWQsCiAvKgogICogUHJvY2VzcyB1cGRhdGluZyBvZiB0aW1lb3V0IHN5c2N0bAogICov Ci1zdGF0aWMgaW50IHByb2NfZG9odW5nX3Rhc2tfdGltZW91dF9zZWNzKHN0cnVjdCBjdGxfdGFi bGUgKnRhYmxlLCBpbnQgd3JpdGUsCi0JCQkJICB2b2lkICpidWZmZXIsCi0JCQkJICBzaXplX3Qg KmxlbnAsIGxvZmZfdCAqcHBvcykKK3N0YXRpYyBpbnQgcHJvY19kb2h1bmdfdGFza190aW1lb3V0 X3NlY3MoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqdGFibGUsCisJCQkJCSBpbnQgd3JpdGUsIHZv aWQgKmJ1ZmZlciwKKwkJCQkJIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQogewogCWludCBy ZXQ7CiAKZGlmZiAtLWdpdCBhL2tlcm5lbC9rZXhlY19jb3JlLmMgYi9rZXJuZWwva2V4ZWNfY29y ZS5jCmluZGV4IDkxMTJkNjlkNjhiMC4uYzBjYWExNDg4MGMzIDEwMDY0NAotLS0gYS9rZXJuZWwv a2V4ZWNfY29yZS5jCisrKyBiL2tlcm5lbC9rZXhlY19jb3JlLmMKQEAgLTg4OCw3ICs4ODgsNyBA QCBzdHJ1Y3Qga2ltYWdlICprZXhlY19jcmFzaF9pbWFnZTsKIHN0YXRpYyBpbnQga2V4ZWNfbG9h ZF9kaXNhYmxlZDsKIAogI2lmZGVmIENPTkZJR19TWVNDVEwKLXN0YXRpYyBpbnQga2V4ZWNfbGlt aXRfaGFuZGxlcihzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAorc3RhdGljIGlu dCBrZXhlY19saW1pdF9oYW5kbGVyKGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQg d3JpdGUsCiAJCQkgICAgICAgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBv cykKIHsKIAlzdHJ1Y3Qga2V4ZWNfbG9hZF9saW1pdCAqbGltaXQgPSB0YWJsZS0+ZGF0YTsKZGlm ZiAtLWdpdCBhL2tlcm5lbC9rcHJvYmVzLmMgYi9rZXJuZWwva3Byb2Jlcy5jCmluZGV4IDY2OGVh NDAxNzQ0Yi4uZmVjOWY2YzRiMGYxIDEwMDY0NAotLS0gYS9rZXJuZWwva3Byb2Jlcy5jCisrKyBi L2tlcm5lbC9rcHJvYmVzLmMKQEAgLTkzOSw3ICs5MzksNyBAQCBzdGF0aWMgdm9pZCB1bm9wdGlt aXplX2FsbF9rcHJvYmVzKHZvaWQpCiAKIHN0YXRpYyBERUZJTkVfTVVURVgoa3Byb2JlX3N5c2N0 bF9tdXRleCk7CiBzdGF0aWMgaW50IHN5c2N0bF9rcHJvYmVzX29wdGltaXphdGlvbjsKLXN0YXRp YyBpbnQgcHJvY19rcHJvYmVzX29wdGltaXphdGlvbl9oYW5kbGVyKHN0cnVjdCBjdGxfdGFibGUg KnRhYmxlLAorc3RhdGljIGludCBwcm9jX2twcm9iZXNfb3B0aW1pemF0aW9uX2hhbmRsZXIoY29u c3Qgc3RydWN0IGN0bF90YWJsZSAqdGFibGUsCiAJCQkJCSAgICAgaW50IHdyaXRlLCB2b2lkICpi dWZmZXIsCiAJCQkJCSAgICAgc2l6ZV90ICpsZW5ndGgsIGxvZmZfdCAqcHBvcykKIHsKZGlmZiAt LWdpdCBhL2tlcm5lbC9sYXRlbmN5dG9wLmMgYi9rZXJuZWwvbGF0ZW5jeXRvcC5jCmluZGV4IDg0 YzUzMjg1ZjQ5OS4uYjAzYWY4NjAxOGY0IDEwMDY0NAotLS0gYS9rZXJuZWwvbGF0ZW5jeXRvcC5j CisrKyBiL2tlcm5lbC9sYXRlbmN5dG9wLmMKQEAgLTY1LDggKzY1LDggQEAgc3RhdGljIHN0cnVj dCBsYXRlbmN5X3JlY29yZCBsYXRlbmN5X3JlY29yZFtNQVhMUl07CiBpbnQgbGF0ZW5jeXRvcF9l bmFibGVkOwogCiAjaWZkZWYgQ09ORklHX1NZU0NUTAotc3RhdGljIGludCBzeXNjdGxfbGF0ZW5j eXRvcChzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLCB2b2lkICpidWZmZXIsCi0J CXNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQorc3RhdGljIGludCBzeXNjdGxfbGF0ZW5jeXRv cChjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAorCQkJICAgICB2b2lk ICpidWZmZXIsIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQogewogCWludCBlcnI7CiAKZGlm ZiAtLWdpdCBhL2tlcm5lbC9waWRfbmFtZXNwYWNlLmMgYi9rZXJuZWwvcGlkX25hbWVzcGFjZS5j CmluZGV4IGRjNDhmZWNmYTFkYy4uYWZkN2Q1NGFjYjU2IDEwMDY0NAotLS0gYS9rZXJuZWwvcGlk X25hbWVzcGFjZS5jCisrKyBiL2tlcm5lbC9waWRfbmFtZXNwYWNlLmMKQEAgLTI3Nyw3ICsyNzcs NyBAQCB2b2lkIHphcF9waWRfbnNfcHJvY2Vzc2VzKHN0cnVjdCBwaWRfbmFtZXNwYWNlICpwaWRf bnMpCiB9CiAKICNpZmRlZiBDT05GSUdfQ0hFQ0tQT0lOVF9SRVNUT1JFCi1zdGF0aWMgaW50IHBp ZF9uc19jdGxfaGFuZGxlcihzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAorc3Rh dGljIGludCBwaWRfbnNfY3RsX2hhbmRsZXIoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqdGFibGUs IGludCB3cml0ZSwKIAkJdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykK IHsKIAlzdHJ1Y3QgcGlkX25hbWVzcGFjZSAqcGlkX25zID0gdGFza19hY3RpdmVfcGlkX25zKGN1 cnJlbnQpOwpkaWZmIC0tZ2l0IGEva2VybmVsL3BpZF9zeXNjdGwuaCBiL2tlcm5lbC9waWRfc3lz Y3RsLmgKaW5kZXggZmU5ZmI5OTFkYzQyLi4xOGVjYWVmNmJlNDEgMTAwNjQ0Ci0tLSBhL2tlcm5l bC9waWRfc3lzY3RsLmgKKysrIGIva2VybmVsL3BpZF9zeXNjdGwuaApAQCAtNSw3ICs1LDcgQEAK ICNpbmNsdWRlIDxsaW51eC9waWRfbmFtZXNwYWNlLmg+CiAKICNpZiBkZWZpbmVkKENPTkZJR19T WVNDVEwpICYmIGRlZmluZWQoQ09ORklHX01FTUZEX0NSRUFURSkKLXN0YXRpYyBpbnQgcGlkX21m ZF9ub2V4ZWNfZG9pbnR2ZWNfbWlubWF4KHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLAorc3RhdGlj IGludCBwaWRfbWZkX25vZXhlY19kb2ludHZlY19taW5tYXgoY29uc3Qgc3RydWN0IGN0bF90YWJs ZSAqdGFibGUsCiAJaW50IHdyaXRlLCB2b2lkICpidWYsIHNpemVfdCAqbGVucCwgbG9mZl90ICpw cG9zKQogewogCXN0cnVjdCBwaWRfbmFtZXNwYWNlICpucyA9IHRhc2tfYWN0aXZlX3BpZF9ucyhj dXJyZW50KTsKZGlmZiAtLWdpdCBhL2tlcm5lbC9wcmludGsvaW50ZXJuYWwuaCBiL2tlcm5lbC9w cmludGsvaW50ZXJuYWwuaAppbmRleCA2YzJhZmVlNWVmNjIuLjE5ZGNjNTgzMjY1MSAxMDA2NDQK LS0tIGEva2VybmVsL3ByaW50ay9pbnRlcm5hbC5oCisrKyBiL2tlcm5lbC9wcmludGsvaW50ZXJu YWwuaApAQCAtOCw3ICs4LDcgQEAKIAogI2lmIGRlZmluZWQoQ09ORklHX1BSSU5USykgJiYgZGVm aW5lZChDT05GSUdfU1lTQ1RMKQogdm9pZCBfX2luaXQgcHJpbnRrX3N5c2N0bF9pbml0KHZvaWQp OwotaW50IGRldmttc2dfc3lzY3RsX3NldF9sb2dsdmwoc3RydWN0IGN0bF90YWJsZSAqdGFibGUs IGludCB3cml0ZSwKK2ludCBkZXZrbXNnX3N5c2N0bF9zZXRfbG9nbHZsKGNvbnN0IHN0cnVjdCBj dGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJCQkgICAgICB2b2lkICpidWZmZXIsIHNpemVf dCAqbGVucCwgbG9mZl90ICpwcG9zKTsKICNlbHNlCiAjZGVmaW5lIHByaW50a19zeXNjdGxfaW5p dCgpIGRvIHsgfSB3aGlsZSAoMCkKZGlmZiAtLWdpdCBhL2tlcm5lbC9wcmludGsvcHJpbnRrLmMg Yi9rZXJuZWwvcHJpbnRrL3ByaW50ay5jCmluZGV4IDYyMDY4MDRkMjc1Yi4uNmQwMGU4OTc0NGU5 IDEwMDY0NAotLS0gYS9rZXJuZWwvcHJpbnRrL3ByaW50ay5jCisrKyBiL2tlcm5lbC9wcmludGsv cHJpbnRrLmMKQEAgLTE5Nyw3ICsxOTcsNyBAQCBfX3NldHVwKCJwcmludGsuZGV2a21zZz0iLCBj b250cm9sX2Rldmttc2cpOwogCiBjaGFyIGRldmttc2dfbG9nX3N0cltERVZLTVNHX1NUUl9NQVhf U0laRV0gPSAicmF0ZWxpbWl0IjsKICNpZiBkZWZpbmVkKENPTkZJR19QUklOVEspICYmIGRlZmlu ZWQoQ09ORklHX1NZU0NUTCkKLWludCBkZXZrbXNnX3N5c2N0bF9zZXRfbG9nbHZsKHN0cnVjdCBj dGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCitpbnQgZGV2a21zZ19zeXNjdGxfc2V0X2xvZ2x2 bChjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCQkJICAgICAgdm9p ZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAljaGFyIG9sZF9zdHJb REVWS01TR19TVFJfTUFYX1NJWkVdOwpkaWZmIC0tZ2l0IGEva2VybmVsL3ByaW50ay9zeXNjdGwu YyBiL2tlcm5lbC9wcmludGsvc3lzY3RsLmMKaW5kZXggM2U0N2RlZGNlOWU1Li42YWFkZGI5MDE0 OWYgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9wcmludGsvc3lzY3RsLmMKKysrIGIva2VybmVsL3ByaW50 ay9zeXNjdGwuYwpAQCAtMTEsOCArMTEsOSBAQAogCiBzdGF0aWMgY29uc3QgaW50IHRlbl90aG91 c2FuZCA9IDEwMDAwOwogCi1zdGF0aWMgaW50IHByb2NfZG9pbnR2ZWNfbWlubWF4X3N5c2FkbWlu KHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCi0JCQkJdm9pZCAqYnVmZmVyLCBz aXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKK3N0YXRpYyBpbnQgcHJvY19kb2ludHZlY19taW5t YXhfc3lzYWRtaW4oY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqdGFibGUsCisJCQkJCSBpbnQgd3Jp dGUsIHZvaWQgKmJ1ZmZlciwKKwkJCQkJIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQogewog CWlmICh3cml0ZSAmJiAhY2FwYWJsZShDQVBfU1lTX0FETUlOKSkKIAkJcmV0dXJuIC1FUEVSTTsK ZGlmZiAtLWdpdCBhL2tlcm5lbC9zY2hlZC9jb3JlLmMgYi9rZXJuZWwvc2NoZWQvY29yZS5jCmlu ZGV4IDVmOWQzMmExMTBmOS4uZDY1ZjIxYzI3MzA0IDEwMDY0NAotLS0gYS9rZXJuZWwvc2NoZWQv Y29yZS5jCisrKyBiL2tlcm5lbC9zY2hlZC9jb3JlLmMKQEAgLTE4MzUsNyArMTgzNSw3IEBAIHN0 YXRpYyB2b2lkIHVjbGFtcF9zeW5jX3V0aWxfbWluX3J0X2RlZmF1bHQodm9pZCkKIAkJdWNsYW1w X3VwZGF0ZV91dGlsX21pbl9ydF9kZWZhdWx0KHApOwogfQogCi1zdGF0aWMgaW50IHN5c2N0bF9z Y2hlZF91Y2xhbXBfaGFuZGxlcihzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAor c3RhdGljIGludCBzeXNjdGxfc2NoZWRfdWNsYW1wX2hhbmRsZXIoY29uc3Qgc3RydWN0IGN0bF90 YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIAkJCQl2b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCwg bG9mZl90ICpwcG9zKQogewogCWJvb2wgdXBkYXRlX3Jvb3RfdGcgPSBmYWxzZTsKQEAgLTQ2MDMs NyArNDYwMyw3IEBAIHN0YXRpYyB2b2lkIHJlc2V0X21lbW9yeV90aWVyaW5nKHZvaWQpCiAJfQog fQogCi1zdGF0aWMgaW50IHN5c2N0bF9udW1hX2JhbGFuY2luZyhzdHJ1Y3QgY3RsX3RhYmxlICp0 YWJsZSwgaW50IHdyaXRlLAorc3RhdGljIGludCBzeXNjdGxfbnVtYV9iYWxhbmNpbmcoY29uc3Qg c3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIAkJCSAgdm9pZCAqYnVmZmVyLCBz aXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlzdHJ1Y3QgY3RsX3RhYmxlIHQ7CkBAIC00 NjcyLDggKzQ2NzIsOCBAQCBzdGF0aWMgaW50IF9faW5pdCBzZXR1cF9zY2hlZHN0YXRzKGNoYXIg KnN0cikKIF9fc2V0dXAoInNjaGVkc3RhdHM9Iiwgc2V0dXBfc2NoZWRzdGF0cyk7CiAKICNpZmRl ZiBDT05GSUdfUFJPQ19TWVNDVEwKLXN0YXRpYyBpbnQgc3lzY3RsX3NjaGVkc3RhdHMoc3RydWN0 IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwgdm9pZCAqYnVmZmVyLAotCQlzaXplX3QgKmxl bnAsIGxvZmZfdCAqcHBvcykKK3N0YXRpYyBpbnQgc3lzY3RsX3NjaGVkc3RhdHMoY29uc3Qgc3Ry dWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKKwkJdm9pZCAqYnVmZmVyLCBzaXplX3Qg KmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlzdHJ1Y3QgY3RsX3RhYmxlIHQ7CiAJaW50IGVycjsK ZGlmZiAtLWdpdCBhL2tlcm5lbC9zY2hlZC9ydC5jIGIva2VybmVsL3NjaGVkL3J0LmMKaW5kZXgg YWE0YzFjODc0ZmE0Li4zZjhjMDQ2NzU1ZmQgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9zY2hlZC9ydC5j CisrKyBiL2tlcm5lbC9zY2hlZC9ydC5jCkBAIC0yNiwxMCArMjYsMTAgQEAgaW50IHN5c2N0bF9z Y2hlZF9ydF9ydW50aW1lID0gOTUwMDAwOwogCiAjaWZkZWYgQ09ORklHX1NZU0NUTAogc3RhdGlj IGludCBzeXNjdGxfc2NoZWRfcnJfdGltZXNsaWNlID0gKE1TRUNfUEVSX1NFQyAqIFJSX1RJTUVT TElDRSkgLyBIWjsKLXN0YXRpYyBpbnQgc2NoZWRfcnRfaGFuZGxlcihzdHJ1Y3QgY3RsX3RhYmxl ICp0YWJsZSwgaW50IHdyaXRlLCB2b2lkICpidWZmZXIsCi0JCXNpemVfdCAqbGVucCwgbG9mZl90 ICpwcG9zKTsKLXN0YXRpYyBpbnQgc2NoZWRfcnJfaGFuZGxlcihzdHJ1Y3QgY3RsX3RhYmxlICp0 YWJsZSwgaW50IHdyaXRlLCB2b2lkICpidWZmZXIsCi0JCXNpemVfdCAqbGVucCwgbG9mZl90ICpw cG9zKTsKK3N0YXRpYyBpbnQgc2NoZWRfcnRfaGFuZGxlcihjb25zdCBzdHJ1Y3QgY3RsX3RhYmxl ICp0YWJsZSwgaW50IHdyaXRlLAorCQl2b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCwgbG9mZl90 ICpwcG9zKTsKK3N0YXRpYyBpbnQgc2NoZWRfcnJfaGFuZGxlcihjb25zdCBzdHJ1Y3QgY3RsX3Rh YmxlICp0YWJsZSwgaW50IHdyaXRlLAorCQl2b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCwgbG9m Zl90ICpwcG9zKTsKIHN0YXRpYyBzdHJ1Y3QgY3RsX3RhYmxlIHNjaGVkX3J0X3N5c2N0bHNbXSA9 IHsKIAl7CiAJCS5wcm9jbmFtZSAgICAgICA9ICJzY2hlZF9ydF9wZXJpb2RfdXMiLApAQCAtMjk1 Miw4ICsyOTUyLDggQEAgc3RhdGljIHZvaWQgc2NoZWRfcnRfZG9fZ2xvYmFsKHZvaWQpCiAJcmF3 X3NwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRlZl9ydF9iYW5kd2lkdGgucnRfcnVudGltZV9sb2Nr LCBmbGFncyk7CiB9CiAKLXN0YXRpYyBpbnQgc2NoZWRfcnRfaGFuZGxlcihzdHJ1Y3QgY3RsX3Rh YmxlICp0YWJsZSwgaW50IHdyaXRlLCB2b2lkICpidWZmZXIsCi0JCXNpemVfdCAqbGVucCwgbG9m Zl90ICpwcG9zKQorc3RhdGljIGludCBzY2hlZF9ydF9oYW5kbGVyKGNvbnN0IHN0cnVjdCBjdGxf dGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCisJCXZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBs b2ZmX3QgKnBwb3MpCiB7CiAJaW50IG9sZF9wZXJpb2QsIG9sZF9ydW50aW1lOwogCXN0YXRpYyBE RUZJTkVfTVVURVgobXV0ZXgpOwpAQCAtMjk5MSw4ICsyOTkxLDggQEAgc3RhdGljIGludCBzY2hl ZF9ydF9oYW5kbGVyKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsIHZvaWQgKmJ1 ZmZlciwKIAlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgaW50IHNjaGVkX3JyX2hhbmRsZXIoc3Ry dWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwgdm9pZCAqYnVmZmVyLAotCQlzaXplX3Qg KmxlbnAsIGxvZmZfdCAqcHBvcykKK3N0YXRpYyBpbnQgc2NoZWRfcnJfaGFuZGxlcihjb25zdCBz dHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAorCQl2b2lkICpidWZmZXIsIHNpemVf dCAqbGVucCwgbG9mZl90ICpwcG9zKQogewogCWludCByZXQ7CiAJc3RhdGljIERFRklORV9NVVRF WChtdXRleCk7CmRpZmYgLS1naXQgYS9rZXJuZWwvc2NoZWQvdG9wb2xvZ3kuYyBiL2tlcm5lbC9z Y2hlZC90b3BvbG9neS5jCmluZGV4IDFkNmVlZmE0MDMyZS4uMmI1MmYzNGRjMzVjIDEwMDY0NAot LS0gYS9rZXJuZWwvc2NoZWQvdG9wb2xvZ3kuYworKysgYi9rZXJuZWwvc2NoZWQvdG9wb2xvZ3ku YwpAQCAtMjg1LDcgKzI4NSw3IEBAIHZvaWQgcmVidWlsZF9zY2hlZF9kb21haW5zX2VuZXJneSh2 b2lkKQogfQogCiAjaWZkZWYgQ09ORklHX1BST0NfU1lTQ1RMCi1zdGF0aWMgaW50IHNjaGVkX2Vu ZXJneV9hd2FyZV9oYW5kbGVyKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCitz dGF0aWMgaW50IHNjaGVkX2VuZXJneV9hd2FyZV9oYW5kbGVyKGNvbnN0IHN0cnVjdCBjdGxfdGFi bGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJCXZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2Zm X3QgKnBwb3MpCiB7CiAJaW50IHJldCwgc3RhdGU7CmRpZmYgLS1naXQgYS9rZXJuZWwvc2VjY29t cC5jIGIva2VybmVsL3NlY2NvbXAuYwppbmRleCA3ZWQ3MjcyM2ZiOGEuLjk3YTNkMGU4MWFjMSAx MDA2NDQKLS0tIGEva2VybmVsL3NlY2NvbXAuYworKysgYi9rZXJuZWwvc2VjY29tcC5jCkBAIC0y MzM0LDcgKzIzMzQsNyBAQCBzdGF0aWMgYm9vbCBzZWNjb21wX2FjdGlvbnNfbG9nZ2VkX2Zyb21f bmFtZXModTMyICphY3Rpb25zX2xvZ2dlZCwgY2hhciAqbmFtZXMpCiAJcmV0dXJuIHRydWU7CiB9 CiAKLXN0YXRpYyBpbnQgcmVhZF9hY3Rpb25zX2xvZ2dlZChzdHJ1Y3QgY3RsX3RhYmxlICpyb190 YWJsZSwgdm9pZCAqYnVmZmVyLAorc3RhdGljIGludCByZWFkX2FjdGlvbnNfbG9nZ2VkKGNvbnN0 IHN0cnVjdCBjdGxfdGFibGUgKnJvX3RhYmxlLCB2b2lkICpidWZmZXIsCiAJCQkgICAgICAgc2l6 ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJY2hhciBuYW1lc1tzaXplb2Yoc2VjY29tcF9h Y3Rpb25zX2F2YWlsKV07CkBAIC0yMzUyLDcgKzIzNTIsNyBAQCBzdGF0aWMgaW50IHJlYWRfYWN0 aW9uc19sb2dnZWQoc3RydWN0IGN0bF90YWJsZSAqcm9fdGFibGUsIHZvaWQgKmJ1ZmZlciwKIAly ZXR1cm4gcHJvY19kb3N0cmluZygmdGFibGUsIDAsIGJ1ZmZlciwgbGVucCwgcHBvcyk7CiB9CiAK LXN0YXRpYyBpbnQgd3JpdGVfYWN0aW9uc19sb2dnZWQoc3RydWN0IGN0bF90YWJsZSAqcm9fdGFi bGUsIHZvaWQgKmJ1ZmZlciwKK3N0YXRpYyBpbnQgd3JpdGVfYWN0aW9uc19sb2dnZWQoY29uc3Qg c3RydWN0IGN0bF90YWJsZSAqcm9fdGFibGUsIHZvaWQgKmJ1ZmZlciwKIAkJCQlzaXplX3QgKmxl bnAsIGxvZmZfdCAqcHBvcywgdTMyICphY3Rpb25zX2xvZ2dlZCkKIHsKIAljaGFyIG5hbWVzW3Np emVvZihzZWNjb21wX2FjdGlvbnNfYXZhaWwpXTsKQEAgLTI0MTMsOSArMjQxMyw5IEBAIHN0YXRp YyB2b2lkIGF1ZGl0X2FjdGlvbnNfbG9nZ2VkKHUzMiBhY3Rpb25zX2xvZ2dlZCwgdTMyIG9sZF9h Y3Rpb25zX2xvZ2dlZCwKIAlyZXR1cm4gYXVkaXRfc2VjY29tcF9hY3Rpb25zX2xvZ2dlZChuZXcs IG9sZCwgIXJldCk7CiB9CiAKLXN0YXRpYyBpbnQgc2VjY29tcF9hY3Rpb25zX2xvZ2dlZF9oYW5k bGVyKHN0cnVjdCBjdGxfdGFibGUgKnJvX3RhYmxlLCBpbnQgd3JpdGUsCi0JCQkJCSAgdm9pZCAq YnVmZmVyLCBzaXplX3QgKmxlbnAsCi0JCQkJCSAgbG9mZl90ICpwcG9zKQorc3RhdGljIGludCBz ZWNjb21wX2FjdGlvbnNfbG9nZ2VkX2hhbmRsZXIoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqcm9f dGFibGUsCisJCQkJCSAgaW50IHdyaXRlLCB2b2lkICpidWZmZXIsCisJCQkJCSAgc2l6ZV90ICps ZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJaW50IHJldDsKIApkaWZmIC0tZ2l0IGEva2VybmVsL3N0 YWNrbGVhay5jIGIva2VybmVsL3N0YWNrbGVhay5jCmluZGV4IDU1OGI5ZDZkMjhkMy4uZjY0YjJi M2QwMjQ0IDEwMDY0NAotLS0gYS9rZXJuZWwvc3RhY2tsZWFrLmMKKysrIGIva2VybmVsL3N0YWNr bGVhay5jCkBAIC0yMSw3ICsyMSw3IEBACiBzdGF0aWMgREVGSU5FX1NUQVRJQ19LRVlfRkFMU0Uo c3RhY2tfZXJhc2luZ19ieXBhc3MpOwogCiAjaWZkZWYgQ09ORklHX1NZU0NUTAotc3RhdGljIGlu dCBzdGFja19lcmFzaW5nX3N5c2N0bChzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRl LAorc3RhdGljIGludCBzdGFja19lcmFzaW5nX3N5c2N0bChjb25zdCBzdHJ1Y3QgY3RsX3RhYmxl ICp0YWJsZSwgaW50IHdyaXRlLAogCQkJdm9pZCBfX3VzZXIgKmJ1ZmZlciwgc2l6ZV90ICpsZW5w LCBsb2ZmX3QgKnBwb3MpCiB7CiAJaW50IHJldCA9IDA7CmRpZmYgLS1naXQgYS9rZXJuZWwvc3lz Y3RsLmMgYi9rZXJuZWwvc3lzY3RsLmMKaW5kZXggNjJkZDI3NzUyOTYwLi40ZDNlNWNlY2JjODgg MTAwNjQ0Ci0tLSBhL2tlcm5lbC9zeXNjdGwuYworKysgYi9rZXJuZWwvc3lzY3RsLmMKQEAgLTI1 Niw3ICsyNTYsNyBAQCBzdGF0aWMgYm9vbCBwcm9jX2ZpcnN0X3Bvc19ub25femVyb19pZ25vcmUo bG9mZl90ICpwcG9zLAogICoKICAqIFJldHVybnMgMCBvbiBzdWNjZXNzLgogICovCi1pbnQgcHJv Y19kb3N0cmluZyhzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAoraW50IHByb2Nf ZG9zdHJpbmcoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIAkJICB2 b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQogewogCWlmICh3cml0ZSkK QEAgLTcwMiw3ICs3MDIsNyBAQCBpbnQgZG9fcHJvY19kb3VpbnR2ZWMoY29uc3Qgc3RydWN0IGN0 bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKICAqCiAgKiBSZXR1cm5zIDAgb24gc3VjY2Vzcy4K ICAqLwotaW50IHByb2NfZG9ib29sKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUs IHZvaWQgKmJ1ZmZlciwKK2ludCBwcm9jX2RvYm9vbChjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0 YWJsZSwgaW50IHdyaXRlLCB2b2lkICpidWZmZXIsCiAJCXNpemVfdCAqbGVucCwgbG9mZl90ICpw cG9zKQogewogCXN0cnVjdCBjdGxfdGFibGUgdG1wOwpAQCAtNzM5LDcgKzczOSw3IEBAIGludCBw cm9jX2RvYm9vbChzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLCB2b2lkICpidWZm ZXIsCiAgKgogICogUmV0dXJucyAwIG9uIHN1Y2Nlc3MuCiAgKi8KLWludCBwcm9jX2RvaW50dmVj KHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsIHZvaWQgKmJ1ZmZlciwKK2ludCBw cm9jX2RvaW50dmVjKGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsIHZv aWQgKmJ1ZmZlciwKIAkJICBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlyZXR1cm4g ZG9fcHJvY19kb2ludHZlYyh0YWJsZSwgd3JpdGUsIGJ1ZmZlciwgbGVucCwgcHBvcywgTlVMTCwg TlVMTCk7CkBAIC03NTgsNyArNzU4LDcgQEAgaW50IHByb2NfZG9pbnR2ZWMoc3RydWN0IGN0bF90 YWJsZSAqdGFibGUsIGludCB3cml0ZSwgdm9pZCAqYnVmZmVyLAogICoKICAqIFJldHVybnMgMCBv biBzdWNjZXNzLgogICovCi1pbnQgcHJvY19kb3VpbnR2ZWMoc3RydWN0IGN0bF90YWJsZSAqdGFi bGUsIGludCB3cml0ZSwgdm9pZCAqYnVmZmVyLAoraW50IHByb2NfZG91aW50dmVjKGNvbnN0IHN0 cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsIHZvaWQgKmJ1ZmZlciwKIAkJc2l6ZV90 ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJcmV0dXJuIGRvX3Byb2NfZG91aW50dmVjKHRhYmxl LCB3cml0ZSwgYnVmZmVyLCBsZW5wLCBwcG9zLApAQCAtNzY5LDcgKzc2OSw3IEBAIGludCBwcm9j X2RvdWludHZlYyhzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLCB2b2lkICpidWZm ZXIsCiAgKiBUYWludCB2YWx1ZXMgY2FuIG9ubHkgYmUgaW5jcmVhc2VkCiAgKiBUaGlzIG1lYW5z IHdlIGNhbiBzYWZlbHkgdXNlIGEgdGVtcG9yYXJ5LgogICovCi1zdGF0aWMgaW50IHByb2NfdGFp bnQoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKK3N0YXRpYyBpbnQgcHJvY190 YWludChjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCQkJICAgICAg IHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJc3RydWN0IGN0 bF90YWJsZSB0OwpAQCAtODY0LDcgKzg2NCw3IEBAIHN0YXRpYyBpbnQgZG9fcHJvY19kb2ludHZl Y19taW5tYXhfY29udihib29sICpuZWdwLCB1bnNpZ25lZCBsb25nICpsdmFscCwKICAqCiAgKiBS ZXR1cm5zIDAgb24gc3VjY2VzcyBvciAtRUlOVkFMIG9uIHdyaXRlIHdoZW4gdGhlIHJhbmdlIGNo ZWNrIGZhaWxzLgogICovCi1pbnQgcHJvY19kb2ludHZlY19taW5tYXgoc3RydWN0IGN0bF90YWJs ZSAqdGFibGUsIGludCB3cml0ZSwKK2ludCBwcm9jX2RvaW50dmVjX21pbm1heChjb25zdCBzdHJ1 Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCQkgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90 ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJc3RydWN0IGRvX3Byb2NfZG9pbnR2ZWNfbWlubWF4 X2NvbnZfcGFyYW0gcGFyYW0gPSB7CkBAIC05MzMsNyArOTMzLDcgQEAgc3RhdGljIGludCBkb19w cm9jX2RvdWludHZlY19taW5tYXhfY29udih1bnNpZ25lZCBsb25nICpsdmFscCwKICAqCiAgKiBS ZXR1cm5zIDAgb24gc3VjY2VzcyBvciAtRVJBTkdFIG9uIHdyaXRlIHdoZW4gdGhlIHJhbmdlIGNo ZWNrIGZhaWxzLgogICovCi1pbnQgcHJvY19kb3VpbnR2ZWNfbWlubWF4KHN0cnVjdCBjdGxfdGFi bGUgKnRhYmxlLCBpbnQgd3JpdGUsCitpbnQgcHJvY19kb3VpbnR2ZWNfbWlubWF4KGNvbnN0IHN0 cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJCQkgIHZvaWQgKmJ1ZmZlciwgc2l6 ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJc3RydWN0IGRvX3Byb2NfZG91aW50dmVjX21p bm1heF9jb252X3BhcmFtIHBhcmFtID0gewpAQCAtOTYxLDcgKzk2MSw3IEBAIGludCBwcm9jX2Rv dWludHZlY19taW5tYXgoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKICAqCiAg KiBSZXR1cm5zIDAgb24gc3VjY2VzcyBvciBhbiBlcnJvciBvbiB3cml0ZSB3aGVuIHRoZSByYW5n ZSBjaGVjayBmYWlscy4KICAqLwotaW50IHByb2NfZG91OHZlY19taW5tYXgoc3RydWN0IGN0bF90 YWJsZSAqdGFibGUsIGludCB3cml0ZSwKK2ludCBwcm9jX2RvdTh2ZWNfbWlubWF4KGNvbnN0IHN0 cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJCQl2b2lkICpidWZmZXIsIHNpemVf dCAqbGVucCwgbG9mZl90ICpwcG9zKQogewogCXN0cnVjdCBjdGxfdGFibGUgdG1wOwpAQCAtMTAw NCw3ICsxMDA0LDcgQEAgaW50IHByb2NfZG91OHZlY19taW5tYXgoc3RydWN0IGN0bF90YWJsZSAq dGFibGUsIGludCB3cml0ZSwKIEVYUE9SVF9TWU1CT0xfR1BMKHByb2NfZG91OHZlY19taW5tYXgp OwogCiAjaWZkZWYgQ09ORklHX01BR0lDX1NZU1JRCi1zdGF0aWMgaW50IHN5c3JxX3N5c2N0bF9o YW5kbGVyKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCitzdGF0aWMgaW50IHN5 c3JxX3N5c2N0bF9oYW5kbGVyKGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3Jp dGUsCiAJCQkJdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlp bnQgdG1wLCByZXQ7CkBAIC0xMTIxLDcgKzExMjEsNyBAQCBzdGF0aWMgaW50IGRvX3Byb2NfZG91 bG9uZ3ZlY19taW5tYXgoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwK ICAqCiAgKiBSZXR1cm5zIDAgb24gc3VjY2Vzcy4KICAqLwotaW50IHByb2NfZG91bG9uZ3ZlY19t aW5tYXgoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKK2ludCBwcm9jX2RvdWxv bmd2ZWNfbWlubWF4KGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJ CQkgICB2b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQogewogICAgIHJl dHVybiBkb19wcm9jX2RvdWxvbmd2ZWNfbWlubWF4KHRhYmxlLCB3cml0ZSwgYnVmZmVyLCBsZW5w LCBwcG9zLCAxbCwgMWwpOwpAQCAtMTE0NCw3ICsxMTQ0LDcgQEAgaW50IHByb2NfZG91bG9uZ3Zl Y19taW5tYXgoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKICAqCiAgKiBSZXR1 cm5zIDAgb24gc3VjY2Vzcy4KICAqLwotaW50IHByb2NfZG91bG9uZ3ZlY19tc19qaWZmaWVzX21p bm1heChzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAoraW50IHByb2NfZG91bG9u Z3ZlY19tc19qaWZmaWVzX21pbm1heChjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50 IHdyaXRlLAogCQkJCSAgICAgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBw b3MpCiB7CiAgICAgcmV0dXJuIGRvX3Byb2NfZG91bG9uZ3ZlY19taW5tYXgodGFibGUsIHdyaXRl LCBidWZmZXIsCkBAIC0xMjY1LDE0ICsxMjY1LDE0IEBAIHN0YXRpYyBpbnQgZG9fcHJvY19kb2lu dHZlY19tc19qaWZmaWVzX21pbm1heF9jb252KGJvb2wgKm5lZ3AsIHVuc2lnbmVkIGxvbmcgKmx2 CiAgKgogICogUmV0dXJucyAwIG9uIHN1Y2Nlc3MuCiAgKi8KLWludCBwcm9jX2RvaW50dmVjX2pp ZmZpZXMoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKK2ludCBwcm9jX2RvaW50 dmVjX2ppZmZpZXMoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIAkJ CSAgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKICAgICByZXR1 cm4gZG9fcHJvY19kb2ludHZlYyh0YWJsZSx3cml0ZSxidWZmZXIsbGVucCxwcG9zLAogCQkgICAg CSAgICBkb19wcm9jX2RvaW50dmVjX2ppZmZpZXNfY29udixOVUxMKTsKIH0KIAotaW50IHByb2Nf ZG9pbnR2ZWNfbXNfamlmZmllc19taW5tYXgoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3 cml0ZSwKK2ludCBwcm9jX2RvaW50dmVjX21zX2ppZmZpZXNfbWlubWF4KGNvbnN0IHN0cnVjdCBj dGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJCQkgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICps ZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJc3RydWN0IGRvX3Byb2NfZG9pbnR2ZWNfbWlubWF4X2Nv bnZfcGFyYW0gcGFyYW0gPSB7CkBAIC0xMjk4LDcgKzEyOTgsNyBAQCBpbnQgcHJvY19kb2ludHZl Y19tc19qaWZmaWVzX21pbm1heChzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAog ICoKICAqIFJldHVybnMgMCBvbiBzdWNjZXNzLgogICovCi1pbnQgcHJvY19kb2ludHZlY191c2Vy aHpfamlmZmllcyhzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAoraW50IHByb2Nf ZG9pbnR2ZWNfdXNlcmh6X2ppZmZpZXMoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGlu dCB3cml0ZSwKIAkJCQkgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykK IHsKIAlyZXR1cm4gZG9fcHJvY19kb2ludHZlYyh0YWJsZSwgd3JpdGUsIGJ1ZmZlciwgbGVucCwg cHBvcywKQEAgLTEzMjEsMTUgKzEzMjEsMTUgQEAgaW50IHByb2NfZG9pbnR2ZWNfdXNlcmh6X2pp ZmZpZXMoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKICAqCiAgKiBSZXR1cm5z IDAgb24gc3VjY2Vzcy4KICAqLwotaW50IHByb2NfZG9pbnR2ZWNfbXNfamlmZmllcyhzdHJ1Y3Qg Y3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLCB2b2lkICpidWZmZXIsCi0JCXNpemVfdCAqbGVu cCwgbG9mZl90ICpwcG9zKQoraW50IHByb2NfZG9pbnR2ZWNfbXNfamlmZmllcyhjb25zdCBzdHJ1 Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAorCQl2b2lkICpidWZmZXIsIHNpemVfdCAq bGVucCwgbG9mZl90ICpwcG9zKQogewogCXJldHVybiBkb19wcm9jX2RvaW50dmVjKHRhYmxlLCB3 cml0ZSwgYnVmZmVyLCBsZW5wLCBwcG9zLAogCQkJCWRvX3Byb2NfZG9pbnR2ZWNfbXNfamlmZmll c19jb252LCBOVUxMKTsKIH0KIAotc3RhdGljIGludCBwcm9jX2RvX2NhZF9waWQoc3RydWN0IGN0 bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwgdm9pZCAqYnVmZmVyLAotCQlzaXplX3QgKmxlbnAs IGxvZmZfdCAqcHBvcykKK3N0YXRpYyBpbnQgcHJvY19kb19jYWRfcGlkKGNvbnN0IHN0cnVjdCBj dGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCisJCXZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5w LCBsb2ZmX3QgKnBwb3MpCiB7CiAJc3RydWN0IHBpZCAqbmV3X3BpZDsKIAlwaWRfdCB0bXA7CkBA IC0xMzY3LDcgKzEzNjcsNyBAQCBzdGF0aWMgaW50IHByb2NfZG9fY2FkX3BpZChzdHJ1Y3QgY3Rs X3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLCB2b2lkICpidWZmZXIsCiAgKgogICogUmV0dXJucyAw IG9uIHN1Y2Nlc3MuCiAgKi8KLWludCBwcm9jX2RvX2xhcmdlX2JpdG1hcChzdHJ1Y3QgY3RsX3Rh YmxlICp0YWJsZSwgaW50IHdyaXRlLAoraW50IHByb2NfZG9fbGFyZ2VfYml0bWFwKGNvbnN0IHN0 cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJCQkgdm9pZCAqYnVmZmVyLCBzaXpl X3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlpbnQgZXJyID0gMDsKQEAgLTE0OTksODUgKzE0 OTksODUgQEAgaW50IHByb2NfZG9fbGFyZ2VfYml0bWFwKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxl LCBpbnQgd3JpdGUsCiAKICNlbHNlIC8qIENPTkZJR19QUk9DX1NZU0NUTCAqLwogCi1pbnQgcHJv Y19kb3N0cmluZyhzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAoraW50IHByb2Nf ZG9zdHJpbmcoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIAkJICB2 b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQogewogCXJldHVybiAtRU5P U1lTOwogfQogCi1pbnQgcHJvY19kb2Jvb2woc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3 cml0ZSwKK2ludCBwcm9jX2RvYm9vbChjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50 IHdyaXRlLAogCQl2b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQogewog CXJldHVybiAtRU5PU1lTOwogfQogCi1pbnQgcHJvY19kb2ludHZlYyhzdHJ1Y3QgY3RsX3RhYmxl ICp0YWJsZSwgaW50IHdyaXRlLAoraW50IHByb2NfZG9pbnR2ZWMoY29uc3Qgc3RydWN0IGN0bF90 YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIAkJICB2b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCwg bG9mZl90ICpwcG9zKQogewogCXJldHVybiAtRU5PU1lTOwogfQogCi1pbnQgcHJvY19kb3VpbnR2 ZWMoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKK2ludCBwcm9jX2RvdWludHZl Yyhjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCQkgIHZvaWQgKmJ1 ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJcmV0dXJuIC1FTk9TWVM7CiB9 CiAKLWludCBwcm9jX2RvaW50dmVjX21pbm1heChzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50 IHdyaXRlLAoraW50IHByb2NfZG9pbnR2ZWNfbWlubWF4KGNvbnN0IHN0cnVjdCBjdGxfdGFibGUg KnRhYmxlLCBpbnQgd3JpdGUsCiAJCSAgICB2b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCwgbG9m Zl90ICpwcG9zKQogewogCXJldHVybiAtRU5PU1lTOwogfQogCi1pbnQgcHJvY19kb3VpbnR2ZWNf bWlubWF4KHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCitpbnQgcHJvY19kb3Vp bnR2ZWNfbWlubWF4KGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJ CQkgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJcmV0dXJu IC1FTk9TWVM7CiB9CiAKLWludCBwcm9jX2RvdTh2ZWNfbWlubWF4KHN0cnVjdCBjdGxfdGFibGUg KnRhYmxlLCBpbnQgd3JpdGUsCitpbnQgcHJvY19kb3U4dmVjX21pbm1heChjb25zdCBzdHJ1Y3Qg Y3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCQkJdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxl bnAsIGxvZmZfdCAqcHBvcykKIHsKIAlyZXR1cm4gLUVOT1NZUzsKIH0KIAotaW50IHByb2NfZG9p bnR2ZWNfamlmZmllcyhzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAoraW50IHBy b2NfZG9pbnR2ZWNfamlmZmllcyhjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdy aXRlLAogCQkgICAgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsK IAlyZXR1cm4gLUVOT1NZUzsKIH0KIAotaW50IHByb2NfZG9pbnR2ZWNfbXNfamlmZmllc19taW5t YXgoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKK2ludCBwcm9jX2RvaW50dmVj X21zX2ppZmZpZXNfbWlubWF4KGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3Jp dGUsCiAJCQkJICAgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7 CiAJcmV0dXJuIC1FTk9TWVM7CiB9CiAKLWludCBwcm9jX2RvaW50dmVjX3VzZXJoel9qaWZmaWVz KHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCitpbnQgcHJvY19kb2ludHZlY191 c2VyaHpfamlmZmllcyhjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAog CQkgICAgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlyZXR1 cm4gLUVOT1NZUzsKIH0KIAotaW50IHByb2NfZG9pbnR2ZWNfbXNfamlmZmllcyhzdHJ1Y3QgY3Rs X3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAoraW50IHByb2NfZG9pbnR2ZWNfbXNfamlmZmllcyhj b25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCQkJICAgICB2b2lkICpi dWZmZXIsIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQogewogCXJldHVybiAtRU5PU1lTOwog fQogCi1pbnQgcHJvY19kb3Vsb25ndmVjX21pbm1heChzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwg aW50IHdyaXRlLAoraW50IHByb2NfZG91bG9uZ3ZlY19taW5tYXgoY29uc3Qgc3RydWN0IGN0bF90 YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIAkJICAgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5w LCBsb2ZmX3QgKnBwb3MpCiB7CiAJcmV0dXJuIC1FTk9TWVM7CiB9CiAKLWludCBwcm9jX2RvdWxv bmd2ZWNfbXNfamlmZmllc19taW5tYXgoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0 ZSwKK2ludCBwcm9jX2RvdWxvbmd2ZWNfbXNfamlmZmllc19taW5tYXgoY29uc3Qgc3RydWN0IGN0 bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIAkJCQkgICAgICB2b2lkICpidWZmZXIsIHNpemVf dCAqbGVucCwgbG9mZl90ICpwcG9zKQogewogCXJldHVybiAtRU5PU1lTOwogfQogCi1pbnQgcHJv Y19kb19sYXJnZV9iaXRtYXAoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKK2lu dCBwcm9jX2RvX2xhcmdlX2JpdG1hcChjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50 IHdyaXRlLAogCQkJIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7 CiAJcmV0dXJuIC1FTk9TWVM7CkBAIC0xNTg2LDcgKzE1ODYsNyBAQCBpbnQgcHJvY19kb19sYXJn ZV9iaXRtYXAoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKICNlbmRpZiAvKiBD T05GSUdfUFJPQ19TWVNDVEwgKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX1NZU0NUTCkKLWludCBw cm9jX2RvX3N0YXRpY19rZXkoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKK2lu dCBwcm9jX2RvX3N0YXRpY19rZXkoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3 cml0ZSwKIAkJICAgICAgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3Mp CiB7CiAJc3RydWN0IHN0YXRpY19rZXkgKmtleSA9IChzdHJ1Y3Qgc3RhdGljX2tleSAqKXRhYmxl LT5kYXRhOwpkaWZmIC0tZ2l0IGEva2VybmVsL3RpbWUvdGltZXIuYyBiL2tlcm5lbC90aW1lL3Rp bWVyLmMKaW5kZXggNDgyODhkZDRhMTAyLi42NGIwZDhhMGFhMGYgMTAwNjQ0Ci0tLSBhL2tlcm5l bC90aW1lL3RpbWVyLmMKKysrIGIva2VybmVsL3RpbWUvdGltZXIuYwpAQCAtMjg5LDcgKzI4OSw3 IEBAIHN0YXRpYyB2b2lkIHRpbWVyc191cGRhdGVfbWlncmF0aW9uKHZvaWQpCiB9CiAKICNpZmRl ZiBDT05GSUdfU1lTQ1RMCi1zdGF0aWMgaW50IHRpbWVyX21pZ3JhdGlvbl9oYW5kbGVyKHN0cnVj dCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCitzdGF0aWMgaW50IHRpbWVyX21pZ3JhdGlv bl9oYW5kbGVyKGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJCQkg ICAgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlpbnQgcmV0 OwpkaWZmIC0tZ2l0IGEva2VybmVsL3RyYWNlL2Z0cmFjZS5jIGIva2VybmVsL3RyYWNlL2Z0cmFj ZS5jCmluZGV4IGY3ODNkN2IyNzlmNi4uZGIxZWJlNzA4NjZhIDEwMDY0NAotLS0gYS9rZXJuZWwv dHJhY2UvZnRyYWNlLmMKKysrIGIva2VybmVsL3RyYWNlL2Z0cmFjZS5jCkBAIC04MjIzLDcgKzgy MjMsNyBAQCBzdGF0aWMgYm9vbCBpc19wZXJtYW5lbnRfb3BzX3JlZ2lzdGVyZWQodm9pZCkKIH0K IAogc3RhdGljIGludAotZnRyYWNlX2VuYWJsZV9zeXNjdGwoc3RydWN0IGN0bF90YWJsZSAqdGFi bGUsIGludCB3cml0ZSwKK2Z0cmFjZV9lbmFibGVfc3lzY3RsKGNvbnN0IHN0cnVjdCBjdGxfdGFi bGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJCSAgICAgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAs IGxvZmZfdCAqcHBvcykKIHsKIAlpbnQgcmV0ID0gLUVOT0RFVjsKZGlmZiAtLWdpdCBhL2tlcm5l bC90cmFjZS90cmFjZS5jIGIva2VybmVsL3RyYWNlL3RyYWNlLmMKaW5kZXggMjMzZDFhZjM5ZmZm Li4yZTZhMGIxMTQyZDMgMTAwNjQ0Ci0tLSBhL2tlcm5lbC90cmFjZS90cmFjZS5jCisrKyBiL2tl cm5lbC90cmFjZS90cmFjZS5jCkBAIC0yNzYxLDcgKzI3NjEsNyBAQCBzdGF0aWMgdm9pZCBvdXRw dXRfcHJpbnRrKHN0cnVjdCB0cmFjZV9ldmVudF9idWZmZXIgKmZidWZmZXIpCiAJcmF3X3NwaW5f dW5sb2NrX2lycXJlc3RvcmUoJnRyYWNlcG9pbnRfaXRlcl9sb2NrLCBmbGFncyk7CiB9CiAKLWlu dCB0cmFjZXBvaW50X3ByaW50a19zeXNjdGwoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3 cml0ZSwKK2ludCB0cmFjZXBvaW50X3ByaW50a19zeXNjdGwoY29uc3Qgc3RydWN0IGN0bF90YWJs ZSAqdGFibGUsIGludCB3cml0ZSwKIAkJCSAgICAgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAs CiAJCQkgICAgIGxvZmZfdCAqcHBvcykKIHsKZGlmZiAtLWdpdCBhL2tlcm5lbC90cmFjZS90cmFj ZV9ldmVudHNfdXNlci5jIGIva2VybmVsL3RyYWNlL3RyYWNlX2V2ZW50c191c2VyLmMKaW5kZXgg MzA0Y2VlZDlmZDdkLi5hMmYwNDhjODM4MmYgMTAwNjQ0Ci0tLSBhL2tlcm5lbC90cmFjZS90cmFj ZV9ldmVudHNfdXNlci5jCisrKyBiL2tlcm5lbC90cmFjZS90cmFjZV9ldmVudHNfdXNlci5jCkBA IC0yODExLDcgKzI4MTEsNyBAQCBzdGF0aWMgaW50IGNyZWF0ZV91c2VyX3RyYWNlZnModm9pZCkK IAlyZXR1cm4gLUVOT0RFVjsKIH0KIAotc3RhdGljIGludCBzZXRfbWF4X3VzZXJfZXZlbnRzX3N5 c2N0bChzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAorc3RhdGljIGludCBzZXRf bWF4X3VzZXJfZXZlbnRzX3N5c2N0bChjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50 IHdyaXRlLAogCQkJCSAgICAgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBw b3MpCiB7CiAJaW50IHJldDsKZGlmZiAtLWdpdCBhL2tlcm5lbC90cmFjZS90cmFjZV9zdGFjay5j IGIva2VybmVsL3RyYWNlL3RyYWNlX3N0YWNrLmMKaW5kZXggNWE0OGRiYTkxMmVhLi43Zjk1NzJh MzczMzMgMTAwNjQ0Ci0tLSBhL2tlcm5lbC90cmFjZS90cmFjZV9zdGFjay5jCisrKyBiL2tlcm5l bC90cmFjZS90cmFjZV9zdGFjay5jCkBAIC01MTQsNyArNTE0LDcgQEAgc3RhdGljIGNvbnN0IHN0 cnVjdCBmaWxlX29wZXJhdGlvbnMgc3RhY2tfdHJhY2VfZmlsdGVyX2ZvcHMgPSB7CiAjZW5kaWYg LyogQ09ORklHX0RZTkFNSUNfRlRSQUNFICovCiAKIGludAotc3RhY2tfdHJhY2Vfc3lzY3RsKHN0 cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsIHZvaWQgKmJ1ZmZlciwKK3N0YWNrX3Ry YWNlX3N5c2N0bChjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLCB2b2lk ICpidWZmZXIsCiAJCSAgIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQogewogCWludCB3YXNf ZW5hYmxlZDsKZGlmZiAtLWdpdCBhL2tlcm5lbC91bWguYyBiL2tlcm5lbC91bWguYwppbmRleCA1 OThiM2ZmZTE1MjIuLmZmMWYxM2EyN2QyOSAxMDA2NDQKLS0tIGEva2VybmVsL3VtaC5jCisrKyBi L2tlcm5lbC91bWguYwpAQCAtNDk1LDcgKzQ5NSw3IEBAIGludCBjYWxsX3VzZXJtb2RlaGVscGVy KGNvbnN0IGNoYXIgKnBhdGgsIGNoYXIgKiphcmd2LCBjaGFyICoqZW52cCwgaW50IHdhaXQpCiBF WFBPUlRfU1lNQk9MKGNhbGxfdXNlcm1vZGVoZWxwZXIpOwogCiAjaWYgZGVmaW5lZChDT05GSUdf U1lTQ1RMKQotc3RhdGljIGludCBwcm9jX2NhcF9oYW5kbGVyKHN0cnVjdCBjdGxfdGFibGUgKnRh YmxlLCBpbnQgd3JpdGUsCitzdGF0aWMgaW50IHByb2NfY2FwX2hhbmRsZXIoY29uc3Qgc3RydWN0 IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIAkJCSB2b2lkICpidWZmZXIsIHNpemVfdCAq bGVucCwgbG9mZl90ICpwcG9zKQogewogCXN0cnVjdCBjdGxfdGFibGUgdDsKZGlmZiAtLWdpdCBh L2tlcm5lbC91dHNuYW1lX3N5c2N0bC5jIGIva2VybmVsL3V0c25hbWVfc3lzY3RsLmMKaW5kZXgg MDRlNDUxM2YyOTg1Li43MjgyZjYxYTg2NTAgMTAwNjQ0Ci0tLSBhL2tlcm5lbC91dHNuYW1lX3N5 c2N0bC5jCisrKyBiL2tlcm5lbC91dHNuYW1lX3N5c2N0bC5jCkBAIC0zMCw3ICszMCw3IEBAIHN0 YXRpYyB2b2lkICpnZXRfdXRzKGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlKQogICoJU3Bl Y2lhbCBjYXNlIG9mIGRvc3RyaW5nIGZvciB0aGUgVVRTIHN0cnVjdHVyZS4gVGhpcyBoYXMgbG9j a3MKICAqCXRvIG9ic2VydmUuIFNob3VsZCB0aGlzIGJlIGluIGtlcm5lbC9zeXMuYyA/Pz8/CiAg Ki8KLXN0YXRpYyBpbnQgcHJvY19kb191dHNfc3RyaW5nKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxl LCBpbnQgd3JpdGUsCitzdGF0aWMgaW50IHByb2NfZG9fdXRzX3N0cmluZyhjb25zdCBzdHJ1Y3Qg Y3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCQkgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICps ZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJc3RydWN0IGN0bF90YWJsZSB1dHNfdGFibGU7CmRpZmYg LS1naXQgYS9rZXJuZWwvd2F0Y2hkb2cuYyBiL2tlcm5lbC93YXRjaGRvZy5jCmluZGV4IDk0MTIz NjgyOGRlOC4uNmNiZGQxMTQzZjA2IDEwMDY0NAotLS0gYS9rZXJuZWwvd2F0Y2hkb2cuYworKysg Yi9rZXJuZWwvd2F0Y2hkb2cuYwpAQCAtOTc0LDcgKzk3NCw3IEBAIHN0YXRpYyB2b2lkIHByb2Nf d2F0Y2hkb2dfdXBkYXRlKHZvaWQpCiAgKiAtLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog ICogcHJvY19zb2Z0X3dhdGNoZG9nIHwgd2F0Y2hkb2dfc29mdGxvY2t1cF91c2VyX2VuYWJsZWQg fCBXQVRDSERPR19TT0ZUT0NLVVBfRU5BQkxFRAogICovCi1zdGF0aWMgaW50IHByb2Nfd2F0Y2hk b2dfY29tbW9uKGludCB3aGljaCwgc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwK K3N0YXRpYyBpbnQgcHJvY193YXRjaGRvZ19jb21tb24oaW50IHdoaWNoLCBjb25zdCBzdHJ1Y3Qg Y3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCQkJCXZvaWQgKmJ1ZmZlciwgc2l6ZV90ICps ZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJaW50IGVyciwgb2xkLCAqcGFyYW0gPSB0YWJsZS0+ZGF0 YTsKQEAgLTEwMDEsNyArMTAwMSw3IEBAIHN0YXRpYyBpbnQgcHJvY193YXRjaGRvZ19jb21tb24o aW50IHdoaWNoLCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogLyoKICAqIC9w cm9jL3N5cy9rZXJuZWwvd2F0Y2hkb2cKICAqLwotc3RhdGljIGludCBwcm9jX3dhdGNoZG9nKHN0 cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCitzdGF0aWMgaW50IHByb2Nfd2F0Y2hk b2coY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIAkJCSB2b2lkICpi dWZmZXIsIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQogewogCXJldHVybiBwcm9jX3dhdGNo ZG9nX2NvbW1vbihXQVRDSERPR19IQVJETE9DS1VQX0VOQUJMRUQgfApAQCAtMTAxMiw3ICsxMDEy LDcgQEAgc3RhdGljIGludCBwcm9jX3dhdGNoZG9nKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBp bnQgd3JpdGUsCiAvKgogICogL3Byb2Mvc3lzL2tlcm5lbC9ubWlfd2F0Y2hkb2cKICAqLwotc3Rh dGljIGludCBwcm9jX25taV93YXRjaGRvZyhzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdy aXRlLAorc3RhdGljIGludCBwcm9jX25taV93YXRjaGRvZyhjb25zdCBzdHJ1Y3QgY3RsX3RhYmxl ICp0YWJsZSwgaW50IHdyaXRlLAogCQkJICAgICB2b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCwg bG9mZl90ICpwcG9zKQogewogCWlmICghd2F0Y2hkb2dfaGFyZGxvY2t1cF9hdmFpbGFibGUgJiYg d3JpdGUpCkBAIC0xMDI1LDcgKzEwMjUsNyBAQCBzdGF0aWMgaW50IHByb2Nfbm1pX3dhdGNoZG9n KHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAvKgogICogL3Byb2Mvc3lzL2tl cm5lbC9zb2Z0X3dhdGNoZG9nCiAgKi8KLXN0YXRpYyBpbnQgcHJvY19zb2Z0X3dhdGNoZG9nKHN0 cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCitzdGF0aWMgaW50IHByb2Nfc29mdF93 YXRjaGRvZyhjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCQkJICAg ICAgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlyZXR1cm4g cHJvY193YXRjaGRvZ19jb21tb24oV0FUQ0hET0dfU09GVE9DS1VQX0VOQUJMRUQsCkBAIC0xMDM2 LDcgKzEwMzYsNyBAQCBzdGF0aWMgaW50IHByb2Nfc29mdF93YXRjaGRvZyhzdHJ1Y3QgY3RsX3Rh YmxlICp0YWJsZSwgaW50IHdyaXRlLAogLyoKICAqIC9wcm9jL3N5cy9rZXJuZWwvd2F0Y2hkb2df dGhyZXNoCiAgKi8KLXN0YXRpYyBpbnQgcHJvY193YXRjaGRvZ190aHJlc2goc3RydWN0IGN0bF90 YWJsZSAqdGFibGUsIGludCB3cml0ZSwKK3N0YXRpYyBpbnQgcHJvY193YXRjaGRvZ190aHJlc2go Y29uc3Qgc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIAkJCQl2b2lkICpidWZm ZXIsIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQogewogCWludCBlcnIsIG9sZDsKQEAgLTEw NTksNyArMTA1OSw3IEBAIHN0YXRpYyBpbnQgcHJvY193YXRjaGRvZ190aHJlc2goc3RydWN0IGN0 bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKICAqIHVzZXIgdG8gc3BlY2lmeSBhIG1hc2sgdGhh dCB3aWxsIGluY2x1ZGUgY3B1cyB0aGF0IGhhdmUgbm90IHlldAogICogYmVlbiBicm91Z2h0IG9u bGluZSwgaWYgZGVzaXJlZC4KICAqLwotc3RhdGljIGludCBwcm9jX3dhdGNoZG9nX2NwdW1hc2so c3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKK3N0YXRpYyBpbnQgcHJvY193YXRj aGRvZ19jcHVtYXNrKGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJ CQkJIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJaW50IGVy cjsKZGlmZiAtLWdpdCBhL21tL2NvbXBhY3Rpb24uYyBiL21tL2NvbXBhY3Rpb24uYwppbmRleCBl NzMxZDQ1YmVmYzcuLmVhNTk1N2MyZGEzOSAxMDA2NDQKLS0tIGEvbW0vY29tcGFjdGlvbi5jCisr KyBiL21tL2NvbXBhY3Rpb24uYwpAQCAtMjk1NSw3ICsyOTU1LDcgQEAgc3RhdGljIGludCBjb21w YWN0X25vZGVzKHZvaWQpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgY29tcGFjdGlvbl9w cm9hY3RpdmVuZXNzX3N5c2N0bF9oYW5kbGVyKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQg d3JpdGUsCitzdGF0aWMgaW50IGNvbXBhY3Rpb25fcHJvYWN0aXZlbmVzc19zeXNjdGxfaGFuZGxl cihjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCQl2b2lkICpidWZm ZXIsIHNpemVfdCAqbGVuZ3RoLCBsb2ZmX3QgKnBwb3MpCiB7CiAJaW50IHJjLCBuaWQ7CkBAIC0y OTg1LDcgKzI5ODUsNyBAQCBzdGF0aWMgaW50IGNvbXBhY3Rpb25fcHJvYWN0aXZlbmVzc19zeXNj dGxfaGFuZGxlcihzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50CiAgKiBUaGlzIGlzIHRoZSBl bnRyeSBwb2ludCBmb3IgY29tcGFjdGluZyBhbGwgbm9kZXMgdmlhCiAgKiAvcHJvYy9zeXMvdm0v Y29tcGFjdF9tZW1vcnkKICAqLwotc3RhdGljIGludCBzeXNjdGxfY29tcGFjdGlvbl9oYW5kbGVy KHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCitzdGF0aWMgaW50IHN5c2N0bF9j b21wYWN0aW9uX2hhbmRsZXIoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0 ZSwKIAkJCXZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5ndGgsIGxvZmZfdCAqcHBvcykKIHsKIAlp bnQgcmV0OwpAQCAtMzI5Niw3ICszMjk2LDcgQEAgc3RhdGljIGludCBrY29tcGFjdGRfY3B1X29u bGluZSh1bnNpZ25lZCBpbnQgY3B1KQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IHByb2Nf ZG9pbnR2ZWNfbWlubWF4X3dhcm5fUlRfY2hhbmdlKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLAor c3RhdGljIGludCBwcm9jX2RvaW50dmVjX21pbm1heF93YXJuX1JUX2NoYW5nZShjb25zdCBzdHJ1 Y3QgY3RsX3RhYmxlICp0YWJsZSwKIAkJaW50IHdyaXRlLCB2b2lkICpidWZmZXIsIHNpemVfdCAq bGVucCwgbG9mZl90ICpwcG9zKQogewogCWludCByZXQsIG9sZDsKZGlmZiAtLWdpdCBhL21tL2h1 Z2V0bGIuYyBiL21tL2h1Z2V0bGIuYwppbmRleCA4ZDEyY2U2M2E0MzkuLjliMDgzNDYzNGU4YiAx MDA2NDQKLS0tIGEvbW0vaHVnZXRsYi5jCisrKyBiL21tL2h1Z2V0bGIuYwpAQCAtNDk1MCw3ICs0 OTUwLDcgQEAgc3RhdGljIGludCBodWdldGxiX3N5c2N0bF9oYW5kbGVyX2NvbW1vbihib29sIG9i ZXlfbWVtcG9saWN5LAogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyBpbnQgaHVnZXRsYl9zeXNj dGxfaGFuZGxlcihzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAorc3RhdGljIGlu dCBodWdldGxiX3N5c2N0bF9oYW5kbGVyKGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBp bnQgd3JpdGUsCiAJCQkgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5ndGgsIGxvZmZfdCAqcHBv cykKIHsKIApAQCAtNDk1OSwxNSArNDk1OSwxNSBAQCBzdGF0aWMgaW50IGh1Z2V0bGJfc3lzY3Rs X2hhbmRsZXIoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIH0KIAogI2lmZGVm IENPTkZJR19OVU1BCi1zdGF0aWMgaW50IGh1Z2V0bGJfbWVtcG9saWN5X3N5c2N0bF9oYW5kbGVy KHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCi0JCQkgIHZvaWQgKmJ1ZmZlciwg c2l6ZV90ICpsZW5ndGgsIGxvZmZfdCAqcHBvcykKK3N0YXRpYyBpbnQgaHVnZXRsYl9tZW1wb2xp Y3lfc3lzY3RsX2hhbmRsZXIoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqdGFibGUsCisJCQlpbnQg d3JpdGUsIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5ndGgsIGxvZmZfdCAqcHBvcykKIHsKIAly ZXR1cm4gaHVnZXRsYl9zeXNjdGxfaGFuZGxlcl9jb21tb24odHJ1ZSwgdGFibGUsIHdyaXRlLAog CQkJCQkJCWJ1ZmZlciwgbGVuZ3RoLCBwcG9zKTsKIH0KICNlbmRpZiAvKiBDT05GSUdfTlVNQSAq LwogCi1zdGF0aWMgaW50IGh1Z2V0bGJfb3ZlcmNvbW1pdF9oYW5kbGVyKHN0cnVjdCBjdGxfdGFi bGUgKnRhYmxlLCBpbnQgd3JpdGUsCitzdGF0aWMgaW50IGh1Z2V0bGJfb3ZlcmNvbW1pdF9oYW5k bGVyKGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJCXZvaWQgKmJ1 ZmZlciwgc2l6ZV90ICpsZW5ndGgsIGxvZmZfdCAqcHBvcykKIHsKIAlzdHJ1Y3QgaHN0YXRlICpo ID0gJmRlZmF1bHRfaHN0YXRlOwpkaWZmIC0tZ2l0IGEvbW0vcGFnZS13cml0ZWJhY2suYyBiL21t L3BhZ2Utd3JpdGViYWNrLmMKaW5kZXggZGI1NzY5Y2IxMmZkLi5iODZhZWNlNjcyYmYgMTAwNjQ0 Ci0tLSBhL21tL3BhZ2Utd3JpdGViYWNrLmMKKysrIGIvbW0vcGFnZS13cml0ZWJhY2suYwpAQCAt NDkzLDggKzQ5Myw4IEBAIGJvb2wgbm9kZV9kaXJ0eV9vayhzdHJ1Y3QgcGdsaXN0X2RhdGEgKnBn ZGF0KQogfQogCiAjaWZkZWYgQ09ORklHX1NZU0NUTAotc3RhdGljIGludCBkaXJ0eV9iYWNrZ3Jv dW5kX3JhdGlvX2hhbmRsZXIoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKLQkJ dm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKK3N0YXRpYyBpbnQgZGly dHlfYmFja2dyb3VuZF9yYXRpb19oYW5kbGVyKGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKnRhYmxl LAorCQlpbnQgd3JpdGUsIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3Mp CiB7CiAJaW50IHJldDsKIApAQCAtNTA0LDggKzUwNCw4IEBAIHN0YXRpYyBpbnQgZGlydHlfYmFj a2dyb3VuZF9yYXRpb19oYW5kbGVyKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUs CiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGludCBkaXJ0eV9iYWNrZ3JvdW5kX2J5dGVzX2hh bmRsZXIoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKLQkJdm9pZCAqYnVmZmVy LCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKK3N0YXRpYyBpbnQgZGlydHlfYmFja2dyb3Vu ZF9ieXRlc19oYW5kbGVyKGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLAorCQlpbnQgd3Jp dGUsIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJaW50IHJl dDsKIApAQCAtNTE1LDggKzUxNSw4IEBAIHN0YXRpYyBpbnQgZGlydHlfYmFja2dyb3VuZF9ieXRl c19oYW5kbGVyKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJcmV0dXJuIHJl dDsKIH0KIAotc3RhdGljIGludCBkaXJ0eV9yYXRpb19oYW5kbGVyKHN0cnVjdCBjdGxfdGFibGUg KnRhYmxlLCBpbnQgd3JpdGUsIHZvaWQgKmJ1ZmZlciwKLQkJc2l6ZV90ICpsZW5wLCBsb2ZmX3Qg KnBwb3MpCitzdGF0aWMgaW50IGRpcnR5X3JhdGlvX2hhbmRsZXIoY29uc3Qgc3RydWN0IGN0bF90 YWJsZSAqdGFibGUsIGludCB3cml0ZSwKKwkJdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxv ZmZfdCAqcHBvcykKIHsKIAlpbnQgb2xkX3JhdGlvID0gdm1fZGlydHlfcmF0aW87CiAJaW50IHJl dDsKQEAgLTUyOSw3ICs1MjksNyBAQCBzdGF0aWMgaW50IGRpcnR5X3JhdGlvX2hhbmRsZXIoc3Ry dWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwgdm9pZCAqYnVmZmVyLAogCXJldHVybiBy ZXQ7CiB9CiAKLXN0YXRpYyBpbnQgZGlydHlfYnl0ZXNfaGFuZGxlcihzdHJ1Y3QgY3RsX3RhYmxl ICp0YWJsZSwgaW50IHdyaXRlLAorc3RhdGljIGludCBkaXJ0eV9ieXRlc19oYW5kbGVyKGNvbnN0 IHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJCXZvaWQgKmJ1ZmZlciwgc2l6 ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJdW5zaWduZWQgbG9uZyBvbGRfYnl0ZXMgPSB2 bV9kaXJ0eV9ieXRlczsKQEAgLTIxNTEsOCArMjE1MSw4IEBAIGJvb2wgd2Jfb3Zlcl9iZ190aHJl c2goc3RydWN0IGJkaV93cml0ZWJhY2sgKndiKQogLyoKICAqIHN5c2N0bCBoYW5kbGVyIGZvciAv cHJvYy9zeXMvdm0vZGlydHlfd3JpdGViYWNrX2NlbnRpc2VjcwogICovCi1zdGF0aWMgaW50IGRp cnR5X3dyaXRlYmFja19jZW50aXNlY3NfaGFuZGxlcihzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwg aW50IHdyaXRlLAotCQl2b2lkICpidWZmZXIsIHNpemVfdCAqbGVuZ3RoLCBsb2ZmX3QgKnBwb3Mp CitzdGF0aWMgaW50IGRpcnR5X3dyaXRlYmFja19jZW50aXNlY3NfaGFuZGxlcihjb25zdCBzdHJ1 Y3QgY3RsX3RhYmxlICp0YWJsZSwKKwkJaW50IHdyaXRlLCB2b2lkICpidWZmZXIsIHNpemVfdCAq bGVuZ3RoLCBsb2ZmX3QgKnBwb3MpCiB7CiAJdW5zaWduZWQgaW50IG9sZF9pbnRlcnZhbCA9IGRp cnR5X3dyaXRlYmFja19pbnRlcnZhbDsKIAlpbnQgcmV0OwpkaWZmIC0tZ2l0IGEvbW0vcGFnZV9h bGxvYy5jIGIvbW0vcGFnZV9hbGxvYy5jCmluZGV4IDMzZDRhMWJlOTI3Yi4uOTgxMGVhMDAwZTcx IDEwMDY0NAotLS0gYS9tbS9wYWdlX2FsbG9jLmMKKysrIGIvbW0vcGFnZV9hbGxvYy5jCkBAIC01 MTM1LDcgKzUxMzUsNyBAQCBzdGF0aWMgY2hhciBudW1hX3pvbmVsaXN0X29yZGVyW10gPSAiTm9k ZSI7CiAvKgogICogc3lzY3RsIGhhbmRsZXIgZm9yIG51bWFfem9uZWxpc3Rfb3JkZXIKICAqLwot c3RhdGljIGludCBudW1hX3pvbmVsaXN0X29yZGVyX2hhbmRsZXIoc3RydWN0IGN0bF90YWJsZSAq dGFibGUsIGludCB3cml0ZSwKK3N0YXRpYyBpbnQgbnVtYV96b25lbGlzdF9vcmRlcl9oYW5kbGVy KGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJCXZvaWQgKmJ1ZmZl ciwgc2l6ZV90ICpsZW5ndGgsIGxvZmZfdCAqcHBvcykKIHsKIAlpZiAod3JpdGUpCkBAIC02MTAy LDcgKzYxMDIsNyBAQCBwb3N0Y29yZV9pbml0Y2FsbChpbml0X3Blcl96b25lX3dtYXJrX21pbikK ICAqCXRoYXQgd2UgY2FuIGNhbGwgdHdvIGhlbHBlciBmdW5jdGlvbnMgd2hlbmV2ZXIgbWluX2Zy ZWVfa2J5dGVzCiAgKgljaGFuZ2VzLgogICovCi1zdGF0aWMgaW50IG1pbl9mcmVlX2tieXRlc19z eXNjdGxfaGFuZGxlcihzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAorc3RhdGlj IGludCBtaW5fZnJlZV9rYnl0ZXNfc3lzY3RsX2hhbmRsZXIoY29uc3Qgc3RydWN0IGN0bF90YWJs ZSAqdGFibGUsIGludCB3cml0ZSwKIAkJdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbmd0aCwgbG9m Zl90ICpwcG9zKQogewogCWludCByYzsKQEAgLTYxMTgsNyArNjExOCw3IEBAIHN0YXRpYyBpbnQg bWluX2ZyZWVfa2J5dGVzX3N5c2N0bF9oYW5kbGVyKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBp bnQgd3JpdGUsCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgd2F0ZXJtYXJrX3NjYWxlX2Zh Y3Rvcl9zeXNjdGxfaGFuZGxlcihzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAor c3RhdGljIGludCB3YXRlcm1hcmtfc2NhbGVfZmFjdG9yX3N5c2N0bF9oYW5kbGVyKGNvbnN0IHN0 cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJCXZvaWQgKmJ1ZmZlciwgc2l6ZV90 ICpsZW5ndGgsIGxvZmZfdCAqcHBvcykKIHsKIAlpbnQgcmM7CkBAIC02MTQ4LDcgKzYxNDgsNyBA QCBzdGF0aWMgdm9pZCBzZXR1cF9taW5fdW5tYXBwZWRfcmF0aW8odm9pZCkKIH0KIAogCi1zdGF0 aWMgaW50IHN5c2N0bF9taW5fdW5tYXBwZWRfcmF0aW9fc3lzY3RsX2hhbmRsZXIoc3RydWN0IGN0 bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKK3N0YXRpYyBpbnQgc3lzY3RsX21pbl91bm1hcHBl ZF9yYXRpb19zeXNjdGxfaGFuZGxlcihjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50 IHdyaXRlLAogCQl2b2lkICpidWZmZXIsIHNpemVfdCAqbGVuZ3RoLCBsb2ZmX3QgKnBwb3MpCiB7 CiAJaW50IHJjOwpAQCAtNjE3NSw3ICs2MTc1LDcgQEAgc3RhdGljIHZvaWQgc2V0dXBfbWluX3Ns YWJfcmF0aW8odm9pZCkKIAkJCQkJCSAgICAgc3lzY3RsX21pbl9zbGFiX3JhdGlvKSAvIDEwMDsK IH0KIAotc3RhdGljIGludCBzeXNjdGxfbWluX3NsYWJfcmF0aW9fc3lzY3RsX2hhbmRsZXIoc3Ry dWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKK3N0YXRpYyBpbnQgc3lzY3RsX21pbl9z bGFiX3JhdGlvX3N5c2N0bF9oYW5kbGVyKGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBp bnQgd3JpdGUsCiAJCXZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5ndGgsIGxvZmZfdCAqcHBvcykK IHsKIAlpbnQgcmM7CkBAIC02MTk5LDcgKzYxOTksNyBAQCBzdGF0aWMgaW50IHN5c2N0bF9taW5f c2xhYl9yYXRpb19zeXNjdGxfaGFuZGxlcihzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdy aQogICogbWluaW11bSB3YXRlcm1hcmtzLiBUaGUgbG93bWVtIHJlc2VydmUgcmF0aW8gY2FuIG9u bHkgbWFrZSBzZW5zZQogICogaWYgaW4gZnVuY3Rpb24gb2YgdGhlIGJvb3QgdGltZSB6b25lIHNp emVzLgogICovCi1zdGF0aWMgaW50IGxvd21lbV9yZXNlcnZlX3JhdGlvX3N5c2N0bF9oYW5kbGVy KHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLAorc3RhdGljIGludCBsb3dtZW1fcmVzZXJ2ZV9yYXRp b19zeXNjdGxfaGFuZGxlcihjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwKIAkJaW50IHdy aXRlLCB2b2lkICpidWZmZXIsIHNpemVfdCAqbGVuZ3RoLCBsb2ZmX3QgKnBwb3MpCiB7CiAJaW50 IGk7CkBAIC02MjIwLDcgKzYyMjAsNyBAQCBzdGF0aWMgaW50IGxvd21lbV9yZXNlcnZlX3JhdGlv X3N5c2N0bF9oYW5kbGVyKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLAogICogY3B1LiBJdCBpcyB0 aGUgZnJhY3Rpb24gb2YgdG90YWwgcGFnZXMgaW4gZWFjaCB6b25lIHRoYXQgYSBob3QgcGVyIGNw dQogICogcGFnZWxpc3QgY2FuIGhhdmUgYmVmb3JlIGl0IGdldHMgZmx1c2hlZCBiYWNrIHRvIGJ1 ZGR5IGFsbG9jYXRvci4KICAqLwotc3RhdGljIGludCBwZXJjcHVfcGFnZWxpc3RfaGlnaF9mcmFj dGlvbl9zeXNjdGxfaGFuZGxlcihzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwKK3N0YXRpYyBpbnQg cGVyY3B1X3BhZ2VsaXN0X2hpZ2hfZnJhY3Rpb25fc3lzY3RsX2hhbmRsZXIoY29uc3Qgc3RydWN0 IGN0bF90YWJsZSAqdGFibGUsCiAJCWludCB3cml0ZSwgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxl bmd0aCwgbG9mZl90ICpwcG9zKQogewogCXN0cnVjdCB6b25lICp6b25lOwpkaWZmIC0tZ2l0IGEv bW0vdXRpbC5jIGIvbW0vdXRpbC5jCmluZGV4IGM5ZTUxOWU2ODExZi4uOTU4YjkwMTNkMmYzIDEw MDY0NAotLS0gYS9tbS91dGlsLmMKKysrIGIvbW0vdXRpbC5jCkBAIC04MzUsOCArODM1LDggQEAg aW50IHN5c2N0bF9tYXhfbWFwX2NvdW50IF9fcmVhZF9tb3N0bHkgPSBERUZBVUxUX01BWF9NQVBf Q09VTlQ7CiB1bnNpZ25lZCBsb25nIHN5c2N0bF91c2VyX3Jlc2VydmVfa2J5dGVzIF9fcmVhZF9t b3N0bHkgPSAxVUwgPDwgMTc7IC8qIDEyOE1CICovCiB1bnNpZ25lZCBsb25nIHN5c2N0bF9hZG1p bl9yZXNlcnZlX2tieXRlcyBfX3JlYWRfbW9zdGx5ID0gMVVMIDw8IDEzOyAvKiA4TUIgKi8KIAot aW50IG92ZXJjb21taXRfcmF0aW9faGFuZGxlcihzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50 IHdyaXRlLCB2b2lkICpidWZmZXIsCi0JCXNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQoraW50 IG92ZXJjb21taXRfcmF0aW9faGFuZGxlcihjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwg aW50IHdyaXRlLAorCQl2b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQog ewogCWludCByZXQ7CiAKQEAgLTg1MSw4ICs4NTEsOCBAQCBzdGF0aWMgdm9pZCBzeW5jX292ZXJj b21taXRfYXMoc3RydWN0IHdvcmtfc3RydWN0ICpkdW1teSkKIAlwZXJjcHVfY291bnRlcl9zeW5j KCZ2bV9jb21taXR0ZWRfYXMpOwogfQogCi1pbnQgb3ZlcmNvbW1pdF9wb2xpY3lfaGFuZGxlcihz dHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLCB2b2lkICpidWZmZXIsCi0JCXNpemVf dCAqbGVucCwgbG9mZl90ICpwcG9zKQoraW50IG92ZXJjb21taXRfcG9saWN5X2hhbmRsZXIoY29u c3Qgc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKKwkJdm9pZCAqYnVmZmVyLCBz aXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlzdHJ1Y3QgY3RsX3RhYmxlIHQ7CiAJaW50 IG5ld19wb2xpY3kgPSAtMTsKQEAgLTg4Nyw4ICs4ODcsOCBAQCBpbnQgb3ZlcmNvbW1pdF9wb2xp Y3lfaGFuZGxlcihzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLCB2b2lkICpidWZm ZXIsCiAJcmV0dXJuIHJldDsKIH0KIAotaW50IG92ZXJjb21taXRfa2J5dGVzX2hhbmRsZXIoc3Ry dWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwgdm9pZCAqYnVmZmVyLAotCQlzaXplX3Qg KmxlbnAsIGxvZmZfdCAqcHBvcykKK2ludCBvdmVyY29tbWl0X2tieXRlc19oYW5kbGVyKGNvbnN0 IHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCisJCXZvaWQgKmJ1ZmZlciwgc2l6 ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJaW50IHJldDsKIApkaWZmIC0tZ2l0IGEvbW0v dm1zdGF0LmMgYi9tbS92bXN0YXQuYwppbmRleCA4NTA3YzQ5NzIxOGIuLjMzYTAzMmQ2OTU1NCAx MDA2NDQKLS0tIGEvbW0vdm1zdGF0LmMKKysrIGIvbW0vdm1zdGF0LmMKQEAgLTc0LDcgKzc0LDcg QEAgc3RhdGljIHZvaWQgaW52YWxpZF9udW1hX3N0YXRpc3RpY3Modm9pZCkKIAogc3RhdGljIERF RklORV9NVVRFWCh2bV9udW1hX3N0YXRfbG9jayk7CiAKLWludCBzeXNjdGxfdm1fbnVtYV9zdGF0 X2hhbmRsZXIoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKK2ludCBzeXNjdGxf dm1fbnVtYV9zdGF0X2hhbmRsZXIoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3 cml0ZSwKIAkJdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbmd0aCwgbG9mZl90ICpwcG9zKQogewog CWludCByZXQsIG9sZHZhbDsKQEAgLTE4ODcsNyArMTg4Nyw3IEBAIHN0YXRpYyB2b2lkIHJlZnJl c2hfdm1fc3RhdHMoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCXJlZnJlc2hfY3B1X3ZtX3N0 YXRzKHRydWUpOwogfQogCi1pbnQgdm1zdGF0X3JlZnJlc2goc3RydWN0IGN0bF90YWJsZSAqdGFi bGUsIGludCB3cml0ZSwKK2ludCB2bXN0YXRfcmVmcmVzaChjb25zdCBzdHJ1Y3QgY3RsX3RhYmxl ICp0YWJsZSwgaW50IHdyaXRlLAogCQkgICB2b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCwgbG9m Zl90ICpwcG9zKQogewogCWxvbmcgdmFsOwpkaWZmIC0tZ2l0IGEvbmV0L2JyaWRnZS9icl9uZXRm aWx0ZXJfaG9va3MuYyBiL25ldC9icmlkZ2UvYnJfbmV0ZmlsdGVyX2hvb2tzLmMKaW5kZXggNzk0 OGE5ZTc1NDJjLi4wYzk1ZWIwYWU4ZjAgMTAwNjQ0Ci0tLSBhL25ldC9icmlkZ2UvYnJfbmV0Zmls dGVyX2hvb2tzLmMKKysrIGIvbmV0L2JyaWRnZS9icl9uZXRmaWx0ZXJfaG9va3MuYwpAQCAtMTE3 Nyw3ICsxMTc3LDcgQEAgaW50IGJyX25mX2hvb2tfdGhyZXNoKHVuc2lnbmVkIGludCBob29rLCBz dHJ1Y3QgbmV0ICpuZXQsCiAKICNpZmRlZiBDT05GSUdfU1lTQ1RMCiBzdGF0aWMKLWludCBicm5m X3N5c2N0bF9jYWxsX3RhYmxlcyhzdHJ1Y3QgY3RsX3RhYmxlICpjdGwsIGludCB3cml0ZSwKK2lu dCBicm5mX3N5c2N0bF9jYWxsX3RhYmxlcyhjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICpjdGwsIGlu dCB3cml0ZSwKIAkJCSAgICB2b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9z KQogewogCWludCByZXQ7CmRpZmYgLS1naXQgYS9uZXQvY29yZS9uZWlnaGJvdXIuYyBiL25ldC9j b3JlL25laWdoYm91ci5jCmluZGV4IDkyYTAxNjY0YTcyMy4uOWEwODllM2JjZDM0IDEwMDY0NAot LS0gYS9uZXQvY29yZS9uZWlnaGJvdXIuYworKysgYi9uZXQvY29yZS9uZWlnaGJvdXIuYwpAQCAt MzU0Myw3ICszNTQzLDcgQEAgRVhQT1JUX1NZTUJPTChuZWlnaF9hcHBfbnMpOwogI2lmZGVmIENP TkZJR19TWVNDVEwKIHN0YXRpYyBpbnQgdW5yZXNfcWxlbl9tYXggPSBJTlRfTUFYIC8gU0tCX1RS VUVTSVpFKEVUSF9GUkFNRV9MRU4pOwogCi1zdGF0aWMgaW50IHByb2NfdW5yZXNfcWxlbihzdHJ1 Y3QgY3RsX3RhYmxlICpjdGwsIGludCB3cml0ZSwKK3N0YXRpYyBpbnQgcHJvY191bnJlc19xbGVu KGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKmN0bCwgaW50IHdyaXRlLAogCQkJICAgdm9pZCAqYnVm ZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlpbnQgc2l6ZSwgcmV0OwpAQCAt MzU5NSw3ICszNTk1LDcgQEAgc3RhdGljIHZvaWQgbmVpZ2hfcHJvY191cGRhdGUoY29uc3Qgc3Ry dWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUpCiAJCW5laWdoX2NvcHlfZGZsdF9wYXJtcyhu ZXQsIHAsIGluZGV4KTsKIH0KIAotc3RhdGljIGludCBuZWlnaF9wcm9jX2RvaW50dmVjX3plcm9f aW50bWF4KHN0cnVjdCBjdGxfdGFibGUgKmN0bCwgaW50IHdyaXRlLAorc3RhdGljIGludCBuZWln aF9wcm9jX2RvaW50dmVjX3plcm9faW50bWF4KGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKmN0bCwg aW50IHdyaXRlLAogCQkJCQkgICB2b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCwKIAkJCQkJICAg bG9mZl90ICpwcG9zKQogewpAQCAtMzYxMCw3ICszNjEwLDcgQEAgc3RhdGljIGludCBuZWlnaF9w cm9jX2RvaW50dmVjX3plcm9faW50bWF4KHN0cnVjdCBjdGxfdGFibGUgKmN0bCwgaW50IHdyaXRl LAogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyBpbnQgbmVpZ2hfcHJvY19kb2ludHZlY19tc19q aWZmaWVzX3Bvc2l0aXZlKHN0cnVjdCBjdGxfdGFibGUgKmN0bCwgaW50IHdyaXRlLAorc3RhdGlj IGludCBuZWlnaF9wcm9jX2RvaW50dmVjX21zX2ppZmZpZXNfcG9zaXRpdmUoY29uc3Qgc3RydWN0 IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsCiAJCQkJCQkgICB2b2lkICpidWZmZXIsIHNpemVf dCAqbGVucCwgbG9mZl90ICpwcG9zKQogewogCXN0cnVjdCBjdGxfdGFibGUgdG1wID0gKmN0bDsK QEAgLTM2MjYsNyArMzYyNiw3IEBAIHN0YXRpYyBpbnQgbmVpZ2hfcHJvY19kb2ludHZlY19tc19q aWZmaWVzX3Bvc2l0aXZlKHN0cnVjdCBjdGxfdGFibGUgKmN0bCwgaW50IHdyCiAJcmV0dXJuIHJl dDsKIH0KIAotaW50IG5laWdoX3Byb2NfZG9pbnR2ZWMoc3RydWN0IGN0bF90YWJsZSAqY3RsLCBp bnQgd3JpdGUsIHZvaWQgKmJ1ZmZlciwKK2ludCBuZWlnaF9wcm9jX2RvaW50dmVjKGNvbnN0IHN0 cnVjdCBjdGxfdGFibGUgKmN0bCwgaW50IHdyaXRlLCB2b2lkICpidWZmZXIsCiAJCQlzaXplX3Qg KmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlpbnQgcmV0ID0gcHJvY19kb2ludHZlYyhjdGwsIHdy aXRlLCBidWZmZXIsIGxlbnAsIHBwb3MpOwpAQCAtMzYzNiw3ICszNjM2LDcgQEAgaW50IG5laWdo X3Byb2NfZG9pbnR2ZWMoc3RydWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsIHZvaWQgKmJ1 ZmZlciwKIH0KIEVYUE9SVF9TWU1CT0wobmVpZ2hfcHJvY19kb2ludHZlYyk7CiAKLWludCBuZWln aF9wcm9jX2RvaW50dmVjX2ppZmZpZXMoc3RydWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUs IHZvaWQgKmJ1ZmZlciwKK2ludCBuZWlnaF9wcm9jX2RvaW50dmVjX2ppZmZpZXMoY29uc3Qgc3Ry dWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsIHZvaWQgKmJ1ZmZlciwKIAkJCQlzaXplX3Qg KmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlpbnQgcmV0ID0gcHJvY19kb2ludHZlY19qaWZmaWVz KGN0bCwgd3JpdGUsIGJ1ZmZlciwgbGVucCwgcHBvcyk7CkBAIC0zNjQ2LDcgKzM2NDYsNyBAQCBp bnQgbmVpZ2hfcHJvY19kb2ludHZlY19qaWZmaWVzKHN0cnVjdCBjdGxfdGFibGUgKmN0bCwgaW50 IHdyaXRlLCB2b2lkICpidWZmZXIsCiB9CiBFWFBPUlRfU1lNQk9MKG5laWdoX3Byb2NfZG9pbnR2 ZWNfamlmZmllcyk7CiAKLXN0YXRpYyBpbnQgbmVpZ2hfcHJvY19kb2ludHZlY191c2VyaHpfamlm ZmllcyhzdHJ1Y3QgY3RsX3RhYmxlICpjdGwsIGludCB3cml0ZSwKK3N0YXRpYyBpbnQgbmVpZ2hf cHJvY19kb2ludHZlY191c2VyaHpfamlmZmllcyhjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICpjdGws IGludCB3cml0ZSwKIAkJCQkJICAgICAgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsCiAJCQkJ CSAgICAgIGxvZmZfdCAqcHBvcykKIHsKQEAgLTM2NTYsNyArMzY1Niw3IEBAIHN0YXRpYyBpbnQg bmVpZ2hfcHJvY19kb2ludHZlY191c2VyaHpfamlmZmllcyhzdHJ1Y3QgY3RsX3RhYmxlICpjdGws IGludCB3cml0ZSwKIAlyZXR1cm4gcmV0OwogfQogCi1pbnQgbmVpZ2hfcHJvY19kb2ludHZlY19t c19qaWZmaWVzKHN0cnVjdCBjdGxfdGFibGUgKmN0bCwgaW50IHdyaXRlLAoraW50IG5laWdoX3By b2NfZG9pbnR2ZWNfbXNfamlmZmllcyhjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICpjdGwsIGludCB3 cml0ZSwKIAkJCQkgICB2b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQog ewogCWludCByZXQgPSBwcm9jX2RvaW50dmVjX21zX2ppZmZpZXMoY3RsLCB3cml0ZSwgYnVmZmVy LCBsZW5wLCBwcG9zKTsKQEAgLTM2NjYsNyArMzY2Niw3IEBAIGludCBuZWlnaF9wcm9jX2RvaW50 dmVjX21zX2ppZmZpZXMoc3RydWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsCiB9CiBFWFBP UlRfU1lNQk9MKG5laWdoX3Byb2NfZG9pbnR2ZWNfbXNfamlmZmllcyk7CiAKLXN0YXRpYyBpbnQg bmVpZ2hfcHJvY19kb2ludHZlY191bnJlc19xbGVuKHN0cnVjdCBjdGxfdGFibGUgKmN0bCwgaW50 IHdyaXRlLAorc3RhdGljIGludCBuZWlnaF9wcm9jX2RvaW50dmVjX3VucmVzX3FsZW4oY29uc3Qg c3RydWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsCiAJCQkJCSAgdm9pZCAqYnVmZmVyLCBz aXplX3QgKmxlbnAsCiAJCQkJCSAgbG9mZl90ICpwcG9zKQogewpAQCAtMzY3Niw3ICszNjc2LDcg QEAgc3RhdGljIGludCBuZWlnaF9wcm9jX2RvaW50dmVjX3VucmVzX3FsZW4oc3RydWN0IGN0bF90 YWJsZSAqY3RsLCBpbnQgd3JpdGUsCiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGludCBuZWln aF9wcm9jX2Jhc2VfcmVhY2hhYmxlX3RpbWUoc3RydWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3Jp dGUsCitzdGF0aWMgaW50IG5laWdoX3Byb2NfYmFzZV9yZWFjaGFibGVfdGltZShjb25zdCBzdHJ1 Y3QgY3RsX3RhYmxlICpjdGwsIGludCB3cml0ZSwKIAkJCQkJICB2b2lkICpidWZmZXIsIHNpemVf dCAqbGVucCwKIAkJCQkJICBsb2ZmX3QgKnBwb3MpCiB7CmRpZmYgLS1naXQgYS9uZXQvY29yZS9z eXNjdGxfbmV0X2NvcmUuYyBiL25ldC9jb3JlL3N5c2N0bF9uZXRfY29yZS5jCmluZGV4IDkwM2Fi NGE1MWMxNy4uYmE5ODQyZDc3M2UzIDEwMDY0NAotLS0gYS9uZXQvY29yZS9zeXNjdGxfbmV0X2Nv cmUuYworKysgYi9uZXQvY29yZS9zeXNjdGxfbmV0X2NvcmUuYwpAQCAtOTQsNyArOTQsNyBAQCBz dGF0aWMgc3RydWN0IGNwdW1hc2sgKnJwc19kZWZhdWx0X21hc2tfY293X2FsbG9jKHN0cnVjdCBu ZXQgKm5ldCkKIAlyZXR1cm4gcnBzX2RlZmF1bHRfbWFzazsKIH0KIAotc3RhdGljIGludCBycHNf ZGVmYXVsdF9tYXNrX3N5c2N0bChzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAor c3RhdGljIGludCBycHNfZGVmYXVsdF9tYXNrX3N5c2N0bChjb25zdCBzdHJ1Y3QgY3RsX3RhYmxl ICp0YWJsZSwgaW50IHdyaXRlLAogCQkJCSAgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBs b2ZmX3QgKnBwb3MpCiB7CiAJc3RydWN0IG5ldCAqbmV0ID0gKHN0cnVjdCBuZXQgKil0YWJsZS0+ ZGF0YTsKQEAgLTEyNSw3ICsxMjUsNyBAQCBzdGF0aWMgaW50IHJwc19kZWZhdWx0X21hc2tfc3lz Y3RsKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJcmV0dXJuIGVycjsKIH0K IAotc3RhdGljIGludCBycHNfc29ja19mbG93X3N5c2N0bChzdHJ1Y3QgY3RsX3RhYmxlICp0YWJs ZSwgaW50IHdyaXRlLAorc3RhdGljIGludCBycHNfc29ja19mbG93X3N5c2N0bChjb25zdCBzdHJ1 Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCQkJCXZvaWQgKmJ1ZmZlciwgc2l6ZV90 ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJdW5zaWduZWQgaW50IG9yaWdfc2l6ZSwgc2l6ZTsK QEAgLTE5Nyw3ICsxOTcsNyBAQCBzdGF0aWMgaW50IHJwc19zb2NrX2Zsb3dfc3lzY3RsKHN0cnVj dCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAjaWZkZWYgQ09ORklHX05FVF9GTE9XX0xJ TUlUCiBzdGF0aWMgREVGSU5FX01VVEVYKGZsb3dfbGltaXRfdXBkYXRlX211dGV4KTsKIAotc3Rh dGljIGludCBmbG93X2xpbWl0X2NwdV9zeXNjdGwoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGlu dCB3cml0ZSwKK3N0YXRpYyBpbnQgZmxvd19saW1pdF9jcHVfc3lzY3RsKGNvbnN0IHN0cnVjdCBj dGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJCQkJIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICps ZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJc3RydWN0IHNkX2Zsb3dfbGltaXQgKmN1cjsKQEAgLTI1 NCw3ICsyNTQsNyBAQCBzdGF0aWMgaW50IGZsb3dfbGltaXRfY3B1X3N5c2N0bChzdHJ1Y3QgY3Rs X3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyBpbnQg Zmxvd19saW1pdF90YWJsZV9sZW5fc3lzY3RsKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQg d3JpdGUsCitzdGF0aWMgaW50IGZsb3dfbGltaXRfdGFibGVfbGVuX3N5c2N0bChjb25zdCBzdHJ1 Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCQkJCSAgICAgICB2b2lkICpidWZmZXIs IHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQogewogCXVuc2lnbmVkIGludCBvbGQsICpwdHI7 CkBAIC0yNzYsNyArMjc2LDcgQEAgc3RhdGljIGludCBmbG93X2xpbWl0X3RhYmxlX2xlbl9zeXNj dGwoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKICNlbmRpZiAvKiBDT05GSUdf TkVUX0ZMT1dfTElNSVQgKi8KIAogI2lmZGVmIENPTkZJR19ORVRfU0NIRUQKLXN0YXRpYyBpbnQg c2V0X2RlZmF1bHRfcWRpc2Moc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKK3N0 YXRpYyBpbnQgc2V0X2RlZmF1bHRfcWRpc2MoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqdGFibGUs IGludCB3cml0ZSwKIAkJCSAgICAgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAq cHBvcykKIHsKIAljaGFyIGlkW0lGTkFNU0laXTsKQEAgLTI5NSw3ICsyOTUsNyBAQCBzdGF0aWMg aW50IHNldF9kZWZhdWx0X3FkaXNjKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUs CiB9CiAjZW5kaWYKIAotc3RhdGljIGludCBwcm9jX2RvX2Rldl93ZWlnaHQoc3RydWN0IGN0bF90 YWJsZSAqdGFibGUsIGludCB3cml0ZSwKK3N0YXRpYyBpbnQgcHJvY19kb19kZXZfd2VpZ2h0KGNv bnN0IHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJCQkgICB2b2lkICpidWZm ZXIsIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQogewogCXN0YXRpYyBERUZJTkVfTVVURVgo ZGV2X3dlaWdodF9tdXRleCk7CkBAIC0zMTMsNyArMzEzLDcgQEAgc3RhdGljIGludCBwcm9jX2Rv X2Rldl93ZWlnaHQoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIAlyZXR1cm4g cmV0OwogfQogCi1zdGF0aWMgaW50IHByb2NfZG9fcnNzX2tleShzdHJ1Y3QgY3RsX3RhYmxlICp0 YWJsZSwgaW50IHdyaXRlLAorc3RhdGljIGludCBwcm9jX2RvX3Jzc19rZXkoY29uc3Qgc3RydWN0 IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIAkJCSAgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90 ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJc3RydWN0IGN0bF90YWJsZSBmYWtlX3RhYmxlOwpA QCAtMzI2LDcgKzMyNiw3IEBAIHN0YXRpYyBpbnQgcHJvY19kb19yc3Nfa2V5KHN0cnVjdCBjdGxf dGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiB9CiAKICNpZmRlZiBDT05GSUdfQlBGX0pJVAotc3Rh dGljIGludCBwcm9jX2RvaW50dmVjX21pbm1heF9icGZfZW5hYmxlKHN0cnVjdCBjdGxfdGFibGUg KnRhYmxlLCBpbnQgd3JpdGUsCitzdGF0aWMgaW50IHByb2NfZG9pbnR2ZWNfbWlubWF4X2JwZl9l bmFibGUoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIAkJCQkJICAg dm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsCiAJCQkJCSAgIGxvZmZfdCAqcHBvcykKIHsKQEAg LTM1OSw3ICszNTksNyBAQCBzdGF0aWMgaW50IHByb2NfZG9pbnR2ZWNfbWlubWF4X2JwZl9lbmFi bGUoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIAogIyBpZmRlZiBDT05GSUdf SEFWRV9FQlBGX0pJVAogc3RhdGljIGludAotcHJvY19kb2ludHZlY19taW5tYXhfYnBmX3Jlc3Ry aWN0ZWQoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKK3Byb2NfZG9pbnR2ZWNf bWlubWF4X2JwZl9yZXN0cmljdGVkKGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQg d3JpdGUsCiAJCQkJICAgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3Mp CiB7CiAJaWYgKCFjYXBhYmxlKENBUF9TWVNfQURNSU4pKQpAQCAtMzcwLDcgKzM3MCw3IEBAIHBy b2NfZG9pbnR2ZWNfbWlubWF4X2JwZl9yZXN0cmljdGVkKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxl LCBpbnQgd3JpdGUsCiAjIGVuZGlmIC8qIENPTkZJR19IQVZFX0VCUEZfSklUICovCiAKIHN0YXRp YyBpbnQKLXByb2NfZG9sb25ndmVjX21pbm1heF9icGZfcmVzdHJpY3RlZChzdHJ1Y3QgY3RsX3Rh YmxlICp0YWJsZSwgaW50IHdyaXRlLAorcHJvY19kb2xvbmd2ZWNfbWlubWF4X2JwZl9yZXN0cmlj dGVkKGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJCQkJICAgICB2 b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQogewogCWlmICghY2FwYWJs ZShDQVBfU1lTX0FETUlOKSkKZGlmZiAtLWdpdCBhL25ldC9pcHY0L2RldmluZXQuYyBiL25ldC9p cHY0L2RldmluZXQuYwppbmRleCA3NTkyZjI0MjMzNmIuLjJlNjkxMmMxZmIyMSAxMDA2NDQKLS0t IGEvbmV0L2lwdjQvZGV2aW5ldC5jCisrKyBiL25ldC9pcHY0L2RldmluZXQuYwpAQCAtMjM3Nyw3 ICsyMzc3LDcgQEAgc3RhdGljIGludCBkZXZpbmV0X2NvbmZfaWZpbmRleChzdHJ1Y3QgbmV0ICpu ZXQsIHN0cnVjdCBpcHY0X2RldmNvbmYgKmNuZikKIAl9CiB9CiAKLXN0YXRpYyBpbnQgZGV2aW5l dF9jb25mX3Byb2Moc3RydWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsCitzdGF0aWMgaW50 IGRldmluZXRfY29uZl9wcm9jKGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKmN0bCwgaW50IHdyaXRl LAogCQkJICAgICB2b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQogewog CWludCBvbGRfdmFsdWUgPSAqKGludCAqKWN0bC0+ZGF0YTsKQEAgLTI0MjksNyArMjQyOSw3IEBA IHN0YXRpYyBpbnQgZGV2aW5ldF9jb25mX3Byb2Moc3RydWN0IGN0bF90YWJsZSAqY3RsLCBpbnQg d3JpdGUsCiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGludCBkZXZpbmV0X3N5c2N0bF9mb3J3 YXJkKHN0cnVjdCBjdGxfdGFibGUgKmN0bCwgaW50IHdyaXRlLAorc3RhdGljIGludCBkZXZpbmV0 X3N5c2N0bF9mb3J3YXJkKGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKmN0bCwgaW50IHdyaXRlLAog CQkJCSAgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlpbnQg KnZhbHAgPSBjdGwtPmRhdGE7CkBAIC0yNDc2LDcgKzI0NzYsNyBAQCBzdGF0aWMgaW50IGRldmlu ZXRfc3lzY3RsX2ZvcndhcmQoc3RydWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsCiAJcmV0 dXJuIHJldDsKIH0KIAotc3RhdGljIGludCBpcHY0X2RvaW50X2FuZF9mbHVzaChzdHJ1Y3QgY3Rs X3RhYmxlICpjdGwsIGludCB3cml0ZSwKK3N0YXRpYyBpbnQgaXB2NF9kb2ludF9hbmRfZmx1c2go Y29uc3Qgc3RydWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsCiAJCQkJdm9pZCAqYnVmZmVy LCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlpbnQgKnZhbHAgPSBjdGwtPmRhdGE7 CmRpZmYgLS1naXQgYS9uZXQvaXB2NC9yb3V0ZS5jIGIvbmV0L2lwdjQvcm91dGUuYwppbmRleCAy ZTI5YWI4MTk5NjcuLmQyZTg4ZjNlNmZlOCAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvcm91dGUuYwor KysgYi9uZXQvaXB2NC9yb3V0ZS5jCkBAIC0zMzk0LDcgKzMzOTQsNyBAQCBzdGF0aWMgaW50IGlw X3J0X2djX21pbl9pbnRlcnZhbCBfX3JlYWRfbW9zdGx5CT0gSFogLyAyOwogc3RhdGljIGludCBp cF9ydF9nY19lbGFzdGljaXR5IF9fcmVhZF9tb3N0bHkJPSA4Owogc3RhdGljIGludCBpcF9taW5f dmFsaWRfcG10dSBfX3JlYWRfbW9zdGx5CT0gSVBWNF9NSU5fTVRVOwogCi1zdGF0aWMgaW50IGlw djRfc3lzY3RsX3J0Y2FjaGVfZmx1c2goc3RydWN0IGN0bF90YWJsZSAqX19jdGwsIGludCB3cml0 ZSwKK3N0YXRpYyBpbnQgaXB2NF9zeXNjdGxfcnRjYWNoZV9mbHVzaChjb25zdCBzdHJ1Y3QgY3Rs X3RhYmxlICpfX2N0bCwgaW50IHdyaXRlLAogCQl2b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCwg bG9mZl90ICpwcG9zKQogewogCXN0cnVjdCBuZXQgKm5ldCA9IChzdHJ1Y3QgbmV0ICopX19jdGwt PmV4dHJhMTsKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3N5c2N0bF9uZXRfaXB2NC5jIGIvbmV0L2lw djQvc3lzY3RsX25ldF9pcHY0LmMKaW5kZXggZmM0YzAwMWJmNzJhLi40YzNhMDNiN2EwZjggMTAw NjQ0Ci0tLSBhL25ldC9pcHY0L3N5c2N0bF9uZXRfaXB2NC5jCisrKyBiL25ldC9pcHY0L3N5c2N0 bF9uZXRfaXB2NC5jCkBAIC02Miw3ICs2Miw3IEBAIHN0YXRpYyB2b2lkIHNldF9sb2NhbF9wb3J0 X3JhbmdlKHN0cnVjdCBuZXQgKm5ldCwgdW5zaWduZWQgaW50IGxvdywgdW5zaWduZWQgaW50CiB9 CiAKIC8qIFZhbGlkYXRlIGNoYW5nZXMgZnJvbSAvcHJvYyBpbnRlcmZhY2UuICovCi1zdGF0aWMg aW50IGlwdjRfbG9jYWxfcG9ydF9yYW5nZShzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdy aXRlLAorc3RhdGljIGludCBpcHY0X2xvY2FsX3BvcnRfcmFuZ2UoY29uc3Qgc3RydWN0IGN0bF90 YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIAkJCQkgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAs IGxvZmZfdCAqcHBvcykKIHsKIAlzdHJ1Y3QgbmV0ICpuZXQgPSB0YWJsZS0+ZGF0YTsKQEAgLTk2 LDcgKzk2LDcgQEAgc3RhdGljIGludCBpcHY0X2xvY2FsX3BvcnRfcmFuZ2Uoc3RydWN0IGN0bF90 YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIH0KIAogLyogVmFsaWRhdGUgY2hhbmdlcyBmcm9tIC9w cm9jIGludGVyZmFjZS4gKi8KLXN0YXRpYyBpbnQgaXB2NF9wcml2aWxlZ2VkX3BvcnRzKHN0cnVj dCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCitzdGF0aWMgaW50IGlwdjRfcHJpdmlsZWdl ZF9wb3J0cyhjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCQkJCXZv aWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJc3RydWN0IG5ldCAq bmV0ID0gY29udGFpbmVyX29mKHRhYmxlLT5kYXRhLCBzdHJ1Y3QgbmV0LApAQCAtMTU5LDcgKzE1 OSw3IEBAIHN0YXRpYyB2b2lkIHNldF9waW5nX2dyb3VwX3JhbmdlKGNvbnN0IHN0cnVjdCBjdGxf dGFibGUgKnRhYmxlLAogfQogCiAvKiBWYWxpZGF0ZSBjaGFuZ2VzIGZyb20gL3Byb2MgaW50ZXJm YWNlLiAqLwotc3RhdGljIGludCBpcHY0X3BpbmdfZ3JvdXBfcmFuZ2Uoc3RydWN0IGN0bF90YWJs ZSAqdGFibGUsIGludCB3cml0ZSwKK3N0YXRpYyBpbnQgaXB2NF9waW5nX2dyb3VwX3JhbmdlKGNv bnN0IHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJCQkJIHZvaWQgKmJ1ZmZl ciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJc3RydWN0IHVzZXJfbmFtZXNwYWNl ICp1c2VyX25zID0gY3VycmVudF91c2VyX25zKCk7CkBAIC0xOTQsNyArMTk0LDcgQEAgc3RhdGlj IGludCBpcHY0X3BpbmdfZ3JvdXBfcmFuZ2Uoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3 cml0ZSwKIAlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgaW50IGlwdjRfZndkX3VwZGF0ZV9wcmlv cml0eShzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAorc3RhdGljIGludCBpcHY0 X2Z3ZF91cGRhdGVfcHJpb3JpdHkoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3 cml0ZSwKIAkJCQkgICAgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykK IHsKIAlzdHJ1Y3QgbmV0ICpuZXQ7CkBAIC0yMTAsNyArMjEwLDcgQEAgc3RhdGljIGludCBpcHY0 X2Z3ZF91cGRhdGVfcHJpb3JpdHkoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwK IAlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgaW50IHByb2NfdGNwX2Nvbmdlc3Rpb25fY29udHJv bChzdHJ1Y3QgY3RsX3RhYmxlICpjdGwsIGludCB3cml0ZSwKK3N0YXRpYyBpbnQgcHJvY190Y3Bf Y29uZ2VzdGlvbl9jb250cm9sKGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKmN0bCwgaW50IHdyaXRl LAogCQkJCSAgICAgICB2b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQog ewogCXN0cnVjdCBuZXQgKm5ldCA9IGNvbnRhaW5lcl9vZihjdGwtPmRhdGEsIHN0cnVjdCBuZXQs CkBAIC0yMzAsNyArMjMwLDcgQEAgc3RhdGljIGludCBwcm9jX3RjcF9jb25nZXN0aW9uX2NvbnRy b2woc3RydWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsCiAJcmV0dXJuIHJldDsKIH0KIAot c3RhdGljIGludCBwcm9jX3RjcF9hdmFpbGFibGVfY29uZ2VzdGlvbl9jb250cm9sKHN0cnVjdCBj dGxfdGFibGUgKmN0bCwKK3N0YXRpYyBpbnQgcHJvY190Y3BfYXZhaWxhYmxlX2Nvbmdlc3Rpb25f Y29udHJvbChjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICpjdGwsCiAJCQkJCQkgaW50IHdyaXRlLCB2 b2lkICpidWZmZXIsCiAJCQkJCQkgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CkBAIC0y NDYsNyArMjQ2LDcgQEAgc3RhdGljIGludCBwcm9jX3RjcF9hdmFpbGFibGVfY29uZ2VzdGlvbl9j b250cm9sKHN0cnVjdCBjdGxfdGFibGUgKmN0bCwKIAlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMg aW50IHByb2NfYWxsb3dlZF9jb25nZXN0aW9uX2NvbnRyb2woc3RydWN0IGN0bF90YWJsZSAqY3Rs LAorc3RhdGljIGludCBwcm9jX2FsbG93ZWRfY29uZ2VzdGlvbl9jb250cm9sKGNvbnN0IHN0cnVj dCBjdGxfdGFibGUgKmN0bCwKIAkJCQkJICAgaW50IHdyaXRlLCB2b2lkICpidWZmZXIsCiAJCQkJ CSAgIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQogewpAQCAtMjgzLDcgKzI4Myw3IEBAIHN0 YXRpYyBpbnQgc3NjYW5mX2tleShjaGFyICpidWYsIF9fbGUzMiAqa2V5KQogCXJldHVybiByZXQ7 CiB9CiAKLXN0YXRpYyBpbnQgcHJvY190Y3BfZmFzdG9wZW5fa2V5KHN0cnVjdCBjdGxfdGFibGUg KnRhYmxlLCBpbnQgd3JpdGUsCitzdGF0aWMgaW50IHByb2NfdGNwX2Zhc3RvcGVuX2tleShjb25z dCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCQkJCSB2b2lkICpidWZmZXIs IHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQogewogCXN0cnVjdCBuZXQgKm5ldCA9IGNvbnRh aW5lcl9vZih0YWJsZS0+ZGF0YSwgc3RydWN0IG5ldCwKQEAgLTM1NCw3ICszNTQsNyBAQCBzdGF0 aWMgaW50IHByb2NfdGNwX2Zhc3RvcGVuX2tleShzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50 IHdyaXRlLAogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyBpbnQgcHJvY190Zm9fYmxhY2tob2xl X2RldGVjdF90aW1lb3V0KHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLAorc3RhdGljIGludCBwcm9j X3Rmb19ibGFja2hvbGVfZGV0ZWN0X3RpbWVvdXQoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqdGFi bGUsCiAJCQkJCSAgICAgaW50IHdyaXRlLCB2b2lkICpidWZmZXIsCiAJCQkJCSAgICAgc2l6ZV90 ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CkBAIC0zNjksNyArMzY5LDcgQEAgc3RhdGljIGludCBw cm9jX3Rmb19ibGFja2hvbGVfZGV0ZWN0X3RpbWVvdXQoc3RydWN0IGN0bF90YWJsZSAqdGFibGUs CiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGludCBwcm9jX3RjcF9hdmFpbGFibGVfdWxwKHN0 cnVjdCBjdGxfdGFibGUgKmN0bCwKK3N0YXRpYyBpbnQgcHJvY190Y3BfYXZhaWxhYmxlX3VscChj b25zdCBzdHJ1Y3QgY3RsX3RhYmxlICpjdGwsCiAJCQkJICBpbnQgd3JpdGUsIHZvaWQgKmJ1ZmZl ciwgc2l6ZV90ICpsZW5wLAogCQkJCSAgbG9mZl90ICpwcG9zKQogewpAQCAtMzg2LDcgKzM4Niw3 IEBAIHN0YXRpYyBpbnQgcHJvY190Y3BfYXZhaWxhYmxlX3VscChzdHJ1Y3QgY3RsX3RhYmxlICpj dGwsCiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGludCBwcm9jX3RjcF9laGFzaF9lbnRyaWVz KHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCitzdGF0aWMgaW50IHByb2NfdGNw X2VoYXNoX2VudHJpZXMoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwK IAkJCQkgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJc3Ry dWN0IG5ldCAqbmV0ID0gY29udGFpbmVyX29mKHRhYmxlLT5kYXRhLCBzdHJ1Y3QgbmV0LApAQCAt NDEwLDcgKzQxMCw3IEBAIHN0YXRpYyBpbnQgcHJvY190Y3BfZWhhc2hfZW50cmllcyhzdHJ1Y3Qg Y3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCXJldHVybiBwcm9jX2RvaW50dmVjKCZ0Ymws IHdyaXRlLCBidWZmZXIsIGxlbnAsIHBwb3MpOwogfQogCi1zdGF0aWMgaW50IHByb2NfdWRwX2hh c2hfZW50cmllcyhzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAorc3RhdGljIGlu dCBwcm9jX3VkcF9oYXNoX2VudHJpZXMoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGlu dCB3cml0ZSwKIAkJCQkgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykK IHsKIAlzdHJ1Y3QgbmV0ICpuZXQgPSBjb250YWluZXJfb2YodGFibGUtPmRhdGEsIHN0cnVjdCBu ZXQsCkBAIC00MzQsOCArNDM0LDggQEAgc3RhdGljIGludCBwcm9jX3VkcF9oYXNoX2VudHJpZXMo c3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIH0KIAogI2lmZGVmIENPTkZJR19J UF9ST1VURV9NVUxUSVBBVEgKLXN0YXRpYyBpbnQgcHJvY19maWJfbXVsdGlwYXRoX2hhc2hfcG9s aWN5KHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCi0JCQkJCSAgdm9pZCAqYnVm ZmVyLCBzaXplX3QgKmxlbnAsCitzdGF0aWMgaW50IHByb2NfZmliX211bHRpcGF0aF9oYXNoX3Bv bGljeShjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwKKwkJCQkJICBpbnQgd3JpdGUsIHZv aWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLAogCQkJCQkgIGxvZmZfdCAqcHBvcykKIHsKIAlzdHJ1 Y3QgbmV0ICpuZXQgPSBjb250YWluZXJfb2YodGFibGUtPmRhdGEsIHN0cnVjdCBuZXQsCkBAIC00 NDksOCArNDQ5LDggQEAgc3RhdGljIGludCBwcm9jX2ZpYl9tdWx0aXBhdGhfaGFzaF9wb2xpY3ko c3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIAlyZXR1cm4gcmV0OwogfQogCi1z dGF0aWMgaW50IHByb2NfZmliX211bHRpcGF0aF9oYXNoX2ZpZWxkcyhzdHJ1Y3QgY3RsX3RhYmxl ICp0YWJsZSwgaW50IHdyaXRlLAotCQkJCQkgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLAor c3RhdGljIGludCBwcm9jX2ZpYl9tdWx0aXBhdGhfaGFzaF9maWVsZHMoY29uc3Qgc3RydWN0IGN0 bF90YWJsZSAqdGFibGUsCisJCQkJCSAgaW50IHdyaXRlLCB2b2lkICpidWZmZXIsIHNpemVfdCAq bGVucCwKIAkJCQkJICBsb2ZmX3QgKnBwb3MpCiB7CiAJc3RydWN0IG5ldCAqbmV0OwpkaWZmIC0t Z2l0IGEvbmV0L2lwdjYvYWRkcmNvbmYuYyBiL25ldC9pcHY2L2FkZHJjb25mLmMKaW5kZXggOTZh YjM0OWU4YmE0Li41MTkwYWNjM2M0ZjggMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L2FkZHJjb25mLmMK KysrIGIvbmV0L2lwdjYvYWRkcmNvbmYuYwpAQCAtNjMwOCw3ICs2MzA4LDcgQEAgc3RhdGljIHZv aWQgaXB2Nl9pZmFfbm90aWZ5KGludCBldmVudCwgc3RydWN0IGluZXQ2X2lmYWRkciAqaWZwKQog CiAjaWZkZWYgQ09ORklHX1NZU0NUTAogCi1zdGF0aWMgaW50IGFkZHJjb25mX3N5c2N0bF9mb3J3 YXJkKHN0cnVjdCBjdGxfdGFibGUgKmN0bCwgaW50IHdyaXRlLAorc3RhdGljIGludCBhZGRyY29u Zl9zeXNjdGxfZm9yd2FyZChjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICpjdGwsIGludCB3cml0ZSwK IAkJdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlpbnQgKnZh bHAgPSBjdGwtPmRhdGE7CkBAIC02MzMzLDcgKzYzMzMsNyBAQCBzdGF0aWMgaW50IGFkZHJjb25m X3N5c2N0bF9mb3J3YXJkKHN0cnVjdCBjdGxfdGFibGUgKmN0bCwgaW50IHdyaXRlLAogCXJldHVy biByZXQ7CiB9CiAKLXN0YXRpYyBpbnQgYWRkcmNvbmZfc3lzY3RsX210dShzdHJ1Y3QgY3RsX3Rh YmxlICpjdGwsIGludCB3cml0ZSwKK3N0YXRpYyBpbnQgYWRkcmNvbmZfc3lzY3RsX210dShjb25z dCBzdHJ1Y3QgY3RsX3RhYmxlICpjdGwsIGludCB3cml0ZSwKIAkJdm9pZCAqYnVmZmVyLCBzaXpl X3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlzdHJ1Y3QgaW5ldDZfZGV2ICppZGV2ID0gY3Rs LT5leHRyYTE7CkBAIC02NDA0LDcgKzY0MDQsNyBAQCBzdGF0aWMgaW50IGFkZHJjb25mX2Rpc2Fi bGVfaXB2Nihjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50ICpwLCBpbnQgbmV3Zgog CXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGFkZHJjb25mX3N5c2N0bF9kaXNhYmxlKHN0cnVj dCBjdGxfdGFibGUgKmN0bCwgaW50IHdyaXRlLAorc3RhdGljIGludCBhZGRyY29uZl9zeXNjdGxf ZGlzYWJsZShjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICpjdGwsIGludCB3cml0ZSwKIAkJdm9pZCAq YnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlpbnQgKnZhbHAgPSBjdGwt PmRhdGE7CkBAIC02NDI5LDcgKzY0MjksNyBAQCBzdGF0aWMgaW50IGFkZHJjb25mX3N5c2N0bF9k aXNhYmxlKHN0cnVjdCBjdGxfdGFibGUgKmN0bCwgaW50IHdyaXRlLAogCXJldHVybiByZXQ7CiB9 CiAKLXN0YXRpYyBpbnQgYWRkcmNvbmZfc3lzY3RsX3Byb3h5X25kcChzdHJ1Y3QgY3RsX3RhYmxl ICpjdGwsIGludCB3cml0ZSwKK3N0YXRpYyBpbnQgYWRkcmNvbmZfc3lzY3RsX3Byb3h5X25kcChj b25zdCBzdHJ1Y3QgY3RsX3RhYmxlICpjdGwsIGludCB3cml0ZSwKIAkJdm9pZCAqYnVmZmVyLCBz aXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlpbnQgKnZhbHAgPSBjdGwtPmRhdGE7CkBA IC02NDcwLDcgKzY0NzAsNyBAQCBzdGF0aWMgaW50IGFkZHJjb25mX3N5c2N0bF9wcm94eV9uZHAo c3RydWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsCiAJcmV0dXJuIHJldDsKIH0KIAotc3Rh dGljIGludCBhZGRyY29uZl9zeXNjdGxfYWRkcl9nZW5fbW9kZShzdHJ1Y3QgY3RsX3RhYmxlICpj dGwsIGludCB3cml0ZSwKK3N0YXRpYyBpbnQgYWRkcmNvbmZfc3lzY3RsX2FkZHJfZ2VuX21vZGUo Y29uc3Qgc3RydWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsCiAJCQkJCSB2b2lkICpidWZm ZXIsIHNpemVfdCAqbGVucCwKIAkJCQkJIGxvZmZfdCAqcHBvcykKIHsKQEAgLTY1MzMsNyArNjUz Myw3IEBAIHN0YXRpYyBpbnQgYWRkcmNvbmZfc3lzY3RsX2FkZHJfZ2VuX21vZGUoc3RydWN0IGN0 bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsCiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGludCBh ZGRyY29uZl9zeXNjdGxfc3RhYmxlX3NlY3JldChzdHJ1Y3QgY3RsX3RhYmxlICpjdGwsIGludCB3 cml0ZSwKK3N0YXRpYyBpbnQgYWRkcmNvbmZfc3lzY3RsX3N0YWJsZV9zZWNyZXQoY29uc3Qgc3Ry dWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsCiAJCQkJCSB2b2lkICpidWZmZXIsIHNpemVf dCAqbGVucCwKIAkJCQkJIGxvZmZfdCAqcHBvcykKIHsKQEAgLTY2MDEsNyArNjYwMSw3IEBAIHN0 YXRpYyBpbnQgYWRkcmNvbmZfc3lzY3RsX3N0YWJsZV9zZWNyZXQoc3RydWN0IGN0bF90YWJsZSAq Y3RsLCBpbnQgd3JpdGUsCiB9CiAKIHN0YXRpYwotaW50IGFkZHJjb25mX3N5c2N0bF9pZ25vcmVf cm91dGVzX3dpdGhfbGlua2Rvd24oc3RydWN0IGN0bF90YWJsZSAqY3RsLAoraW50IGFkZHJjb25m X3N5c2N0bF9pZ25vcmVfcm91dGVzX3dpdGhfbGlua2Rvd24oY29uc3Qgc3RydWN0IGN0bF90YWJs ZSAqY3RsLAogCQkJCQkJaW50IHdyaXRlLCB2b2lkICpidWZmZXIsCiAJCQkJCQlzaXplX3QgKmxl bnAsCiAJCQkJCQlsb2ZmX3QgKnBwb3MpCkBAIC02NzAxLDggKzY3MDEsOSBAQCBpbnQgYWRkcmNv bmZfZGlzYWJsZV9wb2xpY3koY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgKnZhbHAs IGludCB2YWwpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgYWRkcmNvbmZfc3lzY3RsX2Rp c2FibGVfcG9saWN5KHN0cnVjdCBjdGxfdGFibGUgKmN0bCwgaW50IHdyaXRlLAotCQkJCSAgIHZv aWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCitzdGF0aWMgaW50IGFkZHJj b25mX3N5c2N0bF9kaXNhYmxlX3BvbGljeShjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICpjdGwsCisJ CQkJCSAgaW50IHdyaXRlLCB2b2lkICpidWZmZXIsCisJCQkJCSAgc2l6ZV90ICpsZW5wLCBsb2Zm X3QgKnBwb3MpCiB7CiAJaW50ICp2YWxwID0gY3RsLT5kYXRhOwogCWludCB2YWwgPSAqdmFscDsK ZGlmZiAtLWdpdCBhL25ldC9pcHY2L25kaXNjLmMgYi9uZXQvaXB2Ni9uZGlzYy5jCmluZGV4IDk0 NWQ1ZjVjYTAzOS4uYWJjZDkzYmVlNWQ3IDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9uZGlzYy5jCisr KyBiL25ldC9pcHY2L25kaXNjLmMKQEAgLTE5NTEsNyArMTk1MSw3IEBAIHN0YXRpYyB2b2lkIG5k aXNjX3dhcm5fZGVwcmVjYXRlZF9zeXNjdGwoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqY3RsLAog CX0KIH0KIAotaW50IG5kaXNjX2lmaW5mb19zeXNjdGxfY2hhbmdlKHN0cnVjdCBjdGxfdGFibGUg KmN0bCwgaW50IHdyaXRlLCB2b2lkICpidWZmZXIsCitpbnQgbmRpc2NfaWZpbmZvX3N5c2N0bF9j aGFuZ2UoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsIHZvaWQgKmJ1ZmZl ciwKIAkJc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJc3RydWN0IG5ldF9kZXZpY2Ug KmRldiA9IGN0bC0+ZXh0cmExOwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvcm91dGUuYyBiL25ldC9p cHY2L3JvdXRlLmMKaW5kZXggMWY0YjkzNWEwZTU3Li5jODM0MDAxM2JmNzIgMTAwNjQ0Ci0tLSBh L25ldC9pcHY2L3JvdXRlLmMKKysrIGIvbmV0L2lwdjYvcm91dGUuYwpAQCAtNjMyOSw3ICs2MzI5 LDcgQEAgc3RhdGljIGludCBydDZfc3RhdHNfc2VxX3Nob3coc3RydWN0IHNlcV9maWxlICpzZXEs IHZvaWQgKnYpCiAKICNpZmRlZiBDT05GSUdfU1lTQ1RMCiAKLXN0YXRpYyBpbnQgaXB2Nl9zeXNj dGxfcnRjYWNoZV9mbHVzaChzdHJ1Y3QgY3RsX3RhYmxlICpjdGwsIGludCB3cml0ZSwKK3N0YXRp YyBpbnQgaXB2Nl9zeXNjdGxfcnRjYWNoZV9mbHVzaChjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICpj dGwsIGludCB3cml0ZSwKIAkJCSAgICAgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2Zm X3QgKnBwb3MpCiB7CiAJc3RydWN0IG5ldCAqbmV0OwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvc3lz Y3RsX25ldF9pcHY2LmMgYi9uZXQvaXB2Ni9zeXNjdGxfbmV0X2lwdjYuYwppbmRleCA3NWRlNTVm OTA3YjAuLmU1YTRjYmMzZThjMyAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvc3lzY3RsX25ldF9pcHY2 LmMKKysrIGIvbmV0L2lwdjYvc3lzY3RsX25ldF9pcHY2LmMKQEAgLTMwLDcgKzMwLDcgQEAgc3Rh dGljIHUzMiBydDZfbXVsdGlwYXRoX2hhc2hfZmllbGRzX2FsbF9tYXNrID0KIHN0YXRpYyB1MzIg aW9hbTZfaWRfbWF4ID0gSU9BTTZfREVGQVVMVF9JRDsKIHN0YXRpYyB1NjQgaW9hbTZfaWRfd2lk ZV9tYXggPSBJT0FNNl9ERUZBVUxUX0lEX1dJREU7CiAKLXN0YXRpYyBpbnQgcHJvY19ydDZfbXVs dGlwYXRoX2hhc2hfcG9saWN5KHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCitz dGF0aWMgaW50IHByb2NfcnQ2X211bHRpcGF0aF9oYXNoX3BvbGljeShjb25zdCBzdHJ1Y3QgY3Rs X3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCQkJCQkgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICps ZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJc3RydWN0IG5ldCAqbmV0OwpAQCAtNDYsNyArNDYsNyBA QCBzdGF0aWMgaW50IHByb2NfcnQ2X211bHRpcGF0aF9oYXNoX3BvbGljeShzdHJ1Y3QgY3RsX3Rh YmxlICp0YWJsZSwgaW50IHdyaXRlLAogfQogCiBzdGF0aWMgaW50Ci1wcm9jX3J0Nl9tdWx0aXBh dGhfaGFzaF9maWVsZHMoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwgdm9pZCAq YnVmZmVyLAorcHJvY19ydDZfbXVsdGlwYXRoX2hhc2hfZmllbGRzKGNvbnN0IHN0cnVjdCBjdGxf dGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsIHZvaWQgKmJ1ZmZlciwKIAkJCSAgICAgICBzaXplX3Qg KmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlzdHJ1Y3QgbmV0ICpuZXQ7CmRpZmYgLS1naXQgYS9u ZXQvbXBscy9hZl9tcGxzLmMgYi9uZXQvbXBscy9hZl9tcGxzLmMKaW5kZXggNWQyMDEyZDFjZjRh Li45ZWQyZGI5OTZlYzEgMTAwNjQ0Ci0tLSBhL25ldC9tcGxzL2FmX21wbHMuYworKysgYi9uZXQv bXBscy9hZl9tcGxzLmMKQEAgLTEzNDcsNyArMTM0Nyw3IEBAIHN0YXRpYyBpbnQgbXBsc19uZXRj b25mX2R1bXBfZGV2Y29uZihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogI2RlZmluZSBNUExTX1BFUkRF Vl9TWVNDVExfT0ZGU0VUKGZpZWxkKQlcCiAJKCYoKHN0cnVjdCBtcGxzX2RldiAqKTApLT5maWVs ZCkKIAotc3RhdGljIGludCBtcGxzX2NvbmZfcHJvYyhzdHJ1Y3QgY3RsX3RhYmxlICpjdGwsIGlu dCB3cml0ZSwKK3N0YXRpYyBpbnQgbXBsc19jb25mX3Byb2MoY29uc3Qgc3RydWN0IGN0bF90YWJs ZSAqY3RsLCBpbnQgd3JpdGUsCiAJCQkgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2Zm X3QgKnBwb3MpCiB7CiAJaW50IG92YWwgPSAqKGludCAqKWN0bC0+ZGF0YTsKQEAgLTI2MDEsNyAr MjYwMSw3IEBAIHN0YXRpYyBpbnQgcmVzaXplX3BsYXRmb3JtX2xhYmVsX3RhYmxlKHN0cnVjdCBu ZXQgKm5ldCwgc2l6ZV90IGxpbWl0KQogCXJldHVybiAtRU5PTUVNOwogfQogCi1zdGF0aWMgaW50 IG1wbHNfcGxhdGZvcm1fbGFiZWxzKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUs CitzdGF0aWMgaW50IG1wbHNfcGxhdGZvcm1fbGFiZWxzKGNvbnN0IHN0cnVjdCBjdGxfdGFibGUg KnRhYmxlLCBpbnQgd3JpdGUsCiAJCQkJdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZf dCAqcHBvcykKIHsKIAlzdHJ1Y3QgbmV0ICpuZXQgPSB0YWJsZS0+ZGF0YTsKZGlmZiAtLWdpdCBh L25ldC9uZXRmaWx0ZXIvaXB2cy9pcF92c19jdGwuYyBiL25ldC9uZXRmaWx0ZXIvaXB2cy9pcF92 c19jdGwuYwppbmRleCA2ODlhYzUyMWVhMmQuLmUzNDg3OWY3YTJmNCAxMDA2NDQKLS0tIGEvbmV0 L25ldGZpbHRlci9pcHZzL2lwX3ZzX2N0bC5jCisrKyBiL25ldC9uZXRmaWx0ZXIvaXB2cy9pcF92 c19jdGwuYwpAQCAtMTg0Niw3ICsxODQ2LDcgQEAgc3RhdGljIGludCBpcF92c196ZXJvX2FsbChz dHJ1Y3QgbmV0bnNfaXB2cyAqaXB2cykKICNpZmRlZiBDT05GSUdfU1lTQ1RMCiAKIHN0YXRpYyBp bnQKLXByb2NfZG9fZGVmZW5zZV9tb2RlKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3Jp dGUsCitwcm9jX2RvX2RlZmVuc2VfbW9kZShjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwg aW50IHdyaXRlLAogCQkgICAgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBw b3MpCiB7CiAJc3RydWN0IG5ldG5zX2lwdnMgKmlwdnMgPSB0YWJsZS0+ZXh0cmEyOwpAQCAtMTg3 Myw3ICsxODczLDcgQEAgcHJvY19kb19kZWZlbnNlX21vZGUoc3RydWN0IGN0bF90YWJsZSAqdGFi bGUsIGludCB3cml0ZSwKIH0KIAogc3RhdGljIGludAotcHJvY19kb19zeW5jX3RocmVzaG9sZChz dHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAorcHJvY19kb19zeW5jX3RocmVzaG9s ZChjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCQkgICAgICAgdm9p ZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlzdHJ1Y3QgbmV0bnNf aXB2cyAqaXB2cyA9IHRhYmxlLT5leHRyYTI7CkBAIC0xOTAxLDcgKzE5MDEsNyBAQCBwcm9jX2Rv X3N5bmNfdGhyZXNob2xkKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiB9CiAK IHN0YXRpYyBpbnQKLXByb2NfZG9fc3luY19wb3J0cyhzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwg aW50IHdyaXRlLAorcHJvY19kb19zeW5jX3BvcnRzKGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKnRh YmxlLCBpbnQgd3JpdGUsCiAJCSAgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3Qg KnBwb3MpCiB7CiAJaW50ICp2YWxwID0gdGFibGUtPmRhdGE7CkBAIC0xOTg0LDcgKzE5ODQsNyBA QCBzdGF0aWMgaW50IGlwdnNfcHJvY19lc3RfY3B1bWFza19nZXQoY29uc3Qgc3RydWN0IGN0bF90 YWJsZSAqdGFibGUsCiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGludCBpcHZzX3Byb2NfZXN0 X2NwdWxpc3Qoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKK3N0YXRpYyBpbnQg aXB2c19wcm9jX2VzdF9jcHVsaXN0KGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQg d3JpdGUsCiAJCQkJIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7 CiAJaW50IHJldDsKQEAgLTIwMTEsNyArMjAxMSw3IEBAIHN0YXRpYyBpbnQgaXB2c19wcm9jX2Vz dF9jcHVsaXN0KHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJcmV0dXJuIHJl dDsKIH0KIAotc3RhdGljIGludCBpcHZzX3Byb2NfZXN0X25pY2Uoc3RydWN0IGN0bF90YWJsZSAq dGFibGUsIGludCB3cml0ZSwKK3N0YXRpYyBpbnQgaXB2c19wcm9jX2VzdF9uaWNlKGNvbnN0IHN0 cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJCQkgICAgICB2b2lkICpidWZmZXIs IHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQogewogCXN0cnVjdCBuZXRuc19pcHZzICppcHZz ID0gdGFibGUtPmV4dHJhMjsKQEAgLTIwNDEsNyArMjA0MSw3IEBAIHN0YXRpYyBpbnQgaXB2c19w cm9jX2VzdF9uaWNlKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJcmV0dXJu IHJldDsKIH0KIAotc3RhdGljIGludCBpcHZzX3Byb2NfcnVuX2VzdGltYXRpb24oc3RydWN0IGN0 bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKK3N0YXRpYyBpbnQgaXB2c19wcm9jX3J1bl9lc3Rp bWF0aW9uKGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJCQkJICAg IHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJc3RydWN0IG5l dG5zX2lwdnMgKmlwdnMgPSB0YWJsZS0+ZXh0cmEyOwpkaWZmIC0tZ2l0IGEvbmV0L25ldGZpbHRl ci9uZl9jb25udHJhY2tfc3RhbmRhbG9uZS5jIGIvbmV0L25ldGZpbHRlci9uZl9jb25udHJhY2tf c3RhbmRhbG9uZS5jCmluZGV4IGJiOWRlYTY3NmVjMS4uM2Q1Mjg0NjM5Y2E4IDEwMDY0NAotLS0g YS9uZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19zdGFuZGFsb25lLmMKKysrIGIvbmV0L25ldGZp bHRlci9uZl9jb25udHJhY2tfc3RhbmRhbG9uZS5jCkBAIC01MjcsNyArNTI3LDcgQEAgRVhQT1JU X1NZTUJPTF9HUEwobmZfY29ubnRyYWNrX2NvdW50KTsKIHN0YXRpYyB1bnNpZ25lZCBpbnQgbmZf Y29ubnRyYWNrX2h0YWJsZV9zaXplX3VzZXIgX19yZWFkX21vc3RseTsKIAogc3RhdGljIGludAot bmZfY29ubnRyYWNrX2hhc2hfc3lzY3RsKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3Jp dGUsCituZl9jb25udHJhY2tfaGFzaF9zeXNjdGwoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqdGFi bGUsIGludCB3cml0ZSwKIAkJCSB2b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCwgbG9mZl90ICpw cG9zKQogewogCWludCByZXQ7CmRpZmYgLS1naXQgYS9uZXQvbmV0ZmlsdGVyL25mX2hvb2tzX2x3 dHVubmVsLmMgYi9uZXQvbmV0ZmlsdGVyL25mX2hvb2tzX2x3dHVubmVsLmMKaW5kZXggMDBlODlm ZmQ3OGY2Li4zZDIzN2Y5Y2M4ZWUgMTAwNjQ0Ci0tLSBhL25ldC9uZXRmaWx0ZXIvbmZfaG9va3Nf bHd0dW5uZWwuYworKysgYi9uZXQvbmV0ZmlsdGVyL25mX2hvb2tzX2x3dHVubmVsLmMKQEAgLTI1 LDcgKzI1LDcgQEAgc3RhdGljIGlubGluZSBpbnQgbmZfaG9va3NfbHd0dW5uZWxfc2V0KGludCBl bmFibGUpCiB9CiAKICNpZmRlZiBDT05GSUdfU1lTQ1RMCi1pbnQgbmZfaG9va3NfbHd0dW5uZWxf c3lzY3RsX2hhbmRsZXIoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKK2ludCBu Zl9ob29rc19sd3R1bm5lbF9zeXNjdGxfaGFuZGxlcihjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0 YWJsZSwgaW50IHdyaXRlLAogCQkJCSAgICAgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxv ZmZfdCAqcHBvcykKIHsKIAlpbnQgcHJvY19uZl9ob29rc19sd3R1bm5lbF9lbmFibGVkID0gMDsK ZGlmZiAtLWdpdCBhL25ldC9uZXRmaWx0ZXIvbmZfbG9nLmMgYi9uZXQvbmV0ZmlsdGVyL25mX2xv Zy5jCmluZGV4IGVmZWRkMmYxM2FjNy4uYThlZGMzZTc1ZGI5IDEwMDY0NAotLS0gYS9uZXQvbmV0 ZmlsdGVyL25mX2xvZy5jCisrKyBiL25ldC9uZXRmaWx0ZXIvbmZfbG9nLmMKQEAgLTQwOSw3ICs0 MDksNyBAQCBzdGF0aWMgc3RydWN0IGN0bF90YWJsZSBuZl9sb2dfc3lzY3RsX2Z0YWJsZVtdID0g ewogCXsgfQogfTsKIAotc3RhdGljIGludCBuZl9sb2dfcHJvY19kb3N0cmluZyhzdHJ1Y3QgY3Rs X3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAorc3RhdGljIGludCBuZl9sb2dfcHJvY19kb3N0cmlu Zyhjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCQkJIHZvaWQgKmJ1 ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJY29uc3Qgc3RydWN0IG5mX2xv Z2dlciAqbG9nZ2VyOwpkaWZmIC0tZ2l0IGEvbmV0L3Bob25ldC9zeXNjdGwuYyBiL25ldC9waG9u ZXQvc3lzY3RsLmMKaW5kZXggMGQwYmY0MTM4MWMyLi5lNTlkMTZlNjczNzYgMTAwNjQ0Ci0tLSBh L25ldC9waG9uZXQvc3lzY3RsLmMKKysrIGIvbmV0L3Bob25ldC9zeXNjdGwuYwpAQCAtNDgsNyAr NDgsNyBAQCB2b2lkIHBob25ldF9nZXRfbG9jYWxfcG9ydF9yYW5nZShpbnQgKm1pbiwgaW50ICpt YXgpCiAJfSB3aGlsZSAocmVhZF9zZXFyZXRyeSgmbG9jYWxfcG9ydF9yYW5nZV9sb2NrLCBzZXEp KTsKIH0KIAotc3RhdGljIGludCBwcm9jX2xvY2FsX3BvcnRfcmFuZ2Uoc3RydWN0IGN0bF90YWJs ZSAqdGFibGUsIGludCB3cml0ZSwKK3N0YXRpYyBpbnQgcHJvY19sb2NhbF9wb3J0X3JhbmdlKGNv bnN0IHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJCQkJIHZvaWQgKmJ1ZmZl ciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJaW50IHJldDsKZGlmZiAtLWdpdCBh L25ldC9yZHMvdGNwLmMgYi9uZXQvcmRzL3RjcC5jCmluZGV4IDJkYmE3NTA1YjQxNC4uZDIzZWE4 YzExOTAyIDEwMDY0NAotLS0gYS9uZXQvcmRzL3RjcC5jCisrKyBiL25ldC9yZHMvdGNwLmMKQEAg LTYxLDcgKzYxLDcgQEAgc3RhdGljIGF0b21pY190IHJkc190Y3BfdW5sb2FkaW5nID0gQVRPTUlD X0lOSVQoMCk7CiAKIHN0YXRpYyBzdHJ1Y3Qga21lbV9jYWNoZSAqcmRzX3RjcF9jb25uX3NsYWI7 CiAKLXN0YXRpYyBpbnQgcmRzX3RjcF9za2J1Zl9oYW5kbGVyKHN0cnVjdCBjdGxfdGFibGUgKmN0 bCwgaW50IHdyaXRlLAorc3RhdGljIGludCByZHNfdGNwX3NrYnVmX2hhbmRsZXIoY29uc3Qgc3Ry dWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsCiAJCQkJIHZvaWQgKmJ1ZmZlciwgc2l6ZV90 ICpsZW5wLCBsb2ZmX3QgKmZwb3MpOwogCiBzdGF0aWMgaW50IHJkc190Y3BfbWluX3NuZGJ1ZiA9 IFNPQ0tfTUlOX1NOREJVRjsKQEAgLTY4Myw3ICs2ODMsNyBAQCBzdGF0aWMgdm9pZCByZHNfdGNw X3N5c2N0bF9yZXNldChzdHJ1Y3QgbmV0ICpuZXQpCiAJc3Bpbl91bmxvY2tfaXJxKCZyZHNfdGNw X2Nvbm5fbG9jayk7CiB9CiAKLXN0YXRpYyBpbnQgcmRzX3RjcF9za2J1Zl9oYW5kbGVyKHN0cnVj dCBjdGxfdGFibGUgKmN0bCwgaW50IHdyaXRlLAorc3RhdGljIGludCByZHNfdGNwX3NrYnVmX2hh bmRsZXIoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsCiAJCQkJIHZvaWQg KmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKmZwb3MpCiB7CiAJc3RydWN0IG5ldCAqbmV0 ID0gY3VycmVudC0+bnNwcm94eS0+bmV0X25zOwpkaWZmIC0tZ2l0IGEvbmV0L3NjdHAvc3lzY3Rs LmMgYi9uZXQvc2N0cC9zeXNjdGwuYwppbmRleCAyNWJkZjE3YzcyNjIuLjNhZjVkN2IwNWFlOSAx MDA2NDQKLS0tIGEvbmV0L3NjdHAvc3lzY3RsLmMKKysrIGIvbmV0L3NjdHAvc3lzY3RsLmMKQEAg LTQzLDE5ICs0MywxOSBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyBtYXhfYXV0b2Nsb3NlX21heCA9 CiAJKE1BWF9TQ0hFRFVMRV9USU1FT1VUIC8gSFogPiBVSU5UX01BWCkKIAk/IFVJTlRfTUFYIDog TUFYX1NDSEVEVUxFX1RJTUVPVVQgLyBIWjsKIAotc3RhdGljIGludCBwcm9jX3NjdHBfZG9faG1h Y19hbGcoc3RydWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsCitzdGF0aWMgaW50IHByb2Nf c2N0cF9kb19obWFjX2FsZyhjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICpjdGwsIGludCB3cml0ZSwK IAkJCQkgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcyk7Ci1zdGF0aWMg aW50IHByb2Nfc2N0cF9kb19ydG9fbWluKHN0cnVjdCBjdGxfdGFibGUgKmN0bCwgaW50IHdyaXRl LAorc3RhdGljIGludCBwcm9jX3NjdHBfZG9fcnRvX21pbihjb25zdCBzdHJ1Y3QgY3RsX3RhYmxl ICpjdGwsIGludCB3cml0ZSwKIAkJCQl2b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCwgbG9mZl90 ICpwcG9zKTsKLXN0YXRpYyBpbnQgcHJvY19zY3RwX2RvX3J0b19tYXgoc3RydWN0IGN0bF90YWJs ZSAqY3RsLCBpbnQgd3JpdGUsIHZvaWQgKmJ1ZmZlciwKLQkJCQlzaXplX3QgKmxlbnAsIGxvZmZf dCAqcHBvcyk7Ci1zdGF0aWMgaW50IHByb2Nfc2N0cF9kb191ZHBfcG9ydChzdHJ1Y3QgY3RsX3Rh YmxlICpjdGwsIGludCB3cml0ZSwgdm9pZCAqYnVmZmVyLAotCQkJCSBzaXplX3QgKmxlbnAsIGxv ZmZfdCAqcHBvcyk7Ci1zdGF0aWMgaW50IHByb2Nfc2N0cF9kb19hbHBoYV9iZXRhKHN0cnVjdCBj dGxfdGFibGUgKmN0bCwgaW50IHdyaXRlLAorc3RhdGljIGludCBwcm9jX3NjdHBfZG9fcnRvX21h eChjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICpjdGwsIGludCB3cml0ZSwKKwkJCQl2b2lkICpidWZm ZXIsIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKTsKK3N0YXRpYyBpbnQgcHJvY19zY3RwX2Rv X3VkcF9wb3J0KGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKmN0bCwgaW50IHdyaXRlLAorCQkJCSB2 b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKTsKK3N0YXRpYyBpbnQgcHJv Y19zY3RwX2RvX2FscGhhX2JldGEoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3Jp dGUsCiAJCQkJICAgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcyk7Ci1z dGF0aWMgaW50IHByb2Nfc2N0cF9kb19hdXRoKHN0cnVjdCBjdGxfdGFibGUgKmN0bCwgaW50IHdy aXRlLAorc3RhdGljIGludCBwcm9jX3NjdHBfZG9fYXV0aChjb25zdCBzdHJ1Y3QgY3RsX3RhYmxl ICpjdGwsIGludCB3cml0ZSwKIAkJCSAgICAgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxv ZmZfdCAqcHBvcyk7Ci1zdGF0aWMgaW50IHByb2Nfc2N0cF9kb19wcm9iZV9pbnRlcnZhbChzdHJ1 Y3QgY3RsX3RhYmxlICpjdGwsIGludCB3cml0ZSwKK3N0YXRpYyBpbnQgcHJvY19zY3RwX2RvX3By b2JlX2ludGVydmFsKGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKmN0bCwgaW50IHdyaXRlLAogCQkJ CSAgICAgICB2b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKTsKIAogc3Rh dGljIHN0cnVjdCBjdGxfdGFibGUgc2N0cF90YWJsZVtdID0gewpAQCAtMzg4LDcgKzM4OCw3IEBA IHN0YXRpYyBzdHJ1Y3QgY3RsX3RhYmxlIHNjdHBfbmV0X3RhYmxlW10gPSB7CiAJeyAvKiBzZW50 aW5lbCAqLyB9CiB9OwogCi1zdGF0aWMgaW50IHByb2Nfc2N0cF9kb19obWFjX2FsZyhzdHJ1Y3Qg Y3RsX3RhYmxlICpjdGwsIGludCB3cml0ZSwKK3N0YXRpYyBpbnQgcHJvY19zY3RwX2RvX2htYWNf YWxnKGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKmN0bCwgaW50IHdyaXRlLAogCQkJCSB2b2lkICpi dWZmZXIsIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQogewogCXN0cnVjdCBuZXQgKm5ldCA9 IGN1cnJlbnQtPm5zcHJveHktPm5ldF9uczsKQEAgLTQzMyw3ICs0MzMsNyBAQCBzdGF0aWMgaW50 IHByb2Nfc2N0cF9kb19obWFjX2FsZyhzdHJ1Y3QgY3RsX3RhYmxlICpjdGwsIGludCB3cml0ZSwK IAlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgaW50IHByb2Nfc2N0cF9kb19ydG9fbWluKHN0cnVj dCBjdGxfdGFibGUgKmN0bCwgaW50IHdyaXRlLAorc3RhdGljIGludCBwcm9jX3NjdHBfZG9fcnRv X21pbihjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICpjdGwsIGludCB3cml0ZSwKIAkJCQl2b2lkICpi dWZmZXIsIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQogewogCXN0cnVjdCBuZXQgKm5ldCA9 IGN1cnJlbnQtPm5zcHJveHktPm5ldF9uczsKQEAgLTQ2MSw3ICs0NjEsNyBAQCBzdGF0aWMgaW50 IHByb2Nfc2N0cF9kb19ydG9fbWluKHN0cnVjdCBjdGxfdGFibGUgKmN0bCwgaW50IHdyaXRlLAog CXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyBpbnQgcHJvY19zY3RwX2RvX3J0b19tYXgoc3RydWN0 IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsCitzdGF0aWMgaW50IHByb2Nfc2N0cF9kb19ydG9f bWF4KGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKmN0bCwgaW50IHdyaXRlLAogCQkJCXZvaWQgKmJ1 ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJc3RydWN0IG5ldCAqbmV0ID0g Y3VycmVudC0+bnNwcm94eS0+bmV0X25zOwpAQCAtNDg5LDcgKzQ4OSw3IEBAIHN0YXRpYyBpbnQg cHJvY19zY3RwX2RvX3J0b19tYXgoc3RydWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsCiAJ cmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGludCBwcm9jX3NjdHBfZG9fYWxwaGFfYmV0YShzdHJ1 Y3QgY3RsX3RhYmxlICpjdGwsIGludCB3cml0ZSwKK3N0YXRpYyBpbnQgcHJvY19zY3RwX2RvX2Fs cGhhX2JldGEoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsCiAJCQkJICAg dm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlpZiAod3JpdGUp CkBAIC00OTksNyArNDk5LDcgQEAgc3RhdGljIGludCBwcm9jX3NjdHBfZG9fYWxwaGFfYmV0YShz dHJ1Y3QgY3RsX3RhYmxlICpjdGwsIGludCB3cml0ZSwKIAlyZXR1cm4gcHJvY19kb2ludHZlY19t aW5tYXgoY3RsLCB3cml0ZSwgYnVmZmVyLCBsZW5wLCBwcG9zKTsKIH0KIAotc3RhdGljIGludCBw cm9jX3NjdHBfZG9fYXV0aChzdHJ1Y3QgY3RsX3RhYmxlICpjdGwsIGludCB3cml0ZSwKK3N0YXRp YyBpbnQgcHJvY19zY3RwX2RvX2F1dGgoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqY3RsLCBpbnQg d3JpdGUsCiAJCQkgICAgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3Mp CiB7CiAJc3RydWN0IG5ldCAqbmV0ID0gY3VycmVudC0+bnNwcm94eS0+bmV0X25zOwpAQCAtNTI4 LDcgKzUyOCw3IEBAIHN0YXRpYyBpbnQgcHJvY19zY3RwX2RvX2F1dGgoc3RydWN0IGN0bF90YWJs ZSAqY3RsLCBpbnQgd3JpdGUsCiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGludCBwcm9jX3Nj dHBfZG9fdWRwX3BvcnQoc3RydWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsCitzdGF0aWMg aW50IHByb2Nfc2N0cF9kb191ZHBfcG9ydChjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICpjdGwsIGlu dCB3cml0ZSwKIAkJCQkgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykK IHsKIAlzdHJ1Y3QgbmV0ICpuZXQgPSBjdXJyZW50LT5uc3Byb3h5LT5uZXRfbnM7CkBAIC01Njks NyArNTY5LDcgQEAgc3RhdGljIGludCBwcm9jX3NjdHBfZG9fdWRwX3BvcnQoc3RydWN0IGN0bF90 YWJsZSAqY3RsLCBpbnQgd3JpdGUsCiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGludCBwcm9j X3NjdHBfZG9fcHJvYmVfaW50ZXJ2YWwoc3RydWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUs CitzdGF0aWMgaW50IHByb2Nfc2N0cF9kb19wcm9iZV9pbnRlcnZhbChjb25zdCBzdHJ1Y3QgY3Rs X3RhYmxlICpjdGwsIGludCB3cml0ZSwKIAkJCQkgICAgICAgdm9pZCAqYnVmZmVyLCBzaXplX3Qg KmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlzdHJ1Y3QgbmV0ICpuZXQgPSBjdXJyZW50LT5uc3By b3h5LT5uZXRfbnM7CmRpZmYgLS1naXQgYS9uZXQvc3VucnBjL3N5c2N0bC5jIGIvbmV0L3N1bnJw Yy9zeXNjdGwuYwppbmRleCA5Mzk0MWFiMTI1NDkuLjY3MjA2N2VmYWNlZiAxMDA2NDQKLS0tIGEv bmV0L3N1bnJwYy9zeXNjdGwuYworKysgYi9uZXQvc3VucnBjL3N5c2N0bC5jCkBAIC00MCw3ICs0 MCw3IEBAIEVYUE9SVF9TWU1CT0xfR1BMKG5sbV9kZWJ1Zyk7CiAKICNpZiBJU19FTkFCTEVEKENP TkZJR19TVU5SUENfREVCVUcpCiAKLXN0YXRpYyBpbnQgcHJvY19kb194cHJ0KHN0cnVjdCBjdGxf dGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCitzdGF0aWMgaW50IHByb2NfZG9feHBydChjb25zdCBz dHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCQkJdm9pZCAqYnVmZmVyLCBzaXpl X3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAljaGFyIHRtcGJ1ZlsyNTZdOwpAQCAtNjIsOCAr NjIsOCBAQCBzdGF0aWMgaW50IHByb2NfZG9feHBydChzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwg aW50IHdyaXRlLAogfQogCiBzdGF0aWMgaW50Ci1wcm9jX2RvZGVidWcoc3RydWN0IGN0bF90YWJs ZSAqdGFibGUsIGludCB3cml0ZSwgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsCi0JICAgICBs b2ZmX3QgKnBwb3MpCitwcm9jX2RvZGVidWcoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqdGFibGUs IGludCB3cml0ZSwgdm9pZCAqYnVmZmVyLAorCSAgICAgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBw b3MpCiB7CiAJY2hhcgkJdG1wYnVmWzIwXSwgKnMgPSBOVUxMOwogCWNoYXIgKnA7CmRpZmYgLS1n aXQgYS9uZXQvc3VucnBjL3hwcnRyZG1hL3N2Y19yZG1hLmMgYi9uZXQvc3VucnBjL3hwcnRyZG1h L3N2Y19yZG1hLmMKaW5kZXggZjg2OTcwNzMzZWIwLi4wOTgzMmU0OTQ1YTMgMTAwNjQ0Ci0tLSBh L25ldC9zdW5ycGMveHBydHJkbWEvc3ZjX3JkbWEuYworKysgYi9uZXQvc3VucnBjL3hwcnRyZG1h L3N2Y19yZG1hLmMKQEAgLTc0LDcgKzc0LDcgQEAgZW51bSB7CiAJU1ZDUkRNQV9DT1VOVEVSX0JV RlNJWgk9IHNpemVvZih1bnNpZ25lZCBsb25nIGxvbmcpLAogfTsKIAotc3RhdGljIGludCBzdmNy ZG1hX2NvdW50ZXJfaGFuZGxlcihzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAor c3RhdGljIGludCBzdmNyZG1hX2NvdW50ZXJfaGFuZGxlcihjb25zdCBzdHJ1Y3QgY3RsX3RhYmxl ICp0YWJsZSwgaW50IHdyaXRlLAogCQkJCSAgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBs b2ZmX3QgKnBwb3MpCiB7CiAJc3RydWN0IHBlcmNwdV9jb3VudGVyICpzdGF0ID0gKHN0cnVjdCBw ZXJjcHVfY291bnRlciAqKXRhYmxlLT5kYXRhOwpkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvYXBwYXJt b3IvbHNtLmMgYi9zZWN1cml0eS9hcHBhcm1vci9sc20uYwppbmRleCA2MjM5Nzc3MDkwYzQuLjE2 NTY4YjZkNTg5ZCAxMDA2NDQKLS0tIGEvc2VjdXJpdHkvYXBwYXJtb3IvbHNtLmMKKysrIGIvc2Vj dXJpdHkvYXBwYXJtb3IvbHNtLmMKQEAgLTIwMjksNyArMjAyOSw3IEBAIHN0YXRpYyBpbnQgX19p bml0IGFsbG9jX2J1ZmZlcnModm9pZCkKIH0KIAogI2lmZGVmIENPTkZJR19TWVNDVEwKLXN0YXRp YyBpbnQgYXBwYXJtb3JfZG9pbnR2ZWMoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0 ZSwKK3N0YXRpYyBpbnQgYXBwYXJtb3JfZG9pbnR2ZWMoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAq dGFibGUsIGludCB3cml0ZSwKIAkJCSAgICAgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxv ZmZfdCAqcHBvcykKIHsKIAlpZiAoIWFhX2N1cnJlbnRfcG9saWN5X2FkbWluX2NhcGFibGUoTlVM TCkpCmRpZmYgLS1naXQgYS9zZWN1cml0eS9taW5fYWRkci5jIGIvc2VjdXJpdHkvbWluX2FkZHIu YwppbmRleCA4OGM5YTZhMjFmNDcuLjBjZTI2N2MwNDFhYiAxMDA2NDQKLS0tIGEvc2VjdXJpdHkv bWluX2FkZHIuYworKysgYi9zZWN1cml0eS9taW5fYWRkci5jCkBAIC0yOSw3ICsyOSw3IEBAIHN0 YXRpYyB2b2lkIHVwZGF0ZV9tbWFwX21pbl9hZGRyKHZvaWQpCiAgKiBzeXNjdGwgaGFuZGxlciB3 aGljaCBqdXN0IHNldHMgZGFjX21tYXBfbWluX2FkZHIgPSB0aGUgbmV3IHZhbHVlIGFuZCB0aGVu CiAgKiBjYWxscyB1cGRhdGVfbW1hcF9taW5fYWRkcigpIHNvIG5vbiBNQVBfRklYRUQgaGludHMg Z2V0IHJvdW5kZWQgcHJvcGVybHkKICAqLwotaW50IG1tYXBfbWluX2FkZHJfaGFuZGxlcihzdHJ1 Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAoraW50IG1tYXBfbWluX2FkZHJfaGFuZGxl cihjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCQkJICB2b2lkICpi dWZmZXIsIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQogewogCWludCByZXQ7CmRpZmYgLS1n aXQgYS9zZWN1cml0eS95YW1hL3lhbWFfbHNtLmMgYi9zZWN1cml0eS95YW1hL3lhbWFfbHNtLmMK aW5kZXggYjY2ODRhMDc0YTU5Li41Yjc2MmY0NTI5NzcgMTAwNjQ0Ci0tLSBhL3NlY3VyaXR5L3lh bWEveWFtYV9sc20uYworKysgYi9zZWN1cml0eS95YW1hL3lhbWFfbHNtLmMKQEAgLTQzNSw3ICs0 MzUsNyBAQCBzdGF0aWMgc3RydWN0IHNlY3VyaXR5X2hvb2tfbGlzdCB5YW1hX2hvb2tzW10gX19y b19hZnRlcl9pbml0ID0gewogfTsKIAogI2lmZGVmIENPTkZJR19TWVNDVEwKLXN0YXRpYyBpbnQg eWFtYV9kb2ludHZlY19taW5tYXgoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwK K3N0YXRpYyBpbnQgeWFtYV9kb2ludHZlY19taW5tYXgoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAq dGFibGUsIGludCB3cml0ZSwKIAkJCQl2b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCwgbG9mZl90 ICpwcG9zKQogewogCXN0cnVjdCBjdGxfdGFibGUgdGFibGVfY29weTsKCi0tIAoyLjQ0LjAKCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwprZXhlYyBtYWls aW5nIGxpc3QKa2V4ZWNAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFk Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2tleGVjCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 604CEC04FFE for ; Fri, 26 Apr 2024 16:26:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Cc:To:In-Reply-To:References:Message-Id :MIME-Version:Subject:Date:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=khM8ppEmEbzgeexu5gPLpQAB64MmgDvFls+NZQ9Ga58=; b=TisKOREmhalmMq fVs6DPjrC2N4A0fExG3iyp0h83CICSW/Ei0h3mnNRjUXEBB4zRiQxmNjGhbVY9BzAqwOc3FZY+Duu bKD8cqurVOPhsOfP+6hRfZDo49UoGKs/g5o7E0uAQrCbMF5K6XTC+7aearIRwKO4FD7XsCKqrd6r+ eYi5EsWZnRr8Pf36xOdA6JHSExYpzOvUFJpmu8bWLEMzOR+NWW+JLrZi+LBxo8eyG6KuE/6BrD8eN XyC1YnMsMo34oj7HKTMSzYqeoFDZf3hn57PW/XOo+zy69jZTkCByLcwThv7+IcdlNCeilL0jSuSbv 6VA+Pp+gVzKDN4zkpVug==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1s0OPN-0000000DFXR-0lLv; Fri, 26 Apr 2024 16:26:45 +0000 Received: from todd.t-8ch.de ([2a01:4f8:c010:41de::1]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rzB0f-0000000GKKj-0Jzc; Tue, 23 Apr 2024 07:56:26 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=weissschuh.net; s=mail; t=1713858962; bh=FVysOkPE/qiRLZCuxnkxsMnTX0foyNtgrbyactsZP2Y=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=uagAM0++rugBquWWZc12oBXw1p0sZNjLZ2P0BRn3a7mK4KfkLqVjep/MFqJY/7LAF 9caAdhgcu3xO8svnWs6UiBpEw54gG1sTupswjoZ3XrmizzbipFrDAq+6AqF37skYwx BR63gR5QqQWcerDyrgrTLAOjD+xHRp30erwz41hs= From: =?utf-8?q?Thomas_Wei=C3=9Fschuh?= Date: Tue, 23 Apr 2024 09:54:46 +0200 Subject: [PATCH v3 11/11] sysctl: treewide: constify the ctl_table argument of handlers MIME-Version: 1.0 Message-Id: <20240423-sysctl-const-handler-v3-11-e0beccb836e2@weissschuh.net> References: <20240423-sysctl-const-handler-v3-0-e0beccb836e2@weissschuh.net> In-Reply-To: <20240423-sysctl-const-handler-v3-0-e0beccb836e2@weissschuh.net> To: Luis Chamberlain , Joel Granados , Kees Cook Cc: Eric Dumazet , Dave Chinner , linux-fsdevel@vger.kernel.org, netdev@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, linux-mm@kvack.org, linux-security-module@vger.kernel.org, bpf@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-xfs@vger.kernel.org, linux-trace-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, netfilter-devel@vger.kernel.org, coreteam@netfilter.org, kexec@lists.infradead.org, linux-hardening@vger.kernel.org, bridge@lists.linux.dev, lvs-devel@vger.kernel.org, linux-rdma@vger.kernel.org, rds-devel@oss.oracle.com, linux-sctp@vger.kernel.org, linux-nfs@vger.kernel.org, apparmor@lists.ubuntu.com, =?utf-8?q?Thomas_Wei=C3=9Fschuh?= X-Mailer: b4 0.13.0 X-Developer-Signature: v=1; a=ed25519-sha256; t=1713858961; l=108174; i=linux@weissschuh.net; s=20221212; h=from:subject:message-id; bh=FVysOkPE/qiRLZCuxnkxsMnTX0foyNtgrbyactsZP2Y=; b=5wEbCfrcoLTsgxV7Uxepjuju0i3n3dX4eEy0jjS4qXCKmY0HYJZJRKgtvn3SvZv68yUf+15PI DCOFgsjg7ChC0MoGza+B8re+o9KUvCk6GNeS16w70HPuLDKhvC0QRKO X-Developer-Key: i=linux@weissschuh.net; a=ed25519; pk=KcycQgFPX2wGR5azS7RhpBqedglOZVgRPfdFSPB1LNw= X-Mailman-Approved-At: Fri, 26 Apr 2024 09:26:44 -0700 X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org QWRhcHQgdGhlIHByb2NfaGFuZGVyIGZ1bmN0aW9uIHNpZ25hdHVyZSB0byBtYWtlIGl0IGNsZWFy IHRoYXQgaGFuZGxlcnMKYXJlIG5vdCBzdXBwb3NlZCB0byBtb2RpZnkgdGhlaXIgY3RsX3RhYmxl IGFyZ3VtZW50LgoKVGhpcyBpcyBhIHByZXJlcXVpc2l0ZSB0byBtb3ZpbmcgdGhlIHN0YXRpYyBj dGxfdGFibGUgc3RydWN0cyBpbnRvCi5yb2RhdGEuCkJ5IG1pZ3JhdGluZyBhbGwgaGFuZGxlcnMg YXQgb25jZSBhIGxlbmd0aHkgdHJhbnNpdGlvbiBjYW4gYmUgYXZvaWRlZC4KClRoZSBwYXRjaCB3 YXMgbW9zdGx5IGdlbmVyYXRlZCBieSBjb2NjaW5lbGxlIHdpdGggdGhlIGZvbGxvd2luZyBzY3Jp cHQ6CgogICAgQEAKICAgIGlkZW50aWZpZXIgZnVuYywgY3RsLCB3cml0ZSwgYnVmZmVyLCBsZW5w LCBwcG9zOwogICAgQEAKCiAgICBpbnQgZnVuYygKICAgIC0gc3RydWN0IGN0bF90YWJsZSAqY3Rs LAogICAgKyBjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICpjdGwsCiAgICAgIGludCB3cml0ZSwgdm9p ZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKICAgIHsgLi4uIH0KCkluIGFk ZGl0aW9uIHRvIHRoZSBzY3JpcHRlZCBjaGFuZ2VzIHNvbWUgb3RoZXIgY2hhbmdlcyBhcmUgZG9u ZToKCiogdGhlIHR5cGVkZWYgcHJvY19oYW5kbGVyIGlzIGFkYXB0ZWQKCiogdGhlIHByb3RvdHlw ZXMgb2Ygbm9uLXN0YXRpYyBoYW5kbGVyIGFyZSBhZGFwdGVkCgoqIGtlcm5lbC9zZWNjb21wLmM6 e3JlYWQsd3JpdGV9X2FjdGlvbnNfbG9nZ2VkKCkgYW5kCiAga2VybmVsL3dhdGNoZG9nLmM6cHJv Y193YXRjaGRvZ19jb21tb24oKSBhcmUgYWRhcHRlZCBhcyB0aGV5IG5lZWQgdG8KICBhZGFwdGVk IHRvZ2V0aGVyIHdpdGggdGhlIGhhbmRsZXJzIGZvciB0eXBlLWNvbnNpc3RlbmN5IHJlYXNvbnMK ClNpZ25lZC1vZmYtYnk6IFRob21hcyBXZWnDn3NjaHVoIDxsaW51eEB3ZWlzc3NjaHVoLm5ldD4K LS0tCiBhcmNoL2FybTY0L2tlcm5lbC9hcm12OF9kZXByZWNhdGVkLmMgICAgICB8ICAyICstCiBh cmNoL2FybTY0L2tlcm5lbC9mcHNpbWQuYyAgICAgICAgICAgICAgICB8ICAyICstCiBhcmNoL3Mz OTAvYXBwbGRhdGEvYXBwbGRhdGFfYmFzZS5jICAgICAgICB8IDEwICsrLS0tCiBhcmNoL3MzOTAv a2VybmVsL2RlYnVnLmMgICAgICAgICAgICAgICAgICB8ICAyICstCiBhcmNoL3MzOTAva2VybmVs L3RvcG9sb2d5LmMgICAgICAgICAgICAgICB8ICAyICstCiBhcmNoL3MzOTAvbW0vY21tLmMgICAg ICAgICAgICAgICAgICAgICAgICB8ICA2ICstLQogYXJjaC94ODYva2VybmVsL2l0bXQuYyAgICAg ICAgICAgICAgICAgICAgfCAgMiArLQogZHJpdmVycy9jZHJvbS9jZHJvbS5jICAgICAgICAgICAg ICAgICAgICAgfCAgNCArLQogZHJpdmVycy9jaGFyL3JhbmRvbS5jICAgICAgICAgICAgICAgICAg ICAgfCAgNiArLS0KIGRyaXZlcnMvbWFjaW50b3NoL21hY19oaWQuYyAgICAgICAgICAgICAgIHwg IDIgKy0KIGRyaXZlcnMvbmV0L3ZyZi5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0K IGRyaXZlcnMvcGFycG9ydC9wcm9jZnMuYyAgICAgICAgICAgICAgICAgIHwgMTIgKysrLS0tCiBk cml2ZXJzL3BlcmYvYXJtX3BtdXYzLmMgICAgICAgICAgICAgICAgICB8ICA0ICstCiBkcml2ZXJz L3BlcmYvcmlzY3ZfcG11X3NiaS5jICAgICAgICAgICAgICB8ICAyICstCiBmcy9jb3JlZHVtcC5j ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBmcy9kY2FjaGUuYyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICstCiBmcy9kcm9wX2NhY2hlcy5jICAgICAgICAg ICAgICAgICAgICAgICAgICB8ICAyICstCiBmcy9leGVjLmMgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICA0ICstCiBmcy9maWxlX3RhYmxlLmMgICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICA0ICstCiBmcy9mcy13cml0ZWJhY2suYyAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAyICstCiBmcy9pbm9kZS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICst CiBmcy9waXBlLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBmcy9x dW90YS9kcXVvdC5jICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBmcy94ZnMveGZz X3N5c2N0bC5jICAgICAgICAgICAgICAgICAgICAgICB8ICA2ICstLQogaW5jbHVkZS9saW51eC9m dHJhY2UuaCAgICAgICAgICAgICAgICAgICAgfCAgNCArLQogaW5jbHVkZS9saW51eC9tbS5oICAg ICAgICAgICAgICAgICAgICAgICAgfCAgOCArKy0tCiBpbmNsdWRlL2xpbnV4L3BlcmZfZXZlbnQu aCAgICAgICAgICAgICAgICB8ICA2ICstLQogaW5jbHVkZS9saW51eC9zZWN1cml0eS5oICAgICAg ICAgICAgICAgICAgfCAgMiArLQogaW5jbHVkZS9saW51eC9zeXNjdGwuaCAgICAgICAgICAgICAg ICAgICAgfCAzNCArKysrKysrKy0tLS0tLS0tCiBpbmNsdWRlL2xpbnV4L3Ztc3RhdC5oICAgICAg ICAgICAgICAgICAgICB8ICA2ICstLQogaW5jbHVkZS9saW51eC93cml0ZWJhY2suaCAgICAgICAg ICAgICAgICAgfCAgMiArLQogaW5jbHVkZS9uZXQvbmRpc2MuaCAgICAgICAgICAgICAgICAgICAg ICAgfCAgMiArLQogaW5jbHVkZS9uZXQvbmVpZ2hib3VyLmggICAgICAgICAgICAgICAgICAgfCAg NiArLS0KIGluY2x1ZGUvbmV0L25ldGZpbHRlci9uZl9ob29rc19sd3R1bm5lbC5oIHwgIDIgKy0K IGlwYy9pcGNfc3lzY3RsLmMgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDggKystLQoga2Vy bmVsL2JwZi9zeXNjYWxsLmMgICAgICAgICAgICAgICAgICAgICAgfCAgNCArLQoga2VybmVsL2Rl bGF5YWNjdC5jICAgICAgICAgICAgICAgICAgICAgICAgfCAgNCArLQoga2VybmVsL2V2ZW50cy9j YWxsY2hhaW4uYyAgICAgICAgICAgICAgICAgfCAgMiArLQoga2VybmVsL2V2ZW50cy9jb3JlLmMg ICAgICAgICAgICAgICAgICAgICAgfCAgNCArLQoga2VybmVsL2ZvcmsuYyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgMiArLQoga2VybmVsL2h1bmdfdGFzay5jICAgICAgICAgICAgICAg ICAgICAgICAgfCAgNiArLS0KIGtlcm5lbC9rZXhlY19jb3JlLmMgICAgICAgICAgICAgICAgICAg ICAgIHwgIDIgKy0KIGtlcm5lbC9rcHJvYmVzLmMgICAgICAgICAgICAgICAgICAgICAgICAgIHwg IDIgKy0KIGtlcm5lbC9sYXRlbmN5dG9wLmMgICAgICAgICAgICAgICAgICAgICAgIHwgIDQgKy0K IGtlcm5lbC9waWRfbmFtZXNwYWNlLmMgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGtlcm5l bC9waWRfc3lzY3RsLmggICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGtlcm5lbC9wcmlu dGsvaW50ZXJuYWwuaCAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGtlcm5lbC9wcmludGsvcHJp bnRrLmMgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGtlcm5lbC9wcmludGsvc3lzY3RsLmMg ICAgICAgICAgICAgICAgICAgIHwgIDUgKystCiBrZXJuZWwvc2NoZWQvY29yZS5jICAgICAgICAg ICAgICAgICAgICAgICB8ICA4ICsrLS0KIGtlcm5lbC9zY2hlZC9ydC5jICAgICAgICAgICAgICAg ICAgICAgICAgIHwgMTYgKysrKy0tLS0KIGtlcm5lbC9zY2hlZC90b3BvbG9neS5jICAgICAgICAg ICAgICAgICAgIHwgIDIgKy0KIGtlcm5lbC9zZWNjb21wLmMgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgMTAgKystLS0KIGtlcm5lbC9zdGFja2xlYWsuYyAgICAgICAgICAgICAgICAgICAgICAg IHwgIDIgKy0KIGtlcm5lbC9zeXNjdGwuYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNjgg KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLQoga2VybmVsL3RpbWUvdGltZXIuYyAgICAg ICAgICAgICAgICAgICAgICAgfCAgMiArLQoga2VybmVsL3RyYWNlL2Z0cmFjZS5jICAgICAgICAg ICAgICAgICAgICAgfCAgMiArLQoga2VybmVsL3RyYWNlL3RyYWNlLmMgICAgICAgICAgICAgICAg ICAgICAgfCAgMiArLQoga2VybmVsL3RyYWNlL3RyYWNlX2V2ZW50c191c2VyLmMgICAgICAgICAg fCAgMiArLQoga2VybmVsL3RyYWNlL3RyYWNlX3N0YWNrLmMgICAgICAgICAgICAgICAgfCAgMiAr LQoga2VybmVsL3VtaC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQoga2Vy bmVsL3V0c25hbWVfc3lzY3RsLmMgICAgICAgICAgICAgICAgICAgfCAgMiArLQoga2VybmVsL3dh dGNoZG9nLmMgICAgICAgICAgICAgICAgICAgICAgICAgfCAxMiArKystLS0KIG1tL2NvbXBhY3Rp b24uYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDYgKy0tCiBtbS9odWdldGxiLmMgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA4ICsrLS0KIG1tL3BhZ2Utd3JpdGViYWNrLmMg ICAgICAgICAgICAgICAgICAgICAgIHwgMTggKysrKy0tLS0KIG1tL3BhZ2VfYWxsb2MuYyAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgMTQgKysrLS0tLQogbW0vdXRpbC5jICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAxMiArKystLS0KIG1tL3Ztc3RhdC5jICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgIDQgKy0KIG5ldC9icmlkZ2UvYnJfbmV0ZmlsdGVyX2hvb2tz LmMgICAgICAgICAgIHwgIDIgKy0KIG5ldC9jb3JlL25laWdoYm91ci5jICAgICAgICAgICAgICAg ICAgICAgIHwgMTggKysrKy0tLS0KIG5ldC9jb3JlL3N5c2N0bF9uZXRfY29yZS5jICAgICAgICAg ICAgICAgIHwgMjAgKysrKy0tLS0tCiBuZXQvaXB2NC9kZXZpbmV0LmMgICAgICAgICAgICAgICAg ICAgICAgICB8ICA2ICstLQogbmV0L2lwdjQvcm91dGUuYyAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgMiArLQogbmV0L2lwdjQvc3lzY3RsX25ldF9pcHY0LmMgICAgICAgICAgICAgICAgfCAz MiArKysrKysrLS0tLS0tLS0KIG5ldC9pcHY2L2FkZHJjb25mLmMgICAgICAgICAgICAgICAgICAg ICAgIHwgMTkgKysrKystLS0tCiBuZXQvaXB2Ni9uZGlzYy5jICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAyICstCiBuZXQvaXB2Ni9yb3V0ZS5jICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAyICstCiBuZXQvaXB2Ni9zeXNjdGxfbmV0X2lwdjYuYyAgICAgICAgICAgICAgICB8ICA0ICst CiBuZXQvbXBscy9hZl9tcGxzLmMgICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICstCiBuZXQv bmV0ZmlsdGVyL2lwdnMvaXBfdnNfY3RsLmMgICAgICAgICAgICB8IDEyICsrKy0tLQogbmV0L25l dGZpbHRlci9uZl9jb25udHJhY2tfc3RhbmRhbG9uZS5jICAgfCAgMiArLQogbmV0L25ldGZpbHRl ci9uZl9ob29rc19sd3R1bm5lbC5jICAgICAgICAgfCAgMiArLQogbmV0L25ldGZpbHRlci9uZl9s b2cuYyAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogbmV0L3Bob25ldC9zeXNjdGwuYyAgICAg ICAgICAgICAgICAgICAgICAgfCAgMiArLQogbmV0L3Jkcy90Y3AuYyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgNCArLQogbmV0L3NjdHAvc3lzY3RsLmMgICAgICAgICAgICAgICAgICAg ICAgICAgfCAzMiArKysrKysrLS0tLS0tLS0KIG5ldC9zdW5ycGMvc3lzY3RsLmMgICAgICAgICAg ICAgICAgICAgICAgIHwgIDYgKy0tCiBuZXQvc3VucnBjL3hwcnRyZG1hL3N2Y19yZG1hLmMgICAg ICAgICAgICB8ICAyICstCiBzZWN1cml0eS9hcHBhcm1vci9sc20uYyAgICAgICAgICAgICAgICAg ICB8ICAyICstCiBzZWN1cml0eS9taW5fYWRkci5jICAgICAgICAgICAgICAgICAgICAgICB8ICAy ICstCiBzZWN1cml0eS95YW1hL3lhbWFfbHNtLmMgICAgICAgICAgICAgICAgICB8ICAyICstCiA5 MiBmaWxlcyBjaGFuZ2VkLCAyOTUgaW5zZXJ0aW9ucygrKSwgMjkzIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2FyY2gvYXJtNjQva2VybmVsL2FybXY4X2RlcHJlY2F0ZWQuYyBiL2FyY2gvYXJt NjQva2VybmVsL2FybXY4X2RlcHJlY2F0ZWQuYwppbmRleCBkZDZjZTg2ZDQzMzIuLmEzMDg1Y2I2 ODg1MiAxMDA2NDQKLS0tIGEvYXJjaC9hcm02NC9rZXJuZWwvYXJtdjhfZGVwcmVjYXRlZC5jCisr KyBiL2FyY2gvYXJtNjQva2VybmVsL2FybXY4X2RlcHJlY2F0ZWQuYwpAQCAtNTA0LDcgKzUwNCw3 IEBAIHN0YXRpYyBpbnQgdXBkYXRlX2luc25fZW11bGF0aW9uX21vZGUoc3RydWN0IGluc25fZW11 bGF0aW9uICppbnNuLAogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyBpbnQgZW11bGF0aW9uX3By b2NfaGFuZGxlcihzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAorc3RhdGljIGlu dCBlbXVsYXRpb25fcHJvY19oYW5kbGVyKGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBp bnQgd3JpdGUsCiAJCQkJICB2b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCwKIAkJCQkgIGxvZmZf dCAqcHBvcykKIHsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQva2VybmVsL2Zwc2ltZC5jIGIvYXJj aC9hcm02NC9rZXJuZWwvZnBzaW1kLmMKaW5kZXggZWJiMDE1ODk5N2NhLi45OGVmYjU4N2VmMzYg MTAwNjQ0Ci0tLSBhL2FyY2gvYXJtNjQva2VybmVsL2Zwc2ltZC5jCisrKyBiL2FyY2gvYXJtNjQv a2VybmVsL2Zwc2ltZC5jCkBAIC01MzUsNyArNTM1LDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBm aW5kX3N1cHBvcnRlZF92ZWN0b3JfbGVuZ3RoKGVudW0gdmVjX3R5cGUgdHlwZSwKIAogI2lmIGRl ZmluZWQoQ09ORklHX0FSTTY0X1NWRSkgJiYgZGVmaW5lZChDT05GSUdfU1lTQ1RMKQogCi1zdGF0 aWMgaW50IHZlY19wcm9jX2RvX2RlZmF1bHRfdmwoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGlu dCB3cml0ZSwKK3N0YXRpYyBpbnQgdmVjX3Byb2NfZG9fZGVmYXVsdF92bChjb25zdCBzdHJ1Y3Qg Y3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCQkJCSAgdm9pZCAqYnVmZmVyLCBzaXplX3Qg KmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlzdHJ1Y3QgdmxfaW5mbyAqaW5mbyA9IHRhYmxlLT5l eHRyYTE7CmRpZmYgLS1naXQgYS9hcmNoL3MzOTAvYXBwbGRhdGEvYXBwbGRhdGFfYmFzZS5jIGIv YXJjaC9zMzkwL2FwcGxkYXRhL2FwcGxkYXRhX2Jhc2UuYwppbmRleCBjMjk3OGNiMDNiMzYuLjkx YTMwZTAxN2Q2NSAxMDA2NDQKLS0tIGEvYXJjaC9zMzkwL2FwcGxkYXRhL2FwcGxkYXRhX2Jhc2Uu YworKysgYi9hcmNoL3MzOTAvYXBwbGRhdGEvYXBwbGRhdGFfYmFzZS5jCkBAIC00Niw5ICs0Niw5 IEBACiAgKiAvcHJvYyBlbnRyaWVzIChzeXNjdGwpCiAgKi8KIHN0YXRpYyBjb25zdCBjaGFyIGFw cGxkYXRhX3Byb2NfbmFtZVtBUFBMREFUQV9QUk9DX05BTUVfTEVOR1RIXSA9ICJhcHBsZGF0YSI7 Ci1zdGF0aWMgaW50IGFwcGxkYXRhX3RpbWVyX2hhbmRsZXIoc3RydWN0IGN0bF90YWJsZSAqY3Rs LCBpbnQgd3JpdGUsCitzdGF0aWMgaW50IGFwcGxkYXRhX3RpbWVyX2hhbmRsZXIoY29uc3Qgc3Ry dWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsCiAJCQkJICB2b2lkICpidWZmZXIsIHNpemVf dCAqbGVucCwgbG9mZl90ICpwcG9zKTsKLXN0YXRpYyBpbnQgYXBwbGRhdGFfaW50ZXJ2YWxfaGFu ZGxlcihzdHJ1Y3QgY3RsX3RhYmxlICpjdGwsIGludCB3cml0ZSwKK3N0YXRpYyBpbnQgYXBwbGRh dGFfaW50ZXJ2YWxfaGFuZGxlcihjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICpjdGwsIGludCB3cml0 ZSwKIAkJCQkgICAgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpOwog CiBzdGF0aWMgc3RydWN0IGN0bF90YWJsZV9oZWFkZXIgKmFwcGxkYXRhX3N5c2N0bF9oZWFkZXI7 CkBAIC0xOTksNyArMTk5LDcgQEAgc3RhdGljIHZvaWQgX19hcHBsZGF0YV92dGltZXJfc2V0dXAo aW50IGNtZCkKICAqIFN0YXJ0L1N0b3AgdGltZXIsIHNob3cgc3RhdHVzIG9mIHRpbWVyICgwID0g bm90IGFjdGl2ZSwgMSA9IGFjdGl2ZSkKICAqLwogc3RhdGljIGludAotYXBwbGRhdGFfdGltZXJf aGFuZGxlcihzdHJ1Y3QgY3RsX3RhYmxlICpjdGwsIGludCB3cml0ZSwKK2FwcGxkYXRhX3RpbWVy X2hhbmRsZXIoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsCiAJCQkgICB2 b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQogewogCWludCB0aW1lcl9h Y3RpdmUgPSBhcHBsZGF0YV90aW1lcl9hY3RpdmU7CkBAIC0yMzIsNyArMjMyLDcgQEAgYXBwbGRh dGFfdGltZXJfaGFuZGxlcihzdHJ1Y3QgY3RsX3RhYmxlICpjdGwsIGludCB3cml0ZSwKICAqIGN1 cnJlbnQgdGltZXIgaW50ZXJ2YWwuCiAgKi8KIHN0YXRpYyBpbnQKLWFwcGxkYXRhX2ludGVydmFs X2hhbmRsZXIoc3RydWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsCithcHBsZGF0YV9pbnRl cnZhbF9oYW5kbGVyKGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKmN0bCwgaW50IHdyaXRlLAogCQkJ ICAgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlpbnQgaW50 ZXJ2YWwgPSBhcHBsZGF0YV9pbnRlcnZhbDsKQEAgLTI2Miw3ICsyNjIsNyBAQCBhcHBsZGF0YV9p bnRlcnZhbF9oYW5kbGVyKHN0cnVjdCBjdGxfdGFibGUgKmN0bCwgaW50IHdyaXRlLAogICogbW9u aXRvcmluZyAoMCA9IG5vdCBpbiBwcm9jZXNzLCAxID0gaW4gcHJvY2VzcykKICAqLwogc3RhdGlj IGludAotYXBwbGRhdGFfZ2VuZXJpY19oYW5kbGVyKHN0cnVjdCBjdGxfdGFibGUgKmN0bCwgaW50 IHdyaXRlLAorYXBwbGRhdGFfZ2VuZXJpY19oYW5kbGVyKGNvbnN0IHN0cnVjdCBjdGxfdGFibGUg KmN0bCwgaW50IHdyaXRlLAogCQkJICAgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZf dCAqcHBvcykKIHsKIAlzdHJ1Y3QgYXBwbGRhdGFfb3BzICpvcHMgPSBOVUxMLCAqdG1wX29wczsK ZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9rZXJuZWwvZGVidWcuYyBiL2FyY2gvczM5MC9rZXJuZWwv ZGVidWcuYwppbmRleCA4NTMyOGEwZWYzYjYuLmJjZTUwY2E3NWVhNyAxMDA2NDQKLS0tIGEvYXJj aC9zMzkwL2tlcm5lbC9kZWJ1Zy5jCisrKyBiL2FyY2gvczM5MC9rZXJuZWwvZGVidWcuYwpAQCAt OTU0LDcgKzk1NCw3IEBAIHN0YXRpYyBpbnQgZGVidWdfYWN0aXZlID0gMTsKICAqIGFsd2F5cyBh bGxvdyByZWFkLCBhbGxvdyB3cml0ZSBvbmx5IGlmIGRlYnVnX3N0b3BwYWJsZSBpcyBzZXQgb3IK ICAqIGlmIGRlYnVnX2FjdGl2ZSBpcyBhbHJlYWR5IG9mZgogICovCi1zdGF0aWMgaW50IHMzOTBk YmZfcHJvY2FjdGl2ZShzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAorc3RhdGlj IGludCBzMzkwZGJmX3Byb2NhY3RpdmUoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGlu dCB3cml0ZSwKIAkJCSAgICAgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBw b3MpCiB7CiAJaWYgKCF3cml0ZSB8fCBkZWJ1Z19zdG9wcGFibGUgfHwgIWRlYnVnX2FjdGl2ZSkK ZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9rZXJuZWwvdG9wb2xvZ3kuYyBiL2FyY2gvczM5MC9rZXJu ZWwvdG9wb2xvZ3kuYwppbmRleCA4OWU5MWI4Y2U4NDIuLjFkZjNkYzExODY5NiAxMDA2NDQKLS0t IGEvYXJjaC9zMzkwL2tlcm5lbC90b3BvbG9neS5jCisrKyBiL2FyY2gvczM5MC9rZXJuZWwvdG9w b2xvZ3kuYwpAQCAtNjAwLDcgKzYwMCw3IEBAIHN0YXRpYyBpbnQgX19pbml0IHRvcG9sb2d5X3Nl dHVwKGNoYXIgKnN0cikKIH0KIGVhcmx5X3BhcmFtKCJ0b3BvbG9neSIsIHRvcG9sb2d5X3NldHVw KTsKIAotc3RhdGljIGludCB0b3BvbG9neV9jdGxfaGFuZGxlcihzdHJ1Y3QgY3RsX3RhYmxlICpj dGwsIGludCB3cml0ZSwKK3N0YXRpYyBpbnQgdG9wb2xvZ3lfY3RsX2hhbmRsZXIoY29uc3Qgc3Ry dWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsCiAJCQkJdm9pZCAqYnVmZmVyLCBzaXplX3Qg KmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlpbnQgZW5hYmxlZCA9IHRvcG9sb2d5X2lzX2VuYWJs ZWQoKTsKZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9tbS9jbW0uYyBiL2FyY2gvczM5MC9tbS9jbW0u YwppbmRleCBmOGIxM2YyNDc2NDYuLjFkNjc0OWUwOTVmNyAxMDA2NDQKLS0tIGEvYXJjaC9zMzkw L21tL2NtbS5jCisrKyBiL2FyY2gvczM5MC9tbS9jbW0uYwpAQCAtMjQzLDcgKzI0Myw3IEBAIHN0 YXRpYyBpbnQgY21tX3NraXBfYmxhbmtzKGNoYXIgKmNwLCBjaGFyICoqZW5kcCkKIAlyZXR1cm4g c3RyICE9IGNwOwogfQogCi1zdGF0aWMgaW50IGNtbV9wYWdlc19oYW5kbGVyKHN0cnVjdCBjdGxf dGFibGUgKmN0bCwgaW50IHdyaXRlLAorc3RhdGljIGludCBjbW1fcGFnZXNfaGFuZGxlcihjb25z dCBzdHJ1Y3QgY3RsX3RhYmxlICpjdGwsIGludCB3cml0ZSwKIAkJCSAgICAgdm9pZCAqYnVmZmVy LCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlsb25nIG5yID0gY21tX2dldF9wYWdl cygpOwpAQCAtMjYyLDcgKzI2Miw3IEBAIHN0YXRpYyBpbnQgY21tX3BhZ2VzX2hhbmRsZXIoc3Ry dWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBp bnQgY21tX3RpbWVkX3BhZ2VzX2hhbmRsZXIoc3RydWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3Jp dGUsCitzdGF0aWMgaW50IGNtbV90aW1lZF9wYWdlc19oYW5kbGVyKGNvbnN0IHN0cnVjdCBjdGxf dGFibGUgKmN0bCwgaW50IHdyaXRlLAogCQkJCSAgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5w LAogCQkJCSAgIGxvZmZfdCAqcHBvcykKIHsKQEAgLTI4Miw3ICsyODIsNyBAQCBzdGF0aWMgaW50 IGNtbV90aW1lZF9wYWdlc19oYW5kbGVyKHN0cnVjdCBjdGxfdGFibGUgKmN0bCwgaW50IHdyaXRl LAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGNtbV90aW1lb3V0X2hhbmRsZXIoc3RydWN0 IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsCitzdGF0aWMgaW50IGNtbV90aW1lb3V0X2hhbmRs ZXIoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsCiAJCQkgICAgICAgdm9p ZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAljaGFyIGJ1Zls2NF0s ICpwOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2l0bXQuYyBiL2FyY2gveDg2L2tlcm5l bC9pdG10LmMKaW5kZXggOWE3YzAzZDQ3ODYxLi41MWI4MDVjNzI3ZmMgMTAwNjQ0Ci0tLSBhL2Fy Y2gveDg2L2tlcm5lbC9pdG10LmMKKysrIGIvYXJjaC94ODYva2VybmVsL2l0bXQuYwpAQCAtMzgs NyArMzgsNyBAQCBzdGF0aWMgYm9vbCBfX3JlYWRfbW9zdGx5IHNjaGVkX2l0bXRfY2FwYWJsZTsK ICAqLwogdW5zaWduZWQgaW50IF9fcmVhZF9tb3N0bHkgc3lzY3RsX3NjaGVkX2l0bXRfZW5hYmxl ZDsKIAotc3RhdGljIGludCBzY2hlZF9pdG10X3VwZGF0ZV9oYW5kbGVyKHN0cnVjdCBjdGxfdGFi bGUgKnRhYmxlLCBpbnQgd3JpdGUsCitzdGF0aWMgaW50IHNjaGVkX2l0bXRfdXBkYXRlX2hhbmRs ZXIoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIAkJCQkgICAgIHZv aWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJdW5zaWduZWQgaW50 IG9sZF9zeXNjdGw7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nkcm9tL2Nkcm9tLmMgYi9kcml2ZXJz L2Nkcm9tL2Nkcm9tLmMKaW5kZXggYTVlMDcyNzBlMGQ0Li5kMGJkNjQxMjlkNDMgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvY2Ryb20vY2Ryb20uYworKysgYi9kcml2ZXJzL2Nkcm9tL2Nkcm9tLmMKQEAg LTM0NzMsNyArMzQ3Myw3IEBAIHN0YXRpYyBpbnQgY2Ryb21fcHJpbnRfaW5mbyhjb25zdCBjaGFy ICpoZWFkZXIsIGludCB2YWwsIGNoYXIgKmluZm8sCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBp bnQgY2Ryb21fc3lzY3RsX2luZm8oc3RydWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsCitz dGF0aWMgaW50IGNkcm9tX3N5c2N0bF9pbmZvKGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKmN0bCwg aW50IHdyaXRlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqYnVmZmVyLCBzaXpl X3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlpbnQgcG9zOwpAQCAtMzU4Niw3ICszNTg2LDcg QEAgc3RhdGljIHZvaWQgY2Ryb21fdXBkYXRlX3NldHRpbmdzKHZvaWQpCiAJbXV0ZXhfdW5sb2Nr KCZjZHJvbV9tdXRleCk7CiB9CiAKLXN0YXRpYyBpbnQgY2Ryb21fc3lzY3RsX2hhbmRsZXIoc3Ry dWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsCitzdGF0aWMgaW50IGNkcm9tX3N5c2N0bF9o YW5kbGVyKGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKmN0bCwgaW50IHdyaXRlLAogCQkJCXZvaWQg KmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJaW50IHJldDsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvY2hhci9yYW5kb20uYyBiL2RyaXZlcnMvY2hhci9yYW5kb20uYwppbmRl eCAyNTk3Y2I0M2Y0MzguLmNhNDE0MjA4Zjg5OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL3Jh bmRvbS5jCisrKyBiL2RyaXZlcnMvY2hhci9yYW5kb20uYwpAQCAtMTYwNCw3ICsxNjA0LDcgQEAg c3RhdGljIHU4IHN5c2N0bF9ib290aWRbVVVJRF9TSVpFXTsKICAqIFVVSUQuIFRoZSBkaWZmZXJl bmNlIGlzIGluIHdoZXRoZXIgdGFibGUtPmRhdGEgaXMgTlVMTDsgaWYgaXQgaXMsCiAgKiB0aGVu IGEgbmV3IFVVSUQgaXMgZ2VuZXJhdGVkIGFuZCByZXR1cm5lZCB0byB0aGUgdXNlci4KICAqLwot c3RhdGljIGludCBwcm9jX2RvX3V1aWQoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0 ZSwgdm9pZCAqYnVmLAorc3RhdGljIGludCBwcm9jX2RvX3V1aWQoY29uc3Qgc3RydWN0IGN0bF90 YWJsZSAqdGFibGUsIGludCB3cml0ZSwgdm9pZCAqYnVmLAogCQkJc2l6ZV90ICpsZW5wLCBsb2Zm X3QgKnBwb3MpCiB7CiAJdTggdG1wX3V1aWRbVVVJRF9TSVpFXSwgKnV1aWQ7CkBAIC0xNjM1LDgg KzE2MzUsOCBAQCBzdGF0aWMgaW50IHByb2NfZG9fdXVpZChzdHJ1Y3QgY3RsX3RhYmxlICp0YWJs ZSwgaW50IHdyaXRlLCB2b2lkICpidWYsCiB9CiAKIC8qIFRoZSBzYW1lIGFzIHByb2NfZG9pbnR2 ZWMsIGJ1dCB3cml0ZXMgZG9uJ3QgY2hhbmdlIGFueXRoaW5nLiAqLwotc3RhdGljIGludCBwcm9j X2RvX3JvaW50dmVjKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsIHZvaWQgKmJ1 ZiwKLQkJCSAgICBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKK3N0YXRpYyBpbnQgcHJvY19k b19yb2ludHZlYyhjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAorCQkJ ICAgIHZvaWQgKmJ1Ziwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJcmV0dXJuIHdy aXRlID8gMCA6IHByb2NfZG9pbnR2ZWModGFibGUsIDAsIGJ1ZiwgbGVucCwgcHBvcyk7CiB9CmRp ZmYgLS1naXQgYS9kcml2ZXJzL21hY2ludG9zaC9tYWNfaGlkLmMgYi9kcml2ZXJzL21hY2ludG9z aC9tYWNfaGlkLmMKaW5kZXggMWFlMzUzOWJlZmY1Li44OTEwNDdjOGExMTAgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvbWFjaW50b3NoL21hY19oaWQuYworKysgYi9kcml2ZXJzL21hY2ludG9zaC9tYWNf aGlkLmMKQEAgLTE4Miw3ICsxODIsNyBAQCBzdGF0aWMgdm9pZCBtYWNfaGlkX3N0b3BfZW11bGF0 aW9uKHZvaWQpCiAJbWFjX2hpZF9kZXN0cm95X2VtdW1vdXNlKCk7CiB9CiAKLXN0YXRpYyBpbnQg bWFjX2hpZF90b2dnbGVfZW11bW91c2Uoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0 ZSwKK3N0YXRpYyBpbnQgbWFjX2hpZF90b2dnbGVfZW11bW91c2UoY29uc3Qgc3RydWN0IGN0bF90 YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIAkJCQkgICB2b2lkICpidWZmZXIsIHNpemVfdCAqbGVu cCwgbG9mZl90ICpwcG9zKQogewogCWludCAqdmFscCA9IHRhYmxlLT5kYXRhOwpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQvdnJmLmMgYi9kcml2ZXJzL25ldC92cmYuYwppbmRleCA2NmY4NTQyZjNi MTguLjE0YzVlZmQyMzRhZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvdnJmLmMKKysrIGIvZHJp dmVycy9uZXQvdnJmLmMKQEAgLTE5MDgsNyArMTkwOCw3IEBAIHN0YXRpYyBpbnQgdnJmX3N0cmlj dF9tb2RlX2NoYW5nZShzdHJ1Y3QgdnJmX21hcCAqdm1hcCwgYm9vbCBuZXdfbW9kZSkKIAlyZXR1 cm4gcmVzOwogfQogCi1zdGF0aWMgaW50IHZyZl9zaGFyZWRfdGFibGVfaGFuZGxlcihzdHJ1Y3Qg Y3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAorc3RhdGljIGludCB2cmZfc2hhcmVkX3RhYmxl X2hhbmRsZXIoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIAkJCQkg ICAgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlzdHJ1Y3Qg bmV0ICpuZXQgPSAoc3RydWN0IG5ldCAqKXRhYmxlLT5leHRyYTE7CmRpZmYgLS1naXQgYS9kcml2 ZXJzL3BhcnBvcnQvcHJvY2ZzLmMgYi9kcml2ZXJzL3BhcnBvcnQvcHJvY2ZzLmMKaW5kZXggYmQz ODg1NjBlZDU5Li5lZmE3YzkwZTQyMzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGFycG9ydC9wcm9j ZnMuYworKysgYi9kcml2ZXJzL3BhcnBvcnQvcHJvY2ZzLmMKQEAgLTMzLDcgKzMzLDcgQEAKICNk ZWZpbmUgUEFSUE9SVF9NSU5fU1BJTlRJTUVfVkFMVUUgMQogI2RlZmluZSBQQVJQT1JUX01BWF9T UElOVElNRV9WQUxVRSAxMDAwCiAKLXN0YXRpYyBpbnQgZG9fYWN0aXZlX2RldmljZShzdHJ1Y3Qg Y3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAorc3RhdGljIGludCBkb19hY3RpdmVfZGV2aWNl KGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJCSAgICAgIHZvaWQg KnJlc3VsdCwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJc3RydWN0IHBhcnBvcnQg KnBvcnQgPSAoc3RydWN0IHBhcnBvcnQgKil0YWJsZS0+ZXh0cmExOwpAQCAtNzAsNyArNzAsNyBA QCBzdGF0aWMgaW50IGRvX2FjdGl2ZV9kZXZpY2Uoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGlu dCB3cml0ZSwKIH0KIAogI2lmZGVmIENPTkZJR19QQVJQT1JUXzEyODQKLXN0YXRpYyBpbnQgZG9f YXV0b3Byb2JlKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCitzdGF0aWMgaW50 IGRvX2F1dG9wcm9iZShjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAog CQkJdm9pZCAqcmVzdWx0LCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlzdHJ1Y3Qg cGFycG9ydF9kZXZpY2VfaW5mbyAqaW5mbyA9IHRhYmxlLT5leHRyYTI7CkBAIC0xMTMsNyArMTEz LDcgQEAgc3RhdGljIGludCBkb19hdXRvcHJvYmUoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGlu dCB3cml0ZSwKIH0KICNlbmRpZiAvKiBJRUVFMTI4NC4zIHN1cHBvcnQuICovCiAKLXN0YXRpYyBp bnQgZG9faGFyZHdhcmVfYmFzZV9hZGRyKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3Jp dGUsCitzdGF0aWMgaW50IGRvX2hhcmR3YXJlX2Jhc2VfYWRkcihjb25zdCBzdHJ1Y3QgY3RsX3Rh YmxlICp0YWJsZSwgaW50IHdyaXRlLAogCQkJCSB2b2lkICpyZXN1bHQsIHNpemVfdCAqbGVucCwg bG9mZl90ICpwcG9zKQogewogCXN0cnVjdCBwYXJwb3J0ICpwb3J0ID0gKHN0cnVjdCBwYXJwb3J0 ICopdGFibGUtPmV4dHJhMTsKQEAgLTE0MCw3ICsxNDAsNyBAQCBzdGF0aWMgaW50IGRvX2hhcmR3 YXJlX2Jhc2VfYWRkcihzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCXJldHVy biAwOwogfQogCi1zdGF0aWMgaW50IGRvX2hhcmR3YXJlX2lycShzdHJ1Y3QgY3RsX3RhYmxlICp0 YWJsZSwgaW50IHdyaXRlLAorc3RhdGljIGludCBkb19oYXJkd2FyZV9pcnEoY29uc3Qgc3RydWN0 IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIAkJCSAgIHZvaWQgKnJlc3VsdCwgc2l6ZV90 ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJc3RydWN0IHBhcnBvcnQgKnBvcnQgPSAoc3RydWN0 IHBhcnBvcnQgKil0YWJsZS0+ZXh0cmExOwpAQCAtMTY3LDcgKzE2Nyw3IEBAIHN0YXRpYyBpbnQg ZG9faGFyZHdhcmVfaXJxKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJcmV0 dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgZG9faGFyZHdhcmVfZG1hKHN0cnVjdCBjdGxfdGFibGUg KnRhYmxlLCBpbnQgd3JpdGUsCitzdGF0aWMgaW50IGRvX2hhcmR3YXJlX2RtYShjb25zdCBzdHJ1 Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCQkJICAgdm9pZCAqcmVzdWx0LCBzaXpl X3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlzdHJ1Y3QgcGFycG9ydCAqcG9ydCA9IChzdHJ1 Y3QgcGFycG9ydCAqKXRhYmxlLT5leHRyYTE7CkBAIC0xOTQsNyArMTk0LDcgQEAgc3RhdGljIGlu dCBkb19oYXJkd2FyZV9kbWEoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIAly ZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBkb19oYXJkd2FyZV9tb2RlcyhzdHJ1Y3QgY3RsX3Rh YmxlICp0YWJsZSwgaW50IHdyaXRlLAorc3RhdGljIGludCBkb19oYXJkd2FyZV9tb2Rlcyhjb25z dCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCQkJICAgICB2b2lkICpyZXN1 bHQsIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQogewogCXN0cnVjdCBwYXJwb3J0ICpwb3J0 ID0gKHN0cnVjdCBwYXJwb3J0ICopdGFibGUtPmV4dHJhMTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv cGVyZi9hcm1fcG11djMuYyBiL2RyaXZlcnMvcGVyZi9hcm1fcG11djMuYwppbmRleCAyM2ZhNmM1 ZGE4MmMuLmFjY2RmM2FjNGMxZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9wZXJmL2FybV9wbXV2My5j CisrKyBiL2RyaXZlcnMvcGVyZi9hcm1fcG11djMuYwpAQCAtMTI1Myw4ICsxMjUzLDggQEAgc3Rh dGljIHZvaWQgYXJtdjhwbXVfZGlzYWJsZV91c2VyX2FjY2Vzc19pcGkodm9pZCAqdW51c2VkKQog CWFybXY4cG11X2Rpc2FibGVfdXNlcl9hY2Nlc3MoKTsKIH0KIAotc3RhdGljIGludCBhcm12OHBt dV9wcm9jX3VzZXJfYWNjZXNzX2hhbmRsZXIoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3 cml0ZSwKLQkJdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKK3N0YXRp YyBpbnQgYXJtdjhwbXVfcHJvY191c2VyX2FjY2Vzc19oYW5kbGVyKGNvbnN0IHN0cnVjdCBjdGxf dGFibGUgKnRhYmxlLAorCQlpbnQgd3JpdGUsIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBs b2ZmX3QgKnBwb3MpCiB7CiAJaW50IHJldCA9IHByb2NfZG9pbnR2ZWNfbWlubWF4KHRhYmxlLCB3 cml0ZSwgYnVmZmVyLCBsZW5wLCBwcG9zKTsKIAlpZiAocmV0IHx8ICF3cml0ZSB8fCBzeXNjdGxf cGVyZl91c2VyX2FjY2VzcykKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGVyZi9yaXNjdl9wbXVfc2Jp LmMgYi9kcml2ZXJzL3BlcmYvcmlzY3ZfcG11X3NiaS5jCmluZGV4IDgyNjM2MjczZDcyNi4uOWM5 Y2VlYzNhMjA2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3BlcmYvcmlzY3ZfcG11X3NiaS5jCisrKyBi L2RyaXZlcnMvcGVyZi9yaXNjdl9wbXVfc2JpLmMKQEAgLTEwMTMsNyArMTAxMyw3IEBAIHN0YXRp YyB2b2lkIHJpc2N2X3BtdV91cGRhdGVfY291bnRlcl9hY2Nlc3Modm9pZCAqaW5mbykKIAkJY3Ny X3dyaXRlKENTUl9TQ09VTlRFUkVOLCAweDIpOwogfQogCi1zdGF0aWMgaW50IHJpc2N2X3BtdV9w cm9jX3VzZXJfYWNjZXNzX2hhbmRsZXIoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsCitzdGF0aWMg aW50IHJpc2N2X3BtdV9wcm9jX3VzZXJfYWNjZXNzX2hhbmRsZXIoY29uc3Qgc3RydWN0IGN0bF90 YWJsZSAqdGFibGUsCiAJCQkJCSAgICAgIGludCB3cml0ZSwgdm9pZCAqYnVmZmVyLAogCQkJCQkg ICAgICBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKZGlmZiAtLWdpdCBhL2ZzL2NvcmVk dW1wLmMgYi9mcy9jb3JlZHVtcC5jCmluZGV4IDhlYWUyNGFmYjNjYi4uYjRmNjgxMTdkMjAzIDEw MDY0NAotLS0gYS9mcy9jb3JlZHVtcC5jCisrKyBiL2ZzL2NvcmVkdW1wLmMKQEAgLTk4Niw3ICs5 ODYsNyBAQCB2b2lkIHZhbGlkYXRlX2NvcmVkdW1wX3NhZmV0eSh2b2lkKQogCX0KIH0KIAotc3Rh dGljIGludCBwcm9jX2Rvc3RyaW5nX2NvcmVkdW1wKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBp bnQgd3JpdGUsCitzdGF0aWMgaW50IHByb2NfZG9zdHJpbmdfY29yZWR1bXAoY29uc3Qgc3RydWN0 IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIAkJICB2b2lkICpidWZmZXIsIHNpemVfdCAq bGVucCwgbG9mZl90ICpwcG9zKQogewogCWludCBlcnJvciA9IHByb2NfZG9zdHJpbmcodGFibGUs IHdyaXRlLCBidWZmZXIsIGxlbnAsIHBwb3MpOwpkaWZmIC0tZ2l0IGEvZnMvZGNhY2hlLmMgYi9m cy9kY2FjaGUuYwppbmRleCA0MDcwOTUxODhmODMuLjVjNmFlNTdkMDMyMSAxMDA2NDQKLS0tIGEv ZnMvZGNhY2hlLmMKKysrIGIvZnMvZGNhY2hlLmMKQEAgLTE3NCw4ICsxNzQsOCBAQCBzdGF0aWMg bG9uZyBnZXRfbnJfZGVudHJ5X25lZ2F0aXZlKHZvaWQpCiAJcmV0dXJuIHN1bSA8IDAgPyAwIDog c3VtOwogfQogCi1zdGF0aWMgaW50IHByb2NfbnJfZGVudHJ5KHN0cnVjdCBjdGxfdGFibGUgKnRh YmxlLCBpbnQgd3JpdGUsIHZvaWQgKmJ1ZmZlciwKLQkJCSAgc2l6ZV90ICpsZW5wLCBsb2ZmX3Qg KnBwb3MpCitzdGF0aWMgaW50IHByb2NfbnJfZGVudHJ5KGNvbnN0IHN0cnVjdCBjdGxfdGFibGUg KnRhYmxlLCBpbnQgd3JpdGUsCisJCQkgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2Zm X3QgKnBwb3MpCiB7CiAJZGVudHJ5X3N0YXQubnJfZGVudHJ5ID0gZ2V0X25yX2RlbnRyeSgpOwog CWRlbnRyeV9zdGF0Lm5yX3VudXNlZCA9IGdldF9ucl9kZW50cnlfdW51c2VkKCk7CmRpZmYgLS1n aXQgYS9mcy9kcm9wX2NhY2hlcy5jIGIvZnMvZHJvcF9jYWNoZXMuYwppbmRleCBiOTU3NTk1N2E3 YzIuLmQ0NWVmNTQxZDg0OCAxMDA2NDQKLS0tIGEvZnMvZHJvcF9jYWNoZXMuYworKysgYi9mcy9k cm9wX2NhY2hlcy5jCkBAIC00OCw3ICs0OCw3IEBAIHN0YXRpYyB2b2lkIGRyb3BfcGFnZWNhY2hl X3NiKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHZvaWQgKnVudXNlZCkKIAlpcHV0KHRvcHV0X2lu b2RlKTsKIH0KIAotaW50IGRyb3BfY2FjaGVzX3N5c2N0bF9oYW5kbGVyKHN0cnVjdCBjdGxfdGFi bGUgKnRhYmxlLCBpbnQgd3JpdGUsCitpbnQgZHJvcF9jYWNoZXNfc3lzY3RsX2hhbmRsZXIoY29u c3Qgc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIAkJdm9pZCAqYnVmZmVyLCBz aXplX3QgKmxlbmd0aCwgbG9mZl90ICpwcG9zKQogewogCWludCByZXQ7CmRpZmYgLS1naXQgYS9m cy9leGVjLmMgYi9mcy9leGVjLmMKaW5kZXggNDAwNzMxNDIyODhmLi5iYTU5NDAyMTk0YzcgMTAw NjQ0Ci0tLSBhL2ZzL2V4ZWMuYworKysgYi9mcy9leGVjLmMKQEAgLTIxODEsOCArMjE4MSw4IEBA IENPTVBBVF9TWVNDQUxMX0RFRklORTUoZXhlY3ZlYXQsIGludCwgZmQsCiAKICNpZmRlZiBDT05G SUdfU1lTQ1RMCiAKLXN0YXRpYyBpbnQgcHJvY19kb2ludHZlY19taW5tYXhfY29yZWR1bXAoc3Ry dWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKLQkJdm9pZCAqYnVmZmVyLCBzaXplX3Qg KmxlbnAsIGxvZmZfdCAqcHBvcykKK3N0YXRpYyBpbnQgcHJvY19kb2ludHZlY19taW5tYXhfY29y ZWR1bXAoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqdGFibGUsCisJCWludCB3cml0ZSwgdm9pZCAq YnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlpbnQgZXJyb3IgPSBwcm9j X2RvaW50dmVjX21pbm1heCh0YWJsZSwgd3JpdGUsIGJ1ZmZlciwgbGVucCwgcHBvcyk7CiAKZGlm ZiAtLWdpdCBhL2ZzL2ZpbGVfdGFibGUuYyBiL2ZzL2ZpbGVfdGFibGUuYwppbmRleCA0ZjAzYmVl ZDQ3MzcuLmY1NDgwNDczNzI3ZSAxMDA2NDQKLS0tIGEvZnMvZmlsZV90YWJsZS5jCisrKyBiL2Zz L2ZpbGVfdGFibGUuYwpAQCAtOTYsOCArOTYsOCBAQCBFWFBPUlRfU1lNQk9MX0dQTChnZXRfbWF4 X2ZpbGVzKTsKIC8qCiAgKiBIYW5kbGUgbnJfZmlsZXMgc3lzY3RsCiAgKi8KLXN0YXRpYyBpbnQg cHJvY19ucl9maWxlcyhzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLCB2b2lkICpi dWZmZXIsCi0JCQkgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCitzdGF0aWMgaW50IHByb2Nf bnJfZmlsZXMoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKKwkJCSB2 b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQogewogCWZpbGVzX3N0YXQu bnJfZmlsZXMgPSBnZXRfbnJfZmlsZXMoKTsKIAlyZXR1cm4gcHJvY19kb3Vsb25ndmVjX21pbm1h eCh0YWJsZSwgd3JpdGUsIGJ1ZmZlciwgbGVucCwgcHBvcyk7CmRpZmYgLS1naXQgYS9mcy9mcy13 cml0ZWJhY2suYyBiL2ZzL2ZzLXdyaXRlYmFjay5jCmluZGV4IDkyYTViODI4MzUyOC4uYjg2NWEz ZmE1MmYzIDEwMDY0NAotLS0gYS9mcy9mcy13cml0ZWJhY2suYworKysgYi9mcy9mcy13cml0ZWJh Y2suYwpAQCAtMjQxMyw3ICsyNDEzLDcgQEAgc3RhdGljIGludCBfX2luaXQgc3RhcnRfZGlydHl0 aW1lX3dyaXRlYmFjayh2b2lkKQogfQogX19pbml0Y2FsbChzdGFydF9kaXJ0eXRpbWVfd3JpdGVi YWNrKTsKIAotaW50IGRpcnR5dGltZV9pbnRlcnZhbF9oYW5kbGVyKHN0cnVjdCBjdGxfdGFibGUg KnRhYmxlLCBpbnQgd3JpdGUsCitpbnQgZGlydHl0aW1lX2ludGVydmFsX2hhbmRsZXIoY29uc3Qg c3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIAkJCSAgICAgICB2b2lkICpidWZm ZXIsIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQogewogCWludCByZXQ7CmRpZmYgLS1naXQg YS9mcy9pbm9kZS5jIGIvZnMvaW5vZGUuYwppbmRleCAzYTQxZjgzYTRiYTUuLmE2MjI1MDNhOTky YyAxMDA2NDQKLS0tIGEvZnMvaW5vZGUuYworKysgYi9mcy9pbm9kZS5jCkBAIC0xMDcsOCArMTA3 LDggQEAgbG9uZyBnZXRfbnJfZGlydHlfaW5vZGVzKHZvaWQpCiAgKi8KIHN0YXRpYyBzdHJ1Y3Qg aW5vZGVzX3N0YXRfdCBpbm9kZXNfc3RhdDsKIAotc3RhdGljIGludCBwcm9jX25yX2lub2Rlcyhz dHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLCB2b2lkICpidWZmZXIsCi0JCQkgIHNp emVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQorc3RhdGljIGludCBwcm9jX25yX2lub2Rlcyhjb25z dCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAorCQkJICB2b2lkICpidWZmZXIs IHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQogewogCWlub2Rlc19zdGF0Lm5yX2lub2RlcyA9 IGdldF9ucl9pbm9kZXMoKTsKIAlpbm9kZXNfc3RhdC5ucl91bnVzZWQgPSBnZXRfbnJfaW5vZGVz X3VudXNlZCgpOwpkaWZmIC0tZ2l0IGEvZnMvcGlwZS5jIGIvZnMvcGlwZS5jCmluZGV4IDUwYzhh ODU5NmI1Mi4uN2RmZjJhYTUwYTZkIDEwMDY0NAotLS0gYS9mcy9waXBlLmMKKysrIGIvZnMvcGlw ZS5jCkBAIC0xNDY5LDcgKzE0NjksNyBAQCBzdGF0aWMgaW50IGRvX3Byb2NfZG9waXBlX21heF9z aXplX2NvbnYodW5zaWduZWQgbG9uZyAqbHZhbHAsCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBp bnQgcHJvY19kb3BpcGVfbWF4X3NpemUoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0 ZSwKK3N0YXRpYyBpbnQgcHJvY19kb3BpcGVfbWF4X3NpemUoY29uc3Qgc3RydWN0IGN0bF90YWJs ZSAqdGFibGUsIGludCB3cml0ZSwKIAkJCQl2b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCwgbG9m Zl90ICpwcG9zKQogewogCXJldHVybiBkb19wcm9jX2RvdWludHZlYyh0YWJsZSwgd3JpdGUsIGJ1 ZmZlciwgbGVucCwgcHBvcywKZGlmZiAtLWdpdCBhL2ZzL3F1b3RhL2RxdW90LmMgYi9mcy9xdW90 YS9kcXVvdC5jCmluZGV4IDYyN2ViMmY3MmVmMy4uNGMzOTM2YjhmN2I2IDEwMDY0NAotLS0gYS9m cy9xdW90YS9kcXVvdC5jCisrKyBiL2ZzL3F1b3RhL2RxdW90LmMKQEAgLTI5MTcsNyArMjkxNyw3 IEBAIGNvbnN0IHN0cnVjdCBxdW90YWN0bF9vcHMgZHF1b3RfcXVvdGFjdGxfc3lzZmlsZV9vcHMg PSB7CiB9OwogRVhQT1JUX1NZTUJPTChkcXVvdF9xdW90YWN0bF9zeXNmaWxlX29wcyk7CiAKLXN0 YXRpYyBpbnQgZG9fcHJvY19kcXN0YXRzKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3Jp dGUsCitzdGF0aWMgaW50IGRvX3Byb2NfZHFzdGF0cyhjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0 YWJsZSwgaW50IHdyaXRlLAogCQkgICAgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2Zm X3QgKnBwb3MpCiB7CiAJdW5zaWduZWQgaW50IHR5cGUgPSAodW5zaWduZWQgbG9uZyAqKXRhYmxl LT5kYXRhIC0gZHFzdGF0cy5zdGF0OwpkaWZmIC0tZ2l0IGEvZnMveGZzL3hmc19zeXNjdGwuYyBi L2ZzL3hmcy94ZnNfc3lzY3RsLmMKaW5kZXggYTE5MWY2NTYwZjk4Li5jODRkZjIzYjQ5NGQgMTAw NjQ0Ci0tLSBhL2ZzL3hmcy94ZnNfc3lzY3RsLmMKKysrIGIvZnMveGZzL3hmc19zeXNjdGwuYwpA QCAtMTEsNyArMTEsNyBAQCBzdGF0aWMgc3RydWN0IGN0bF90YWJsZV9oZWFkZXIgKnhmc190YWJs ZV9oZWFkZXI7CiAjaWZkZWYgQ09ORklHX1BST0NfRlMKIFNUQVRJQyBpbnQKIHhmc19zdGF0c19j bGVhcl9wcm9jX2hhbmRsZXIoCi0Jc3RydWN0IGN0bF90YWJsZQkqY3RsLAorCWNvbnN0IHN0cnVj dCBjdGxfdGFibGUJKmN0bCwKIAlpbnQJCQl3cml0ZSwKIAl2b2lkCQkJKmJ1ZmZlciwKIAlzaXpl X3QJCQkqbGVucCwKQEAgLTMxLDcgKzMxLDcgQEAgeGZzX3N0YXRzX2NsZWFyX3Byb2NfaGFuZGxl cigKIAogU1RBVElDIGludAogeGZzX3BhbmljX21hc2tfcHJvY19oYW5kbGVyKAotCXN0cnVjdCBj dGxfdGFibGUJKmN0bCwKKwljb25zdCBzdHJ1Y3QgY3RsX3RhYmxlCSpjdGwsCiAJaW50CQkJd3Jp dGUsCiAJdm9pZAkJCSpidWZmZXIsCiAJc2l6ZV90CQkJKmxlbnAsCkBAIC01Miw3ICs1Miw3IEBA IHhmc19wYW5pY19tYXNrX3Byb2NfaGFuZGxlcigKIAogU1RBVElDIGludAogeGZzX2RlcHJlY2F0 ZWRfZG9pbnR2ZWNfbWlubWF4KAotCXN0cnVjdCBjdGxfdGFibGUJKmN0bCwKKwljb25zdCBzdHJ1 Y3QgY3RsX3RhYmxlCSpjdGwsCiAJaW50CQkJd3JpdGUsCiAJdm9pZAkJCSpidWZmZXIsCiAJc2l6 ZV90CQkJKmxlbnAsCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2Z0cmFjZS5oIGIvaW5jbHVk ZS9saW51eC9mdHJhY2UuaAppbmRleCA1NGQ1M2YzNDVkMTQuLmMzYWYyZTU5NDdhYSAxMDA2NDQK LS0tIGEvaW5jbHVkZS9saW51eC9mdHJhY2UuaAorKysgYi9pbmNsdWRlL2xpbnV4L2Z0cmFjZS5o CkBAIC00NzAsNyArNDcwLDcgQEAgc3RhdGljIGlubGluZSB2b2lkIGFyY2hfZnRyYWNlX3NldF9k aXJlY3RfY2FsbGVyKHN0cnVjdCBmdHJhY2VfcmVncyAqZnJlZ3MsCiAKIGV4dGVybiBpbnQgc3Rh Y2tfdHJhY2VyX2VuYWJsZWQ7CiAKLWludCBzdGFja190cmFjZV9zeXNjdGwoc3RydWN0IGN0bF90 YWJsZSAqdGFibGUsIGludCB3cml0ZSwgdm9pZCAqYnVmZmVyLAoraW50IHN0YWNrX3RyYWNlX3N5 c2N0bChjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLCB2b2lkICpidWZm ZXIsCiAJCSAgICAgICBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcyk7CiAKIC8qIERPIE5PVCBN T0RJRlkgVEhJUyBWQVJJQUJMRSBESVJFQ1RMWSEgKi8KQEAgLTExNTksNyArMTE1OSw3IEBAIGV4 dGVybiBpbnQgdHJhY2Vwb2ludF9wcmludGs7CiBleHRlcm4gdm9pZCBkaXNhYmxlX3RyYWNlX29u X3dhcm5pbmcodm9pZCk7CiBleHRlcm4gaW50IF9fZGlzYWJsZV90cmFjZV9vbl93YXJuaW5nOwog Ci1pbnQgdHJhY2Vwb2ludF9wcmludGtfc3lzY3RsKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBp bnQgd3JpdGUsCitpbnQgdHJhY2Vwb2ludF9wcmludGtfc3lzY3RsKGNvbnN0IHN0cnVjdCBjdGxf dGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJCQkgICAgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICps ZW5wLCBsb2ZmX3QgKnBwb3MpOwogCiAjZWxzZSAvKiBDT05GSUdfVFJBQ0lORyAqLwpkaWZmIC0t Z2l0IGEvaW5jbHVkZS9saW51eC9tbS5oIGIvaW5jbHVkZS9saW51eC9tbS5oCmluZGV4IGRjMzNm ODI2OWZiNS4uODI4ZDk3YzIzODM0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L21tLmgKKysr IGIvaW5jbHVkZS9saW51eC9tbS5oCkBAIC0yMDQsMTEgKzIwNCwxMSBAQCBleHRlcm4gaW50IHN5 c2N0bF9vdmVyY29tbWl0X21lbW9yeTsKIGV4dGVybiBpbnQgc3lzY3RsX292ZXJjb21taXRfcmF0 aW87CiBleHRlcm4gdW5zaWduZWQgbG9uZyBzeXNjdGxfb3ZlcmNvbW1pdF9rYnl0ZXM7CiAKLWlu dCBvdmVyY29tbWl0X3JhdGlvX2hhbmRsZXIoc3RydWN0IGN0bF90YWJsZSAqLCBpbnQsIHZvaWQg Kiwgc2l6ZV90ICosCitpbnQgb3ZlcmNvbW1pdF9yYXRpb19oYW5kbGVyKGNvbnN0IHN0cnVjdCBj dGxfdGFibGUgKiwgaW50LCB2b2lkICosIHNpemVfdCAqLAogCQlsb2ZmX3QgKik7Ci1pbnQgb3Zl cmNvbW1pdF9rYnl0ZXNfaGFuZGxlcihzdHJ1Y3QgY3RsX3RhYmxlICosIGludCwgdm9pZCAqLCBz aXplX3QgKiwKK2ludCBvdmVyY29tbWl0X2tieXRlc19oYW5kbGVyKGNvbnN0IHN0cnVjdCBjdGxf dGFibGUgKiwgaW50LCB2b2lkICosIHNpemVfdCAqLAogCQlsb2ZmX3QgKik7Ci1pbnQgb3ZlcmNv bW1pdF9wb2xpY3lfaGFuZGxlcihzdHJ1Y3QgY3RsX3RhYmxlICosIGludCwgdm9pZCAqLCBzaXpl X3QgKiwKK2ludCBvdmVyY29tbWl0X3BvbGljeV9oYW5kbGVyKGNvbnN0IHN0cnVjdCBjdGxfdGFi bGUgKiwgaW50LCB2b2lkICosIHNpemVfdCAqLAogCQlsb2ZmX3QgKik7CiAKICNpZiBkZWZpbmVk KENPTkZJR19TUEFSU0VNRU0pICYmICFkZWZpbmVkKENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUCkK QEAgLTM4OTcsNyArMzg5Nyw3IEBAIGV4dGVybiBib29sIHByb2Nlc3Nfc2hhcmVzX21tKHN0cnVj dCB0YXNrX3N0cnVjdCAqcCwgc3RydWN0IG1tX3N0cnVjdCAqbW0pOwogCiAjaWZkZWYgQ09ORklH X1NZU0NUTAogZXh0ZXJuIGludCBzeXNjdGxfZHJvcF9jYWNoZXM7Ci1pbnQgZHJvcF9jYWNoZXNf c3lzY3RsX2hhbmRsZXIoc3RydWN0IGN0bF90YWJsZSAqLCBpbnQsIHZvaWQgKiwgc2l6ZV90ICos CitpbnQgZHJvcF9jYWNoZXNfc3lzY3RsX2hhbmRsZXIoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAq LCBpbnQsIHZvaWQgKiwgc2l6ZV90ICosCiAJCWxvZmZfdCAqKTsKICNlbmRpZgogCmRpZmYgLS1n aXQgYS9pbmNsdWRlL2xpbnV4L3BlcmZfZXZlbnQuaCBiL2luY2x1ZGUvbGludXgvcGVyZl9ldmVu dC5oCmluZGV4IGE1MzA0YWU4YzY1NC4uY2UxMDJhYWMxMWMwIDEwMDY0NAotLS0gYS9pbmNsdWRl L2xpbnV4L3BlcmZfZXZlbnQuaAorKysgYi9pbmNsdWRlL2xpbnV4L3BlcmZfZXZlbnQuaApAQCAt MTU4NywxMSArMTU4NywxMSBAQCBleHRlcm4gaW50IHN5c2N0bF9wZXJmX2NwdV90aW1lX21heF9w ZXJjZW50OwogCiBleHRlcm4gdm9pZCBwZXJmX3NhbXBsZV9ldmVudF90b29rKHU2NCBzYW1wbGVf bGVuX25zKTsKIAotaW50IHBlcmZfZXZlbnRfbWF4X3NhbXBsZV9yYXRlX2hhbmRsZXIoc3RydWN0 IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKK2ludCBwZXJmX2V2ZW50X21heF9zYW1wbGVf cmF0ZV9oYW5kbGVyKGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJ CXZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpOwotaW50IHBlcmZfY3B1 X3RpbWVfbWF4X3BlcmNlbnRfaGFuZGxlcihzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdy aXRlLAoraW50IHBlcmZfY3B1X3RpbWVfbWF4X3BlcmNlbnRfaGFuZGxlcihjb25zdCBzdHJ1Y3Qg Y3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCQl2b2lkICpidWZmZXIsIHNpemVfdCAqbGVu cCwgbG9mZl90ICpwcG9zKTsKLWludCBwZXJmX2V2ZW50X21heF9zdGFja19oYW5kbGVyKHN0cnVj dCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCitpbnQgcGVyZl9ldmVudF9tYXhfc3RhY2tf aGFuZGxlcihjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCQl2b2lk ICpidWZmZXIsIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKTsKIAogLyogQWNjZXNzIHRvIHBl cmZfZXZlbnRfb3BlbigyKSBzeXNjYWxsLiAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9z ZWN1cml0eS5oIGIvaW5jbHVkZS9saW51eC9zZWN1cml0eS5oCmluZGV4IDIxY2Y3MDM0NmIzMy4u OTY3OTlmZjU3MjMwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3NlY3VyaXR5LmgKKysrIGIv aW5jbHVkZS9saW51eC9zZWN1cml0eS5oCkBAIC0yMjgsNyArMjI4LDcgQEAgc3RydWN0IHJlcXVl c3Rfc29jazsKICNkZWZpbmUgTFNNX1VOU0FGRV9OT19ORVdfUFJJVlMJNAogCiAjaWZkZWYgQ09O RklHX01NVQotZXh0ZXJuIGludCBtbWFwX21pbl9hZGRyX2hhbmRsZXIoc3RydWN0IGN0bF90YWJs ZSAqdGFibGUsIGludCB3cml0ZSwKK2V4dGVybiBpbnQgbW1hcF9taW5fYWRkcl9oYW5kbGVyKGNv bnN0IHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJCQkJIHZvaWQgKmJ1ZmZl ciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL2lu Y2x1ZGUvbGludXgvc3lzY3RsLmggYi9pbmNsdWRlL2xpbnV4L3N5c2N0bC5oCmluZGV4IDU0ZmJl YzA2Mjc3Mi4uYWE0YzZkNDRhYWEwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3N5c2N0bC5o CisrKyBiL2luY2x1ZGUvbGludXgvc3lzY3RsLmgKQEAgLTYxLDMxICs2MSwzMSBAQCBleHRlcm4g Y29uc3QgaW50IHN5c2N0bF92YWxzW107CiAKIGV4dGVybiBjb25zdCB1bnNpZ25lZCBsb25nIHN5 c2N0bF9sb25nX3ZhbHNbXTsKIAotdHlwZWRlZiBpbnQgcHJvY19oYW5kbGVyKHN0cnVjdCBjdGxf dGFibGUgKmN0bCwgaW50IHdyaXRlLCB2b2lkICpidWZmZXIsCit0eXBlZGVmIGludCBwcm9jX2hh bmRsZXIoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsIHZvaWQgKmJ1ZmZl ciwKIAkJc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpOwogCi1pbnQgcHJvY19kb3N0cmluZyhz dHJ1Y3QgY3RsX3RhYmxlICosIGludCwgdm9pZCAqLCBzaXplX3QgKiwgbG9mZl90ICopOwotaW50 IHByb2NfZG9ib29sKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsIHZvaWQgKmJ1 ZmZlciwKK2ludCBwcm9jX2Rvc3RyaW5nKGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKiwgaW50LCB2 b2lkICosIHNpemVfdCAqLCBsb2ZmX3QgKik7CitpbnQgcHJvY19kb2Jvb2woY29uc3Qgc3RydWN0 IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwgdm9pZCAqYnVmZmVyLAogCQlzaXplX3QgKmxl bnAsIGxvZmZfdCAqcHBvcyk7Ci1pbnQgcHJvY19kb2ludHZlYyhzdHJ1Y3QgY3RsX3RhYmxlICos IGludCwgdm9pZCAqLCBzaXplX3QgKiwgbG9mZl90ICopOwotaW50IHByb2NfZG91aW50dmVjKHN0 cnVjdCBjdGxfdGFibGUgKiwgaW50LCB2b2lkICosIHNpemVfdCAqLCBsb2ZmX3QgKik7Ci1pbnQg cHJvY19kb2ludHZlY19taW5tYXgoc3RydWN0IGN0bF90YWJsZSAqLCBpbnQsIHZvaWQgKiwgc2l6 ZV90ICosIGxvZmZfdCAqKTsKLWludCBwcm9jX2RvdWludHZlY19taW5tYXgoc3RydWN0IGN0bF90 YWJsZSAqdGFibGUsIGludCB3cml0ZSwgdm9pZCAqYnVmZmVyLAoraW50IHByb2NfZG9pbnR2ZWMo Y29uc3Qgc3RydWN0IGN0bF90YWJsZSAqLCBpbnQsIHZvaWQgKiwgc2l6ZV90ICosIGxvZmZfdCAq KTsKK2ludCBwcm9jX2RvdWludHZlYyhjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICosIGludCwgdm9p ZCAqLCBzaXplX3QgKiwgbG9mZl90ICopOworaW50IHByb2NfZG9pbnR2ZWNfbWlubWF4KGNvbnN0 IHN0cnVjdCBjdGxfdGFibGUgKiwgaW50LCB2b2lkICosIHNpemVfdCAqLCBsb2ZmX3QgKik7Citp bnQgcHJvY19kb3VpbnR2ZWNfbWlubWF4KGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBp bnQgd3JpdGUsIHZvaWQgKmJ1ZmZlciwKIAkJc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpOwot aW50IHByb2NfZG91OHZlY19taW5tYXgoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0 ZSwgdm9pZCAqYnVmZmVyLAoraW50IHByb2NfZG91OHZlY19taW5tYXgoY29uc3Qgc3RydWN0IGN0 bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwgdm9pZCAqYnVmZmVyLAogCQkJc2l6ZV90ICpsZW5w LCBsb2ZmX3QgKnBwb3MpOwotaW50IHByb2NfZG9pbnR2ZWNfamlmZmllcyhzdHJ1Y3QgY3RsX3Rh YmxlICosIGludCwgdm9pZCAqLCBzaXplX3QgKiwgbG9mZl90ICopOwotaW50IHByb2NfZG9pbnR2 ZWNfbXNfamlmZmllc19taW5tYXgoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwK K2ludCBwcm9jX2RvaW50dmVjX2ppZmZpZXMoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqLCBpbnQs IHZvaWQgKiwgc2l6ZV90ICosIGxvZmZfdCAqKTsKK2ludCBwcm9jX2RvaW50dmVjX21zX2ppZmZp ZXNfbWlubWF4KGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJCXZv aWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpOwotaW50IHByb2NfZG9pbnR2 ZWNfdXNlcmh6X2ppZmZpZXMoc3RydWN0IGN0bF90YWJsZSAqLCBpbnQsIHZvaWQgKiwgc2l6ZV90 ICosCitpbnQgcHJvY19kb2ludHZlY191c2VyaHpfamlmZmllcyhjb25zdCBzdHJ1Y3QgY3RsX3Rh YmxlICosIGludCwgdm9pZCAqLCBzaXplX3QgKiwKIAkJbG9mZl90ICopOwotaW50IHByb2NfZG9p bnR2ZWNfbXNfamlmZmllcyhzdHJ1Y3QgY3RsX3RhYmxlICosIGludCwgdm9pZCAqLCBzaXplX3Qg KiwKK2ludCBwcm9jX2RvaW50dmVjX21zX2ppZmZpZXMoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAq LCBpbnQsIHZvaWQgKiwgc2l6ZV90ICosCiAJCWxvZmZfdCAqKTsKLWludCBwcm9jX2RvdWxvbmd2 ZWNfbWlubWF4KHN0cnVjdCBjdGxfdGFibGUgKiwgaW50LCB2b2lkICosIHNpemVfdCAqLCBsb2Zm X3QgKik7Ci1pbnQgcHJvY19kb3Vsb25ndmVjX21zX2ppZmZpZXNfbWlubWF4KHN0cnVjdCBjdGxf dGFibGUgKnRhYmxlLCBpbnQsIHZvaWQgKiwKK2ludCBwcm9jX2RvdWxvbmd2ZWNfbWlubWF4KGNv bnN0IHN0cnVjdCBjdGxfdGFibGUgKiwgaW50LCB2b2lkICosIHNpemVfdCAqLCBsb2ZmX3QgKik7 CitpbnQgcHJvY19kb3Vsb25ndmVjX21zX2ppZmZpZXNfbWlubWF4KGNvbnN0IHN0cnVjdCBjdGxf dGFibGUgKnRhYmxlLCBpbnQsIHZvaWQgKiwKIAkJc2l6ZV90ICosIGxvZmZfdCAqKTsKLWludCBw cm9jX2RvX2xhcmdlX2JpdG1hcChzdHJ1Y3QgY3RsX3RhYmxlICosIGludCwgdm9pZCAqLCBzaXpl X3QgKiwgbG9mZl90ICopOwotaW50IHByb2NfZG9fc3RhdGljX2tleShzdHJ1Y3QgY3RsX3RhYmxl ICp0YWJsZSwgaW50IHdyaXRlLCB2b2lkICpidWZmZXIsCitpbnQgcHJvY19kb19sYXJnZV9iaXRt YXAoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqLCBpbnQsIHZvaWQgKiwgc2l6ZV90ICosIGxvZmZf dCAqKTsKK2ludCBwcm9jX2RvX3N0YXRpY19rZXkoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqdGFi bGUsIGludCB3cml0ZSwgdm9pZCAqYnVmZmVyLAogCQlzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBv cyk7CiAKIC8qCkBAIC0yODcsNyArMjg3LDcgQEAgc3RhdGljIGlubGluZSBib29sIHN5c2N0bF9p c19hbGlhcyhjaGFyICpwYXJhbSkKIH0KICNlbmRpZiAvKiBDT05GSUdfU1lTQ1RMICovCiAKLWlu dCBzeXNjdGxfbWF4X3RocmVhZHMoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwg dm9pZCAqYnVmZmVyLAoraW50IHN5c2N0bF9tYXhfdGhyZWFkcyhjb25zdCBzdHJ1Y3QgY3RsX3Rh YmxlICp0YWJsZSwgaW50IHdyaXRlLCB2b2lkICpidWZmZXIsCiAJCXNpemVfdCAqbGVucCwgbG9m Zl90ICpwcG9zKTsKIAogI2VuZGlmIC8qIF9MSU5VWF9TWVNDVExfSCAqLwpkaWZmIC0tZ2l0IGEv aW5jbHVkZS9saW51eC92bXN0YXQuaCBiL2luY2x1ZGUvbGludXgvdm1zdGF0LmgKaW5kZXggNzM1 ZWFlNmUyNzJjLi43ZGEyNmQxYWVhMTIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvdm1zdGF0 LmgKKysrIGIvaW5jbHVkZS9saW51eC92bXN0YXQuaApAQCAtMTcsNyArMTcsNyBAQCBleHRlcm4g aW50IHN5c2N0bF9zdGF0X2ludGVydmFsOwogI2RlZmluZSBESVNBQkxFX05VTUFfU1RBVCAgIDAK IGV4dGVybiBpbnQgc3lzY3RsX3ZtX251bWFfc3RhdDsKIERFQ0xBUkVfU1RBVElDX0tFWV9UUlVF KHZtX251bWFfc3RhdF9rZXkpOwotaW50IHN5c2N0bF92bV9udW1hX3N0YXRfaGFuZGxlcihzdHJ1 Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAoraW50IHN5c2N0bF92bV9udW1hX3N0YXRf aGFuZGxlcihjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCQl2b2lk ICpidWZmZXIsIHNpemVfdCAqbGVuZ3RoLCBsb2ZmX3QgKnBwb3MpOwogI2VuZGlmCiAKQEAgLTMw MSw4ICszMDEsOCBAQCB2b2lkIGNwdV92bV9zdGF0c19mb2xkKGludCBjcHUpOwogdm9pZCByZWZy ZXNoX3pvbmVfc3RhdF90aHJlc2hvbGRzKHZvaWQpOwogCiBzdHJ1Y3QgY3RsX3RhYmxlOwotaW50 IHZtc3RhdF9yZWZyZXNoKHN0cnVjdCBjdGxfdGFibGUgKiwgaW50IHdyaXRlLCB2b2lkICpidWZm ZXIsIHNpemVfdCAqbGVucCwKLQkJbG9mZl90ICpwcG9zKTsKK2ludCB2bXN0YXRfcmVmcmVzaChj b25zdCBzdHJ1Y3QgY3RsX3RhYmxlICosIGludCB3cml0ZSwgdm9pZCAqYnVmZmVyLAorCQkgICBz aXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcyk7CiAKIHZvaWQgZHJhaW5fem9uZXN0YXQoc3RydWN0 IHpvbmUgKnpvbmUsIHN0cnVjdCBwZXJfY3B1X3pvbmVzdGF0ICopOwogCmRpZmYgLS1naXQgYS9p bmNsdWRlL2xpbnV4L3dyaXRlYmFjay5oIGIvaW5jbHVkZS9saW51eC93cml0ZWJhY2suaAppbmRl eCAxMTJkODA2ZGRiZTQuLjFhNTQ2NzZkODQzYSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC93 cml0ZWJhY2suaAorKysgYi9pbmNsdWRlL2xpbnV4L3dyaXRlYmFjay5oCkBAIC0zNTAsNyArMzUw LDcgQEAgZXh0ZXJuIHVuc2lnbmVkIGludCBkaXJ0eV9leHBpcmVfaW50ZXJ2YWw7CiBleHRlcm4g dW5zaWduZWQgaW50IGRpcnR5dGltZV9leHBpcmVfaW50ZXJ2YWw7CiBleHRlcm4gaW50IGxhcHRv cF9tb2RlOwogCi1pbnQgZGlydHl0aW1lX2ludGVydmFsX2hhbmRsZXIoc3RydWN0IGN0bF90YWJs ZSAqdGFibGUsIGludCB3cml0ZSwKK2ludCBkaXJ0eXRpbWVfaW50ZXJ2YWxfaGFuZGxlcihjb25z dCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCQl2b2lkICpidWZmZXIsIHNp emVfdCAqbGVucCwgbG9mZl90ICpwcG9zKTsKIAogdm9pZCBnbG9iYWxfZGlydHlfbGltaXRzKHVu c2lnbmVkIGxvbmcgKnBiYWNrZ3JvdW5kLCB1bnNpZ25lZCBsb25nICpwZGlydHkpOwpkaWZmIC0t Z2l0IGEvaW5jbHVkZS9uZXQvbmRpc2MuaCBiL2luY2x1ZGUvbmV0L25kaXNjLmgKaW5kZXggOWJi ZGY2ZWFhOTQyLi43YTUzM2Q1YjFkNTkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L25kaXNjLmgK KysrIGIvaW5jbHVkZS9uZXQvbmRpc2MuaApAQCAtNDg2LDcgKzQ4Niw3IEBAIHZvaWQgaWdtcDZf ZXZlbnRfcmVwb3J0KHN0cnVjdCBza19idWZmICpza2IpOwogCiAKICNpZmRlZiBDT05GSUdfU1lT Q1RMCi1pbnQgbmRpc2NfaWZpbmZvX3N5c2N0bF9jaGFuZ2Uoc3RydWN0IGN0bF90YWJsZSAqY3Rs LCBpbnQgd3JpdGUsCitpbnQgbmRpc2NfaWZpbmZvX3N5c2N0bF9jaGFuZ2UoY29uc3Qgc3RydWN0 IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsCiAJCQkgICAgICAgdm9pZCAqYnVmZmVyLCBzaXpl X3QgKmxlbnAsIGxvZmZfdCAqcHBvcyk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9u ZXQvbmVpZ2hib3VyLmggYi9pbmNsdWRlL25ldC9uZWlnaGJvdXIuaAppbmRleCAwZDI4MTcyMTkz ZmEuLmE0NGYyNjJhNzM4NCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvbmVpZ2hib3VyLmgKKysr IGIvaW5jbHVkZS9uZXQvbmVpZ2hib3VyLmgKQEAgLTQxMiwxMiArNDEyLDEyIEBAIHZvaWQgKm5l aWdoX3NlcV9zdGFydChzdHJ1Y3Qgc2VxX2ZpbGUgKiwgbG9mZl90ICosIHN0cnVjdCBuZWlnaF90 YWJsZSAqLAogdm9pZCAqbmVpZ2hfc2VxX25leHQoc3RydWN0IHNlcV9maWxlICosIHZvaWQgKiwg bG9mZl90ICopOwogdm9pZCBuZWlnaF9zZXFfc3RvcChzdHJ1Y3Qgc2VxX2ZpbGUgKiwgdm9pZCAq KTsKIAotaW50IG5laWdoX3Byb2NfZG9pbnR2ZWMoc3RydWN0IGN0bF90YWJsZSAqY3RsLCBpbnQg d3JpdGUsCitpbnQgbmVpZ2hfcHJvY19kb2ludHZlYyhjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICpj dGwsIGludCB3cml0ZSwKIAkJCXZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBw b3MpOwotaW50IG5laWdoX3Byb2NfZG9pbnR2ZWNfamlmZmllcyhzdHJ1Y3QgY3RsX3RhYmxlICpj dGwsIGludCB3cml0ZSwKK2ludCBuZWlnaF9wcm9jX2RvaW50dmVjX2ppZmZpZXMoY29uc3Qgc3Ry dWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsCiAJCQkJdm9pZCAqYnVmZmVyLAogCQkJCXNp emVfdCAqbGVucCwgbG9mZl90ICpwcG9zKTsKLWludCBuZWlnaF9wcm9jX2RvaW50dmVjX21zX2pp ZmZpZXMoc3RydWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsCitpbnQgbmVpZ2hfcHJvY19k b2ludHZlY19tc19qaWZmaWVzKGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKmN0bCwgaW50IHdyaXRl LAogCQkJCSAgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpOwogCiBp bnQgbmVpZ2hfc3lzY3RsX3JlZ2lzdGVyKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBu ZWlnaF9wYXJtcyAqcCwKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L25ldGZpbHRlci9uZl9ob29r c19sd3R1bm5lbC5oIGIvaW5jbHVkZS9uZXQvbmV0ZmlsdGVyL25mX2hvb2tzX2x3dHVubmVsLmgK aW5kZXggNTJlMjc5MjBmODI5Li5jZWY3YTRlYjhmOTcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0 L25ldGZpbHRlci9uZl9ob29rc19sd3R1bm5lbC5oCisrKyBiL2luY2x1ZGUvbmV0L25ldGZpbHRl ci9uZl9ob29rc19sd3R1bm5lbC5oCkBAIC0yLDYgKzIsNiBAQAogI2luY2x1ZGUgPGxpbnV4L3R5 cGVzLmg+CiAKICNpZmRlZiBDT05GSUdfU1lTQ1RMCi1pbnQgbmZfaG9va3NfbHd0dW5uZWxfc3lz Y3RsX2hhbmRsZXIoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKK2ludCBuZl9o b29rc19sd3R1bm5lbF9zeXNjdGxfaGFuZGxlcihjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJs ZSwgaW50IHdyaXRlLAogCQkJCSAgICAgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZf dCAqcHBvcyk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2lwYy9pcGNfc3lzY3RsLmMgYi9pcGMvaXBj X3N5c2N0bC5jCmluZGV4IDk0NjViMGFlNDcwYi4uNWQzODNhOWE1MjBlIDEwMDY0NAotLS0gYS9p cGMvaXBjX3N5c2N0bC5jCisrKyBiL2lwYy9pcGNfc3lzY3RsLmMKQEAgLTE3LDggKzE3LDggQEAK ICNpbmNsdWRlIDxsaW51eC9jcmVkLmg+CiAjaW5jbHVkZSAidXRpbC5oIgogCi1zdGF0aWMgaW50 IHByb2NfaXBjX2RvaW50dmVjX21pbm1heF9vcnBoYW5zKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxl LCBpbnQgd3JpdGUsCi0JCXZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3Mp CitzdGF0aWMgaW50IHByb2NfaXBjX2RvaW50dmVjX21pbm1heF9vcnBoYW5zKGNvbnN0IHN0cnVj dCBjdGxfdGFibGUgKnRhYmxlLAorCQlpbnQgd3JpdGUsIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICps ZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJc3RydWN0IGlwY19uYW1lc3BhY2UgKm5zID0KIAkJY29u dGFpbmVyX29mKHRhYmxlLT5kYXRhLCBzdHJ1Y3QgaXBjX25hbWVzcGFjZSwgc2htX3JtaWRfZm9y Y2VkKTsKQEAgLTMzLDcgKzMzLDcgQEAgc3RhdGljIGludCBwcm9jX2lwY19kb2ludHZlY19taW5t YXhfb3JwaGFucyhzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCXJldHVybiBl cnI7CiB9CiAKLXN0YXRpYyBpbnQgcHJvY19pcGNfYXV0b19tc2dtbmkoc3RydWN0IGN0bF90YWJs ZSAqdGFibGUsIGludCB3cml0ZSwKK3N0YXRpYyBpbnQgcHJvY19pcGNfYXV0b19tc2dtbmkoY29u c3Qgc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIAkJdm9pZCAqYnVmZmVyLCBz aXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlzdHJ1Y3QgY3RsX3RhYmxlIGlwY190YWJs ZTsKQEAgLTQ4LDcgKzQ4LDcgQEAgc3RhdGljIGludCBwcm9jX2lwY19hdXRvX21zZ21uaShzdHJ1 Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCXJldHVybiBwcm9jX2RvaW50dmVjX21p bm1heCgmaXBjX3RhYmxlLCB3cml0ZSwgYnVmZmVyLCBsZW5wLCBwcG9zKTsKIH0KIAotc3RhdGlj IGludCBwcm9jX2lwY19zZW1fZG9pbnR2ZWMoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3 cml0ZSwKK3N0YXRpYyBpbnQgcHJvY19pcGNfc2VtX2RvaW50dmVjKGNvbnN0IHN0cnVjdCBjdGxf dGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxv ZmZfdCAqcHBvcykKIHsKIAlzdHJ1Y3QgaXBjX25hbWVzcGFjZSAqbnMgPQpkaWZmIC0tZ2l0IGEv a2VybmVsL2JwZi9zeXNjYWxsLmMgYi9rZXJuZWwvYnBmL3N5c2NhbGwuYwppbmRleCA3ZGNkN2Yx NzRiYjEuLjkzZDFmODU2ZjNkNCAxMDA2NDQKLS0tIGEva2VybmVsL2JwZi9zeXNjYWxsLmMKKysr IGIva2VybmVsL2JwZi9zeXNjYWxsLmMKQEAgLTU5MzcsNyArNTkzNyw3IEBAIGNvbnN0IHN0cnVj dCBicGZfcHJvZ19vcHMgYnBmX3N5c2NhbGxfcHJvZ19vcHMgPSB7CiB9OwogCiAjaWZkZWYgQ09O RklHX1NZU0NUTAotc3RhdGljIGludCBicGZfc3RhdHNfaGFuZGxlcihzdHJ1Y3QgY3RsX3RhYmxl ICp0YWJsZSwgaW50IHdyaXRlLAorc3RhdGljIGludCBicGZfc3RhdHNfaGFuZGxlcihjb25zdCBz dHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCQkJICAgICB2b2lkICpidWZmZXIs IHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQogewogCXN0cnVjdCBzdGF0aWNfa2V5ICprZXkg PSAoc3RydWN0IHN0YXRpY19rZXkgKil0YWJsZS0+ZGF0YTsKQEAgLTU5NzIsNyArNTk3Miw3IEBA IHZvaWQgX193ZWFrIHVucHJpdl9lYnBmX25vdGlmeShpbnQgbmV3X3N0YXRlKQogewogfQogCi1z dGF0aWMgaW50IGJwZl91bnByaXZfaGFuZGxlcihzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50 IHdyaXRlLAorc3RhdGljIGludCBicGZfdW5wcml2X2hhbmRsZXIoY29uc3Qgc3RydWN0IGN0bF90 YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIAkJCSAgICAgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICps ZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJaW50IHJldCwgdW5wcml2X2VuYWJsZSA9ICooaW50ICop dGFibGUtPmRhdGE7CmRpZmYgLS1naXQgYS9rZXJuZWwvZGVsYXlhY2N0LmMgYi9rZXJuZWwvZGVs YXlhY2N0LmMKaW5kZXggZTAzOWIwZjk5YTBiLi41Y2M0ZTBlZjQxMjggMTAwNjQ0Ci0tLSBhL2tl cm5lbC9kZWxheWFjY3QuYworKysgYi9rZXJuZWwvZGVsYXlhY2N0LmMKQEAgLTQ0LDggKzQ0LDgg QEAgdm9pZCBkZWxheWFjY3RfaW5pdCh2b2lkKQogfQogCiAjaWZkZWYgQ09ORklHX1BST0NfU1lT Q1RMCi1zdGF0aWMgaW50IHN5c2N0bF9kZWxheWFjY3Qoc3RydWN0IGN0bF90YWJsZSAqdGFibGUs IGludCB3cml0ZSwgdm9pZCAqYnVmZmVyLAotCQkgICAgIHNpemVfdCAqbGVucCwgbG9mZl90ICpw cG9zKQorc3RhdGljIGludCBzeXNjdGxfZGVsYXlhY2N0KGNvbnN0IHN0cnVjdCBjdGxfdGFibGUg KnRhYmxlLCBpbnQgd3JpdGUsCisJCQkgICAgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxv ZmZfdCAqcHBvcykKIHsKIAlpbnQgc3RhdGUgPSBkZWxheWFjY3Rfb247CiAJc3RydWN0IGN0bF90 YWJsZSB0OwpkaWZmIC0tZ2l0IGEva2VybmVsL2V2ZW50cy9jYWxsY2hhaW4uYyBiL2tlcm5lbC9l dmVudHMvY2FsbGNoYWluLmMKaW5kZXggMTI3M2JlODQzOTJjLi5iZDU2OTlmODY5YzMgMTAwNjQ0 Ci0tLSBhL2tlcm5lbC9ldmVudHMvY2FsbGNoYWluLmMKKysrIGIva2VybmVsL2V2ZW50cy9jYWxs Y2hhaW4uYwpAQCAtMjI5LDcgKzIyOSw3IEBAIGdldF9wZXJmX2NhbGxjaGFpbihzdHJ1Y3QgcHRf cmVncyAqcmVncywgdTMyIGluaXRfbnIsIGJvb2wga2VybmVsLCBib29sIHVzZXIsCiAgKiBVc2Vk IGZvciBzeXNjdGxfcGVyZl9ldmVudF9tYXhfc3RhY2sgYW5kCiAgKiBzeXNjdGxfcGVyZl9ldmVu dF9tYXhfY29udGV4dHNfcGVyX3N0YWNrLgogICovCi1pbnQgcGVyZl9ldmVudF9tYXhfc3RhY2tf aGFuZGxlcihzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAoraW50IHBlcmZfZXZl bnRfbWF4X3N0YWNrX2hhbmRsZXIoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3 cml0ZSwKIAkJCQkgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsK IAlpbnQgKnZhbHVlID0gdGFibGUtPmRhdGE7CmRpZmYgLS1naXQgYS9rZXJuZWwvZXZlbnRzL2Nv cmUuYyBiL2tlcm5lbC9ldmVudHMvY29yZS5jCmluZGV4IGYwMTI4YzVmZjI3OC4uMDFjYzkxMGQz MWYzIDEwMDY0NAotLS0gYS9rZXJuZWwvZXZlbnRzL2NvcmUuYworKysgYi9rZXJuZWwvZXZlbnRz L2NvcmUuYwpAQCAtNDUwLDcgKzQ1MCw3IEBAIHN0YXRpYyB2b2lkIHVwZGF0ZV9wZXJmX2NwdV9s aW1pdHModm9pZCkKIAogc3RhdGljIGJvb2wgcGVyZl9yb3RhdGVfY29udGV4dChzdHJ1Y3QgcGVy Zl9jcHVfcG11X2NvbnRleHQgKmNwYyk7CiAKLWludCBwZXJmX2V2ZW50X21heF9zYW1wbGVfcmF0 ZV9oYW5kbGVyKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCitpbnQgcGVyZl9l dmVudF9tYXhfc2FtcGxlX3JhdGVfaGFuZGxlcihjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJs ZSwgaW50IHdyaXRlLAogCQkJCSAgICAgICB2b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCwgbG9m Zl90ICpwcG9zKQogewogCWludCByZXQ7CkBAIC00NzQsNyArNDc0LDcgQEAgaW50IHBlcmZfZXZl bnRfbWF4X3NhbXBsZV9yYXRlX2hhbmRsZXIoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3 cml0ZSwKIAogaW50IHN5c2N0bF9wZXJmX2NwdV90aW1lX21heF9wZXJjZW50IF9fcmVhZF9tb3N0 bHkgPSBERUZBVUxUX0NQVV9USU1FX01BWF9QRVJDRU5UOwogCi1pbnQgcGVyZl9jcHVfdGltZV9t YXhfcGVyY2VudF9oYW5kbGVyKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCitp bnQgcGVyZl9jcHVfdGltZV9tYXhfcGVyY2VudF9oYW5kbGVyKGNvbnN0IHN0cnVjdCBjdGxfdGFi bGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJCXZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2Zm X3QgKnBwb3MpCiB7CiAJaW50IHJldCA9IHByb2NfZG9pbnR2ZWNfbWlubWF4KHRhYmxlLCB3cml0 ZSwgYnVmZmVyLCBsZW5wLCBwcG9zKTsKZGlmZiAtLWdpdCBhL2tlcm5lbC9mb3JrLmMgYi9rZXJu ZWwvZm9yay5jCmluZGV4IDk5MDc2ZGJlMjdkOC4uOTg1YmQwYTU4MzRjIDEwMDY0NAotLS0gYS9r ZXJuZWwvZm9yay5jCisrKyBiL2tlcm5lbC9mb3JrLmMKQEAgLTM0MTgsNyArMzQxOCw3IEBAIGlu dCB1bnNoYXJlX2ZpbGVzKHZvaWQpCiAJcmV0dXJuIDA7CiB9CiAKLWludCBzeXNjdGxfbWF4X3Ro cmVhZHMoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKK2ludCBzeXNjdGxfbWF4 X3RocmVhZHMoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIAkJICAg ICAgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJc3RydWN0 IGN0bF90YWJsZSB0OwpkaWZmIC0tZ2l0IGEva2VybmVsL2h1bmdfdGFzay5jIGIva2VybmVsL2h1 bmdfdGFzay5jCmluZGV4IDFkOTIwMTZiMGIzYy4uNjg4YWIzNDQzMTU2IDEwMDY0NAotLS0gYS9r ZXJuZWwvaHVuZ190YXNrLmMKKysrIGIva2VybmVsL2h1bmdfdGFzay5jCkBAIC0yMzksOSArMjM5 LDkgQEAgc3RhdGljIGxvbmcgaHVuZ190aW1lb3V0X2ppZmZpZXModW5zaWduZWQgbG9uZyBsYXN0 X2NoZWNrZWQsCiAvKgogICogUHJvY2VzcyB1cGRhdGluZyBvZiB0aW1lb3V0IHN5c2N0bAogICov Ci1zdGF0aWMgaW50IHByb2NfZG9odW5nX3Rhc2tfdGltZW91dF9zZWNzKHN0cnVjdCBjdGxfdGFi bGUgKnRhYmxlLCBpbnQgd3JpdGUsCi0JCQkJICB2b2lkICpidWZmZXIsCi0JCQkJICBzaXplX3Qg KmxlbnAsIGxvZmZfdCAqcHBvcykKK3N0YXRpYyBpbnQgcHJvY19kb2h1bmdfdGFza190aW1lb3V0 X3NlY3MoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqdGFibGUsCisJCQkJCSBpbnQgd3JpdGUsIHZv aWQgKmJ1ZmZlciwKKwkJCQkJIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQogewogCWludCBy ZXQ7CiAKZGlmZiAtLWdpdCBhL2tlcm5lbC9rZXhlY19jb3JlLmMgYi9rZXJuZWwva2V4ZWNfY29y ZS5jCmluZGV4IDkxMTJkNjlkNjhiMC4uYzBjYWExNDg4MGMzIDEwMDY0NAotLS0gYS9rZXJuZWwv a2V4ZWNfY29yZS5jCisrKyBiL2tlcm5lbC9rZXhlY19jb3JlLmMKQEAgLTg4OCw3ICs4ODgsNyBA QCBzdHJ1Y3Qga2ltYWdlICprZXhlY19jcmFzaF9pbWFnZTsKIHN0YXRpYyBpbnQga2V4ZWNfbG9h ZF9kaXNhYmxlZDsKIAogI2lmZGVmIENPTkZJR19TWVNDVEwKLXN0YXRpYyBpbnQga2V4ZWNfbGlt aXRfaGFuZGxlcihzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAorc3RhdGljIGlu dCBrZXhlY19saW1pdF9oYW5kbGVyKGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQg d3JpdGUsCiAJCQkgICAgICAgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBv cykKIHsKIAlzdHJ1Y3Qga2V4ZWNfbG9hZF9saW1pdCAqbGltaXQgPSB0YWJsZS0+ZGF0YTsKZGlm ZiAtLWdpdCBhL2tlcm5lbC9rcHJvYmVzLmMgYi9rZXJuZWwva3Byb2Jlcy5jCmluZGV4IDY2OGVh NDAxNzQ0Yi4uZmVjOWY2YzRiMGYxIDEwMDY0NAotLS0gYS9rZXJuZWwva3Byb2Jlcy5jCisrKyBi L2tlcm5lbC9rcHJvYmVzLmMKQEAgLTkzOSw3ICs5MzksNyBAQCBzdGF0aWMgdm9pZCB1bm9wdGlt aXplX2FsbF9rcHJvYmVzKHZvaWQpCiAKIHN0YXRpYyBERUZJTkVfTVVURVgoa3Byb2JlX3N5c2N0 bF9tdXRleCk7CiBzdGF0aWMgaW50IHN5c2N0bF9rcHJvYmVzX29wdGltaXphdGlvbjsKLXN0YXRp YyBpbnQgcHJvY19rcHJvYmVzX29wdGltaXphdGlvbl9oYW5kbGVyKHN0cnVjdCBjdGxfdGFibGUg KnRhYmxlLAorc3RhdGljIGludCBwcm9jX2twcm9iZXNfb3B0aW1pemF0aW9uX2hhbmRsZXIoY29u c3Qgc3RydWN0IGN0bF90YWJsZSAqdGFibGUsCiAJCQkJCSAgICAgaW50IHdyaXRlLCB2b2lkICpi dWZmZXIsCiAJCQkJCSAgICAgc2l6ZV90ICpsZW5ndGgsIGxvZmZfdCAqcHBvcykKIHsKZGlmZiAt LWdpdCBhL2tlcm5lbC9sYXRlbmN5dG9wLmMgYi9rZXJuZWwvbGF0ZW5jeXRvcC5jCmluZGV4IDg0 YzUzMjg1ZjQ5OS4uYjAzYWY4NjAxOGY0IDEwMDY0NAotLS0gYS9rZXJuZWwvbGF0ZW5jeXRvcC5j CisrKyBiL2tlcm5lbC9sYXRlbmN5dG9wLmMKQEAgLTY1LDggKzY1LDggQEAgc3RhdGljIHN0cnVj dCBsYXRlbmN5X3JlY29yZCBsYXRlbmN5X3JlY29yZFtNQVhMUl07CiBpbnQgbGF0ZW5jeXRvcF9l bmFibGVkOwogCiAjaWZkZWYgQ09ORklHX1NZU0NUTAotc3RhdGljIGludCBzeXNjdGxfbGF0ZW5j eXRvcChzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLCB2b2lkICpidWZmZXIsCi0J CXNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQorc3RhdGljIGludCBzeXNjdGxfbGF0ZW5jeXRv cChjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAorCQkJICAgICB2b2lk ICpidWZmZXIsIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQogewogCWludCBlcnI7CiAKZGlm ZiAtLWdpdCBhL2tlcm5lbC9waWRfbmFtZXNwYWNlLmMgYi9rZXJuZWwvcGlkX25hbWVzcGFjZS5j CmluZGV4IGRjNDhmZWNmYTFkYy4uYWZkN2Q1NGFjYjU2IDEwMDY0NAotLS0gYS9rZXJuZWwvcGlk X25hbWVzcGFjZS5jCisrKyBiL2tlcm5lbC9waWRfbmFtZXNwYWNlLmMKQEAgLTI3Nyw3ICsyNzcs NyBAQCB2b2lkIHphcF9waWRfbnNfcHJvY2Vzc2VzKHN0cnVjdCBwaWRfbmFtZXNwYWNlICpwaWRf bnMpCiB9CiAKICNpZmRlZiBDT05GSUdfQ0hFQ0tQT0lOVF9SRVNUT1JFCi1zdGF0aWMgaW50IHBp ZF9uc19jdGxfaGFuZGxlcihzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAorc3Rh dGljIGludCBwaWRfbnNfY3RsX2hhbmRsZXIoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqdGFibGUs IGludCB3cml0ZSwKIAkJdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykK IHsKIAlzdHJ1Y3QgcGlkX25hbWVzcGFjZSAqcGlkX25zID0gdGFza19hY3RpdmVfcGlkX25zKGN1 cnJlbnQpOwpkaWZmIC0tZ2l0IGEva2VybmVsL3BpZF9zeXNjdGwuaCBiL2tlcm5lbC9waWRfc3lz Y3RsLmgKaW5kZXggZmU5ZmI5OTFkYzQyLi4xOGVjYWVmNmJlNDEgMTAwNjQ0Ci0tLSBhL2tlcm5l bC9waWRfc3lzY3RsLmgKKysrIGIva2VybmVsL3BpZF9zeXNjdGwuaApAQCAtNSw3ICs1LDcgQEAK ICNpbmNsdWRlIDxsaW51eC9waWRfbmFtZXNwYWNlLmg+CiAKICNpZiBkZWZpbmVkKENPTkZJR19T WVNDVEwpICYmIGRlZmluZWQoQ09ORklHX01FTUZEX0NSRUFURSkKLXN0YXRpYyBpbnQgcGlkX21m ZF9ub2V4ZWNfZG9pbnR2ZWNfbWlubWF4KHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLAorc3RhdGlj IGludCBwaWRfbWZkX25vZXhlY19kb2ludHZlY19taW5tYXgoY29uc3Qgc3RydWN0IGN0bF90YWJs ZSAqdGFibGUsCiAJaW50IHdyaXRlLCB2b2lkICpidWYsIHNpemVfdCAqbGVucCwgbG9mZl90ICpw cG9zKQogewogCXN0cnVjdCBwaWRfbmFtZXNwYWNlICpucyA9IHRhc2tfYWN0aXZlX3BpZF9ucyhj dXJyZW50KTsKZGlmZiAtLWdpdCBhL2tlcm5lbC9wcmludGsvaW50ZXJuYWwuaCBiL2tlcm5lbC9w cmludGsvaW50ZXJuYWwuaAppbmRleCA2YzJhZmVlNWVmNjIuLjE5ZGNjNTgzMjY1MSAxMDA2NDQK LS0tIGEva2VybmVsL3ByaW50ay9pbnRlcm5hbC5oCisrKyBiL2tlcm5lbC9wcmludGsvaW50ZXJu YWwuaApAQCAtOCw3ICs4LDcgQEAKIAogI2lmIGRlZmluZWQoQ09ORklHX1BSSU5USykgJiYgZGVm aW5lZChDT05GSUdfU1lTQ1RMKQogdm9pZCBfX2luaXQgcHJpbnRrX3N5c2N0bF9pbml0KHZvaWQp OwotaW50IGRldmttc2dfc3lzY3RsX3NldF9sb2dsdmwoc3RydWN0IGN0bF90YWJsZSAqdGFibGUs IGludCB3cml0ZSwKK2ludCBkZXZrbXNnX3N5c2N0bF9zZXRfbG9nbHZsKGNvbnN0IHN0cnVjdCBj dGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJCQkgICAgICB2b2lkICpidWZmZXIsIHNpemVf dCAqbGVucCwgbG9mZl90ICpwcG9zKTsKICNlbHNlCiAjZGVmaW5lIHByaW50a19zeXNjdGxfaW5p dCgpIGRvIHsgfSB3aGlsZSAoMCkKZGlmZiAtLWdpdCBhL2tlcm5lbC9wcmludGsvcHJpbnRrLmMg Yi9rZXJuZWwvcHJpbnRrL3ByaW50ay5jCmluZGV4IDYyMDY4MDRkMjc1Yi4uNmQwMGU4OTc0NGU5 IDEwMDY0NAotLS0gYS9rZXJuZWwvcHJpbnRrL3ByaW50ay5jCisrKyBiL2tlcm5lbC9wcmludGsv cHJpbnRrLmMKQEAgLTE5Nyw3ICsxOTcsNyBAQCBfX3NldHVwKCJwcmludGsuZGV2a21zZz0iLCBj b250cm9sX2Rldmttc2cpOwogCiBjaGFyIGRldmttc2dfbG9nX3N0cltERVZLTVNHX1NUUl9NQVhf U0laRV0gPSAicmF0ZWxpbWl0IjsKICNpZiBkZWZpbmVkKENPTkZJR19QUklOVEspICYmIGRlZmlu ZWQoQ09ORklHX1NZU0NUTCkKLWludCBkZXZrbXNnX3N5c2N0bF9zZXRfbG9nbHZsKHN0cnVjdCBj dGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCitpbnQgZGV2a21zZ19zeXNjdGxfc2V0X2xvZ2x2 bChjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCQkJICAgICAgdm9p ZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAljaGFyIG9sZF9zdHJb REVWS01TR19TVFJfTUFYX1NJWkVdOwpkaWZmIC0tZ2l0IGEva2VybmVsL3ByaW50ay9zeXNjdGwu YyBiL2tlcm5lbC9wcmludGsvc3lzY3RsLmMKaW5kZXggM2U0N2RlZGNlOWU1Li42YWFkZGI5MDE0 OWYgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9wcmludGsvc3lzY3RsLmMKKysrIGIva2VybmVsL3ByaW50 ay9zeXNjdGwuYwpAQCAtMTEsOCArMTEsOSBAQAogCiBzdGF0aWMgY29uc3QgaW50IHRlbl90aG91 c2FuZCA9IDEwMDAwOwogCi1zdGF0aWMgaW50IHByb2NfZG9pbnR2ZWNfbWlubWF4X3N5c2FkbWlu KHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCi0JCQkJdm9pZCAqYnVmZmVyLCBz aXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKK3N0YXRpYyBpbnQgcHJvY19kb2ludHZlY19taW5t YXhfc3lzYWRtaW4oY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqdGFibGUsCisJCQkJCSBpbnQgd3Jp dGUsIHZvaWQgKmJ1ZmZlciwKKwkJCQkJIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQogewog CWlmICh3cml0ZSAmJiAhY2FwYWJsZShDQVBfU1lTX0FETUlOKSkKIAkJcmV0dXJuIC1FUEVSTTsK ZGlmZiAtLWdpdCBhL2tlcm5lbC9zY2hlZC9jb3JlLmMgYi9rZXJuZWwvc2NoZWQvY29yZS5jCmlu ZGV4IDVmOWQzMmExMTBmOS4uZDY1ZjIxYzI3MzA0IDEwMDY0NAotLS0gYS9rZXJuZWwvc2NoZWQv Y29yZS5jCisrKyBiL2tlcm5lbC9zY2hlZC9jb3JlLmMKQEAgLTE4MzUsNyArMTgzNSw3IEBAIHN0 YXRpYyB2b2lkIHVjbGFtcF9zeW5jX3V0aWxfbWluX3J0X2RlZmF1bHQodm9pZCkKIAkJdWNsYW1w X3VwZGF0ZV91dGlsX21pbl9ydF9kZWZhdWx0KHApOwogfQogCi1zdGF0aWMgaW50IHN5c2N0bF9z Y2hlZF91Y2xhbXBfaGFuZGxlcihzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAor c3RhdGljIGludCBzeXNjdGxfc2NoZWRfdWNsYW1wX2hhbmRsZXIoY29uc3Qgc3RydWN0IGN0bF90 YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIAkJCQl2b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCwg bG9mZl90ICpwcG9zKQogewogCWJvb2wgdXBkYXRlX3Jvb3RfdGcgPSBmYWxzZTsKQEAgLTQ2MDMs NyArNDYwMyw3IEBAIHN0YXRpYyB2b2lkIHJlc2V0X21lbW9yeV90aWVyaW5nKHZvaWQpCiAJfQog fQogCi1zdGF0aWMgaW50IHN5c2N0bF9udW1hX2JhbGFuY2luZyhzdHJ1Y3QgY3RsX3RhYmxlICp0 YWJsZSwgaW50IHdyaXRlLAorc3RhdGljIGludCBzeXNjdGxfbnVtYV9iYWxhbmNpbmcoY29uc3Qg c3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIAkJCSAgdm9pZCAqYnVmZmVyLCBz aXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlzdHJ1Y3QgY3RsX3RhYmxlIHQ7CkBAIC00 NjcyLDggKzQ2NzIsOCBAQCBzdGF0aWMgaW50IF9faW5pdCBzZXR1cF9zY2hlZHN0YXRzKGNoYXIg KnN0cikKIF9fc2V0dXAoInNjaGVkc3RhdHM9Iiwgc2V0dXBfc2NoZWRzdGF0cyk7CiAKICNpZmRl ZiBDT05GSUdfUFJPQ19TWVNDVEwKLXN0YXRpYyBpbnQgc3lzY3RsX3NjaGVkc3RhdHMoc3RydWN0 IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwgdm9pZCAqYnVmZmVyLAotCQlzaXplX3QgKmxl bnAsIGxvZmZfdCAqcHBvcykKK3N0YXRpYyBpbnQgc3lzY3RsX3NjaGVkc3RhdHMoY29uc3Qgc3Ry dWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKKwkJdm9pZCAqYnVmZmVyLCBzaXplX3Qg KmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlzdHJ1Y3QgY3RsX3RhYmxlIHQ7CiAJaW50IGVycjsK ZGlmZiAtLWdpdCBhL2tlcm5lbC9zY2hlZC9ydC5jIGIva2VybmVsL3NjaGVkL3J0LmMKaW5kZXgg YWE0YzFjODc0ZmE0Li4zZjhjMDQ2NzU1ZmQgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9zY2hlZC9ydC5j CisrKyBiL2tlcm5lbC9zY2hlZC9ydC5jCkBAIC0yNiwxMCArMjYsMTAgQEAgaW50IHN5c2N0bF9z Y2hlZF9ydF9ydW50aW1lID0gOTUwMDAwOwogCiAjaWZkZWYgQ09ORklHX1NZU0NUTAogc3RhdGlj IGludCBzeXNjdGxfc2NoZWRfcnJfdGltZXNsaWNlID0gKE1TRUNfUEVSX1NFQyAqIFJSX1RJTUVT TElDRSkgLyBIWjsKLXN0YXRpYyBpbnQgc2NoZWRfcnRfaGFuZGxlcihzdHJ1Y3QgY3RsX3RhYmxl ICp0YWJsZSwgaW50IHdyaXRlLCB2b2lkICpidWZmZXIsCi0JCXNpemVfdCAqbGVucCwgbG9mZl90 ICpwcG9zKTsKLXN0YXRpYyBpbnQgc2NoZWRfcnJfaGFuZGxlcihzdHJ1Y3QgY3RsX3RhYmxlICp0 YWJsZSwgaW50IHdyaXRlLCB2b2lkICpidWZmZXIsCi0JCXNpemVfdCAqbGVucCwgbG9mZl90ICpw cG9zKTsKK3N0YXRpYyBpbnQgc2NoZWRfcnRfaGFuZGxlcihjb25zdCBzdHJ1Y3QgY3RsX3RhYmxl ICp0YWJsZSwgaW50IHdyaXRlLAorCQl2b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCwgbG9mZl90 ICpwcG9zKTsKK3N0YXRpYyBpbnQgc2NoZWRfcnJfaGFuZGxlcihjb25zdCBzdHJ1Y3QgY3RsX3Rh YmxlICp0YWJsZSwgaW50IHdyaXRlLAorCQl2b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCwgbG9m Zl90ICpwcG9zKTsKIHN0YXRpYyBzdHJ1Y3QgY3RsX3RhYmxlIHNjaGVkX3J0X3N5c2N0bHNbXSA9 IHsKIAl7CiAJCS5wcm9jbmFtZSAgICAgICA9ICJzY2hlZF9ydF9wZXJpb2RfdXMiLApAQCAtMjk1 Miw4ICsyOTUyLDggQEAgc3RhdGljIHZvaWQgc2NoZWRfcnRfZG9fZ2xvYmFsKHZvaWQpCiAJcmF3 X3NwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRlZl9ydF9iYW5kd2lkdGgucnRfcnVudGltZV9sb2Nr LCBmbGFncyk7CiB9CiAKLXN0YXRpYyBpbnQgc2NoZWRfcnRfaGFuZGxlcihzdHJ1Y3QgY3RsX3Rh YmxlICp0YWJsZSwgaW50IHdyaXRlLCB2b2lkICpidWZmZXIsCi0JCXNpemVfdCAqbGVucCwgbG9m Zl90ICpwcG9zKQorc3RhdGljIGludCBzY2hlZF9ydF9oYW5kbGVyKGNvbnN0IHN0cnVjdCBjdGxf dGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCisJCXZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBs b2ZmX3QgKnBwb3MpCiB7CiAJaW50IG9sZF9wZXJpb2QsIG9sZF9ydW50aW1lOwogCXN0YXRpYyBE RUZJTkVfTVVURVgobXV0ZXgpOwpAQCAtMjk5MSw4ICsyOTkxLDggQEAgc3RhdGljIGludCBzY2hl ZF9ydF9oYW5kbGVyKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsIHZvaWQgKmJ1 ZmZlciwKIAlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgaW50IHNjaGVkX3JyX2hhbmRsZXIoc3Ry dWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwgdm9pZCAqYnVmZmVyLAotCQlzaXplX3Qg KmxlbnAsIGxvZmZfdCAqcHBvcykKK3N0YXRpYyBpbnQgc2NoZWRfcnJfaGFuZGxlcihjb25zdCBz dHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAorCQl2b2lkICpidWZmZXIsIHNpemVf dCAqbGVucCwgbG9mZl90ICpwcG9zKQogewogCWludCByZXQ7CiAJc3RhdGljIERFRklORV9NVVRF WChtdXRleCk7CmRpZmYgLS1naXQgYS9rZXJuZWwvc2NoZWQvdG9wb2xvZ3kuYyBiL2tlcm5lbC9z Y2hlZC90b3BvbG9neS5jCmluZGV4IDFkNmVlZmE0MDMyZS4uMmI1MmYzNGRjMzVjIDEwMDY0NAot LS0gYS9rZXJuZWwvc2NoZWQvdG9wb2xvZ3kuYworKysgYi9rZXJuZWwvc2NoZWQvdG9wb2xvZ3ku YwpAQCAtMjg1LDcgKzI4NSw3IEBAIHZvaWQgcmVidWlsZF9zY2hlZF9kb21haW5zX2VuZXJneSh2 b2lkKQogfQogCiAjaWZkZWYgQ09ORklHX1BST0NfU1lTQ1RMCi1zdGF0aWMgaW50IHNjaGVkX2Vu ZXJneV9hd2FyZV9oYW5kbGVyKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCitz dGF0aWMgaW50IHNjaGVkX2VuZXJneV9hd2FyZV9oYW5kbGVyKGNvbnN0IHN0cnVjdCBjdGxfdGFi bGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJCXZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2Zm X3QgKnBwb3MpCiB7CiAJaW50IHJldCwgc3RhdGU7CmRpZmYgLS1naXQgYS9rZXJuZWwvc2VjY29t cC5jIGIva2VybmVsL3NlY2NvbXAuYwppbmRleCA3ZWQ3MjcyM2ZiOGEuLjk3YTNkMGU4MWFjMSAx MDA2NDQKLS0tIGEva2VybmVsL3NlY2NvbXAuYworKysgYi9rZXJuZWwvc2VjY29tcC5jCkBAIC0y MzM0LDcgKzIzMzQsNyBAQCBzdGF0aWMgYm9vbCBzZWNjb21wX2FjdGlvbnNfbG9nZ2VkX2Zyb21f bmFtZXModTMyICphY3Rpb25zX2xvZ2dlZCwgY2hhciAqbmFtZXMpCiAJcmV0dXJuIHRydWU7CiB9 CiAKLXN0YXRpYyBpbnQgcmVhZF9hY3Rpb25zX2xvZ2dlZChzdHJ1Y3QgY3RsX3RhYmxlICpyb190 YWJsZSwgdm9pZCAqYnVmZmVyLAorc3RhdGljIGludCByZWFkX2FjdGlvbnNfbG9nZ2VkKGNvbnN0 IHN0cnVjdCBjdGxfdGFibGUgKnJvX3RhYmxlLCB2b2lkICpidWZmZXIsCiAJCQkgICAgICAgc2l6 ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJY2hhciBuYW1lc1tzaXplb2Yoc2VjY29tcF9h Y3Rpb25zX2F2YWlsKV07CkBAIC0yMzUyLDcgKzIzNTIsNyBAQCBzdGF0aWMgaW50IHJlYWRfYWN0 aW9uc19sb2dnZWQoc3RydWN0IGN0bF90YWJsZSAqcm9fdGFibGUsIHZvaWQgKmJ1ZmZlciwKIAly ZXR1cm4gcHJvY19kb3N0cmluZygmdGFibGUsIDAsIGJ1ZmZlciwgbGVucCwgcHBvcyk7CiB9CiAK LXN0YXRpYyBpbnQgd3JpdGVfYWN0aW9uc19sb2dnZWQoc3RydWN0IGN0bF90YWJsZSAqcm9fdGFi bGUsIHZvaWQgKmJ1ZmZlciwKK3N0YXRpYyBpbnQgd3JpdGVfYWN0aW9uc19sb2dnZWQoY29uc3Qg c3RydWN0IGN0bF90YWJsZSAqcm9fdGFibGUsIHZvaWQgKmJ1ZmZlciwKIAkJCQlzaXplX3QgKmxl bnAsIGxvZmZfdCAqcHBvcywgdTMyICphY3Rpb25zX2xvZ2dlZCkKIHsKIAljaGFyIG5hbWVzW3Np emVvZihzZWNjb21wX2FjdGlvbnNfYXZhaWwpXTsKQEAgLTI0MTMsOSArMjQxMyw5IEBAIHN0YXRp YyB2b2lkIGF1ZGl0X2FjdGlvbnNfbG9nZ2VkKHUzMiBhY3Rpb25zX2xvZ2dlZCwgdTMyIG9sZF9h Y3Rpb25zX2xvZ2dlZCwKIAlyZXR1cm4gYXVkaXRfc2VjY29tcF9hY3Rpb25zX2xvZ2dlZChuZXcs IG9sZCwgIXJldCk7CiB9CiAKLXN0YXRpYyBpbnQgc2VjY29tcF9hY3Rpb25zX2xvZ2dlZF9oYW5k bGVyKHN0cnVjdCBjdGxfdGFibGUgKnJvX3RhYmxlLCBpbnQgd3JpdGUsCi0JCQkJCSAgdm9pZCAq YnVmZmVyLCBzaXplX3QgKmxlbnAsCi0JCQkJCSAgbG9mZl90ICpwcG9zKQorc3RhdGljIGludCBz ZWNjb21wX2FjdGlvbnNfbG9nZ2VkX2hhbmRsZXIoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqcm9f dGFibGUsCisJCQkJCSAgaW50IHdyaXRlLCB2b2lkICpidWZmZXIsCisJCQkJCSAgc2l6ZV90ICps ZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJaW50IHJldDsKIApkaWZmIC0tZ2l0IGEva2VybmVsL3N0 YWNrbGVhay5jIGIva2VybmVsL3N0YWNrbGVhay5jCmluZGV4IDU1OGI5ZDZkMjhkMy4uZjY0YjJi M2QwMjQ0IDEwMDY0NAotLS0gYS9rZXJuZWwvc3RhY2tsZWFrLmMKKysrIGIva2VybmVsL3N0YWNr bGVhay5jCkBAIC0yMSw3ICsyMSw3IEBACiBzdGF0aWMgREVGSU5FX1NUQVRJQ19LRVlfRkFMU0Uo c3RhY2tfZXJhc2luZ19ieXBhc3MpOwogCiAjaWZkZWYgQ09ORklHX1NZU0NUTAotc3RhdGljIGlu dCBzdGFja19lcmFzaW5nX3N5c2N0bChzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRl LAorc3RhdGljIGludCBzdGFja19lcmFzaW5nX3N5c2N0bChjb25zdCBzdHJ1Y3QgY3RsX3RhYmxl ICp0YWJsZSwgaW50IHdyaXRlLAogCQkJdm9pZCBfX3VzZXIgKmJ1ZmZlciwgc2l6ZV90ICpsZW5w LCBsb2ZmX3QgKnBwb3MpCiB7CiAJaW50IHJldCA9IDA7CmRpZmYgLS1naXQgYS9rZXJuZWwvc3lz Y3RsLmMgYi9rZXJuZWwvc3lzY3RsLmMKaW5kZXggNjJkZDI3NzUyOTYwLi40ZDNlNWNlY2JjODgg MTAwNjQ0Ci0tLSBhL2tlcm5lbC9zeXNjdGwuYworKysgYi9rZXJuZWwvc3lzY3RsLmMKQEAgLTI1 Niw3ICsyNTYsNyBAQCBzdGF0aWMgYm9vbCBwcm9jX2ZpcnN0X3Bvc19ub25femVyb19pZ25vcmUo bG9mZl90ICpwcG9zLAogICoKICAqIFJldHVybnMgMCBvbiBzdWNjZXNzLgogICovCi1pbnQgcHJv Y19kb3N0cmluZyhzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAoraW50IHByb2Nf ZG9zdHJpbmcoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIAkJICB2 b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQogewogCWlmICh3cml0ZSkK QEAgLTcwMiw3ICs3MDIsNyBAQCBpbnQgZG9fcHJvY19kb3VpbnR2ZWMoY29uc3Qgc3RydWN0IGN0 bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKICAqCiAgKiBSZXR1cm5zIDAgb24gc3VjY2Vzcy4K ICAqLwotaW50IHByb2NfZG9ib29sKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUs IHZvaWQgKmJ1ZmZlciwKK2ludCBwcm9jX2RvYm9vbChjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0 YWJsZSwgaW50IHdyaXRlLCB2b2lkICpidWZmZXIsCiAJCXNpemVfdCAqbGVucCwgbG9mZl90ICpw cG9zKQogewogCXN0cnVjdCBjdGxfdGFibGUgdG1wOwpAQCAtNzM5LDcgKzczOSw3IEBAIGludCBw cm9jX2RvYm9vbChzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLCB2b2lkICpidWZm ZXIsCiAgKgogICogUmV0dXJucyAwIG9uIHN1Y2Nlc3MuCiAgKi8KLWludCBwcm9jX2RvaW50dmVj KHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsIHZvaWQgKmJ1ZmZlciwKK2ludCBw cm9jX2RvaW50dmVjKGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsIHZv aWQgKmJ1ZmZlciwKIAkJICBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlyZXR1cm4g ZG9fcHJvY19kb2ludHZlYyh0YWJsZSwgd3JpdGUsIGJ1ZmZlciwgbGVucCwgcHBvcywgTlVMTCwg TlVMTCk7CkBAIC03NTgsNyArNzU4LDcgQEAgaW50IHByb2NfZG9pbnR2ZWMoc3RydWN0IGN0bF90 YWJsZSAqdGFibGUsIGludCB3cml0ZSwgdm9pZCAqYnVmZmVyLAogICoKICAqIFJldHVybnMgMCBv biBzdWNjZXNzLgogICovCi1pbnQgcHJvY19kb3VpbnR2ZWMoc3RydWN0IGN0bF90YWJsZSAqdGFi bGUsIGludCB3cml0ZSwgdm9pZCAqYnVmZmVyLAoraW50IHByb2NfZG91aW50dmVjKGNvbnN0IHN0 cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsIHZvaWQgKmJ1ZmZlciwKIAkJc2l6ZV90 ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJcmV0dXJuIGRvX3Byb2NfZG91aW50dmVjKHRhYmxl LCB3cml0ZSwgYnVmZmVyLCBsZW5wLCBwcG9zLApAQCAtNzY5LDcgKzc2OSw3IEBAIGludCBwcm9j X2RvdWludHZlYyhzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLCB2b2lkICpidWZm ZXIsCiAgKiBUYWludCB2YWx1ZXMgY2FuIG9ubHkgYmUgaW5jcmVhc2VkCiAgKiBUaGlzIG1lYW5z IHdlIGNhbiBzYWZlbHkgdXNlIGEgdGVtcG9yYXJ5LgogICovCi1zdGF0aWMgaW50IHByb2NfdGFp bnQoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKK3N0YXRpYyBpbnQgcHJvY190 YWludChjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCQkJICAgICAg IHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJc3RydWN0IGN0 bF90YWJsZSB0OwpAQCAtODY0LDcgKzg2NCw3IEBAIHN0YXRpYyBpbnQgZG9fcHJvY19kb2ludHZl Y19taW5tYXhfY29udihib29sICpuZWdwLCB1bnNpZ25lZCBsb25nICpsdmFscCwKICAqCiAgKiBS ZXR1cm5zIDAgb24gc3VjY2VzcyBvciAtRUlOVkFMIG9uIHdyaXRlIHdoZW4gdGhlIHJhbmdlIGNo ZWNrIGZhaWxzLgogICovCi1pbnQgcHJvY19kb2ludHZlY19taW5tYXgoc3RydWN0IGN0bF90YWJs ZSAqdGFibGUsIGludCB3cml0ZSwKK2ludCBwcm9jX2RvaW50dmVjX21pbm1heChjb25zdCBzdHJ1 Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCQkgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90 ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJc3RydWN0IGRvX3Byb2NfZG9pbnR2ZWNfbWlubWF4 X2NvbnZfcGFyYW0gcGFyYW0gPSB7CkBAIC05MzMsNyArOTMzLDcgQEAgc3RhdGljIGludCBkb19w cm9jX2RvdWludHZlY19taW5tYXhfY29udih1bnNpZ25lZCBsb25nICpsdmFscCwKICAqCiAgKiBS ZXR1cm5zIDAgb24gc3VjY2VzcyBvciAtRVJBTkdFIG9uIHdyaXRlIHdoZW4gdGhlIHJhbmdlIGNo ZWNrIGZhaWxzLgogICovCi1pbnQgcHJvY19kb3VpbnR2ZWNfbWlubWF4KHN0cnVjdCBjdGxfdGFi bGUgKnRhYmxlLCBpbnQgd3JpdGUsCitpbnQgcHJvY19kb3VpbnR2ZWNfbWlubWF4KGNvbnN0IHN0 cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJCQkgIHZvaWQgKmJ1ZmZlciwgc2l6 ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJc3RydWN0IGRvX3Byb2NfZG91aW50dmVjX21p bm1heF9jb252X3BhcmFtIHBhcmFtID0gewpAQCAtOTYxLDcgKzk2MSw3IEBAIGludCBwcm9jX2Rv dWludHZlY19taW5tYXgoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKICAqCiAg KiBSZXR1cm5zIDAgb24gc3VjY2VzcyBvciBhbiBlcnJvciBvbiB3cml0ZSB3aGVuIHRoZSByYW5n ZSBjaGVjayBmYWlscy4KICAqLwotaW50IHByb2NfZG91OHZlY19taW5tYXgoc3RydWN0IGN0bF90 YWJsZSAqdGFibGUsIGludCB3cml0ZSwKK2ludCBwcm9jX2RvdTh2ZWNfbWlubWF4KGNvbnN0IHN0 cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJCQl2b2lkICpidWZmZXIsIHNpemVf dCAqbGVucCwgbG9mZl90ICpwcG9zKQogewogCXN0cnVjdCBjdGxfdGFibGUgdG1wOwpAQCAtMTAw NCw3ICsxMDA0LDcgQEAgaW50IHByb2NfZG91OHZlY19taW5tYXgoc3RydWN0IGN0bF90YWJsZSAq dGFibGUsIGludCB3cml0ZSwKIEVYUE9SVF9TWU1CT0xfR1BMKHByb2NfZG91OHZlY19taW5tYXgp OwogCiAjaWZkZWYgQ09ORklHX01BR0lDX1NZU1JRCi1zdGF0aWMgaW50IHN5c3JxX3N5c2N0bF9o YW5kbGVyKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCitzdGF0aWMgaW50IHN5 c3JxX3N5c2N0bF9oYW5kbGVyKGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3Jp dGUsCiAJCQkJdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlp bnQgdG1wLCByZXQ7CkBAIC0xMTIxLDcgKzExMjEsNyBAQCBzdGF0aWMgaW50IGRvX3Byb2NfZG91 bG9uZ3ZlY19taW5tYXgoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwK ICAqCiAgKiBSZXR1cm5zIDAgb24gc3VjY2Vzcy4KICAqLwotaW50IHByb2NfZG91bG9uZ3ZlY19t aW5tYXgoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKK2ludCBwcm9jX2RvdWxv bmd2ZWNfbWlubWF4KGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJ CQkgICB2b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQogewogICAgIHJl dHVybiBkb19wcm9jX2RvdWxvbmd2ZWNfbWlubWF4KHRhYmxlLCB3cml0ZSwgYnVmZmVyLCBsZW5w LCBwcG9zLCAxbCwgMWwpOwpAQCAtMTE0NCw3ICsxMTQ0LDcgQEAgaW50IHByb2NfZG91bG9uZ3Zl Y19taW5tYXgoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKICAqCiAgKiBSZXR1 cm5zIDAgb24gc3VjY2Vzcy4KICAqLwotaW50IHByb2NfZG91bG9uZ3ZlY19tc19qaWZmaWVzX21p bm1heChzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAoraW50IHByb2NfZG91bG9u Z3ZlY19tc19qaWZmaWVzX21pbm1heChjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50 IHdyaXRlLAogCQkJCSAgICAgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBw b3MpCiB7CiAgICAgcmV0dXJuIGRvX3Byb2NfZG91bG9uZ3ZlY19taW5tYXgodGFibGUsIHdyaXRl LCBidWZmZXIsCkBAIC0xMjY1LDE0ICsxMjY1LDE0IEBAIHN0YXRpYyBpbnQgZG9fcHJvY19kb2lu dHZlY19tc19qaWZmaWVzX21pbm1heF9jb252KGJvb2wgKm5lZ3AsIHVuc2lnbmVkIGxvbmcgKmx2 CiAgKgogICogUmV0dXJucyAwIG9uIHN1Y2Nlc3MuCiAgKi8KLWludCBwcm9jX2RvaW50dmVjX2pp ZmZpZXMoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKK2ludCBwcm9jX2RvaW50 dmVjX2ppZmZpZXMoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIAkJ CSAgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKICAgICByZXR1 cm4gZG9fcHJvY19kb2ludHZlYyh0YWJsZSx3cml0ZSxidWZmZXIsbGVucCxwcG9zLAogCQkgICAg CSAgICBkb19wcm9jX2RvaW50dmVjX2ppZmZpZXNfY29udixOVUxMKTsKIH0KIAotaW50IHByb2Nf ZG9pbnR2ZWNfbXNfamlmZmllc19taW5tYXgoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3 cml0ZSwKK2ludCBwcm9jX2RvaW50dmVjX21zX2ppZmZpZXNfbWlubWF4KGNvbnN0IHN0cnVjdCBj dGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJCQkgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICps ZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJc3RydWN0IGRvX3Byb2NfZG9pbnR2ZWNfbWlubWF4X2Nv bnZfcGFyYW0gcGFyYW0gPSB7CkBAIC0xMjk4LDcgKzEyOTgsNyBAQCBpbnQgcHJvY19kb2ludHZl Y19tc19qaWZmaWVzX21pbm1heChzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAog ICoKICAqIFJldHVybnMgMCBvbiBzdWNjZXNzLgogICovCi1pbnQgcHJvY19kb2ludHZlY191c2Vy aHpfamlmZmllcyhzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAoraW50IHByb2Nf ZG9pbnR2ZWNfdXNlcmh6X2ppZmZpZXMoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGlu dCB3cml0ZSwKIAkJCQkgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykK IHsKIAlyZXR1cm4gZG9fcHJvY19kb2ludHZlYyh0YWJsZSwgd3JpdGUsIGJ1ZmZlciwgbGVucCwg cHBvcywKQEAgLTEzMjEsMTUgKzEzMjEsMTUgQEAgaW50IHByb2NfZG9pbnR2ZWNfdXNlcmh6X2pp ZmZpZXMoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKICAqCiAgKiBSZXR1cm5z IDAgb24gc3VjY2Vzcy4KICAqLwotaW50IHByb2NfZG9pbnR2ZWNfbXNfamlmZmllcyhzdHJ1Y3Qg Y3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLCB2b2lkICpidWZmZXIsCi0JCXNpemVfdCAqbGVu cCwgbG9mZl90ICpwcG9zKQoraW50IHByb2NfZG9pbnR2ZWNfbXNfamlmZmllcyhjb25zdCBzdHJ1 Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAorCQl2b2lkICpidWZmZXIsIHNpemVfdCAq bGVucCwgbG9mZl90ICpwcG9zKQogewogCXJldHVybiBkb19wcm9jX2RvaW50dmVjKHRhYmxlLCB3 cml0ZSwgYnVmZmVyLCBsZW5wLCBwcG9zLAogCQkJCWRvX3Byb2NfZG9pbnR2ZWNfbXNfamlmZmll c19jb252LCBOVUxMKTsKIH0KIAotc3RhdGljIGludCBwcm9jX2RvX2NhZF9waWQoc3RydWN0IGN0 bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwgdm9pZCAqYnVmZmVyLAotCQlzaXplX3QgKmxlbnAs IGxvZmZfdCAqcHBvcykKK3N0YXRpYyBpbnQgcHJvY19kb19jYWRfcGlkKGNvbnN0IHN0cnVjdCBj dGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCisJCXZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5w LCBsb2ZmX3QgKnBwb3MpCiB7CiAJc3RydWN0IHBpZCAqbmV3X3BpZDsKIAlwaWRfdCB0bXA7CkBA IC0xMzY3LDcgKzEzNjcsNyBAQCBzdGF0aWMgaW50IHByb2NfZG9fY2FkX3BpZChzdHJ1Y3QgY3Rs X3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLCB2b2lkICpidWZmZXIsCiAgKgogICogUmV0dXJucyAw IG9uIHN1Y2Nlc3MuCiAgKi8KLWludCBwcm9jX2RvX2xhcmdlX2JpdG1hcChzdHJ1Y3QgY3RsX3Rh YmxlICp0YWJsZSwgaW50IHdyaXRlLAoraW50IHByb2NfZG9fbGFyZ2VfYml0bWFwKGNvbnN0IHN0 cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJCQkgdm9pZCAqYnVmZmVyLCBzaXpl X3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlpbnQgZXJyID0gMDsKQEAgLTE0OTksODUgKzE0 OTksODUgQEAgaW50IHByb2NfZG9fbGFyZ2VfYml0bWFwKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxl LCBpbnQgd3JpdGUsCiAKICNlbHNlIC8qIENPTkZJR19QUk9DX1NZU0NUTCAqLwogCi1pbnQgcHJv Y19kb3N0cmluZyhzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAoraW50IHByb2Nf ZG9zdHJpbmcoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIAkJICB2 b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQogewogCXJldHVybiAtRU5P U1lTOwogfQogCi1pbnQgcHJvY19kb2Jvb2woc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3 cml0ZSwKK2ludCBwcm9jX2RvYm9vbChjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50 IHdyaXRlLAogCQl2b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQogewog CXJldHVybiAtRU5PU1lTOwogfQogCi1pbnQgcHJvY19kb2ludHZlYyhzdHJ1Y3QgY3RsX3RhYmxl ICp0YWJsZSwgaW50IHdyaXRlLAoraW50IHByb2NfZG9pbnR2ZWMoY29uc3Qgc3RydWN0IGN0bF90 YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIAkJICB2b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCwg bG9mZl90ICpwcG9zKQogewogCXJldHVybiAtRU5PU1lTOwogfQogCi1pbnQgcHJvY19kb3VpbnR2 ZWMoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKK2ludCBwcm9jX2RvdWludHZl Yyhjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCQkgIHZvaWQgKmJ1 ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJcmV0dXJuIC1FTk9TWVM7CiB9 CiAKLWludCBwcm9jX2RvaW50dmVjX21pbm1heChzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50 IHdyaXRlLAoraW50IHByb2NfZG9pbnR2ZWNfbWlubWF4KGNvbnN0IHN0cnVjdCBjdGxfdGFibGUg KnRhYmxlLCBpbnQgd3JpdGUsCiAJCSAgICB2b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCwgbG9m Zl90ICpwcG9zKQogewogCXJldHVybiAtRU5PU1lTOwogfQogCi1pbnQgcHJvY19kb3VpbnR2ZWNf bWlubWF4KHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCitpbnQgcHJvY19kb3Vp bnR2ZWNfbWlubWF4KGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJ CQkgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJcmV0dXJu IC1FTk9TWVM7CiB9CiAKLWludCBwcm9jX2RvdTh2ZWNfbWlubWF4KHN0cnVjdCBjdGxfdGFibGUg KnRhYmxlLCBpbnQgd3JpdGUsCitpbnQgcHJvY19kb3U4dmVjX21pbm1heChjb25zdCBzdHJ1Y3Qg Y3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCQkJdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxl bnAsIGxvZmZfdCAqcHBvcykKIHsKIAlyZXR1cm4gLUVOT1NZUzsKIH0KIAotaW50IHByb2NfZG9p bnR2ZWNfamlmZmllcyhzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAoraW50IHBy b2NfZG9pbnR2ZWNfamlmZmllcyhjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdy aXRlLAogCQkgICAgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsK IAlyZXR1cm4gLUVOT1NZUzsKIH0KIAotaW50IHByb2NfZG9pbnR2ZWNfbXNfamlmZmllc19taW5t YXgoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKK2ludCBwcm9jX2RvaW50dmVj X21zX2ppZmZpZXNfbWlubWF4KGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3Jp dGUsCiAJCQkJICAgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7 CiAJcmV0dXJuIC1FTk9TWVM7CiB9CiAKLWludCBwcm9jX2RvaW50dmVjX3VzZXJoel9qaWZmaWVz KHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCitpbnQgcHJvY19kb2ludHZlY191 c2VyaHpfamlmZmllcyhjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAog CQkgICAgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlyZXR1 cm4gLUVOT1NZUzsKIH0KIAotaW50IHByb2NfZG9pbnR2ZWNfbXNfamlmZmllcyhzdHJ1Y3QgY3Rs X3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAoraW50IHByb2NfZG9pbnR2ZWNfbXNfamlmZmllcyhj b25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCQkJICAgICB2b2lkICpi dWZmZXIsIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQogewogCXJldHVybiAtRU5PU1lTOwog fQogCi1pbnQgcHJvY19kb3Vsb25ndmVjX21pbm1heChzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwg aW50IHdyaXRlLAoraW50IHByb2NfZG91bG9uZ3ZlY19taW5tYXgoY29uc3Qgc3RydWN0IGN0bF90 YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIAkJICAgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5w LCBsb2ZmX3QgKnBwb3MpCiB7CiAJcmV0dXJuIC1FTk9TWVM7CiB9CiAKLWludCBwcm9jX2RvdWxv bmd2ZWNfbXNfamlmZmllc19taW5tYXgoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0 ZSwKK2ludCBwcm9jX2RvdWxvbmd2ZWNfbXNfamlmZmllc19taW5tYXgoY29uc3Qgc3RydWN0IGN0 bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIAkJCQkgICAgICB2b2lkICpidWZmZXIsIHNpemVf dCAqbGVucCwgbG9mZl90ICpwcG9zKQogewogCXJldHVybiAtRU5PU1lTOwogfQogCi1pbnQgcHJv Y19kb19sYXJnZV9iaXRtYXAoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKK2lu dCBwcm9jX2RvX2xhcmdlX2JpdG1hcChjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50 IHdyaXRlLAogCQkJIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7 CiAJcmV0dXJuIC1FTk9TWVM7CkBAIC0xNTg2LDcgKzE1ODYsNyBAQCBpbnQgcHJvY19kb19sYXJn ZV9iaXRtYXAoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKICNlbmRpZiAvKiBD T05GSUdfUFJPQ19TWVNDVEwgKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX1NZU0NUTCkKLWludCBw cm9jX2RvX3N0YXRpY19rZXkoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKK2lu dCBwcm9jX2RvX3N0YXRpY19rZXkoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3 cml0ZSwKIAkJICAgICAgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3Mp CiB7CiAJc3RydWN0IHN0YXRpY19rZXkgKmtleSA9IChzdHJ1Y3Qgc3RhdGljX2tleSAqKXRhYmxl LT5kYXRhOwpkaWZmIC0tZ2l0IGEva2VybmVsL3RpbWUvdGltZXIuYyBiL2tlcm5lbC90aW1lL3Rp bWVyLmMKaW5kZXggNDgyODhkZDRhMTAyLi42NGIwZDhhMGFhMGYgMTAwNjQ0Ci0tLSBhL2tlcm5l bC90aW1lL3RpbWVyLmMKKysrIGIva2VybmVsL3RpbWUvdGltZXIuYwpAQCAtMjg5LDcgKzI4OSw3 IEBAIHN0YXRpYyB2b2lkIHRpbWVyc191cGRhdGVfbWlncmF0aW9uKHZvaWQpCiB9CiAKICNpZmRl ZiBDT05GSUdfU1lTQ1RMCi1zdGF0aWMgaW50IHRpbWVyX21pZ3JhdGlvbl9oYW5kbGVyKHN0cnVj dCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCitzdGF0aWMgaW50IHRpbWVyX21pZ3JhdGlv bl9oYW5kbGVyKGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJCQkg ICAgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlpbnQgcmV0 OwpkaWZmIC0tZ2l0IGEva2VybmVsL3RyYWNlL2Z0cmFjZS5jIGIva2VybmVsL3RyYWNlL2Z0cmFj ZS5jCmluZGV4IGY3ODNkN2IyNzlmNi4uZGIxZWJlNzA4NjZhIDEwMDY0NAotLS0gYS9rZXJuZWwv dHJhY2UvZnRyYWNlLmMKKysrIGIva2VybmVsL3RyYWNlL2Z0cmFjZS5jCkBAIC04MjIzLDcgKzgy MjMsNyBAQCBzdGF0aWMgYm9vbCBpc19wZXJtYW5lbnRfb3BzX3JlZ2lzdGVyZWQodm9pZCkKIH0K IAogc3RhdGljIGludAotZnRyYWNlX2VuYWJsZV9zeXNjdGwoc3RydWN0IGN0bF90YWJsZSAqdGFi bGUsIGludCB3cml0ZSwKK2Z0cmFjZV9lbmFibGVfc3lzY3RsKGNvbnN0IHN0cnVjdCBjdGxfdGFi bGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJCSAgICAgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAs IGxvZmZfdCAqcHBvcykKIHsKIAlpbnQgcmV0ID0gLUVOT0RFVjsKZGlmZiAtLWdpdCBhL2tlcm5l bC90cmFjZS90cmFjZS5jIGIva2VybmVsL3RyYWNlL3RyYWNlLmMKaW5kZXggMjMzZDFhZjM5ZmZm Li4yZTZhMGIxMTQyZDMgMTAwNjQ0Ci0tLSBhL2tlcm5lbC90cmFjZS90cmFjZS5jCisrKyBiL2tl cm5lbC90cmFjZS90cmFjZS5jCkBAIC0yNzYxLDcgKzI3NjEsNyBAQCBzdGF0aWMgdm9pZCBvdXRw dXRfcHJpbnRrKHN0cnVjdCB0cmFjZV9ldmVudF9idWZmZXIgKmZidWZmZXIpCiAJcmF3X3NwaW5f dW5sb2NrX2lycXJlc3RvcmUoJnRyYWNlcG9pbnRfaXRlcl9sb2NrLCBmbGFncyk7CiB9CiAKLWlu dCB0cmFjZXBvaW50X3ByaW50a19zeXNjdGwoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3 cml0ZSwKK2ludCB0cmFjZXBvaW50X3ByaW50a19zeXNjdGwoY29uc3Qgc3RydWN0IGN0bF90YWJs ZSAqdGFibGUsIGludCB3cml0ZSwKIAkJCSAgICAgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAs CiAJCQkgICAgIGxvZmZfdCAqcHBvcykKIHsKZGlmZiAtLWdpdCBhL2tlcm5lbC90cmFjZS90cmFj ZV9ldmVudHNfdXNlci5jIGIva2VybmVsL3RyYWNlL3RyYWNlX2V2ZW50c191c2VyLmMKaW5kZXgg MzA0Y2VlZDlmZDdkLi5hMmYwNDhjODM4MmYgMTAwNjQ0Ci0tLSBhL2tlcm5lbC90cmFjZS90cmFj ZV9ldmVudHNfdXNlci5jCisrKyBiL2tlcm5lbC90cmFjZS90cmFjZV9ldmVudHNfdXNlci5jCkBA IC0yODExLDcgKzI4MTEsNyBAQCBzdGF0aWMgaW50IGNyZWF0ZV91c2VyX3RyYWNlZnModm9pZCkK IAlyZXR1cm4gLUVOT0RFVjsKIH0KIAotc3RhdGljIGludCBzZXRfbWF4X3VzZXJfZXZlbnRzX3N5 c2N0bChzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAorc3RhdGljIGludCBzZXRf bWF4X3VzZXJfZXZlbnRzX3N5c2N0bChjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50 IHdyaXRlLAogCQkJCSAgICAgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBw b3MpCiB7CiAJaW50IHJldDsKZGlmZiAtLWdpdCBhL2tlcm5lbC90cmFjZS90cmFjZV9zdGFjay5j IGIva2VybmVsL3RyYWNlL3RyYWNlX3N0YWNrLmMKaW5kZXggNWE0OGRiYTkxMmVhLi43Zjk1NzJh MzczMzMgMTAwNjQ0Ci0tLSBhL2tlcm5lbC90cmFjZS90cmFjZV9zdGFjay5jCisrKyBiL2tlcm5l bC90cmFjZS90cmFjZV9zdGFjay5jCkBAIC01MTQsNyArNTE0LDcgQEAgc3RhdGljIGNvbnN0IHN0 cnVjdCBmaWxlX29wZXJhdGlvbnMgc3RhY2tfdHJhY2VfZmlsdGVyX2ZvcHMgPSB7CiAjZW5kaWYg LyogQ09ORklHX0RZTkFNSUNfRlRSQUNFICovCiAKIGludAotc3RhY2tfdHJhY2Vfc3lzY3RsKHN0 cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsIHZvaWQgKmJ1ZmZlciwKK3N0YWNrX3Ry YWNlX3N5c2N0bChjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLCB2b2lk ICpidWZmZXIsCiAJCSAgIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQogewogCWludCB3YXNf ZW5hYmxlZDsKZGlmZiAtLWdpdCBhL2tlcm5lbC91bWguYyBiL2tlcm5lbC91bWguYwppbmRleCA1 OThiM2ZmZTE1MjIuLmZmMWYxM2EyN2QyOSAxMDA2NDQKLS0tIGEva2VybmVsL3VtaC5jCisrKyBi L2tlcm5lbC91bWguYwpAQCAtNDk1LDcgKzQ5NSw3IEBAIGludCBjYWxsX3VzZXJtb2RlaGVscGVy KGNvbnN0IGNoYXIgKnBhdGgsIGNoYXIgKiphcmd2LCBjaGFyICoqZW52cCwgaW50IHdhaXQpCiBF WFBPUlRfU1lNQk9MKGNhbGxfdXNlcm1vZGVoZWxwZXIpOwogCiAjaWYgZGVmaW5lZChDT05GSUdf U1lTQ1RMKQotc3RhdGljIGludCBwcm9jX2NhcF9oYW5kbGVyKHN0cnVjdCBjdGxfdGFibGUgKnRh YmxlLCBpbnQgd3JpdGUsCitzdGF0aWMgaW50IHByb2NfY2FwX2hhbmRsZXIoY29uc3Qgc3RydWN0 IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIAkJCSB2b2lkICpidWZmZXIsIHNpemVfdCAq bGVucCwgbG9mZl90ICpwcG9zKQogewogCXN0cnVjdCBjdGxfdGFibGUgdDsKZGlmZiAtLWdpdCBh L2tlcm5lbC91dHNuYW1lX3N5c2N0bC5jIGIva2VybmVsL3V0c25hbWVfc3lzY3RsLmMKaW5kZXgg MDRlNDUxM2YyOTg1Li43MjgyZjYxYTg2NTAgMTAwNjQ0Ci0tLSBhL2tlcm5lbC91dHNuYW1lX3N5 c2N0bC5jCisrKyBiL2tlcm5lbC91dHNuYW1lX3N5c2N0bC5jCkBAIC0zMCw3ICszMCw3IEBAIHN0 YXRpYyB2b2lkICpnZXRfdXRzKGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlKQogICoJU3Bl Y2lhbCBjYXNlIG9mIGRvc3RyaW5nIGZvciB0aGUgVVRTIHN0cnVjdHVyZS4gVGhpcyBoYXMgbG9j a3MKICAqCXRvIG9ic2VydmUuIFNob3VsZCB0aGlzIGJlIGluIGtlcm5lbC9zeXMuYyA/Pz8/CiAg Ki8KLXN0YXRpYyBpbnQgcHJvY19kb191dHNfc3RyaW5nKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxl LCBpbnQgd3JpdGUsCitzdGF0aWMgaW50IHByb2NfZG9fdXRzX3N0cmluZyhjb25zdCBzdHJ1Y3Qg Y3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCQkgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICps ZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJc3RydWN0IGN0bF90YWJsZSB1dHNfdGFibGU7CmRpZmYg LS1naXQgYS9rZXJuZWwvd2F0Y2hkb2cuYyBiL2tlcm5lbC93YXRjaGRvZy5jCmluZGV4IDk0MTIz NjgyOGRlOC4uNmNiZGQxMTQzZjA2IDEwMDY0NAotLS0gYS9rZXJuZWwvd2F0Y2hkb2cuYworKysg Yi9rZXJuZWwvd2F0Y2hkb2cuYwpAQCAtOTc0LDcgKzk3NCw3IEBAIHN0YXRpYyB2b2lkIHByb2Nf d2F0Y2hkb2dfdXBkYXRlKHZvaWQpCiAgKiAtLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog ICogcHJvY19zb2Z0X3dhdGNoZG9nIHwgd2F0Y2hkb2dfc29mdGxvY2t1cF91c2VyX2VuYWJsZWQg fCBXQVRDSERPR19TT0ZUT0NLVVBfRU5BQkxFRAogICovCi1zdGF0aWMgaW50IHByb2Nfd2F0Y2hk b2dfY29tbW9uKGludCB3aGljaCwgc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwK K3N0YXRpYyBpbnQgcHJvY193YXRjaGRvZ19jb21tb24oaW50IHdoaWNoLCBjb25zdCBzdHJ1Y3Qg Y3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCQkJCXZvaWQgKmJ1ZmZlciwgc2l6ZV90ICps ZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJaW50IGVyciwgb2xkLCAqcGFyYW0gPSB0YWJsZS0+ZGF0 YTsKQEAgLTEwMDEsNyArMTAwMSw3IEBAIHN0YXRpYyBpbnQgcHJvY193YXRjaGRvZ19jb21tb24o aW50IHdoaWNoLCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogLyoKICAqIC9w cm9jL3N5cy9rZXJuZWwvd2F0Y2hkb2cKICAqLwotc3RhdGljIGludCBwcm9jX3dhdGNoZG9nKHN0 cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCitzdGF0aWMgaW50IHByb2Nfd2F0Y2hk b2coY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIAkJCSB2b2lkICpi dWZmZXIsIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQogewogCXJldHVybiBwcm9jX3dhdGNo ZG9nX2NvbW1vbihXQVRDSERPR19IQVJETE9DS1VQX0VOQUJMRUQgfApAQCAtMTAxMiw3ICsxMDEy LDcgQEAgc3RhdGljIGludCBwcm9jX3dhdGNoZG9nKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBp bnQgd3JpdGUsCiAvKgogICogL3Byb2Mvc3lzL2tlcm5lbC9ubWlfd2F0Y2hkb2cKICAqLwotc3Rh dGljIGludCBwcm9jX25taV93YXRjaGRvZyhzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdy aXRlLAorc3RhdGljIGludCBwcm9jX25taV93YXRjaGRvZyhjb25zdCBzdHJ1Y3QgY3RsX3RhYmxl ICp0YWJsZSwgaW50IHdyaXRlLAogCQkJICAgICB2b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCwg bG9mZl90ICpwcG9zKQogewogCWlmICghd2F0Y2hkb2dfaGFyZGxvY2t1cF9hdmFpbGFibGUgJiYg d3JpdGUpCkBAIC0xMDI1LDcgKzEwMjUsNyBAQCBzdGF0aWMgaW50IHByb2Nfbm1pX3dhdGNoZG9n KHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAvKgogICogL3Byb2Mvc3lzL2tl cm5lbC9zb2Z0X3dhdGNoZG9nCiAgKi8KLXN0YXRpYyBpbnQgcHJvY19zb2Z0X3dhdGNoZG9nKHN0 cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCitzdGF0aWMgaW50IHByb2Nfc29mdF93 YXRjaGRvZyhjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCQkJICAg ICAgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlyZXR1cm4g cHJvY193YXRjaGRvZ19jb21tb24oV0FUQ0hET0dfU09GVE9DS1VQX0VOQUJMRUQsCkBAIC0xMDM2 LDcgKzEwMzYsNyBAQCBzdGF0aWMgaW50IHByb2Nfc29mdF93YXRjaGRvZyhzdHJ1Y3QgY3RsX3Rh YmxlICp0YWJsZSwgaW50IHdyaXRlLAogLyoKICAqIC9wcm9jL3N5cy9rZXJuZWwvd2F0Y2hkb2df dGhyZXNoCiAgKi8KLXN0YXRpYyBpbnQgcHJvY193YXRjaGRvZ190aHJlc2goc3RydWN0IGN0bF90 YWJsZSAqdGFibGUsIGludCB3cml0ZSwKK3N0YXRpYyBpbnQgcHJvY193YXRjaGRvZ190aHJlc2go Y29uc3Qgc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIAkJCQl2b2lkICpidWZm ZXIsIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQogewogCWludCBlcnIsIG9sZDsKQEAgLTEw NTksNyArMTA1OSw3IEBAIHN0YXRpYyBpbnQgcHJvY193YXRjaGRvZ190aHJlc2goc3RydWN0IGN0 bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKICAqIHVzZXIgdG8gc3BlY2lmeSBhIG1hc2sgdGhh dCB3aWxsIGluY2x1ZGUgY3B1cyB0aGF0IGhhdmUgbm90IHlldAogICogYmVlbiBicm91Z2h0IG9u bGluZSwgaWYgZGVzaXJlZC4KICAqLwotc3RhdGljIGludCBwcm9jX3dhdGNoZG9nX2NwdW1hc2so c3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKK3N0YXRpYyBpbnQgcHJvY193YXRj aGRvZ19jcHVtYXNrKGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJ CQkJIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJaW50IGVy cjsKZGlmZiAtLWdpdCBhL21tL2NvbXBhY3Rpb24uYyBiL21tL2NvbXBhY3Rpb24uYwppbmRleCBl NzMxZDQ1YmVmYzcuLmVhNTk1N2MyZGEzOSAxMDA2NDQKLS0tIGEvbW0vY29tcGFjdGlvbi5jCisr KyBiL21tL2NvbXBhY3Rpb24uYwpAQCAtMjk1NSw3ICsyOTU1LDcgQEAgc3RhdGljIGludCBjb21w YWN0X25vZGVzKHZvaWQpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgY29tcGFjdGlvbl9w cm9hY3RpdmVuZXNzX3N5c2N0bF9oYW5kbGVyKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQg d3JpdGUsCitzdGF0aWMgaW50IGNvbXBhY3Rpb25fcHJvYWN0aXZlbmVzc19zeXNjdGxfaGFuZGxl cihjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCQl2b2lkICpidWZm ZXIsIHNpemVfdCAqbGVuZ3RoLCBsb2ZmX3QgKnBwb3MpCiB7CiAJaW50IHJjLCBuaWQ7CkBAIC0y OTg1LDcgKzI5ODUsNyBAQCBzdGF0aWMgaW50IGNvbXBhY3Rpb25fcHJvYWN0aXZlbmVzc19zeXNj dGxfaGFuZGxlcihzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50CiAgKiBUaGlzIGlzIHRoZSBl bnRyeSBwb2ludCBmb3IgY29tcGFjdGluZyBhbGwgbm9kZXMgdmlhCiAgKiAvcHJvYy9zeXMvdm0v Y29tcGFjdF9tZW1vcnkKICAqLwotc3RhdGljIGludCBzeXNjdGxfY29tcGFjdGlvbl9oYW5kbGVy KHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCitzdGF0aWMgaW50IHN5c2N0bF9j b21wYWN0aW9uX2hhbmRsZXIoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0 ZSwKIAkJCXZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5ndGgsIGxvZmZfdCAqcHBvcykKIHsKIAlp bnQgcmV0OwpAQCAtMzI5Niw3ICszMjk2LDcgQEAgc3RhdGljIGludCBrY29tcGFjdGRfY3B1X29u bGluZSh1bnNpZ25lZCBpbnQgY3B1KQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IHByb2Nf ZG9pbnR2ZWNfbWlubWF4X3dhcm5fUlRfY2hhbmdlKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLAor c3RhdGljIGludCBwcm9jX2RvaW50dmVjX21pbm1heF93YXJuX1JUX2NoYW5nZShjb25zdCBzdHJ1 Y3QgY3RsX3RhYmxlICp0YWJsZSwKIAkJaW50IHdyaXRlLCB2b2lkICpidWZmZXIsIHNpemVfdCAq bGVucCwgbG9mZl90ICpwcG9zKQogewogCWludCByZXQsIG9sZDsKZGlmZiAtLWdpdCBhL21tL2h1 Z2V0bGIuYyBiL21tL2h1Z2V0bGIuYwppbmRleCA4ZDEyY2U2M2E0MzkuLjliMDgzNDYzNGU4YiAx MDA2NDQKLS0tIGEvbW0vaHVnZXRsYi5jCisrKyBiL21tL2h1Z2V0bGIuYwpAQCAtNDk1MCw3ICs0 OTUwLDcgQEAgc3RhdGljIGludCBodWdldGxiX3N5c2N0bF9oYW5kbGVyX2NvbW1vbihib29sIG9i ZXlfbWVtcG9saWN5LAogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyBpbnQgaHVnZXRsYl9zeXNj dGxfaGFuZGxlcihzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAorc3RhdGljIGlu dCBodWdldGxiX3N5c2N0bF9oYW5kbGVyKGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBp bnQgd3JpdGUsCiAJCQkgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5ndGgsIGxvZmZfdCAqcHBv cykKIHsKIApAQCAtNDk1OSwxNSArNDk1OSwxNSBAQCBzdGF0aWMgaW50IGh1Z2V0bGJfc3lzY3Rs X2hhbmRsZXIoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIH0KIAogI2lmZGVm IENPTkZJR19OVU1BCi1zdGF0aWMgaW50IGh1Z2V0bGJfbWVtcG9saWN5X3N5c2N0bF9oYW5kbGVy KHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCi0JCQkgIHZvaWQgKmJ1ZmZlciwg c2l6ZV90ICpsZW5ndGgsIGxvZmZfdCAqcHBvcykKK3N0YXRpYyBpbnQgaHVnZXRsYl9tZW1wb2xp Y3lfc3lzY3RsX2hhbmRsZXIoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqdGFibGUsCisJCQlpbnQg d3JpdGUsIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5ndGgsIGxvZmZfdCAqcHBvcykKIHsKIAly ZXR1cm4gaHVnZXRsYl9zeXNjdGxfaGFuZGxlcl9jb21tb24odHJ1ZSwgdGFibGUsIHdyaXRlLAog CQkJCQkJCWJ1ZmZlciwgbGVuZ3RoLCBwcG9zKTsKIH0KICNlbmRpZiAvKiBDT05GSUdfTlVNQSAq LwogCi1zdGF0aWMgaW50IGh1Z2V0bGJfb3ZlcmNvbW1pdF9oYW5kbGVyKHN0cnVjdCBjdGxfdGFi bGUgKnRhYmxlLCBpbnQgd3JpdGUsCitzdGF0aWMgaW50IGh1Z2V0bGJfb3ZlcmNvbW1pdF9oYW5k bGVyKGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJCXZvaWQgKmJ1 ZmZlciwgc2l6ZV90ICpsZW5ndGgsIGxvZmZfdCAqcHBvcykKIHsKIAlzdHJ1Y3QgaHN0YXRlICpo ID0gJmRlZmF1bHRfaHN0YXRlOwpkaWZmIC0tZ2l0IGEvbW0vcGFnZS13cml0ZWJhY2suYyBiL21t L3BhZ2Utd3JpdGViYWNrLmMKaW5kZXggZGI1NzY5Y2IxMmZkLi5iODZhZWNlNjcyYmYgMTAwNjQ0 Ci0tLSBhL21tL3BhZ2Utd3JpdGViYWNrLmMKKysrIGIvbW0vcGFnZS13cml0ZWJhY2suYwpAQCAt NDkzLDggKzQ5Myw4IEBAIGJvb2wgbm9kZV9kaXJ0eV9vayhzdHJ1Y3QgcGdsaXN0X2RhdGEgKnBn ZGF0KQogfQogCiAjaWZkZWYgQ09ORklHX1NZU0NUTAotc3RhdGljIGludCBkaXJ0eV9iYWNrZ3Jv dW5kX3JhdGlvX2hhbmRsZXIoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKLQkJ dm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKK3N0YXRpYyBpbnQgZGly dHlfYmFja2dyb3VuZF9yYXRpb19oYW5kbGVyKGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKnRhYmxl LAorCQlpbnQgd3JpdGUsIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3Mp CiB7CiAJaW50IHJldDsKIApAQCAtNTA0LDggKzUwNCw4IEBAIHN0YXRpYyBpbnQgZGlydHlfYmFj a2dyb3VuZF9yYXRpb19oYW5kbGVyKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUs CiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGludCBkaXJ0eV9iYWNrZ3JvdW5kX2J5dGVzX2hh bmRsZXIoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKLQkJdm9pZCAqYnVmZmVy LCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKK3N0YXRpYyBpbnQgZGlydHlfYmFja2dyb3Vu ZF9ieXRlc19oYW5kbGVyKGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLAorCQlpbnQgd3Jp dGUsIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJaW50IHJl dDsKIApAQCAtNTE1LDggKzUxNSw4IEBAIHN0YXRpYyBpbnQgZGlydHlfYmFja2dyb3VuZF9ieXRl c19oYW5kbGVyKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJcmV0dXJuIHJl dDsKIH0KIAotc3RhdGljIGludCBkaXJ0eV9yYXRpb19oYW5kbGVyKHN0cnVjdCBjdGxfdGFibGUg KnRhYmxlLCBpbnQgd3JpdGUsIHZvaWQgKmJ1ZmZlciwKLQkJc2l6ZV90ICpsZW5wLCBsb2ZmX3Qg KnBwb3MpCitzdGF0aWMgaW50IGRpcnR5X3JhdGlvX2hhbmRsZXIoY29uc3Qgc3RydWN0IGN0bF90 YWJsZSAqdGFibGUsIGludCB3cml0ZSwKKwkJdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxv ZmZfdCAqcHBvcykKIHsKIAlpbnQgb2xkX3JhdGlvID0gdm1fZGlydHlfcmF0aW87CiAJaW50IHJl dDsKQEAgLTUyOSw3ICs1MjksNyBAQCBzdGF0aWMgaW50IGRpcnR5X3JhdGlvX2hhbmRsZXIoc3Ry dWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwgdm9pZCAqYnVmZmVyLAogCXJldHVybiBy ZXQ7CiB9CiAKLXN0YXRpYyBpbnQgZGlydHlfYnl0ZXNfaGFuZGxlcihzdHJ1Y3QgY3RsX3RhYmxl ICp0YWJsZSwgaW50IHdyaXRlLAorc3RhdGljIGludCBkaXJ0eV9ieXRlc19oYW5kbGVyKGNvbnN0 IHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJCXZvaWQgKmJ1ZmZlciwgc2l6 ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJdW5zaWduZWQgbG9uZyBvbGRfYnl0ZXMgPSB2 bV9kaXJ0eV9ieXRlczsKQEAgLTIxNTEsOCArMjE1MSw4IEBAIGJvb2wgd2Jfb3Zlcl9iZ190aHJl c2goc3RydWN0IGJkaV93cml0ZWJhY2sgKndiKQogLyoKICAqIHN5c2N0bCBoYW5kbGVyIGZvciAv cHJvYy9zeXMvdm0vZGlydHlfd3JpdGViYWNrX2NlbnRpc2VjcwogICovCi1zdGF0aWMgaW50IGRp cnR5X3dyaXRlYmFja19jZW50aXNlY3NfaGFuZGxlcihzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwg aW50IHdyaXRlLAotCQl2b2lkICpidWZmZXIsIHNpemVfdCAqbGVuZ3RoLCBsb2ZmX3QgKnBwb3Mp CitzdGF0aWMgaW50IGRpcnR5X3dyaXRlYmFja19jZW50aXNlY3NfaGFuZGxlcihjb25zdCBzdHJ1 Y3QgY3RsX3RhYmxlICp0YWJsZSwKKwkJaW50IHdyaXRlLCB2b2lkICpidWZmZXIsIHNpemVfdCAq bGVuZ3RoLCBsb2ZmX3QgKnBwb3MpCiB7CiAJdW5zaWduZWQgaW50IG9sZF9pbnRlcnZhbCA9IGRp cnR5X3dyaXRlYmFja19pbnRlcnZhbDsKIAlpbnQgcmV0OwpkaWZmIC0tZ2l0IGEvbW0vcGFnZV9h bGxvYy5jIGIvbW0vcGFnZV9hbGxvYy5jCmluZGV4IDMzZDRhMWJlOTI3Yi4uOTgxMGVhMDAwZTcx IDEwMDY0NAotLS0gYS9tbS9wYWdlX2FsbG9jLmMKKysrIGIvbW0vcGFnZV9hbGxvYy5jCkBAIC01 MTM1LDcgKzUxMzUsNyBAQCBzdGF0aWMgY2hhciBudW1hX3pvbmVsaXN0X29yZGVyW10gPSAiTm9k ZSI7CiAvKgogICogc3lzY3RsIGhhbmRsZXIgZm9yIG51bWFfem9uZWxpc3Rfb3JkZXIKICAqLwot c3RhdGljIGludCBudW1hX3pvbmVsaXN0X29yZGVyX2hhbmRsZXIoc3RydWN0IGN0bF90YWJsZSAq dGFibGUsIGludCB3cml0ZSwKK3N0YXRpYyBpbnQgbnVtYV96b25lbGlzdF9vcmRlcl9oYW5kbGVy KGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJCXZvaWQgKmJ1ZmZl ciwgc2l6ZV90ICpsZW5ndGgsIGxvZmZfdCAqcHBvcykKIHsKIAlpZiAod3JpdGUpCkBAIC02MTAy LDcgKzYxMDIsNyBAQCBwb3N0Y29yZV9pbml0Y2FsbChpbml0X3Blcl96b25lX3dtYXJrX21pbikK ICAqCXRoYXQgd2UgY2FuIGNhbGwgdHdvIGhlbHBlciBmdW5jdGlvbnMgd2hlbmV2ZXIgbWluX2Zy ZWVfa2J5dGVzCiAgKgljaGFuZ2VzLgogICovCi1zdGF0aWMgaW50IG1pbl9mcmVlX2tieXRlc19z eXNjdGxfaGFuZGxlcihzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAorc3RhdGlj IGludCBtaW5fZnJlZV9rYnl0ZXNfc3lzY3RsX2hhbmRsZXIoY29uc3Qgc3RydWN0IGN0bF90YWJs ZSAqdGFibGUsIGludCB3cml0ZSwKIAkJdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbmd0aCwgbG9m Zl90ICpwcG9zKQogewogCWludCByYzsKQEAgLTYxMTgsNyArNjExOCw3IEBAIHN0YXRpYyBpbnQg bWluX2ZyZWVfa2J5dGVzX3N5c2N0bF9oYW5kbGVyKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBp bnQgd3JpdGUsCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgd2F0ZXJtYXJrX3NjYWxlX2Zh Y3Rvcl9zeXNjdGxfaGFuZGxlcihzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAor c3RhdGljIGludCB3YXRlcm1hcmtfc2NhbGVfZmFjdG9yX3N5c2N0bF9oYW5kbGVyKGNvbnN0IHN0 cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJCXZvaWQgKmJ1ZmZlciwgc2l6ZV90 ICpsZW5ndGgsIGxvZmZfdCAqcHBvcykKIHsKIAlpbnQgcmM7CkBAIC02MTQ4LDcgKzYxNDgsNyBA QCBzdGF0aWMgdm9pZCBzZXR1cF9taW5fdW5tYXBwZWRfcmF0aW8odm9pZCkKIH0KIAogCi1zdGF0 aWMgaW50IHN5c2N0bF9taW5fdW5tYXBwZWRfcmF0aW9fc3lzY3RsX2hhbmRsZXIoc3RydWN0IGN0 bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKK3N0YXRpYyBpbnQgc3lzY3RsX21pbl91bm1hcHBl ZF9yYXRpb19zeXNjdGxfaGFuZGxlcihjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50 IHdyaXRlLAogCQl2b2lkICpidWZmZXIsIHNpemVfdCAqbGVuZ3RoLCBsb2ZmX3QgKnBwb3MpCiB7 CiAJaW50IHJjOwpAQCAtNjE3NSw3ICs2MTc1LDcgQEAgc3RhdGljIHZvaWQgc2V0dXBfbWluX3Ns YWJfcmF0aW8odm9pZCkKIAkJCQkJCSAgICAgc3lzY3RsX21pbl9zbGFiX3JhdGlvKSAvIDEwMDsK IH0KIAotc3RhdGljIGludCBzeXNjdGxfbWluX3NsYWJfcmF0aW9fc3lzY3RsX2hhbmRsZXIoc3Ry dWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKK3N0YXRpYyBpbnQgc3lzY3RsX21pbl9z bGFiX3JhdGlvX3N5c2N0bF9oYW5kbGVyKGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBp bnQgd3JpdGUsCiAJCXZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5ndGgsIGxvZmZfdCAqcHBvcykK IHsKIAlpbnQgcmM7CkBAIC02MTk5LDcgKzYxOTksNyBAQCBzdGF0aWMgaW50IHN5c2N0bF9taW5f c2xhYl9yYXRpb19zeXNjdGxfaGFuZGxlcihzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdy aQogICogbWluaW11bSB3YXRlcm1hcmtzLiBUaGUgbG93bWVtIHJlc2VydmUgcmF0aW8gY2FuIG9u bHkgbWFrZSBzZW5zZQogICogaWYgaW4gZnVuY3Rpb24gb2YgdGhlIGJvb3QgdGltZSB6b25lIHNp emVzLgogICovCi1zdGF0aWMgaW50IGxvd21lbV9yZXNlcnZlX3JhdGlvX3N5c2N0bF9oYW5kbGVy KHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLAorc3RhdGljIGludCBsb3dtZW1fcmVzZXJ2ZV9yYXRp b19zeXNjdGxfaGFuZGxlcihjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwKIAkJaW50IHdy aXRlLCB2b2lkICpidWZmZXIsIHNpemVfdCAqbGVuZ3RoLCBsb2ZmX3QgKnBwb3MpCiB7CiAJaW50 IGk7CkBAIC02MjIwLDcgKzYyMjAsNyBAQCBzdGF0aWMgaW50IGxvd21lbV9yZXNlcnZlX3JhdGlv X3N5c2N0bF9oYW5kbGVyKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLAogICogY3B1LiBJdCBpcyB0 aGUgZnJhY3Rpb24gb2YgdG90YWwgcGFnZXMgaW4gZWFjaCB6b25lIHRoYXQgYSBob3QgcGVyIGNw dQogICogcGFnZWxpc3QgY2FuIGhhdmUgYmVmb3JlIGl0IGdldHMgZmx1c2hlZCBiYWNrIHRvIGJ1 ZGR5IGFsbG9jYXRvci4KICAqLwotc3RhdGljIGludCBwZXJjcHVfcGFnZWxpc3RfaGlnaF9mcmFj dGlvbl9zeXNjdGxfaGFuZGxlcihzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwKK3N0YXRpYyBpbnQg cGVyY3B1X3BhZ2VsaXN0X2hpZ2hfZnJhY3Rpb25fc3lzY3RsX2hhbmRsZXIoY29uc3Qgc3RydWN0 IGN0bF90YWJsZSAqdGFibGUsCiAJCWludCB3cml0ZSwgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxl bmd0aCwgbG9mZl90ICpwcG9zKQogewogCXN0cnVjdCB6b25lICp6b25lOwpkaWZmIC0tZ2l0IGEv bW0vdXRpbC5jIGIvbW0vdXRpbC5jCmluZGV4IGM5ZTUxOWU2ODExZi4uOTU4YjkwMTNkMmYzIDEw MDY0NAotLS0gYS9tbS91dGlsLmMKKysrIGIvbW0vdXRpbC5jCkBAIC04MzUsOCArODM1LDggQEAg aW50IHN5c2N0bF9tYXhfbWFwX2NvdW50IF9fcmVhZF9tb3N0bHkgPSBERUZBVUxUX01BWF9NQVBf Q09VTlQ7CiB1bnNpZ25lZCBsb25nIHN5c2N0bF91c2VyX3Jlc2VydmVfa2J5dGVzIF9fcmVhZF9t b3N0bHkgPSAxVUwgPDwgMTc7IC8qIDEyOE1CICovCiB1bnNpZ25lZCBsb25nIHN5c2N0bF9hZG1p bl9yZXNlcnZlX2tieXRlcyBfX3JlYWRfbW9zdGx5ID0gMVVMIDw8IDEzOyAvKiA4TUIgKi8KIAot aW50IG92ZXJjb21taXRfcmF0aW9faGFuZGxlcihzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50 IHdyaXRlLCB2b2lkICpidWZmZXIsCi0JCXNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQoraW50 IG92ZXJjb21taXRfcmF0aW9faGFuZGxlcihjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwg aW50IHdyaXRlLAorCQl2b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQog ewogCWludCByZXQ7CiAKQEAgLTg1MSw4ICs4NTEsOCBAQCBzdGF0aWMgdm9pZCBzeW5jX292ZXJj b21taXRfYXMoc3RydWN0IHdvcmtfc3RydWN0ICpkdW1teSkKIAlwZXJjcHVfY291bnRlcl9zeW5j KCZ2bV9jb21taXR0ZWRfYXMpOwogfQogCi1pbnQgb3ZlcmNvbW1pdF9wb2xpY3lfaGFuZGxlcihz dHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLCB2b2lkICpidWZmZXIsCi0JCXNpemVf dCAqbGVucCwgbG9mZl90ICpwcG9zKQoraW50IG92ZXJjb21taXRfcG9saWN5X2hhbmRsZXIoY29u c3Qgc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKKwkJdm9pZCAqYnVmZmVyLCBz aXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlzdHJ1Y3QgY3RsX3RhYmxlIHQ7CiAJaW50 IG5ld19wb2xpY3kgPSAtMTsKQEAgLTg4Nyw4ICs4ODcsOCBAQCBpbnQgb3ZlcmNvbW1pdF9wb2xp Y3lfaGFuZGxlcihzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLCB2b2lkICpidWZm ZXIsCiAJcmV0dXJuIHJldDsKIH0KIAotaW50IG92ZXJjb21taXRfa2J5dGVzX2hhbmRsZXIoc3Ry dWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwgdm9pZCAqYnVmZmVyLAotCQlzaXplX3Qg KmxlbnAsIGxvZmZfdCAqcHBvcykKK2ludCBvdmVyY29tbWl0X2tieXRlc19oYW5kbGVyKGNvbnN0 IHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCisJCXZvaWQgKmJ1ZmZlciwgc2l6 ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJaW50IHJldDsKIApkaWZmIC0tZ2l0IGEvbW0v dm1zdGF0LmMgYi9tbS92bXN0YXQuYwppbmRleCA4NTA3YzQ5NzIxOGIuLjMzYTAzMmQ2OTU1NCAx MDA2NDQKLS0tIGEvbW0vdm1zdGF0LmMKKysrIGIvbW0vdm1zdGF0LmMKQEAgLTc0LDcgKzc0LDcg QEAgc3RhdGljIHZvaWQgaW52YWxpZF9udW1hX3N0YXRpc3RpY3Modm9pZCkKIAogc3RhdGljIERF RklORV9NVVRFWCh2bV9udW1hX3N0YXRfbG9jayk7CiAKLWludCBzeXNjdGxfdm1fbnVtYV9zdGF0 X2hhbmRsZXIoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKK2ludCBzeXNjdGxf dm1fbnVtYV9zdGF0X2hhbmRsZXIoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3 cml0ZSwKIAkJdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbmd0aCwgbG9mZl90ICpwcG9zKQogewog CWludCByZXQsIG9sZHZhbDsKQEAgLTE4ODcsNyArMTg4Nyw3IEBAIHN0YXRpYyB2b2lkIHJlZnJl c2hfdm1fc3RhdHMoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCXJlZnJlc2hfY3B1X3ZtX3N0 YXRzKHRydWUpOwogfQogCi1pbnQgdm1zdGF0X3JlZnJlc2goc3RydWN0IGN0bF90YWJsZSAqdGFi bGUsIGludCB3cml0ZSwKK2ludCB2bXN0YXRfcmVmcmVzaChjb25zdCBzdHJ1Y3QgY3RsX3RhYmxl ICp0YWJsZSwgaW50IHdyaXRlLAogCQkgICB2b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCwgbG9m Zl90ICpwcG9zKQogewogCWxvbmcgdmFsOwpkaWZmIC0tZ2l0IGEvbmV0L2JyaWRnZS9icl9uZXRm aWx0ZXJfaG9va3MuYyBiL25ldC9icmlkZ2UvYnJfbmV0ZmlsdGVyX2hvb2tzLmMKaW5kZXggNzk0 OGE5ZTc1NDJjLi4wYzk1ZWIwYWU4ZjAgMTAwNjQ0Ci0tLSBhL25ldC9icmlkZ2UvYnJfbmV0Zmls dGVyX2hvb2tzLmMKKysrIGIvbmV0L2JyaWRnZS9icl9uZXRmaWx0ZXJfaG9va3MuYwpAQCAtMTE3 Nyw3ICsxMTc3LDcgQEAgaW50IGJyX25mX2hvb2tfdGhyZXNoKHVuc2lnbmVkIGludCBob29rLCBz dHJ1Y3QgbmV0ICpuZXQsCiAKICNpZmRlZiBDT05GSUdfU1lTQ1RMCiBzdGF0aWMKLWludCBicm5m X3N5c2N0bF9jYWxsX3RhYmxlcyhzdHJ1Y3QgY3RsX3RhYmxlICpjdGwsIGludCB3cml0ZSwKK2lu dCBicm5mX3N5c2N0bF9jYWxsX3RhYmxlcyhjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICpjdGwsIGlu dCB3cml0ZSwKIAkJCSAgICB2b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9z KQogewogCWludCByZXQ7CmRpZmYgLS1naXQgYS9uZXQvY29yZS9uZWlnaGJvdXIuYyBiL25ldC9j b3JlL25laWdoYm91ci5jCmluZGV4IDkyYTAxNjY0YTcyMy4uOWEwODllM2JjZDM0IDEwMDY0NAot LS0gYS9uZXQvY29yZS9uZWlnaGJvdXIuYworKysgYi9uZXQvY29yZS9uZWlnaGJvdXIuYwpAQCAt MzU0Myw3ICszNTQzLDcgQEAgRVhQT1JUX1NZTUJPTChuZWlnaF9hcHBfbnMpOwogI2lmZGVmIENP TkZJR19TWVNDVEwKIHN0YXRpYyBpbnQgdW5yZXNfcWxlbl9tYXggPSBJTlRfTUFYIC8gU0tCX1RS VUVTSVpFKEVUSF9GUkFNRV9MRU4pOwogCi1zdGF0aWMgaW50IHByb2NfdW5yZXNfcWxlbihzdHJ1 Y3QgY3RsX3RhYmxlICpjdGwsIGludCB3cml0ZSwKK3N0YXRpYyBpbnQgcHJvY191bnJlc19xbGVu KGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKmN0bCwgaW50IHdyaXRlLAogCQkJICAgdm9pZCAqYnVm ZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlpbnQgc2l6ZSwgcmV0OwpAQCAt MzU5NSw3ICszNTk1LDcgQEAgc3RhdGljIHZvaWQgbmVpZ2hfcHJvY191cGRhdGUoY29uc3Qgc3Ry dWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUpCiAJCW5laWdoX2NvcHlfZGZsdF9wYXJtcyhu ZXQsIHAsIGluZGV4KTsKIH0KIAotc3RhdGljIGludCBuZWlnaF9wcm9jX2RvaW50dmVjX3plcm9f aW50bWF4KHN0cnVjdCBjdGxfdGFibGUgKmN0bCwgaW50IHdyaXRlLAorc3RhdGljIGludCBuZWln aF9wcm9jX2RvaW50dmVjX3plcm9faW50bWF4KGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKmN0bCwg aW50IHdyaXRlLAogCQkJCQkgICB2b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCwKIAkJCQkJICAg bG9mZl90ICpwcG9zKQogewpAQCAtMzYxMCw3ICszNjEwLDcgQEAgc3RhdGljIGludCBuZWlnaF9w cm9jX2RvaW50dmVjX3plcm9faW50bWF4KHN0cnVjdCBjdGxfdGFibGUgKmN0bCwgaW50IHdyaXRl LAogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyBpbnQgbmVpZ2hfcHJvY19kb2ludHZlY19tc19q aWZmaWVzX3Bvc2l0aXZlKHN0cnVjdCBjdGxfdGFibGUgKmN0bCwgaW50IHdyaXRlLAorc3RhdGlj IGludCBuZWlnaF9wcm9jX2RvaW50dmVjX21zX2ppZmZpZXNfcG9zaXRpdmUoY29uc3Qgc3RydWN0 IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsCiAJCQkJCQkgICB2b2lkICpidWZmZXIsIHNpemVf dCAqbGVucCwgbG9mZl90ICpwcG9zKQogewogCXN0cnVjdCBjdGxfdGFibGUgdG1wID0gKmN0bDsK QEAgLTM2MjYsNyArMzYyNiw3IEBAIHN0YXRpYyBpbnQgbmVpZ2hfcHJvY19kb2ludHZlY19tc19q aWZmaWVzX3Bvc2l0aXZlKHN0cnVjdCBjdGxfdGFibGUgKmN0bCwgaW50IHdyCiAJcmV0dXJuIHJl dDsKIH0KIAotaW50IG5laWdoX3Byb2NfZG9pbnR2ZWMoc3RydWN0IGN0bF90YWJsZSAqY3RsLCBp bnQgd3JpdGUsIHZvaWQgKmJ1ZmZlciwKK2ludCBuZWlnaF9wcm9jX2RvaW50dmVjKGNvbnN0IHN0 cnVjdCBjdGxfdGFibGUgKmN0bCwgaW50IHdyaXRlLCB2b2lkICpidWZmZXIsCiAJCQlzaXplX3Qg KmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlpbnQgcmV0ID0gcHJvY19kb2ludHZlYyhjdGwsIHdy aXRlLCBidWZmZXIsIGxlbnAsIHBwb3MpOwpAQCAtMzYzNiw3ICszNjM2LDcgQEAgaW50IG5laWdo X3Byb2NfZG9pbnR2ZWMoc3RydWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsIHZvaWQgKmJ1 ZmZlciwKIH0KIEVYUE9SVF9TWU1CT0wobmVpZ2hfcHJvY19kb2ludHZlYyk7CiAKLWludCBuZWln aF9wcm9jX2RvaW50dmVjX2ppZmZpZXMoc3RydWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUs IHZvaWQgKmJ1ZmZlciwKK2ludCBuZWlnaF9wcm9jX2RvaW50dmVjX2ppZmZpZXMoY29uc3Qgc3Ry dWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsIHZvaWQgKmJ1ZmZlciwKIAkJCQlzaXplX3Qg KmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlpbnQgcmV0ID0gcHJvY19kb2ludHZlY19qaWZmaWVz KGN0bCwgd3JpdGUsIGJ1ZmZlciwgbGVucCwgcHBvcyk7CkBAIC0zNjQ2LDcgKzM2NDYsNyBAQCBp bnQgbmVpZ2hfcHJvY19kb2ludHZlY19qaWZmaWVzKHN0cnVjdCBjdGxfdGFibGUgKmN0bCwgaW50 IHdyaXRlLCB2b2lkICpidWZmZXIsCiB9CiBFWFBPUlRfU1lNQk9MKG5laWdoX3Byb2NfZG9pbnR2 ZWNfamlmZmllcyk7CiAKLXN0YXRpYyBpbnQgbmVpZ2hfcHJvY19kb2ludHZlY191c2VyaHpfamlm ZmllcyhzdHJ1Y3QgY3RsX3RhYmxlICpjdGwsIGludCB3cml0ZSwKK3N0YXRpYyBpbnQgbmVpZ2hf cHJvY19kb2ludHZlY191c2VyaHpfamlmZmllcyhjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICpjdGws IGludCB3cml0ZSwKIAkJCQkJICAgICAgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsCiAJCQkJ CSAgICAgIGxvZmZfdCAqcHBvcykKIHsKQEAgLTM2NTYsNyArMzY1Niw3IEBAIHN0YXRpYyBpbnQg bmVpZ2hfcHJvY19kb2ludHZlY191c2VyaHpfamlmZmllcyhzdHJ1Y3QgY3RsX3RhYmxlICpjdGws IGludCB3cml0ZSwKIAlyZXR1cm4gcmV0OwogfQogCi1pbnQgbmVpZ2hfcHJvY19kb2ludHZlY19t c19qaWZmaWVzKHN0cnVjdCBjdGxfdGFibGUgKmN0bCwgaW50IHdyaXRlLAoraW50IG5laWdoX3By b2NfZG9pbnR2ZWNfbXNfamlmZmllcyhjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICpjdGwsIGludCB3 cml0ZSwKIAkJCQkgICB2b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQog ewogCWludCByZXQgPSBwcm9jX2RvaW50dmVjX21zX2ppZmZpZXMoY3RsLCB3cml0ZSwgYnVmZmVy LCBsZW5wLCBwcG9zKTsKQEAgLTM2NjYsNyArMzY2Niw3IEBAIGludCBuZWlnaF9wcm9jX2RvaW50 dmVjX21zX2ppZmZpZXMoc3RydWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsCiB9CiBFWFBP UlRfU1lNQk9MKG5laWdoX3Byb2NfZG9pbnR2ZWNfbXNfamlmZmllcyk7CiAKLXN0YXRpYyBpbnQg bmVpZ2hfcHJvY19kb2ludHZlY191bnJlc19xbGVuKHN0cnVjdCBjdGxfdGFibGUgKmN0bCwgaW50 IHdyaXRlLAorc3RhdGljIGludCBuZWlnaF9wcm9jX2RvaW50dmVjX3VucmVzX3FsZW4oY29uc3Qg c3RydWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsCiAJCQkJCSAgdm9pZCAqYnVmZmVyLCBz aXplX3QgKmxlbnAsCiAJCQkJCSAgbG9mZl90ICpwcG9zKQogewpAQCAtMzY3Niw3ICszNjc2LDcg QEAgc3RhdGljIGludCBuZWlnaF9wcm9jX2RvaW50dmVjX3VucmVzX3FsZW4oc3RydWN0IGN0bF90 YWJsZSAqY3RsLCBpbnQgd3JpdGUsCiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGludCBuZWln aF9wcm9jX2Jhc2VfcmVhY2hhYmxlX3RpbWUoc3RydWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3Jp dGUsCitzdGF0aWMgaW50IG5laWdoX3Byb2NfYmFzZV9yZWFjaGFibGVfdGltZShjb25zdCBzdHJ1 Y3QgY3RsX3RhYmxlICpjdGwsIGludCB3cml0ZSwKIAkJCQkJICB2b2lkICpidWZmZXIsIHNpemVf dCAqbGVucCwKIAkJCQkJICBsb2ZmX3QgKnBwb3MpCiB7CmRpZmYgLS1naXQgYS9uZXQvY29yZS9z eXNjdGxfbmV0X2NvcmUuYyBiL25ldC9jb3JlL3N5c2N0bF9uZXRfY29yZS5jCmluZGV4IDkwM2Fi NGE1MWMxNy4uYmE5ODQyZDc3M2UzIDEwMDY0NAotLS0gYS9uZXQvY29yZS9zeXNjdGxfbmV0X2Nv cmUuYworKysgYi9uZXQvY29yZS9zeXNjdGxfbmV0X2NvcmUuYwpAQCAtOTQsNyArOTQsNyBAQCBz dGF0aWMgc3RydWN0IGNwdW1hc2sgKnJwc19kZWZhdWx0X21hc2tfY293X2FsbG9jKHN0cnVjdCBu ZXQgKm5ldCkKIAlyZXR1cm4gcnBzX2RlZmF1bHRfbWFzazsKIH0KIAotc3RhdGljIGludCBycHNf ZGVmYXVsdF9tYXNrX3N5c2N0bChzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAor c3RhdGljIGludCBycHNfZGVmYXVsdF9tYXNrX3N5c2N0bChjb25zdCBzdHJ1Y3QgY3RsX3RhYmxl ICp0YWJsZSwgaW50IHdyaXRlLAogCQkJCSAgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBs b2ZmX3QgKnBwb3MpCiB7CiAJc3RydWN0IG5ldCAqbmV0ID0gKHN0cnVjdCBuZXQgKil0YWJsZS0+ ZGF0YTsKQEAgLTEyNSw3ICsxMjUsNyBAQCBzdGF0aWMgaW50IHJwc19kZWZhdWx0X21hc2tfc3lz Y3RsKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJcmV0dXJuIGVycjsKIH0K IAotc3RhdGljIGludCBycHNfc29ja19mbG93X3N5c2N0bChzdHJ1Y3QgY3RsX3RhYmxlICp0YWJs ZSwgaW50IHdyaXRlLAorc3RhdGljIGludCBycHNfc29ja19mbG93X3N5c2N0bChjb25zdCBzdHJ1 Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCQkJCXZvaWQgKmJ1ZmZlciwgc2l6ZV90 ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJdW5zaWduZWQgaW50IG9yaWdfc2l6ZSwgc2l6ZTsK QEAgLTE5Nyw3ICsxOTcsNyBAQCBzdGF0aWMgaW50IHJwc19zb2NrX2Zsb3dfc3lzY3RsKHN0cnVj dCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAjaWZkZWYgQ09ORklHX05FVF9GTE9XX0xJ TUlUCiBzdGF0aWMgREVGSU5FX01VVEVYKGZsb3dfbGltaXRfdXBkYXRlX211dGV4KTsKIAotc3Rh dGljIGludCBmbG93X2xpbWl0X2NwdV9zeXNjdGwoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGlu dCB3cml0ZSwKK3N0YXRpYyBpbnQgZmxvd19saW1pdF9jcHVfc3lzY3RsKGNvbnN0IHN0cnVjdCBj dGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJCQkJIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICps ZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJc3RydWN0IHNkX2Zsb3dfbGltaXQgKmN1cjsKQEAgLTI1 NCw3ICsyNTQsNyBAQCBzdGF0aWMgaW50IGZsb3dfbGltaXRfY3B1X3N5c2N0bChzdHJ1Y3QgY3Rs X3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyBpbnQg Zmxvd19saW1pdF90YWJsZV9sZW5fc3lzY3RsKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQg d3JpdGUsCitzdGF0aWMgaW50IGZsb3dfbGltaXRfdGFibGVfbGVuX3N5c2N0bChjb25zdCBzdHJ1 Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCQkJCSAgICAgICB2b2lkICpidWZmZXIs IHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQogewogCXVuc2lnbmVkIGludCBvbGQsICpwdHI7 CkBAIC0yNzYsNyArMjc2LDcgQEAgc3RhdGljIGludCBmbG93X2xpbWl0X3RhYmxlX2xlbl9zeXNj dGwoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKICNlbmRpZiAvKiBDT05GSUdf TkVUX0ZMT1dfTElNSVQgKi8KIAogI2lmZGVmIENPTkZJR19ORVRfU0NIRUQKLXN0YXRpYyBpbnQg c2V0X2RlZmF1bHRfcWRpc2Moc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKK3N0 YXRpYyBpbnQgc2V0X2RlZmF1bHRfcWRpc2MoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqdGFibGUs IGludCB3cml0ZSwKIAkJCSAgICAgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAq cHBvcykKIHsKIAljaGFyIGlkW0lGTkFNU0laXTsKQEAgLTI5NSw3ICsyOTUsNyBAQCBzdGF0aWMg aW50IHNldF9kZWZhdWx0X3FkaXNjKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUs CiB9CiAjZW5kaWYKIAotc3RhdGljIGludCBwcm9jX2RvX2Rldl93ZWlnaHQoc3RydWN0IGN0bF90 YWJsZSAqdGFibGUsIGludCB3cml0ZSwKK3N0YXRpYyBpbnQgcHJvY19kb19kZXZfd2VpZ2h0KGNv bnN0IHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJCQkgICB2b2lkICpidWZm ZXIsIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQogewogCXN0YXRpYyBERUZJTkVfTVVURVgo ZGV2X3dlaWdodF9tdXRleCk7CkBAIC0zMTMsNyArMzEzLDcgQEAgc3RhdGljIGludCBwcm9jX2Rv X2Rldl93ZWlnaHQoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIAlyZXR1cm4g cmV0OwogfQogCi1zdGF0aWMgaW50IHByb2NfZG9fcnNzX2tleShzdHJ1Y3QgY3RsX3RhYmxlICp0 YWJsZSwgaW50IHdyaXRlLAorc3RhdGljIGludCBwcm9jX2RvX3Jzc19rZXkoY29uc3Qgc3RydWN0 IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIAkJCSAgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90 ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJc3RydWN0IGN0bF90YWJsZSBmYWtlX3RhYmxlOwpA QCAtMzI2LDcgKzMyNiw3IEBAIHN0YXRpYyBpbnQgcHJvY19kb19yc3Nfa2V5KHN0cnVjdCBjdGxf dGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiB9CiAKICNpZmRlZiBDT05GSUdfQlBGX0pJVAotc3Rh dGljIGludCBwcm9jX2RvaW50dmVjX21pbm1heF9icGZfZW5hYmxlKHN0cnVjdCBjdGxfdGFibGUg KnRhYmxlLCBpbnQgd3JpdGUsCitzdGF0aWMgaW50IHByb2NfZG9pbnR2ZWNfbWlubWF4X2JwZl9l bmFibGUoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIAkJCQkJICAg dm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsCiAJCQkJCSAgIGxvZmZfdCAqcHBvcykKIHsKQEAg LTM1OSw3ICszNTksNyBAQCBzdGF0aWMgaW50IHByb2NfZG9pbnR2ZWNfbWlubWF4X2JwZl9lbmFi bGUoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIAogIyBpZmRlZiBDT05GSUdf SEFWRV9FQlBGX0pJVAogc3RhdGljIGludAotcHJvY19kb2ludHZlY19taW5tYXhfYnBmX3Jlc3Ry aWN0ZWQoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKK3Byb2NfZG9pbnR2ZWNf bWlubWF4X2JwZl9yZXN0cmljdGVkKGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQg d3JpdGUsCiAJCQkJICAgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3Mp CiB7CiAJaWYgKCFjYXBhYmxlKENBUF9TWVNfQURNSU4pKQpAQCAtMzcwLDcgKzM3MCw3IEBAIHBy b2NfZG9pbnR2ZWNfbWlubWF4X2JwZl9yZXN0cmljdGVkKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxl LCBpbnQgd3JpdGUsCiAjIGVuZGlmIC8qIENPTkZJR19IQVZFX0VCUEZfSklUICovCiAKIHN0YXRp YyBpbnQKLXByb2NfZG9sb25ndmVjX21pbm1heF9icGZfcmVzdHJpY3RlZChzdHJ1Y3QgY3RsX3Rh YmxlICp0YWJsZSwgaW50IHdyaXRlLAorcHJvY19kb2xvbmd2ZWNfbWlubWF4X2JwZl9yZXN0cmlj dGVkKGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJCQkJICAgICB2 b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQogewogCWlmICghY2FwYWJs ZShDQVBfU1lTX0FETUlOKSkKZGlmZiAtLWdpdCBhL25ldC9pcHY0L2RldmluZXQuYyBiL25ldC9p cHY0L2RldmluZXQuYwppbmRleCA3NTkyZjI0MjMzNmIuLjJlNjkxMmMxZmIyMSAxMDA2NDQKLS0t IGEvbmV0L2lwdjQvZGV2aW5ldC5jCisrKyBiL25ldC9pcHY0L2RldmluZXQuYwpAQCAtMjM3Nyw3 ICsyMzc3LDcgQEAgc3RhdGljIGludCBkZXZpbmV0X2NvbmZfaWZpbmRleChzdHJ1Y3QgbmV0ICpu ZXQsIHN0cnVjdCBpcHY0X2RldmNvbmYgKmNuZikKIAl9CiB9CiAKLXN0YXRpYyBpbnQgZGV2aW5l dF9jb25mX3Byb2Moc3RydWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsCitzdGF0aWMgaW50 IGRldmluZXRfY29uZl9wcm9jKGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKmN0bCwgaW50IHdyaXRl LAogCQkJICAgICB2b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQogewog CWludCBvbGRfdmFsdWUgPSAqKGludCAqKWN0bC0+ZGF0YTsKQEAgLTI0MjksNyArMjQyOSw3IEBA IHN0YXRpYyBpbnQgZGV2aW5ldF9jb25mX3Byb2Moc3RydWN0IGN0bF90YWJsZSAqY3RsLCBpbnQg d3JpdGUsCiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGludCBkZXZpbmV0X3N5c2N0bF9mb3J3 YXJkKHN0cnVjdCBjdGxfdGFibGUgKmN0bCwgaW50IHdyaXRlLAorc3RhdGljIGludCBkZXZpbmV0 X3N5c2N0bF9mb3J3YXJkKGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKmN0bCwgaW50IHdyaXRlLAog CQkJCSAgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlpbnQg KnZhbHAgPSBjdGwtPmRhdGE7CkBAIC0yNDc2LDcgKzI0NzYsNyBAQCBzdGF0aWMgaW50IGRldmlu ZXRfc3lzY3RsX2ZvcndhcmQoc3RydWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsCiAJcmV0 dXJuIHJldDsKIH0KIAotc3RhdGljIGludCBpcHY0X2RvaW50X2FuZF9mbHVzaChzdHJ1Y3QgY3Rs X3RhYmxlICpjdGwsIGludCB3cml0ZSwKK3N0YXRpYyBpbnQgaXB2NF9kb2ludF9hbmRfZmx1c2go Y29uc3Qgc3RydWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsCiAJCQkJdm9pZCAqYnVmZmVy LCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlpbnQgKnZhbHAgPSBjdGwtPmRhdGE7 CmRpZmYgLS1naXQgYS9uZXQvaXB2NC9yb3V0ZS5jIGIvbmV0L2lwdjQvcm91dGUuYwppbmRleCAy ZTI5YWI4MTk5NjcuLmQyZTg4ZjNlNmZlOCAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvcm91dGUuYwor KysgYi9uZXQvaXB2NC9yb3V0ZS5jCkBAIC0zMzk0LDcgKzMzOTQsNyBAQCBzdGF0aWMgaW50IGlw X3J0X2djX21pbl9pbnRlcnZhbCBfX3JlYWRfbW9zdGx5CT0gSFogLyAyOwogc3RhdGljIGludCBp cF9ydF9nY19lbGFzdGljaXR5IF9fcmVhZF9tb3N0bHkJPSA4Owogc3RhdGljIGludCBpcF9taW5f dmFsaWRfcG10dSBfX3JlYWRfbW9zdGx5CT0gSVBWNF9NSU5fTVRVOwogCi1zdGF0aWMgaW50IGlw djRfc3lzY3RsX3J0Y2FjaGVfZmx1c2goc3RydWN0IGN0bF90YWJsZSAqX19jdGwsIGludCB3cml0 ZSwKK3N0YXRpYyBpbnQgaXB2NF9zeXNjdGxfcnRjYWNoZV9mbHVzaChjb25zdCBzdHJ1Y3QgY3Rs X3RhYmxlICpfX2N0bCwgaW50IHdyaXRlLAogCQl2b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCwg bG9mZl90ICpwcG9zKQogewogCXN0cnVjdCBuZXQgKm5ldCA9IChzdHJ1Y3QgbmV0ICopX19jdGwt PmV4dHJhMTsKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3N5c2N0bF9uZXRfaXB2NC5jIGIvbmV0L2lw djQvc3lzY3RsX25ldF9pcHY0LmMKaW5kZXggZmM0YzAwMWJmNzJhLi40YzNhMDNiN2EwZjggMTAw NjQ0Ci0tLSBhL25ldC9pcHY0L3N5c2N0bF9uZXRfaXB2NC5jCisrKyBiL25ldC9pcHY0L3N5c2N0 bF9uZXRfaXB2NC5jCkBAIC02Miw3ICs2Miw3IEBAIHN0YXRpYyB2b2lkIHNldF9sb2NhbF9wb3J0 X3JhbmdlKHN0cnVjdCBuZXQgKm5ldCwgdW5zaWduZWQgaW50IGxvdywgdW5zaWduZWQgaW50CiB9 CiAKIC8qIFZhbGlkYXRlIGNoYW5nZXMgZnJvbSAvcHJvYyBpbnRlcmZhY2UuICovCi1zdGF0aWMg aW50IGlwdjRfbG9jYWxfcG9ydF9yYW5nZShzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdy aXRlLAorc3RhdGljIGludCBpcHY0X2xvY2FsX3BvcnRfcmFuZ2UoY29uc3Qgc3RydWN0IGN0bF90 YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIAkJCQkgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAs IGxvZmZfdCAqcHBvcykKIHsKIAlzdHJ1Y3QgbmV0ICpuZXQgPSB0YWJsZS0+ZGF0YTsKQEAgLTk2 LDcgKzk2LDcgQEAgc3RhdGljIGludCBpcHY0X2xvY2FsX3BvcnRfcmFuZ2Uoc3RydWN0IGN0bF90 YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIH0KIAogLyogVmFsaWRhdGUgY2hhbmdlcyBmcm9tIC9w cm9jIGludGVyZmFjZS4gKi8KLXN0YXRpYyBpbnQgaXB2NF9wcml2aWxlZ2VkX3BvcnRzKHN0cnVj dCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCitzdGF0aWMgaW50IGlwdjRfcHJpdmlsZWdl ZF9wb3J0cyhjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCQkJCXZv aWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJc3RydWN0IG5ldCAq bmV0ID0gY29udGFpbmVyX29mKHRhYmxlLT5kYXRhLCBzdHJ1Y3QgbmV0LApAQCAtMTU5LDcgKzE1 OSw3IEBAIHN0YXRpYyB2b2lkIHNldF9waW5nX2dyb3VwX3JhbmdlKGNvbnN0IHN0cnVjdCBjdGxf dGFibGUgKnRhYmxlLAogfQogCiAvKiBWYWxpZGF0ZSBjaGFuZ2VzIGZyb20gL3Byb2MgaW50ZXJm YWNlLiAqLwotc3RhdGljIGludCBpcHY0X3BpbmdfZ3JvdXBfcmFuZ2Uoc3RydWN0IGN0bF90YWJs ZSAqdGFibGUsIGludCB3cml0ZSwKK3N0YXRpYyBpbnQgaXB2NF9waW5nX2dyb3VwX3JhbmdlKGNv bnN0IHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJCQkJIHZvaWQgKmJ1ZmZl ciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJc3RydWN0IHVzZXJfbmFtZXNwYWNl ICp1c2VyX25zID0gY3VycmVudF91c2VyX25zKCk7CkBAIC0xOTQsNyArMTk0LDcgQEAgc3RhdGlj IGludCBpcHY0X3BpbmdfZ3JvdXBfcmFuZ2Uoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3 cml0ZSwKIAlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgaW50IGlwdjRfZndkX3VwZGF0ZV9wcmlv cml0eShzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAorc3RhdGljIGludCBpcHY0 X2Z3ZF91cGRhdGVfcHJpb3JpdHkoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3 cml0ZSwKIAkJCQkgICAgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykK IHsKIAlzdHJ1Y3QgbmV0ICpuZXQ7CkBAIC0yMTAsNyArMjEwLDcgQEAgc3RhdGljIGludCBpcHY0 X2Z3ZF91cGRhdGVfcHJpb3JpdHkoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwK IAlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgaW50IHByb2NfdGNwX2Nvbmdlc3Rpb25fY29udHJv bChzdHJ1Y3QgY3RsX3RhYmxlICpjdGwsIGludCB3cml0ZSwKK3N0YXRpYyBpbnQgcHJvY190Y3Bf Y29uZ2VzdGlvbl9jb250cm9sKGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKmN0bCwgaW50IHdyaXRl LAogCQkJCSAgICAgICB2b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQog ewogCXN0cnVjdCBuZXQgKm5ldCA9IGNvbnRhaW5lcl9vZihjdGwtPmRhdGEsIHN0cnVjdCBuZXQs CkBAIC0yMzAsNyArMjMwLDcgQEAgc3RhdGljIGludCBwcm9jX3RjcF9jb25nZXN0aW9uX2NvbnRy b2woc3RydWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsCiAJcmV0dXJuIHJldDsKIH0KIAot c3RhdGljIGludCBwcm9jX3RjcF9hdmFpbGFibGVfY29uZ2VzdGlvbl9jb250cm9sKHN0cnVjdCBj dGxfdGFibGUgKmN0bCwKK3N0YXRpYyBpbnQgcHJvY190Y3BfYXZhaWxhYmxlX2Nvbmdlc3Rpb25f Y29udHJvbChjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICpjdGwsCiAJCQkJCQkgaW50IHdyaXRlLCB2 b2lkICpidWZmZXIsCiAJCQkJCQkgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CkBAIC0y NDYsNyArMjQ2LDcgQEAgc3RhdGljIGludCBwcm9jX3RjcF9hdmFpbGFibGVfY29uZ2VzdGlvbl9j b250cm9sKHN0cnVjdCBjdGxfdGFibGUgKmN0bCwKIAlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMg aW50IHByb2NfYWxsb3dlZF9jb25nZXN0aW9uX2NvbnRyb2woc3RydWN0IGN0bF90YWJsZSAqY3Rs LAorc3RhdGljIGludCBwcm9jX2FsbG93ZWRfY29uZ2VzdGlvbl9jb250cm9sKGNvbnN0IHN0cnVj dCBjdGxfdGFibGUgKmN0bCwKIAkJCQkJICAgaW50IHdyaXRlLCB2b2lkICpidWZmZXIsCiAJCQkJ CSAgIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQogewpAQCAtMjgzLDcgKzI4Myw3IEBAIHN0 YXRpYyBpbnQgc3NjYW5mX2tleShjaGFyICpidWYsIF9fbGUzMiAqa2V5KQogCXJldHVybiByZXQ7 CiB9CiAKLXN0YXRpYyBpbnQgcHJvY190Y3BfZmFzdG9wZW5fa2V5KHN0cnVjdCBjdGxfdGFibGUg KnRhYmxlLCBpbnQgd3JpdGUsCitzdGF0aWMgaW50IHByb2NfdGNwX2Zhc3RvcGVuX2tleShjb25z dCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCQkJCSB2b2lkICpidWZmZXIs IHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQogewogCXN0cnVjdCBuZXQgKm5ldCA9IGNvbnRh aW5lcl9vZih0YWJsZS0+ZGF0YSwgc3RydWN0IG5ldCwKQEAgLTM1NCw3ICszNTQsNyBAQCBzdGF0 aWMgaW50IHByb2NfdGNwX2Zhc3RvcGVuX2tleShzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50 IHdyaXRlLAogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyBpbnQgcHJvY190Zm9fYmxhY2tob2xl X2RldGVjdF90aW1lb3V0KHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLAorc3RhdGljIGludCBwcm9j X3Rmb19ibGFja2hvbGVfZGV0ZWN0X3RpbWVvdXQoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqdGFi bGUsCiAJCQkJCSAgICAgaW50IHdyaXRlLCB2b2lkICpidWZmZXIsCiAJCQkJCSAgICAgc2l6ZV90 ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CkBAIC0zNjksNyArMzY5LDcgQEAgc3RhdGljIGludCBw cm9jX3Rmb19ibGFja2hvbGVfZGV0ZWN0X3RpbWVvdXQoc3RydWN0IGN0bF90YWJsZSAqdGFibGUs CiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGludCBwcm9jX3RjcF9hdmFpbGFibGVfdWxwKHN0 cnVjdCBjdGxfdGFibGUgKmN0bCwKK3N0YXRpYyBpbnQgcHJvY190Y3BfYXZhaWxhYmxlX3VscChj b25zdCBzdHJ1Y3QgY3RsX3RhYmxlICpjdGwsCiAJCQkJICBpbnQgd3JpdGUsIHZvaWQgKmJ1ZmZl ciwgc2l6ZV90ICpsZW5wLAogCQkJCSAgbG9mZl90ICpwcG9zKQogewpAQCAtMzg2LDcgKzM4Niw3 IEBAIHN0YXRpYyBpbnQgcHJvY190Y3BfYXZhaWxhYmxlX3VscChzdHJ1Y3QgY3RsX3RhYmxlICpj dGwsCiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGludCBwcm9jX3RjcF9laGFzaF9lbnRyaWVz KHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCitzdGF0aWMgaW50IHByb2NfdGNw X2VoYXNoX2VudHJpZXMoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwK IAkJCQkgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJc3Ry dWN0IG5ldCAqbmV0ID0gY29udGFpbmVyX29mKHRhYmxlLT5kYXRhLCBzdHJ1Y3QgbmV0LApAQCAt NDEwLDcgKzQxMCw3IEBAIHN0YXRpYyBpbnQgcHJvY190Y3BfZWhhc2hfZW50cmllcyhzdHJ1Y3Qg Y3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCXJldHVybiBwcm9jX2RvaW50dmVjKCZ0Ymws IHdyaXRlLCBidWZmZXIsIGxlbnAsIHBwb3MpOwogfQogCi1zdGF0aWMgaW50IHByb2NfdWRwX2hh c2hfZW50cmllcyhzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAorc3RhdGljIGlu dCBwcm9jX3VkcF9oYXNoX2VudHJpZXMoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGlu dCB3cml0ZSwKIAkJCQkgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykK IHsKIAlzdHJ1Y3QgbmV0ICpuZXQgPSBjb250YWluZXJfb2YodGFibGUtPmRhdGEsIHN0cnVjdCBu ZXQsCkBAIC00MzQsOCArNDM0LDggQEAgc3RhdGljIGludCBwcm9jX3VkcF9oYXNoX2VudHJpZXMo c3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIH0KIAogI2lmZGVmIENPTkZJR19J UF9ST1VURV9NVUxUSVBBVEgKLXN0YXRpYyBpbnQgcHJvY19maWJfbXVsdGlwYXRoX2hhc2hfcG9s aWN5KHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCi0JCQkJCSAgdm9pZCAqYnVm ZmVyLCBzaXplX3QgKmxlbnAsCitzdGF0aWMgaW50IHByb2NfZmliX211bHRpcGF0aF9oYXNoX3Bv bGljeShjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwKKwkJCQkJICBpbnQgd3JpdGUsIHZv aWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLAogCQkJCQkgIGxvZmZfdCAqcHBvcykKIHsKIAlzdHJ1 Y3QgbmV0ICpuZXQgPSBjb250YWluZXJfb2YodGFibGUtPmRhdGEsIHN0cnVjdCBuZXQsCkBAIC00 NDksOCArNDQ5LDggQEAgc3RhdGljIGludCBwcm9jX2ZpYl9tdWx0aXBhdGhfaGFzaF9wb2xpY3ko c3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIAlyZXR1cm4gcmV0OwogfQogCi1z dGF0aWMgaW50IHByb2NfZmliX211bHRpcGF0aF9oYXNoX2ZpZWxkcyhzdHJ1Y3QgY3RsX3RhYmxl ICp0YWJsZSwgaW50IHdyaXRlLAotCQkJCQkgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLAor c3RhdGljIGludCBwcm9jX2ZpYl9tdWx0aXBhdGhfaGFzaF9maWVsZHMoY29uc3Qgc3RydWN0IGN0 bF90YWJsZSAqdGFibGUsCisJCQkJCSAgaW50IHdyaXRlLCB2b2lkICpidWZmZXIsIHNpemVfdCAq bGVucCwKIAkJCQkJICBsb2ZmX3QgKnBwb3MpCiB7CiAJc3RydWN0IG5ldCAqbmV0OwpkaWZmIC0t Z2l0IGEvbmV0L2lwdjYvYWRkcmNvbmYuYyBiL25ldC9pcHY2L2FkZHJjb25mLmMKaW5kZXggOTZh YjM0OWU4YmE0Li41MTkwYWNjM2M0ZjggMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L2FkZHJjb25mLmMK KysrIGIvbmV0L2lwdjYvYWRkcmNvbmYuYwpAQCAtNjMwOCw3ICs2MzA4LDcgQEAgc3RhdGljIHZv aWQgaXB2Nl9pZmFfbm90aWZ5KGludCBldmVudCwgc3RydWN0IGluZXQ2X2lmYWRkciAqaWZwKQog CiAjaWZkZWYgQ09ORklHX1NZU0NUTAogCi1zdGF0aWMgaW50IGFkZHJjb25mX3N5c2N0bF9mb3J3 YXJkKHN0cnVjdCBjdGxfdGFibGUgKmN0bCwgaW50IHdyaXRlLAorc3RhdGljIGludCBhZGRyY29u Zl9zeXNjdGxfZm9yd2FyZChjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICpjdGwsIGludCB3cml0ZSwK IAkJdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlpbnQgKnZh bHAgPSBjdGwtPmRhdGE7CkBAIC02MzMzLDcgKzYzMzMsNyBAQCBzdGF0aWMgaW50IGFkZHJjb25m X3N5c2N0bF9mb3J3YXJkKHN0cnVjdCBjdGxfdGFibGUgKmN0bCwgaW50IHdyaXRlLAogCXJldHVy biByZXQ7CiB9CiAKLXN0YXRpYyBpbnQgYWRkcmNvbmZfc3lzY3RsX210dShzdHJ1Y3QgY3RsX3Rh YmxlICpjdGwsIGludCB3cml0ZSwKK3N0YXRpYyBpbnQgYWRkcmNvbmZfc3lzY3RsX210dShjb25z dCBzdHJ1Y3QgY3RsX3RhYmxlICpjdGwsIGludCB3cml0ZSwKIAkJdm9pZCAqYnVmZmVyLCBzaXpl X3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlzdHJ1Y3QgaW5ldDZfZGV2ICppZGV2ID0gY3Rs LT5leHRyYTE7CkBAIC02NDA0LDcgKzY0MDQsNyBAQCBzdGF0aWMgaW50IGFkZHJjb25mX2Rpc2Fi bGVfaXB2Nihjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50ICpwLCBpbnQgbmV3Zgog CXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGFkZHJjb25mX3N5c2N0bF9kaXNhYmxlKHN0cnVj dCBjdGxfdGFibGUgKmN0bCwgaW50IHdyaXRlLAorc3RhdGljIGludCBhZGRyY29uZl9zeXNjdGxf ZGlzYWJsZShjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICpjdGwsIGludCB3cml0ZSwKIAkJdm9pZCAq YnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlpbnQgKnZhbHAgPSBjdGwt PmRhdGE7CkBAIC02NDI5LDcgKzY0MjksNyBAQCBzdGF0aWMgaW50IGFkZHJjb25mX3N5c2N0bF9k aXNhYmxlKHN0cnVjdCBjdGxfdGFibGUgKmN0bCwgaW50IHdyaXRlLAogCXJldHVybiByZXQ7CiB9 CiAKLXN0YXRpYyBpbnQgYWRkcmNvbmZfc3lzY3RsX3Byb3h5X25kcChzdHJ1Y3QgY3RsX3RhYmxl ICpjdGwsIGludCB3cml0ZSwKK3N0YXRpYyBpbnQgYWRkcmNvbmZfc3lzY3RsX3Byb3h5X25kcChj b25zdCBzdHJ1Y3QgY3RsX3RhYmxlICpjdGwsIGludCB3cml0ZSwKIAkJdm9pZCAqYnVmZmVyLCBz aXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlpbnQgKnZhbHAgPSBjdGwtPmRhdGE7CkBA IC02NDcwLDcgKzY0NzAsNyBAQCBzdGF0aWMgaW50IGFkZHJjb25mX3N5c2N0bF9wcm94eV9uZHAo c3RydWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsCiAJcmV0dXJuIHJldDsKIH0KIAotc3Rh dGljIGludCBhZGRyY29uZl9zeXNjdGxfYWRkcl9nZW5fbW9kZShzdHJ1Y3QgY3RsX3RhYmxlICpj dGwsIGludCB3cml0ZSwKK3N0YXRpYyBpbnQgYWRkcmNvbmZfc3lzY3RsX2FkZHJfZ2VuX21vZGUo Y29uc3Qgc3RydWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsCiAJCQkJCSB2b2lkICpidWZm ZXIsIHNpemVfdCAqbGVucCwKIAkJCQkJIGxvZmZfdCAqcHBvcykKIHsKQEAgLTY1MzMsNyArNjUz Myw3IEBAIHN0YXRpYyBpbnQgYWRkcmNvbmZfc3lzY3RsX2FkZHJfZ2VuX21vZGUoc3RydWN0IGN0 bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsCiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGludCBh ZGRyY29uZl9zeXNjdGxfc3RhYmxlX3NlY3JldChzdHJ1Y3QgY3RsX3RhYmxlICpjdGwsIGludCB3 cml0ZSwKK3N0YXRpYyBpbnQgYWRkcmNvbmZfc3lzY3RsX3N0YWJsZV9zZWNyZXQoY29uc3Qgc3Ry dWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsCiAJCQkJCSB2b2lkICpidWZmZXIsIHNpemVf dCAqbGVucCwKIAkJCQkJIGxvZmZfdCAqcHBvcykKIHsKQEAgLTY2MDEsNyArNjYwMSw3IEBAIHN0 YXRpYyBpbnQgYWRkcmNvbmZfc3lzY3RsX3N0YWJsZV9zZWNyZXQoc3RydWN0IGN0bF90YWJsZSAq Y3RsLCBpbnQgd3JpdGUsCiB9CiAKIHN0YXRpYwotaW50IGFkZHJjb25mX3N5c2N0bF9pZ25vcmVf cm91dGVzX3dpdGhfbGlua2Rvd24oc3RydWN0IGN0bF90YWJsZSAqY3RsLAoraW50IGFkZHJjb25m X3N5c2N0bF9pZ25vcmVfcm91dGVzX3dpdGhfbGlua2Rvd24oY29uc3Qgc3RydWN0IGN0bF90YWJs ZSAqY3RsLAogCQkJCQkJaW50IHdyaXRlLCB2b2lkICpidWZmZXIsCiAJCQkJCQlzaXplX3QgKmxl bnAsCiAJCQkJCQlsb2ZmX3QgKnBwb3MpCkBAIC02NzAxLDggKzY3MDEsOSBAQCBpbnQgYWRkcmNv bmZfZGlzYWJsZV9wb2xpY3koY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgKnZhbHAs IGludCB2YWwpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgYWRkcmNvbmZfc3lzY3RsX2Rp c2FibGVfcG9saWN5KHN0cnVjdCBjdGxfdGFibGUgKmN0bCwgaW50IHdyaXRlLAotCQkJCSAgIHZv aWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCitzdGF0aWMgaW50IGFkZHJj b25mX3N5c2N0bF9kaXNhYmxlX3BvbGljeShjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICpjdGwsCisJ CQkJCSAgaW50IHdyaXRlLCB2b2lkICpidWZmZXIsCisJCQkJCSAgc2l6ZV90ICpsZW5wLCBsb2Zm X3QgKnBwb3MpCiB7CiAJaW50ICp2YWxwID0gY3RsLT5kYXRhOwogCWludCB2YWwgPSAqdmFscDsK ZGlmZiAtLWdpdCBhL25ldC9pcHY2L25kaXNjLmMgYi9uZXQvaXB2Ni9uZGlzYy5jCmluZGV4IDk0 NWQ1ZjVjYTAzOS4uYWJjZDkzYmVlNWQ3IDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9uZGlzYy5jCisr KyBiL25ldC9pcHY2L25kaXNjLmMKQEAgLTE5NTEsNyArMTk1MSw3IEBAIHN0YXRpYyB2b2lkIG5k aXNjX3dhcm5fZGVwcmVjYXRlZF9zeXNjdGwoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqY3RsLAog CX0KIH0KIAotaW50IG5kaXNjX2lmaW5mb19zeXNjdGxfY2hhbmdlKHN0cnVjdCBjdGxfdGFibGUg KmN0bCwgaW50IHdyaXRlLCB2b2lkICpidWZmZXIsCitpbnQgbmRpc2NfaWZpbmZvX3N5c2N0bF9j aGFuZ2UoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsIHZvaWQgKmJ1ZmZl ciwKIAkJc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJc3RydWN0IG5ldF9kZXZpY2Ug KmRldiA9IGN0bC0+ZXh0cmExOwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvcm91dGUuYyBiL25ldC9p cHY2L3JvdXRlLmMKaW5kZXggMWY0YjkzNWEwZTU3Li5jODM0MDAxM2JmNzIgMTAwNjQ0Ci0tLSBh L25ldC9pcHY2L3JvdXRlLmMKKysrIGIvbmV0L2lwdjYvcm91dGUuYwpAQCAtNjMyOSw3ICs2MzI5 LDcgQEAgc3RhdGljIGludCBydDZfc3RhdHNfc2VxX3Nob3coc3RydWN0IHNlcV9maWxlICpzZXEs IHZvaWQgKnYpCiAKICNpZmRlZiBDT05GSUdfU1lTQ1RMCiAKLXN0YXRpYyBpbnQgaXB2Nl9zeXNj dGxfcnRjYWNoZV9mbHVzaChzdHJ1Y3QgY3RsX3RhYmxlICpjdGwsIGludCB3cml0ZSwKK3N0YXRp YyBpbnQgaXB2Nl9zeXNjdGxfcnRjYWNoZV9mbHVzaChjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICpj dGwsIGludCB3cml0ZSwKIAkJCSAgICAgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2Zm X3QgKnBwb3MpCiB7CiAJc3RydWN0IG5ldCAqbmV0OwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvc3lz Y3RsX25ldF9pcHY2LmMgYi9uZXQvaXB2Ni9zeXNjdGxfbmV0X2lwdjYuYwppbmRleCA3NWRlNTVm OTA3YjAuLmU1YTRjYmMzZThjMyAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvc3lzY3RsX25ldF9pcHY2 LmMKKysrIGIvbmV0L2lwdjYvc3lzY3RsX25ldF9pcHY2LmMKQEAgLTMwLDcgKzMwLDcgQEAgc3Rh dGljIHUzMiBydDZfbXVsdGlwYXRoX2hhc2hfZmllbGRzX2FsbF9tYXNrID0KIHN0YXRpYyB1MzIg aW9hbTZfaWRfbWF4ID0gSU9BTTZfREVGQVVMVF9JRDsKIHN0YXRpYyB1NjQgaW9hbTZfaWRfd2lk ZV9tYXggPSBJT0FNNl9ERUZBVUxUX0lEX1dJREU7CiAKLXN0YXRpYyBpbnQgcHJvY19ydDZfbXVs dGlwYXRoX2hhc2hfcG9saWN5KHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCitz dGF0aWMgaW50IHByb2NfcnQ2X211bHRpcGF0aF9oYXNoX3BvbGljeShjb25zdCBzdHJ1Y3QgY3Rs X3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCQkJCQkgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICps ZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJc3RydWN0IG5ldCAqbmV0OwpAQCAtNDYsNyArNDYsNyBA QCBzdGF0aWMgaW50IHByb2NfcnQ2X211bHRpcGF0aF9oYXNoX3BvbGljeShzdHJ1Y3QgY3RsX3Rh YmxlICp0YWJsZSwgaW50IHdyaXRlLAogfQogCiBzdGF0aWMgaW50Ci1wcm9jX3J0Nl9tdWx0aXBh dGhfaGFzaF9maWVsZHMoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwgdm9pZCAq YnVmZmVyLAorcHJvY19ydDZfbXVsdGlwYXRoX2hhc2hfZmllbGRzKGNvbnN0IHN0cnVjdCBjdGxf dGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsIHZvaWQgKmJ1ZmZlciwKIAkJCSAgICAgICBzaXplX3Qg KmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlzdHJ1Y3QgbmV0ICpuZXQ7CmRpZmYgLS1naXQgYS9u ZXQvbXBscy9hZl9tcGxzLmMgYi9uZXQvbXBscy9hZl9tcGxzLmMKaW5kZXggNWQyMDEyZDFjZjRh Li45ZWQyZGI5OTZlYzEgMTAwNjQ0Ci0tLSBhL25ldC9tcGxzL2FmX21wbHMuYworKysgYi9uZXQv bXBscy9hZl9tcGxzLmMKQEAgLTEzNDcsNyArMTM0Nyw3IEBAIHN0YXRpYyBpbnQgbXBsc19uZXRj b25mX2R1bXBfZGV2Y29uZihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogI2RlZmluZSBNUExTX1BFUkRF Vl9TWVNDVExfT0ZGU0VUKGZpZWxkKQlcCiAJKCYoKHN0cnVjdCBtcGxzX2RldiAqKTApLT5maWVs ZCkKIAotc3RhdGljIGludCBtcGxzX2NvbmZfcHJvYyhzdHJ1Y3QgY3RsX3RhYmxlICpjdGwsIGlu dCB3cml0ZSwKK3N0YXRpYyBpbnQgbXBsc19jb25mX3Byb2MoY29uc3Qgc3RydWN0IGN0bF90YWJs ZSAqY3RsLCBpbnQgd3JpdGUsCiAJCQkgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2Zm X3QgKnBwb3MpCiB7CiAJaW50IG92YWwgPSAqKGludCAqKWN0bC0+ZGF0YTsKQEAgLTI2MDEsNyAr MjYwMSw3IEBAIHN0YXRpYyBpbnQgcmVzaXplX3BsYXRmb3JtX2xhYmVsX3RhYmxlKHN0cnVjdCBu ZXQgKm5ldCwgc2l6ZV90IGxpbWl0KQogCXJldHVybiAtRU5PTUVNOwogfQogCi1zdGF0aWMgaW50 IG1wbHNfcGxhdGZvcm1fbGFiZWxzKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUs CitzdGF0aWMgaW50IG1wbHNfcGxhdGZvcm1fbGFiZWxzKGNvbnN0IHN0cnVjdCBjdGxfdGFibGUg KnRhYmxlLCBpbnQgd3JpdGUsCiAJCQkJdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZf dCAqcHBvcykKIHsKIAlzdHJ1Y3QgbmV0ICpuZXQgPSB0YWJsZS0+ZGF0YTsKZGlmZiAtLWdpdCBh L25ldC9uZXRmaWx0ZXIvaXB2cy9pcF92c19jdGwuYyBiL25ldC9uZXRmaWx0ZXIvaXB2cy9pcF92 c19jdGwuYwppbmRleCA2ODlhYzUyMWVhMmQuLmUzNDg3OWY3YTJmNCAxMDA2NDQKLS0tIGEvbmV0 L25ldGZpbHRlci9pcHZzL2lwX3ZzX2N0bC5jCisrKyBiL25ldC9uZXRmaWx0ZXIvaXB2cy9pcF92 c19jdGwuYwpAQCAtMTg0Niw3ICsxODQ2LDcgQEAgc3RhdGljIGludCBpcF92c196ZXJvX2FsbChz dHJ1Y3QgbmV0bnNfaXB2cyAqaXB2cykKICNpZmRlZiBDT05GSUdfU1lTQ1RMCiAKIHN0YXRpYyBp bnQKLXByb2NfZG9fZGVmZW5zZV9tb2RlKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3Jp dGUsCitwcm9jX2RvX2RlZmVuc2VfbW9kZShjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwg aW50IHdyaXRlLAogCQkgICAgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBw b3MpCiB7CiAJc3RydWN0IG5ldG5zX2lwdnMgKmlwdnMgPSB0YWJsZS0+ZXh0cmEyOwpAQCAtMTg3 Myw3ICsxODczLDcgQEAgcHJvY19kb19kZWZlbnNlX21vZGUoc3RydWN0IGN0bF90YWJsZSAqdGFi bGUsIGludCB3cml0ZSwKIH0KIAogc3RhdGljIGludAotcHJvY19kb19zeW5jX3RocmVzaG9sZChz dHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAorcHJvY19kb19zeW5jX3RocmVzaG9s ZChjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCQkgICAgICAgdm9p ZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlzdHJ1Y3QgbmV0bnNf aXB2cyAqaXB2cyA9IHRhYmxlLT5leHRyYTI7CkBAIC0xOTAxLDcgKzE5MDEsNyBAQCBwcm9jX2Rv X3N5bmNfdGhyZXNob2xkKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiB9CiAK IHN0YXRpYyBpbnQKLXByb2NfZG9fc3luY19wb3J0cyhzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwg aW50IHdyaXRlLAorcHJvY19kb19zeW5jX3BvcnRzKGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKnRh YmxlLCBpbnQgd3JpdGUsCiAJCSAgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3Qg KnBwb3MpCiB7CiAJaW50ICp2YWxwID0gdGFibGUtPmRhdGE7CkBAIC0xOTg0LDcgKzE5ODQsNyBA QCBzdGF0aWMgaW50IGlwdnNfcHJvY19lc3RfY3B1bWFza19nZXQoY29uc3Qgc3RydWN0IGN0bF90 YWJsZSAqdGFibGUsCiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGludCBpcHZzX3Byb2NfZXN0 X2NwdWxpc3Qoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKK3N0YXRpYyBpbnQg aXB2c19wcm9jX2VzdF9jcHVsaXN0KGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQg d3JpdGUsCiAJCQkJIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7 CiAJaW50IHJldDsKQEAgLTIwMTEsNyArMjAxMSw3IEBAIHN0YXRpYyBpbnQgaXB2c19wcm9jX2Vz dF9jcHVsaXN0KHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJcmV0dXJuIHJl dDsKIH0KIAotc3RhdGljIGludCBpcHZzX3Byb2NfZXN0X25pY2Uoc3RydWN0IGN0bF90YWJsZSAq dGFibGUsIGludCB3cml0ZSwKK3N0YXRpYyBpbnQgaXB2c19wcm9jX2VzdF9uaWNlKGNvbnN0IHN0 cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJCQkgICAgICB2b2lkICpidWZmZXIs IHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQogewogCXN0cnVjdCBuZXRuc19pcHZzICppcHZz ID0gdGFibGUtPmV4dHJhMjsKQEAgLTIwNDEsNyArMjA0MSw3IEBAIHN0YXRpYyBpbnQgaXB2c19w cm9jX2VzdF9uaWNlKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJcmV0dXJu IHJldDsKIH0KIAotc3RhdGljIGludCBpcHZzX3Byb2NfcnVuX2VzdGltYXRpb24oc3RydWN0IGN0 bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKK3N0YXRpYyBpbnQgaXB2c19wcm9jX3J1bl9lc3Rp bWF0aW9uKGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJCQkJICAg IHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJc3RydWN0IG5l dG5zX2lwdnMgKmlwdnMgPSB0YWJsZS0+ZXh0cmEyOwpkaWZmIC0tZ2l0IGEvbmV0L25ldGZpbHRl ci9uZl9jb25udHJhY2tfc3RhbmRhbG9uZS5jIGIvbmV0L25ldGZpbHRlci9uZl9jb25udHJhY2tf c3RhbmRhbG9uZS5jCmluZGV4IGJiOWRlYTY3NmVjMS4uM2Q1Mjg0NjM5Y2E4IDEwMDY0NAotLS0g YS9uZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19zdGFuZGFsb25lLmMKKysrIGIvbmV0L25ldGZp bHRlci9uZl9jb25udHJhY2tfc3RhbmRhbG9uZS5jCkBAIC01MjcsNyArNTI3LDcgQEAgRVhQT1JU X1NZTUJPTF9HUEwobmZfY29ubnRyYWNrX2NvdW50KTsKIHN0YXRpYyB1bnNpZ25lZCBpbnQgbmZf Y29ubnRyYWNrX2h0YWJsZV9zaXplX3VzZXIgX19yZWFkX21vc3RseTsKIAogc3RhdGljIGludAot bmZfY29ubnRyYWNrX2hhc2hfc3lzY3RsKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3Jp dGUsCituZl9jb25udHJhY2tfaGFzaF9zeXNjdGwoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqdGFi bGUsIGludCB3cml0ZSwKIAkJCSB2b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCwgbG9mZl90ICpw cG9zKQogewogCWludCByZXQ7CmRpZmYgLS1naXQgYS9uZXQvbmV0ZmlsdGVyL25mX2hvb2tzX2x3 dHVubmVsLmMgYi9uZXQvbmV0ZmlsdGVyL25mX2hvb2tzX2x3dHVubmVsLmMKaW5kZXggMDBlODlm ZmQ3OGY2Li4zZDIzN2Y5Y2M4ZWUgMTAwNjQ0Ci0tLSBhL25ldC9uZXRmaWx0ZXIvbmZfaG9va3Nf bHd0dW5uZWwuYworKysgYi9uZXQvbmV0ZmlsdGVyL25mX2hvb2tzX2x3dHVubmVsLmMKQEAgLTI1 LDcgKzI1LDcgQEAgc3RhdGljIGlubGluZSBpbnQgbmZfaG9va3NfbHd0dW5uZWxfc2V0KGludCBl bmFibGUpCiB9CiAKICNpZmRlZiBDT05GSUdfU1lTQ1RMCi1pbnQgbmZfaG9va3NfbHd0dW5uZWxf c3lzY3RsX2hhbmRsZXIoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKK2ludCBu Zl9ob29rc19sd3R1bm5lbF9zeXNjdGxfaGFuZGxlcihjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0 YWJsZSwgaW50IHdyaXRlLAogCQkJCSAgICAgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxv ZmZfdCAqcHBvcykKIHsKIAlpbnQgcHJvY19uZl9ob29rc19sd3R1bm5lbF9lbmFibGVkID0gMDsK ZGlmZiAtLWdpdCBhL25ldC9uZXRmaWx0ZXIvbmZfbG9nLmMgYi9uZXQvbmV0ZmlsdGVyL25mX2xv Zy5jCmluZGV4IGVmZWRkMmYxM2FjNy4uYThlZGMzZTc1ZGI5IDEwMDY0NAotLS0gYS9uZXQvbmV0 ZmlsdGVyL25mX2xvZy5jCisrKyBiL25ldC9uZXRmaWx0ZXIvbmZfbG9nLmMKQEAgLTQwOSw3ICs0 MDksNyBAQCBzdGF0aWMgc3RydWN0IGN0bF90YWJsZSBuZl9sb2dfc3lzY3RsX2Z0YWJsZVtdID0g ewogCXsgfQogfTsKIAotc3RhdGljIGludCBuZl9sb2dfcHJvY19kb3N0cmluZyhzdHJ1Y3QgY3Rs X3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAorc3RhdGljIGludCBuZl9sb2dfcHJvY19kb3N0cmlu Zyhjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCQkJIHZvaWQgKmJ1 ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJY29uc3Qgc3RydWN0IG5mX2xv Z2dlciAqbG9nZ2VyOwpkaWZmIC0tZ2l0IGEvbmV0L3Bob25ldC9zeXNjdGwuYyBiL25ldC9waG9u ZXQvc3lzY3RsLmMKaW5kZXggMGQwYmY0MTM4MWMyLi5lNTlkMTZlNjczNzYgMTAwNjQ0Ci0tLSBh L25ldC9waG9uZXQvc3lzY3RsLmMKKysrIGIvbmV0L3Bob25ldC9zeXNjdGwuYwpAQCAtNDgsNyAr NDgsNyBAQCB2b2lkIHBob25ldF9nZXRfbG9jYWxfcG9ydF9yYW5nZShpbnQgKm1pbiwgaW50ICpt YXgpCiAJfSB3aGlsZSAocmVhZF9zZXFyZXRyeSgmbG9jYWxfcG9ydF9yYW5nZV9sb2NrLCBzZXEp KTsKIH0KIAotc3RhdGljIGludCBwcm9jX2xvY2FsX3BvcnRfcmFuZ2Uoc3RydWN0IGN0bF90YWJs ZSAqdGFibGUsIGludCB3cml0ZSwKK3N0YXRpYyBpbnQgcHJvY19sb2NhbF9wb3J0X3JhbmdlKGNv bnN0IHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJCQkJIHZvaWQgKmJ1ZmZl ciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJaW50IHJldDsKZGlmZiAtLWdpdCBh L25ldC9yZHMvdGNwLmMgYi9uZXQvcmRzL3RjcC5jCmluZGV4IDJkYmE3NTA1YjQxNC4uZDIzZWE4 YzExOTAyIDEwMDY0NAotLS0gYS9uZXQvcmRzL3RjcC5jCisrKyBiL25ldC9yZHMvdGNwLmMKQEAg LTYxLDcgKzYxLDcgQEAgc3RhdGljIGF0b21pY190IHJkc190Y3BfdW5sb2FkaW5nID0gQVRPTUlD X0lOSVQoMCk7CiAKIHN0YXRpYyBzdHJ1Y3Qga21lbV9jYWNoZSAqcmRzX3RjcF9jb25uX3NsYWI7 CiAKLXN0YXRpYyBpbnQgcmRzX3RjcF9za2J1Zl9oYW5kbGVyKHN0cnVjdCBjdGxfdGFibGUgKmN0 bCwgaW50IHdyaXRlLAorc3RhdGljIGludCByZHNfdGNwX3NrYnVmX2hhbmRsZXIoY29uc3Qgc3Ry dWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsCiAJCQkJIHZvaWQgKmJ1ZmZlciwgc2l6ZV90 ICpsZW5wLCBsb2ZmX3QgKmZwb3MpOwogCiBzdGF0aWMgaW50IHJkc190Y3BfbWluX3NuZGJ1ZiA9 IFNPQ0tfTUlOX1NOREJVRjsKQEAgLTY4Myw3ICs2ODMsNyBAQCBzdGF0aWMgdm9pZCByZHNfdGNw X3N5c2N0bF9yZXNldChzdHJ1Y3QgbmV0ICpuZXQpCiAJc3Bpbl91bmxvY2tfaXJxKCZyZHNfdGNw X2Nvbm5fbG9jayk7CiB9CiAKLXN0YXRpYyBpbnQgcmRzX3RjcF9za2J1Zl9oYW5kbGVyKHN0cnVj dCBjdGxfdGFibGUgKmN0bCwgaW50IHdyaXRlLAorc3RhdGljIGludCByZHNfdGNwX3NrYnVmX2hh bmRsZXIoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsCiAJCQkJIHZvaWQg KmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKmZwb3MpCiB7CiAJc3RydWN0IG5ldCAqbmV0 ID0gY3VycmVudC0+bnNwcm94eS0+bmV0X25zOwpkaWZmIC0tZ2l0IGEvbmV0L3NjdHAvc3lzY3Rs LmMgYi9uZXQvc2N0cC9zeXNjdGwuYwppbmRleCAyNWJkZjE3YzcyNjIuLjNhZjVkN2IwNWFlOSAx MDA2NDQKLS0tIGEvbmV0L3NjdHAvc3lzY3RsLmMKKysrIGIvbmV0L3NjdHAvc3lzY3RsLmMKQEAg LTQzLDE5ICs0MywxOSBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyBtYXhfYXV0b2Nsb3NlX21heCA9 CiAJKE1BWF9TQ0hFRFVMRV9USU1FT1VUIC8gSFogPiBVSU5UX01BWCkKIAk/IFVJTlRfTUFYIDog TUFYX1NDSEVEVUxFX1RJTUVPVVQgLyBIWjsKIAotc3RhdGljIGludCBwcm9jX3NjdHBfZG9faG1h Y19hbGcoc3RydWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsCitzdGF0aWMgaW50IHByb2Nf c2N0cF9kb19obWFjX2FsZyhjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICpjdGwsIGludCB3cml0ZSwK IAkJCQkgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcyk7Ci1zdGF0aWMg aW50IHByb2Nfc2N0cF9kb19ydG9fbWluKHN0cnVjdCBjdGxfdGFibGUgKmN0bCwgaW50IHdyaXRl LAorc3RhdGljIGludCBwcm9jX3NjdHBfZG9fcnRvX21pbihjb25zdCBzdHJ1Y3QgY3RsX3RhYmxl ICpjdGwsIGludCB3cml0ZSwKIAkJCQl2b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCwgbG9mZl90 ICpwcG9zKTsKLXN0YXRpYyBpbnQgcHJvY19zY3RwX2RvX3J0b19tYXgoc3RydWN0IGN0bF90YWJs ZSAqY3RsLCBpbnQgd3JpdGUsIHZvaWQgKmJ1ZmZlciwKLQkJCQlzaXplX3QgKmxlbnAsIGxvZmZf dCAqcHBvcyk7Ci1zdGF0aWMgaW50IHByb2Nfc2N0cF9kb191ZHBfcG9ydChzdHJ1Y3QgY3RsX3Rh YmxlICpjdGwsIGludCB3cml0ZSwgdm9pZCAqYnVmZmVyLAotCQkJCSBzaXplX3QgKmxlbnAsIGxv ZmZfdCAqcHBvcyk7Ci1zdGF0aWMgaW50IHByb2Nfc2N0cF9kb19hbHBoYV9iZXRhKHN0cnVjdCBj dGxfdGFibGUgKmN0bCwgaW50IHdyaXRlLAorc3RhdGljIGludCBwcm9jX3NjdHBfZG9fcnRvX21h eChjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICpjdGwsIGludCB3cml0ZSwKKwkJCQl2b2lkICpidWZm ZXIsIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKTsKK3N0YXRpYyBpbnQgcHJvY19zY3RwX2Rv X3VkcF9wb3J0KGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKmN0bCwgaW50IHdyaXRlLAorCQkJCSB2 b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKTsKK3N0YXRpYyBpbnQgcHJv Y19zY3RwX2RvX2FscGhhX2JldGEoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3Jp dGUsCiAJCQkJICAgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcyk7Ci1z dGF0aWMgaW50IHByb2Nfc2N0cF9kb19hdXRoKHN0cnVjdCBjdGxfdGFibGUgKmN0bCwgaW50IHdy aXRlLAorc3RhdGljIGludCBwcm9jX3NjdHBfZG9fYXV0aChjb25zdCBzdHJ1Y3QgY3RsX3RhYmxl ICpjdGwsIGludCB3cml0ZSwKIAkJCSAgICAgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxv ZmZfdCAqcHBvcyk7Ci1zdGF0aWMgaW50IHByb2Nfc2N0cF9kb19wcm9iZV9pbnRlcnZhbChzdHJ1 Y3QgY3RsX3RhYmxlICpjdGwsIGludCB3cml0ZSwKK3N0YXRpYyBpbnQgcHJvY19zY3RwX2RvX3By b2JlX2ludGVydmFsKGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKmN0bCwgaW50IHdyaXRlLAogCQkJ CSAgICAgICB2b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKTsKIAogc3Rh dGljIHN0cnVjdCBjdGxfdGFibGUgc2N0cF90YWJsZVtdID0gewpAQCAtMzg4LDcgKzM4OCw3IEBA IHN0YXRpYyBzdHJ1Y3QgY3RsX3RhYmxlIHNjdHBfbmV0X3RhYmxlW10gPSB7CiAJeyAvKiBzZW50 aW5lbCAqLyB9CiB9OwogCi1zdGF0aWMgaW50IHByb2Nfc2N0cF9kb19obWFjX2FsZyhzdHJ1Y3Qg Y3RsX3RhYmxlICpjdGwsIGludCB3cml0ZSwKK3N0YXRpYyBpbnQgcHJvY19zY3RwX2RvX2htYWNf YWxnKGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKmN0bCwgaW50IHdyaXRlLAogCQkJCSB2b2lkICpi dWZmZXIsIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQogewogCXN0cnVjdCBuZXQgKm5ldCA9 IGN1cnJlbnQtPm5zcHJveHktPm5ldF9uczsKQEAgLTQzMyw3ICs0MzMsNyBAQCBzdGF0aWMgaW50 IHByb2Nfc2N0cF9kb19obWFjX2FsZyhzdHJ1Y3QgY3RsX3RhYmxlICpjdGwsIGludCB3cml0ZSwK IAlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgaW50IHByb2Nfc2N0cF9kb19ydG9fbWluKHN0cnVj dCBjdGxfdGFibGUgKmN0bCwgaW50IHdyaXRlLAorc3RhdGljIGludCBwcm9jX3NjdHBfZG9fcnRv X21pbihjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICpjdGwsIGludCB3cml0ZSwKIAkJCQl2b2lkICpi dWZmZXIsIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQogewogCXN0cnVjdCBuZXQgKm5ldCA9 IGN1cnJlbnQtPm5zcHJveHktPm5ldF9uczsKQEAgLTQ2MSw3ICs0NjEsNyBAQCBzdGF0aWMgaW50 IHByb2Nfc2N0cF9kb19ydG9fbWluKHN0cnVjdCBjdGxfdGFibGUgKmN0bCwgaW50IHdyaXRlLAog CXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyBpbnQgcHJvY19zY3RwX2RvX3J0b19tYXgoc3RydWN0 IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsCitzdGF0aWMgaW50IHByb2Nfc2N0cF9kb19ydG9f bWF4KGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgKmN0bCwgaW50IHdyaXRlLAogCQkJCXZvaWQgKmJ1 ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJc3RydWN0IG5ldCAqbmV0ID0g Y3VycmVudC0+bnNwcm94eS0+bmV0X25zOwpAQCAtNDg5LDcgKzQ4OSw3IEBAIHN0YXRpYyBpbnQg cHJvY19zY3RwX2RvX3J0b19tYXgoc3RydWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsCiAJ cmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGludCBwcm9jX3NjdHBfZG9fYWxwaGFfYmV0YShzdHJ1 Y3QgY3RsX3RhYmxlICpjdGwsIGludCB3cml0ZSwKK3N0YXRpYyBpbnQgcHJvY19zY3RwX2RvX2Fs cGhhX2JldGEoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsCiAJCQkJICAg dm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlpZiAod3JpdGUp CkBAIC00OTksNyArNDk5LDcgQEAgc3RhdGljIGludCBwcm9jX3NjdHBfZG9fYWxwaGFfYmV0YShz dHJ1Y3QgY3RsX3RhYmxlICpjdGwsIGludCB3cml0ZSwKIAlyZXR1cm4gcHJvY19kb2ludHZlY19t aW5tYXgoY3RsLCB3cml0ZSwgYnVmZmVyLCBsZW5wLCBwcG9zKTsKIH0KIAotc3RhdGljIGludCBw cm9jX3NjdHBfZG9fYXV0aChzdHJ1Y3QgY3RsX3RhYmxlICpjdGwsIGludCB3cml0ZSwKK3N0YXRp YyBpbnQgcHJvY19zY3RwX2RvX2F1dGgoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqY3RsLCBpbnQg d3JpdGUsCiAJCQkgICAgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3Mp CiB7CiAJc3RydWN0IG5ldCAqbmV0ID0gY3VycmVudC0+bnNwcm94eS0+bmV0X25zOwpAQCAtNTI4 LDcgKzUyOCw3IEBAIHN0YXRpYyBpbnQgcHJvY19zY3RwX2RvX2F1dGgoc3RydWN0IGN0bF90YWJs ZSAqY3RsLCBpbnQgd3JpdGUsCiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGludCBwcm9jX3Nj dHBfZG9fdWRwX3BvcnQoc3RydWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsCitzdGF0aWMg aW50IHByb2Nfc2N0cF9kb191ZHBfcG9ydChjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICpjdGwsIGlu dCB3cml0ZSwKIAkJCQkgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykK IHsKIAlzdHJ1Y3QgbmV0ICpuZXQgPSBjdXJyZW50LT5uc3Byb3h5LT5uZXRfbnM7CkBAIC01Njks NyArNTY5LDcgQEAgc3RhdGljIGludCBwcm9jX3NjdHBfZG9fdWRwX3BvcnQoc3RydWN0IGN0bF90 YWJsZSAqY3RsLCBpbnQgd3JpdGUsCiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGludCBwcm9j X3NjdHBfZG9fcHJvYmVfaW50ZXJ2YWwoc3RydWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUs CitzdGF0aWMgaW50IHByb2Nfc2N0cF9kb19wcm9iZV9pbnRlcnZhbChjb25zdCBzdHJ1Y3QgY3Rs X3RhYmxlICpjdGwsIGludCB3cml0ZSwKIAkJCQkgICAgICAgdm9pZCAqYnVmZmVyLCBzaXplX3Qg KmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlzdHJ1Y3QgbmV0ICpuZXQgPSBjdXJyZW50LT5uc3By b3h5LT5uZXRfbnM7CmRpZmYgLS1naXQgYS9uZXQvc3VucnBjL3N5c2N0bC5jIGIvbmV0L3N1bnJw Yy9zeXNjdGwuYwppbmRleCA5Mzk0MWFiMTI1NDkuLjY3MjA2N2VmYWNlZiAxMDA2NDQKLS0tIGEv bmV0L3N1bnJwYy9zeXNjdGwuYworKysgYi9uZXQvc3VucnBjL3N5c2N0bC5jCkBAIC00MCw3ICs0 MCw3IEBAIEVYUE9SVF9TWU1CT0xfR1BMKG5sbV9kZWJ1Zyk7CiAKICNpZiBJU19FTkFCTEVEKENP TkZJR19TVU5SUENfREVCVUcpCiAKLXN0YXRpYyBpbnQgcHJvY19kb194cHJ0KHN0cnVjdCBjdGxf dGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCitzdGF0aWMgaW50IHByb2NfZG9feHBydChjb25zdCBz dHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCQkJdm9pZCAqYnVmZmVyLCBzaXpl X3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAljaGFyIHRtcGJ1ZlsyNTZdOwpAQCAtNjIsOCAr NjIsOCBAQCBzdGF0aWMgaW50IHByb2NfZG9feHBydChzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwg aW50IHdyaXRlLAogfQogCiBzdGF0aWMgaW50Ci1wcm9jX2RvZGVidWcoc3RydWN0IGN0bF90YWJs ZSAqdGFibGUsIGludCB3cml0ZSwgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsCi0JICAgICBs b2ZmX3QgKnBwb3MpCitwcm9jX2RvZGVidWcoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAqdGFibGUs IGludCB3cml0ZSwgdm9pZCAqYnVmZmVyLAorCSAgICAgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBw b3MpCiB7CiAJY2hhcgkJdG1wYnVmWzIwXSwgKnMgPSBOVUxMOwogCWNoYXIgKnA7CmRpZmYgLS1n aXQgYS9uZXQvc3VucnBjL3hwcnRyZG1hL3N2Y19yZG1hLmMgYi9uZXQvc3VucnBjL3hwcnRyZG1h L3N2Y19yZG1hLmMKaW5kZXggZjg2OTcwNzMzZWIwLi4wOTgzMmU0OTQ1YTMgMTAwNjQ0Ci0tLSBh L25ldC9zdW5ycGMveHBydHJkbWEvc3ZjX3JkbWEuYworKysgYi9uZXQvc3VucnBjL3hwcnRyZG1h L3N2Y19yZG1hLmMKQEAgLTc0LDcgKzc0LDcgQEAgZW51bSB7CiAJU1ZDUkRNQV9DT1VOVEVSX0JV RlNJWgk9IHNpemVvZih1bnNpZ25lZCBsb25nIGxvbmcpLAogfTsKIAotc3RhdGljIGludCBzdmNy ZG1hX2NvdW50ZXJfaGFuZGxlcihzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAor c3RhdGljIGludCBzdmNyZG1hX2NvdW50ZXJfaGFuZGxlcihjb25zdCBzdHJ1Y3QgY3RsX3RhYmxl ICp0YWJsZSwgaW50IHdyaXRlLAogCQkJCSAgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBs b2ZmX3QgKnBwb3MpCiB7CiAJc3RydWN0IHBlcmNwdV9jb3VudGVyICpzdGF0ID0gKHN0cnVjdCBw ZXJjcHVfY291bnRlciAqKXRhYmxlLT5kYXRhOwpkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvYXBwYXJt b3IvbHNtLmMgYi9zZWN1cml0eS9hcHBhcm1vci9sc20uYwppbmRleCA2MjM5Nzc3MDkwYzQuLjE2 NTY4YjZkNTg5ZCAxMDA2NDQKLS0tIGEvc2VjdXJpdHkvYXBwYXJtb3IvbHNtLmMKKysrIGIvc2Vj dXJpdHkvYXBwYXJtb3IvbHNtLmMKQEAgLTIwMjksNyArMjAyOSw3IEBAIHN0YXRpYyBpbnQgX19p bml0IGFsbG9jX2J1ZmZlcnModm9pZCkKIH0KIAogI2lmZGVmIENPTkZJR19TWVNDVEwKLXN0YXRp YyBpbnQgYXBwYXJtb3JfZG9pbnR2ZWMoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0 ZSwKK3N0YXRpYyBpbnQgYXBwYXJtb3JfZG9pbnR2ZWMoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAq dGFibGUsIGludCB3cml0ZSwKIAkJCSAgICAgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxv ZmZfdCAqcHBvcykKIHsKIAlpZiAoIWFhX2N1cnJlbnRfcG9saWN5X2FkbWluX2NhcGFibGUoTlVM TCkpCmRpZmYgLS1naXQgYS9zZWN1cml0eS9taW5fYWRkci5jIGIvc2VjdXJpdHkvbWluX2FkZHIu YwppbmRleCA4OGM5YTZhMjFmNDcuLjBjZTI2N2MwNDFhYiAxMDA2NDQKLS0tIGEvc2VjdXJpdHkv bWluX2FkZHIuYworKysgYi9zZWN1cml0eS9taW5fYWRkci5jCkBAIC0yOSw3ICsyOSw3IEBAIHN0 YXRpYyB2b2lkIHVwZGF0ZV9tbWFwX21pbl9hZGRyKHZvaWQpCiAgKiBzeXNjdGwgaGFuZGxlciB3 aGljaCBqdXN0IHNldHMgZGFjX21tYXBfbWluX2FkZHIgPSB0aGUgbmV3IHZhbHVlIGFuZCB0aGVu CiAgKiBjYWxscyB1cGRhdGVfbW1hcF9taW5fYWRkcigpIHNvIG5vbiBNQVBfRklYRUQgaGludHMg Z2V0IHJvdW5kZWQgcHJvcGVybHkKICAqLwotaW50IG1tYXBfbWluX2FkZHJfaGFuZGxlcihzdHJ1 Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAoraW50IG1tYXBfbWluX2FkZHJfaGFuZGxl cihjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCQkJICB2b2lkICpi dWZmZXIsIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKQogewogCWludCByZXQ7CmRpZmYgLS1n aXQgYS9zZWN1cml0eS95YW1hL3lhbWFfbHNtLmMgYi9zZWN1cml0eS95YW1hL3lhbWFfbHNtLmMK aW5kZXggYjY2ODRhMDc0YTU5Li41Yjc2MmY0NTI5NzcgMTAwNjQ0Ci0tLSBhL3NlY3VyaXR5L3lh bWEveWFtYV9sc20uYworKysgYi9zZWN1cml0eS95YW1hL3lhbWFfbHNtLmMKQEAgLTQzNSw3ICs0 MzUsNyBAQCBzdGF0aWMgc3RydWN0IHNlY3VyaXR5X2hvb2tfbGlzdCB5YW1hX2hvb2tzW10gX19y b19hZnRlcl9pbml0ID0gewogfTsKIAogI2lmZGVmIENPTkZJR19TWVNDVEwKLXN0YXRpYyBpbnQg eWFtYV9kb2ludHZlY19taW5tYXgoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwK K3N0YXRpYyBpbnQgeWFtYV9kb2ludHZlY19taW5tYXgoY29uc3Qgc3RydWN0IGN0bF90YWJsZSAq dGFibGUsIGludCB3cml0ZSwKIAkJCQl2b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCwgbG9mZl90 ICpwcG9zKQogewogCXN0cnVjdCBjdGxfdGFibGUgdGFibGVfY29weTsKCi0tIAoyLjQ0LjAKCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1yaXNj diBtYWlsaW5nIGxpc3QKbGludXgtcmlzY3ZAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlz dHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXJpc2N2Cg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.ozlabs.org (lists.ozlabs.org [112.213.38.117]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 331BEC4345F for ; Tue, 23 Apr 2024 08:06:02 +0000 (UTC) Authentication-Results: lists.ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=weissschuh.net header.i=@weissschuh.net header.a=rsa-sha256 header.s=mail header.b=uagAM0++; dkim-atps=neutral Received: from boromir.ozlabs.org (localhost [IPv6:::1]) by lists.ozlabs.org (Postfix) with ESMTP id 4VNvnh64CWz3dTn for ; Tue, 23 Apr 2024 18:06:00 +1000 (AEST) Authentication-Results: lists.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=weissschuh.net header.i=@weissschuh.net header.a=rsa-sha256 header.s=mail header.b=uagAM0++; dkim-atps=neutral Authentication-Results: lists.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=weissschuh.net (client-ip=159.69.126.157; helo=todd.t-8ch.de; envelope-from=linux@weissschuh.net; receiver=lists.ozlabs.org) Received: from todd.t-8ch.de (todd.t-8ch.de [159.69.126.157]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 4VNvkQ1QPRz3cTg for ; Tue, 23 Apr 2024 18:03:10 +1000 (AEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=weissschuh.net; s=mail; t=1713858962; bh=FVysOkPE/qiRLZCuxnkxsMnTX0foyNtgrbyactsZP2Y=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=uagAM0++rugBquWWZc12oBXw1p0sZNjLZ2P0BRn3a7mK4KfkLqVjep/MFqJY/7LAF 9caAdhgcu3xO8svnWs6UiBpEw54gG1sTupswjoZ3XrmizzbipFrDAq+6AqF37skYwx BR63gR5QqQWcerDyrgrTLAOjD+xHRp30erwz41hs= From: =?utf-8?q?Thomas_Wei=C3=9Fschuh?= Date: Tue, 23 Apr 2024 09:54:46 +0200 Subject: [PATCH v3 11/11] sysctl: treewide: constify the ctl_table argument of handlers MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit Message-Id: <20240423-sysctl-const-handler-v3-11-e0beccb836e2@weissschuh.net> References: <20240423-sysctl-const-handler-v3-0-e0beccb836e2@weissschuh.net> In-Reply-To: <20240423-sysctl-const-handler-v3-0-e0beccb836e2@weissschuh.net> To: Luis Chamberlain , Joel Granados , Kees Cook X-Mailer: b4 0.13.0 X-Developer-Signature: v=1; a=ed25519-sha256; t=1713858961; l=108174; i=linux@weissschuh.net; s=20221212; h=from:subject:message-id; bh=FVysOkPE/qiRLZCuxnkxsMnTX0foyNtgrbyactsZP2Y=; b=5wEbCfrcoLTsgxV7Uxepjuju0i3n3dX4eEy0jjS4qXCKmY0HYJZJRKgtvn3SvZv68yUf+15PI DCOFgsjg7ChC0MoGza+B8re+o9KUvCk6GNeS16w70HPuLDKhvC0QRKO X-Developer-Key: i=linux@weissschuh.net; a=ed25519; pk=KcycQgFPX2wGR5azS7RhpBqedglOZVgRPfdFSPB1LNw= X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Dave Chinner , =?utf-8?q?Thomas_Wei=C3=9Fschuh?= , linux-mm@kvack.org, Eric Dumazet , linux-hardening@vger.kernel.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, rds-devel@oss.oracle.com, linux-rdma@vger.kernel.org, linux-sctp@vger.kernel.org, lvs-devel@vger.kernel.org, coreteam@netfilter.org, linux-trace-kernel@vger.kernel.org, bridge@lists.linux.dev, apparmor@lists.ubuntu.com, linux-xfs@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-nfs@vger.kernel.org, netdev@vger.kernel.org, kexec@lists.infradead.org, linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, linux-security-module@vger.kernel.org, netfilter-devel@vger.kernel.org, linux-fsdevel@vger.kernel.org, bpf@vger.kernel.org, linuxppc-dev@lists.ozlabs.org Errors-To: linuxppc-dev-bounces+linuxppc-dev=archiver.kernel.org@lists.ozlabs.org Sender: "Linuxppc-dev" Adapt the proc_hander function signature to make it clear that handlers are not supposed to modify their ctl_table argument. This is a prerequisite to moving the static ctl_table structs into .rodata. By migrating all handlers at once a lengthy transition can be avoided. The patch was mostly generated by coccinelle with the following script: @@ identifier func, ctl, write, buffer, lenp, ppos; @@ int func( - struct ctl_table *ctl, + const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { ... } In addition to the scripted changes some other changes are done: * the typedef proc_handler is adapted * the prototypes of non-static handler are adapted * kernel/seccomp.c:{read,write}_actions_logged() and kernel/watchdog.c:proc_watchdog_common() are adapted as they need to adapted together with the handlers for type-consistency reasons Signed-off-by: Thomas Weißschuh --- arch/arm64/kernel/armv8_deprecated.c | 2 +- arch/arm64/kernel/fpsimd.c | 2 +- arch/s390/appldata/appldata_base.c | 10 ++--- arch/s390/kernel/debug.c | 2 +- arch/s390/kernel/topology.c | 2 +- arch/s390/mm/cmm.c | 6 +-- arch/x86/kernel/itmt.c | 2 +- drivers/cdrom/cdrom.c | 4 +- drivers/char/random.c | 6 +-- drivers/macintosh/mac_hid.c | 2 +- drivers/net/vrf.c | 2 +- drivers/parport/procfs.c | 12 +++--- drivers/perf/arm_pmuv3.c | 4 +- drivers/perf/riscv_pmu_sbi.c | 2 +- fs/coredump.c | 2 +- fs/dcache.c | 4 +- fs/drop_caches.c | 2 +- fs/exec.c | 4 +- fs/file_table.c | 4 +- fs/fs-writeback.c | 2 +- fs/inode.c | 4 +- fs/pipe.c | 2 +- fs/quota/dquot.c | 2 +- fs/xfs/xfs_sysctl.c | 6 +-- include/linux/ftrace.h | 4 +- include/linux/mm.h | 8 ++-- include/linux/perf_event.h | 6 +-- include/linux/security.h | 2 +- include/linux/sysctl.h | 34 ++++++++-------- include/linux/vmstat.h | 6 +-- include/linux/writeback.h | 2 +- include/net/ndisc.h | 2 +- include/net/neighbour.h | 6 +-- include/net/netfilter/nf_hooks_lwtunnel.h | 2 +- ipc/ipc_sysctl.c | 8 ++-- kernel/bpf/syscall.c | 4 +- kernel/delayacct.c | 4 +- kernel/events/callchain.c | 2 +- kernel/events/core.c | 4 +- kernel/fork.c | 2 +- kernel/hung_task.c | 6 +-- kernel/kexec_core.c | 2 +- kernel/kprobes.c | 2 +- kernel/latencytop.c | 4 +- kernel/pid_namespace.c | 2 +- kernel/pid_sysctl.h | 2 +- kernel/printk/internal.h | 2 +- kernel/printk/printk.c | 2 +- kernel/printk/sysctl.c | 5 ++- kernel/sched/core.c | 8 ++-- kernel/sched/rt.c | 16 ++++---- kernel/sched/topology.c | 2 +- kernel/seccomp.c | 10 ++--- kernel/stackleak.c | 2 +- kernel/sysctl.c | 68 +++++++++++++++---------------- kernel/time/timer.c | 2 +- kernel/trace/ftrace.c | 2 +- kernel/trace/trace.c | 2 +- kernel/trace/trace_events_user.c | 2 +- kernel/trace/trace_stack.c | 2 +- kernel/umh.c | 2 +- kernel/utsname_sysctl.c | 2 +- kernel/watchdog.c | 12 +++--- mm/compaction.c | 6 +-- mm/hugetlb.c | 8 ++-- mm/page-writeback.c | 18 ++++---- mm/page_alloc.c | 14 +++---- mm/util.c | 12 +++--- mm/vmstat.c | 4 +- net/bridge/br_netfilter_hooks.c | 2 +- net/core/neighbour.c | 18 ++++---- net/core/sysctl_net_core.c | 20 ++++----- net/ipv4/devinet.c | 6 +-- net/ipv4/route.c | 2 +- net/ipv4/sysctl_net_ipv4.c | 32 +++++++-------- net/ipv6/addrconf.c | 19 +++++---- net/ipv6/ndisc.c | 2 +- net/ipv6/route.c | 2 +- net/ipv6/sysctl_net_ipv6.c | 4 +- net/mpls/af_mpls.c | 4 +- net/netfilter/ipvs/ip_vs_ctl.c | 12 +++--- net/netfilter/nf_conntrack_standalone.c | 2 +- net/netfilter/nf_hooks_lwtunnel.c | 2 +- net/netfilter/nf_log.c | 2 +- net/phonet/sysctl.c | 2 +- net/rds/tcp.c | 4 +- net/sctp/sysctl.c | 32 +++++++-------- net/sunrpc/sysctl.c | 6 +-- net/sunrpc/xprtrdma/svc_rdma.c | 2 +- security/apparmor/lsm.c | 2 +- security/min_addr.c | 2 +- security/yama/yama_lsm.c | 2 +- 92 files changed, 295 insertions(+), 293 deletions(-) diff --git a/arch/arm64/kernel/armv8_deprecated.c b/arch/arm64/kernel/armv8_deprecated.c index dd6ce86d4332..a3085cb68852 100644 --- a/arch/arm64/kernel/armv8_deprecated.c +++ b/arch/arm64/kernel/armv8_deprecated.c @@ -504,7 +504,7 @@ static int update_insn_emulation_mode(struct insn_emulation *insn, return ret; } -static int emulation_proc_handler(struct ctl_table *table, int write, +static int emulation_proc_handler(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { diff --git a/arch/arm64/kernel/fpsimd.c b/arch/arm64/kernel/fpsimd.c index ebb0158997ca..98efb587ef36 100644 --- a/arch/arm64/kernel/fpsimd.c +++ b/arch/arm64/kernel/fpsimd.c @@ -535,7 +535,7 @@ static unsigned int find_supported_vector_length(enum vec_type type, #if defined(CONFIG_ARM64_SVE) && defined(CONFIG_SYSCTL) -static int vec_proc_do_default_vl(struct ctl_table *table, int write, +static int vec_proc_do_default_vl(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct vl_info *info = table->extra1; diff --git a/arch/s390/appldata/appldata_base.c b/arch/s390/appldata/appldata_base.c index c2978cb03b36..91a30e017d65 100644 --- a/arch/s390/appldata/appldata_base.c +++ b/arch/s390/appldata/appldata_base.c @@ -46,9 +46,9 @@ * /proc entries (sysctl) */ static const char appldata_proc_name[APPLDATA_PROC_NAME_LENGTH] = "appldata"; -static int appldata_timer_handler(struct ctl_table *ctl, int write, +static int appldata_timer_handler(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos); -static int appldata_interval_handler(struct ctl_table *ctl, int write, +static int appldata_interval_handler(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos); static struct ctl_table_header *appldata_sysctl_header; @@ -199,7 +199,7 @@ static void __appldata_vtimer_setup(int cmd) * Start/Stop timer, show status of timer (0 = not active, 1 = active) */ static int -appldata_timer_handler(struct ctl_table *ctl, int write, +appldata_timer_handler(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { int timer_active = appldata_timer_active; @@ -232,7 +232,7 @@ appldata_timer_handler(struct ctl_table *ctl, int write, * current timer interval. */ static int -appldata_interval_handler(struct ctl_table *ctl, int write, +appldata_interval_handler(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { int interval = appldata_interval; @@ -262,7 +262,7 @@ appldata_interval_handler(struct ctl_table *ctl, int write, * monitoring (0 = not in process, 1 = in process) */ static int -appldata_generic_handler(struct ctl_table *ctl, int write, +appldata_generic_handler(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct appldata_ops *ops = NULL, *tmp_ops; diff --git a/arch/s390/kernel/debug.c b/arch/s390/kernel/debug.c index 85328a0ef3b6..bce50ca75ea7 100644 --- a/arch/s390/kernel/debug.c +++ b/arch/s390/kernel/debug.c @@ -954,7 +954,7 @@ static int debug_active = 1; * always allow read, allow write only if debug_stoppable is set or * if debug_active is already off */ -static int s390dbf_procactive(struct ctl_table *table, int write, +static int s390dbf_procactive(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { if (!write || debug_stoppable || !debug_active) diff --git a/arch/s390/kernel/topology.c b/arch/s390/kernel/topology.c index 89e91b8ce842..1df3dc118696 100644 --- a/arch/s390/kernel/topology.c +++ b/arch/s390/kernel/topology.c @@ -600,7 +600,7 @@ static int __init topology_setup(char *str) } early_param("topology", topology_setup); -static int topology_ctl_handler(struct ctl_table *ctl, int write, +static int topology_ctl_handler(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { int enabled = topology_is_enabled(); diff --git a/arch/s390/mm/cmm.c b/arch/s390/mm/cmm.c index f8b13f247646..1d6749e095f7 100644 --- a/arch/s390/mm/cmm.c +++ b/arch/s390/mm/cmm.c @@ -243,7 +243,7 @@ static int cmm_skip_blanks(char *cp, char **endp) return str != cp; } -static int cmm_pages_handler(struct ctl_table *ctl, int write, +static int cmm_pages_handler(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { long nr = cmm_get_pages(); @@ -262,7 +262,7 @@ static int cmm_pages_handler(struct ctl_table *ctl, int write, return 0; } -static int cmm_timed_pages_handler(struct ctl_table *ctl, int write, +static int cmm_timed_pages_handler(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { @@ -282,7 +282,7 @@ static int cmm_timed_pages_handler(struct ctl_table *ctl, int write, return 0; } -static int cmm_timeout_handler(struct ctl_table *ctl, int write, +static int cmm_timeout_handler(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { char buf[64], *p; diff --git a/arch/x86/kernel/itmt.c b/arch/x86/kernel/itmt.c index 9a7c03d47861..51b805c727fc 100644 --- a/arch/x86/kernel/itmt.c +++ b/arch/x86/kernel/itmt.c @@ -38,7 +38,7 @@ static bool __read_mostly sched_itmt_capable; */ unsigned int __read_mostly sysctl_sched_itmt_enabled; -static int sched_itmt_update_handler(struct ctl_table *table, int write, +static int sched_itmt_update_handler(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { unsigned int old_sysctl; diff --git a/drivers/cdrom/cdrom.c b/drivers/cdrom/cdrom.c index a5e07270e0d4..d0bd64129d43 100644 --- a/drivers/cdrom/cdrom.c +++ b/drivers/cdrom/cdrom.c @@ -3473,7 +3473,7 @@ static int cdrom_print_info(const char *header, int val, char *info, return 0; } -static int cdrom_sysctl_info(struct ctl_table *ctl, int write, +static int cdrom_sysctl_info(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { int pos; @@ -3586,7 +3586,7 @@ static void cdrom_update_settings(void) mutex_unlock(&cdrom_mutex); } -static int cdrom_sysctl_handler(struct ctl_table *ctl, int write, +static int cdrom_sysctl_handler(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { int ret; diff --git a/drivers/char/random.c b/drivers/char/random.c index 2597cb43f438..ca414208f899 100644 --- a/drivers/char/random.c +++ b/drivers/char/random.c @@ -1604,7 +1604,7 @@ static u8 sysctl_bootid[UUID_SIZE]; * UUID. The difference is in whether table->data is NULL; if it is, * then a new UUID is generated and returned to the user. */ -static int proc_do_uuid(struct ctl_table *table, int write, void *buf, +static int proc_do_uuid(const struct ctl_table *table, int write, void *buf, size_t *lenp, loff_t *ppos) { u8 tmp_uuid[UUID_SIZE], *uuid; @@ -1635,8 +1635,8 @@ static int proc_do_uuid(struct ctl_table *table, int write, void *buf, } /* The same as proc_dointvec, but writes don't change anything. */ -static int proc_do_rointvec(struct ctl_table *table, int write, void *buf, - size_t *lenp, loff_t *ppos) +static int proc_do_rointvec(const struct ctl_table *table, int write, + void *buf, size_t *lenp, loff_t *ppos) { return write ? 0 : proc_dointvec(table, 0, buf, lenp, ppos); } diff --git a/drivers/macintosh/mac_hid.c b/drivers/macintosh/mac_hid.c index 1ae3539beff5..891047c8a110 100644 --- a/drivers/macintosh/mac_hid.c +++ b/drivers/macintosh/mac_hid.c @@ -182,7 +182,7 @@ static void mac_hid_stop_emulation(void) mac_hid_destroy_emumouse(); } -static int mac_hid_toggle_emumouse(struct ctl_table *table, int write, +static int mac_hid_toggle_emumouse(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { int *valp = table->data; diff --git a/drivers/net/vrf.c b/drivers/net/vrf.c index 66f8542f3b18..14c5efd234ad 100644 --- a/drivers/net/vrf.c +++ b/drivers/net/vrf.c @@ -1908,7 +1908,7 @@ static int vrf_strict_mode_change(struct vrf_map *vmap, bool new_mode) return res; } -static int vrf_shared_table_handler(struct ctl_table *table, int write, +static int vrf_shared_table_handler(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct net *net = (struct net *)table->extra1; diff --git a/drivers/parport/procfs.c b/drivers/parport/procfs.c index bd388560ed59..efa7c90e4234 100644 --- a/drivers/parport/procfs.c +++ b/drivers/parport/procfs.c @@ -33,7 +33,7 @@ #define PARPORT_MIN_SPINTIME_VALUE 1 #define PARPORT_MAX_SPINTIME_VALUE 1000 -static int do_active_device(struct ctl_table *table, int write, +static int do_active_device(const struct ctl_table *table, int write, void *result, size_t *lenp, loff_t *ppos) { struct parport *port = (struct parport *)table->extra1; @@ -70,7 +70,7 @@ static int do_active_device(struct ctl_table *table, int write, } #ifdef CONFIG_PARPORT_1284 -static int do_autoprobe(struct ctl_table *table, int write, +static int do_autoprobe(const struct ctl_table *table, int write, void *result, size_t *lenp, loff_t *ppos) { struct parport_device_info *info = table->extra2; @@ -113,7 +113,7 @@ static int do_autoprobe(struct ctl_table *table, int write, } #endif /* IEEE1284.3 support. */ -static int do_hardware_base_addr(struct ctl_table *table, int write, +static int do_hardware_base_addr(const struct ctl_table *table, int write, void *result, size_t *lenp, loff_t *ppos) { struct parport *port = (struct parport *)table->extra1; @@ -140,7 +140,7 @@ static int do_hardware_base_addr(struct ctl_table *table, int write, return 0; } -static int do_hardware_irq(struct ctl_table *table, int write, +static int do_hardware_irq(const struct ctl_table *table, int write, void *result, size_t *lenp, loff_t *ppos) { struct parport *port = (struct parport *)table->extra1; @@ -167,7 +167,7 @@ static int do_hardware_irq(struct ctl_table *table, int write, return 0; } -static int do_hardware_dma(struct ctl_table *table, int write, +static int do_hardware_dma(const struct ctl_table *table, int write, void *result, size_t *lenp, loff_t *ppos) { struct parport *port = (struct parport *)table->extra1; @@ -194,7 +194,7 @@ static int do_hardware_dma(struct ctl_table *table, int write, return 0; } -static int do_hardware_modes(struct ctl_table *table, int write, +static int do_hardware_modes(const struct ctl_table *table, int write, void *result, size_t *lenp, loff_t *ppos) { struct parport *port = (struct parport *)table->extra1; diff --git a/drivers/perf/arm_pmuv3.c b/drivers/perf/arm_pmuv3.c index 23fa6c5da82c..accdf3ac4c1d 100644 --- a/drivers/perf/arm_pmuv3.c +++ b/drivers/perf/arm_pmuv3.c @@ -1253,8 +1253,8 @@ static void armv8pmu_disable_user_access_ipi(void *unused) armv8pmu_disable_user_access(); } -static int armv8pmu_proc_user_access_handler(struct ctl_table *table, int write, - void *buffer, size_t *lenp, loff_t *ppos) +static int armv8pmu_proc_user_access_handler(const struct ctl_table *table, + int write, void *buffer, size_t *lenp, loff_t *ppos) { int ret = proc_dointvec_minmax(table, write, buffer, lenp, ppos); if (ret || !write || sysctl_perf_user_access) diff --git a/drivers/perf/riscv_pmu_sbi.c b/drivers/perf/riscv_pmu_sbi.c index 82636273d726..9c9ceec3a206 100644 --- a/drivers/perf/riscv_pmu_sbi.c +++ b/drivers/perf/riscv_pmu_sbi.c @@ -1013,7 +1013,7 @@ static void riscv_pmu_update_counter_access(void *info) csr_write(CSR_SCOUNTEREN, 0x2); } -static int riscv_pmu_proc_user_access_handler(struct ctl_table *table, +static int riscv_pmu_proc_user_access_handler(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { diff --git a/fs/coredump.c b/fs/coredump.c index 8eae24afb3cb..b4f68117d203 100644 --- a/fs/coredump.c +++ b/fs/coredump.c @@ -986,7 +986,7 @@ void validate_coredump_safety(void) } } -static int proc_dostring_coredump(struct ctl_table *table, int write, +static int proc_dostring_coredump(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { int error = proc_dostring(table, write, buffer, lenp, ppos); diff --git a/fs/dcache.c b/fs/dcache.c index 407095188f83..5c6ae57d0321 100644 --- a/fs/dcache.c +++ b/fs/dcache.c @@ -174,8 +174,8 @@ static long get_nr_dentry_negative(void) return sum < 0 ? 0 : sum; } -static int proc_nr_dentry(struct ctl_table *table, int write, void *buffer, - size_t *lenp, loff_t *ppos) +static int proc_nr_dentry(const struct ctl_table *table, int write, + void *buffer, size_t *lenp, loff_t *ppos) { dentry_stat.nr_dentry = get_nr_dentry(); dentry_stat.nr_unused = get_nr_dentry_unused(); diff --git a/fs/drop_caches.c b/fs/drop_caches.c index b9575957a7c2..d45ef541d848 100644 --- a/fs/drop_caches.c +++ b/fs/drop_caches.c @@ -48,7 +48,7 @@ static void drop_pagecache_sb(struct super_block *sb, void *unused) iput(toput_inode); } -int drop_caches_sysctl_handler(struct ctl_table *table, int write, +int drop_caches_sysctl_handler(const struct ctl_table *table, int write, void *buffer, size_t *length, loff_t *ppos) { int ret; diff --git a/fs/exec.c b/fs/exec.c index 40073142288f..ba59402194c7 100644 --- a/fs/exec.c +++ b/fs/exec.c @@ -2181,8 +2181,8 @@ COMPAT_SYSCALL_DEFINE5(execveat, int, fd, #ifdef CONFIG_SYSCTL -static int proc_dointvec_minmax_coredump(struct ctl_table *table, int write, - void *buffer, size_t *lenp, loff_t *ppos) +static int proc_dointvec_minmax_coredump(const struct ctl_table *table, + int write, void *buffer, size_t *lenp, loff_t *ppos) { int error = proc_dointvec_minmax(table, write, buffer, lenp, ppos); diff --git a/fs/file_table.c b/fs/file_table.c index 4f03beed4737..f5480473727e 100644 --- a/fs/file_table.c +++ b/fs/file_table.c @@ -96,8 +96,8 @@ EXPORT_SYMBOL_GPL(get_max_files); /* * Handle nr_files sysctl */ -static int proc_nr_files(struct ctl_table *table, int write, void *buffer, - size_t *lenp, loff_t *ppos) +static int proc_nr_files(const struct ctl_table *table, int write, + void *buffer, size_t *lenp, loff_t *ppos) { files_stat.nr_files = get_nr_files(); return proc_doulongvec_minmax(table, write, buffer, lenp, ppos); diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c index 92a5b8283528..b865a3fa52f3 100644 --- a/fs/fs-writeback.c +++ b/fs/fs-writeback.c @@ -2413,7 +2413,7 @@ static int __init start_dirtytime_writeback(void) } __initcall(start_dirtytime_writeback); -int dirtytime_interval_handler(struct ctl_table *table, int write, +int dirtytime_interval_handler(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { int ret; diff --git a/fs/inode.c b/fs/inode.c index 3a41f83a4ba5..a622503a992c 100644 --- a/fs/inode.c +++ b/fs/inode.c @@ -107,8 +107,8 @@ long get_nr_dirty_inodes(void) */ static struct inodes_stat_t inodes_stat; -static int proc_nr_inodes(struct ctl_table *table, int write, void *buffer, - size_t *lenp, loff_t *ppos) +static int proc_nr_inodes(const struct ctl_table *table, int write, + void *buffer, size_t *lenp, loff_t *ppos) { inodes_stat.nr_inodes = get_nr_inodes(); inodes_stat.nr_unused = get_nr_inodes_unused(); diff --git a/fs/pipe.c b/fs/pipe.c index 50c8a8596b52..7dff2aa50a6d 100644 --- a/fs/pipe.c +++ b/fs/pipe.c @@ -1469,7 +1469,7 @@ static int do_proc_dopipe_max_size_conv(unsigned long *lvalp, return 0; } -static int proc_dopipe_max_size(struct ctl_table *table, int write, +static int proc_dopipe_max_size(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { return do_proc_douintvec(table, write, buffer, lenp, ppos, diff --git a/fs/quota/dquot.c b/fs/quota/dquot.c index 627eb2f72ef3..4c3936b8f7b6 100644 --- a/fs/quota/dquot.c +++ b/fs/quota/dquot.c @@ -2917,7 +2917,7 @@ const struct quotactl_ops dquot_quotactl_sysfile_ops = { }; EXPORT_SYMBOL(dquot_quotactl_sysfile_ops); -static int do_proc_dqstats(struct ctl_table *table, int write, +static int do_proc_dqstats(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { unsigned int type = (unsigned long *)table->data - dqstats.stat; diff --git a/fs/xfs/xfs_sysctl.c b/fs/xfs/xfs_sysctl.c index a191f6560f98..c84df23b494d 100644 --- a/fs/xfs/xfs_sysctl.c +++ b/fs/xfs/xfs_sysctl.c @@ -11,7 +11,7 @@ static struct ctl_table_header *xfs_table_header; #ifdef CONFIG_PROC_FS STATIC int xfs_stats_clear_proc_handler( - struct ctl_table *ctl, + const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, @@ -31,7 +31,7 @@ xfs_stats_clear_proc_handler( STATIC int xfs_panic_mask_proc_handler( - struct ctl_table *ctl, + const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, @@ -52,7 +52,7 @@ xfs_panic_mask_proc_handler( STATIC int xfs_deprecated_dointvec_minmax( - struct ctl_table *ctl, + const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, diff --git a/include/linux/ftrace.h b/include/linux/ftrace.h index 54d53f345d14..c3af2e5947aa 100644 --- a/include/linux/ftrace.h +++ b/include/linux/ftrace.h @@ -470,7 +470,7 @@ static inline void arch_ftrace_set_direct_caller(struct ftrace_regs *fregs, extern int stack_tracer_enabled; -int stack_trace_sysctl(struct ctl_table *table, int write, void *buffer, +int stack_trace_sysctl(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos); /* DO NOT MODIFY THIS VARIABLE DIRECTLY! */ @@ -1159,7 +1159,7 @@ extern int tracepoint_printk; extern void disable_trace_on_warning(void); extern int __disable_trace_on_warning; -int tracepoint_printk_sysctl(struct ctl_table *table, int write, +int tracepoint_printk_sysctl(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos); #else /* CONFIG_TRACING */ diff --git a/include/linux/mm.h b/include/linux/mm.h index dc33f8269fb5..828d97c23834 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -204,11 +204,11 @@ extern int sysctl_overcommit_memory; extern int sysctl_overcommit_ratio; extern unsigned long sysctl_overcommit_kbytes; -int overcommit_ratio_handler(struct ctl_table *, int, void *, size_t *, +int overcommit_ratio_handler(const struct ctl_table *, int, void *, size_t *, loff_t *); -int overcommit_kbytes_handler(struct ctl_table *, int, void *, size_t *, +int overcommit_kbytes_handler(const struct ctl_table *, int, void *, size_t *, loff_t *); -int overcommit_policy_handler(struct ctl_table *, int, void *, size_t *, +int overcommit_policy_handler(const struct ctl_table *, int, void *, size_t *, loff_t *); #if defined(CONFIG_SPARSEMEM) && !defined(CONFIG_SPARSEMEM_VMEMMAP) @@ -3897,7 +3897,7 @@ extern bool process_shares_mm(struct task_struct *p, struct mm_struct *mm); #ifdef CONFIG_SYSCTL extern int sysctl_drop_caches; -int drop_caches_sysctl_handler(struct ctl_table *, int, void *, size_t *, +int drop_caches_sysctl_handler(const struct ctl_table *, int, void *, size_t *, loff_t *); #endif diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h index a5304ae8c654..ce102aac11c0 100644 --- a/include/linux/perf_event.h +++ b/include/linux/perf_event.h @@ -1587,11 +1587,11 @@ extern int sysctl_perf_cpu_time_max_percent; extern void perf_sample_event_took(u64 sample_len_ns); -int perf_event_max_sample_rate_handler(struct ctl_table *table, int write, +int perf_event_max_sample_rate_handler(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos); -int perf_cpu_time_max_percent_handler(struct ctl_table *table, int write, +int perf_cpu_time_max_percent_handler(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos); -int perf_event_max_stack_handler(struct ctl_table *table, int write, +int perf_event_max_stack_handler(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos); /* Access to perf_event_open(2) syscall. */ diff --git a/include/linux/security.h b/include/linux/security.h index 21cf70346b33..96799ff57230 100644 --- a/include/linux/security.h +++ b/include/linux/security.h @@ -228,7 +228,7 @@ struct request_sock; #define LSM_UNSAFE_NO_NEW_PRIVS 4 #ifdef CONFIG_MMU -extern int mmap_min_addr_handler(struct ctl_table *table, int write, +extern int mmap_min_addr_handler(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos); #endif diff --git a/include/linux/sysctl.h b/include/linux/sysctl.h index 54fbec062772..aa4c6d44aaa0 100644 --- a/include/linux/sysctl.h +++ b/include/linux/sysctl.h @@ -61,31 +61,31 @@ extern const int sysctl_vals[]; extern const unsigned long sysctl_long_vals[]; -typedef int proc_handler(struct ctl_table *ctl, int write, void *buffer, +typedef int proc_handler(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos); -int proc_dostring(struct ctl_table *, int, void *, size_t *, loff_t *); -int proc_dobool(struct ctl_table *table, int write, void *buffer, +int proc_dostring(const struct ctl_table *, int, void *, size_t *, loff_t *); +int proc_dobool(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos); -int proc_dointvec(struct ctl_table *, int, void *, size_t *, loff_t *); -int proc_douintvec(struct ctl_table *, int, void *, size_t *, loff_t *); -int proc_dointvec_minmax(struct ctl_table *, int, void *, size_t *, loff_t *); -int proc_douintvec_minmax(struct ctl_table *table, int write, void *buffer, +int proc_dointvec(const struct ctl_table *, int, void *, size_t *, loff_t *); +int proc_douintvec(const struct ctl_table *, int, void *, size_t *, loff_t *); +int proc_dointvec_minmax(const struct ctl_table *, int, void *, size_t *, loff_t *); +int proc_douintvec_minmax(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos); -int proc_dou8vec_minmax(struct ctl_table *table, int write, void *buffer, +int proc_dou8vec_minmax(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos); -int proc_dointvec_jiffies(struct ctl_table *, int, void *, size_t *, loff_t *); -int proc_dointvec_ms_jiffies_minmax(struct ctl_table *table, int write, +int proc_dointvec_jiffies(const struct ctl_table *, int, void *, size_t *, loff_t *); +int proc_dointvec_ms_jiffies_minmax(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos); -int proc_dointvec_userhz_jiffies(struct ctl_table *, int, void *, size_t *, +int proc_dointvec_userhz_jiffies(const struct ctl_table *, int, void *, size_t *, loff_t *); -int proc_dointvec_ms_jiffies(struct ctl_table *, int, void *, size_t *, +int proc_dointvec_ms_jiffies(const struct ctl_table *, int, void *, size_t *, loff_t *); -int proc_doulongvec_minmax(struct ctl_table *, int, void *, size_t *, loff_t *); -int proc_doulongvec_ms_jiffies_minmax(struct ctl_table *table, int, void *, +int proc_doulongvec_minmax(const struct ctl_table *, int, void *, size_t *, loff_t *); +int proc_doulongvec_ms_jiffies_minmax(const struct ctl_table *table, int, void *, size_t *, loff_t *); -int proc_do_large_bitmap(struct ctl_table *, int, void *, size_t *, loff_t *); -int proc_do_static_key(struct ctl_table *table, int write, void *buffer, +int proc_do_large_bitmap(const struct ctl_table *, int, void *, size_t *, loff_t *); +int proc_do_static_key(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos); /* @@ -287,7 +287,7 @@ static inline bool sysctl_is_alias(char *param) } #endif /* CONFIG_SYSCTL */ -int sysctl_max_threads(struct ctl_table *table, int write, void *buffer, +int sysctl_max_threads(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos); #endif /* _LINUX_SYSCTL_H */ diff --git a/include/linux/vmstat.h b/include/linux/vmstat.h index 735eae6e272c..7da26d1aea12 100644 --- a/include/linux/vmstat.h +++ b/include/linux/vmstat.h @@ -17,7 +17,7 @@ extern int sysctl_stat_interval; #define DISABLE_NUMA_STAT 0 extern int sysctl_vm_numa_stat; DECLARE_STATIC_KEY_TRUE(vm_numa_stat_key); -int sysctl_vm_numa_stat_handler(struct ctl_table *table, int write, +int sysctl_vm_numa_stat_handler(const struct ctl_table *table, int write, void *buffer, size_t *length, loff_t *ppos); #endif @@ -301,8 +301,8 @@ void cpu_vm_stats_fold(int cpu); void refresh_zone_stat_thresholds(void); struct ctl_table; -int vmstat_refresh(struct ctl_table *, int write, void *buffer, size_t *lenp, - loff_t *ppos); +int vmstat_refresh(const struct ctl_table *, int write, void *buffer, + size_t *lenp, loff_t *ppos); void drain_zonestat(struct zone *zone, struct per_cpu_zonestat *); diff --git a/include/linux/writeback.h b/include/linux/writeback.h index 112d806ddbe4..1a54676d843a 100644 --- a/include/linux/writeback.h +++ b/include/linux/writeback.h @@ -350,7 +350,7 @@ extern unsigned int dirty_expire_interval; extern unsigned int dirtytime_expire_interval; extern int laptop_mode; -int dirtytime_interval_handler(struct ctl_table *table, int write, +int dirtytime_interval_handler(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos); void global_dirty_limits(unsigned long *pbackground, unsigned long *pdirty); diff --git a/include/net/ndisc.h b/include/net/ndisc.h index 9bbdf6eaa942..7a533d5b1d59 100644 --- a/include/net/ndisc.h +++ b/include/net/ndisc.h @@ -486,7 +486,7 @@ void igmp6_event_report(struct sk_buff *skb); #ifdef CONFIG_SYSCTL -int ndisc_ifinfo_sysctl_change(struct ctl_table *ctl, int write, +int ndisc_ifinfo_sysctl_change(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos); #endif diff --git a/include/net/neighbour.h b/include/net/neighbour.h index 0d28172193fa..a44f262a7384 100644 --- a/include/net/neighbour.h +++ b/include/net/neighbour.h @@ -412,12 +412,12 @@ void *neigh_seq_start(struct seq_file *, loff_t *, struct neigh_table *, void *neigh_seq_next(struct seq_file *, void *, loff_t *); void neigh_seq_stop(struct seq_file *, void *); -int neigh_proc_dointvec(struct ctl_table *ctl, int write, +int neigh_proc_dointvec(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos); -int neigh_proc_dointvec_jiffies(struct ctl_table *ctl, int write, +int neigh_proc_dointvec_jiffies(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos); -int neigh_proc_dointvec_ms_jiffies(struct ctl_table *ctl, int write, +int neigh_proc_dointvec_ms_jiffies(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos); int neigh_sysctl_register(struct net_device *dev, struct neigh_parms *p, diff --git a/include/net/netfilter/nf_hooks_lwtunnel.h b/include/net/netfilter/nf_hooks_lwtunnel.h index 52e27920f829..cef7a4eb8f97 100644 --- a/include/net/netfilter/nf_hooks_lwtunnel.h +++ b/include/net/netfilter/nf_hooks_lwtunnel.h @@ -2,6 +2,6 @@ #include #ifdef CONFIG_SYSCTL -int nf_hooks_lwtunnel_sysctl_handler(struct ctl_table *table, int write, +int nf_hooks_lwtunnel_sysctl_handler(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos); #endif diff --git a/ipc/ipc_sysctl.c b/ipc/ipc_sysctl.c index 9465b0ae470b..5d383a9a520e 100644 --- a/ipc/ipc_sysctl.c +++ b/ipc/ipc_sysctl.c @@ -17,8 +17,8 @@ #include #include "util.h" -static int proc_ipc_dointvec_minmax_orphans(struct ctl_table *table, int write, - void *buffer, size_t *lenp, loff_t *ppos) +static int proc_ipc_dointvec_minmax_orphans(const struct ctl_table *table, + int write, void *buffer, size_t *lenp, loff_t *ppos) { struct ipc_namespace *ns = container_of(table->data, struct ipc_namespace, shm_rmid_forced); @@ -33,7 +33,7 @@ static int proc_ipc_dointvec_minmax_orphans(struct ctl_table *table, int write, return err; } -static int proc_ipc_auto_msgmni(struct ctl_table *table, int write, +static int proc_ipc_auto_msgmni(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct ctl_table ipc_table; @@ -48,7 +48,7 @@ static int proc_ipc_auto_msgmni(struct ctl_table *table, int write, return proc_dointvec_minmax(&ipc_table, write, buffer, lenp, ppos); } -static int proc_ipc_sem_dointvec(struct ctl_table *table, int write, +static int proc_ipc_sem_dointvec(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct ipc_namespace *ns = diff --git a/kernel/bpf/syscall.c b/kernel/bpf/syscall.c index 7dcd7f174bb1..93d1f856f3d4 100644 --- a/kernel/bpf/syscall.c +++ b/kernel/bpf/syscall.c @@ -5937,7 +5937,7 @@ const struct bpf_prog_ops bpf_syscall_prog_ops = { }; #ifdef CONFIG_SYSCTL -static int bpf_stats_handler(struct ctl_table *table, int write, +static int bpf_stats_handler(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct static_key *key = (struct static_key *)table->data; @@ -5972,7 +5972,7 @@ void __weak unpriv_ebpf_notify(int new_state) { } -static int bpf_unpriv_handler(struct ctl_table *table, int write, +static int bpf_unpriv_handler(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { int ret, unpriv_enable = *(int *)table->data; diff --git a/kernel/delayacct.c b/kernel/delayacct.c index e039b0f99a0b..5cc4e0ef4128 100644 --- a/kernel/delayacct.c +++ b/kernel/delayacct.c @@ -44,8 +44,8 @@ void delayacct_init(void) } #ifdef CONFIG_PROC_SYSCTL -static int sysctl_delayacct(struct ctl_table *table, int write, void *buffer, - size_t *lenp, loff_t *ppos) +static int sysctl_delayacct(const struct ctl_table *table, int write, + void *buffer, size_t *lenp, loff_t *ppos) { int state = delayacct_on; struct ctl_table t; diff --git a/kernel/events/callchain.c b/kernel/events/callchain.c index 1273be84392c..bd5699f869c3 100644 --- a/kernel/events/callchain.c +++ b/kernel/events/callchain.c @@ -229,7 +229,7 @@ get_perf_callchain(struct pt_regs *regs, u32 init_nr, bool kernel, bool user, * Used for sysctl_perf_event_max_stack and * sysctl_perf_event_max_contexts_per_stack. */ -int perf_event_max_stack_handler(struct ctl_table *table, int write, +int perf_event_max_stack_handler(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { int *value = table->data; diff --git a/kernel/events/core.c b/kernel/events/core.c index f0128c5ff278..01cc910d31f3 100644 --- a/kernel/events/core.c +++ b/kernel/events/core.c @@ -450,7 +450,7 @@ static void update_perf_cpu_limits(void) static bool perf_rotate_context(struct perf_cpu_pmu_context *cpc); -int perf_event_max_sample_rate_handler(struct ctl_table *table, int write, +int perf_event_max_sample_rate_handler(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { int ret; @@ -474,7 +474,7 @@ int perf_event_max_sample_rate_handler(struct ctl_table *table, int write, int sysctl_perf_cpu_time_max_percent __read_mostly = DEFAULT_CPU_TIME_MAX_PERCENT; -int perf_cpu_time_max_percent_handler(struct ctl_table *table, int write, +int perf_cpu_time_max_percent_handler(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { int ret = proc_dointvec_minmax(table, write, buffer, lenp, ppos); diff --git a/kernel/fork.c b/kernel/fork.c index 99076dbe27d8..985bd0a5834c 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -3418,7 +3418,7 @@ int unshare_files(void) return 0; } -int sysctl_max_threads(struct ctl_table *table, int write, +int sysctl_max_threads(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct ctl_table t; diff --git a/kernel/hung_task.c b/kernel/hung_task.c index 1d92016b0b3c..688ab3443156 100644 --- a/kernel/hung_task.c +++ b/kernel/hung_task.c @@ -239,9 +239,9 @@ static long hung_timeout_jiffies(unsigned long last_checked, /* * Process updating of timeout sysctl */ -static int proc_dohung_task_timeout_secs(struct ctl_table *table, int write, - void *buffer, - size_t *lenp, loff_t *ppos) +static int proc_dohung_task_timeout_secs(const struct ctl_table *table, + int write, void *buffer, + size_t *lenp, loff_t *ppos) { int ret; diff --git a/kernel/kexec_core.c b/kernel/kexec_core.c index 9112d69d68b0..c0caa14880c3 100644 --- a/kernel/kexec_core.c +++ b/kernel/kexec_core.c @@ -888,7 +888,7 @@ struct kimage *kexec_crash_image; static int kexec_load_disabled; #ifdef CONFIG_SYSCTL -static int kexec_limit_handler(struct ctl_table *table, int write, +static int kexec_limit_handler(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct kexec_load_limit *limit = table->data; diff --git a/kernel/kprobes.c b/kernel/kprobes.c index 668ea401744b..fec9f6c4b0f1 100644 --- a/kernel/kprobes.c +++ b/kernel/kprobes.c @@ -939,7 +939,7 @@ static void unoptimize_all_kprobes(void) static DEFINE_MUTEX(kprobe_sysctl_mutex); static int sysctl_kprobes_optimization; -static int proc_kprobes_optimization_handler(struct ctl_table *table, +static int proc_kprobes_optimization_handler(const struct ctl_table *table, int write, void *buffer, size_t *length, loff_t *ppos) { diff --git a/kernel/latencytop.c b/kernel/latencytop.c index 84c53285f499..b03af86018f4 100644 --- a/kernel/latencytop.c +++ b/kernel/latencytop.c @@ -65,8 +65,8 @@ static struct latency_record latency_record[MAXLR]; int latencytop_enabled; #ifdef CONFIG_SYSCTL -static int sysctl_latencytop(struct ctl_table *table, int write, void *buffer, - size_t *lenp, loff_t *ppos) +static int sysctl_latencytop(const struct ctl_table *table, int write, + void *buffer, size_t *lenp, loff_t *ppos) { int err; diff --git a/kernel/pid_namespace.c b/kernel/pid_namespace.c index dc48fecfa1dc..afd7d54acb56 100644 --- a/kernel/pid_namespace.c +++ b/kernel/pid_namespace.c @@ -277,7 +277,7 @@ void zap_pid_ns_processes(struct pid_namespace *pid_ns) } #ifdef CONFIG_CHECKPOINT_RESTORE -static int pid_ns_ctl_handler(struct ctl_table *table, int write, +static int pid_ns_ctl_handler(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct pid_namespace *pid_ns = task_active_pid_ns(current); diff --git a/kernel/pid_sysctl.h b/kernel/pid_sysctl.h index fe9fb991dc42..18ecaef6be41 100644 --- a/kernel/pid_sysctl.h +++ b/kernel/pid_sysctl.h @@ -5,7 +5,7 @@ #include #if defined(CONFIG_SYSCTL) && defined(CONFIG_MEMFD_CREATE) -static int pid_mfd_noexec_dointvec_minmax(struct ctl_table *table, +static int pid_mfd_noexec_dointvec_minmax(const struct ctl_table *table, int write, void *buf, size_t *lenp, loff_t *ppos) { struct pid_namespace *ns = task_active_pid_ns(current); diff --git a/kernel/printk/internal.h b/kernel/printk/internal.h index 6c2afee5ef62..19dcc5832651 100644 --- a/kernel/printk/internal.h +++ b/kernel/printk/internal.h @@ -8,7 +8,7 @@ #if defined(CONFIG_PRINTK) && defined(CONFIG_SYSCTL) void __init printk_sysctl_init(void); -int devkmsg_sysctl_set_loglvl(struct ctl_table *table, int write, +int devkmsg_sysctl_set_loglvl(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos); #else #define printk_sysctl_init() do { } while (0) diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c index 6206804d275b..6d00e89744e9 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -197,7 +197,7 @@ __setup("printk.devkmsg=", control_devkmsg); char devkmsg_log_str[DEVKMSG_STR_MAX_SIZE] = "ratelimit"; #if defined(CONFIG_PRINTK) && defined(CONFIG_SYSCTL) -int devkmsg_sysctl_set_loglvl(struct ctl_table *table, int write, +int devkmsg_sysctl_set_loglvl(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { char old_str[DEVKMSG_STR_MAX_SIZE]; diff --git a/kernel/printk/sysctl.c b/kernel/printk/sysctl.c index 3e47dedce9e5..6aaddb90149f 100644 --- a/kernel/printk/sysctl.c +++ b/kernel/printk/sysctl.c @@ -11,8 +11,9 @@ static const int ten_thousand = 10000; -static int proc_dointvec_minmax_sysadmin(struct ctl_table *table, int write, - void *buffer, size_t *lenp, loff_t *ppos) +static int proc_dointvec_minmax_sysadmin(const struct ctl_table *table, + int write, void *buffer, + size_t *lenp, loff_t *ppos) { if (write && !capable(CAP_SYS_ADMIN)) return -EPERM; diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 5f9d32a110f9..d65f21c27304 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -1835,7 +1835,7 @@ static void uclamp_sync_util_min_rt_default(void) uclamp_update_util_min_rt_default(p); } -static int sysctl_sched_uclamp_handler(struct ctl_table *table, int write, +static int sysctl_sched_uclamp_handler(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { bool update_root_tg = false; @@ -4603,7 +4603,7 @@ static void reset_memory_tiering(void) } } -static int sysctl_numa_balancing(struct ctl_table *table, int write, +static int sysctl_numa_balancing(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct ctl_table t; @@ -4672,8 +4672,8 @@ static int __init setup_schedstats(char *str) __setup("schedstats=", setup_schedstats); #ifdef CONFIG_PROC_SYSCTL -static int sysctl_schedstats(struct ctl_table *table, int write, void *buffer, - size_t *lenp, loff_t *ppos) +static int sysctl_schedstats(const struct ctl_table *table, int write, + void *buffer, size_t *lenp, loff_t *ppos) { struct ctl_table t; int err; diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c index aa4c1c874fa4..3f8c046755fd 100644 --- a/kernel/sched/rt.c +++ b/kernel/sched/rt.c @@ -26,10 +26,10 @@ int sysctl_sched_rt_runtime = 950000; #ifdef CONFIG_SYSCTL static int sysctl_sched_rr_timeslice = (MSEC_PER_SEC * RR_TIMESLICE) / HZ; -static int sched_rt_handler(struct ctl_table *table, int write, void *buffer, - size_t *lenp, loff_t *ppos); -static int sched_rr_handler(struct ctl_table *table, int write, void *buffer, - size_t *lenp, loff_t *ppos); +static int sched_rt_handler(const struct ctl_table *table, int write, + void *buffer, size_t *lenp, loff_t *ppos); +static int sched_rr_handler(const struct ctl_table *table, int write, + void *buffer, size_t *lenp, loff_t *ppos); static struct ctl_table sched_rt_sysctls[] = { { .procname = "sched_rt_period_us", @@ -2952,8 +2952,8 @@ static void sched_rt_do_global(void) raw_spin_unlock_irqrestore(&def_rt_bandwidth.rt_runtime_lock, flags); } -static int sched_rt_handler(struct ctl_table *table, int write, void *buffer, - size_t *lenp, loff_t *ppos) +static int sched_rt_handler(const struct ctl_table *table, int write, + void *buffer, size_t *lenp, loff_t *ppos) { int old_period, old_runtime; static DEFINE_MUTEX(mutex); @@ -2991,8 +2991,8 @@ static int sched_rt_handler(struct ctl_table *table, int write, void *buffer, return ret; } -static int sched_rr_handler(struct ctl_table *table, int write, void *buffer, - size_t *lenp, loff_t *ppos) +static int sched_rr_handler(const struct ctl_table *table, int write, + void *buffer, size_t *lenp, loff_t *ppos) { int ret; static DEFINE_MUTEX(mutex); diff --git a/kernel/sched/topology.c b/kernel/sched/topology.c index 1d6eefa4032e..2b52f34dc35c 100644 --- a/kernel/sched/topology.c +++ b/kernel/sched/topology.c @@ -285,7 +285,7 @@ void rebuild_sched_domains_energy(void) } #ifdef CONFIG_PROC_SYSCTL -static int sched_energy_aware_handler(struct ctl_table *table, int write, +static int sched_energy_aware_handler(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { int ret, state; diff --git a/kernel/seccomp.c b/kernel/seccomp.c index 7ed72723fb8a..97a3d0e81ac1 100644 --- a/kernel/seccomp.c +++ b/kernel/seccomp.c @@ -2334,7 +2334,7 @@ static bool seccomp_actions_logged_from_names(u32 *actions_logged, char *names) return true; } -static int read_actions_logged(struct ctl_table *ro_table, void *buffer, +static int read_actions_logged(const struct ctl_table *ro_table, void *buffer, size_t *lenp, loff_t *ppos) { char names[sizeof(seccomp_actions_avail)]; @@ -2352,7 +2352,7 @@ static int read_actions_logged(struct ctl_table *ro_table, void *buffer, return proc_dostring(&table, 0, buffer, lenp, ppos); } -static int write_actions_logged(struct ctl_table *ro_table, void *buffer, +static int write_actions_logged(const struct ctl_table *ro_table, void *buffer, size_t *lenp, loff_t *ppos, u32 *actions_logged) { char names[sizeof(seccomp_actions_avail)]; @@ -2413,9 +2413,9 @@ static void audit_actions_logged(u32 actions_logged, u32 old_actions_logged, return audit_seccomp_actions_logged(new, old, !ret); } -static int seccomp_actions_logged_handler(struct ctl_table *ro_table, int write, - void *buffer, size_t *lenp, - loff_t *ppos) +static int seccomp_actions_logged_handler(const struct ctl_table *ro_table, + int write, void *buffer, + size_t *lenp, loff_t *ppos) { int ret; diff --git a/kernel/stackleak.c b/kernel/stackleak.c index 558b9d6d28d3..f64b2b3d0244 100644 --- a/kernel/stackleak.c +++ b/kernel/stackleak.c @@ -21,7 +21,7 @@ static DEFINE_STATIC_KEY_FALSE(stack_erasing_bypass); #ifdef CONFIG_SYSCTL -static int stack_erasing_sysctl(struct ctl_table *table, int write, +static int stack_erasing_sysctl(const struct ctl_table *table, int write, void __user *buffer, size_t *lenp, loff_t *ppos) { int ret = 0; diff --git a/kernel/sysctl.c b/kernel/sysctl.c index 62dd27752960..4d3e5cecbc88 100644 --- a/kernel/sysctl.c +++ b/kernel/sysctl.c @@ -256,7 +256,7 @@ static bool proc_first_pos_non_zero_ignore(loff_t *ppos, * * Returns 0 on success. */ -int proc_dostring(struct ctl_table *table, int write, +int proc_dostring(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { if (write) @@ -702,7 +702,7 @@ int do_proc_douintvec(const struct ctl_table *table, int write, * * Returns 0 on success. */ -int proc_dobool(struct ctl_table *table, int write, void *buffer, +int proc_dobool(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct ctl_table tmp; @@ -739,7 +739,7 @@ int proc_dobool(struct ctl_table *table, int write, void *buffer, * * Returns 0 on success. */ -int proc_dointvec(struct ctl_table *table, int write, void *buffer, +int proc_dointvec(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { return do_proc_dointvec(table, write, buffer, lenp, ppos, NULL, NULL); @@ -758,7 +758,7 @@ int proc_dointvec(struct ctl_table *table, int write, void *buffer, * * Returns 0 on success. */ -int proc_douintvec(struct ctl_table *table, int write, void *buffer, +int proc_douintvec(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { return do_proc_douintvec(table, write, buffer, lenp, ppos, @@ -769,7 +769,7 @@ int proc_douintvec(struct ctl_table *table, int write, void *buffer, * Taint values can only be increased * This means we can safely use a temporary. */ -static int proc_taint(struct ctl_table *table, int write, +static int proc_taint(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct ctl_table t; @@ -864,7 +864,7 @@ static int do_proc_dointvec_minmax_conv(bool *negp, unsigned long *lvalp, * * Returns 0 on success or -EINVAL on write when the range check fails. */ -int proc_dointvec_minmax(struct ctl_table *table, int write, +int proc_dointvec_minmax(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct do_proc_dointvec_minmax_conv_param param = { @@ -933,7 +933,7 @@ static int do_proc_douintvec_minmax_conv(unsigned long *lvalp, * * Returns 0 on success or -ERANGE on write when the range check fails. */ -int proc_douintvec_minmax(struct ctl_table *table, int write, +int proc_douintvec_minmax(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct do_proc_douintvec_minmax_conv_param param = { @@ -961,7 +961,7 @@ int proc_douintvec_minmax(struct ctl_table *table, int write, * * Returns 0 on success or an error on write when the range check fails. */ -int proc_dou8vec_minmax(struct ctl_table *table, int write, +int proc_dou8vec_minmax(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct ctl_table tmp; @@ -1004,7 +1004,7 @@ int proc_dou8vec_minmax(struct ctl_table *table, int write, EXPORT_SYMBOL_GPL(proc_dou8vec_minmax); #ifdef CONFIG_MAGIC_SYSRQ -static int sysrq_sysctl_handler(struct ctl_table *table, int write, +static int sysrq_sysctl_handler(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { int tmp, ret; @@ -1121,7 +1121,7 @@ static int do_proc_doulongvec_minmax(const struct ctl_table *table, int write, * * Returns 0 on success. */ -int proc_doulongvec_minmax(struct ctl_table *table, int write, +int proc_doulongvec_minmax(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { return do_proc_doulongvec_minmax(table, write, buffer, lenp, ppos, 1l, 1l); @@ -1144,7 +1144,7 @@ int proc_doulongvec_minmax(struct ctl_table *table, int write, * * Returns 0 on success. */ -int proc_doulongvec_ms_jiffies_minmax(struct ctl_table *table, int write, +int proc_doulongvec_ms_jiffies_minmax(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { return do_proc_doulongvec_minmax(table, write, buffer, @@ -1265,14 +1265,14 @@ static int do_proc_dointvec_ms_jiffies_minmax_conv(bool *negp, unsigned long *lv * * Returns 0 on success. */ -int proc_dointvec_jiffies(struct ctl_table *table, int write, +int proc_dointvec_jiffies(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { return do_proc_dointvec(table,write,buffer,lenp,ppos, do_proc_dointvec_jiffies_conv,NULL); } -int proc_dointvec_ms_jiffies_minmax(struct ctl_table *table, int write, +int proc_dointvec_ms_jiffies_minmax(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct do_proc_dointvec_minmax_conv_param param = { @@ -1298,7 +1298,7 @@ int proc_dointvec_ms_jiffies_minmax(struct ctl_table *table, int write, * * Returns 0 on success. */ -int proc_dointvec_userhz_jiffies(struct ctl_table *table, int write, +int proc_dointvec_userhz_jiffies(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { return do_proc_dointvec(table, write, buffer, lenp, ppos, @@ -1321,15 +1321,15 @@ int proc_dointvec_userhz_jiffies(struct ctl_table *table, int write, * * Returns 0 on success. */ -int proc_dointvec_ms_jiffies(struct ctl_table *table, int write, void *buffer, - size_t *lenp, loff_t *ppos) +int proc_dointvec_ms_jiffies(const struct ctl_table *table, int write, + void *buffer, size_t *lenp, loff_t *ppos) { return do_proc_dointvec(table, write, buffer, lenp, ppos, do_proc_dointvec_ms_jiffies_conv, NULL); } -static int proc_do_cad_pid(struct ctl_table *table, int write, void *buffer, - size_t *lenp, loff_t *ppos) +static int proc_do_cad_pid(const struct ctl_table *table, int write, + void *buffer, size_t *lenp, loff_t *ppos) { struct pid *new_pid; pid_t tmp; @@ -1367,7 +1367,7 @@ static int proc_do_cad_pid(struct ctl_table *table, int write, void *buffer, * * Returns 0 on success. */ -int proc_do_large_bitmap(struct ctl_table *table, int write, +int proc_do_large_bitmap(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { int err = 0; @@ -1499,85 +1499,85 @@ int proc_do_large_bitmap(struct ctl_table *table, int write, #else /* CONFIG_PROC_SYSCTL */ -int proc_dostring(struct ctl_table *table, int write, +int proc_dostring(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { return -ENOSYS; } -int proc_dobool(struct ctl_table *table, int write, +int proc_dobool(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { return -ENOSYS; } -int proc_dointvec(struct ctl_table *table, int write, +int proc_dointvec(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { return -ENOSYS; } -int proc_douintvec(struct ctl_table *table, int write, +int proc_douintvec(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { return -ENOSYS; } -int proc_dointvec_minmax(struct ctl_table *table, int write, +int proc_dointvec_minmax(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { return -ENOSYS; } -int proc_douintvec_minmax(struct ctl_table *table, int write, +int proc_douintvec_minmax(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { return -ENOSYS; } -int proc_dou8vec_minmax(struct ctl_table *table, int write, +int proc_dou8vec_minmax(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { return -ENOSYS; } -int proc_dointvec_jiffies(struct ctl_table *table, int write, +int proc_dointvec_jiffies(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { return -ENOSYS; } -int proc_dointvec_ms_jiffies_minmax(struct ctl_table *table, int write, +int proc_dointvec_ms_jiffies_minmax(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { return -ENOSYS; } -int proc_dointvec_userhz_jiffies(struct ctl_table *table, int write, +int proc_dointvec_userhz_jiffies(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { return -ENOSYS; } -int proc_dointvec_ms_jiffies(struct ctl_table *table, int write, +int proc_dointvec_ms_jiffies(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { return -ENOSYS; } -int proc_doulongvec_minmax(struct ctl_table *table, int write, +int proc_doulongvec_minmax(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { return -ENOSYS; } -int proc_doulongvec_ms_jiffies_minmax(struct ctl_table *table, int write, +int proc_doulongvec_ms_jiffies_minmax(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { return -ENOSYS; } -int proc_do_large_bitmap(struct ctl_table *table, int write, +int proc_do_large_bitmap(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { return -ENOSYS; @@ -1586,7 +1586,7 @@ int proc_do_large_bitmap(struct ctl_table *table, int write, #endif /* CONFIG_PROC_SYSCTL */ #if defined(CONFIG_SYSCTL) -int proc_do_static_key(struct ctl_table *table, int write, +int proc_do_static_key(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct static_key *key = (struct static_key *)table->data; diff --git a/kernel/time/timer.c b/kernel/time/timer.c index 48288dd4a102..64b0d8a0aa0f 100644 --- a/kernel/time/timer.c +++ b/kernel/time/timer.c @@ -289,7 +289,7 @@ static void timers_update_migration(void) } #ifdef CONFIG_SYSCTL -static int timer_migration_handler(struct ctl_table *table, int write, +static int timer_migration_handler(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { int ret; diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c index f783d7b279f6..db1ebe70866a 100644 --- a/kernel/trace/ftrace.c +++ b/kernel/trace/ftrace.c @@ -8223,7 +8223,7 @@ static bool is_permanent_ops_registered(void) } static int -ftrace_enable_sysctl(struct ctl_table *table, int write, +ftrace_enable_sysctl(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { int ret = -ENODEV; diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index 233d1af39fff..2e6a0b1142d3 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c @@ -2761,7 +2761,7 @@ static void output_printk(struct trace_event_buffer *fbuffer) raw_spin_unlock_irqrestore(&tracepoint_iter_lock, flags); } -int tracepoint_printk_sysctl(struct ctl_table *table, int write, +int tracepoint_printk_sysctl(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { diff --git a/kernel/trace/trace_events_user.c b/kernel/trace/trace_events_user.c index 304ceed9fd7d..a2f048c8382f 100644 --- a/kernel/trace/trace_events_user.c +++ b/kernel/trace/trace_events_user.c @@ -2811,7 +2811,7 @@ static int create_user_tracefs(void) return -ENODEV; } -static int set_max_user_events_sysctl(struct ctl_table *table, int write, +static int set_max_user_events_sysctl(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { int ret; diff --git a/kernel/trace/trace_stack.c b/kernel/trace/trace_stack.c index 5a48dba912ea..7f9572a37333 100644 --- a/kernel/trace/trace_stack.c +++ b/kernel/trace/trace_stack.c @@ -514,7 +514,7 @@ static const struct file_operations stack_trace_filter_fops = { #endif /* CONFIG_DYNAMIC_FTRACE */ int -stack_trace_sysctl(struct ctl_table *table, int write, void *buffer, +stack_trace_sysctl(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { int was_enabled; diff --git a/kernel/umh.c b/kernel/umh.c index 598b3ffe1522..ff1f13a27d29 100644 --- a/kernel/umh.c +++ b/kernel/umh.c @@ -495,7 +495,7 @@ int call_usermodehelper(const char *path, char **argv, char **envp, int wait) EXPORT_SYMBOL(call_usermodehelper); #if defined(CONFIG_SYSCTL) -static int proc_cap_handler(struct ctl_table *table, int write, +static int proc_cap_handler(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct ctl_table t; diff --git a/kernel/utsname_sysctl.c b/kernel/utsname_sysctl.c index 04e4513f2985..7282f61a8650 100644 --- a/kernel/utsname_sysctl.c +++ b/kernel/utsname_sysctl.c @@ -30,7 +30,7 @@ static void *get_uts(const struct ctl_table *table) * Special case of dostring for the UTS structure. This has locks * to observe. Should this be in kernel/sys.c ???? */ -static int proc_do_uts_string(struct ctl_table *table, int write, +static int proc_do_uts_string(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct ctl_table uts_table; diff --git a/kernel/watchdog.c b/kernel/watchdog.c index 941236828de8..6cbdd1143f06 100644 --- a/kernel/watchdog.c +++ b/kernel/watchdog.c @@ -974,7 +974,7 @@ static void proc_watchdog_update(void) * -------------------|----------------------------------|------------------------------- * proc_soft_watchdog | watchdog_softlockup_user_enabled | WATCHDOG_SOFTOCKUP_ENABLED */ -static int proc_watchdog_common(int which, struct ctl_table *table, int write, +static int proc_watchdog_common(int which, const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { int err, old, *param = table->data; @@ -1001,7 +1001,7 @@ static int proc_watchdog_common(int which, struct ctl_table *table, int write, /* * /proc/sys/kernel/watchdog */ -static int proc_watchdog(struct ctl_table *table, int write, +static int proc_watchdog(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { return proc_watchdog_common(WATCHDOG_HARDLOCKUP_ENABLED | @@ -1012,7 +1012,7 @@ static int proc_watchdog(struct ctl_table *table, int write, /* * /proc/sys/kernel/nmi_watchdog */ -static int proc_nmi_watchdog(struct ctl_table *table, int write, +static int proc_nmi_watchdog(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { if (!watchdog_hardlockup_available && write) @@ -1025,7 +1025,7 @@ static int proc_nmi_watchdog(struct ctl_table *table, int write, /* * /proc/sys/kernel/soft_watchdog */ -static int proc_soft_watchdog(struct ctl_table *table, int write, +static int proc_soft_watchdog(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { return proc_watchdog_common(WATCHDOG_SOFTOCKUP_ENABLED, @@ -1036,7 +1036,7 @@ static int proc_soft_watchdog(struct ctl_table *table, int write, /* * /proc/sys/kernel/watchdog_thresh */ -static int proc_watchdog_thresh(struct ctl_table *table, int write, +static int proc_watchdog_thresh(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { int err, old; @@ -1059,7 +1059,7 @@ static int proc_watchdog_thresh(struct ctl_table *table, int write, * user to specify a mask that will include cpus that have not yet * been brought online, if desired. */ -static int proc_watchdog_cpumask(struct ctl_table *table, int write, +static int proc_watchdog_cpumask(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { int err; diff --git a/mm/compaction.c b/mm/compaction.c index e731d45befc7..ea5957c2da39 100644 --- a/mm/compaction.c +++ b/mm/compaction.c @@ -2955,7 +2955,7 @@ static int compact_nodes(void) return 0; } -static int compaction_proactiveness_sysctl_handler(struct ctl_table *table, int write, +static int compaction_proactiveness_sysctl_handler(const struct ctl_table *table, int write, void *buffer, size_t *length, loff_t *ppos) { int rc, nid; @@ -2985,7 +2985,7 @@ static int compaction_proactiveness_sysctl_handler(struct ctl_table *table, int * This is the entry point for compacting all nodes via * /proc/sys/vm/compact_memory */ -static int sysctl_compaction_handler(struct ctl_table *table, int write, +static int sysctl_compaction_handler(const struct ctl_table *table, int write, void *buffer, size_t *length, loff_t *ppos) { int ret; @@ -3296,7 +3296,7 @@ static int kcompactd_cpu_online(unsigned int cpu) return 0; } -static int proc_dointvec_minmax_warn_RT_change(struct ctl_table *table, +static int proc_dointvec_minmax_warn_RT_change(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { int ret, old; diff --git a/mm/hugetlb.c b/mm/hugetlb.c index 8d12ce63a439..9b0834634e8b 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c @@ -4950,7 +4950,7 @@ static int hugetlb_sysctl_handler_common(bool obey_mempolicy, return ret; } -static int hugetlb_sysctl_handler(struct ctl_table *table, int write, +static int hugetlb_sysctl_handler(const struct ctl_table *table, int write, void *buffer, size_t *length, loff_t *ppos) { @@ -4959,15 +4959,15 @@ static int hugetlb_sysctl_handler(struct ctl_table *table, int write, } #ifdef CONFIG_NUMA -static int hugetlb_mempolicy_sysctl_handler(struct ctl_table *table, int write, - void *buffer, size_t *length, loff_t *ppos) +static int hugetlb_mempolicy_sysctl_handler(const struct ctl_table *table, + int write, void *buffer, size_t *length, loff_t *ppos) { return hugetlb_sysctl_handler_common(true, table, write, buffer, length, ppos); } #endif /* CONFIG_NUMA */ -static int hugetlb_overcommit_handler(struct ctl_table *table, int write, +static int hugetlb_overcommit_handler(const struct ctl_table *table, int write, void *buffer, size_t *length, loff_t *ppos) { struct hstate *h = &default_hstate; diff --git a/mm/page-writeback.c b/mm/page-writeback.c index db5769cb12fd..b86aece672bf 100644 --- a/mm/page-writeback.c +++ b/mm/page-writeback.c @@ -493,8 +493,8 @@ bool node_dirty_ok(struct pglist_data *pgdat) } #ifdef CONFIG_SYSCTL -static int dirty_background_ratio_handler(struct ctl_table *table, int write, - void *buffer, size_t *lenp, loff_t *ppos) +static int dirty_background_ratio_handler(const struct ctl_table *table, + int write, void *buffer, size_t *lenp, loff_t *ppos) { int ret; @@ -504,8 +504,8 @@ static int dirty_background_ratio_handler(struct ctl_table *table, int write, return ret; } -static int dirty_background_bytes_handler(struct ctl_table *table, int write, - void *buffer, size_t *lenp, loff_t *ppos) +static int dirty_background_bytes_handler(const struct ctl_table *table, + int write, void *buffer, size_t *lenp, loff_t *ppos) { int ret; @@ -515,8 +515,8 @@ static int dirty_background_bytes_handler(struct ctl_table *table, int write, return ret; } -static int dirty_ratio_handler(struct ctl_table *table, int write, void *buffer, - size_t *lenp, loff_t *ppos) +static int dirty_ratio_handler(const struct ctl_table *table, int write, + void *buffer, size_t *lenp, loff_t *ppos) { int old_ratio = vm_dirty_ratio; int ret; @@ -529,7 +529,7 @@ static int dirty_ratio_handler(struct ctl_table *table, int write, void *buffer, return ret; } -static int dirty_bytes_handler(struct ctl_table *table, int write, +static int dirty_bytes_handler(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { unsigned long old_bytes = vm_dirty_bytes; @@ -2151,8 +2151,8 @@ bool wb_over_bg_thresh(struct bdi_writeback *wb) /* * sysctl handler for /proc/sys/vm/dirty_writeback_centisecs */ -static int dirty_writeback_centisecs_handler(struct ctl_table *table, int write, - void *buffer, size_t *length, loff_t *ppos) +static int dirty_writeback_centisecs_handler(const struct ctl_table *table, + int write, void *buffer, size_t *length, loff_t *ppos) { unsigned int old_interval = dirty_writeback_interval; int ret; diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 33d4a1be927b..9810ea000e71 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -5135,7 +5135,7 @@ static char numa_zonelist_order[] = "Node"; /* * sysctl handler for numa_zonelist_order */ -static int numa_zonelist_order_handler(struct ctl_table *table, int write, +static int numa_zonelist_order_handler(const struct ctl_table *table, int write, void *buffer, size_t *length, loff_t *ppos) { if (write) @@ -6102,7 +6102,7 @@ postcore_initcall(init_per_zone_wmark_min) * that we can call two helper functions whenever min_free_kbytes * changes. */ -static int min_free_kbytes_sysctl_handler(struct ctl_table *table, int write, +static int min_free_kbytes_sysctl_handler(const struct ctl_table *table, int write, void *buffer, size_t *length, loff_t *ppos) { int rc; @@ -6118,7 +6118,7 @@ static int min_free_kbytes_sysctl_handler(struct ctl_table *table, int write, return 0; } -static int watermark_scale_factor_sysctl_handler(struct ctl_table *table, int write, +static int watermark_scale_factor_sysctl_handler(const struct ctl_table *table, int write, void *buffer, size_t *length, loff_t *ppos) { int rc; @@ -6148,7 +6148,7 @@ static void setup_min_unmapped_ratio(void) } -static int sysctl_min_unmapped_ratio_sysctl_handler(struct ctl_table *table, int write, +static int sysctl_min_unmapped_ratio_sysctl_handler(const struct ctl_table *table, int write, void *buffer, size_t *length, loff_t *ppos) { int rc; @@ -6175,7 +6175,7 @@ static void setup_min_slab_ratio(void) sysctl_min_slab_ratio) / 100; } -static int sysctl_min_slab_ratio_sysctl_handler(struct ctl_table *table, int write, +static int sysctl_min_slab_ratio_sysctl_handler(const struct ctl_table *table, int write, void *buffer, size_t *length, loff_t *ppos) { int rc; @@ -6199,7 +6199,7 @@ static int sysctl_min_slab_ratio_sysctl_handler(struct ctl_table *table, int wri * minimum watermarks. The lowmem reserve ratio can only make sense * if in function of the boot time zone sizes. */ -static int lowmem_reserve_ratio_sysctl_handler(struct ctl_table *table, +static int lowmem_reserve_ratio_sysctl_handler(const struct ctl_table *table, int write, void *buffer, size_t *length, loff_t *ppos) { int i; @@ -6220,7 +6220,7 @@ static int lowmem_reserve_ratio_sysctl_handler(struct ctl_table *table, * cpu. It is the fraction of total pages in each zone that a hot per cpu * pagelist can have before it gets flushed back to buddy allocator. */ -static int percpu_pagelist_high_fraction_sysctl_handler(struct ctl_table *table, +static int percpu_pagelist_high_fraction_sysctl_handler(const struct ctl_table *table, int write, void *buffer, size_t *length, loff_t *ppos) { struct zone *zone; diff --git a/mm/util.c b/mm/util.c index c9e519e6811f..958b9013d2f3 100644 --- a/mm/util.c +++ b/mm/util.c @@ -835,8 +835,8 @@ int sysctl_max_map_count __read_mostly = DEFAULT_MAX_MAP_COUNT; unsigned long sysctl_user_reserve_kbytes __read_mostly = 1UL << 17; /* 128MB */ unsigned long sysctl_admin_reserve_kbytes __read_mostly = 1UL << 13; /* 8MB */ -int overcommit_ratio_handler(struct ctl_table *table, int write, void *buffer, - size_t *lenp, loff_t *ppos) +int overcommit_ratio_handler(const struct ctl_table *table, int write, + void *buffer, size_t *lenp, loff_t *ppos) { int ret; @@ -851,8 +851,8 @@ static void sync_overcommit_as(struct work_struct *dummy) percpu_counter_sync(&vm_committed_as); } -int overcommit_policy_handler(struct ctl_table *table, int write, void *buffer, - size_t *lenp, loff_t *ppos) +int overcommit_policy_handler(const struct ctl_table *table, int write, + void *buffer, size_t *lenp, loff_t *ppos) { struct ctl_table t; int new_policy = -1; @@ -887,8 +887,8 @@ int overcommit_policy_handler(struct ctl_table *table, int write, void *buffer, return ret; } -int overcommit_kbytes_handler(struct ctl_table *table, int write, void *buffer, - size_t *lenp, loff_t *ppos) +int overcommit_kbytes_handler(const struct ctl_table *table, int write, + void *buffer, size_t *lenp, loff_t *ppos) { int ret; diff --git a/mm/vmstat.c b/mm/vmstat.c index 8507c497218b..33a032d69554 100644 --- a/mm/vmstat.c +++ b/mm/vmstat.c @@ -74,7 +74,7 @@ static void invalid_numa_statistics(void) static DEFINE_MUTEX(vm_numa_stat_lock); -int sysctl_vm_numa_stat_handler(struct ctl_table *table, int write, +int sysctl_vm_numa_stat_handler(const struct ctl_table *table, int write, void *buffer, size_t *length, loff_t *ppos) { int ret, oldval; @@ -1887,7 +1887,7 @@ static void refresh_vm_stats(struct work_struct *work) refresh_cpu_vm_stats(true); } -int vmstat_refresh(struct ctl_table *table, int write, +int vmstat_refresh(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { long val; diff --git a/net/bridge/br_netfilter_hooks.c b/net/bridge/br_netfilter_hooks.c index 7948a9e7542c..0c95eb0ae8f0 100644 --- a/net/bridge/br_netfilter_hooks.c +++ b/net/bridge/br_netfilter_hooks.c @@ -1177,7 +1177,7 @@ int br_nf_hook_thresh(unsigned int hook, struct net *net, #ifdef CONFIG_SYSCTL static -int brnf_sysctl_call_tables(struct ctl_table *ctl, int write, +int brnf_sysctl_call_tables(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { int ret; diff --git a/net/core/neighbour.c b/net/core/neighbour.c index 92a01664a723..9a089e3bcd34 100644 --- a/net/core/neighbour.c +++ b/net/core/neighbour.c @@ -3543,7 +3543,7 @@ EXPORT_SYMBOL(neigh_app_ns); #ifdef CONFIG_SYSCTL static int unres_qlen_max = INT_MAX / SKB_TRUESIZE(ETH_FRAME_LEN); -static int proc_unres_qlen(struct ctl_table *ctl, int write, +static int proc_unres_qlen(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { int size, ret; @@ -3595,7 +3595,7 @@ static void neigh_proc_update(const struct ctl_table *ctl, int write) neigh_copy_dflt_parms(net, p, index); } -static int neigh_proc_dointvec_zero_intmax(struct ctl_table *ctl, int write, +static int neigh_proc_dointvec_zero_intmax(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { @@ -3610,7 +3610,7 @@ static int neigh_proc_dointvec_zero_intmax(struct ctl_table *ctl, int write, return ret; } -static int neigh_proc_dointvec_ms_jiffies_positive(struct ctl_table *ctl, int write, +static int neigh_proc_dointvec_ms_jiffies_positive(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct ctl_table tmp = *ctl; @@ -3626,7 +3626,7 @@ static int neigh_proc_dointvec_ms_jiffies_positive(struct ctl_table *ctl, int wr return ret; } -int neigh_proc_dointvec(struct ctl_table *ctl, int write, void *buffer, +int neigh_proc_dointvec(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { int ret = proc_dointvec(ctl, write, buffer, lenp, ppos); @@ -3636,7 +3636,7 @@ int neigh_proc_dointvec(struct ctl_table *ctl, int write, void *buffer, } EXPORT_SYMBOL(neigh_proc_dointvec); -int neigh_proc_dointvec_jiffies(struct ctl_table *ctl, int write, void *buffer, +int neigh_proc_dointvec_jiffies(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { int ret = proc_dointvec_jiffies(ctl, write, buffer, lenp, ppos); @@ -3646,7 +3646,7 @@ int neigh_proc_dointvec_jiffies(struct ctl_table *ctl, int write, void *buffer, } EXPORT_SYMBOL(neigh_proc_dointvec_jiffies); -static int neigh_proc_dointvec_userhz_jiffies(struct ctl_table *ctl, int write, +static int neigh_proc_dointvec_userhz_jiffies(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { @@ -3656,7 +3656,7 @@ static int neigh_proc_dointvec_userhz_jiffies(struct ctl_table *ctl, int write, return ret; } -int neigh_proc_dointvec_ms_jiffies(struct ctl_table *ctl, int write, +int neigh_proc_dointvec_ms_jiffies(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { int ret = proc_dointvec_ms_jiffies(ctl, write, buffer, lenp, ppos); @@ -3666,7 +3666,7 @@ int neigh_proc_dointvec_ms_jiffies(struct ctl_table *ctl, int write, } EXPORT_SYMBOL(neigh_proc_dointvec_ms_jiffies); -static int neigh_proc_dointvec_unres_qlen(struct ctl_table *ctl, int write, +static int neigh_proc_dointvec_unres_qlen(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { @@ -3676,7 +3676,7 @@ static int neigh_proc_dointvec_unres_qlen(struct ctl_table *ctl, int write, return ret; } -static int neigh_proc_base_reachable_time(struct ctl_table *ctl, int write, +static int neigh_proc_base_reachable_time(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { diff --git a/net/core/sysctl_net_core.c b/net/core/sysctl_net_core.c index 903ab4a51c17..ba9842d773e3 100644 --- a/net/core/sysctl_net_core.c +++ b/net/core/sysctl_net_core.c @@ -94,7 +94,7 @@ static struct cpumask *rps_default_mask_cow_alloc(struct net *net) return rps_default_mask; } -static int rps_default_mask_sysctl(struct ctl_table *table, int write, +static int rps_default_mask_sysctl(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct net *net = (struct net *)table->data; @@ -125,7 +125,7 @@ static int rps_default_mask_sysctl(struct ctl_table *table, int write, return err; } -static int rps_sock_flow_sysctl(struct ctl_table *table, int write, +static int rps_sock_flow_sysctl(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { unsigned int orig_size, size; @@ -197,7 +197,7 @@ static int rps_sock_flow_sysctl(struct ctl_table *table, int write, #ifdef CONFIG_NET_FLOW_LIMIT static DEFINE_MUTEX(flow_limit_update_mutex); -static int flow_limit_cpu_sysctl(struct ctl_table *table, int write, +static int flow_limit_cpu_sysctl(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct sd_flow_limit *cur; @@ -254,7 +254,7 @@ static int flow_limit_cpu_sysctl(struct ctl_table *table, int write, return ret; } -static int flow_limit_table_len_sysctl(struct ctl_table *table, int write, +static int flow_limit_table_len_sysctl(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { unsigned int old, *ptr; @@ -276,7 +276,7 @@ static int flow_limit_table_len_sysctl(struct ctl_table *table, int write, #endif /* CONFIG_NET_FLOW_LIMIT */ #ifdef CONFIG_NET_SCHED -static int set_default_qdisc(struct ctl_table *table, int write, +static int set_default_qdisc(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { char id[IFNAMSIZ]; @@ -295,7 +295,7 @@ static int set_default_qdisc(struct ctl_table *table, int write, } #endif -static int proc_do_dev_weight(struct ctl_table *table, int write, +static int proc_do_dev_weight(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { static DEFINE_MUTEX(dev_weight_mutex); @@ -313,7 +313,7 @@ static int proc_do_dev_weight(struct ctl_table *table, int write, return ret; } -static int proc_do_rss_key(struct ctl_table *table, int write, +static int proc_do_rss_key(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct ctl_table fake_table; @@ -326,7 +326,7 @@ static int proc_do_rss_key(struct ctl_table *table, int write, } #ifdef CONFIG_BPF_JIT -static int proc_dointvec_minmax_bpf_enable(struct ctl_table *table, int write, +static int proc_dointvec_minmax_bpf_enable(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { @@ -359,7 +359,7 @@ static int proc_dointvec_minmax_bpf_enable(struct ctl_table *table, int write, # ifdef CONFIG_HAVE_EBPF_JIT static int -proc_dointvec_minmax_bpf_restricted(struct ctl_table *table, int write, +proc_dointvec_minmax_bpf_restricted(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { if (!capable(CAP_SYS_ADMIN)) @@ -370,7 +370,7 @@ proc_dointvec_minmax_bpf_restricted(struct ctl_table *table, int write, # endif /* CONFIG_HAVE_EBPF_JIT */ static int -proc_dolongvec_minmax_bpf_restricted(struct ctl_table *table, int write, +proc_dolongvec_minmax_bpf_restricted(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { if (!capable(CAP_SYS_ADMIN)) diff --git a/net/ipv4/devinet.c b/net/ipv4/devinet.c index 7592f242336b..2e6912c1fb21 100644 --- a/net/ipv4/devinet.c +++ b/net/ipv4/devinet.c @@ -2377,7 +2377,7 @@ static int devinet_conf_ifindex(struct net *net, struct ipv4_devconf *cnf) } } -static int devinet_conf_proc(struct ctl_table *ctl, int write, +static int devinet_conf_proc(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { int old_value = *(int *)ctl->data; @@ -2429,7 +2429,7 @@ static int devinet_conf_proc(struct ctl_table *ctl, int write, return ret; } -static int devinet_sysctl_forward(struct ctl_table *ctl, int write, +static int devinet_sysctl_forward(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { int *valp = ctl->data; @@ -2476,7 +2476,7 @@ static int devinet_sysctl_forward(struct ctl_table *ctl, int write, return ret; } -static int ipv4_doint_and_flush(struct ctl_table *ctl, int write, +static int ipv4_doint_and_flush(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { int *valp = ctl->data; diff --git a/net/ipv4/route.c b/net/ipv4/route.c index 2e29ab819967..d2e88f3e6fe8 100644 --- a/net/ipv4/route.c +++ b/net/ipv4/route.c @@ -3394,7 +3394,7 @@ static int ip_rt_gc_min_interval __read_mostly = HZ / 2; static int ip_rt_gc_elasticity __read_mostly = 8; static int ip_min_valid_pmtu __read_mostly = IPV4_MIN_MTU; -static int ipv4_sysctl_rtcache_flush(struct ctl_table *__ctl, int write, +static int ipv4_sysctl_rtcache_flush(const struct ctl_table *__ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct net *net = (struct net *)__ctl->extra1; diff --git a/net/ipv4/sysctl_net_ipv4.c b/net/ipv4/sysctl_net_ipv4.c index fc4c001bf72a..4c3a03b7a0f8 100644 --- a/net/ipv4/sysctl_net_ipv4.c +++ b/net/ipv4/sysctl_net_ipv4.c @@ -62,7 +62,7 @@ static void set_local_port_range(struct net *net, unsigned int low, unsigned int } /* Validate changes from /proc interface. */ -static int ipv4_local_port_range(struct ctl_table *table, int write, +static int ipv4_local_port_range(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct net *net = table->data; @@ -96,7 +96,7 @@ static int ipv4_local_port_range(struct ctl_table *table, int write, } /* Validate changes from /proc interface. */ -static int ipv4_privileged_ports(struct ctl_table *table, int write, +static int ipv4_privileged_ports(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct net *net = container_of(table->data, struct net, @@ -159,7 +159,7 @@ static void set_ping_group_range(const struct ctl_table *table, } /* Validate changes from /proc interface. */ -static int ipv4_ping_group_range(struct ctl_table *table, int write, +static int ipv4_ping_group_range(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct user_namespace *user_ns = current_user_ns(); @@ -194,7 +194,7 @@ static int ipv4_ping_group_range(struct ctl_table *table, int write, return ret; } -static int ipv4_fwd_update_priority(struct ctl_table *table, int write, +static int ipv4_fwd_update_priority(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct net *net; @@ -210,7 +210,7 @@ static int ipv4_fwd_update_priority(struct ctl_table *table, int write, return ret; } -static int proc_tcp_congestion_control(struct ctl_table *ctl, int write, +static int proc_tcp_congestion_control(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct net *net = container_of(ctl->data, struct net, @@ -230,7 +230,7 @@ static int proc_tcp_congestion_control(struct ctl_table *ctl, int write, return ret; } -static int proc_tcp_available_congestion_control(struct ctl_table *ctl, +static int proc_tcp_available_congestion_control(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { @@ -246,7 +246,7 @@ static int proc_tcp_available_congestion_control(struct ctl_table *ctl, return ret; } -static int proc_allowed_congestion_control(struct ctl_table *ctl, +static int proc_allowed_congestion_control(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { @@ -283,7 +283,7 @@ static int sscanf_key(char *buf, __le32 *key) return ret; } -static int proc_tcp_fastopen_key(struct ctl_table *table, int write, +static int proc_tcp_fastopen_key(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct net *net = container_of(table->data, struct net, @@ -354,7 +354,7 @@ static int proc_tcp_fastopen_key(struct ctl_table *table, int write, return ret; } -static int proc_tfo_blackhole_detect_timeout(struct ctl_table *table, +static int proc_tfo_blackhole_detect_timeout(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { @@ -369,7 +369,7 @@ static int proc_tfo_blackhole_detect_timeout(struct ctl_table *table, return ret; } -static int proc_tcp_available_ulp(struct ctl_table *ctl, +static int proc_tcp_available_ulp(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { @@ -386,7 +386,7 @@ static int proc_tcp_available_ulp(struct ctl_table *ctl, return ret; } -static int proc_tcp_ehash_entries(struct ctl_table *table, int write, +static int proc_tcp_ehash_entries(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct net *net = container_of(table->data, struct net, @@ -410,7 +410,7 @@ static int proc_tcp_ehash_entries(struct ctl_table *table, int write, return proc_dointvec(&tbl, write, buffer, lenp, ppos); } -static int proc_udp_hash_entries(struct ctl_table *table, int write, +static int proc_udp_hash_entries(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct net *net = container_of(table->data, struct net, @@ -434,8 +434,8 @@ static int proc_udp_hash_entries(struct ctl_table *table, int write, } #ifdef CONFIG_IP_ROUTE_MULTIPATH -static int proc_fib_multipath_hash_policy(struct ctl_table *table, int write, - void *buffer, size_t *lenp, +static int proc_fib_multipath_hash_policy(const struct ctl_table *table, + int write, void *buffer, size_t *lenp, loff_t *ppos) { struct net *net = container_of(table->data, struct net, @@ -449,8 +449,8 @@ static int proc_fib_multipath_hash_policy(struct ctl_table *table, int write, return ret; } -static int proc_fib_multipath_hash_fields(struct ctl_table *table, int write, - void *buffer, size_t *lenp, +static int proc_fib_multipath_hash_fields(const struct ctl_table *table, + int write, void *buffer, size_t *lenp, loff_t *ppos) { struct net *net; diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c index 96ab349e8ba4..5190acc3c4f8 100644 --- a/net/ipv6/addrconf.c +++ b/net/ipv6/addrconf.c @@ -6308,7 +6308,7 @@ static void ipv6_ifa_notify(int event, struct inet6_ifaddr *ifp) #ifdef CONFIG_SYSCTL -static int addrconf_sysctl_forward(struct ctl_table *ctl, int write, +static int addrconf_sysctl_forward(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { int *valp = ctl->data; @@ -6333,7 +6333,7 @@ static int addrconf_sysctl_forward(struct ctl_table *ctl, int write, return ret; } -static int addrconf_sysctl_mtu(struct ctl_table *ctl, int write, +static int addrconf_sysctl_mtu(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct inet6_dev *idev = ctl->extra1; @@ -6404,7 +6404,7 @@ static int addrconf_disable_ipv6(const struct ctl_table *table, int *p, int newf return 0; } -static int addrconf_sysctl_disable(struct ctl_table *ctl, int write, +static int addrconf_sysctl_disable(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { int *valp = ctl->data; @@ -6429,7 +6429,7 @@ static int addrconf_sysctl_disable(struct ctl_table *ctl, int write, return ret; } -static int addrconf_sysctl_proxy_ndp(struct ctl_table *ctl, int write, +static int addrconf_sysctl_proxy_ndp(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { int *valp = ctl->data; @@ -6470,7 +6470,7 @@ static int addrconf_sysctl_proxy_ndp(struct ctl_table *ctl, int write, return ret; } -static int addrconf_sysctl_addr_gen_mode(struct ctl_table *ctl, int write, +static int addrconf_sysctl_addr_gen_mode(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { @@ -6533,7 +6533,7 @@ static int addrconf_sysctl_addr_gen_mode(struct ctl_table *ctl, int write, return ret; } -static int addrconf_sysctl_stable_secret(struct ctl_table *ctl, int write, +static int addrconf_sysctl_stable_secret(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { @@ -6601,7 +6601,7 @@ static int addrconf_sysctl_stable_secret(struct ctl_table *ctl, int write, } static -int addrconf_sysctl_ignore_routes_with_linkdown(struct ctl_table *ctl, +int addrconf_sysctl_ignore_routes_with_linkdown(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) @@ -6701,8 +6701,9 @@ int addrconf_disable_policy(const struct ctl_table *ctl, int *valp, int val) return 0; } -static int addrconf_sysctl_disable_policy(struct ctl_table *ctl, int write, - void *buffer, size_t *lenp, loff_t *ppos) +static int addrconf_sysctl_disable_policy(const struct ctl_table *ctl, + int write, void *buffer, + size_t *lenp, loff_t *ppos) { int *valp = ctl->data; int val = *valp; diff --git a/net/ipv6/ndisc.c b/net/ipv6/ndisc.c index 945d5f5ca039..abcd93bee5d7 100644 --- a/net/ipv6/ndisc.c +++ b/net/ipv6/ndisc.c @@ -1951,7 +1951,7 @@ static void ndisc_warn_deprecated_sysctl(const struct ctl_table *ctl, } } -int ndisc_ifinfo_sysctl_change(struct ctl_table *ctl, int write, void *buffer, +int ndisc_ifinfo_sysctl_change(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct net_device *dev = ctl->extra1; diff --git a/net/ipv6/route.c b/net/ipv6/route.c index 1f4b935a0e57..c8340013bf72 100644 --- a/net/ipv6/route.c +++ b/net/ipv6/route.c @@ -6329,7 +6329,7 @@ static int rt6_stats_seq_show(struct seq_file *seq, void *v) #ifdef CONFIG_SYSCTL -static int ipv6_sysctl_rtcache_flush(struct ctl_table *ctl, int write, +static int ipv6_sysctl_rtcache_flush(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct net *net; diff --git a/net/ipv6/sysctl_net_ipv6.c b/net/ipv6/sysctl_net_ipv6.c index 75de55f907b0..e5a4cbc3e8c3 100644 --- a/net/ipv6/sysctl_net_ipv6.c +++ b/net/ipv6/sysctl_net_ipv6.c @@ -30,7 +30,7 @@ static u32 rt6_multipath_hash_fields_all_mask = static u32 ioam6_id_max = IOAM6_DEFAULT_ID; static u64 ioam6_id_wide_max = IOAM6_DEFAULT_ID_WIDE; -static int proc_rt6_multipath_hash_policy(struct ctl_table *table, int write, +static int proc_rt6_multipath_hash_policy(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct net *net; @@ -46,7 +46,7 @@ static int proc_rt6_multipath_hash_policy(struct ctl_table *table, int write, } static int -proc_rt6_multipath_hash_fields(struct ctl_table *table, int write, void *buffer, +proc_rt6_multipath_hash_fields(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct net *net; diff --git a/net/mpls/af_mpls.c b/net/mpls/af_mpls.c index 5d2012d1cf4a..9ed2db996ec1 100644 --- a/net/mpls/af_mpls.c +++ b/net/mpls/af_mpls.c @@ -1347,7 +1347,7 @@ static int mpls_netconf_dump_devconf(struct sk_buff *skb, #define MPLS_PERDEV_SYSCTL_OFFSET(field) \ (&((struct mpls_dev *)0)->field) -static int mpls_conf_proc(struct ctl_table *ctl, int write, +static int mpls_conf_proc(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { int oval = *(int *)ctl->data; @@ -2601,7 +2601,7 @@ static int resize_platform_label_table(struct net *net, size_t limit) return -ENOMEM; } -static int mpls_platform_labels(struct ctl_table *table, int write, +static int mpls_platform_labels(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct net *net = table->data; diff --git a/net/netfilter/ipvs/ip_vs_ctl.c b/net/netfilter/ipvs/ip_vs_ctl.c index 689ac521ea2d..e34879f7a2f4 100644 --- a/net/netfilter/ipvs/ip_vs_ctl.c +++ b/net/netfilter/ipvs/ip_vs_ctl.c @@ -1846,7 +1846,7 @@ static int ip_vs_zero_all(struct netns_ipvs *ipvs) #ifdef CONFIG_SYSCTL static int -proc_do_defense_mode(struct ctl_table *table, int write, +proc_do_defense_mode(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct netns_ipvs *ipvs = table->extra2; @@ -1873,7 +1873,7 @@ proc_do_defense_mode(struct ctl_table *table, int write, } static int -proc_do_sync_threshold(struct ctl_table *table, int write, +proc_do_sync_threshold(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct netns_ipvs *ipvs = table->extra2; @@ -1901,7 +1901,7 @@ proc_do_sync_threshold(struct ctl_table *table, int write, } static int -proc_do_sync_ports(struct ctl_table *table, int write, +proc_do_sync_ports(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { int *valp = table->data; @@ -1984,7 +1984,7 @@ static int ipvs_proc_est_cpumask_get(const struct ctl_table *table, return ret; } -static int ipvs_proc_est_cpulist(struct ctl_table *table, int write, +static int ipvs_proc_est_cpulist(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { int ret; @@ -2011,7 +2011,7 @@ static int ipvs_proc_est_cpulist(struct ctl_table *table, int write, return ret; } -static int ipvs_proc_est_nice(struct ctl_table *table, int write, +static int ipvs_proc_est_nice(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct netns_ipvs *ipvs = table->extra2; @@ -2041,7 +2041,7 @@ static int ipvs_proc_est_nice(struct ctl_table *table, int write, return ret; } -static int ipvs_proc_run_estimation(struct ctl_table *table, int write, +static int ipvs_proc_run_estimation(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct netns_ipvs *ipvs = table->extra2; diff --git a/net/netfilter/nf_conntrack_standalone.c b/net/netfilter/nf_conntrack_standalone.c index bb9dea676ec1..3d5284639ca8 100644 --- a/net/netfilter/nf_conntrack_standalone.c +++ b/net/netfilter/nf_conntrack_standalone.c @@ -527,7 +527,7 @@ EXPORT_SYMBOL_GPL(nf_conntrack_count); static unsigned int nf_conntrack_htable_size_user __read_mostly; static int -nf_conntrack_hash_sysctl(struct ctl_table *table, int write, +nf_conntrack_hash_sysctl(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { int ret; diff --git a/net/netfilter/nf_hooks_lwtunnel.c b/net/netfilter/nf_hooks_lwtunnel.c index 00e89ffd78f6..3d237f9cc8ee 100644 --- a/net/netfilter/nf_hooks_lwtunnel.c +++ b/net/netfilter/nf_hooks_lwtunnel.c @@ -25,7 +25,7 @@ static inline int nf_hooks_lwtunnel_set(int enable) } #ifdef CONFIG_SYSCTL -int nf_hooks_lwtunnel_sysctl_handler(struct ctl_table *table, int write, +int nf_hooks_lwtunnel_sysctl_handler(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { int proc_nf_hooks_lwtunnel_enabled = 0; diff --git a/net/netfilter/nf_log.c b/net/netfilter/nf_log.c index efedd2f13ac7..a8edc3e75db9 100644 --- a/net/netfilter/nf_log.c +++ b/net/netfilter/nf_log.c @@ -409,7 +409,7 @@ static struct ctl_table nf_log_sysctl_ftable[] = { { } }; -static int nf_log_proc_dostring(struct ctl_table *table, int write, +static int nf_log_proc_dostring(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { const struct nf_logger *logger; diff --git a/net/phonet/sysctl.c b/net/phonet/sysctl.c index 0d0bf41381c2..e59d16e67376 100644 --- a/net/phonet/sysctl.c +++ b/net/phonet/sysctl.c @@ -48,7 +48,7 @@ void phonet_get_local_port_range(int *min, int *max) } while (read_seqretry(&local_port_range_lock, seq)); } -static int proc_local_port_range(struct ctl_table *table, int write, +static int proc_local_port_range(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { int ret; diff --git a/net/rds/tcp.c b/net/rds/tcp.c index 2dba7505b414..d23ea8c11902 100644 --- a/net/rds/tcp.c +++ b/net/rds/tcp.c @@ -61,7 +61,7 @@ static atomic_t rds_tcp_unloading = ATOMIC_INIT(0); static struct kmem_cache *rds_tcp_conn_slab; -static int rds_tcp_skbuf_handler(struct ctl_table *ctl, int write, +static int rds_tcp_skbuf_handler(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *fpos); static int rds_tcp_min_sndbuf = SOCK_MIN_SNDBUF; @@ -683,7 +683,7 @@ static void rds_tcp_sysctl_reset(struct net *net) spin_unlock_irq(&rds_tcp_conn_lock); } -static int rds_tcp_skbuf_handler(struct ctl_table *ctl, int write, +static int rds_tcp_skbuf_handler(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *fpos) { struct net *net = current->nsproxy->net_ns; diff --git a/net/sctp/sysctl.c b/net/sctp/sysctl.c index 25bdf17c7262..3af5d7b05ae9 100644 --- a/net/sctp/sysctl.c +++ b/net/sctp/sysctl.c @@ -43,19 +43,19 @@ static unsigned long max_autoclose_max = (MAX_SCHEDULE_TIMEOUT / HZ > UINT_MAX) ? UINT_MAX : MAX_SCHEDULE_TIMEOUT / HZ; -static int proc_sctp_do_hmac_alg(struct ctl_table *ctl, int write, +static int proc_sctp_do_hmac_alg(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos); -static int proc_sctp_do_rto_min(struct ctl_table *ctl, int write, +static int proc_sctp_do_rto_min(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos); -static int proc_sctp_do_rto_max(struct ctl_table *ctl, int write, void *buffer, - size_t *lenp, loff_t *ppos); -static int proc_sctp_do_udp_port(struct ctl_table *ctl, int write, void *buffer, - size_t *lenp, loff_t *ppos); -static int proc_sctp_do_alpha_beta(struct ctl_table *ctl, int write, +static int proc_sctp_do_rto_max(const struct ctl_table *ctl, int write, + void *buffer, size_t *lenp, loff_t *ppos); +static int proc_sctp_do_udp_port(const struct ctl_table *ctl, int write, + void *buffer, size_t *lenp, loff_t *ppos); +static int proc_sctp_do_alpha_beta(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos); -static int proc_sctp_do_auth(struct ctl_table *ctl, int write, +static int proc_sctp_do_auth(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos); -static int proc_sctp_do_probe_interval(struct ctl_table *ctl, int write, +static int proc_sctp_do_probe_interval(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos); static struct ctl_table sctp_table[] = { @@ -388,7 +388,7 @@ static struct ctl_table sctp_net_table[] = { { /* sentinel */ } }; -static int proc_sctp_do_hmac_alg(struct ctl_table *ctl, int write, +static int proc_sctp_do_hmac_alg(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct net *net = current->nsproxy->net_ns; @@ -433,7 +433,7 @@ static int proc_sctp_do_hmac_alg(struct ctl_table *ctl, int write, return ret; } -static int proc_sctp_do_rto_min(struct ctl_table *ctl, int write, +static int proc_sctp_do_rto_min(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct net *net = current->nsproxy->net_ns; @@ -461,7 +461,7 @@ static int proc_sctp_do_rto_min(struct ctl_table *ctl, int write, return ret; } -static int proc_sctp_do_rto_max(struct ctl_table *ctl, int write, +static int proc_sctp_do_rto_max(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct net *net = current->nsproxy->net_ns; @@ -489,7 +489,7 @@ static int proc_sctp_do_rto_max(struct ctl_table *ctl, int write, return ret; } -static int proc_sctp_do_alpha_beta(struct ctl_table *ctl, int write, +static int proc_sctp_do_alpha_beta(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { if (write) @@ -499,7 +499,7 @@ static int proc_sctp_do_alpha_beta(struct ctl_table *ctl, int write, return proc_dointvec_minmax(ctl, write, buffer, lenp, ppos); } -static int proc_sctp_do_auth(struct ctl_table *ctl, int write, +static int proc_sctp_do_auth(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct net *net = current->nsproxy->net_ns; @@ -528,7 +528,7 @@ static int proc_sctp_do_auth(struct ctl_table *ctl, int write, return ret; } -static int proc_sctp_do_udp_port(struct ctl_table *ctl, int write, +static int proc_sctp_do_udp_port(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct net *net = current->nsproxy->net_ns; @@ -569,7 +569,7 @@ static int proc_sctp_do_udp_port(struct ctl_table *ctl, int write, return ret; } -static int proc_sctp_do_probe_interval(struct ctl_table *ctl, int write, +static int proc_sctp_do_probe_interval(const struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct net *net = current->nsproxy->net_ns; diff --git a/net/sunrpc/sysctl.c b/net/sunrpc/sysctl.c index 93941ab12549..672067efacef 100644 --- a/net/sunrpc/sysctl.c +++ b/net/sunrpc/sysctl.c @@ -40,7 +40,7 @@ EXPORT_SYMBOL_GPL(nlm_debug); #if IS_ENABLED(CONFIG_SUNRPC_DEBUG) -static int proc_do_xprt(struct ctl_table *table, int write, +static int proc_do_xprt(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { char tmpbuf[256]; @@ -62,8 +62,8 @@ static int proc_do_xprt(struct ctl_table *table, int write, } static int -proc_dodebug(struct ctl_table *table, int write, void *buffer, size_t *lenp, - loff_t *ppos) +proc_dodebug(const struct ctl_table *table, int write, void *buffer, + size_t *lenp, loff_t *ppos) { char tmpbuf[20], *s = NULL; char *p; diff --git a/net/sunrpc/xprtrdma/svc_rdma.c b/net/sunrpc/xprtrdma/svc_rdma.c index f86970733eb0..09832e4945a3 100644 --- a/net/sunrpc/xprtrdma/svc_rdma.c +++ b/net/sunrpc/xprtrdma/svc_rdma.c @@ -74,7 +74,7 @@ enum { SVCRDMA_COUNTER_BUFSIZ = sizeof(unsigned long long), }; -static int svcrdma_counter_handler(struct ctl_table *table, int write, +static int svcrdma_counter_handler(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct percpu_counter *stat = (struct percpu_counter *)table->data; diff --git a/security/apparmor/lsm.c b/security/apparmor/lsm.c index 6239777090c4..16568b6d589d 100644 --- a/security/apparmor/lsm.c +++ b/security/apparmor/lsm.c @@ -2029,7 +2029,7 @@ static int __init alloc_buffers(void) } #ifdef CONFIG_SYSCTL -static int apparmor_dointvec(struct ctl_table *table, int write, +static int apparmor_dointvec(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { if (!aa_current_policy_admin_capable(NULL)) diff --git a/security/min_addr.c b/security/min_addr.c index 88c9a6a21f47..0ce267c041ab 100644 --- a/security/min_addr.c +++ b/security/min_addr.c @@ -29,7 +29,7 @@ static void update_mmap_min_addr(void) * sysctl handler which just sets dac_mmap_min_addr = the new value and then * calls update_mmap_min_addr() so non MAP_FIXED hints get rounded properly */ -int mmap_min_addr_handler(struct ctl_table *table, int write, +int mmap_min_addr_handler(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { int ret; diff --git a/security/yama/yama_lsm.c b/security/yama/yama_lsm.c index b6684a074a59..5b762f452977 100644 --- a/security/yama/yama_lsm.c +++ b/security/yama/yama_lsm.c @@ -435,7 +435,7 @@ static struct security_hook_list yama_hooks[] __ro_after_init = { }; #ifdef CONFIG_SYSCTL -static int yama_dointvec_minmax(struct ctl_table *table, int write, +static int yama_dointvec_minmax(const struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct ctl_table table_copy; -- 2.44.0