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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0C7C8CCA473 for ; Mon, 27 Jun 2022 18:04:45 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239987AbiF0SEn (ORCPT ); Mon, 27 Jun 2022 14:04:43 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33696 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233706AbiF0SEm (ORCPT ); Mon, 27 Jun 2022 14:04:42 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8FB9BD132; Mon, 27 Jun 2022 11:04:38 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 04A8561531; Mon, 27 Jun 2022 18:04:38 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8180FC3411D; Mon, 27 Jun 2022 18:04:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1656353077; bh=zSKczzoHL+2IPAqWZ9stqX2VHIHei/r/jrczBmwH9KU=; h=Date:From:To:Cc:Subject:From; b=q4QOvRQefEcEjVVyAOahSkl46FyS0ej/BwQljX3V/tEKW1uJvemX2PdsUwiHIg7Sg YDvtmL1JtX3dS9wnyairzCKocYShwtXmeFooQK1pBYjn0nU4z5GMa7xfMTPk9cb7bZ jq6bOTrXMM1fFJRFxq0d/LZbAXmOH7I5TzmvJulBRQhyvpEa+2cET2cbtmn8IEBTzX IJ/jwM+A03aTQybuDDzJkgT9kZdGiiMxL8m60Hs9fUzbhF3UmW19Co1BmWRKOIL45X b4fYE8tW8QLzqs8PmvUF0KHkgY40QgL+2QS5U7UxNoKp+TFhXR4rbYyFY2Ts7D6y3R dm+wxbun+jboQ== Date: Mon, 27 Jun 2022 20:04:32 +0200 From: "Gustavo A. R. Silva" To: Kees Cook , linux-kernel@vger.kernel.org Cc: x86@kernel.org, dm-devel@redhat.com, linux-m68k@lists.linux-m68k.org, linux-mips@vger.kernel.org, linux-s390@vger.kernel.org, kvm@vger.kernel.org, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, netdev@vger.kernel.org, bpf@vger.kernel.org, linux-btrfs@vger.kernel.org, linux-can@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux1394-devel@lists.sourceforge.net, io-uring@vger.kernel.org, lvs-devel@vger.kernel.org, linux-mtd@lists.infradead.org, kasan-dev@googlegroups.com, linux-mmc@vger.kernel.org, nvdimm@lists.linux.dev, netfilter-devel@vger.kernel.org, coreteam@netfilter.org, linux-perf-users@vger.kernel.org, linux-raid@vger.kernel.org, linux-sctp@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, linux-scsi@vger.kernel.org, target-devel@vger.kernel.org, linux-usb@vger.kernel.org, virtualization@lists.linux-foundation.org, v9fs-developer@lists.sourceforge.net, linux-rdma@vger.kernel.org, alsa-devel@alsa-project.org, "Gustavo A. R. Silva" , linux-hardening@vger.kernel.org Subject: [PATCH][next] treewide: uapi: Replace zero-length arrays with flexible-array members Message-ID: <20220627180432.GA136081@embeddedor> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: bpf@vger.kernel.org There is a regular need in the kernel to provide a way to declare having a dynamically sized set of trailing elements in a structure. Kernel code should always use “flexible array members”[1] for these cases. The older style of one-element or zero-length arrays should no longer be used[2]. This code was transformed with the help of Coccinelle: (linux-5.19-rc2$ spatch --jobs $(getconf _NPROCESSORS_ONLN) --sp-file script.cocci --include-headers --dir . > output.patch) @@ identifier S, member, array; type T1, T2; @@ struct S { ... T1 member; T2 array[ - 0 ]; }; -fstrict-flex-arrays=3 is coming and we need to land these changes to prevent issues like these in the short future: ../fs/minix/dir.c:337:3: warning: 'strcpy' will always overflow; destination buffer has size 0, but the source string has length 2 (including NUL byte) [-Wfortify-source] strcpy(de3->name, "."); ^ Since these are all [0] to [] changes, the risk to UAPI is nearly zero. If this breaks anything, we can use a union with a new member name. [1] https://en.wikipedia.org/wiki/Flexible_array_member [2] https://www.kernel.org/doc/html/v5.16/process/deprecated.html#zero-length-and-one-element-arrays Link: https://github.com/KSPP/linux/issues/78 Build-tested-by: https://lore.kernel.org/lkml/62b675ec.wKX6AOZ6cbE71vtF%25lkp@intel.com/ Signed-off-by: Gustavo A. R. Silva --- Hi all! JFYI: I'm adding this to my -next tree. :) arch/m68k/include/uapi/asm/bootinfo.h | 4 +- arch/mips/include/uapi/asm/ucontext.h | 2 +- arch/s390/include/uapi/asm/hwctrset.h | 6 +- arch/x86/include/uapi/asm/bootparam.h | 2 +- arch/x86/include/uapi/asm/kvm.h | 12 ++-- include/uapi/drm/i915_drm.h | 6 +- include/uapi/linux/blkzoned.h | 2 +- include/uapi/linux/bpf.h | 2 +- include/uapi/linux/btrfs.h | 10 +-- include/uapi/linux/btrfs_tree.h | 2 +- include/uapi/linux/can/bcm.h | 2 +- include/uapi/linux/connector.h | 2 +- include/uapi/linux/cycx_cfm.h | 2 +- include/uapi/linux/dm-ioctl.h | 8 +-- include/uapi/linux/dm-log-userspace.h | 2 +- include/uapi/linux/ethtool.h | 28 ++++---- include/uapi/linux/fanotify.h | 2 +- include/uapi/linux/fiemap.h | 2 +- include/uapi/linux/firewire-cdev.h | 12 ++-- include/uapi/linux/fs.h | 2 +- include/uapi/linux/if_alg.h | 2 +- include/uapi/linux/if_arcnet.h | 6 +- include/uapi/linux/if_pppox.h | 4 +- include/uapi/linux/if_tun.h | 2 +- include/uapi/linux/igmp.h | 6 +- include/uapi/linux/inet_diag.h | 2 +- include/uapi/linux/inotify.h | 2 +- include/uapi/linux/io_uring.h | 2 +- include/uapi/linux/ip.h | 4 +- include/uapi/linux/ip_vs.h | 4 +- include/uapi/linux/iso_fs.h | 4 +- include/uapi/linux/jffs2.h | 8 +-- include/uapi/linux/kcov.h | 2 +- include/uapi/linux/kvm.h | 8 +-- include/uapi/linux/minix_fs.h | 4 +- include/uapi/linux/mmc/ioctl.h | 2 +- include/uapi/linux/ndctl.h | 10 +-- include/uapi/linux/net_dropmon.h | 4 +- include/uapi/linux/netfilter/x_tables.h | 4 +- include/uapi/linux/netfilter_arp/arp_tables.h | 6 +- .../uapi/linux/netfilter_bridge/ebt_among.h | 2 +- include/uapi/linux/netfilter_ipv4/ip_tables.h | 6 +- .../uapi/linux/netfilter_ipv6/ip6_tables.h | 4 +- include/uapi/linux/perf_event.h | 2 +- include/uapi/linux/pkt_cls.h | 4 +- include/uapi/linux/raid/md_p.h | 2 +- include/uapi/linux/random.h | 2 +- include/uapi/linux/romfs_fs.h | 4 +- include/uapi/linux/rtnetlink.h | 2 +- include/uapi/linux/sctp.h | 10 +-- include/uapi/linux/seg6.h | 2 +- include/uapi/linux/seg6_iptunnel.h | 2 +- include/uapi/linux/stm.h | 2 +- include/uapi/linux/target_core_user.h | 2 +- include/uapi/linux/usb/audio.h | 2 +- include/uapi/linux/usb/cdc.h | 6 +- include/uapi/linux/usb/ch9.h | 2 +- include/uapi/linux/usb/raw_gadget.h | 4 +- include/uapi/linux/usbdevice_fs.h | 4 +- include/uapi/linux/vhost_types.h | 4 +- include/uapi/linux/virtio_9p.h | 2 +- include/uapi/linux/xfrm.h | 10 +-- include/uapi/rdma/hfi/hfi1_user.h | 2 +- include/uapi/rdma/ib_user_verbs.h | 72 +++++++++---------- include/uapi/rdma/rdma_user_cm.h | 2 +- include/uapi/rdma/rdma_user_ioctl_cmds.h | 2 +- include/uapi/scsi/fc/fc_els.h | 18 ++--- include/uapi/scsi/scsi_bsg_fc.h | 2 +- include/uapi/sound/asound.h | 2 +- include/uapi/sound/firewire.h | 6 +- include/uapi/sound/skl-tplg-interface.h | 2 +- include/uapi/sound/sof/header.h | 2 +- include/uapi/sound/usb_stream.h | 2 +- tools/arch/x86/include/uapi/asm/kvm.h | 12 ++-- tools/include/uapi/drm/i915_drm.h | 6 +- tools/include/uapi/linux/bpf.h | 2 +- tools/include/uapi/linux/fs.h | 2 +- tools/include/uapi/linux/if_tun.h | 2 +- tools/include/uapi/linux/kvm.h | 8 +-- tools/include/uapi/linux/perf_event.h | 2 +- tools/include/uapi/linux/pkt_cls.h | 4 +- tools/include/uapi/linux/seg6.h | 4 +- tools/include/uapi/linux/usbdevice_fs.h | 4 +- tools/include/uapi/sound/asound.h | 2 +- 84 files changed, 218 insertions(+), 218 deletions(-) diff --git a/arch/m68k/include/uapi/asm/bootinfo.h b/arch/m68k/include/uapi/asm/bootinfo.h index 203d9cbf9630..95ecf3ae4c49 100644 --- a/arch/m68k/include/uapi/asm/bootinfo.h +++ b/arch/m68k/include/uapi/asm/bootinfo.h @@ -34,7 +34,7 @@ struct bi_record { __be16 tag; /* tag ID */ __be16 size; /* size of record (in bytes) */ - __be32 data[0]; /* data */ + __be32 data[]; /* data */ }; @@ -168,7 +168,7 @@ struct bootversion { struct { __be32 machtype; __be32 version; - } machversions[0]; + } machversions[]; } __packed; #endif /* __ASSEMBLY__ */ diff --git a/arch/mips/include/uapi/asm/ucontext.h b/arch/mips/include/uapi/asm/ucontext.h index 2d3bf8eebf1f..6122ef97c6ff 100644 --- a/arch/mips/include/uapi/asm/ucontext.h +++ b/arch/mips/include/uapi/asm/ucontext.h @@ -60,7 +60,7 @@ struct ucontext { sigset_t uc_sigmask; /* Extended context structures may follow ucontext */ - unsigned long long uc_extcontext[0]; + unsigned long long uc_extcontext[]; }; #endif /* __MIPS_UAPI_ASM_UCONTEXT_H */ diff --git a/arch/s390/include/uapi/asm/hwctrset.h b/arch/s390/include/uapi/asm/hwctrset.h index 3d8284b95f87..e56b9dd23a4b 100644 --- a/arch/s390/include/uapi/asm/hwctrset.h +++ b/arch/s390/include/uapi/asm/hwctrset.h @@ -30,18 +30,18 @@ struct s390_ctrset_start { /* Set CPUs to operate on */ struct s390_ctrset_setdata { /* Counter set data */ __u32 set; /* Counter set number */ __u32 no_cnts; /* # of counters stored in cv[] */ - __u64 cv[0]; /* Counter values (variable length) */ + __u64 cv[]; /* Counter values (variable length) */ }; struct s390_ctrset_cpudata { /* Counter set data per CPU */ __u32 cpu_nr; /* CPU number */ __u32 no_sets; /* # of counters sets in data[] */ - struct s390_ctrset_setdata data[0]; + struct s390_ctrset_setdata data[]; }; struct s390_ctrset_read { /* Structure to get all ctr sets */ __u64 no_cpus; /* Total # of CPUs data taken from */ - struct s390_ctrset_cpudata data[0]; + struct s390_ctrset_cpudata data[]; }; #define S390_HWCTR_MAGIC 'C' /* Random magic # for ioctls */ diff --git a/arch/x86/include/uapi/asm/bootparam.h b/arch/x86/include/uapi/asm/bootparam.h index bea5cdcdf532..cdd6c7f6cfa6 100644 --- a/arch/x86/include/uapi/asm/bootparam.h +++ b/arch/x86/include/uapi/asm/bootparam.h @@ -52,7 +52,7 @@ struct setup_data { __u64 next; __u32 type; __u32 len; - __u8 data[0]; + __u8 data[]; }; /* extensible setup indirect data node */ diff --git a/arch/x86/include/uapi/asm/kvm.h b/arch/x86/include/uapi/asm/kvm.h index 21614807a2cb..ec53c9fa1da9 100644 --- a/arch/x86/include/uapi/asm/kvm.h +++ b/arch/x86/include/uapi/asm/kvm.h @@ -198,13 +198,13 @@ struct kvm_msrs { __u32 nmsrs; /* number of msrs in entries */ __u32 pad; - struct kvm_msr_entry entries[0]; + struct kvm_msr_entry entries[]; }; /* for KVM_GET_MSR_INDEX_LIST */ struct kvm_msr_list { __u32 nmsrs; /* number of msrs in entries */ - __u32 indices[0]; + __u32 indices[]; }; /* Maximum size of any access bitmap in bytes */ @@ -241,7 +241,7 @@ struct kvm_cpuid_entry { struct kvm_cpuid { __u32 nent; __u32 padding; - struct kvm_cpuid_entry entries[0]; + struct kvm_cpuid_entry entries[]; }; struct kvm_cpuid_entry2 { @@ -263,7 +263,7 @@ struct kvm_cpuid_entry2 { struct kvm_cpuid2 { __u32 nent; __u32 padding; - struct kvm_cpuid_entry2 entries[0]; + struct kvm_cpuid_entry2 entries[]; }; /* for KVM_GET_PIT and KVM_SET_PIT */ @@ -389,7 +389,7 @@ struct kvm_xsave { * the contents of CPUID leaf 0xD on the host. */ __u32 region[1024]; - __u32 extra[0]; + __u32 extra[]; }; #define KVM_MAX_XCRS 16 @@ -516,7 +516,7 @@ struct kvm_pmu_event_filter { __u32 fixed_counter_bitmap; __u32 flags; __u32 pad[4]; - __u64 events[0]; + __u64 events[]; }; #define KVM_PMU_EVENT_ALLOW 0 diff --git a/include/uapi/drm/i915_drm.h b/include/uapi/drm/i915_drm.h index a2def7b27009..b28ff5d88145 100644 --- a/include/uapi/drm/i915_drm.h +++ b/include/uapi/drm/i915_drm.h @@ -2123,7 +2123,7 @@ struct i915_context_engines_load_balance { __u64 mbz64; /* reserved for future use; must be zero */ - struct i915_engine_class_instance engines[0]; + struct i915_engine_class_instance engines[]; } __attribute__((packed)); #define I915_DEFINE_CONTEXT_ENGINES_LOAD_BALANCE(name__, N__) struct { \ @@ -2161,7 +2161,7 @@ struct i915_context_engines_bond { __u64 flags; /* all undefined flags must be zero */ __u64 mbz64[4]; /* reserved for future use; must be zero */ - struct i915_engine_class_instance engines[0]; + struct i915_engine_class_instance engines[]; } __attribute__((packed)); #define I915_DEFINE_CONTEXT_ENGINES_BOND(name__, N__) struct { \ @@ -2288,7 +2288,7 @@ struct i915_context_engines_parallel_submit { * length = width (i) * num_siblings (j) * index = j + i * num_siblings */ - struct i915_engine_class_instance engines[0]; + struct i915_engine_class_instance engines[]; } __packed; diff --git a/include/uapi/linux/blkzoned.h b/include/uapi/linux/blkzoned.h index 656a326821a2..b80fcc9ea525 100644 --- a/include/uapi/linux/blkzoned.h +++ b/include/uapi/linux/blkzoned.h @@ -130,7 +130,7 @@ struct blk_zone_report { __u64 sector; __u32 nr_zones; __u32 flags; - struct blk_zone zones[0]; + struct blk_zone zones[]; }; /** diff --git a/include/uapi/linux/bpf.h b/include/uapi/linux/bpf.h index f4009dbdf62d..e4b33ba06f00 100644 --- a/include/uapi/linux/bpf.h +++ b/include/uapi/linux/bpf.h @@ -79,7 +79,7 @@ struct bpf_insn { /* Key of an a BPF_MAP_TYPE_LPM_TRIE entry */ struct bpf_lpm_trie_key { __u32 prefixlen; /* up to 32 for AF_INET, 128 for AF_INET6 */ - __u8 data[0]; /* Arbitrary size */ + __u8 data[]; /* Arbitrary size */ }; struct bpf_cgroup_storage_key { diff --git a/include/uapi/linux/btrfs.h b/include/uapi/linux/btrfs.h index d956b2993970..3d0edbe3b991 100644 --- a/include/uapi/linux/btrfs.h +++ b/include/uapi/linux/btrfs.h @@ -93,7 +93,7 @@ struct btrfs_qgroup_inherit { __u64 num_ref_copies; __u64 num_excl_copies; struct btrfs_qgroup_limit lim; - __u64 qgroups[0]; + __u64 qgroups[]; }; struct btrfs_ioctl_qgroup_limit_args { @@ -561,7 +561,7 @@ struct btrfs_ioctl_search_args_v2 { __u64 buf_size; /* in - size of buffer * out - on EOVERFLOW: needed size * to store item */ - __u64 buf[0]; /* out - found items */ + __u64 buf[]; /* out - found items */ }; struct btrfs_ioctl_clone_range_args { @@ -632,7 +632,7 @@ struct btrfs_ioctl_same_args { __u16 dest_count; /* in - total elements in info array */ __u16 reserved1; __u32 reserved2; - struct btrfs_ioctl_same_extent_info info[0]; + struct btrfs_ioctl_same_extent_info info[]; }; struct btrfs_ioctl_space_info { @@ -644,7 +644,7 @@ struct btrfs_ioctl_space_info { struct btrfs_ioctl_space_args { __u64 space_slots; __u64 total_spaces; - struct btrfs_ioctl_space_info spaces[0]; + struct btrfs_ioctl_space_info spaces[]; }; struct btrfs_data_container { @@ -652,7 +652,7 @@ struct btrfs_data_container { __u32 bytes_missing; /* out -- additional bytes needed for result */ __u32 elem_cnt; /* out */ __u32 elem_missed; /* out */ - __u64 val[0]; /* out */ + __u64 val[]; /* out */ }; struct btrfs_ioctl_ino_path_args { diff --git a/include/uapi/linux/btrfs_tree.h b/include/uapi/linux/btrfs_tree.h index d4117152d907..5f32a2a495dc 100644 --- a/include/uapi/linux/btrfs_tree.h +++ b/include/uapi/linux/btrfs_tree.h @@ -575,7 +575,7 @@ struct btrfs_inode_extref { __le64 parent_objectid; __le64 index; __le16 name_len; - __u8 name[0]; + __u8 name[]; /* name goes here */ } __attribute__ ((__packed__)); diff --git a/include/uapi/linux/can/bcm.h b/include/uapi/linux/can/bcm.h index dd2b925b09ac..f1e45f533a72 100644 --- a/include/uapi/linux/can/bcm.h +++ b/include/uapi/linux/can/bcm.h @@ -71,7 +71,7 @@ struct bcm_msg_head { struct bcm_timeval ival1, ival2; canid_t can_id; __u32 nframes; - struct can_frame frames[0]; + struct can_frame frames[]; }; enum { diff --git a/include/uapi/linux/connector.h b/include/uapi/linux/connector.h index 3738936149a2..5ae131c3f145 100644 --- a/include/uapi/linux/connector.h +++ b/include/uapi/linux/connector.h @@ -75,7 +75,7 @@ struct cn_msg { __u16 len; /* Length of the following data */ __u16 flags; - __u8 data[0]; + __u8 data[]; }; #endif /* _UAPI__CONNECTOR_H */ diff --git a/include/uapi/linux/cycx_cfm.h b/include/uapi/linux/cycx_cfm.h index 51f541942ff9..91778c8024b1 100644 --- a/include/uapi/linux/cycx_cfm.h +++ b/include/uapi/linux/cycx_cfm.h @@ -91,7 +91,7 @@ struct cycx_firmware { unsigned short reserved[6]; char descr[CFM_DESCR_LEN]; struct cycx_fw_info info; - unsigned char image[0]; + unsigned char image[]; }; struct cycx_fw_header { diff --git a/include/uapi/linux/dm-ioctl.h b/include/uapi/linux/dm-ioctl.h index 2e9550fef90f..8c97d75f3104 100644 --- a/include/uapi/linux/dm-ioctl.h +++ b/include/uapi/linux/dm-ioctl.h @@ -182,7 +182,7 @@ struct dm_target_spec { struct dm_target_deps { __u32 count; /* Array size */ __u32 padding; /* unused */ - __u64 dev[0]; /* out */ + __u64 dev[]; /* out */ }; /* @@ -192,7 +192,7 @@ struct dm_name_list { __u64 dev; __u32 next; /* offset to the next record from the _start_ of this */ - char name[0]; + char name[]; /* * The following members can be accessed by taking a pointer that @@ -216,7 +216,7 @@ struct dm_target_versions { __u32 next; __u32 version[3]; - char name[0]; + char name[]; }; /* @@ -225,7 +225,7 @@ struct dm_target_versions { struct dm_target_msg { __u64 sector; /* Device sector */ - char message[0]; + char message[]; }; /* diff --git a/include/uapi/linux/dm-log-userspace.h b/include/uapi/linux/dm-log-userspace.h index 5c47a8603376..23dad9565e46 100644 --- a/include/uapi/linux/dm-log-userspace.h +++ b/include/uapi/linux/dm-log-userspace.h @@ -426,7 +426,7 @@ struct dm_ulog_request { __u32 request_type; /* DM_ULOG_* defined above */ __u32 data_size; /* How much data (not including this struct) */ - char data[0]; + char data[]; }; #endif /* __DM_LOG_USERSPACE_H__ */ diff --git a/include/uapi/linux/ethtool.h b/include/uapi/linux/ethtool.h index e0f0ee9bc89e..2d5741fd44bb 100644 --- a/include/uapi/linux/ethtool.h +++ b/include/uapi/linux/ethtool.h @@ -257,7 +257,7 @@ struct ethtool_tunable { __u32 id; __u32 type_id; __u32 len; - void *data[0]; + void *data[]; }; #define DOWNSHIFT_DEV_DEFAULT_COUNT 0xff @@ -322,7 +322,7 @@ struct ethtool_regs { __u32 cmd; __u32 version; __u32 len; - __u8 data[0]; + __u8 data[]; }; /** @@ -348,7 +348,7 @@ struct ethtool_eeprom { __u32 magic; __u32 offset; __u32 len; - __u8 data[0]; + __u8 data[]; }; /** @@ -752,7 +752,7 @@ struct ethtool_gstrings { __u32 cmd; __u32 string_set; __u32 len; - __u8 data[0]; + __u8 data[]; }; /** @@ -777,7 +777,7 @@ struct ethtool_sset_info { __u32 cmd; __u32 reserved; __u64 sset_mask; - __u32 data[0]; + __u32 data[]; }; /** @@ -817,7 +817,7 @@ struct ethtool_test { __u32 flags; __u32 reserved; __u32 len; - __u64 data[0]; + __u64 data[]; }; /** @@ -834,7 +834,7 @@ struct ethtool_test { struct ethtool_stats { __u32 cmd; __u32 n_stats; - __u64 data[0]; + __u64 data[]; }; /** @@ -851,7 +851,7 @@ struct ethtool_stats { struct ethtool_perm_addr { __u32 cmd; __u32 size; - __u8 data[0]; + __u8 data[]; }; /* boolean flags controlling per-interface behavior characteristics. @@ -1160,7 +1160,7 @@ struct ethtool_rxnfc { struct ethtool_rxfh_indir { __u32 cmd; __u32 size; - __u32 ring_index[0]; + __u32 ring_index[]; }; /** @@ -1201,7 +1201,7 @@ struct ethtool_rxfh { __u8 hfunc; __u8 rsvd8[3]; __u32 rsvd32; - __u32 rss_config[0]; + __u32 rss_config[]; }; #define ETH_RXFH_CONTEXT_ALLOC 0xffffffff #define ETH_RXFH_INDIR_NO_CHANGE 0xffffffff @@ -1286,7 +1286,7 @@ struct ethtool_dump { __u32 version; __u32 flag; __u32 len; - __u8 data[0]; + __u8 data[]; }; #define ETH_FW_DUMP_DISABLE 0 @@ -1318,7 +1318,7 @@ struct ethtool_get_features_block { struct ethtool_gfeatures { __u32 cmd; __u32 size; - struct ethtool_get_features_block features[0]; + struct ethtool_get_features_block features[]; }; /** @@ -1340,7 +1340,7 @@ struct ethtool_set_features_block { struct ethtool_sfeatures { __u32 cmd; __u32 size; - struct ethtool_set_features_block features[0]; + struct ethtool_set_features_block features[]; }; /** @@ -2087,7 +2087,7 @@ struct ethtool_link_settings { __u8 master_slave_state; __u8 reserved1[1]; __u32 reserved[7]; - __u32 link_mode_masks[0]; + __u32 link_mode_masks[]; /* layout of link_mode_masks fields: * __u32 map_supported[link_mode_masks_nwords]; * __u32 map_advertising[link_mode_masks_nwords]; diff --git a/include/uapi/linux/fanotify.h b/include/uapi/linux/fanotify.h index f1f89132d60e..197df344307d 100644 --- a/include/uapi/linux/fanotify.h +++ b/include/uapi/linux/fanotify.h @@ -162,7 +162,7 @@ struct fanotify_event_info_fid { * Following is an opaque struct file_handle that can be passed as * an argument to open_by_handle_at(2). */ - unsigned char handle[0]; + unsigned char handle[]; }; /* diff --git a/include/uapi/linux/fiemap.h b/include/uapi/linux/fiemap.h index 07c1cdcb715e..24ca0c00cae3 100644 --- a/include/uapi/linux/fiemap.h +++ b/include/uapi/linux/fiemap.h @@ -34,7 +34,7 @@ struct fiemap { __u32 fm_mapped_extents;/* number of extents that were mapped (out) */ __u32 fm_extent_count; /* size of fm_extents array (in) */ __u32 fm_reserved; - struct fiemap_extent fm_extents[0]; /* array of mapped extents (out) */ + struct fiemap_extent fm_extents[]; /* array of mapped extents (out) */ }; #define FIEMAP_MAX_OFFSET (~0ULL) diff --git a/include/uapi/linux/firewire-cdev.h b/include/uapi/linux/firewire-cdev.h index 5effa9832802..92be3ea3c6e0 100644 --- a/include/uapi/linux/firewire-cdev.h +++ b/include/uapi/linux/firewire-cdev.h @@ -118,7 +118,7 @@ struct fw_cdev_event_response { __u32 type; __u32 rcode; __u32 length; - __u32 data[0]; + __u32 data[]; }; /** @@ -142,7 +142,7 @@ struct fw_cdev_event_request { __u64 offset; __u32 handle; __u32 length; - __u32 data[0]; + __u32 data[]; }; /** @@ -205,7 +205,7 @@ struct fw_cdev_event_request2 { __u32 generation; __u32 handle; __u32 length; - __u32 data[0]; + __u32 data[]; }; /** @@ -265,7 +265,7 @@ struct fw_cdev_event_iso_interrupt { __u32 type; __u32 cycle; __u32 header_length; - __u32 header[0]; + __u32 header[]; }; /** @@ -355,7 +355,7 @@ struct fw_cdev_event_phy_packet { __u32 type; __u32 rcode; __u32 length; - __u32 data[0]; + __u32 data[]; }; /** @@ -803,7 +803,7 @@ struct fw_cdev_set_iso_channels { */ struct fw_cdev_iso_packet { __u32 control; - __u32 header[0]; + __u32 header[]; }; /** diff --git a/include/uapi/linux/fs.h b/include/uapi/linux/fs.h index bdf7b404b3e7..b7b56871029c 100644 --- a/include/uapi/linux/fs.h +++ b/include/uapi/linux/fs.h @@ -90,7 +90,7 @@ struct file_dedupe_range { __u16 dest_count; /* in - total elements in info array */ __u16 reserved1; /* must be zero */ __u32 reserved2; /* must be zero */ - struct file_dedupe_range_info info[0]; + struct file_dedupe_range_info info[]; }; /* And dynamically-tunable limits and defaults: */ diff --git a/include/uapi/linux/if_alg.h b/include/uapi/linux/if_alg.h index dc52a11ba6d1..578b18aab821 100644 --- a/include/uapi/linux/if_alg.h +++ b/include/uapi/linux/if_alg.h @@ -42,7 +42,7 @@ struct sockaddr_alg_new { struct af_alg_iv { __u32 ivlen; - __u8 iv[0]; + __u8 iv[]; }; /* Socket options */ diff --git a/include/uapi/linux/if_arcnet.h b/include/uapi/linux/if_arcnet.h index 683878036d76..b122cfac7128 100644 --- a/include/uapi/linux/if_arcnet.h +++ b/include/uapi/linux/if_arcnet.h @@ -60,7 +60,7 @@ struct arc_rfc1201 { __u8 proto; /* protocol ID field - varies */ __u8 split_flag; /* for use with split packets */ __be16 sequence; /* sequence number */ - __u8 payload[0]; /* space remaining in packet (504 bytes)*/ + __u8 payload[]; /* space remaining in packet (504 bytes)*/ }; #define RFC1201_HDR_SIZE 4 @@ -69,7 +69,7 @@ struct arc_rfc1201 { */ struct arc_rfc1051 { __u8 proto; /* ARC_P_RFC1051_ARP/RFC1051_IP */ - __u8 payload[0]; /* 507 bytes */ + __u8 payload[]; /* 507 bytes */ }; #define RFC1051_HDR_SIZE 1 @@ -80,7 +80,7 @@ struct arc_rfc1051 { struct arc_eth_encap { __u8 proto; /* Always ARC_P_ETHER */ struct ethhdr eth; /* standard ethernet header (yuck!) */ - __u8 payload[0]; /* 493 bytes */ + __u8 payload[]; /* 493 bytes */ }; #define ETH_ENCAP_HDR_SIZE 14 diff --git a/include/uapi/linux/if_pppox.h b/include/uapi/linux/if_pppox.h index e7a693c28f16..9abd80dcc46f 100644 --- a/include/uapi/linux/if_pppox.h +++ b/include/uapi/linux/if_pppox.h @@ -122,7 +122,7 @@ struct sockaddr_pppol2tpv3in6 { struct pppoe_tag { __be16 tag_type; __be16 tag_len; - char tag_data[0]; + char tag_data[]; } __attribute__ ((packed)); /* Tag identifiers */ @@ -150,7 +150,7 @@ struct pppoe_hdr { __u8 code; __be16 sid; __be16 length; - struct pppoe_tag tag[0]; + struct pppoe_tag tag[]; } __packed; /* Length of entire PPPoE + PPP header */ diff --git a/include/uapi/linux/if_tun.h b/include/uapi/linux/if_tun.h index 454ae31b93c7..2ec07de1d73b 100644 --- a/include/uapi/linux/if_tun.h +++ b/include/uapi/linux/if_tun.h @@ -108,7 +108,7 @@ struct tun_pi { struct tun_filter { __u16 flags; /* TUN_FLT_ flags see above */ __u16 count; /* Number of addresses */ - __u8 addr[0][ETH_ALEN]; + __u8 addr[][ETH_ALEN]; }; #endif /* _UAPI__IF_TUN_H */ diff --git a/include/uapi/linux/igmp.h b/include/uapi/linux/igmp.h index 90c28bc466c6..5930f2437cd1 100644 --- a/include/uapi/linux/igmp.h +++ b/include/uapi/linux/igmp.h @@ -48,7 +48,7 @@ struct igmpv3_grec { __u8 grec_auxwords; __be16 grec_nsrcs; __be32 grec_mca; - __be32 grec_src[0]; + __be32 grec_src[]; }; struct igmpv3_report { @@ -57,7 +57,7 @@ struct igmpv3_report { __sum16 csum; __be16 resv2; __be16 ngrec; - struct igmpv3_grec grec[0]; + struct igmpv3_grec grec[]; }; struct igmpv3_query { @@ -78,7 +78,7 @@ struct igmpv3_query { #endif __u8 qqic; __be16 nsrcs; - __be32 srcs[0]; + __be32 srcs[]; }; #define IGMP_HOST_MEMBERSHIP_QUERY 0x11 /* From RFC1112 */ diff --git a/include/uapi/linux/inet_diag.h b/include/uapi/linux/inet_diag.h index 20ee93f0f876..50655de04c9b 100644 --- a/include/uapi/linux/inet_diag.h +++ b/include/uapi/linux/inet_diag.h @@ -104,7 +104,7 @@ struct inet_diag_hostcond { __u8 family; __u8 prefix_len; int port; - __be32 addr[0]; + __be32 addr[]; }; struct inet_diag_markcond { diff --git a/include/uapi/linux/inotify.h b/include/uapi/linux/inotify.h index 884b4846b630..b3e165853d5b 100644 --- a/include/uapi/linux/inotify.h +++ b/include/uapi/linux/inotify.h @@ -23,7 +23,7 @@ struct inotify_event { __u32 mask; /* watch mask */ __u32 cookie; /* cookie to synchronize two events */ __u32 len; /* length (including nulls) of name */ - char name[0]; /* stub for possible name */ + char name[]; /* stub for possible name */ }; /* the following are legal, implemented events that user-space can watch for */ diff --git a/include/uapi/linux/io_uring.h b/include/uapi/linux/io_uring.h index 776e0278f9dd..7822ef9d8628 100644 --- a/include/uapi/linux/io_uring.h +++ b/include/uapi/linux/io_uring.h @@ -486,7 +486,7 @@ struct io_uring_probe { __u8 ops_len; /* length of ops[] array below */ __u16 resv; __u32 resv2[3]; - struct io_uring_probe_op ops[0]; + struct io_uring_probe_op ops[]; }; struct io_uring_restriction { diff --git a/include/uapi/linux/ip.h b/include/uapi/linux/ip.h index e00bbb9c47bb..961ec16a26b8 100644 --- a/include/uapi/linux/ip.h +++ b/include/uapi/linux/ip.h @@ -112,13 +112,13 @@ struct ip_auth_hdr { __be16 reserved; __be32 spi; __be32 seq_no; /* Sequence number */ - __u8 auth_data[0]; /* Variable len but >=4. Mind the 64 bit alignment! */ + __u8 auth_data[]; /* Variable len but >=4. Mind the 64 bit alignment! */ }; struct ip_esp_hdr { __be32 spi; __be32 seq_no; /* Sequence number */ - __u8 enc_data[0]; /* Variable len but >=8. Mind the 64 bit alignment! */ + __u8 enc_data[]; /* Variable len but >=8. Mind the 64 bit alignment! */ }; struct ip_comp_hdr { diff --git a/include/uapi/linux/ip_vs.h b/include/uapi/linux/ip_vs.h index 4102ddcb4e14..1ed234e7f251 100644 --- a/include/uapi/linux/ip_vs.h +++ b/include/uapi/linux/ip_vs.h @@ -254,7 +254,7 @@ struct ip_vs_get_dests { unsigned int num_dests; /* the real servers */ - struct ip_vs_dest_entry entrytable[0]; + struct ip_vs_dest_entry entrytable[]; }; @@ -264,7 +264,7 @@ struct ip_vs_get_services { unsigned int num_services; /* service table */ - struct ip_vs_service_entry entrytable[0]; + struct ip_vs_service_entry entrytable[]; }; diff --git a/include/uapi/linux/iso_fs.h b/include/uapi/linux/iso_fs.h index a2555176f6d1..758178f5b52d 100644 --- a/include/uapi/linux/iso_fs.h +++ b/include/uapi/linux/iso_fs.h @@ -137,7 +137,7 @@ struct iso_path_table{ __u8 name_len[2]; /* 721 */ __u8 extent[4]; /* 731 */ __u8 parent[2]; /* 721 */ - char name[0]; + char name[]; } __attribute__((packed)); /* high sierra is identical to iso, except that the date is only 6 bytes, and @@ -154,7 +154,7 @@ struct iso_directory_record { __u8 interleave [ISODCL (28, 28)]; /* 711 */ __u8 volume_sequence_number [ISODCL (29, 32)]; /* 723 */ __u8 name_len [ISODCL (33, 33)]; /* 711 */ - char name [0]; + char name []; } __attribute__((packed)); #define ISOFS_BLOCK_BITS 11 diff --git a/include/uapi/linux/jffs2.h b/include/uapi/linux/jffs2.h index 784ba0b9690a..637ee4a793cf 100644 --- a/include/uapi/linux/jffs2.h +++ b/include/uapi/linux/jffs2.h @@ -123,7 +123,7 @@ struct jffs2_raw_dirent __u8 unused[2]; jint32_t node_crc; jint32_t name_crc; - __u8 name[0]; + __u8 name[]; }; /* The JFFS2 raw inode structure: Used for storage on physical media. */ @@ -155,7 +155,7 @@ struct jffs2_raw_inode jint16_t flags; /* See JFFS2_INO_FLAG_* */ jint32_t data_crc; /* CRC for the (compressed) data. */ jint32_t node_crc; /* CRC for the raw inode (excluding data) */ - __u8 data[0]; + __u8 data[]; }; struct jffs2_raw_xattr { @@ -170,7 +170,7 @@ struct jffs2_raw_xattr { jint16_t value_len; jint32_t data_crc; jint32_t node_crc; - __u8 data[0]; + __u8 data[]; } __attribute__((packed)); struct jffs2_raw_xref @@ -196,7 +196,7 @@ struct jffs2_raw_summary jint32_t padded; /* sum of the size of padding nodes */ jint32_t sum_crc; /* summary information crc */ jint32_t node_crc; /* node crc */ - jint32_t sum[0]; /* inode summary info */ + jint32_t sum[]; /* inode summary info */ }; union jffs2_node_union diff --git a/include/uapi/linux/kcov.h b/include/uapi/linux/kcov.h index 1d0350e44ae3..ed95dba9fa37 100644 --- a/include/uapi/linux/kcov.h +++ b/include/uapi/linux/kcov.h @@ -13,7 +13,7 @@ struct kcov_remote_arg { __u32 area_size; /* Length of coverage buffer in words */ __u32 num_handles; /* Size of handles array */ __aligned_u64 common_handle; - __aligned_u64 handles[0]; + __aligned_u64 handles[]; }; #define KCOV_REMOTE_MAX_HANDLES 0x100 diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h index 5088bd9f1922..74dc8bafcb9e 100644 --- a/include/uapi/linux/kvm.h +++ b/include/uapi/linux/kvm.h @@ -542,7 +542,7 @@ struct kvm_coalesced_mmio { struct kvm_coalesced_mmio_ring { __u32 first, last; - struct kvm_coalesced_mmio coalesced_mmio[0]; + struct kvm_coalesced_mmio coalesced_mmio[]; }; #define KVM_COALESCED_MMIO_MAX \ @@ -621,7 +621,7 @@ struct kvm_clear_dirty_log { /* for KVM_SET_SIGNAL_MASK */ struct kvm_signal_mask { __u32 len; - __u8 sigset[0]; + __u8 sigset[]; }; /* for KVM_TPR_ACCESS_REPORTING */ @@ -1221,7 +1221,7 @@ struct kvm_irq_routing_entry { struct kvm_irq_routing { __u32 nr; __u32 flags; - struct kvm_irq_routing_entry entries[0]; + struct kvm_irq_routing_entry entries[]; }; #endif @@ -1341,7 +1341,7 @@ struct kvm_dirty_tlb { struct kvm_reg_list { __u64 n; /* number of regs */ - __u64 reg[0]; + __u64 reg[]; }; struct kvm_one_reg { diff --git a/include/uapi/linux/minix_fs.h b/include/uapi/linux/minix_fs.h index 95dbcb17eacd..8d9ca8b2c357 100644 --- a/include/uapi/linux/minix_fs.h +++ b/include/uapi/linux/minix_fs.h @@ -97,11 +97,11 @@ struct minix3_super_block { struct minix_dir_entry { __u16 inode; - char name[0]; + char name[]; }; struct minix3_dir_entry { __u32 inode; - char name[0]; + char name[]; }; #endif diff --git a/include/uapi/linux/mmc/ioctl.h b/include/uapi/linux/mmc/ioctl.h index 27a39847d55c..e7401ade6822 100644 --- a/include/uapi/linux/mmc/ioctl.h +++ b/include/uapi/linux/mmc/ioctl.h @@ -58,7 +58,7 @@ struct mmc_ioc_cmd { */ struct mmc_ioc_multi_cmd { __u64 num_of_cmds; - struct mmc_ioc_cmd cmds[0]; + struct mmc_ioc_cmd cmds[]; }; #define MMC_IOC_CMD _IOWR(MMC_BLOCK_MAJOR, 0, struct mmc_ioc_cmd) diff --git a/include/uapi/linux/ndctl.h b/include/uapi/linux/ndctl.h index 17e02b64ea2e..73516e263627 100644 --- a/include/uapi/linux/ndctl.h +++ b/include/uapi/linux/ndctl.h @@ -30,25 +30,25 @@ struct nd_cmd_get_config_data_hdr { __u32 in_offset; __u32 in_length; __u32 status; - __u8 out_buf[0]; + __u8 out_buf[]; } __packed; struct nd_cmd_set_config_hdr { __u32 in_offset; __u32 in_length; - __u8 in_buf[0]; + __u8 in_buf[]; } __packed; struct nd_cmd_vendor_hdr { __u32 opcode; __u32 in_length; - __u8 in_buf[0]; + __u8 in_buf[]; } __packed; struct nd_cmd_vendor_tail { __u32 status; __u32 out_length; - __u8 out_buf[0]; + __u8 out_buf[]; } __packed; struct nd_cmd_ars_cap { @@ -86,7 +86,7 @@ struct nd_cmd_ars_status { __u32 reserved; __u64 err_address; __u64 length; - } __packed records[0]; + } __packed records[]; } __packed; struct nd_cmd_clear_error { diff --git a/include/uapi/linux/net_dropmon.h b/include/uapi/linux/net_dropmon.h index 1bbea8f0681e..84f622a66a7a 100644 --- a/include/uapi/linux/net_dropmon.h +++ b/include/uapi/linux/net_dropmon.h @@ -29,12 +29,12 @@ struct net_dm_config_entry { struct net_dm_config_msg { __u32 entries; - struct net_dm_config_entry options[0]; + struct net_dm_config_entry options[]; }; struct net_dm_alert_msg { __u32 entries; - struct net_dm_drop_point points[0]; + struct net_dm_drop_point points[]; }; struct net_dm_user_msg { diff --git a/include/uapi/linux/netfilter/x_tables.h b/include/uapi/linux/netfilter/x_tables.h index b8c6bb233ac1..796af83a963a 100644 --- a/include/uapi/linux/netfilter/x_tables.h +++ b/include/uapi/linux/netfilter/x_tables.h @@ -28,7 +28,7 @@ struct xt_entry_match { __u16 match_size; } u; - unsigned char data[0]; + unsigned char data[]; }; struct xt_entry_target { @@ -119,7 +119,7 @@ struct xt_counters_info { unsigned int num_counters; /* The counters (actually `number' of these). */ - struct xt_counters counters[0]; + struct xt_counters counters[]; }; #define XT_INV_PROTO 0x40 /* Invert the sense of PROTO. */ diff --git a/include/uapi/linux/netfilter_arp/arp_tables.h b/include/uapi/linux/netfilter_arp/arp_tables.h index bbf5af2b67a8..a6ac2463f787 100644 --- a/include/uapi/linux/netfilter_arp/arp_tables.h +++ b/include/uapi/linux/netfilter_arp/arp_tables.h @@ -109,7 +109,7 @@ struct arpt_entry struct xt_counters counters; /* The matches (if any), then the target. */ - unsigned char elems[0]; + unsigned char elems[]; }; /* @@ -181,7 +181,7 @@ struct arpt_replace { struct xt_counters __user *counters; /* The entries (hang off end: not really an array). */ - struct arpt_entry entries[0]; + struct arpt_entry entries[]; }; /* The argument to ARPT_SO_GET_ENTRIES. */ @@ -193,7 +193,7 @@ struct arpt_get_entries { unsigned int size; /* The entries. */ - struct arpt_entry entrytable[0]; + struct arpt_entry entrytable[]; }; /* Helper functions */ diff --git a/include/uapi/linux/netfilter_bridge/ebt_among.h b/include/uapi/linux/netfilter_bridge/ebt_among.h index 9acf757bc1f7..73b26a280c4f 100644 --- a/include/uapi/linux/netfilter_bridge/ebt_among.h +++ b/include/uapi/linux/netfilter_bridge/ebt_among.h @@ -40,7 +40,7 @@ struct ebt_mac_wormhash_tuple { struct ebt_mac_wormhash { int table[257]; int poolsize; - struct ebt_mac_wormhash_tuple pool[0]; + struct ebt_mac_wormhash_tuple pool[]; }; #define ebt_mac_wormhash_size(x) ((x) ? sizeof(struct ebt_mac_wormhash) \ diff --git a/include/uapi/linux/netfilter_ipv4/ip_tables.h b/include/uapi/linux/netfilter_ipv4/ip_tables.h index 50c7fee625ae..1485df28b239 100644 --- a/include/uapi/linux/netfilter_ipv4/ip_tables.h +++ b/include/uapi/linux/netfilter_ipv4/ip_tables.h @@ -121,7 +121,7 @@ struct ipt_entry { struct xt_counters counters; /* The matches (if any), then the target. */ - unsigned char elems[0]; + unsigned char elems[]; }; /* @@ -203,7 +203,7 @@ struct ipt_replace { struct xt_counters __user *counters; /* The entries (hang off end: not really an array). */ - struct ipt_entry entries[0]; + struct ipt_entry entries[]; }; /* The argument to IPT_SO_GET_ENTRIES. */ @@ -215,7 +215,7 @@ struct ipt_get_entries { unsigned int size; /* The entries. */ - struct ipt_entry entrytable[0]; + struct ipt_entry entrytable[]; }; /* Helper functions */ diff --git a/include/uapi/linux/netfilter_ipv6/ip6_tables.h b/include/uapi/linux/netfilter_ipv6/ip6_tables.h index d9e364f96a5c..766e8e0bcc68 100644 --- a/include/uapi/linux/netfilter_ipv6/ip6_tables.h +++ b/include/uapi/linux/netfilter_ipv6/ip6_tables.h @@ -243,7 +243,7 @@ struct ip6t_replace { struct xt_counters __user *counters; /* The entries (hang off end: not really an array). */ - struct ip6t_entry entries[0]; + struct ip6t_entry entries[]; }; /* The argument to IP6T_SO_GET_ENTRIES. */ @@ -255,7 +255,7 @@ struct ip6t_get_entries { unsigned int size; /* The entries. */ - struct ip6t_entry entrytable[0]; + struct ip6t_entry entrytable[]; }; /* Helper functions */ diff --git a/include/uapi/linux/perf_event.h b/include/uapi/linux/perf_event.h index d37629dbad72..4653834f078f 100644 --- a/include/uapi/linux/perf_event.h +++ b/include/uapi/linux/perf_event.h @@ -491,7 +491,7 @@ struct perf_event_query_bpf { /* * User provided buffer to store program ids */ - __u32 ids[0]; + __u32 ids[]; }; /* diff --git a/include/uapi/linux/pkt_cls.h b/include/uapi/linux/pkt_cls.h index 9a2ee1e39fad..ffbe230ef90b 100644 --- a/include/uapi/linux/pkt_cls.h +++ b/include/uapi/linux/pkt_cls.h @@ -256,7 +256,7 @@ struct tc_u32_sel { short hoff; __be32 hmask; - struct tc_u32_key keys[0]; + struct tc_u32_key keys[]; }; struct tc_u32_mark { @@ -268,7 +268,7 @@ struct tc_u32_mark { struct tc_u32_pcnt { __u64 rcnt; __u64 rhit; - __u64 kcnts[0]; + __u64 kcnts[]; }; /* Flags */ diff --git a/include/uapi/linux/raid/md_p.h b/include/uapi/linux/raid/md_p.h index e5a98a16f9b0..6c0aa577730f 100644 --- a/include/uapi/linux/raid/md_p.h +++ b/include/uapi/linux/raid/md_p.h @@ -303,7 +303,7 @@ struct mdp_superblock_1 { * into the 'roles' value. If a device is spare or faulty, then it doesn't * have a meaningful role. */ - __le16 dev_roles[0]; /* role in array, or 0xffff for a spare, or 0xfffe for faulty */ + __le16 dev_roles[]; /* role in array, or 0xffff for a spare, or 0xfffe for faulty */ }; /* feature_map bits */ diff --git a/include/uapi/linux/random.h b/include/uapi/linux/random.h index dcc1b3e6106f..e744c23582eb 100644 --- a/include/uapi/linux/random.h +++ b/include/uapi/linux/random.h @@ -41,7 +41,7 @@ struct rand_pool_info { int entropy_count; int buf_size; - __u32 buf[0]; + __u32 buf[]; }; /* diff --git a/include/uapi/linux/romfs_fs.h b/include/uapi/linux/romfs_fs.h index a7f1585accef..6aa05e792454 100644 --- a/include/uapi/linux/romfs_fs.h +++ b/include/uapi/linux/romfs_fs.h @@ -27,7 +27,7 @@ struct romfs_super_block { __be32 word1; __be32 size; __be32 checksum; - char name[0]; /* volume name */ + char name[]; /* volume name */ }; /* On disk inode */ @@ -37,7 +37,7 @@ struct romfs_inode { __be32 spec; __be32 size; __be32 checksum; - char name[0]; + char name[]; }; #define ROMFH_TYPE 7 diff --git a/include/uapi/linux/rtnetlink.h b/include/uapi/linux/rtnetlink.h index 83849a37db5b..eb2747d58a81 100644 --- a/include/uapi/linux/rtnetlink.h +++ b/include/uapi/linux/rtnetlink.h @@ -440,7 +440,7 @@ struct rtnexthop { /* RTA_VIA */ struct rtvia { __kernel_sa_family_t rtvia_family; - __u8 rtvia_addr[0]; + __u8 rtvia_addr[]; }; /* RTM_CACHEINFO */ diff --git a/include/uapi/linux/sctp.h b/include/uapi/linux/sctp.h index c4ff1ebd8bcc..ed7d4ecbf53d 100644 --- a/include/uapi/linux/sctp.h +++ b/include/uapi/linux/sctp.h @@ -365,7 +365,7 @@ struct sctp_assoc_change { __u16 sac_outbound_streams; __u16 sac_inbound_streams; sctp_assoc_t sac_assoc_id; - __u8 sac_info[0]; + __u8 sac_info[]; }; /* @@ -436,7 +436,7 @@ struct sctp_remote_error { __u32 sre_length; __be16 sre_error; sctp_assoc_t sre_assoc_id; - __u8 sre_data[0]; + __u8 sre_data[]; }; @@ -453,7 +453,7 @@ struct sctp_send_failed { __u32 ssf_error; struct sctp_sndrcvinfo ssf_info; sctp_assoc_t ssf_assoc_id; - __u8 ssf_data[0]; + __u8 ssf_data[]; }; struct sctp_send_failed_event { @@ -463,7 +463,7 @@ struct sctp_send_failed_event { __u32 ssf_error; struct sctp_sndinfo ssfe_info; sctp_assoc_t ssf_assoc_id; - __u8 ssf_data[0]; + __u8 ssf_data[]; }; /* @@ -1029,7 +1029,7 @@ struct sctp_getaddrs_old { struct sctp_getaddrs { sctp_assoc_t assoc_id; /*input*/ __u32 addr_num; /*output*/ - __u8 addrs[0]; /*output, variable size*/ + __u8 addrs[]; /*output, variable size*/ }; /* A socket user request obtained via SCTP_GET_ASSOC_STATS that retrieves diff --git a/include/uapi/linux/seg6.h b/include/uapi/linux/seg6.h index 286e8d6a8e98..13bcbc8bba32 100644 --- a/include/uapi/linux/seg6.h +++ b/include/uapi/linux/seg6.h @@ -30,7 +30,7 @@ struct ipv6_sr_hdr { __u8 flags; __u16 tag; - struct in6_addr segments[0]; + struct in6_addr segments[]; }; #define SR6_FLAG1_PROTECTED (1 << 6) diff --git a/include/uapi/linux/seg6_iptunnel.h b/include/uapi/linux/seg6_iptunnel.h index eb815e0d0ac3..a74294211290 100644 --- a/include/uapi/linux/seg6_iptunnel.h +++ b/include/uapi/linux/seg6_iptunnel.h @@ -26,7 +26,7 @@ enum { struct seg6_iptunnel_encap { int mode; - struct ipv6_sr_hdr srh[0]; + struct ipv6_sr_hdr srh[]; }; #define SEG6_IPTUN_ENCAP_SIZE(x) ((sizeof(*x)) + (((x)->srh->hdrlen + 1) << 3)) diff --git a/include/uapi/linux/stm.h b/include/uapi/linux/stm.h index 7bac318b4440..de3579c2cff0 100644 --- a/include/uapi/linux/stm.h +++ b/include/uapi/linux/stm.h @@ -36,7 +36,7 @@ struct stp_policy_id { /* padding */ __u16 __reserved_0; __u32 __reserved_1; - char id[0]; + char id[]; }; #define STP_POLICY_ID_SET _IOWR('%', 0, struct stp_policy_id) diff --git a/include/uapi/linux/target_core_user.h b/include/uapi/linux/target_core_user.h index 27ace512babd..fbd8ca67e107 100644 --- a/include/uapi/linux/target_core_user.h +++ b/include/uapi/linux/target_core_user.h @@ -152,7 +152,7 @@ struct tcmu_tmr_entry { __u32 cmd_cnt; __u64 __pad3; __u64 __pad4; - __u16 cmd_ids[0]; + __u16 cmd_ids[]; } __packed; #define TCMU_OP_ALIGN_SIZE sizeof(__u64) diff --git a/include/uapi/linux/usb/audio.h b/include/uapi/linux/usb/audio.h index 76b7c3f6cd0d..c917c53070d5 100644 --- a/include/uapi/linux/usb/audio.h +++ b/include/uapi/linux/usb/audio.h @@ -341,7 +341,7 @@ struct uac_feature_unit_descriptor { __u8 bUnitID; __u8 bSourceID; __u8 bControlSize; - __u8 bmaControls[0]; /* variable length */ + __u8 bmaControls[]; /* variable length */ } __attribute__((packed)); static inline __u8 uac_feature_unit_iFeature(struct uac_feature_unit_descriptor *desc) diff --git a/include/uapi/linux/usb/cdc.h b/include/uapi/linux/usb/cdc.h index 6d61550959ef..acf3852bb676 100644 --- a/include/uapi/linux/usb/cdc.h +++ b/include/uapi/linux/usb/cdc.h @@ -171,7 +171,7 @@ struct usb_cdc_mdlm_detail_desc { /* type is associated with mdlm_desc.bGUID */ __u8 bGuidDescriptorType; - __u8 bDetailData[0]; + __u8 bDetailData[]; } __attribute__ ((packed)); /* "OBEX Control Model Functional Descriptor" */ @@ -379,7 +379,7 @@ struct usb_cdc_ncm_ndp16 { __le32 dwSignature; __le16 wLength; __le16 wNextNdpIndex; - struct usb_cdc_ncm_dpe16 dpe16[0]; + struct usb_cdc_ncm_dpe16 dpe16[]; } __attribute__ ((packed)); /* 32-bit NCM Datagram Pointer Entry */ @@ -395,7 +395,7 @@ struct usb_cdc_ncm_ndp32 { __le16 wReserved6; __le32 dwNextNdpIndex; __le32 dwReserved12; - struct usb_cdc_ncm_dpe32 dpe32[0]; + struct usb_cdc_ncm_dpe32 dpe32[]; } __attribute__ ((packed)); /* CDC NCM subclass 3.2.1 and 3.2.2 */ diff --git a/include/uapi/linux/usb/ch9.h b/include/uapi/linux/usb/ch9.h index 17ce56198c9a..31fcfa084e63 100644 --- a/include/uapi/linux/usb/ch9.h +++ b/include/uapi/linux/usb/ch9.h @@ -818,7 +818,7 @@ struct usb_key_descriptor { __u8 tTKID[3]; __u8 bReserved; - __u8 bKeyData[0]; + __u8 bKeyData[]; } __attribute__((packed)); /*-------------------------------------------------------------------------*/ diff --git a/include/uapi/linux/usb/raw_gadget.h b/include/uapi/linux/usb/raw_gadget.h index 0be685272eb1..c7d2199134d7 100644 --- a/include/uapi/linux/usb/raw_gadget.h +++ b/include/uapi/linux/usb/raw_gadget.h @@ -60,7 +60,7 @@ enum usb_raw_event_type { struct usb_raw_event { __u32 type; __u32 length; - __u8 data[0]; + __u8 data[]; }; #define USB_RAW_IO_FLAGS_ZERO 0x0001 @@ -90,7 +90,7 @@ struct usb_raw_ep_io { __u16 ep; __u16 flags; __u32 length; - __u8 data[0]; + __u8 data[]; }; /* Maximum number of non-control endpoints in struct usb_raw_eps_info. */ diff --git a/include/uapi/linux/usbdevice_fs.h b/include/uapi/linux/usbdevice_fs.h index cf525cddeb94..74a84e02422a 100644 --- a/include/uapi/linux/usbdevice_fs.h +++ b/include/uapi/linux/usbdevice_fs.h @@ -131,7 +131,7 @@ struct usbdevfs_urb { unsigned int signr; /* signal to be sent on completion, or 0 if none should be sent. */ void __user *usercontext; - struct usbdevfs_iso_packet_desc iso_frame_desc[0]; + struct usbdevfs_iso_packet_desc iso_frame_desc[]; }; /* ioctls for talking directly to drivers */ @@ -176,7 +176,7 @@ struct usbdevfs_disconnect_claim { struct usbdevfs_streams { unsigned int num_streams; /* Not used by USBDEVFS_FREE_STREAMS */ unsigned int num_eps; - unsigned char eps[0]; + unsigned char eps[]; }; /* diff --git a/include/uapi/linux/vhost_types.h b/include/uapi/linux/vhost_types.h index 634cee485abb..391331a10879 100644 --- a/include/uapi/linux/vhost_types.h +++ b/include/uapi/linux/vhost_types.h @@ -107,7 +107,7 @@ struct vhost_memory_region { struct vhost_memory { __u32 nregions; __u32 padding; - struct vhost_memory_region regions[0]; + struct vhost_memory_region regions[]; }; /* VHOST_SCSI specific definitions */ @@ -135,7 +135,7 @@ struct vhost_scsi_target { struct vhost_vdpa_config { __u32 off; __u32 len; - __u8 buf[0]; + __u8 buf[]; }; /* vhost vdpa IOVA range diff --git a/include/uapi/linux/virtio_9p.h b/include/uapi/linux/virtio_9p.h index 441047432258..374b68f8ac6e 100644 --- a/include/uapi/linux/virtio_9p.h +++ b/include/uapi/linux/virtio_9p.h @@ -38,7 +38,7 @@ struct virtio_9p_config { /* length of the tag name */ __virtio16 tag_len; /* non-NULL terminated tag name */ - __u8 tag[0]; + __u8 tag[]; } __attribute__((packed)); #endif /* _LINUX_VIRTIO_9P_H */ diff --git a/include/uapi/linux/xfrm.h b/include/uapi/linux/xfrm.h index 65e13a099b1a..e8191e0c3b56 100644 --- a/include/uapi/linux/xfrm.h +++ b/include/uapi/linux/xfrm.h @@ -33,7 +33,7 @@ struct xfrm_sec_ctx { __u8 ctx_alg; __u16 ctx_len; __u32 ctx_sid; - char ctx_str[0]; + char ctx_str[]; }; /* Security Context Domains of Interpretation */ @@ -96,27 +96,27 @@ struct xfrm_replay_state_esn { __u32 oseq_hi; __u32 seq_hi; __u32 replay_window; - __u32 bmp[0]; + __u32 bmp[]; }; struct xfrm_algo { char alg_name[64]; unsigned int alg_key_len; /* in bits */ - char alg_key[0]; + char alg_key[]; }; struct xfrm_algo_auth { char alg_name[64]; unsigned int alg_key_len; /* in bits */ unsigned int alg_trunc_len; /* in bits */ - char alg_key[0]; + char alg_key[]; }; struct xfrm_algo_aead { char alg_name[64]; unsigned int alg_key_len; /* in bits */ unsigned int alg_icv_len; /* in bits */ - char alg_key[0]; + char alg_key[]; }; struct xfrm_stats { diff --git a/include/uapi/rdma/hfi/hfi1_user.h b/include/uapi/rdma/hfi/hfi1_user.h index d95ef9a2b032..1106a7c90b29 100644 --- a/include/uapi/rdma/hfi/hfi1_user.h +++ b/include/uapi/rdma/hfi/hfi1_user.h @@ -180,7 +180,7 @@ struct hfi1_sdma_comp_entry { struct hfi1_status { __aligned_u64 dev; /* device/hw status bits */ __aligned_u64 port; /* port state and status bits */ - char freezemsg[0]; + char freezemsg[]; }; enum sdma_req_opcode { diff --git a/include/uapi/rdma/ib_user_verbs.h b/include/uapi/rdma/ib_user_verbs.h index 7dd903d932e5..43672cb1fd57 100644 --- a/include/uapi/rdma/ib_user_verbs.h +++ b/include/uapi/rdma/ib_user_verbs.h @@ -158,18 +158,18 @@ struct ib_uverbs_ex_cmd_hdr { struct ib_uverbs_get_context { __aligned_u64 response; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_get_context_resp { __u32 async_fd; __u32 num_comp_vectors; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_query_device { __aligned_u64 response; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_query_device_resp { @@ -278,7 +278,7 @@ struct ib_uverbs_query_port { __aligned_u64 response; __u8 port_num; __u8 reserved[7]; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_query_port_resp { @@ -308,12 +308,12 @@ struct ib_uverbs_query_port_resp { struct ib_uverbs_alloc_pd { __aligned_u64 response; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_alloc_pd_resp { __u32 pd_handle; - __u32 driver_data[0]; + __u32 driver_data[]; }; struct ib_uverbs_dealloc_pd { @@ -324,12 +324,12 @@ struct ib_uverbs_open_xrcd { __aligned_u64 response; __u32 fd; __u32 oflags; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_open_xrcd_resp { __u32 xrcd_handle; - __u32 driver_data[0]; + __u32 driver_data[]; }; struct ib_uverbs_close_xrcd { @@ -343,14 +343,14 @@ struct ib_uverbs_reg_mr { __aligned_u64 hca_va; __u32 pd_handle; __u32 access_flags; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_reg_mr_resp { __u32 mr_handle; __u32 lkey; __u32 rkey; - __u32 driver_data[0]; + __u32 driver_data[]; }; struct ib_uverbs_rereg_mr { @@ -362,13 +362,13 @@ struct ib_uverbs_rereg_mr { __aligned_u64 hca_va; __u32 pd_handle; __u32 access_flags; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_rereg_mr_resp { __u32 lkey; __u32 rkey; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_dereg_mr { @@ -380,13 +380,13 @@ struct ib_uverbs_alloc_mw { __u32 pd_handle; __u8 mw_type; __u8 reserved[3]; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_alloc_mw_resp { __u32 mw_handle; __u32 rkey; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_dealloc_mw { @@ -408,7 +408,7 @@ struct ib_uverbs_create_cq { __u32 comp_vector; __s32 comp_channel; __u32 reserved; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; enum ib_uverbs_ex_create_cq_flags { @@ -442,13 +442,13 @@ struct ib_uverbs_resize_cq { __aligned_u64 response; __u32 cq_handle; __u32 cqe; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_resize_cq_resp { __u32 cqe; __u32 reserved; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_poll_cq { @@ -492,7 +492,7 @@ struct ib_uverbs_wc { struct ib_uverbs_poll_cq_resp { __u32 count; __u32 reserved; - struct ib_uverbs_wc wc[0]; + struct ib_uverbs_wc wc[]; }; struct ib_uverbs_req_notify_cq { @@ -585,7 +585,7 @@ struct ib_uverbs_create_qp { __u8 qp_type; __u8 is_srq; __u8 reserved; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; enum ib_uverbs_create_qp_mask { @@ -624,7 +624,7 @@ struct ib_uverbs_open_qp { __u32 qpn; __u8 qp_type; __u8 reserved[7]; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; /* also used for open response */ @@ -669,7 +669,7 @@ struct ib_uverbs_query_qp { __aligned_u64 response; __u32 qp_handle; __u32 attr_mask; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_query_qp_resp { @@ -703,7 +703,7 @@ struct ib_uverbs_query_qp_resp { __u8 alt_timeout; __u8 sq_sig_all; __u8 reserved[5]; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_modify_qp { @@ -824,7 +824,7 @@ struct ib_uverbs_post_send { __u32 wr_count; __u32 sge_count; __u32 wqe_size; - struct ib_uverbs_send_wr send_wr[0]; + struct ib_uverbs_send_wr send_wr[]; }; struct ib_uverbs_post_send_resp { @@ -843,7 +843,7 @@ struct ib_uverbs_post_recv { __u32 wr_count; __u32 sge_count; __u32 wqe_size; - struct ib_uverbs_recv_wr recv_wr[0]; + struct ib_uverbs_recv_wr recv_wr[]; }; struct ib_uverbs_post_recv_resp { @@ -856,7 +856,7 @@ struct ib_uverbs_post_srq_recv { __u32 wr_count; __u32 sge_count; __u32 wqe_size; - struct ib_uverbs_recv_wr recv[0]; + struct ib_uverbs_recv_wr recv[]; }; struct ib_uverbs_post_srq_recv_resp { @@ -869,12 +869,12 @@ struct ib_uverbs_create_ah { __u32 pd_handle; __u32 reserved; struct ib_uverbs_ah_attr attr; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_create_ah_resp { __u32 ah_handle; - __u32 driver_data[0]; + __u32 driver_data[]; }; struct ib_uverbs_destroy_ah { @@ -886,7 +886,7 @@ struct ib_uverbs_attach_mcast { __u32 qp_handle; __u16 mlid; __u16 reserved; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_detach_mcast { @@ -894,7 +894,7 @@ struct ib_uverbs_detach_mcast { __u32 qp_handle; __u16 mlid; __u16 reserved; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_flow_spec_hdr { @@ -1135,7 +1135,7 @@ struct ib_uverbs_flow_attr { * struct ib_flow_spec_xxx * struct ib_flow_spec_yyy */ - struct ib_uverbs_flow_spec_hdr flow_specs[0]; + struct ib_uverbs_flow_spec_hdr flow_specs[]; }; struct ib_uverbs_create_flow { @@ -1161,7 +1161,7 @@ struct ib_uverbs_create_srq { __u32 max_wr; __u32 max_sge; __u32 srq_limit; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_create_xsrq { @@ -1175,7 +1175,7 @@ struct ib_uverbs_create_xsrq { __u32 max_num_tags; __u32 xrcd_handle; __u32 cq_handle; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_create_srq_resp { @@ -1183,7 +1183,7 @@ struct ib_uverbs_create_srq_resp { __u32 max_wr; __u32 max_sge; __u32 srqn; - __u32 driver_data[0]; + __u32 driver_data[]; }; struct ib_uverbs_modify_srq { @@ -1191,14 +1191,14 @@ struct ib_uverbs_modify_srq { __u32 attr_mask; __u32 max_wr; __u32 srq_limit; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_query_srq { __aligned_u64 response; __u32 srq_handle; __u32 reserved; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_query_srq_resp { @@ -1269,7 +1269,7 @@ struct ib_uverbs_ex_create_rwq_ind_table { * wq_handle1 * wq_handle2 */ - __u32 wq_handles[0]; + __u32 wq_handles[]; }; struct ib_uverbs_ex_create_rwq_ind_table_resp { diff --git a/include/uapi/rdma/rdma_user_cm.h b/include/uapi/rdma/rdma_user_cm.h index ed5a514305c1..7cea03581f79 100644 --- a/include/uapi/rdma/rdma_user_cm.h +++ b/include/uapi/rdma/rdma_user_cm.h @@ -184,7 +184,7 @@ struct rdma_ucm_query_addr_resp { struct rdma_ucm_query_path_resp { __u32 num_paths; __u32 reserved; - struct ib_path_rec_data path_data[0]; + struct ib_path_rec_data path_data[]; }; struct rdma_ucm_conn_param { diff --git a/include/uapi/rdma/rdma_user_ioctl_cmds.h b/include/uapi/rdma/rdma_user_ioctl_cmds.h index 38ab7accb7be..ab1aef17feb1 100644 --- a/include/uapi/rdma/rdma_user_ioctl_cmds.h +++ b/include/uapi/rdma/rdma_user_ioctl_cmds.h @@ -81,7 +81,7 @@ struct ib_uverbs_ioctl_hdr { __aligned_u64 reserved1; __u32 driver_id; __u32 reserved2; - struct ib_uverbs_attr attrs[0]; + struct ib_uverbs_attr attrs[]; }; #endif diff --git a/include/uapi/scsi/fc/fc_els.h b/include/uapi/scsi/fc/fc_els.h index c9812c5c2fc4..16782c360de3 100644 --- a/include/uapi/scsi/fc/fc_els.h +++ b/include/uapi/scsi/fc/fc_els.h @@ -264,7 +264,7 @@ struct fc_tlv_desc { * Size of descriptor excluding * desc_tag and desc_len fields. */ - __u8 desc_value[0]; /* Descriptor Value */ + __u8 desc_value[]; /* Descriptor Value */ }; /* Descriptor tag and len fields are considered the mandatory header @@ -1027,7 +1027,7 @@ struct fc_fn_li_desc { * threshold to caause the LI event */ __be32 pname_count; /* number of portname_list elements */ - __be64 pname_list[0]; /* list of N_Port_Names accessible + __be64 pname_list[]; /* list of N_Port_Names accessible * through the attached port */ }; @@ -1069,7 +1069,7 @@ struct fc_fn_peer_congn_desc { * congestion event */ __be32 pname_count; /* number of portname_list elements */ - __be64 pname_list[0]; /* list of N_Port_Names accessible + __be64 pname_list[]; /* list of N_Port_Names accessible * through the attached port */ }; @@ -1104,7 +1104,7 @@ struct fc_els_fpin { * Size of ELS excluding fpin_cmd, * fpin_zero and desc_len fields. */ - struct fc_tlv_desc fpin_desc[0]; /* Descriptor list */ + struct fc_tlv_desc fpin_desc[]; /* Descriptor list */ }; /* Diagnostic Function Descriptor - FPIN Registration */ @@ -1115,7 +1115,7 @@ struct fc_df_desc_fpin_reg { * desc_tag and desc_len fields. */ __be32 count; /* Number of desc_tags elements */ - __be32 desc_tags[0]; /* Array of Descriptor Tags. + __be32 desc_tags[]; /* Array of Descriptor Tags. * Each tag indicates a function * supported by the N_Port (request) * or by the N_Port and Fabric @@ -1135,7 +1135,7 @@ struct fc_els_rdf { * Size of ELS excluding fpin_cmd, * fpin_zero and desc_len fields. */ - struct fc_tlv_desc desc[0]; /* Descriptor list */ + struct fc_tlv_desc desc[]; /* Descriptor list */ }; /* @@ -1148,7 +1148,7 @@ struct fc_els_rdf_resp { * and desc_list_len fields. */ struct fc_els_lsri_desc lsri; - struct fc_tlv_desc desc[0]; /* Supported Descriptor list */ + struct fc_tlv_desc desc[]; /* Supported Descriptor list */ }; @@ -1231,7 +1231,7 @@ struct fc_els_edc { * Size of ELS excluding edc_cmd, * edc_zero and desc_len fields. */ - struct fc_tlv_desc desc[0]; + struct fc_tlv_desc desc[]; /* Diagnostic Descriptor list */ }; @@ -1245,7 +1245,7 @@ struct fc_els_edc_resp { * and desc_list_len fields. */ struct fc_els_lsri_desc lsri; - struct fc_tlv_desc desc[0]; + struct fc_tlv_desc desc[]; /* Supported Diagnostic Descriptor list */ }; diff --git a/include/uapi/scsi/scsi_bsg_fc.h b/include/uapi/scsi/scsi_bsg_fc.h index 3ae65e93235c..7f5930801f72 100644 --- a/include/uapi/scsi/scsi_bsg_fc.h +++ b/include/uapi/scsi/scsi_bsg_fc.h @@ -209,7 +209,7 @@ struct fc_bsg_host_vendor { __u64 vendor_id; /* start of vendor command area */ - __u32 vendor_cmd[0]; + __u32 vendor_cmd[]; }; /* Response: diff --git a/include/uapi/sound/asound.h b/include/uapi/sound/asound.h index 2d3e5df39a59..3974a2a911cc 100644 --- a/include/uapi/sound/asound.h +++ b/include/uapi/sound/asound.h @@ -1106,7 +1106,7 @@ struct snd_ctl_elem_value { struct snd_ctl_tlv { unsigned int numid; /* control element numeric identification */ unsigned int length; /* in bytes aligned to 4 */ - unsigned int tlv[0]; /* first TLV */ + unsigned int tlv[]; /* first TLV */ }; #define SNDRV_CTL_IOCTL_PVERSION _IOR('U', 0x00, int) diff --git a/include/uapi/sound/firewire.h b/include/uapi/sound/firewire.h index 39cf6eb75940..3532ac7046d7 100644 --- a/include/uapi/sound/firewire.h +++ b/include/uapi/sound/firewire.h @@ -38,11 +38,11 @@ struct snd_efw_transaction { __be32 category; __be32 command; __be32 status; - __be32 params[0]; + __be32 params[]; }; struct snd_firewire_event_efw_response { unsigned int type; - __be32 response[0]; /* some responses */ + __be32 response[]; /* some responses */ }; struct snd_firewire_event_digi00x_message { @@ -63,7 +63,7 @@ struct snd_firewire_tascam_change { struct snd_firewire_event_tascam_control { unsigned int type; - struct snd_firewire_tascam_change changes[0]; + struct snd_firewire_tascam_change changes[]; }; struct snd_firewire_event_motu_register_dsp_change { diff --git a/include/uapi/sound/skl-tplg-interface.h b/include/uapi/sound/skl-tplg-interface.h index a93c0decfdd5..f29899b179a6 100644 --- a/include/uapi/sound/skl-tplg-interface.h +++ b/include/uapi/sound/skl-tplg-interface.h @@ -151,7 +151,7 @@ struct skl_dfw_algo_data { __u32 rsvd:30; __u32 param_id; __u32 max; - char params[0]; + char params[]; } __packed; enum skl_tkn_dir { diff --git a/include/uapi/sound/sof/header.h b/include/uapi/sound/sof/header.h index 5f4518e7a972..dbf137516522 100644 --- a/include/uapi/sound/sof/header.h +++ b/include/uapi/sound/sof/header.h @@ -23,7 +23,7 @@ struct sof_abi_hdr { __u32 size; /**< size in bytes of data excl. this struct */ __u32 abi; /**< SOF ABI version */ __u32 reserved[4]; /**< reserved for future use */ - __u32 data[0]; /**< Component data - opaque to core */ + __u32 data[]; /**< Component data - opaque to core */ } __packed; #endif diff --git a/include/uapi/sound/usb_stream.h b/include/uapi/sound/usb_stream.h index 95419d8bbc16..ffdd3ea1e31d 100644 --- a/include/uapi/sound/usb_stream.h +++ b/include/uapi/sound/usb_stream.h @@ -61,7 +61,7 @@ struct usb_stream { unsigned inpacket_split_at; unsigned next_inpacket_split; unsigned next_inpacket_split_at; - struct usb_stream_packet inpacket[0]; + struct usb_stream_packet inpacket[]; }; enum usb_stream_state { diff --git a/tools/arch/x86/include/uapi/asm/kvm.h b/tools/arch/x86/include/uapi/asm/kvm.h index bf6e96011dfe..e135f4dcb19d 100644 --- a/tools/arch/x86/include/uapi/asm/kvm.h +++ b/tools/arch/x86/include/uapi/asm/kvm.h @@ -198,13 +198,13 @@ struct kvm_msrs { __u32 nmsrs; /* number of msrs in entries */ __u32 pad; - struct kvm_msr_entry entries[0]; + struct kvm_msr_entry entries[]; }; /* for KVM_GET_MSR_INDEX_LIST */ struct kvm_msr_list { __u32 nmsrs; /* number of msrs in entries */ - __u32 indices[0]; + __u32 indices[]; }; /* Maximum size of any access bitmap in bytes */ @@ -241,7 +241,7 @@ struct kvm_cpuid_entry { struct kvm_cpuid { __u32 nent; __u32 padding; - struct kvm_cpuid_entry entries[0]; + struct kvm_cpuid_entry entries[]; }; struct kvm_cpuid_entry2 { @@ -263,7 +263,7 @@ struct kvm_cpuid_entry2 { struct kvm_cpuid2 { __u32 nent; __u32 padding; - struct kvm_cpuid_entry2 entries[0]; + struct kvm_cpuid_entry2 entries[]; }; /* for KVM_GET_PIT and KVM_SET_PIT */ @@ -389,7 +389,7 @@ struct kvm_xsave { * the contents of CPUID leaf 0xD on the host. */ __u32 region[1024]; - __u32 extra[0]; + __u32 extra[]; }; #define KVM_MAX_XCRS 16 @@ -515,7 +515,7 @@ struct kvm_pmu_event_filter { __u32 fixed_counter_bitmap; __u32 flags; __u32 pad[4]; - __u64 events[0]; + __u64 events[]; }; #define KVM_PMU_EVENT_ALLOW 0 diff --git a/tools/include/uapi/drm/i915_drm.h b/tools/include/uapi/drm/i915_drm.h index 05c3642aaece..239b91b13c60 100644 --- a/tools/include/uapi/drm/i915_drm.h +++ b/tools/include/uapi/drm/i915_drm.h @@ -2060,7 +2060,7 @@ struct i915_context_engines_load_balance { __u64 mbz64; /* reserved for future use; must be zero */ - struct i915_engine_class_instance engines[0]; + struct i915_engine_class_instance engines[]; } __attribute__((packed)); #define I915_DEFINE_CONTEXT_ENGINES_LOAD_BALANCE(name__, N__) struct { \ @@ -2098,7 +2098,7 @@ struct i915_context_engines_bond { __u64 flags; /* all undefined flags must be zero */ __u64 mbz64[4]; /* reserved for future use; must be zero */ - struct i915_engine_class_instance engines[0]; + struct i915_engine_class_instance engines[]; } __attribute__((packed)); #define I915_DEFINE_CONTEXT_ENGINES_BOND(name__, N__) struct { \ @@ -2225,7 +2225,7 @@ struct i915_context_engines_parallel_submit { * length = width (i) * num_siblings (j) * index = j + i * num_siblings */ - struct i915_engine_class_instance engines[0]; + struct i915_engine_class_instance engines[]; } __packed; diff --git a/tools/include/uapi/linux/bpf.h b/tools/include/uapi/linux/bpf.h index f4009dbdf62d..e4b33ba06f00 100644 --- a/tools/include/uapi/linux/bpf.h +++ b/tools/include/uapi/linux/bpf.h @@ -79,7 +79,7 @@ struct bpf_insn { /* Key of an a BPF_MAP_TYPE_LPM_TRIE entry */ struct bpf_lpm_trie_key { __u32 prefixlen; /* up to 32 for AF_INET, 128 for AF_INET6 */ - __u8 data[0]; /* Arbitrary size */ + __u8 data[]; /* Arbitrary size */ }; struct bpf_cgroup_storage_key { diff --git a/tools/include/uapi/linux/fs.h b/tools/include/uapi/linux/fs.h index bdf7b404b3e7..b7b56871029c 100644 --- a/tools/include/uapi/linux/fs.h +++ b/tools/include/uapi/linux/fs.h @@ -90,7 +90,7 @@ struct file_dedupe_range { __u16 dest_count; /* in - total elements in info array */ __u16 reserved1; /* must be zero */ __u32 reserved2; /* must be zero */ - struct file_dedupe_range_info info[0]; + struct file_dedupe_range_info info[]; }; /* And dynamically-tunable limits and defaults: */ diff --git a/tools/include/uapi/linux/if_tun.h b/tools/include/uapi/linux/if_tun.h index 454ae31b93c7..2ec07de1d73b 100644 --- a/tools/include/uapi/linux/if_tun.h +++ b/tools/include/uapi/linux/if_tun.h @@ -108,7 +108,7 @@ struct tun_pi { struct tun_filter { __u16 flags; /* TUN_FLT_ flags see above */ __u16 count; /* Number of addresses */ - __u8 addr[0][ETH_ALEN]; + __u8 addr[][ETH_ALEN]; }; #endif /* _UAPI__IF_TUN_H */ diff --git a/tools/include/uapi/linux/kvm.h b/tools/include/uapi/linux/kvm.h index 6a184d260c7f..37ce8cbac322 100644 --- a/tools/include/uapi/linux/kvm.h +++ b/tools/include/uapi/linux/kvm.h @@ -539,7 +539,7 @@ struct kvm_coalesced_mmio { struct kvm_coalesced_mmio_ring { __u32 first, last; - struct kvm_coalesced_mmio coalesced_mmio[0]; + struct kvm_coalesced_mmio coalesced_mmio[]; }; #define KVM_COALESCED_MMIO_MAX \ @@ -618,7 +618,7 @@ struct kvm_clear_dirty_log { /* for KVM_SET_SIGNAL_MASK */ struct kvm_signal_mask { __u32 len; - __u8 sigset[0]; + __u8 sigset[]; }; /* for KVM_TPR_ACCESS_REPORTING */ @@ -1216,7 +1216,7 @@ struct kvm_irq_routing_entry { struct kvm_irq_routing { __u32 nr; __u32 flags; - struct kvm_irq_routing_entry entries[0]; + struct kvm_irq_routing_entry entries[]; }; #endif @@ -1335,7 +1335,7 @@ struct kvm_dirty_tlb { struct kvm_reg_list { __u64 n; /* number of regs */ - __u64 reg[0]; + __u64 reg[]; }; struct kvm_one_reg { diff --git a/tools/include/uapi/linux/perf_event.h b/tools/include/uapi/linux/perf_event.h index d37629dbad72..4653834f078f 100644 --- a/tools/include/uapi/linux/perf_event.h +++ b/tools/include/uapi/linux/perf_event.h @@ -491,7 +491,7 @@ struct perf_event_query_bpf { /* * User provided buffer to store program ids */ - __u32 ids[0]; + __u32 ids[]; }; /* diff --git a/tools/include/uapi/linux/pkt_cls.h b/tools/include/uapi/linux/pkt_cls.h index 12153771396a..3faee0199a9b 100644 --- a/tools/include/uapi/linux/pkt_cls.h +++ b/tools/include/uapi/linux/pkt_cls.h @@ -180,7 +180,7 @@ struct tc_u32_sel { short hoff; __be32 hmask; - struct tc_u32_key keys[0]; + struct tc_u32_key keys[]; }; struct tc_u32_mark { @@ -192,7 +192,7 @@ struct tc_u32_mark { struct tc_u32_pcnt { __u64 rcnt; __u64 rhit; - __u64 kcnts[0]; + __u64 kcnts[]; }; /* Flags */ diff --git a/tools/include/uapi/linux/seg6.h b/tools/include/uapi/linux/seg6.h index 286e8d6a8e98..f94baf154c47 100644 --- a/tools/include/uapi/linux/seg6.h +++ b/tools/include/uapi/linux/seg6.h @@ -30,7 +30,7 @@ struct ipv6_sr_hdr { __u8 flags; __u16 tag; - struct in6_addr segments[0]; + struct in6_addr segments[]; }; #define SR6_FLAG1_PROTECTED (1 << 6) @@ -49,7 +49,7 @@ struct ipv6_sr_hdr { struct sr6_tlv { __u8 type; __u8 len; - __u8 data[0]; + __u8 data[]; }; #endif diff --git a/tools/include/uapi/linux/usbdevice_fs.h b/tools/include/uapi/linux/usbdevice_fs.h index cf525cddeb94..74a84e02422a 100644 --- a/tools/include/uapi/linux/usbdevice_fs.h +++ b/tools/include/uapi/linux/usbdevice_fs.h @@ -131,7 +131,7 @@ struct usbdevfs_urb { unsigned int signr; /* signal to be sent on completion, or 0 if none should be sent. */ void __user *usercontext; - struct usbdevfs_iso_packet_desc iso_frame_desc[0]; + struct usbdevfs_iso_packet_desc iso_frame_desc[]; }; /* ioctls for talking directly to drivers */ @@ -176,7 +176,7 @@ struct usbdevfs_disconnect_claim { struct usbdevfs_streams { unsigned int num_streams; /* Not used by USBDEVFS_FREE_STREAMS */ unsigned int num_eps; - unsigned char eps[0]; + unsigned char eps[]; }; /* diff --git a/tools/include/uapi/sound/asound.h b/tools/include/uapi/sound/asound.h index 2d3e5df39a59..3974a2a911cc 100644 --- a/tools/include/uapi/sound/asound.h +++ b/tools/include/uapi/sound/asound.h @@ -1106,7 +1106,7 @@ struct snd_ctl_elem_value { struct snd_ctl_tlv { unsigned int numid; /* control element numeric identification */ unsigned int length; /* in bytes aligned to 4 */ - unsigned int tlv[0]; /* first TLV */ + unsigned int tlv[]; /* first TLV */ }; #define SNDRV_CTL_IOCTL_PVERSION _IOR('U', 0x00, int) -- 2.27.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 us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (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 7A691C433EF for ; Tue, 28 Jun 2022 06:38:09 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-216-bww5-ue2PVaj_B8njz4yAQ-1; Tue, 28 Jun 2022 02:38:05 -0400 X-MC-Unique: bww5-ue2PVaj_B8njz4yAQ-1 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 76DC989B841; Tue, 28 Jun 2022 06:38:03 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (unknown [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id 643982166B29; Tue, 28 Jun 2022 06:38:02 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 299021947063; Tue, 28 Jun 2022 06:38:01 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id BF5B019466DF for ; Mon, 27 Jun 2022 18:14:10 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 9DCF84010E53; Mon, 27 Jun 2022 18:14:10 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast04.extmail.prod.ext.rdu2.redhat.com [10.11.55.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 9783C40C1240 for ; Mon, 27 Jun 2022 18:14:10 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-1.mimecast.com [207.211.31.81]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 71FFB101A586 for ; Mon, 27 Jun 2022 18:14:10 +0000 (UTC) Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-563-9aC5Hqw3NvOh7Ajre2VwFQ-1; Mon, 27 Jun 2022 14:14:08 -0400 X-MC-Unique: 9aC5Hqw3NvOh7Ajre2VwFQ-1 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 04A5661526; Mon, 27 Jun 2022 18:04:38 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8180FC3411D; Mon, 27 Jun 2022 18:04:34 +0000 (UTC) Date: Mon, 27 Jun 2022 20:04:32 +0200 From: "Gustavo A. R. Silva" To: Kees Cook , linux-kernel@vger.kernel.org Message-ID: <20220627180432.GA136081@embeddedor> MIME-Version: 1.0 X-Mimecast-Impersonation-Protect: Policy=CLT - Impersonation Protection Definition; Similar Internal Domain=false; Similar Monitored External Domain=false; Custom External Domain=false; Mimecast External Domain=false; Newly Observed Domain=false; Internal User Name=false; Custom Display Name List=false; Reply-to Address Mismatch=false; Targeted Threat Dictionary=false; Mimecast Threat Dictionary=false; Custom Threat Dictionary=false X-Scanned-By: MIMEDefang 2.84 on 10.11.54.2 X-Mailman-Approved-At: Tue, 28 Jun 2022 06:38:00 +0000 Subject: [dm-devel] [PATCH][next] treewide: uapi: Replace zero-length arrays with flexible-array members X-BeenThere: dm-devel@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: device-mapper development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: nvdimm@lists.linux.dev, alsa-devel@alsa-project.org, "Gustavo A. R. Silva" , kvm@vger.kernel.org, dri-devel@lists.freedesktop.org, virtualization@lists.linux-foundation.org, dm-devel@redhat.com, target-devel@vger.kernel.org, linux-mtd@lists.infradead.org, linux-hardening@vger.kernel.org, linux1394-devel@lists.sourceforge.net, linux-stm32@st-md-mailman.stormreply.com, linux-s390@vger.kernel.org, linux-scsi@vger.kernel.org, linux-rdma@vger.kernel.org, x86@kernel.org, kasan-dev@googlegroups.com, lvs-devel@vger.kernel.org, coreteam@netfilter.org, v9fs-developer@lists.sourceforge.net, intel-gfx@lists.freedesktop.org, linux-can@vger.kernel.org, linux-raid@vger.kernel.org, linux-m68k@lists.linux-m68k.org, io-uring@vger.kernel.org, linux-arm-kernel@lists.infradead.org, netdev@vger.kernel.org, linux-usb@vger.kernel.org, linux-mmc@vger.kernel.org, linux-mips@vger.kernel.org, linux-perf-users@vger.kernel.org, linux-sctp@vger.kernel.org, netfilter-devel@vger.kernel.org, linux-fsdevel@vger.kernel.org, bpf@vger.kernel.org, linux-btrfs@vger.kernel.org Errors-To: dm-devel-bounces@redhat.com Sender: "dm-devel" X-Scanned-By: MIMEDefang 2.78 on 10.11.54.6 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=dm-devel-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Disposition: inline Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 VGhlcmUgaXMgYSByZWd1bGFyIG5lZWQgaW4gdGhlIGtlcm5lbCB0byBwcm92aWRlIGEgd2F5IHRv IGRlY2xhcmUKaGF2aW5nIGEgZHluYW1pY2FsbHkgc2l6ZWQgc2V0IG9mIHRyYWlsaW5nIGVsZW1l bnRzIGluIGEgc3RydWN0dXJlLgpLZXJuZWwgY29kZSBzaG91bGQgYWx3YXlzIHVzZSDigJxmbGV4 aWJsZSBhcnJheSBtZW1iZXJz4oCdWzFdIGZvciB0aGVzZQpjYXNlcy4gVGhlIG9sZGVyIHN0eWxl IG9mIG9uZS1lbGVtZW50IG9yIHplcm8tbGVuZ3RoIGFycmF5cyBzaG91bGQKbm8gbG9uZ2VyIGJl IHVzZWRbMl0uCgpUaGlzIGNvZGUgd2FzIHRyYW5zZm9ybWVkIHdpdGggdGhlIGhlbHAgb2YgQ29j Y2luZWxsZToKKGxpbnV4LTUuMTktcmMyJCBzcGF0Y2ggLS1qb2JzICQoZ2V0Y29uZiBfTlBST0NF U1NPUlNfT05MTikgLS1zcC1maWxlIHNjcmlwdC5jb2NjaSAtLWluY2x1ZGUtaGVhZGVycyAtLWRp ciAuID4gb3V0cHV0LnBhdGNoKQoKQEAKaWRlbnRpZmllciBTLCBtZW1iZXIsIGFycmF5Owp0eXBl IFQxLCBUMjsKQEAKCnN0cnVjdCBTIHsKICAuLi4KICBUMSBtZW1iZXI7CiAgVDIgYXJyYXlbCi0g MAogIF07Cn07CgotZnN0cmljdC1mbGV4LWFycmF5cz0zIGlzIGNvbWluZyBhbmQgd2UgbmVlZCB0 byBsYW5kIHRoZXNlIGNoYW5nZXMKdG8gcHJldmVudCBpc3N1ZXMgbGlrZSB0aGVzZSBpbiB0aGUg c2hvcnQgZnV0dXJlOgoKLi4vZnMvbWluaXgvZGlyLmM6MzM3OjM6IHdhcm5pbmc6ICdzdHJjcHkn IHdpbGwgYWx3YXlzIG92ZXJmbG93OyBkZXN0aW5hdGlvbiBidWZmZXIgaGFzIHNpemUgMCwKYnV0 IHRoZSBzb3VyY2Ugc3RyaW5nIGhhcyBsZW5ndGggMiAoaW5jbHVkaW5nIE5VTCBieXRlKSBbLVdm b3J0aWZ5LXNvdXJjZV0KCQlzdHJjcHkoZGUzLT5uYW1lLCAiLiIpOwoJCV4KClNpbmNlIHRoZXNl IGFyZSBhbGwgWzBdIHRvIFtdIGNoYW5nZXMsIHRoZSByaXNrIHRvIFVBUEkgaXMgbmVhcmx5IHpl cm8uIElmCnRoaXMgYnJlYWtzIGFueXRoaW5nLCB3ZSBjYW4gdXNlIGEgdW5pb24gd2l0aCBhIG5l dyBtZW1iZXIgbmFtZS4KClsxXSBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9GbGV4aWJs ZV9hcnJheV9tZW1iZXIKWzJdIGh0dHBzOi8vd3d3Lmtlcm5lbC5vcmcvZG9jL2h0bWwvdjUuMTYv cHJvY2Vzcy9kZXByZWNhdGVkLmh0bWwjemVyby1sZW5ndGgtYW5kLW9uZS1lbGVtZW50LWFycmF5 cwoKTGluazogaHR0cHM6Ly9naXRodWIuY29tL0tTUFAvbGludXgvaXNzdWVzLzc4CkJ1aWxkLXRl c3RlZC1ieTogaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvbGttbC82MmI2NzVlYy53S1g2QU9aNmNi RTcxdnRGJTI1bGtwQGludGVsLmNvbS8KU2lnbmVkLW9mZi1ieTogR3VzdGF2byBBLiBSLiBTaWx2 YSA8Z3VzdGF2b2Fyc0BrZXJuZWwub3JnPgotLS0KSGkgYWxsIQoKSkZZSTogSSdtIGFkZGluZyB0 aGlzIHRvIG15IC1uZXh0IHRyZWUuIDopCgogYXJjaC9tNjhrL2luY2x1ZGUvdWFwaS9hc20vYm9v dGluZm8uaCAgICAgICAgIHwgIDQgKy0KIGFyY2gvbWlwcy9pbmNsdWRlL3VhcGkvYXNtL3Vjb250 ZXh0LmggICAgICAgICB8ICAyICstCiBhcmNoL3MzOTAvaW5jbHVkZS91YXBpL2FzbS9od2N0cnNl dC5oICAgICAgICAgfCAgNiArLQogYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9ib290cGFyYW0u aCAgICAgICAgIHwgIDIgKy0KIGFyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20va3ZtLmggICAgICAg ICAgICAgICB8IDEyICsrLS0KIGluY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaCAgICAgICAgICAg ICAgICAgICB8ICA2ICstCiBpbmNsdWRlL3VhcGkvbGludXgvYmxrem9uZWQuaCAgICAgICAgICAg ICAgICAgfCAgMiArLQogaW5jbHVkZS91YXBpL2xpbnV4L2JwZi5oICAgICAgICAgICAgICAgICAg ICAgIHwgIDIgKy0KIGluY2x1ZGUvdWFwaS9saW51eC9idHJmcy5oICAgICAgICAgICAgICAgICAg ICB8IDEwICstLQogaW5jbHVkZS91YXBpL2xpbnV4L2J0cmZzX3RyZWUuaCAgICAgICAgICAgICAg IHwgIDIgKy0KIGluY2x1ZGUvdWFwaS9saW51eC9jYW4vYmNtLmggICAgICAgICAgICAgICAgICB8 ICAyICstCiBpbmNsdWRlL3VhcGkvbGludXgvY29ubmVjdG9yLmggICAgICAgICAgICAgICAgfCAg MiArLQogaW5jbHVkZS91YXBpL2xpbnV4L2N5Y3hfY2ZtLmggICAgICAgICAgICAgICAgIHwgIDIg Ky0KIGluY2x1ZGUvdWFwaS9saW51eC9kbS1pb2N0bC5oICAgICAgICAgICAgICAgICB8ICA4ICst LQogaW5jbHVkZS91YXBpL2xpbnV4L2RtLWxvZy11c2Vyc3BhY2UuaCAgICAgICAgIHwgIDIgKy0K IGluY2x1ZGUvdWFwaS9saW51eC9ldGh0b29sLmggICAgICAgICAgICAgICAgICB8IDI4ICsrKyst LS0tCiBpbmNsdWRlL3VhcGkvbGludXgvZmFub3RpZnkuaCAgICAgICAgICAgICAgICAgfCAgMiAr LQogaW5jbHVkZS91YXBpL2xpbnV4L2ZpZW1hcC5oICAgICAgICAgICAgICAgICAgIHwgIDIgKy0K IGluY2x1ZGUvdWFwaS9saW51eC9maXJld2lyZS1jZGV2LmggICAgICAgICAgICB8IDEyICsrLS0K IGluY2x1ZGUvdWFwaS9saW51eC9mcy5oICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBp bmNsdWRlL3VhcGkvbGludXgvaWZfYWxnLmggICAgICAgICAgICAgICAgICAgfCAgMiArLQogaW5j bHVkZS91YXBpL2xpbnV4L2lmX2FyY25ldC5oICAgICAgICAgICAgICAgIHwgIDYgKy0KIGluY2x1 ZGUvdWFwaS9saW51eC9pZl9wcHBveC5oICAgICAgICAgICAgICAgICB8ICA0ICstCiBpbmNsdWRl L3VhcGkvbGludXgvaWZfdHVuLmggICAgICAgICAgICAgICAgICAgfCAgMiArLQogaW5jbHVkZS91 YXBpL2xpbnV4L2lnbXAuaCAgICAgICAgICAgICAgICAgICAgIHwgIDYgKy0KIGluY2x1ZGUvdWFw aS9saW51eC9pbmV0X2RpYWcuaCAgICAgICAgICAgICAgICB8ICAyICstCiBpbmNsdWRlL3VhcGkv bGludXgvaW5vdGlmeS5oICAgICAgICAgICAgICAgICAgfCAgMiArLQogaW5jbHVkZS91YXBpL2xp bnV4L2lvX3VyaW5nLmggICAgICAgICAgICAgICAgIHwgIDIgKy0KIGluY2x1ZGUvdWFwaS9saW51 eC9pcC5oICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICstCiBpbmNsdWRlL3VhcGkvbGludXgv aXBfdnMuaCAgICAgICAgICAgICAgICAgICAgfCAgNCArLQogaW5jbHVkZS91YXBpL2xpbnV4L2lz b19mcy5oICAgICAgICAgICAgICAgICAgIHwgIDQgKy0KIGluY2x1ZGUvdWFwaS9saW51eC9qZmZz Mi5oICAgICAgICAgICAgICAgICAgICB8ICA4ICstLQogaW5jbHVkZS91YXBpL2xpbnV4L2tjb3Yu aCAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGluY2x1ZGUvdWFwaS9saW51eC9rdm0uaCAg ICAgICAgICAgICAgICAgICAgICB8ICA4ICstLQogaW5jbHVkZS91YXBpL2xpbnV4L21pbml4X2Zz LmggICAgICAgICAgICAgICAgIHwgIDQgKy0KIGluY2x1ZGUvdWFwaS9saW51eC9tbWMvaW9jdGwu aCAgICAgICAgICAgICAgICB8ICAyICstCiBpbmNsdWRlL3VhcGkvbGludXgvbmRjdGwuaCAgICAg ICAgICAgICAgICAgICAgfCAxMCArLS0KIGluY2x1ZGUvdWFwaS9saW51eC9uZXRfZHJvcG1vbi5o ICAgICAgICAgICAgICB8ICA0ICstCiBpbmNsdWRlL3VhcGkvbGludXgvbmV0ZmlsdGVyL3hfdGFi bGVzLmggICAgICAgfCAgNCArLQogaW5jbHVkZS91YXBpL2xpbnV4L25ldGZpbHRlcl9hcnAvYXJw X3RhYmxlcy5oIHwgIDYgKy0KIC4uLi91YXBpL2xpbnV4L25ldGZpbHRlcl9icmlkZ2UvZWJ0X2Ft b25nLmggICB8ICAyICstCiBpbmNsdWRlL3VhcGkvbGludXgvbmV0ZmlsdGVyX2lwdjQvaXBfdGFi bGVzLmggfCAgNiArLQogLi4uL3VhcGkvbGludXgvbmV0ZmlsdGVyX2lwdjYvaXA2X3RhYmxlcy5o ICAgIHwgIDQgKy0KIGluY2x1ZGUvdWFwaS9saW51eC9wZXJmX2V2ZW50LmggICAgICAgICAgICAg ICB8ICAyICstCiBpbmNsdWRlL3VhcGkvbGludXgvcGt0X2Nscy5oICAgICAgICAgICAgICAgICAg fCAgNCArLQogaW5jbHVkZS91YXBpL2xpbnV4L3JhaWQvbWRfcC5oICAgICAgICAgICAgICAgIHwg IDIgKy0KIGluY2x1ZGUvdWFwaS9saW51eC9yYW5kb20uaCAgICAgICAgICAgICAgICAgICB8ICAy ICstCiBpbmNsdWRlL3VhcGkvbGludXgvcm9tZnNfZnMuaCAgICAgICAgICAgICAgICAgfCAgNCAr LQogaW5jbHVkZS91YXBpL2xpbnV4L3J0bmV0bGluay5oICAgICAgICAgICAgICAgIHwgIDIgKy0K IGluY2x1ZGUvdWFwaS9saW51eC9zY3RwLmggICAgICAgICAgICAgICAgICAgICB8IDEwICstLQog aW5jbHVkZS91YXBpL2xpbnV4L3NlZzYuaCAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGlu Y2x1ZGUvdWFwaS9saW51eC9zZWc2X2lwdHVubmVsLmggICAgICAgICAgICB8ICAyICstCiBpbmNs dWRlL3VhcGkvbGludXgvc3RtLmggICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogaW5jbHVk ZS91YXBpL2xpbnV4L3RhcmdldF9jb3JlX3VzZXIuaCAgICAgICAgIHwgIDIgKy0KIGluY2x1ZGUv dWFwaS9saW51eC91c2IvYXVkaW8uaCAgICAgICAgICAgICAgICB8ICAyICstCiBpbmNsdWRlL3Vh cGkvbGludXgvdXNiL2NkYy5oICAgICAgICAgICAgICAgICAgfCAgNiArLQogaW5jbHVkZS91YXBp L2xpbnV4L3VzYi9jaDkuaCAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGluY2x1ZGUvdWFwaS9s aW51eC91c2IvcmF3X2dhZGdldC5oICAgICAgICAgICB8ICA0ICstCiBpbmNsdWRlL3VhcGkvbGlu dXgvdXNiZGV2aWNlX2ZzLmggICAgICAgICAgICAgfCAgNCArLQogaW5jbHVkZS91YXBpL2xpbnV4 L3Zob3N0X3R5cGVzLmggICAgICAgICAgICAgIHwgIDQgKy0KIGluY2x1ZGUvdWFwaS9saW51eC92 aXJ0aW9fOXAuaCAgICAgICAgICAgICAgICB8ICAyICstCiBpbmNsdWRlL3VhcGkvbGludXgveGZy bS5oICAgICAgICAgICAgICAgICAgICAgfCAxMCArLS0KIGluY2x1ZGUvdWFwaS9yZG1hL2hmaS9o ZmkxX3VzZXIuaCAgICAgICAgICAgICB8ICAyICstCiBpbmNsdWRlL3VhcGkvcmRtYS9pYl91c2Vy X3ZlcmJzLmggICAgICAgICAgICAgfCA3MiArKysrKysrKystLS0tLS0tLS0tCiBpbmNsdWRlL3Vh cGkvcmRtYS9yZG1hX3VzZXJfY20uaCAgICAgICAgICAgICAgfCAgMiArLQogaW5jbHVkZS91YXBp L3JkbWEvcmRtYV91c2VyX2lvY3RsX2NtZHMuaCAgICAgIHwgIDIgKy0KIGluY2x1ZGUvdWFwaS9z Y3NpL2ZjL2ZjX2Vscy5oICAgICAgICAgICAgICAgICB8IDE4ICsrLS0tCiBpbmNsdWRlL3VhcGkv c2NzaS9zY3NpX2JzZ19mYy5oICAgICAgICAgICAgICAgfCAgMiArLQogaW5jbHVkZS91YXBpL3Nv dW5kL2Fzb3VuZC5oICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGluY2x1ZGUvdWFwaS9zb3Vu ZC9maXJld2lyZS5oICAgICAgICAgICAgICAgICB8ICA2ICstCiBpbmNsdWRlL3VhcGkvc291bmQv c2tsLXRwbGctaW50ZXJmYWNlLmggICAgICAgfCAgMiArLQogaW5jbHVkZS91YXBpL3NvdW5kL3Nv Zi9oZWFkZXIuaCAgICAgICAgICAgICAgIHwgIDIgKy0KIGluY2x1ZGUvdWFwaS9zb3VuZC91c2Jf c3RyZWFtLmggICAgICAgICAgICAgICB8ICAyICstCiB0b29scy9hcmNoL3g4Ni9pbmNsdWRlL3Vh cGkvYXNtL2t2bS5oICAgICAgICAgfCAxMiArKy0tCiB0b29scy9pbmNsdWRlL3VhcGkvZHJtL2k5 MTVfZHJtLmggICAgICAgICAgICAgfCAgNiArLQogdG9vbHMvaW5jbHVkZS91YXBpL2xpbnV4L2Jw Zi5oICAgICAgICAgICAgICAgIHwgIDIgKy0KIHRvb2xzL2luY2x1ZGUvdWFwaS9saW51eC9mcy5o ICAgICAgICAgICAgICAgICB8ICAyICstCiB0b29scy9pbmNsdWRlL3VhcGkvbGludXgvaWZfdHVu LmggICAgICAgICAgICAgfCAgMiArLQogdG9vbHMvaW5jbHVkZS91YXBpL2xpbnV4L2t2bS5oICAg ICAgICAgICAgICAgIHwgIDggKy0tCiB0b29scy9pbmNsdWRlL3VhcGkvbGludXgvcGVyZl9ldmVu dC5oICAgICAgICAgfCAgMiArLQogdG9vbHMvaW5jbHVkZS91YXBpL2xpbnV4L3BrdF9jbHMuaCAg ICAgICAgICAgIHwgIDQgKy0KIHRvb2xzL2luY2x1ZGUvdWFwaS9saW51eC9zZWc2LmggICAgICAg ICAgICAgICB8ICA0ICstCiB0b29scy9pbmNsdWRlL3VhcGkvbGludXgvdXNiZGV2aWNlX2ZzLmgg ICAgICAgfCAgNCArLQogdG9vbHMvaW5jbHVkZS91YXBpL3NvdW5kL2Fzb3VuZC5oICAgICAgICAg ICAgIHwgIDIgKy0KIDg0IGZpbGVzIGNoYW5nZWQsIDIxOCBpbnNlcnRpb25zKCspLCAyMTggZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvYXJjaC9tNjhrL2luY2x1ZGUvdWFwaS9hc20vYm9vdGlu Zm8uaCBiL2FyY2gvbTY4ay9pbmNsdWRlL3VhcGkvYXNtL2Jvb3RpbmZvLmgKaW5kZXggMjAzZDlj YmY5NjMwLi45NWVjZjNhZTRjNDkgMTAwNjQ0Ci0tLSBhL2FyY2gvbTY4ay9pbmNsdWRlL3VhcGkv YXNtL2Jvb3RpbmZvLmgKKysrIGIvYXJjaC9tNjhrL2luY2x1ZGUvdWFwaS9hc20vYm9vdGluZm8u aApAQCAtMzQsNyArMzQsNyBAQAogc3RydWN0IGJpX3JlY29yZCB7CiAJX19iZTE2IHRhZzsJCQkv KiB0YWcgSUQgKi8KIAlfX2JlMTYgc2l6ZTsJCQkvKiBzaXplIG9mIHJlY29yZCAoaW4gYnl0ZXMp ICovCi0JX19iZTMyIGRhdGFbMF07CQkJLyogZGF0YSAqLworCV9fYmUzMiBkYXRhW107CQkJLyog ZGF0YSAqLwogfTsKIAogCkBAIC0xNjgsNyArMTY4LDcgQEAgc3RydWN0IGJvb3R2ZXJzaW9uIHsK IAlzdHJ1Y3QgewogCQlfX2JlMzIgbWFjaHR5cGU7CiAJCV9fYmUzMiB2ZXJzaW9uOwotCX0gbWFj aHZlcnNpb25zWzBdOworCX0gbWFjaHZlcnNpb25zW107CiB9IF9fcGFja2VkOwogCiAjZW5kaWYg LyogX19BU1NFTUJMWV9fICovCmRpZmYgLS1naXQgYS9hcmNoL21pcHMvaW5jbHVkZS91YXBpL2Fz bS91Y29udGV4dC5oIGIvYXJjaC9taXBzL2luY2x1ZGUvdWFwaS9hc20vdWNvbnRleHQuaAppbmRl eCAyZDNiZjhlZWJmMWYuLjYxMjJlZjk3YzZmZiAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL2luY2x1 ZGUvdWFwaS9hc20vdWNvbnRleHQuaAorKysgYi9hcmNoL21pcHMvaW5jbHVkZS91YXBpL2FzbS91 Y29udGV4dC5oCkBAIC02MCw3ICs2MCw3IEBAIHN0cnVjdCB1Y29udGV4dCB7CiAJc2lnc2V0X3QJ CXVjX3NpZ21hc2s7CiAKIAkvKiBFeHRlbmRlZCBjb250ZXh0IHN0cnVjdHVyZXMgbWF5IGZvbGxv dyB1Y29udGV4dCAqLwotCXVuc2lnbmVkIGxvbmcgbG9uZwl1Y19leHRjb250ZXh0WzBdOworCXVu c2lnbmVkIGxvbmcgbG9uZwl1Y19leHRjb250ZXh0W107CiB9OwogCiAjZW5kaWYgLyogX19NSVBT X1VBUElfQVNNX1VDT05URVhUX0ggKi8KZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9pbmNsdWRlL3Vh cGkvYXNtL2h3Y3Ryc2V0LmggYi9hcmNoL3MzOTAvaW5jbHVkZS91YXBpL2FzbS9od2N0cnNldC5o CmluZGV4IDNkODI4NGI5NWY4Ny4uZTU2YjlkZDIzYTRiIDEwMDY0NAotLS0gYS9hcmNoL3MzOTAv aW5jbHVkZS91YXBpL2FzbS9od2N0cnNldC5oCisrKyBiL2FyY2gvczM5MC9pbmNsdWRlL3VhcGkv YXNtL2h3Y3Ryc2V0LmgKQEAgLTMwLDE4ICszMCwxOCBAQCBzdHJ1Y3QgczM5MF9jdHJzZXRfc3Rh cnQgewkJLyogU2V0IENQVXMgdG8gb3BlcmF0ZSBvbiAqLwogc3RydWN0IHMzOTBfY3Ryc2V0X3Nl dGRhdGEgewkJLyogQ291bnRlciBzZXQgZGF0YSAqLwogCV9fdTMyIHNldDsJCQkvKiBDb3VudGVy IHNldCBudW1iZXIgKi8KIAlfX3UzMiBub19jbnRzOwkJCS8qICMgb2YgY291bnRlcnMgc3RvcmVk IGluIGN2W10gKi8KLQlfX3U2NCBjdlswXTsJCQkvKiBDb3VudGVyIHZhbHVlcyAodmFyaWFibGUg bGVuZ3RoKSAqLworCV9fdTY0IGN2W107CQkJLyogQ291bnRlciB2YWx1ZXMgKHZhcmlhYmxlIGxl bmd0aCkgKi8KIH07CiAKIHN0cnVjdCBzMzkwX2N0cnNldF9jcHVkYXRhIHsJCS8qIENvdW50ZXIg c2V0IGRhdGEgcGVyIENQVSAqLwogCV9fdTMyIGNwdV9ucjsJCQkvKiBDUFUgbnVtYmVyICovCiAJ X191MzIgbm9fc2V0czsJCQkvKiAjIG9mIGNvdW50ZXJzIHNldHMgaW4gZGF0YVtdICovCi0Jc3Ry dWN0IHMzOTBfY3Ryc2V0X3NldGRhdGEgZGF0YVswXTsKKwlzdHJ1Y3QgczM5MF9jdHJzZXRfc2V0 ZGF0YSBkYXRhW107CiB9OwogCiBzdHJ1Y3QgczM5MF9jdHJzZXRfcmVhZCB7CQkvKiBTdHJ1Y3R1 cmUgdG8gZ2V0IGFsbCBjdHIgc2V0cyAqLwogCV9fdTY0IG5vX2NwdXM7CQkJLyogVG90YWwgIyBv ZiBDUFVzIGRhdGEgdGFrZW4gZnJvbSAqLwotCXN0cnVjdCBzMzkwX2N0cnNldF9jcHVkYXRhIGRh dGFbMF07CisJc3RydWN0IHMzOTBfY3Ryc2V0X2NwdWRhdGEgZGF0YVtdOwogfTsKIAogI2RlZmlu ZSBTMzkwX0hXQ1RSX01BR0lDCSdDJwkvKiBSYW5kb20gbWFnaWMgIyBmb3IgaW9jdGxzICovCmRp ZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL2Jvb3RwYXJhbS5oIGIvYXJjaC94 ODYvaW5jbHVkZS91YXBpL2FzbS9ib290cGFyYW0uaAppbmRleCBiZWE1Y2RjZGY1MzIuLmNkZDZj N2Y2Y2ZhNiAxMDA2NDQKLS0tIGEvYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9ib290cGFyYW0u aAorKysgYi9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL2Jvb3RwYXJhbS5oCkBAIC01Miw3ICs1 Miw3IEBAIHN0cnVjdCBzZXR1cF9kYXRhIHsKIAlfX3U2NCBuZXh0OwogCV9fdTMyIHR5cGU7CiAJ X191MzIgbGVuOwotCV9fdTggZGF0YVswXTsKKwlfX3U4IGRhdGFbXTsKIH07CiAKIC8qIGV4dGVu c2libGUgc2V0dXAgaW5kaXJlY3QgZGF0YSBub2RlICovCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9p bmNsdWRlL3VhcGkvYXNtL2t2bS5oIGIvYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9rdm0uaApp bmRleCAyMTYxNDgwN2EyY2IuLmVjNTNjOWZhMWRhOSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvaW5j bHVkZS91YXBpL2FzbS9rdm0uaAorKysgYi9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL2t2bS5o CkBAIC0xOTgsMTMgKzE5OCwxMyBAQCBzdHJ1Y3Qga3ZtX21zcnMgewogCV9fdTMyIG5tc3JzOyAv KiBudW1iZXIgb2YgbXNycyBpbiBlbnRyaWVzICovCiAJX191MzIgcGFkOwogCi0Jc3RydWN0IGt2 bV9tc3JfZW50cnkgZW50cmllc1swXTsKKwlzdHJ1Y3Qga3ZtX21zcl9lbnRyeSBlbnRyaWVzW107 CiB9OwogCiAvKiBmb3IgS1ZNX0dFVF9NU1JfSU5ERVhfTElTVCAqLwogc3RydWN0IGt2bV9tc3Jf bGlzdCB7CiAJX191MzIgbm1zcnM7IC8qIG51bWJlciBvZiBtc3JzIGluIGVudHJpZXMgKi8KLQlf X3UzMiBpbmRpY2VzWzBdOworCV9fdTMyIGluZGljZXNbXTsKIH07CiAKIC8qIE1heGltdW0gc2l6 ZSBvZiBhbnkgYWNjZXNzIGJpdG1hcCBpbiBieXRlcyAqLwpAQCAtMjQxLDcgKzI0MSw3IEBAIHN0 cnVjdCBrdm1fY3B1aWRfZW50cnkgewogc3RydWN0IGt2bV9jcHVpZCB7CiAJX191MzIgbmVudDsK IAlfX3UzMiBwYWRkaW5nOwotCXN0cnVjdCBrdm1fY3B1aWRfZW50cnkgZW50cmllc1swXTsKKwlz dHJ1Y3Qga3ZtX2NwdWlkX2VudHJ5IGVudHJpZXNbXTsKIH07CiAKIHN0cnVjdCBrdm1fY3B1aWRf ZW50cnkyIHsKQEAgLTI2Myw3ICsyNjMsNyBAQCBzdHJ1Y3Qga3ZtX2NwdWlkX2VudHJ5MiB7CiBz dHJ1Y3Qga3ZtX2NwdWlkMiB7CiAJX191MzIgbmVudDsKIAlfX3UzMiBwYWRkaW5nOwotCXN0cnVj dCBrdm1fY3B1aWRfZW50cnkyIGVudHJpZXNbMF07CisJc3RydWN0IGt2bV9jcHVpZF9lbnRyeTIg ZW50cmllc1tdOwogfTsKIAogLyogZm9yIEtWTV9HRVRfUElUIGFuZCBLVk1fU0VUX1BJVCAqLwpA QCAtMzg5LDcgKzM4OSw3IEBAIHN0cnVjdCBrdm1feHNhdmUgewogCSAqIHRoZSBjb250ZW50cyBv ZiBDUFVJRCBsZWFmIDB4RCBvbiB0aGUgaG9zdC4KIAkgKi8KIAlfX3UzMiByZWdpb25bMTAyNF07 Ci0JX191MzIgZXh0cmFbMF07CisJX191MzIgZXh0cmFbXTsKIH07CiAKICNkZWZpbmUgS1ZNX01B WF9YQ1JTCTE2CkBAIC01MTYsNyArNTE2LDcgQEAgc3RydWN0IGt2bV9wbXVfZXZlbnRfZmlsdGVy IHsKIAlfX3UzMiBmaXhlZF9jb3VudGVyX2JpdG1hcDsKIAlfX3UzMiBmbGFnczsKIAlfX3UzMiBw YWRbNF07Ci0JX191NjQgZXZlbnRzWzBdOworCV9fdTY0IGV2ZW50c1tdOwogfTsKIAogI2RlZmlu ZSBLVk1fUE1VX0VWRU5UX0FMTE9XIDAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9kcm0vaTkx NV9kcm0uaCBiL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaAppbmRleCBhMmRlZjdiMjcwMDku LmIyOGZmNWQ4ODE0NSAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oCisr KyBiL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaApAQCAtMjEyMyw3ICsyMTIzLDcgQEAgc3Ry dWN0IGk5MTVfY29udGV4dF9lbmdpbmVzX2xvYWRfYmFsYW5jZSB7CiAKIAlfX3U2NCBtYno2NDsg LyogcmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2U7IG11c3QgYmUgemVybyAqLwogCi0Jc3RydWN0IGk5 MTVfZW5naW5lX2NsYXNzX2luc3RhbmNlIGVuZ2luZXNbMF07CisJc3RydWN0IGk5MTVfZW5naW5l X2NsYXNzX2luc3RhbmNlIGVuZ2luZXNbXTsKIH0gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CiAK ICNkZWZpbmUgSTkxNV9ERUZJTkVfQ09OVEVYVF9FTkdJTkVTX0xPQURfQkFMQU5DRShuYW1lX18s IE5fXykgc3RydWN0IHsgXApAQCAtMjE2MSw3ICsyMTYxLDcgQEAgc3RydWN0IGk5MTVfY29udGV4 dF9lbmdpbmVzX2JvbmQgewogCV9fdTY0IGZsYWdzOyAvKiBhbGwgdW5kZWZpbmVkIGZsYWdzIG11 c3QgYmUgemVybyAqLwogCV9fdTY0IG1iejY0WzRdOyAvKiByZXNlcnZlZCBmb3IgZnV0dXJlIHVz ZTsgbXVzdCBiZSB6ZXJvICovCiAKLQlzdHJ1Y3QgaTkxNV9lbmdpbmVfY2xhc3NfaW5zdGFuY2Ug ZW5naW5lc1swXTsKKwlzdHJ1Y3QgaTkxNV9lbmdpbmVfY2xhc3NfaW5zdGFuY2UgZW5naW5lc1td OwogfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKIAogI2RlZmluZSBJOTE1X0RFRklORV9DT05U RVhUX0VOR0lORVNfQk9ORChuYW1lX18sIE5fXykgc3RydWN0IHsgXApAQCAtMjI4OCw3ICsyMjg4 LDcgQEAgc3RydWN0IGk5MTVfY29udGV4dF9lbmdpbmVzX3BhcmFsbGVsX3N1Ym1pdCB7CiAJICog bGVuZ3RoID0gd2lkdGggKGkpICogbnVtX3NpYmxpbmdzIChqKQogCSAqIGluZGV4ID0gaiArIGkg KiBudW1fc2libGluZ3MKIAkgKi8KLQlzdHJ1Y3QgaTkxNV9lbmdpbmVfY2xhc3NfaW5zdGFuY2Ug ZW5naW5lc1swXTsKKwlzdHJ1Y3QgaTkxNV9lbmdpbmVfY2xhc3NfaW5zdGFuY2UgZW5naW5lc1td OwogCiB9IF9fcGFja2VkOwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvbGludXgvYmxrem9u ZWQuaCBiL2luY2x1ZGUvdWFwaS9saW51eC9ibGt6b25lZC5oCmluZGV4IDY1NmEzMjY4MjFhMi4u YjgwZmNjOWVhNTI1IDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvYmxrem9uZWQuaAor KysgYi9pbmNsdWRlL3VhcGkvbGludXgvYmxrem9uZWQuaApAQCAtMTMwLDcgKzEzMCw3IEBAIHN0 cnVjdCBibGtfem9uZV9yZXBvcnQgewogCV9fdTY0CQlzZWN0b3I7CiAJX191MzIJCW5yX3pvbmVz OwogCV9fdTMyCQlmbGFnczsKLQlzdHJ1Y3QgYmxrX3pvbmUgem9uZXNbMF07CisJc3RydWN0IGJs a196b25lIHpvbmVzW107CiB9OwogCiAvKioKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51 eC9icGYuaCBiL2luY2x1ZGUvdWFwaS9saW51eC9icGYuaAppbmRleCBmNDAwOWRiZGY2MmQuLmU0 YjMzYmEwNmYwMCAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L2JwZi5oCisrKyBiL2lu Y2x1ZGUvdWFwaS9saW51eC9icGYuaApAQCAtNzksNyArNzksNyBAQCBzdHJ1Y3QgYnBmX2luc24g ewogLyogS2V5IG9mIGFuIGEgQlBGX01BUF9UWVBFX0xQTV9UUklFIGVudHJ5ICovCiBzdHJ1Y3Qg YnBmX2xwbV90cmllX2tleSB7CiAJX191MzIJcHJlZml4bGVuOwkvKiB1cCB0byAzMiBmb3IgQUZf SU5FVCwgMTI4IGZvciBBRl9JTkVUNiAqLwotCV9fdTgJZGF0YVswXTsJLyogQXJiaXRyYXJ5IHNp emUgKi8KKwlfX3U4CWRhdGFbXTsJLyogQXJiaXRyYXJ5IHNpemUgKi8KIH07CiAKIHN0cnVjdCBi cGZfY2dyb3VwX3N0b3JhZ2Vfa2V5IHsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9i dHJmcy5oIGIvaW5jbHVkZS91YXBpL2xpbnV4L2J0cmZzLmgKaW5kZXggZDk1NmIyOTkzOTcwLi4z ZDBlZGJlM2I5OTEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC9idHJmcy5oCisrKyBi L2luY2x1ZGUvdWFwaS9saW51eC9idHJmcy5oCkBAIC05Myw3ICs5Myw3IEBAIHN0cnVjdCBidHJm c19xZ3JvdXBfaW5oZXJpdCB7CiAJX191NjQJbnVtX3JlZl9jb3BpZXM7CiAJX191NjQJbnVtX2V4 Y2xfY29waWVzOwogCXN0cnVjdCBidHJmc19xZ3JvdXBfbGltaXQgbGltOwotCV9fdTY0CXFncm91 cHNbMF07CisJX191NjQJcWdyb3Vwc1tdOwogfTsKIAogc3RydWN0IGJ0cmZzX2lvY3RsX3Fncm91 cF9saW1pdF9hcmdzIHsKQEAgLTU2MSw3ICs1NjEsNyBAQCBzdHJ1Y3QgYnRyZnNfaW9jdGxfc2Vh cmNoX2FyZ3NfdjIgewogCV9fdTY0IGJ1Zl9zaXplOwkJICAgLyogaW4gLSBzaXplIG9mIGJ1ZmZl cgogCQkJCQkgICAgKiBvdXQgLSBvbiBFT1ZFUkZMT1c6IG5lZWRlZCBzaXplCiAJCQkJCSAgICAq ICAgICAgIHRvIHN0b3JlIGl0ZW0gKi8KLQlfX3U2NCBidWZbMF07ICAgICAgICAgICAgICAgICAg ICAgICAvKiBvdXQgLSBmb3VuZCBpdGVtcyAqLworCV9fdTY0IGJ1ZltdOyAgICAgICAgICAgICAg ICAgICAgICAgLyogb3V0IC0gZm91bmQgaXRlbXMgKi8KIH07CiAKIHN0cnVjdCBidHJmc19pb2N0 bF9jbG9uZV9yYW5nZV9hcmdzIHsKQEAgLTYzMiw3ICs2MzIsNyBAQCBzdHJ1Y3QgYnRyZnNfaW9j dGxfc2FtZV9hcmdzIHsKIAlfX3UxNiBkZXN0X2NvdW50OwkvKiBpbiAtIHRvdGFsIGVsZW1lbnRz IGluIGluZm8gYXJyYXkgKi8KIAlfX3UxNiByZXNlcnZlZDE7CiAJX191MzIgcmVzZXJ2ZWQyOwot CXN0cnVjdCBidHJmc19pb2N0bF9zYW1lX2V4dGVudF9pbmZvIGluZm9bMF07CisJc3RydWN0IGJ0 cmZzX2lvY3RsX3NhbWVfZXh0ZW50X2luZm8gaW5mb1tdOwogfTsKIAogc3RydWN0IGJ0cmZzX2lv Y3RsX3NwYWNlX2luZm8gewpAQCAtNjQ0LDcgKzY0NCw3IEBAIHN0cnVjdCBidHJmc19pb2N0bF9z cGFjZV9pbmZvIHsKIHN0cnVjdCBidHJmc19pb2N0bF9zcGFjZV9hcmdzIHsKIAlfX3U2NCBzcGFj ZV9zbG90czsKIAlfX3U2NCB0b3RhbF9zcGFjZXM7Ci0Jc3RydWN0IGJ0cmZzX2lvY3RsX3NwYWNl X2luZm8gc3BhY2VzWzBdOworCXN0cnVjdCBidHJmc19pb2N0bF9zcGFjZV9pbmZvIHNwYWNlc1td OwogfTsKIAogc3RydWN0IGJ0cmZzX2RhdGFfY29udGFpbmVyIHsKQEAgLTY1Miw3ICs2NTIsNyBA QCBzdHJ1Y3QgYnRyZnNfZGF0YV9jb250YWluZXIgewogCV9fdTMyCWJ5dGVzX21pc3Npbmc7CS8q IG91dCAtLSBhZGRpdGlvbmFsIGJ5dGVzIG5lZWRlZCBmb3IgcmVzdWx0ICovCiAJX191MzIJZWxl bV9jbnQ7CS8qIG91dCAqLwogCV9fdTMyCWVsZW1fbWlzc2VkOwkvKiBvdXQgKi8KLQlfX3U2NAl2 YWxbMF07CQkvKiBvdXQgKi8KKwlfX3U2NAl2YWxbXTsJCS8qIG91dCAqLwogfTsKIAogc3RydWN0 IGJ0cmZzX2lvY3RsX2lub19wYXRoX2FyZ3MgewpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xp bnV4L2J0cmZzX3RyZWUuaCBiL2luY2x1ZGUvdWFwaS9saW51eC9idHJmc190cmVlLmgKaW5kZXgg ZDQxMTcxNTJkOTA3Li41ZjMyYTJhNDk1ZGMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51 eC9idHJmc190cmVlLmgKKysrIGIvaW5jbHVkZS91YXBpL2xpbnV4L2J0cmZzX3RyZWUuaApAQCAt NTc1LDcgKzU3NSw3IEBAIHN0cnVjdCBidHJmc19pbm9kZV9leHRyZWYgewogCV9fbGU2NCBwYXJl bnRfb2JqZWN0aWQ7CiAJX19sZTY0IGluZGV4OwogCV9fbGUxNiBuYW1lX2xlbjsKLQlfX3U4ICAg bmFtZVswXTsKKwlfX3U4ICAgbmFtZVtdOwogCS8qIG5hbWUgZ29lcyBoZXJlICovCiB9IF9fYXR0 cmlidXRlX18gKChfX3BhY2tlZF9fKSk7CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51 eC9jYW4vYmNtLmggYi9pbmNsdWRlL3VhcGkvbGludXgvY2FuL2JjbS5oCmluZGV4IGRkMmI5MjVi MDlhYy4uZjFlNDVmNTMzYTcyIDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvY2FuL2Jj bS5oCisrKyBiL2luY2x1ZGUvdWFwaS9saW51eC9jYW4vYmNtLmgKQEAgLTcxLDcgKzcxLDcgQEAg c3RydWN0IGJjbV9tc2dfaGVhZCB7CiAJc3RydWN0IGJjbV90aW1ldmFsIGl2YWwxLCBpdmFsMjsK IAljYW5pZF90IGNhbl9pZDsKIAlfX3UzMiBuZnJhbWVzOwotCXN0cnVjdCBjYW5fZnJhbWUgZnJh bWVzWzBdOworCXN0cnVjdCBjYW5fZnJhbWUgZnJhbWVzW107CiB9OwogCiBlbnVtIHsKZGlmZiAt LWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9jb25uZWN0b3IuaCBiL2luY2x1ZGUvdWFwaS9saW51 eC9jb25uZWN0b3IuaAppbmRleCAzNzM4OTM2MTQ5YTIuLjVhZTEzMWMzZjE0NSAxMDA2NDQKLS0t IGEvaW5jbHVkZS91YXBpL2xpbnV4L2Nvbm5lY3Rvci5oCisrKyBiL2luY2x1ZGUvdWFwaS9saW51 eC9jb25uZWN0b3IuaApAQCAtNzUsNyArNzUsNyBAQCBzdHJ1Y3QgY25fbXNnIHsKIAogCV9fdTE2 IGxlbjsJCS8qIExlbmd0aCBvZiB0aGUgZm9sbG93aW5nIGRhdGEgKi8KIAlfX3UxNiBmbGFnczsK LQlfX3U4IGRhdGFbMF07CisJX191OCBkYXRhW107CiB9OwogCiAjZW5kaWYgLyogX1VBUElfX0NP Tk5FQ1RPUl9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvbGludXgvY3ljeF9jZm0uaCBi L2luY2x1ZGUvdWFwaS9saW51eC9jeWN4X2NmbS5oCmluZGV4IDUxZjU0MTk0MmZmOS4uOTE3Nzhj ODAyNGIxIDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvY3ljeF9jZm0uaAorKysgYi9p bmNsdWRlL3VhcGkvbGludXgvY3ljeF9jZm0uaApAQCAtOTEsNyArOTEsNyBAQCBzdHJ1Y3QgY3lj eF9maXJtd2FyZSB7CiAJdW5zaWduZWQgc2hvcnQJICAgIHJlc2VydmVkWzZdOwogCWNoYXIJCSAg ICBkZXNjcltDRk1fREVTQ1JfTEVOXTsKIAlzdHJ1Y3QgY3ljeF9md19pbmZvIGluZm87Ci0JdW5z aWduZWQgY2hhcgkgICAgaW1hZ2VbMF07CisJdW5zaWduZWQgY2hhcgkgICAgaW1hZ2VbXTsKIH07 CiAKIHN0cnVjdCBjeWN4X2Z3X2hlYWRlciB7CmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvbGlu dXgvZG0taW9jdGwuaCBiL2luY2x1ZGUvdWFwaS9saW51eC9kbS1pb2N0bC5oCmluZGV4IDJlOTU1 MGZlZjkwZi4uOGM5N2Q3NWYzMTA0IDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvZG0t aW9jdGwuaAorKysgYi9pbmNsdWRlL3VhcGkvbGludXgvZG0taW9jdGwuaApAQCAtMTgyLDcgKzE4 Miw3IEBAIHN0cnVjdCBkbV90YXJnZXRfc3BlYyB7CiBzdHJ1Y3QgZG1fdGFyZ2V0X2RlcHMgewog CV9fdTMyIGNvdW50OwkvKiBBcnJheSBzaXplICovCiAJX191MzIgcGFkZGluZzsJLyogdW51c2Vk ICovCi0JX191NjQgZGV2WzBdOwkvKiBvdXQgKi8KKwlfX3U2NCBkZXZbXTsJLyogb3V0ICovCiB9 OwogCiAvKgpAQCAtMTkyLDcgKzE5Miw3IEBAIHN0cnVjdCBkbV9uYW1lX2xpc3QgewogCV9fdTY0 IGRldjsKIAlfX3UzMiBuZXh0OwkJLyogb2Zmc2V0IHRvIHRoZSBuZXh0IHJlY29yZCBmcm9tCiAJ CQkJICAgdGhlIF9zdGFydF8gb2YgdGhpcyAqLwotCWNoYXIgbmFtZVswXTsKKwljaGFyIG5hbWVb XTsKIAogCS8qCiAJICogVGhlIGZvbGxvd2luZyBtZW1iZXJzIGNhbiBiZSBhY2Nlc3NlZCBieSB0 YWtpbmcgYSBwb2ludGVyIHRoYXQKQEAgLTIxNiw3ICsyMTYsNyBAQCBzdHJ1Y3QgZG1fdGFyZ2V0 X3ZlcnNpb25zIHsKICAgICAgICAgX191MzIgbmV4dDsKICAgICAgICAgX191MzIgdmVyc2lvblsz XTsKIAotICAgICAgICBjaGFyIG5hbWVbMF07CisgICAgICAgIGNoYXIgbmFtZVtdOwogfTsKIAog LyoKQEAgLTIyNSw3ICsyMjUsNyBAQCBzdHJ1Y3QgZG1fdGFyZ2V0X3ZlcnNpb25zIHsKIHN0cnVj dCBkbV90YXJnZXRfbXNnIHsKIAlfX3U2NCBzZWN0b3I7CS8qIERldmljZSBzZWN0b3IgKi8KIAot CWNoYXIgbWVzc2FnZVswXTsKKwljaGFyIG1lc3NhZ2VbXTsKIH07CiAKIC8qCmRpZmYgLS1naXQg YS9pbmNsdWRlL3VhcGkvbGludXgvZG0tbG9nLXVzZXJzcGFjZS5oIGIvaW5jbHVkZS91YXBpL2xp bnV4L2RtLWxvZy11c2Vyc3BhY2UuaAppbmRleCA1YzQ3YTg2MDMzNzYuLjIzZGFkOTU2NWU0NiAx MDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L2RtLWxvZy11c2Vyc3BhY2UuaAorKysgYi9p bmNsdWRlL3VhcGkvbGludXgvZG0tbG9nLXVzZXJzcGFjZS5oCkBAIC00MjYsNyArNDI2LDcgQEAg c3RydWN0IGRtX3Vsb2dfcmVxdWVzdCB7CiAJX191MzIgcmVxdWVzdF90eXBlOyAgLyogRE1fVUxP R18qIGRlZmluZWQgYWJvdmUgKi8KIAlfX3UzMiBkYXRhX3NpemU7ICAgICAvKiBIb3cgbXVjaCBk YXRhIChub3QgaW5jbHVkaW5nIHRoaXMgc3RydWN0KSAqLwogCi0JY2hhciBkYXRhWzBdOworCWNo YXIgZGF0YVtdOwogfTsKIAogI2VuZGlmIC8qIF9fRE1fTE9HX1VTRVJTUEFDRV9IX18gKi8KZGlm ZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9ldGh0b29sLmggYi9pbmNsdWRlL3VhcGkvbGlu dXgvZXRodG9vbC5oCmluZGV4IGUwZjBlZTliYzg5ZS4uMmQ1NzQxZmQ0NGJiIDEwMDY0NAotLS0g YS9pbmNsdWRlL3VhcGkvbGludXgvZXRodG9vbC5oCisrKyBiL2luY2x1ZGUvdWFwaS9saW51eC9l dGh0b29sLmgKQEAgLTI1Nyw3ICsyNTcsNyBAQCBzdHJ1Y3QgZXRodG9vbF90dW5hYmxlIHsKIAlf X3UzMglpZDsKIAlfX3UzMgl0eXBlX2lkOwogCV9fdTMyCWxlbjsKLQl2b2lkCSpkYXRhWzBdOwor CXZvaWQJKmRhdGFbXTsKIH07CiAKICNkZWZpbmUgRE9XTlNISUZUX0RFVl9ERUZBVUxUX0NPVU5U CTB4ZmYKQEAgLTMyMiw3ICszMjIsNyBAQCBzdHJ1Y3QgZXRodG9vbF9yZWdzIHsKIAlfX3UzMglj bWQ7CiAJX191MzIJdmVyc2lvbjsKIAlfX3UzMglsZW47Ci0JX191OAlkYXRhWzBdOworCV9fdTgJ ZGF0YVtdOwogfTsKIAogLyoqCkBAIC0zNDgsNyArMzQ4LDcgQEAgc3RydWN0IGV0aHRvb2xfZWVw cm9tIHsKIAlfX3UzMgltYWdpYzsKIAlfX3UzMglvZmZzZXQ7CiAJX191MzIJbGVuOwotCV9fdTgJ ZGF0YVswXTsKKwlfX3U4CWRhdGFbXTsKIH07CiAKIC8qKgpAQCAtNzUyLDcgKzc1Miw3IEBAIHN0 cnVjdCBldGh0b29sX2dzdHJpbmdzIHsKIAlfX3UzMgljbWQ7CiAJX191MzIJc3RyaW5nX3NldDsK IAlfX3UzMglsZW47Ci0JX191OAlkYXRhWzBdOworCV9fdTgJZGF0YVtdOwogfTsKIAogLyoqCkBA IC03NzcsNyArNzc3LDcgQEAgc3RydWN0IGV0aHRvb2xfc3NldF9pbmZvIHsKIAlfX3UzMgljbWQ7 CiAJX191MzIJcmVzZXJ2ZWQ7CiAJX191NjQJc3NldF9tYXNrOwotCV9fdTMyCWRhdGFbMF07CisJ X191MzIJZGF0YVtdOwogfTsKIAogLyoqCkBAIC04MTcsNyArODE3LDcgQEAgc3RydWN0IGV0aHRv b2xfdGVzdCB7CiAJX191MzIJZmxhZ3M7CiAJX191MzIJcmVzZXJ2ZWQ7CiAJX191MzIJbGVuOwot CV9fdTY0CWRhdGFbMF07CisJX191NjQJZGF0YVtdOwogfTsKIAogLyoqCkBAIC04MzQsNyArODM0 LDcgQEAgc3RydWN0IGV0aHRvb2xfdGVzdCB7CiBzdHJ1Y3QgZXRodG9vbF9zdGF0cyB7CiAJX191 MzIJY21kOwogCV9fdTMyCW5fc3RhdHM7Ci0JX191NjQJZGF0YVswXTsKKwlfX3U2NAlkYXRhW107 CiB9OwogCiAvKioKQEAgLTg1MSw3ICs4NTEsNyBAQCBzdHJ1Y3QgZXRodG9vbF9zdGF0cyB7CiBz dHJ1Y3QgZXRodG9vbF9wZXJtX2FkZHIgewogCV9fdTMyCWNtZDsKIAlfX3UzMglzaXplOwotCV9f dTgJZGF0YVswXTsKKwlfX3U4CWRhdGFbXTsKIH07CiAKIC8qIGJvb2xlYW4gZmxhZ3MgY29udHJv bGxpbmcgcGVyLWludGVyZmFjZSBiZWhhdmlvciBjaGFyYWN0ZXJpc3RpY3MuCkBAIC0xMTYwLDcg KzExNjAsNyBAQCBzdHJ1Y3QgZXRodG9vbF9yeG5mYyB7CiBzdHJ1Y3QgZXRodG9vbF9yeGZoX2lu ZGlyIHsKIAlfX3UzMgljbWQ7CiAJX191MzIJc2l6ZTsKLQlfX3UzMglyaW5nX2luZGV4WzBdOwor CV9fdTMyCXJpbmdfaW5kZXhbXTsKIH07CiAKIC8qKgpAQCAtMTIwMSw3ICsxMjAxLDcgQEAgc3Ry dWN0IGV0aHRvb2xfcnhmaCB7CiAJX191OAloZnVuYzsKIAlfX3U4CXJzdmQ4WzNdOwogCV9fdTMy CXJzdmQzMjsKLQlfX3UzMiAgIHJzc19jb25maWdbMF07CisJX191MzIgICByc3NfY29uZmlnW107 CiB9OwogI2RlZmluZSBFVEhfUlhGSF9DT05URVhUX0FMTE9DCQkweGZmZmZmZmZmCiAjZGVmaW5l IEVUSF9SWEZIX0lORElSX05PX0NIQU5HRQkweGZmZmZmZmZmCkBAIC0xMjg2LDcgKzEyODYsNyBA QCBzdHJ1Y3QgZXRodG9vbF9kdW1wIHsKIAlfX3UzMgl2ZXJzaW9uOwogCV9fdTMyCWZsYWc7CiAJ X191MzIJbGVuOwotCV9fdTgJZGF0YVswXTsKKwlfX3U4CWRhdGFbXTsKIH07CiAKICNkZWZpbmUg RVRIX0ZXX0RVTVBfRElTQUJMRSAwCkBAIC0xMzE4LDcgKzEzMTgsNyBAQCBzdHJ1Y3QgZXRodG9v bF9nZXRfZmVhdHVyZXNfYmxvY2sgewogc3RydWN0IGV0aHRvb2xfZ2ZlYXR1cmVzIHsKIAlfX3Uz MgljbWQ7CiAJX191MzIJc2l6ZTsKLQlzdHJ1Y3QgZXRodG9vbF9nZXRfZmVhdHVyZXNfYmxvY2sg ZmVhdHVyZXNbMF07CisJc3RydWN0IGV0aHRvb2xfZ2V0X2ZlYXR1cmVzX2Jsb2NrIGZlYXR1cmVz W107CiB9OwogCiAvKioKQEAgLTEzNDAsNyArMTM0MCw3IEBAIHN0cnVjdCBldGh0b29sX3NldF9m ZWF0dXJlc19ibG9jayB7CiBzdHJ1Y3QgZXRodG9vbF9zZmVhdHVyZXMgewogCV9fdTMyCWNtZDsK IAlfX3UzMglzaXplOwotCXN0cnVjdCBldGh0b29sX3NldF9mZWF0dXJlc19ibG9jayBmZWF0dXJl c1swXTsKKwlzdHJ1Y3QgZXRodG9vbF9zZXRfZmVhdHVyZXNfYmxvY2sgZmVhdHVyZXNbXTsKIH07 CiAKIC8qKgpAQCAtMjA4Nyw3ICsyMDg3LDcgQEAgc3RydWN0IGV0aHRvb2xfbGlua19zZXR0aW5n cyB7CiAJX191OAltYXN0ZXJfc2xhdmVfc3RhdGU7CiAJX191OAlyZXNlcnZlZDFbMV07CiAJX191 MzIJcmVzZXJ2ZWRbN107Ci0JX191MzIJbGlua19tb2RlX21hc2tzWzBdOworCV9fdTMyCWxpbmtf bW9kZV9tYXNrc1tdOwogCS8qIGxheW91dCBvZiBsaW5rX21vZGVfbWFza3MgZmllbGRzOgogCSAq IF9fdTMyIG1hcF9zdXBwb3J0ZWRbbGlua19tb2RlX21hc2tzX253b3Jkc107CiAJICogX191MzIg bWFwX2FkdmVydGlzaW5nW2xpbmtfbW9kZV9tYXNrc19ud29yZHNdOwpkaWZmIC0tZ2l0IGEvaW5j bHVkZS91YXBpL2xpbnV4L2Zhbm90aWZ5LmggYi9pbmNsdWRlL3VhcGkvbGludXgvZmFub3RpZnku aAppbmRleCBmMWY4OTEzMmQ2MGUuLjE5N2RmMzQ0MzA3ZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS91 YXBpL2xpbnV4L2Zhbm90aWZ5LmgKKysrIGIvaW5jbHVkZS91YXBpL2xpbnV4L2Zhbm90aWZ5LmgK QEAgLTE2Miw3ICsxNjIsNyBAQCBzdHJ1Y3QgZmFub3RpZnlfZXZlbnRfaW5mb19maWQgewogCSAq IEZvbGxvd2luZyBpcyBhbiBvcGFxdWUgc3RydWN0IGZpbGVfaGFuZGxlIHRoYXQgY2FuIGJlIHBh c3NlZCBhcwogCSAqIGFuIGFyZ3VtZW50IHRvIG9wZW5fYnlfaGFuZGxlX2F0KDIpLgogCSAqLwot CXVuc2lnbmVkIGNoYXIgaGFuZGxlWzBdOworCXVuc2lnbmVkIGNoYXIgaGFuZGxlW107CiB9Owog CiAvKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L2ZpZW1hcC5oIGIvaW5jbHVkZS91 YXBpL2xpbnV4L2ZpZW1hcC5oCmluZGV4IDA3YzFjZGNiNzE1ZS4uMjRjYTBjMDBjYWUzIDEwMDY0 NAotLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvZmllbWFwLmgKKysrIGIvaW5jbHVkZS91YXBpL2xp bnV4L2ZpZW1hcC5oCkBAIC0zNCw3ICszNCw3IEBAIHN0cnVjdCBmaWVtYXAgewogCV9fdTMyIGZt X21hcHBlZF9leHRlbnRzOy8qIG51bWJlciBvZiBleHRlbnRzIHRoYXQgd2VyZSBtYXBwZWQgKG91 dCkgKi8KIAlfX3UzMiBmbV9leHRlbnRfY291bnQ7ICAvKiBzaXplIG9mIGZtX2V4dGVudHMgYXJy YXkgKGluKSAqLwogCV9fdTMyIGZtX3Jlc2VydmVkOwotCXN0cnVjdCBmaWVtYXBfZXh0ZW50IGZt X2V4dGVudHNbMF07IC8qIGFycmF5IG9mIG1hcHBlZCBleHRlbnRzIChvdXQpICovCisJc3RydWN0 IGZpZW1hcF9leHRlbnQgZm1fZXh0ZW50c1tdOyAvKiBhcnJheSBvZiBtYXBwZWQgZXh0ZW50cyAo b3V0KSAqLwogfTsKIAogI2RlZmluZSBGSUVNQVBfTUFYX09GRlNFVAkofjBVTEwpCmRpZmYgLS1n aXQgYS9pbmNsdWRlL3VhcGkvbGludXgvZmlyZXdpcmUtY2Rldi5oIGIvaW5jbHVkZS91YXBpL2xp bnV4L2ZpcmV3aXJlLWNkZXYuaAppbmRleCA1ZWZmYTk4MzI4MDIuLjkyYmUzZWEzYzZlMCAxMDA2 NDQKLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L2ZpcmV3aXJlLWNkZXYuaAorKysgYi9pbmNsdWRl L3VhcGkvbGludXgvZmlyZXdpcmUtY2Rldi5oCkBAIC0xMTgsNyArMTE4LDcgQEAgc3RydWN0IGZ3 X2NkZXZfZXZlbnRfcmVzcG9uc2UgewogCV9fdTMyIHR5cGU7CiAJX191MzIgcmNvZGU7CiAJX191 MzIgbGVuZ3RoOwotCV9fdTMyIGRhdGFbMF07CisJX191MzIgZGF0YVtdOwogfTsKIAogLyoqCkBA IC0xNDIsNyArMTQyLDcgQEAgc3RydWN0IGZ3X2NkZXZfZXZlbnRfcmVxdWVzdCB7CiAJX191NjQg b2Zmc2V0OwogCV9fdTMyIGhhbmRsZTsKIAlfX3UzMiBsZW5ndGg7Ci0JX191MzIgZGF0YVswXTsK KwlfX3UzMiBkYXRhW107CiB9OwogCiAvKioKQEAgLTIwNSw3ICsyMDUsNyBAQCBzdHJ1Y3QgZndf Y2Rldl9ldmVudF9yZXF1ZXN0MiB7CiAJX191MzIgZ2VuZXJhdGlvbjsKIAlfX3UzMiBoYW5kbGU7 CiAJX191MzIgbGVuZ3RoOwotCV9fdTMyIGRhdGFbMF07CisJX191MzIgZGF0YVtdOwogfTsKIAog LyoqCkBAIC0yNjUsNyArMjY1LDcgQEAgc3RydWN0IGZ3X2NkZXZfZXZlbnRfaXNvX2ludGVycnVw dCB7CiAJX191MzIgdHlwZTsKIAlfX3UzMiBjeWNsZTsKIAlfX3UzMiBoZWFkZXJfbGVuZ3RoOwot CV9fdTMyIGhlYWRlclswXTsKKwlfX3UzMiBoZWFkZXJbXTsKIH07CiAKIC8qKgpAQCAtMzU1LDcg KzM1NSw3IEBAIHN0cnVjdCBmd19jZGV2X2V2ZW50X3BoeV9wYWNrZXQgewogCV9fdTMyIHR5cGU7 CiAJX191MzIgcmNvZGU7CiAJX191MzIgbGVuZ3RoOwotCV9fdTMyIGRhdGFbMF07CisJX191MzIg ZGF0YVtdOwogfTsKIAogLyoqCkBAIC04MDMsNyArODAzLDcgQEAgc3RydWN0IGZ3X2NkZXZfc2V0 X2lzb19jaGFubmVscyB7CiAgKi8KIHN0cnVjdCBmd19jZGV2X2lzb19wYWNrZXQgewogCV9fdTMy IGNvbnRyb2w7Ci0JX191MzIgaGVhZGVyWzBdOworCV9fdTMyIGhlYWRlcltdOwogfTsKIAogLyoq CmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvbGludXgvZnMuaCBiL2luY2x1ZGUvdWFwaS9saW51 eC9mcy5oCmluZGV4IGJkZjdiNDA0YjNlNy4uYjdiNTY4NzEwMjljIDEwMDY0NAotLS0gYS9pbmNs dWRlL3VhcGkvbGludXgvZnMuaAorKysgYi9pbmNsdWRlL3VhcGkvbGludXgvZnMuaApAQCAtOTAs NyArOTAsNyBAQCBzdHJ1Y3QgZmlsZV9kZWR1cGVfcmFuZ2UgewogCV9fdTE2IGRlc3RfY291bnQ7 CS8qIGluIC0gdG90YWwgZWxlbWVudHMgaW4gaW5mbyBhcnJheSAqLwogCV9fdTE2IHJlc2VydmVk MTsJLyogbXVzdCBiZSB6ZXJvICovCiAJX191MzIgcmVzZXJ2ZWQyOwkvKiBtdXN0IGJlIHplcm8g Ki8KLQlzdHJ1Y3QgZmlsZV9kZWR1cGVfcmFuZ2VfaW5mbyBpbmZvWzBdOworCXN0cnVjdCBmaWxl X2RlZHVwZV9yYW5nZV9pbmZvIGluZm9bXTsKIH07CiAKIC8qIEFuZCBkeW5hbWljYWxseS10dW5h YmxlIGxpbWl0cyBhbmQgZGVmYXVsdHM6ICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvbGlu dXgvaWZfYWxnLmggYi9pbmNsdWRlL3VhcGkvbGludXgvaWZfYWxnLmgKaW5kZXggZGM1MmExMWJh NmQxLi41NzhiMThhYWI4MjEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC9pZl9hbGcu aAorKysgYi9pbmNsdWRlL3VhcGkvbGludXgvaWZfYWxnLmgKQEAgLTQyLDcgKzQyLDcgQEAgc3Ry dWN0IHNvY2thZGRyX2FsZ19uZXcgewogCiBzdHJ1Y3QgYWZfYWxnX2l2IHsKIAlfX3UzMglpdmxl bjsKLQlfX3U4CWl2WzBdOworCV9fdTgJaXZbXTsKIH07CiAKIC8qIFNvY2tldCBvcHRpb25zICov CmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvbGludXgvaWZfYXJjbmV0LmggYi9pbmNsdWRlL3Vh cGkvbGludXgvaWZfYXJjbmV0LmgKaW5kZXggNjgzODc4MDM2ZDc2Li5iMTIyY2ZhYzcxMjggMTAw NjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC9pZl9hcmNuZXQuaAorKysgYi9pbmNsdWRlL3Vh cGkvbGludXgvaWZfYXJjbmV0LmgKQEAgLTYwLDcgKzYwLDcgQEAgc3RydWN0IGFyY19yZmMxMjAx IHsKIAlfX3U4ICBwcm90bzsJCS8qIHByb3RvY29sIElEIGZpZWxkIC0gdmFyaWVzCQkqLwogCV9f dTggIHNwbGl0X2ZsYWc7CS8qIGZvciB1c2Ugd2l0aCBzcGxpdCBwYWNrZXRzCQkqLwogCV9fYmUx NiAgIHNlcXVlbmNlOwkvKiBzZXF1ZW5jZSBudW1iZXIJCQkqLwotCV9fdTggIHBheWxvYWRbMF07 CS8qIHNwYWNlIHJlbWFpbmluZyBpbiBwYWNrZXQgKDUwNCBieXRlcykqLworCV9fdTggIHBheWxv YWRbXTsJLyogc3BhY2UgcmVtYWluaW5nIGluIHBhY2tldCAoNTA0IGJ5dGVzKSovCiB9OwogI2Rl ZmluZSBSRkMxMjAxX0hEUl9TSVpFIDQKIApAQCAtNjksNyArNjksNyBAQCBzdHJ1Y3QgYXJjX3Jm YzEyMDEgewogICovCiBzdHJ1Y3QgYXJjX3JmYzEwNTEgewogCV9fdTggcHJvdG87CQkvKiBBUkNf UF9SRkMxMDUxX0FSUC9SRkMxMDUxX0lQCSovCi0JX191OCBwYXlsb2FkWzBdOwkvKiA1MDcgYnl0 ZXMJCQkqLworCV9fdTggcGF5bG9hZFtdOwkvKiA1MDcgYnl0ZXMJCQkqLwogfTsKICNkZWZpbmUg UkZDMTA1MV9IRFJfU0laRSAxCiAKQEAgLTgwLDcgKzgwLDcgQEAgc3RydWN0IGFyY19yZmMxMDUx IHsKIHN0cnVjdCBhcmNfZXRoX2VuY2FwIHsKIAlfX3U4IHByb3RvOwkJLyogQWx3YXlzIEFSQ19Q X0VUSEVSCQkJKi8KIAlzdHJ1Y3QgZXRoaGRyIGV0aDsJLyogc3RhbmRhcmQgZXRoZXJuZXQgaGVh ZGVyICh5dWNrISkJKi8KLQlfX3U4IHBheWxvYWRbMF07CS8qIDQ5MyBieXRlcwkJCQkqLworCV9f dTggcGF5bG9hZFtdOwkvKiA0OTMgYnl0ZXMJCQkJKi8KIH07CiAjZGVmaW5lIEVUSF9FTkNBUF9I RFJfU0laRSAxNAogCmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvbGludXgvaWZfcHBwb3guaCBi L2luY2x1ZGUvdWFwaS9saW51eC9pZl9wcHBveC5oCmluZGV4IGU3YTY5M2MyOGYxNi4uOWFiZDgw ZGNjNDZmIDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvaWZfcHBwb3guaAorKysgYi9p bmNsdWRlL3VhcGkvbGludXgvaWZfcHBwb3guaApAQCAtMTIyLDcgKzEyMiw3IEBAIHN0cnVjdCBz b2NrYWRkcl9wcHBvbDJ0cHYzaW42IHsKIHN0cnVjdCBwcHBvZV90YWcgewogCV9fYmUxNiB0YWdf dHlwZTsKIAlfX2JlMTYgdGFnX2xlbjsKLQljaGFyIHRhZ19kYXRhWzBdOworCWNoYXIgdGFnX2Rh dGFbXTsKIH0gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpOwogCiAvKiBUYWcgaWRlbnRpZmllcnMg Ki8KQEAgLTE1MCw3ICsxNTAsNyBAQCBzdHJ1Y3QgcHBwb2VfaGRyIHsKIAlfX3U4IGNvZGU7CiAJ X19iZTE2IHNpZDsKIAlfX2JlMTYgbGVuZ3RoOwotCXN0cnVjdCBwcHBvZV90YWcgdGFnWzBdOwor CXN0cnVjdCBwcHBvZV90YWcgdGFnW107CiB9IF9fcGFja2VkOwogCiAvKiBMZW5ndGggb2YgZW50 aXJlIFBQUG9FICsgUFBQIGhlYWRlciAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4 L2lmX3R1bi5oIGIvaW5jbHVkZS91YXBpL2xpbnV4L2lmX3R1bi5oCmluZGV4IDQ1NGFlMzFiOTNj Ny4uMmVjMDdkZTFkNzNiIDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvaWZfdHVuLmgK KysrIGIvaW5jbHVkZS91YXBpL2xpbnV4L2lmX3R1bi5oCkBAIC0xMDgsNyArMTA4LDcgQEAgc3Ry dWN0IHR1bl9waSB7CiBzdHJ1Y3QgdHVuX2ZpbHRlciB7CiAJX191MTYgIGZsYWdzOyAvKiBUVU5f RkxUXyBmbGFncyBzZWUgYWJvdmUgKi8KIAlfX3UxNiAgY291bnQ7IC8qIE51bWJlciBvZiBhZGRy ZXNzZXMgKi8KLQlfX3U4ICAgYWRkclswXVtFVEhfQUxFTl07CisJX191OCAgIGFkZHJbXVtFVEhf QUxFTl07CiB9OwogCiAjZW5kaWYgLyogX1VBUElfX0lGX1RVTl9IICovCmRpZmYgLS1naXQgYS9p bmNsdWRlL3VhcGkvbGludXgvaWdtcC5oIGIvaW5jbHVkZS91YXBpL2xpbnV4L2lnbXAuaAppbmRl eCA5MGMyOGJjNDY2YzYuLjU5MzBmMjQzN2NkMSAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2xp bnV4L2lnbXAuaAorKysgYi9pbmNsdWRlL3VhcGkvbGludXgvaWdtcC5oCkBAIC00OCw3ICs0OCw3 IEBAIHN0cnVjdCBpZ21wdjNfZ3JlYyB7CiAJX191OAlncmVjX2F1eHdvcmRzOwogCV9fYmUxNgln cmVjX25zcmNzOwogCV9fYmUzMglncmVjX21jYTsKLQlfX2JlMzIJZ3JlY19zcmNbMF07CisJX19i ZTMyCWdyZWNfc3JjW107CiB9OwogCiBzdHJ1Y3QgaWdtcHYzX3JlcG9ydCB7CkBAIC01Nyw3ICs1 Nyw3IEBAIHN0cnVjdCBpZ21wdjNfcmVwb3J0IHsKIAlfX3N1bTE2IGNzdW07CiAJX19iZTE2IHJl c3YyOwogCV9fYmUxNiBuZ3JlYzsKLQlzdHJ1Y3QgaWdtcHYzX2dyZWMgZ3JlY1swXTsKKwlzdHJ1 Y3QgaWdtcHYzX2dyZWMgZ3JlY1tdOwogfTsKIAogc3RydWN0IGlnbXB2M19xdWVyeSB7CkBAIC03 OCw3ICs3OCw3IEBAIHN0cnVjdCBpZ21wdjNfcXVlcnkgewogI2VuZGlmCiAJX191OCBxcWljOwog CV9fYmUxNiBuc3JjczsKLQlfX2JlMzIgc3Jjc1swXTsKKwlfX2JlMzIgc3Jjc1tdOwogfTsKIAog I2RlZmluZSBJR01QX0hPU1RfTUVNQkVSU0hJUF9RVUVSWQkweDExCS8qIEZyb20gUkZDMTExMiAq LwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L2luZXRfZGlhZy5oIGIvaW5jbHVkZS91 YXBpL2xpbnV4L2luZXRfZGlhZy5oCmluZGV4IDIwZWU5M2YwZjg3Ni4uNTA2NTVkZTA0YzliIDEw MDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvaW5ldF9kaWFnLmgKKysrIGIvaW5jbHVkZS91 YXBpL2xpbnV4L2luZXRfZGlhZy5oCkBAIC0xMDQsNyArMTA0LDcgQEAgc3RydWN0IGluZXRfZGlh Z19ob3N0Y29uZCB7CiAJX191OAlmYW1pbHk7CiAJX191OAlwcmVmaXhfbGVuOwogCWludAlwb3J0 OwotCV9fYmUzMglhZGRyWzBdOworCV9fYmUzMglhZGRyW107CiB9OwogCiBzdHJ1Y3QgaW5ldF9k aWFnX21hcmtjb25kIHsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9pbm90aWZ5Lmgg Yi9pbmNsdWRlL3VhcGkvbGludXgvaW5vdGlmeS5oCmluZGV4IDg4NGI0ODQ2YjYzMC4uYjNlMTY1 ODUzZDViIDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvaW5vdGlmeS5oCisrKyBiL2lu Y2x1ZGUvdWFwaS9saW51eC9pbm90aWZ5LmgKQEAgLTIzLDcgKzIzLDcgQEAgc3RydWN0IGlub3Rp ZnlfZXZlbnQgewogCV9fdTMyCQltYXNrOwkJLyogd2F0Y2ggbWFzayAqLwogCV9fdTMyCQljb29r aWU7CQkvKiBjb29raWUgdG8gc3luY2hyb25pemUgdHdvIGV2ZW50cyAqLwogCV9fdTMyCQlsZW47 CQkvKiBsZW5ndGggKGluY2x1ZGluZyBudWxscykgb2YgbmFtZSAqLwotCWNoYXIJCW5hbWVbMF07 CS8qIHN0dWIgZm9yIHBvc3NpYmxlIG5hbWUgKi8KKwljaGFyCQluYW1lW107CS8qIHN0dWIgZm9y IHBvc3NpYmxlIG5hbWUgKi8KIH07CiAKIC8qIHRoZSBmb2xsb3dpbmcgYXJlIGxlZ2FsLCBpbXBs ZW1lbnRlZCBldmVudHMgdGhhdCB1c2VyLXNwYWNlIGNhbiB3YXRjaCBmb3IgKi8KZGlmZiAtLWdp dCBhL2luY2x1ZGUvdWFwaS9saW51eC9pb191cmluZy5oIGIvaW5jbHVkZS91YXBpL2xpbnV4L2lv X3VyaW5nLmgKaW5kZXggNzc2ZTAyNzhmOWRkLi43ODIyZWY5ZDg2MjggMTAwNjQ0Ci0tLSBhL2lu Y2x1ZGUvdWFwaS9saW51eC9pb191cmluZy5oCisrKyBiL2luY2x1ZGUvdWFwaS9saW51eC9pb191 cmluZy5oCkBAIC00ODYsNyArNDg2LDcgQEAgc3RydWN0IGlvX3VyaW5nX3Byb2JlIHsKIAlfX3U4 IG9wc19sZW47CS8qIGxlbmd0aCBvZiBvcHNbXSBhcnJheSBiZWxvdyAqLwogCV9fdTE2IHJlc3Y7 CiAJX191MzIgcmVzdjJbM107Ci0Jc3RydWN0IGlvX3VyaW5nX3Byb2JlX29wIG9wc1swXTsKKwlz dHJ1Y3QgaW9fdXJpbmdfcHJvYmVfb3Agb3BzW107CiB9OwogCiBzdHJ1Y3QgaW9fdXJpbmdfcmVz dHJpY3Rpb24gewpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L2lwLmggYi9pbmNsdWRl L3VhcGkvbGludXgvaXAuaAppbmRleCBlMDBiYmI5YzQ3YmIuLjk2MWVjMTZhMjZiOCAxMDA2NDQK LS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L2lwLmgKKysrIGIvaW5jbHVkZS91YXBpL2xpbnV4L2lw LmgKQEAgLTExMiwxMyArMTEyLDEzIEBAIHN0cnVjdCBpcF9hdXRoX2hkciB7CiAJX19iZTE2IHJl c2VydmVkOwogCV9fYmUzMiBzcGk7CiAJX19iZTMyIHNlcV9ubzsJCS8qIFNlcXVlbmNlIG51bWJl ciAqLwotCV9fdTggIGF1dGhfZGF0YVswXTsJLyogVmFyaWFibGUgbGVuIGJ1dCA+PTQuIE1pbmQg dGhlIDY0IGJpdCBhbGlnbm1lbnQhICovCisJX191OCAgYXV0aF9kYXRhW107CS8qIFZhcmlhYmxl IGxlbiBidXQgPj00LiBNaW5kIHRoZSA2NCBiaXQgYWxpZ25tZW50ISAqLwogfTsKIAogc3RydWN0 IGlwX2VzcF9oZHIgewogCV9fYmUzMiBzcGk7CiAJX19iZTMyIHNlcV9ubzsJCS8qIFNlcXVlbmNl IG51bWJlciAqLwotCV9fdTggIGVuY19kYXRhWzBdOwkvKiBWYXJpYWJsZSBsZW4gYnV0ID49OC4g TWluZCB0aGUgNjQgYml0IGFsaWdubWVudCEgKi8KKwlfX3U4ICBlbmNfZGF0YVtdOwkvKiBWYXJp YWJsZSBsZW4gYnV0ID49OC4gTWluZCB0aGUgNjQgYml0IGFsaWdubWVudCEgKi8KIH07CiAKIHN0 cnVjdCBpcF9jb21wX2hkciB7CmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvbGludXgvaXBfdnMu aCBiL2luY2x1ZGUvdWFwaS9saW51eC9pcF92cy5oCmluZGV4IDQxMDJkZGNiNGUxNC4uMWVkMjM0 ZTdmMjUxIDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvaXBfdnMuaAorKysgYi9pbmNs dWRlL3VhcGkvbGludXgvaXBfdnMuaApAQCAtMjU0LDcgKzI1NCw3IEBAIHN0cnVjdCBpcF92c19n ZXRfZGVzdHMgewogCXVuc2lnbmVkIGludAkJbnVtX2Rlc3RzOwogCiAJLyogdGhlIHJlYWwgc2Vy dmVycyAqLwotCXN0cnVjdCBpcF92c19kZXN0X2VudHJ5CWVudHJ5dGFibGVbMF07CisJc3RydWN0 IGlwX3ZzX2Rlc3RfZW50cnkJZW50cnl0YWJsZVtdOwogfTsKIAogCkBAIC0yNjQsNyArMjY0LDcg QEAgc3RydWN0IGlwX3ZzX2dldF9zZXJ2aWNlcyB7CiAJdW5zaWduZWQgaW50CQludW1fc2Vydmlj ZXM7CiAKIAkvKiBzZXJ2aWNlIHRhYmxlICovCi0Jc3RydWN0IGlwX3ZzX3NlcnZpY2VfZW50cnkg ZW50cnl0YWJsZVswXTsKKwlzdHJ1Y3QgaXBfdnNfc2VydmljZV9lbnRyeSBlbnRyeXRhYmxlW107 CiB9OwogCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9pc29fZnMuaCBiL2luY2x1 ZGUvdWFwaS9saW51eC9pc29fZnMuaAppbmRleCBhMjU1NTE3NmY2ZDEuLjc1ODE3OGY1YjUyZCAx MDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L2lzb19mcy5oCisrKyBiL2luY2x1ZGUvdWFw aS9saW51eC9pc29fZnMuaApAQCAtMTM3LDcgKzEzNyw3IEBAIHN0cnVjdCBpc29fcGF0aF90YWJs ZXsKIAlfX3U4ICBuYW1lX2xlblsyXTsJLyogNzIxICovCiAJX191OCAgZXh0ZW50WzRdOwkvKiA3 MzEgKi8KIAlfX3U4ICBwYXJlbnRbMl07CS8qIDcyMSAqLwotCWNoYXIgbmFtZVswXTsKKwljaGFy IG5hbWVbXTsKIH0gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CiAKIC8qIGhpZ2ggc2llcnJhIGlz IGlkZW50aWNhbCB0byBpc28sIGV4Y2VwdCB0aGF0IHRoZSBkYXRlIGlzIG9ubHkgNiBieXRlcywg YW5kCkBAIC0xNTQsNyArMTU0LDcgQEAgc3RydWN0IGlzb19kaXJlY3RvcnlfcmVjb3JkIHsKIAlf X3U4IGludGVybGVhdmUJCQlbSVNPRENMICgyOCwgMjgpXTsgLyogNzExICovCiAJX191OCB2b2x1 bWVfc2VxdWVuY2VfbnVtYmVyCVtJU09EQ0wgKDI5LCAzMildOyAvKiA3MjMgKi8KIAlfX3U4IG5h bWVfbGVuCQkJW0lTT0RDTCAoMzMsIDMzKV07IC8qIDcxMSAqLwotCWNoYXIgbmFtZQkJCVswXTsK KwljaGFyIG5hbWUJCQlbXTsKIH0gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CiAKICNkZWZpbmUg SVNPRlNfQkxPQ0tfQklUUyAxMQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L2pmZnMy LmggYi9pbmNsdWRlL3VhcGkvbGludXgvamZmczIuaAppbmRleCA3ODRiYTBiOTY5MGEuLjYzN2Vl NGE3OTNjZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L2pmZnMyLmgKKysrIGIvaW5j bHVkZS91YXBpL2xpbnV4L2pmZnMyLmgKQEAgLTEyMyw3ICsxMjMsNyBAQCBzdHJ1Y3QgamZmczJf cmF3X2RpcmVudAogCV9fdTggdW51c2VkWzJdOwogCWppbnQzMl90IG5vZGVfY3JjOwogCWppbnQz Ml90IG5hbWVfY3JjOwotCV9fdTggbmFtZVswXTsKKwlfX3U4IG5hbWVbXTsKIH07CiAKIC8qIFRo ZSBKRkZTMiByYXcgaW5vZGUgc3RydWN0dXJlOiBVc2VkIGZvciBzdG9yYWdlIG9uIHBoeXNpY2Fs IG1lZGlhLiAgKi8KQEAgLTE1NSw3ICsxNTUsNyBAQCBzdHJ1Y3QgamZmczJfcmF3X2lub2RlCiAJ amludDE2X3QgZmxhZ3M7CSAgICAgLyogU2VlIEpGRlMyX0lOT19GTEFHXyogKi8KIAlqaW50MzJf dCBkYXRhX2NyYzsgICAvKiBDUkMgZm9yIHRoZSAoY29tcHJlc3NlZCkgZGF0YS4gICovCiAJamlu dDMyX3Qgbm9kZV9jcmM7ICAgLyogQ1JDIGZvciB0aGUgcmF3IGlub2RlIChleGNsdWRpbmcgZGF0 YSkgICovCi0JX191OCBkYXRhWzBdOworCV9fdTggZGF0YVtdOwogfTsKIAogc3RydWN0IGpmZnMy X3Jhd194YXR0ciB7CkBAIC0xNzAsNyArMTcwLDcgQEAgc3RydWN0IGpmZnMyX3Jhd194YXR0ciB7 CiAJamludDE2X3QgdmFsdWVfbGVuOwogCWppbnQzMl90IGRhdGFfY3JjOwogCWppbnQzMl90IG5v ZGVfY3JjOwotCV9fdTggZGF0YVswXTsKKwlfX3U4IGRhdGFbXTsKIH0gX19hdHRyaWJ1dGVfXygo cGFja2VkKSk7CiAKIHN0cnVjdCBqZmZzMl9yYXdfeHJlZgpAQCAtMTk2LDcgKzE5Niw3IEBAIHN0 cnVjdCBqZmZzMl9yYXdfc3VtbWFyeQogCWppbnQzMl90IHBhZGRlZDsJLyogc3VtIG9mIHRoZSBz aXplIG9mIHBhZGRpbmcgbm9kZXMgKi8KIAlqaW50MzJfdCBzdW1fY3JjOwkvKiBzdW1tYXJ5IGlu Zm9ybWF0aW9uIGNyYyAqLwogCWppbnQzMl90IG5vZGVfY3JjOyAJLyogbm9kZSBjcmMgKi8KLQlq aW50MzJfdCBzdW1bMF07IAkvKiBpbm9kZSBzdW1tYXJ5IGluZm8gKi8KKwlqaW50MzJfdCBzdW1b XTsgCS8qIGlub2RlIHN1bW1hcnkgaW5mbyAqLwogfTsKIAogdW5pb24gamZmczJfbm9kZV91bmlv bgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L2tjb3YuaCBiL2luY2x1ZGUvdWFwaS9s aW51eC9rY292LmgKaW5kZXggMWQwMzUwZTQ0YWUzLi5lZDk1ZGJhOWZhMzcgMTAwNjQ0Ci0tLSBh L2luY2x1ZGUvdWFwaS9saW51eC9rY292LmgKKysrIGIvaW5jbHVkZS91YXBpL2xpbnV4L2tjb3Yu aApAQCAtMTMsNyArMTMsNyBAQCBzdHJ1Y3Qga2Nvdl9yZW1vdGVfYXJnIHsKIAlfX3UzMgkJYXJl YV9zaXplOwkvKiBMZW5ndGggb2YgY292ZXJhZ2UgYnVmZmVyIGluIHdvcmRzICovCiAJX191MzIJ CW51bV9oYW5kbGVzOwkvKiBTaXplIG9mIGhhbmRsZXMgYXJyYXkgKi8KIAlfX2FsaWduZWRfdTY0 CWNvbW1vbl9oYW5kbGU7Ci0JX19hbGlnbmVkX3U2NAloYW5kbGVzWzBdOworCV9fYWxpZ25lZF91 NjQJaGFuZGxlc1tdOwogfTsKIAogI2RlZmluZSBLQ09WX1JFTU9URV9NQVhfSEFORExFUwkJMHgx MDAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9rdm0uaCBiL2luY2x1ZGUvdWFwaS9s aW51eC9rdm0uaAppbmRleCA1MDg4YmQ5ZjE5MjIuLjc0ZGM4YmFmY2I5ZSAxMDA2NDQKLS0tIGEv aW5jbHVkZS91YXBpL2xpbnV4L2t2bS5oCisrKyBiL2luY2x1ZGUvdWFwaS9saW51eC9rdm0uaApA QCAtNTQyLDcgKzU0Miw3IEBAIHN0cnVjdCBrdm1fY29hbGVzY2VkX21taW8gewogCiBzdHJ1Y3Qg a3ZtX2NvYWxlc2NlZF9tbWlvX3JpbmcgewogCV9fdTMyIGZpcnN0LCBsYXN0OwotCXN0cnVjdCBr dm1fY29hbGVzY2VkX21taW8gY29hbGVzY2VkX21taW9bMF07CisJc3RydWN0IGt2bV9jb2FsZXNj ZWRfbW1pbyBjb2FsZXNjZWRfbW1pb1tdOwogfTsKIAogI2RlZmluZSBLVk1fQ09BTEVTQ0VEX01N SU9fTUFYIFwKQEAgLTYyMSw3ICs2MjEsNyBAQCBzdHJ1Y3Qga3ZtX2NsZWFyX2RpcnR5X2xvZyB7 CiAvKiBmb3IgS1ZNX1NFVF9TSUdOQUxfTUFTSyAqLwogc3RydWN0IGt2bV9zaWduYWxfbWFzayB7 CiAJX191MzIgbGVuOwotCV9fdTggIHNpZ3NldFswXTsKKwlfX3U4ICBzaWdzZXRbXTsKIH07CiAK IC8qIGZvciBLVk1fVFBSX0FDQ0VTU19SRVBPUlRJTkcgKi8KQEAgLTEyMjEsNyArMTIyMSw3IEBA IHN0cnVjdCBrdm1faXJxX3JvdXRpbmdfZW50cnkgewogc3RydWN0IGt2bV9pcnFfcm91dGluZyB7 CiAJX191MzIgbnI7CiAJX191MzIgZmxhZ3M7Ci0Jc3RydWN0IGt2bV9pcnFfcm91dGluZ19lbnRy eSBlbnRyaWVzWzBdOworCXN0cnVjdCBrdm1faXJxX3JvdXRpbmdfZW50cnkgZW50cmllc1tdOwog fTsKIAogI2VuZGlmCkBAIC0xMzQxLDcgKzEzNDEsNyBAQCBzdHJ1Y3Qga3ZtX2RpcnR5X3RsYiB7 CiAKIHN0cnVjdCBrdm1fcmVnX2xpc3QgewogCV9fdTY0IG47IC8qIG51bWJlciBvZiByZWdzICov Ci0JX191NjQgcmVnWzBdOworCV9fdTY0IHJlZ1tdOwogfTsKIAogc3RydWN0IGt2bV9vbmVfcmVn IHsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9taW5peF9mcy5oIGIvaW5jbHVkZS91 YXBpL2xpbnV4L21pbml4X2ZzLmgKaW5kZXggOTVkYmNiMTdlYWNkLi44ZDljYThiMmMzNTcgMTAw NjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC9taW5peF9mcy5oCisrKyBiL2luY2x1ZGUvdWFw aS9saW51eC9taW5peF9mcy5oCkBAIC05NywxMSArOTcsMTEgQEAgc3RydWN0IG1pbml4M19zdXBl cl9ibG9jayB7CiAKIHN0cnVjdCBtaW5peF9kaXJfZW50cnkgewogCV9fdTE2IGlub2RlOwotCWNo YXIgbmFtZVswXTsKKwljaGFyIG5hbWVbXTsKIH07CiAKIHN0cnVjdCBtaW5peDNfZGlyX2VudHJ5 IHsKIAlfX3UzMiBpbm9kZTsKLQljaGFyIG5hbWVbMF07CisJY2hhciBuYW1lW107CiB9OwogI2Vu ZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvbGludXgvbW1jL2lvY3RsLmggYi9pbmNsdWRl L3VhcGkvbGludXgvbW1jL2lvY3RsLmgKaW5kZXggMjdhMzk4NDdkNTVjLi5lNzQwMWFkZTY4MjIg MTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC9tbWMvaW9jdGwuaAorKysgYi9pbmNsdWRl L3VhcGkvbGludXgvbW1jL2lvY3RsLmgKQEAgLTU4LDcgKzU4LDcgQEAgc3RydWN0IG1tY19pb2Nf Y21kIHsKICAqLwogc3RydWN0IG1tY19pb2NfbXVsdGlfY21kIHsKIAlfX3U2NCBudW1fb2ZfY21k czsKLQlzdHJ1Y3QgbW1jX2lvY19jbWQgY21kc1swXTsKKwlzdHJ1Y3QgbW1jX2lvY19jbWQgY21k c1tdOwogfTsKIAogI2RlZmluZSBNTUNfSU9DX0NNRCBfSU9XUihNTUNfQkxPQ0tfTUFKT1IsIDAs IHN0cnVjdCBtbWNfaW9jX2NtZCkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9uZGN0 bC5oIGIvaW5jbHVkZS91YXBpL2xpbnV4L25kY3RsLmgKaW5kZXggMTdlMDJiNjRlYTJlLi43MzUx NmUyNjM2MjcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC9uZGN0bC5oCisrKyBiL2lu Y2x1ZGUvdWFwaS9saW51eC9uZGN0bC5oCkBAIC0zMCwyNSArMzAsMjUgQEAgc3RydWN0IG5kX2Nt ZF9nZXRfY29uZmlnX2RhdGFfaGRyIHsKIAlfX3UzMiBpbl9vZmZzZXQ7CiAJX191MzIgaW5fbGVu Z3RoOwogCV9fdTMyIHN0YXR1czsKLQlfX3U4IG91dF9idWZbMF07CisJX191OCBvdXRfYnVmW107 CiB9IF9fcGFja2VkOwogCiBzdHJ1Y3QgbmRfY21kX3NldF9jb25maWdfaGRyIHsKIAlfX3UzMiBp bl9vZmZzZXQ7CiAJX191MzIgaW5fbGVuZ3RoOwotCV9fdTggaW5fYnVmWzBdOworCV9fdTggaW5f YnVmW107CiB9IF9fcGFja2VkOwogCiBzdHJ1Y3QgbmRfY21kX3ZlbmRvcl9oZHIgewogCV9fdTMy IG9wY29kZTsKIAlfX3UzMiBpbl9sZW5ndGg7Ci0JX191OCBpbl9idWZbMF07CisJX191OCBpbl9i dWZbXTsKIH0gX19wYWNrZWQ7CiAKIHN0cnVjdCBuZF9jbWRfdmVuZG9yX3RhaWwgewogCV9fdTMy IHN0YXR1czsKIAlfX3UzMiBvdXRfbGVuZ3RoOwotCV9fdTggb3V0X2J1ZlswXTsKKwlfX3U4IG91 dF9idWZbXTsKIH0gX19wYWNrZWQ7CiAKIHN0cnVjdCBuZF9jbWRfYXJzX2NhcCB7CkBAIC04Niw3 ICs4Niw3IEBAIHN0cnVjdCBuZF9jbWRfYXJzX3N0YXR1cyB7CiAJCV9fdTMyIHJlc2VydmVkOwog CQlfX3U2NCBlcnJfYWRkcmVzczsKIAkJX191NjQgbGVuZ3RoOwotCX0gX19wYWNrZWQgcmVjb3Jk c1swXTsKKwl9IF9fcGFja2VkIHJlY29yZHNbXTsKIH0gX19wYWNrZWQ7CiAKIHN0cnVjdCBuZF9j bWRfY2xlYXJfZXJyb3IgewpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L25ldF9kcm9w bW9uLmggYi9pbmNsdWRlL3VhcGkvbGludXgvbmV0X2Ryb3Btb24uaAppbmRleCAxYmJlYThmMDY4 MWUuLjg0ZjYyMmE2NmE3YSAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L25ldF9kcm9w bW9uLmgKKysrIGIvaW5jbHVkZS91YXBpL2xpbnV4L25ldF9kcm9wbW9uLmgKQEAgLTI5LDEyICsy OSwxMiBAQCBzdHJ1Y3QgbmV0X2RtX2NvbmZpZ19lbnRyeSB7CiAKIHN0cnVjdCBuZXRfZG1fY29u ZmlnX21zZyB7CiAJX191MzIgZW50cmllczsKLQlzdHJ1Y3QgbmV0X2RtX2NvbmZpZ19lbnRyeSBv cHRpb25zWzBdOworCXN0cnVjdCBuZXRfZG1fY29uZmlnX2VudHJ5IG9wdGlvbnNbXTsKIH07CiAK IHN0cnVjdCBuZXRfZG1fYWxlcnRfbXNnIHsKIAlfX3UzMiBlbnRyaWVzOwotCXN0cnVjdCBuZXRf ZG1fZHJvcF9wb2ludCBwb2ludHNbMF07CisJc3RydWN0IG5ldF9kbV9kcm9wX3BvaW50IHBvaW50 c1tdOwogfTsKIAogc3RydWN0IG5ldF9kbV91c2VyX21zZyB7CmRpZmYgLS1naXQgYS9pbmNsdWRl L3VhcGkvbGludXgvbmV0ZmlsdGVyL3hfdGFibGVzLmggYi9pbmNsdWRlL3VhcGkvbGludXgvbmV0 ZmlsdGVyL3hfdGFibGVzLmgKaW5kZXggYjhjNmJiMjMzYWMxLi43OTZhZjgzYTk2M2EgMTAwNjQ0 Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC9uZXRmaWx0ZXIveF90YWJsZXMuaAorKysgYi9pbmNs dWRlL3VhcGkvbGludXgvbmV0ZmlsdGVyL3hfdGFibGVzLmgKQEAgLTI4LDcgKzI4LDcgQEAgc3Ry dWN0IHh0X2VudHJ5X21hdGNoIHsKIAkJX191MTYgbWF0Y2hfc2l6ZTsKIAl9IHU7CiAKLQl1bnNp Z25lZCBjaGFyIGRhdGFbMF07CisJdW5zaWduZWQgY2hhciBkYXRhW107CiB9OwogCiBzdHJ1Y3Qg eHRfZW50cnlfdGFyZ2V0IHsKQEAgLTExOSw3ICsxMTksNyBAQCBzdHJ1Y3QgeHRfY291bnRlcnNf aW5mbyB7CiAJdW5zaWduZWQgaW50IG51bV9jb3VudGVyczsKIAogCS8qIFRoZSBjb3VudGVycyAo YWN0dWFsbHkgYG51bWJlcicgb2YgdGhlc2UpLiAqLwotCXN0cnVjdCB4dF9jb3VudGVycyBjb3Vu dGVyc1swXTsKKwlzdHJ1Y3QgeHRfY291bnRlcnMgY291bnRlcnNbXTsKIH07CiAKICNkZWZpbmUg WFRfSU5WX1BST1RPCQkweDQwCS8qIEludmVydCB0aGUgc2Vuc2Ugb2YgUFJPVE8uICovCmRpZmYg LS1naXQgYS9pbmNsdWRlL3VhcGkvbGludXgvbmV0ZmlsdGVyX2FycC9hcnBfdGFibGVzLmggYi9p bmNsdWRlL3VhcGkvbGludXgvbmV0ZmlsdGVyX2FycC9hcnBfdGFibGVzLmgKaW5kZXggYmJmNWFm MmI2N2E4Li5hNmFjMjQ2M2Y3ODcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC9uZXRm aWx0ZXJfYXJwL2FycF90YWJsZXMuaAorKysgYi9pbmNsdWRlL3VhcGkvbGludXgvbmV0ZmlsdGVy X2FycC9hcnBfdGFibGVzLmgKQEAgLTEwOSw3ICsxMDksNyBAQCBzdHJ1Y3QgYXJwdF9lbnRyeQog CXN0cnVjdCB4dF9jb3VudGVycyBjb3VudGVyczsKIAogCS8qIFRoZSBtYXRjaGVzIChpZiBhbnkp LCB0aGVuIHRoZSB0YXJnZXQuICovCi0JdW5zaWduZWQgY2hhciBlbGVtc1swXTsKKwl1bnNpZ25l ZCBjaGFyIGVsZW1zW107CiB9OwogCiAvKgpAQCAtMTgxLDcgKzE4MSw3IEBAIHN0cnVjdCBhcnB0 X3JlcGxhY2UgewogCXN0cnVjdCB4dF9jb3VudGVycyBfX3VzZXIgKmNvdW50ZXJzOwogCiAJLyog VGhlIGVudHJpZXMgKGhhbmcgb2ZmIGVuZDogbm90IHJlYWxseSBhbiBhcnJheSkuICovCi0Jc3Ry dWN0IGFycHRfZW50cnkgZW50cmllc1swXTsKKwlzdHJ1Y3QgYXJwdF9lbnRyeSBlbnRyaWVzW107 CiB9OwogCiAvKiBUaGUgYXJndW1lbnQgdG8gQVJQVF9TT19HRVRfRU5UUklFUy4gKi8KQEAgLTE5 Myw3ICsxOTMsNyBAQCBzdHJ1Y3QgYXJwdF9nZXRfZW50cmllcyB7CiAJdW5zaWduZWQgaW50IHNp emU7CiAKIAkvKiBUaGUgZW50cmllcy4gKi8KLQlzdHJ1Y3QgYXJwdF9lbnRyeSBlbnRyeXRhYmxl WzBdOworCXN0cnVjdCBhcnB0X2VudHJ5IGVudHJ5dGFibGVbXTsKIH07CiAKIC8qIEhlbHBlciBm dW5jdGlvbnMgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9uZXRmaWx0ZXJfYnJp ZGdlL2VidF9hbW9uZy5oIGIvaW5jbHVkZS91YXBpL2xpbnV4L25ldGZpbHRlcl9icmlkZ2UvZWJ0 X2Ftb25nLmgKaW5kZXggOWFjZjc1N2JjMWY3Li43M2IyNmEyODBjNGYgMTAwNjQ0Ci0tLSBhL2lu Y2x1ZGUvdWFwaS9saW51eC9uZXRmaWx0ZXJfYnJpZGdlL2VidF9hbW9uZy5oCisrKyBiL2luY2x1 ZGUvdWFwaS9saW51eC9uZXRmaWx0ZXJfYnJpZGdlL2VidF9hbW9uZy5oCkBAIC00MCw3ICs0MCw3 IEBAIHN0cnVjdCBlYnRfbWFjX3dvcm1oYXNoX3R1cGxlIHsKIHN0cnVjdCBlYnRfbWFjX3dvcm1o YXNoIHsKIAlpbnQgdGFibGVbMjU3XTsKIAlpbnQgcG9vbHNpemU7Ci0Jc3RydWN0IGVidF9tYWNf d29ybWhhc2hfdHVwbGUgcG9vbFswXTsKKwlzdHJ1Y3QgZWJ0X21hY193b3JtaGFzaF90dXBsZSBw b29sW107CiB9OwogCiAjZGVmaW5lIGVidF9tYWNfd29ybWhhc2hfc2l6ZSh4KSAoKHgpID8gc2l6 ZW9mKHN0cnVjdCBlYnRfbWFjX3dvcm1oYXNoKSBcCmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkv bGludXgvbmV0ZmlsdGVyX2lwdjQvaXBfdGFibGVzLmggYi9pbmNsdWRlL3VhcGkvbGludXgvbmV0 ZmlsdGVyX2lwdjQvaXBfdGFibGVzLmgKaW5kZXggNTBjN2ZlZTYyNWFlLi4xNDg1ZGYyOGIyMzkg MTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC9uZXRmaWx0ZXJfaXB2NC9pcF90YWJsZXMu aAorKysgYi9pbmNsdWRlL3VhcGkvbGludXgvbmV0ZmlsdGVyX2lwdjQvaXBfdGFibGVzLmgKQEAg LTEyMSw3ICsxMjEsNyBAQCBzdHJ1Y3QgaXB0X2VudHJ5IHsKIAlzdHJ1Y3QgeHRfY291bnRlcnMg Y291bnRlcnM7CiAKIAkvKiBUaGUgbWF0Y2hlcyAoaWYgYW55KSwgdGhlbiB0aGUgdGFyZ2V0LiAq LwotCXVuc2lnbmVkIGNoYXIgZWxlbXNbMF07CisJdW5zaWduZWQgY2hhciBlbGVtc1tdOwogfTsK IAogLyoKQEAgLTIwMyw3ICsyMDMsNyBAQCBzdHJ1Y3QgaXB0X3JlcGxhY2UgewogCXN0cnVjdCB4 dF9jb3VudGVycyBfX3VzZXIgKmNvdW50ZXJzOwogCiAJLyogVGhlIGVudHJpZXMgKGhhbmcgb2Zm IGVuZDogbm90IHJlYWxseSBhbiBhcnJheSkuICovCi0Jc3RydWN0IGlwdF9lbnRyeSBlbnRyaWVz WzBdOworCXN0cnVjdCBpcHRfZW50cnkgZW50cmllc1tdOwogfTsKIAogLyogVGhlIGFyZ3VtZW50 IHRvIElQVF9TT19HRVRfRU5UUklFUy4gKi8KQEAgLTIxNSw3ICsyMTUsNyBAQCBzdHJ1Y3QgaXB0 X2dldF9lbnRyaWVzIHsKIAl1bnNpZ25lZCBpbnQgc2l6ZTsKIAogCS8qIFRoZSBlbnRyaWVzLiAq LwotCXN0cnVjdCBpcHRfZW50cnkgZW50cnl0YWJsZVswXTsKKwlzdHJ1Y3QgaXB0X2VudHJ5IGVu dHJ5dGFibGVbXTsKIH07CiAKIC8qIEhlbHBlciBmdW5jdGlvbnMgKi8KZGlmZiAtLWdpdCBhL2lu Y2x1ZGUvdWFwaS9saW51eC9uZXRmaWx0ZXJfaXB2Ni9pcDZfdGFibGVzLmggYi9pbmNsdWRlL3Vh cGkvbGludXgvbmV0ZmlsdGVyX2lwdjYvaXA2X3RhYmxlcy5oCmluZGV4IGQ5ZTM2NGY5NmE1Yy4u NzY2ZThlMGJjYzY4IDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvbmV0ZmlsdGVyX2lw djYvaXA2X3RhYmxlcy5oCisrKyBiL2luY2x1ZGUvdWFwaS9saW51eC9uZXRmaWx0ZXJfaXB2Ni9p cDZfdGFibGVzLmgKQEAgLTI0Myw3ICsyNDMsNyBAQCBzdHJ1Y3QgaXA2dF9yZXBsYWNlIHsKIAlz dHJ1Y3QgeHRfY291bnRlcnMgX191c2VyICpjb3VudGVyczsKIAogCS8qIFRoZSBlbnRyaWVzICho YW5nIG9mZiBlbmQ6IG5vdCByZWFsbHkgYW4gYXJyYXkpLiAqLwotCXN0cnVjdCBpcDZ0X2VudHJ5 IGVudHJpZXNbMF07CisJc3RydWN0IGlwNnRfZW50cnkgZW50cmllc1tdOwogfTsKIAogLyogVGhl IGFyZ3VtZW50IHRvIElQNlRfU09fR0VUX0VOVFJJRVMuICovCkBAIC0yNTUsNyArMjU1LDcgQEAg c3RydWN0IGlwNnRfZ2V0X2VudHJpZXMgewogCXVuc2lnbmVkIGludCBzaXplOwogCiAJLyogVGhl IGVudHJpZXMuICovCi0Jc3RydWN0IGlwNnRfZW50cnkgZW50cnl0YWJsZVswXTsKKwlzdHJ1Y3Qg aXA2dF9lbnRyeSBlbnRyeXRhYmxlW107CiB9OwogCiAvKiBIZWxwZXIgZnVuY3Rpb25zICovCmRp ZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvbGludXgvcGVyZl9ldmVudC5oIGIvaW5jbHVkZS91YXBp L2xpbnV4L3BlcmZfZXZlbnQuaAppbmRleCBkMzc2MjlkYmFkNzIuLjQ2NTM4MzRmMDc4ZiAxMDA2 NDQKLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L3BlcmZfZXZlbnQuaAorKysgYi9pbmNsdWRlL3Vh cGkvbGludXgvcGVyZl9ldmVudC5oCkBAIC00OTEsNyArNDkxLDcgQEAgc3RydWN0IHBlcmZfZXZl bnRfcXVlcnlfYnBmIHsKIAkvKgogCSAqIFVzZXIgcHJvdmlkZWQgYnVmZmVyIHRvIHN0b3JlIHBy b2dyYW0gaWRzCiAJICovCi0JX191MzIJaWRzWzBdOworCV9fdTMyCWlkc1tdOwogfTsKIAogLyoK ZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9wa3RfY2xzLmggYi9pbmNsdWRlL3VhcGkv bGludXgvcGt0X2Nscy5oCmluZGV4IDlhMmVlMWUzOWZhZC4uZmZiZTIzMGVmOTBiIDEwMDY0NAot LS0gYS9pbmNsdWRlL3VhcGkvbGludXgvcGt0X2Nscy5oCisrKyBiL2luY2x1ZGUvdWFwaS9saW51 eC9wa3RfY2xzLmgKQEAgLTI1Niw3ICsyNTYsNyBAQCBzdHJ1Y3QgdGNfdTMyX3NlbCB7CiAKIAlz aG9ydAkJCWhvZmY7CiAJX19iZTMyCQkJaG1hc2s7Ci0Jc3RydWN0IHRjX3UzMl9rZXkJa2V5c1sw XTsKKwlzdHJ1Y3QgdGNfdTMyX2tleQlrZXlzW107CiB9OwogCiBzdHJ1Y3QgdGNfdTMyX21hcmsg ewpAQCAtMjY4LDcgKzI2OCw3IEBAIHN0cnVjdCB0Y191MzJfbWFyayB7CiBzdHJ1Y3QgdGNfdTMy X3BjbnQgewogCV9fdTY0IHJjbnQ7CiAJX191NjQgcmhpdDsKLQlfX3U2NCBrY250c1swXTsKKwlf X3U2NCBrY250c1tdOwogfTsKIAogLyogRmxhZ3MgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFw aS9saW51eC9yYWlkL21kX3AuaCBiL2luY2x1ZGUvdWFwaS9saW51eC9yYWlkL21kX3AuaAppbmRl eCBlNWE5OGExNmY5YjAuLjZjMGFhNTc3NzMwZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2xp bnV4L3JhaWQvbWRfcC5oCisrKyBiL2luY2x1ZGUvdWFwaS9saW51eC9yYWlkL21kX3AuaApAQCAt MzAzLDcgKzMwMyw3IEBAIHN0cnVjdCBtZHBfc3VwZXJibG9ja18xIHsKIAkgKiBpbnRvIHRoZSAn cm9sZXMnIHZhbHVlLiAgSWYgYSBkZXZpY2UgaXMgc3BhcmUgb3IgZmF1bHR5LCB0aGVuIGl0IGRv ZXNuJ3QKIAkgKiBoYXZlIGEgbWVhbmluZ2Z1bCByb2xlLgogCSAqLwotCV9fbGUxNglkZXZfcm9s ZXNbMF07CS8qIHJvbGUgaW4gYXJyYXksIG9yIDB4ZmZmZiBmb3IgYSBzcGFyZSwgb3IgMHhmZmZl IGZvciBmYXVsdHkgKi8KKwlfX2xlMTYJZGV2X3JvbGVzW107CS8qIHJvbGUgaW4gYXJyYXksIG9y IDB4ZmZmZiBmb3IgYSBzcGFyZSwgb3IgMHhmZmZlIGZvciBmYXVsdHkgKi8KIH07CiAKIC8qIGZl YXR1cmVfbWFwIGJpdHMgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9yYW5kb20u aCBiL2luY2x1ZGUvdWFwaS9saW51eC9yYW5kb20uaAppbmRleCBkY2MxYjNlNjEwNmYuLmU3NDRj MjM1ODJlYiAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L3JhbmRvbS5oCisrKyBiL2lu Y2x1ZGUvdWFwaS9saW51eC9yYW5kb20uaApAQCAtNDEsNyArNDEsNyBAQAogc3RydWN0IHJhbmRf cG9vbF9pbmZvIHsKIAlpbnQJZW50cm9weV9jb3VudDsKIAlpbnQJYnVmX3NpemU7Ci0JX191MzIJ YnVmWzBdOworCV9fdTMyCWJ1ZltdOwogfTsKIAogLyoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFw aS9saW51eC9yb21mc19mcy5oIGIvaW5jbHVkZS91YXBpL2xpbnV4L3JvbWZzX2ZzLmgKaW5kZXgg YTdmMTU4NWFjY2VmLi42YWEwNWU3OTI0NTQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51 eC9yb21mc19mcy5oCisrKyBiL2luY2x1ZGUvdWFwaS9saW51eC9yb21mc19mcy5oCkBAIC0yNyw3 ICsyNyw3IEBAIHN0cnVjdCByb21mc19zdXBlcl9ibG9jayB7CiAJX19iZTMyIHdvcmQxOwogCV9f YmUzMiBzaXplOwogCV9fYmUzMiBjaGVja3N1bTsKLQljaGFyIG5hbWVbMF07CQkvKiB2b2x1bWUg bmFtZSAqLworCWNoYXIgbmFtZVtdOwkJLyogdm9sdW1lIG5hbWUgKi8KIH07CiAKIC8qIE9uIGRp c2sgaW5vZGUgKi8KQEAgLTM3LDcgKzM3LDcgQEAgc3RydWN0IHJvbWZzX2lub2RlIHsKIAlfX2Jl MzIgc3BlYzsKIAlfX2JlMzIgc2l6ZTsKIAlfX2JlMzIgY2hlY2tzdW07Ci0JY2hhciBuYW1lWzBd OworCWNoYXIgbmFtZVtdOwogfTsKIAogI2RlZmluZSBST01GSF9UWVBFIDcKZGlmZiAtLWdpdCBh L2luY2x1ZGUvdWFwaS9saW51eC9ydG5ldGxpbmsuaCBiL2luY2x1ZGUvdWFwaS9saW51eC9ydG5l dGxpbmsuaAppbmRleCA4Mzg0OWEzN2RiNWIuLmViMjc0N2Q1OGE4MSAxMDA2NDQKLS0tIGEvaW5j bHVkZS91YXBpL2xpbnV4L3J0bmV0bGluay5oCisrKyBiL2luY2x1ZGUvdWFwaS9saW51eC9ydG5l dGxpbmsuaApAQCAtNDQwLDcgKzQ0MCw3IEBAIHN0cnVjdCBydG5leHRob3AgewogLyogUlRBX1ZJ QSAqLwogc3RydWN0IHJ0dmlhIHsKIAlfX2tlcm5lbF9zYV9mYW1pbHlfdAlydHZpYV9mYW1pbHk7 Ci0JX191OAkJCXJ0dmlhX2FkZHJbMF07CisJX191OAkJCXJ0dmlhX2FkZHJbXTsKIH07CiAKIC8q IFJUTV9DQUNIRUlORk8gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9zY3RwLmgg Yi9pbmNsdWRlL3VhcGkvbGludXgvc2N0cC5oCmluZGV4IGM0ZmYxZWJkOGJjYy4uZWQ3ZDRlY2Jm NTNkIDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvc2N0cC5oCisrKyBiL2luY2x1ZGUv dWFwaS9saW51eC9zY3RwLmgKQEAgLTM2NSw3ICszNjUsNyBAQCBzdHJ1Y3Qgc2N0cF9hc3NvY19j aGFuZ2UgewogCV9fdTE2IHNhY19vdXRib3VuZF9zdHJlYW1zOwogCV9fdTE2IHNhY19pbmJvdW5k X3N0cmVhbXM7CiAJc2N0cF9hc3NvY190IHNhY19hc3NvY19pZDsKLQlfX3U4IHNhY19pbmZvWzBd OworCV9fdTggc2FjX2luZm9bXTsKIH07CiAKIC8qCkBAIC00MzYsNyArNDM2LDcgQEAgc3RydWN0 IHNjdHBfcmVtb3RlX2Vycm9yIHsKIAlfX3UzMiBzcmVfbGVuZ3RoOwogCV9fYmUxNiBzcmVfZXJy b3I7CiAJc2N0cF9hc3NvY190IHNyZV9hc3NvY19pZDsKLQlfX3U4IHNyZV9kYXRhWzBdOworCV9f dTggc3JlX2RhdGFbXTsKIH07CiAKIApAQCAtNDUzLDcgKzQ1Myw3IEBAIHN0cnVjdCBzY3RwX3Nl bmRfZmFpbGVkIHsKIAlfX3UzMiBzc2ZfZXJyb3I7CiAJc3RydWN0IHNjdHBfc25kcmN2aW5mbyBz c2ZfaW5mbzsKIAlzY3RwX2Fzc29jX3Qgc3NmX2Fzc29jX2lkOwotCV9fdTggc3NmX2RhdGFbMF07 CisJX191OCBzc2ZfZGF0YVtdOwogfTsKIAogc3RydWN0IHNjdHBfc2VuZF9mYWlsZWRfZXZlbnQg ewpAQCAtNDYzLDcgKzQ2Myw3IEBAIHN0cnVjdCBzY3RwX3NlbmRfZmFpbGVkX2V2ZW50IHsKIAlf X3UzMiBzc2ZfZXJyb3I7CiAJc3RydWN0IHNjdHBfc25kaW5mbyBzc2ZlX2luZm87CiAJc2N0cF9h c3NvY190IHNzZl9hc3NvY19pZDsKLQlfX3U4IHNzZl9kYXRhWzBdOworCV9fdTggc3NmX2RhdGFb XTsKIH07CiAKIC8qCkBAIC0xMDI5LDcgKzEwMjksNyBAQCBzdHJ1Y3Qgc2N0cF9nZXRhZGRyc19v bGQgewogc3RydWN0IHNjdHBfZ2V0YWRkcnMgewogCXNjdHBfYXNzb2NfdAkJYXNzb2NfaWQ7IC8q aW5wdXQqLwogCV9fdTMyCQkJYWRkcl9udW07IC8qb3V0cHV0Ki8KLQlfX3U4CQkJYWRkcnNbMF07 IC8qb3V0cHV0LCB2YXJpYWJsZSBzaXplKi8KKwlfX3U4CQkJYWRkcnNbXTsgLypvdXRwdXQsIHZh cmlhYmxlIHNpemUqLwogfTsKIAogLyogQSBzb2NrZXQgdXNlciByZXF1ZXN0IG9idGFpbmVkIHZp YSBTQ1RQX0dFVF9BU1NPQ19TVEFUUyB0aGF0IHJldHJpZXZlcwpkaWZmIC0tZ2l0IGEvaW5jbHVk ZS91YXBpL2xpbnV4L3NlZzYuaCBiL2luY2x1ZGUvdWFwaS9saW51eC9zZWc2LmgKaW5kZXggMjg2 ZThkNmE4ZTk4Li4xM2JjYmM4YmJhMzIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC9z ZWc2LmgKKysrIGIvaW5jbHVkZS91YXBpL2xpbnV4L3NlZzYuaApAQCAtMzAsNyArMzAsNyBAQCBz dHJ1Y3QgaXB2Nl9zcl9oZHIgewogCV9fdTgJZmxhZ3M7CiAJX191MTYJdGFnOwogCi0Jc3RydWN0 IGluNl9hZGRyIHNlZ21lbnRzWzBdOworCXN0cnVjdCBpbjZfYWRkciBzZWdtZW50c1tdOwogfTsK IAogI2RlZmluZSBTUjZfRkxBRzFfUFJPVEVDVEVECSgxIDw8IDYpCmRpZmYgLS1naXQgYS9pbmNs dWRlL3VhcGkvbGludXgvc2VnNl9pcHR1bm5lbC5oIGIvaW5jbHVkZS91YXBpL2xpbnV4L3NlZzZf aXB0dW5uZWwuaAppbmRleCBlYjgxNWUwZDBhYzMuLmE3NDI5NDIxMTI5MCAxMDA2NDQKLS0tIGEv aW5jbHVkZS91YXBpL2xpbnV4L3NlZzZfaXB0dW5uZWwuaAorKysgYi9pbmNsdWRlL3VhcGkvbGlu dXgvc2VnNl9pcHR1bm5lbC5oCkBAIC0yNiw3ICsyNiw3IEBAIGVudW0gewogCiBzdHJ1Y3Qgc2Vn Nl9pcHR1bm5lbF9lbmNhcCB7CiAJaW50IG1vZGU7Ci0Jc3RydWN0IGlwdjZfc3JfaGRyIHNyaFsw XTsKKwlzdHJ1Y3QgaXB2Nl9zcl9oZHIgc3JoW107CiB9OwogCiAjZGVmaW5lIFNFRzZfSVBUVU5f RU5DQVBfU0laRSh4KSAoKHNpemVvZigqeCkpICsgKCgoeCktPnNyaC0+aGRybGVuICsgMSkgPDwg MykpCmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvbGludXgvc3RtLmggYi9pbmNsdWRlL3VhcGkv bGludXgvc3RtLmgKaW5kZXggN2JhYzMxOGI0NDQwLi5kZTM1NzljMmNmZjAgMTAwNjQ0Ci0tLSBh L2luY2x1ZGUvdWFwaS9saW51eC9zdG0uaAorKysgYi9pbmNsdWRlL3VhcGkvbGludXgvc3RtLmgK QEAgLTM2LDcgKzM2LDcgQEAgc3RydWN0IHN0cF9wb2xpY3lfaWQgewogCS8qIHBhZGRpbmcgKi8K IAlfX3UxNgkJX19yZXNlcnZlZF8wOwogCV9fdTMyCQlfX3Jlc2VydmVkXzE7Ci0JY2hhcgkJaWRb MF07CisJY2hhcgkJaWRbXTsKIH07CiAKICNkZWZpbmUgU1RQX1BPTElDWV9JRF9TRVQJX0lPV1Io JyUnLCAwLCBzdHJ1Y3Qgc3RwX3BvbGljeV9pZCkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9s aW51eC90YXJnZXRfY29yZV91c2VyLmggYi9pbmNsdWRlL3VhcGkvbGludXgvdGFyZ2V0X2NvcmVf dXNlci5oCmluZGV4IDI3YWNlNTEyYmFiZC4uZmJkOGNhNjdlMTA3IDEwMDY0NAotLS0gYS9pbmNs dWRlL3VhcGkvbGludXgvdGFyZ2V0X2NvcmVfdXNlci5oCisrKyBiL2luY2x1ZGUvdWFwaS9saW51 eC90YXJnZXRfY29yZV91c2VyLmgKQEAgLTE1Miw3ICsxNTIsNyBAQCBzdHJ1Y3QgdGNtdV90bXJf ZW50cnkgewogCV9fdTMyIGNtZF9jbnQ7CiAJX191NjQgX19wYWQzOwogCV9fdTY0IF9fcGFkNDsK LQlfX3UxNiBjbWRfaWRzWzBdOworCV9fdTE2IGNtZF9pZHNbXTsKIH0gX19wYWNrZWQ7CiAKICNk ZWZpbmUgVENNVV9PUF9BTElHTl9TSVpFIHNpemVvZihfX3U2NCkKZGlmZiAtLWdpdCBhL2luY2x1 ZGUvdWFwaS9saW51eC91c2IvYXVkaW8uaCBiL2luY2x1ZGUvdWFwaS9saW51eC91c2IvYXVkaW8u aAppbmRleCA3NmI3YzNmNmNkMGQuLmM5MTdjNTMwNzBkNSAxMDA2NDQKLS0tIGEvaW5jbHVkZS91 YXBpL2xpbnV4L3VzYi9hdWRpby5oCisrKyBiL2luY2x1ZGUvdWFwaS9saW51eC91c2IvYXVkaW8u aApAQCAtMzQxLDcgKzM0MSw3IEBAIHN0cnVjdCB1YWNfZmVhdHVyZV91bml0X2Rlc2NyaXB0b3Ig ewogCV9fdTggYlVuaXRJRDsKIAlfX3U4IGJTb3VyY2VJRDsKIAlfX3U4IGJDb250cm9sU2l6ZTsK LQlfX3U4IGJtYUNvbnRyb2xzWzBdOyAvKiB2YXJpYWJsZSBsZW5ndGggKi8KKwlfX3U4IGJtYUNv bnRyb2xzW107IC8qIHZhcmlhYmxlIGxlbmd0aCAqLwogfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQp KTsKIAogc3RhdGljIGlubGluZSBfX3U4IHVhY19mZWF0dXJlX3VuaXRfaUZlYXR1cmUoc3RydWN0 IHVhY19mZWF0dXJlX3VuaXRfZGVzY3JpcHRvciAqZGVzYykKZGlmZiAtLWdpdCBhL2luY2x1ZGUv dWFwaS9saW51eC91c2IvY2RjLmggYi9pbmNsdWRlL3VhcGkvbGludXgvdXNiL2NkYy5oCmluZGV4 IDZkNjE1NTA5NTllZi4uYWNmMzg1MmJiNjc2IDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvbGlu dXgvdXNiL2NkYy5oCisrKyBiL2luY2x1ZGUvdWFwaS9saW51eC91c2IvY2RjLmgKQEAgLTE3MSw3 ICsxNzEsNyBAQCBzdHJ1Y3QgdXNiX2NkY19tZGxtX2RldGFpbF9kZXNjIHsKIAogCS8qIHR5cGUg aXMgYXNzb2NpYXRlZCB3aXRoIG1kbG1fZGVzYy5iR1VJRCAqLwogCV9fdTgJYkd1aWREZXNjcmlw dG9yVHlwZTsKLQlfX3U4CWJEZXRhaWxEYXRhWzBdOworCV9fdTgJYkRldGFpbERhdGFbXTsKIH0g X19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpOwogCiAvKiAiT0JFWCBDb250cm9sIE1vZGVsIEZ1bmN0 aW9uYWwgRGVzY3JpcHRvciIgKi8KQEAgLTM3OSw3ICszNzksNyBAQCBzdHJ1Y3QgdXNiX2NkY19u Y21fbmRwMTYgewogCV9fbGUzMglkd1NpZ25hdHVyZTsKIAlfX2xlMTYJd0xlbmd0aDsKIAlfX2xl MTYJd05leHROZHBJbmRleDsKLQlzdHJ1Y3QJdXNiX2NkY19uY21fZHBlMTYgZHBlMTZbMF07CisJ c3RydWN0CXVzYl9jZGNfbmNtX2RwZTE2IGRwZTE2W107CiB9IF9fYXR0cmlidXRlX18gKChwYWNr ZWQpKTsKIAogLyogMzItYml0IE5DTSBEYXRhZ3JhbSBQb2ludGVyIEVudHJ5ICovCkBAIC0zOTUs NyArMzk1LDcgQEAgc3RydWN0IHVzYl9jZGNfbmNtX25kcDMyIHsKIAlfX2xlMTYJd1Jlc2VydmVk NjsKIAlfX2xlMzIJZHdOZXh0TmRwSW5kZXg7CiAJX19sZTMyCWR3UmVzZXJ2ZWQxMjsKLQlzdHJ1 Y3QJdXNiX2NkY19uY21fZHBlMzIgZHBlMzJbMF07CisJc3RydWN0CXVzYl9jZGNfbmNtX2RwZTMy IGRwZTMyW107CiB9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKTsKIAogLyogQ0RDIE5DTSBzdWJj bGFzcyAzLjIuMSBhbmQgMy4yLjIgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC91 c2IvY2g5LmggYi9pbmNsdWRlL3VhcGkvbGludXgvdXNiL2NoOS5oCmluZGV4IDE3Y2U1NjE5OGM5 YS4uMzFmY2ZhMDg0ZTYzIDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvdXNiL2NoOS5o CisrKyBiL2luY2x1ZGUvdWFwaS9saW51eC91c2IvY2g5LmgKQEAgLTgxOCw3ICs4MTgsNyBAQCBz dHJ1Y3QgdXNiX2tleV9kZXNjcmlwdG9yIHsKIAogCV9fdTggIHRUS0lEWzNdOwogCV9fdTggIGJS ZXNlcnZlZDsKLQlfX3U4ICBiS2V5RGF0YVswXTsKKwlfX3U4ICBiS2V5RGF0YVtdOwogfSBfX2F0 dHJpYnV0ZV9fKChwYWNrZWQpKTsKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KZGlmZiAtLWdpdCBh L2luY2x1ZGUvdWFwaS9saW51eC91c2IvcmF3X2dhZGdldC5oIGIvaW5jbHVkZS91YXBpL2xpbnV4 L3VzYi9yYXdfZ2FkZ2V0LmgKaW5kZXggMGJlNjg1MjcyZWIxLi5jN2QyMTk5MTM0ZDcgMTAwNjQ0 Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC91c2IvcmF3X2dhZGdldC5oCisrKyBiL2luY2x1ZGUv dWFwaS9saW51eC91c2IvcmF3X2dhZGdldC5oCkBAIC02MCw3ICs2MCw3IEBAIGVudW0gdXNiX3Jh d19ldmVudF90eXBlIHsKIHN0cnVjdCB1c2JfcmF3X2V2ZW50IHsKIAlfX3UzMgkJdHlwZTsKIAlf X3UzMgkJbGVuZ3RoOwotCV9fdTgJCWRhdGFbMF07CisJX191OAkJZGF0YVtdOwogfTsKIAogI2Rl ZmluZSBVU0JfUkFXX0lPX0ZMQUdTX1pFUk8JMHgwMDAxCkBAIC05MCw3ICs5MCw3IEBAIHN0cnVj dCB1c2JfcmF3X2VwX2lvIHsKIAlfX3UxNgkJZXA7CiAJX191MTYJCWZsYWdzOwogCV9fdTMyCQls ZW5ndGg7Ci0JX191OAkJZGF0YVswXTsKKwlfX3U4CQlkYXRhW107CiB9OwogCiAvKiBNYXhpbXVt IG51bWJlciBvZiBub24tY29udHJvbCBlbmRwb2ludHMgaW4gc3RydWN0IHVzYl9yYXdfZXBzX2lu Zm8uICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvbGludXgvdXNiZGV2aWNlX2ZzLmggYi9p bmNsdWRlL3VhcGkvbGludXgvdXNiZGV2aWNlX2ZzLmgKaW5kZXggY2Y1MjVjZGRlYjk0Li43NGE4 NGUwMjQyMmEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC91c2JkZXZpY2VfZnMuaAor KysgYi9pbmNsdWRlL3VhcGkvbGludXgvdXNiZGV2aWNlX2ZzLmgKQEAgLTEzMSw3ICsxMzEsNyBA QCBzdHJ1Y3QgdXNiZGV2ZnNfdXJiIHsKIAl1bnNpZ25lZCBpbnQgc2lnbnI7CS8qIHNpZ25hbCB0 byBiZSBzZW50IG9uIGNvbXBsZXRpb24sCiAJCQkJICBvciAwIGlmIG5vbmUgc2hvdWxkIGJlIHNl bnQuICovCiAJdm9pZCBfX3VzZXIgKnVzZXJjb250ZXh0OwotCXN0cnVjdCB1c2JkZXZmc19pc29f cGFja2V0X2Rlc2MgaXNvX2ZyYW1lX2Rlc2NbMF07CisJc3RydWN0IHVzYmRldmZzX2lzb19wYWNr ZXRfZGVzYyBpc29fZnJhbWVfZGVzY1tdOwogfTsKIAogLyogaW9jdGxzIGZvciB0YWxraW5nIGRp cmVjdGx5IHRvIGRyaXZlcnMgKi8KQEAgLTE3Niw3ICsxNzYsNyBAQCBzdHJ1Y3QgdXNiZGV2ZnNf ZGlzY29ubmVjdF9jbGFpbSB7CiBzdHJ1Y3QgdXNiZGV2ZnNfc3RyZWFtcyB7CiAJdW5zaWduZWQg aW50IG51bV9zdHJlYW1zOyAvKiBOb3QgdXNlZCBieSBVU0JERVZGU19GUkVFX1NUUkVBTVMgKi8K IAl1bnNpZ25lZCBpbnQgbnVtX2VwczsKLQl1bnNpZ25lZCBjaGFyIGVwc1swXTsKKwl1bnNpZ25l ZCBjaGFyIGVwc1tdOwogfTsKIAogLyoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC92 aG9zdF90eXBlcy5oIGIvaW5jbHVkZS91YXBpL2xpbnV4L3Zob3N0X3R5cGVzLmgKaW5kZXggNjM0 Y2VlNDg1YWJiLi4zOTEzMzFhMTA4NzkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC92 aG9zdF90eXBlcy5oCisrKyBiL2luY2x1ZGUvdWFwaS9saW51eC92aG9zdF90eXBlcy5oCkBAIC0x MDcsNyArMTA3LDcgQEAgc3RydWN0IHZob3N0X21lbW9yeV9yZWdpb24gewogc3RydWN0IHZob3N0 X21lbW9yeSB7CiAJX191MzIgbnJlZ2lvbnM7CiAJX191MzIgcGFkZGluZzsKLQlzdHJ1Y3Qgdmhv c3RfbWVtb3J5X3JlZ2lvbiByZWdpb25zWzBdOworCXN0cnVjdCB2aG9zdF9tZW1vcnlfcmVnaW9u IHJlZ2lvbnNbXTsKIH07CiAKIC8qIFZIT1NUX1NDU0kgc3BlY2lmaWMgZGVmaW5pdGlvbnMgKi8K QEAgLTEzNSw3ICsxMzUsNyBAQCBzdHJ1Y3Qgdmhvc3Rfc2NzaV90YXJnZXQgewogc3RydWN0IHZo b3N0X3ZkcGFfY29uZmlnIHsKIAlfX3UzMiBvZmY7CiAJX191MzIgbGVuOwotCV9fdTggYnVmWzBd OworCV9fdTggYnVmW107CiB9OwogCiAvKiB2aG9zdCB2ZHBhIElPVkEgcmFuZ2UKZGlmZiAtLWdp dCBhL2luY2x1ZGUvdWFwaS9saW51eC92aXJ0aW9fOXAuaCBiL2luY2x1ZGUvdWFwaS9saW51eC92 aXJ0aW9fOXAuaAppbmRleCA0NDEwNDc0MzIyNTguLjM3NGI2OGY4YWM2ZSAxMDA2NDQKLS0tIGEv aW5jbHVkZS91YXBpL2xpbnV4L3ZpcnRpb185cC5oCisrKyBiL2luY2x1ZGUvdWFwaS9saW51eC92 aXJ0aW9fOXAuaApAQCAtMzgsNyArMzgsNyBAQCBzdHJ1Y3QgdmlydGlvXzlwX2NvbmZpZyB7CiAJ LyogbGVuZ3RoIG9mIHRoZSB0YWcgbmFtZSAqLwogCV9fdmlydGlvMTYgdGFnX2xlbjsKIAkvKiBu b24tTlVMTCB0ZXJtaW5hdGVkIHRhZyBuYW1lICovCi0JX191OCB0YWdbMF07CisJX191OCB0YWdb XTsKIH0gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CiAKICNlbmRpZiAvKiBfTElOVVhfVklSVElP XzlQX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC94ZnJtLmggYi9pbmNsdWRl L3VhcGkvbGludXgveGZybS5oCmluZGV4IDY1ZTEzYTA5OWIxYS4uZTgxOTFlMGMzYjU2IDEwMDY0 NAotLS0gYS9pbmNsdWRlL3VhcGkvbGludXgveGZybS5oCisrKyBiL2luY2x1ZGUvdWFwaS9saW51 eC94ZnJtLmgKQEAgLTMzLDcgKzMzLDcgQEAgc3RydWN0IHhmcm1fc2VjX2N0eCB7CiAJX191OAlj dHhfYWxnOwogCV9fdTE2CWN0eF9sZW47CiAJX191MzIJY3R4X3NpZDsKLQljaGFyCWN0eF9zdHJb MF07CisJY2hhcgljdHhfc3RyW107CiB9OwogCiAvKiBTZWN1cml0eSBDb250ZXh0IERvbWFpbnMg b2YgSW50ZXJwcmV0YXRpb24gKi8KQEAgLTk2LDI3ICs5NiwyNyBAQCBzdHJ1Y3QgeGZybV9yZXBs YXlfc3RhdGVfZXNuIHsKIAlfX3UzMgkJb3NlcV9oaTsKIAlfX3UzMgkJc2VxX2hpOwogCV9fdTMy CQlyZXBsYXlfd2luZG93OwotCV9fdTMyCQlibXBbMF07CisJX191MzIJCWJtcFtdOwogfTsKIAog c3RydWN0IHhmcm1fYWxnbyB7CiAJY2hhcgkJYWxnX25hbWVbNjRdOwogCXVuc2lnbmVkIGludAlh bGdfa2V5X2xlbjsgICAgLyogaW4gYml0cyAqLwotCWNoYXIJCWFsZ19rZXlbMF07CisJY2hhcgkJ YWxnX2tleVtdOwogfTsKIAogc3RydWN0IHhmcm1fYWxnb19hdXRoIHsKIAljaGFyCQlhbGdfbmFt ZVs2NF07CiAJdW5zaWduZWQgaW50CWFsZ19rZXlfbGVuOyAgICAvKiBpbiBiaXRzICovCiAJdW5z aWduZWQgaW50CWFsZ190cnVuY19sZW47ICAvKiBpbiBiaXRzICovCi0JY2hhcgkJYWxnX2tleVsw XTsKKwljaGFyCQlhbGdfa2V5W107CiB9OwogCiBzdHJ1Y3QgeGZybV9hbGdvX2FlYWQgewogCWNo YXIJCWFsZ19uYW1lWzY0XTsKIAl1bnNpZ25lZCBpbnQJYWxnX2tleV9sZW47CS8qIGluIGJpdHMg Ki8KIAl1bnNpZ25lZCBpbnQJYWxnX2ljdl9sZW47CS8qIGluIGJpdHMgKi8KLQljaGFyCQlhbGdf a2V5WzBdOworCWNoYXIJCWFsZ19rZXlbXTsKIH07CiAKIHN0cnVjdCB4ZnJtX3N0YXRzIHsKZGlm ZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9yZG1hL2hmaS9oZmkxX3VzZXIuaCBiL2luY2x1ZGUvdWFw aS9yZG1hL2hmaS9oZmkxX3VzZXIuaAppbmRleCBkOTVlZjlhMmIwMzIuLjExMDZhN2M5MGIyOSAx MDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL3JkbWEvaGZpL2hmaTFfdXNlci5oCisrKyBiL2luY2x1 ZGUvdWFwaS9yZG1hL2hmaS9oZmkxX3VzZXIuaApAQCAtMTgwLDcgKzE4MCw3IEBAIHN0cnVjdCBo ZmkxX3NkbWFfY29tcF9lbnRyeSB7CiBzdHJ1Y3QgaGZpMV9zdGF0dXMgewogCV9fYWxpZ25lZF91 NjQgZGV2OyAgICAgIC8qIGRldmljZS9odyBzdGF0dXMgYml0cyAqLwogCV9fYWxpZ25lZF91NjQg cG9ydDsgICAgIC8qIHBvcnQgc3RhdGUgYW5kIHN0YXR1cyBiaXRzICovCi0JY2hhciBmcmVlemVt c2dbMF07CisJY2hhciBmcmVlemVtc2dbXTsKIH07CiAKIGVudW0gc2RtYV9yZXFfb3Bjb2RlIHsK ZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9yZG1hL2liX3VzZXJfdmVyYnMuaCBiL2luY2x1ZGUv dWFwaS9yZG1hL2liX3VzZXJfdmVyYnMuaAppbmRleCA3ZGQ5MDNkOTMyZTUuLjQzNjcyY2IxZmQ1 NyAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL3JkbWEvaWJfdXNlcl92ZXJicy5oCisrKyBiL2lu Y2x1ZGUvdWFwaS9yZG1hL2liX3VzZXJfdmVyYnMuaApAQCAtMTU4LDE4ICsxNTgsMTggQEAgc3Ry dWN0IGliX3V2ZXJic19leF9jbWRfaGRyIHsKIAogc3RydWN0IGliX3V2ZXJic19nZXRfY29udGV4 dCB7CiAJX19hbGlnbmVkX3U2NCByZXNwb25zZTsKLQlfX2FsaWduZWRfdTY0IGRyaXZlcl9kYXRh WzBdOworCV9fYWxpZ25lZF91NjQgZHJpdmVyX2RhdGFbXTsKIH07CiAKIHN0cnVjdCBpYl91dmVy YnNfZ2V0X2NvbnRleHRfcmVzcCB7CiAJX191MzIgYXN5bmNfZmQ7CiAJX191MzIgbnVtX2NvbXBf dmVjdG9yczsKLQlfX2FsaWduZWRfdTY0IGRyaXZlcl9kYXRhWzBdOworCV9fYWxpZ25lZF91NjQg ZHJpdmVyX2RhdGFbXTsKIH07CiAKIHN0cnVjdCBpYl91dmVyYnNfcXVlcnlfZGV2aWNlIHsKIAlf X2FsaWduZWRfdTY0IHJlc3BvbnNlOwotCV9fYWxpZ25lZF91NjQgZHJpdmVyX2RhdGFbMF07CisJ X19hbGlnbmVkX3U2NCBkcml2ZXJfZGF0YVtdOwogfTsKIAogc3RydWN0IGliX3V2ZXJic19xdWVy eV9kZXZpY2VfcmVzcCB7CkBAIC0yNzgsNyArMjc4LDcgQEAgc3RydWN0IGliX3V2ZXJic19xdWVy eV9wb3J0IHsKIAlfX2FsaWduZWRfdTY0IHJlc3BvbnNlOwogCV9fdTggIHBvcnRfbnVtOwogCV9f dTggIHJlc2VydmVkWzddOwotCV9fYWxpZ25lZF91NjQgZHJpdmVyX2RhdGFbMF07CisJX19hbGln bmVkX3U2NCBkcml2ZXJfZGF0YVtdOwogfTsKIAogc3RydWN0IGliX3V2ZXJic19xdWVyeV9wb3J0 X3Jlc3AgewpAQCAtMzA4LDEyICszMDgsMTIgQEAgc3RydWN0IGliX3V2ZXJic19xdWVyeV9wb3J0 X3Jlc3AgewogCiBzdHJ1Y3QgaWJfdXZlcmJzX2FsbG9jX3BkIHsKIAlfX2FsaWduZWRfdTY0IHJl c3BvbnNlOwotCV9fYWxpZ25lZF91NjQgZHJpdmVyX2RhdGFbMF07CisJX19hbGlnbmVkX3U2NCBk cml2ZXJfZGF0YVtdOwogfTsKIAogc3RydWN0IGliX3V2ZXJic19hbGxvY19wZF9yZXNwIHsKIAlf X3UzMiBwZF9oYW5kbGU7Ci0JX191MzIgZHJpdmVyX2RhdGFbMF07CisJX191MzIgZHJpdmVyX2Rh dGFbXTsKIH07CiAKIHN0cnVjdCBpYl91dmVyYnNfZGVhbGxvY19wZCB7CkBAIC0zMjQsMTIgKzMy NCwxMiBAQCBzdHJ1Y3QgaWJfdXZlcmJzX29wZW5feHJjZCB7CiAJX19hbGlnbmVkX3U2NCByZXNw b25zZTsKIAlfX3UzMiBmZDsKIAlfX3UzMiBvZmxhZ3M7Ci0JX19hbGlnbmVkX3U2NCBkcml2ZXJf ZGF0YVswXTsKKwlfX2FsaWduZWRfdTY0IGRyaXZlcl9kYXRhW107CiB9OwogCiBzdHJ1Y3QgaWJf dXZlcmJzX29wZW5feHJjZF9yZXNwIHsKIAlfX3UzMiB4cmNkX2hhbmRsZTsKLQlfX3UzMiBkcml2 ZXJfZGF0YVswXTsKKwlfX3UzMiBkcml2ZXJfZGF0YVtdOwogfTsKIAogc3RydWN0IGliX3V2ZXJi c19jbG9zZV94cmNkIHsKQEAgLTM0MywxNCArMzQzLDE0IEBAIHN0cnVjdCBpYl91dmVyYnNfcmVn X21yIHsKIAlfX2FsaWduZWRfdTY0IGhjYV92YTsKIAlfX3UzMiBwZF9oYW5kbGU7CiAJX191MzIg YWNjZXNzX2ZsYWdzOwotCV9fYWxpZ25lZF91NjQgZHJpdmVyX2RhdGFbMF07CisJX19hbGlnbmVk X3U2NCBkcml2ZXJfZGF0YVtdOwogfTsKIAogc3RydWN0IGliX3V2ZXJic19yZWdfbXJfcmVzcCB7 CiAJX191MzIgbXJfaGFuZGxlOwogCV9fdTMyIGxrZXk7CiAJX191MzIgcmtleTsKLQlfX3UzMiBk cml2ZXJfZGF0YVswXTsKKwlfX3UzMiBkcml2ZXJfZGF0YVtdOwogfTsKIAogc3RydWN0IGliX3V2 ZXJic19yZXJlZ19tciB7CkBAIC0zNjIsMTMgKzM2MiwxMyBAQCBzdHJ1Y3QgaWJfdXZlcmJzX3Jl cmVnX21yIHsKIAlfX2FsaWduZWRfdTY0IGhjYV92YTsKIAlfX3UzMiBwZF9oYW5kbGU7CiAJX191 MzIgYWNjZXNzX2ZsYWdzOwotCV9fYWxpZ25lZF91NjQgZHJpdmVyX2RhdGFbMF07CisJX19hbGln bmVkX3U2NCBkcml2ZXJfZGF0YVtdOwogfTsKIAogc3RydWN0IGliX3V2ZXJic19yZXJlZ19tcl9y ZXNwIHsKIAlfX3UzMiBsa2V5OwogCV9fdTMyIHJrZXk7Ci0JX19hbGlnbmVkX3U2NCBkcml2ZXJf ZGF0YVswXTsKKwlfX2FsaWduZWRfdTY0IGRyaXZlcl9kYXRhW107CiB9OwogCiBzdHJ1Y3QgaWJf dXZlcmJzX2RlcmVnX21yIHsKQEAgLTM4MCwxMyArMzgwLDEzIEBAIHN0cnVjdCBpYl91dmVyYnNf YWxsb2NfbXcgewogCV9fdTMyIHBkX2hhbmRsZTsKIAlfX3U4ICBtd190eXBlOwogCV9fdTggIHJl c2VydmVkWzNdOwotCV9fYWxpZ25lZF91NjQgZHJpdmVyX2RhdGFbMF07CisJX19hbGlnbmVkX3U2 NCBkcml2ZXJfZGF0YVtdOwogfTsKIAogc3RydWN0IGliX3V2ZXJic19hbGxvY19td19yZXNwIHsK IAlfX3UzMiBtd19oYW5kbGU7CiAJX191MzIgcmtleTsKLQlfX2FsaWduZWRfdTY0IGRyaXZlcl9k YXRhWzBdOworCV9fYWxpZ25lZF91NjQgZHJpdmVyX2RhdGFbXTsKIH07CiAKIHN0cnVjdCBpYl91 dmVyYnNfZGVhbGxvY19tdyB7CkBAIC00MDgsNyArNDA4LDcgQEAgc3RydWN0IGliX3V2ZXJic19j cmVhdGVfY3EgewogCV9fdTMyIGNvbXBfdmVjdG9yOwogCV9fczMyIGNvbXBfY2hhbm5lbDsKIAlf X3UzMiByZXNlcnZlZDsKLQlfX2FsaWduZWRfdTY0IGRyaXZlcl9kYXRhWzBdOworCV9fYWxpZ25l ZF91NjQgZHJpdmVyX2RhdGFbXTsKIH07CiAKIGVudW0gaWJfdXZlcmJzX2V4X2NyZWF0ZV9jcV9m bGFncyB7CkBAIC00NDIsMTMgKzQ0MiwxMyBAQCBzdHJ1Y3QgaWJfdXZlcmJzX3Jlc2l6ZV9jcSB7 CiAJX19hbGlnbmVkX3U2NCByZXNwb25zZTsKIAlfX3UzMiBjcV9oYW5kbGU7CiAJX191MzIgY3Fl OwotCV9fYWxpZ25lZF91NjQgZHJpdmVyX2RhdGFbMF07CisJX19hbGlnbmVkX3U2NCBkcml2ZXJf ZGF0YVtdOwogfTsKIAogc3RydWN0IGliX3V2ZXJic19yZXNpemVfY3FfcmVzcCB7CiAJX191MzIg Y3FlOwogCV9fdTMyIHJlc2VydmVkOwotCV9fYWxpZ25lZF91NjQgZHJpdmVyX2RhdGFbMF07CisJ X19hbGlnbmVkX3U2NCBkcml2ZXJfZGF0YVtdOwogfTsKIAogc3RydWN0IGliX3V2ZXJic19wb2xs X2NxIHsKQEAgLTQ5Miw3ICs0OTIsNyBAQCBzdHJ1Y3QgaWJfdXZlcmJzX3djIHsKIHN0cnVjdCBp Yl91dmVyYnNfcG9sbF9jcV9yZXNwIHsKIAlfX3UzMiBjb3VudDsKIAlfX3UzMiByZXNlcnZlZDsK LQlzdHJ1Y3QgaWJfdXZlcmJzX3djIHdjWzBdOworCXN0cnVjdCBpYl91dmVyYnNfd2Mgd2NbXTsK IH07CiAKIHN0cnVjdCBpYl91dmVyYnNfcmVxX25vdGlmeV9jcSB7CkBAIC01ODUsNyArNTg1LDcg QEAgc3RydWN0IGliX3V2ZXJic19jcmVhdGVfcXAgewogCV9fdTggIHFwX3R5cGU7CiAJX191OCAg aXNfc3JxOwogCV9fdTggIHJlc2VydmVkOwotCV9fYWxpZ25lZF91NjQgZHJpdmVyX2RhdGFbMF07 CisJX19hbGlnbmVkX3U2NCBkcml2ZXJfZGF0YVtdOwogfTsKIAogZW51bSBpYl91dmVyYnNfY3Jl YXRlX3FwX21hc2sgewpAQCAtNjI0LDcgKzYyNCw3IEBAIHN0cnVjdCBpYl91dmVyYnNfb3Blbl9x cCB7CiAJX191MzIgcXBuOwogCV9fdTggIHFwX3R5cGU7CiAJX191OCAgcmVzZXJ2ZWRbN107Ci0J X19hbGlnbmVkX3U2NCBkcml2ZXJfZGF0YVswXTsKKwlfX2FsaWduZWRfdTY0IGRyaXZlcl9kYXRh W107CiB9OwogCiAvKiBhbHNvIHVzZWQgZm9yIG9wZW4gcmVzcG9uc2UgKi8KQEAgLTY2OSw3ICs2 NjksNyBAQCBzdHJ1Y3QgaWJfdXZlcmJzX3F1ZXJ5X3FwIHsKIAlfX2FsaWduZWRfdTY0IHJlc3Bv bnNlOwogCV9fdTMyIHFwX2hhbmRsZTsKIAlfX3UzMiBhdHRyX21hc2s7Ci0JX19hbGlnbmVkX3U2 NCBkcml2ZXJfZGF0YVswXTsKKwlfX2FsaWduZWRfdTY0IGRyaXZlcl9kYXRhW107CiB9OwogCiBz dHJ1Y3QgaWJfdXZlcmJzX3F1ZXJ5X3FwX3Jlc3AgewpAQCAtNzAzLDcgKzcwMyw3IEBAIHN0cnVj dCBpYl91dmVyYnNfcXVlcnlfcXBfcmVzcCB7CiAJX191OCAgYWx0X3RpbWVvdXQ7CiAJX191OCAg c3Ffc2lnX2FsbDsKIAlfX3U4ICByZXNlcnZlZFs1XTsKLQlfX2FsaWduZWRfdTY0IGRyaXZlcl9k YXRhWzBdOworCV9fYWxpZ25lZF91NjQgZHJpdmVyX2RhdGFbXTsKIH07CiAKIHN0cnVjdCBpYl91 dmVyYnNfbW9kaWZ5X3FwIHsKQEAgLTgyNCw3ICs4MjQsNyBAQCBzdHJ1Y3QgaWJfdXZlcmJzX3Bv c3Rfc2VuZCB7CiAJX191MzIgd3JfY291bnQ7CiAJX191MzIgc2dlX2NvdW50OwogCV9fdTMyIHdx ZV9zaXplOwotCXN0cnVjdCBpYl91dmVyYnNfc2VuZF93ciBzZW5kX3dyWzBdOworCXN0cnVjdCBp Yl91dmVyYnNfc2VuZF93ciBzZW5kX3dyW107CiB9OwogCiBzdHJ1Y3QgaWJfdXZlcmJzX3Bvc3Rf c2VuZF9yZXNwIHsKQEAgLTg0Myw3ICs4NDMsNyBAQCBzdHJ1Y3QgaWJfdXZlcmJzX3Bvc3RfcmVj diB7CiAJX191MzIgd3JfY291bnQ7CiAJX191MzIgc2dlX2NvdW50OwogCV9fdTMyIHdxZV9zaXpl OwotCXN0cnVjdCBpYl91dmVyYnNfcmVjdl93ciByZWN2X3dyWzBdOworCXN0cnVjdCBpYl91dmVy YnNfcmVjdl93ciByZWN2X3dyW107CiB9OwogCiBzdHJ1Y3QgaWJfdXZlcmJzX3Bvc3RfcmVjdl9y ZXNwIHsKQEAgLTg1Niw3ICs4NTYsNyBAQCBzdHJ1Y3QgaWJfdXZlcmJzX3Bvc3Rfc3JxX3JlY3Yg ewogCV9fdTMyIHdyX2NvdW50OwogCV9fdTMyIHNnZV9jb3VudDsKIAlfX3UzMiB3cWVfc2l6ZTsK LQlzdHJ1Y3QgaWJfdXZlcmJzX3JlY3Zfd3IgcmVjdlswXTsKKwlzdHJ1Y3QgaWJfdXZlcmJzX3Jl Y3Zfd3IgcmVjdltdOwogfTsKIAogc3RydWN0IGliX3V2ZXJic19wb3N0X3NycV9yZWN2X3Jlc3Ag ewpAQCAtODY5LDEyICs4NjksMTIgQEAgc3RydWN0IGliX3V2ZXJic19jcmVhdGVfYWggewogCV9f dTMyIHBkX2hhbmRsZTsKIAlfX3UzMiByZXNlcnZlZDsKIAlzdHJ1Y3QgaWJfdXZlcmJzX2FoX2F0 dHIgYXR0cjsKLQlfX2FsaWduZWRfdTY0IGRyaXZlcl9kYXRhWzBdOworCV9fYWxpZ25lZF91NjQg ZHJpdmVyX2RhdGFbXTsKIH07CiAKIHN0cnVjdCBpYl91dmVyYnNfY3JlYXRlX2FoX3Jlc3Agewog CV9fdTMyIGFoX2hhbmRsZTsKLQlfX3UzMiBkcml2ZXJfZGF0YVswXTsKKwlfX3UzMiBkcml2ZXJf ZGF0YVtdOwogfTsKIAogc3RydWN0IGliX3V2ZXJic19kZXN0cm95X2FoIHsKQEAgLTg4Niw3ICs4 ODYsNyBAQCBzdHJ1Y3QgaWJfdXZlcmJzX2F0dGFjaF9tY2FzdCB7CiAJX191MzIgcXBfaGFuZGxl OwogCV9fdTE2IG1saWQ7CiAJX191MTYgcmVzZXJ2ZWQ7Ci0JX19hbGlnbmVkX3U2NCBkcml2ZXJf ZGF0YVswXTsKKwlfX2FsaWduZWRfdTY0IGRyaXZlcl9kYXRhW107CiB9OwogCiBzdHJ1Y3QgaWJf dXZlcmJzX2RldGFjaF9tY2FzdCB7CkBAIC04OTQsNyArODk0LDcgQEAgc3RydWN0IGliX3V2ZXJi c19kZXRhY2hfbWNhc3QgewogCV9fdTMyIHFwX2hhbmRsZTsKIAlfX3UxNiBtbGlkOwogCV9fdTE2 IHJlc2VydmVkOwotCV9fYWxpZ25lZF91NjQgZHJpdmVyX2RhdGFbMF07CisJX19hbGlnbmVkX3U2 NCBkcml2ZXJfZGF0YVtdOwogfTsKIAogc3RydWN0IGliX3V2ZXJic19mbG93X3NwZWNfaGRyIHsK QEAgLTExMzUsNyArMTEzNSw3IEBAIHN0cnVjdCBpYl91dmVyYnNfZmxvd19hdHRyIHsKIAkgKiBz dHJ1Y3QgaWJfZmxvd19zcGVjX3h4eAogCSAqIHN0cnVjdCBpYl9mbG93X3NwZWNfeXl5CiAJICov Ci0Jc3RydWN0IGliX3V2ZXJic19mbG93X3NwZWNfaGRyIGZsb3dfc3BlY3NbMF07CisJc3RydWN0 IGliX3V2ZXJic19mbG93X3NwZWNfaGRyIGZsb3dfc3BlY3NbXTsKIH07CiAKIHN0cnVjdCBpYl91 dmVyYnNfY3JlYXRlX2Zsb3cgIHsKQEAgLTExNjEsNyArMTE2MSw3IEBAIHN0cnVjdCBpYl91dmVy YnNfY3JlYXRlX3NycSB7CiAJX191MzIgbWF4X3dyOwogCV9fdTMyIG1heF9zZ2U7CiAJX191MzIg c3JxX2xpbWl0OwotCV9fYWxpZ25lZF91NjQgZHJpdmVyX2RhdGFbMF07CisJX19hbGlnbmVkX3U2 NCBkcml2ZXJfZGF0YVtdOwogfTsKIAogc3RydWN0IGliX3V2ZXJic19jcmVhdGVfeHNycSB7CkBA IC0xMTc1LDcgKzExNzUsNyBAQCBzdHJ1Y3QgaWJfdXZlcmJzX2NyZWF0ZV94c3JxIHsKIAlfX3Uz MiBtYXhfbnVtX3RhZ3M7CiAJX191MzIgeHJjZF9oYW5kbGU7CiAJX191MzIgY3FfaGFuZGxlOwot CV9fYWxpZ25lZF91NjQgZHJpdmVyX2RhdGFbMF07CisJX19hbGlnbmVkX3U2NCBkcml2ZXJfZGF0 YVtdOwogfTsKIAogc3RydWN0IGliX3V2ZXJic19jcmVhdGVfc3JxX3Jlc3AgewpAQCAtMTE4Myw3 ICsxMTgzLDcgQEAgc3RydWN0IGliX3V2ZXJic19jcmVhdGVfc3JxX3Jlc3AgewogCV9fdTMyIG1h eF93cjsKIAlfX3UzMiBtYXhfc2dlOwogCV9fdTMyIHNycW47Ci0JX191MzIgZHJpdmVyX2RhdGFb MF07CisJX191MzIgZHJpdmVyX2RhdGFbXTsKIH07CiAKIHN0cnVjdCBpYl91dmVyYnNfbW9kaWZ5 X3NycSB7CkBAIC0xMTkxLDE0ICsxMTkxLDE0IEBAIHN0cnVjdCBpYl91dmVyYnNfbW9kaWZ5X3Ny cSB7CiAJX191MzIgYXR0cl9tYXNrOwogCV9fdTMyIG1heF93cjsKIAlfX3UzMiBzcnFfbGltaXQ7 Ci0JX19hbGlnbmVkX3U2NCBkcml2ZXJfZGF0YVswXTsKKwlfX2FsaWduZWRfdTY0IGRyaXZlcl9k YXRhW107CiB9OwogCiBzdHJ1Y3QgaWJfdXZlcmJzX3F1ZXJ5X3NycSB7CiAJX19hbGlnbmVkX3U2 NCByZXNwb25zZTsKIAlfX3UzMiBzcnFfaGFuZGxlOwogCV9fdTMyIHJlc2VydmVkOwotCV9fYWxp Z25lZF91NjQgZHJpdmVyX2RhdGFbMF07CisJX19hbGlnbmVkX3U2NCBkcml2ZXJfZGF0YVtdOwog fTsKIAogc3RydWN0IGliX3V2ZXJic19xdWVyeV9zcnFfcmVzcCB7CkBAIC0xMjY5LDcgKzEyNjks NyBAQCBzdHJ1Y3QgaWJfdXZlcmJzX2V4X2NyZWF0ZV9yd3FfaW5kX3RhYmxlICB7CiAJICogd3Ff aGFuZGxlMQogCSAqIHdxX2hhbmRsZTIKIAkgKi8KLQlfX3UzMiB3cV9oYW5kbGVzWzBdOworCV9f dTMyIHdxX2hhbmRsZXNbXTsKIH07CiAKIHN0cnVjdCBpYl91dmVyYnNfZXhfY3JlYXRlX3J3cV9p bmRfdGFibGVfcmVzcCB7CmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvcmRtYS9yZG1hX3VzZXJf Y20uaCBiL2luY2x1ZGUvdWFwaS9yZG1hL3JkbWFfdXNlcl9jbS5oCmluZGV4IGVkNWE1MTQzMDVj MS4uN2NlYTAzNTgxZjc5IDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvcmRtYS9yZG1hX3VzZXJf Y20uaAorKysgYi9pbmNsdWRlL3VhcGkvcmRtYS9yZG1hX3VzZXJfY20uaApAQCAtMTg0LDcgKzE4 NCw3IEBAIHN0cnVjdCByZG1hX3VjbV9xdWVyeV9hZGRyX3Jlc3Agewogc3RydWN0IHJkbWFfdWNt X3F1ZXJ5X3BhdGhfcmVzcCB7CiAJX191MzIgbnVtX3BhdGhzOwogCV9fdTMyIHJlc2VydmVkOwot CXN0cnVjdCBpYl9wYXRoX3JlY19kYXRhIHBhdGhfZGF0YVswXTsKKwlzdHJ1Y3QgaWJfcGF0aF9y ZWNfZGF0YSBwYXRoX2RhdGFbXTsKIH07CiAKIHN0cnVjdCByZG1hX3VjbV9jb25uX3BhcmFtIHsK ZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9yZG1hL3JkbWFfdXNlcl9pb2N0bF9jbWRzLmggYi9p bmNsdWRlL3VhcGkvcmRtYS9yZG1hX3VzZXJfaW9jdGxfY21kcy5oCmluZGV4IDM4YWI3YWNjYjdi ZS4uYWIxYWVmMTdmZWIxIDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvcmRtYS9yZG1hX3VzZXJf aW9jdGxfY21kcy5oCisrKyBiL2luY2x1ZGUvdWFwaS9yZG1hL3JkbWFfdXNlcl9pb2N0bF9jbWRz LmgKQEAgLTgxLDcgKzgxLDcgQEAgc3RydWN0IGliX3V2ZXJic19pb2N0bF9oZHIgewogCV9fYWxp Z25lZF91NjQgcmVzZXJ2ZWQxOwogCV9fdTMyIGRyaXZlcl9pZDsKIAlfX3UzMiByZXNlcnZlZDI7 Ci0Jc3RydWN0IGliX3V2ZXJic19hdHRyICBhdHRyc1swXTsKKwlzdHJ1Y3QgaWJfdXZlcmJzX2F0 dHIgIGF0dHJzW107CiB9OwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9zY3Np L2ZjL2ZjX2Vscy5oIGIvaW5jbHVkZS91YXBpL3Njc2kvZmMvZmNfZWxzLmgKaW5kZXggYzk4MTJj NWMyZmM0Li4xNjc4MmMzNjBkZTMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9zY3NpL2ZjL2Zj X2Vscy5oCisrKyBiL2luY2x1ZGUvdWFwaS9zY3NpL2ZjL2ZjX2Vscy5oCkBAIC0yNjQsNyArMjY0 LDcgQEAgc3RydWN0IGZjX3Rsdl9kZXNjIHsKIAkJCQkJICogU2l6ZSBvZiBkZXNjcmlwdG9yIGV4 Y2x1ZGluZwogCQkJCQkgKiBkZXNjX3RhZyBhbmQgZGVzY19sZW4gZmllbGRzLgogCQkJCQkgKi8K LQlfX3U4CQlkZXNjX3ZhbHVlWzBdOyAgLyogRGVzY3JpcHRvciBWYWx1ZSAqLworCV9fdTgJCWRl c2NfdmFsdWVbXTsgIC8qIERlc2NyaXB0b3IgVmFsdWUgKi8KIH07CiAKIC8qIERlc2NyaXB0b3Ig dGFnIGFuZCBsZW4gZmllbGRzIGFyZSBjb25zaWRlcmVkIHRoZSBtYW5kYXRvcnkgaGVhZGVyCkBA IC0xMDI3LDcgKzEwMjcsNyBAQCBzdHJ1Y3QgZmNfZm5fbGlfZGVzYyB7CiAJCQkJCSAqIHRocmVz aG9sZCB0byBjYWF1c2UgdGhlIExJIGV2ZW50CiAJCQkJCSAqLwogCV9fYmUzMgkJcG5hbWVfY291 bnQ7CS8qIG51bWJlciBvZiBwb3J0bmFtZV9saXN0IGVsZW1lbnRzICovCi0JX19iZTY0CQlwbmFt ZV9saXN0WzBdOwkvKiBsaXN0IG9mIE5fUG9ydF9OYW1lcyBhY2Nlc3NpYmxlCisJX19iZTY0CQlw bmFtZV9saXN0W107CS8qIGxpc3Qgb2YgTl9Qb3J0X05hbWVzIGFjY2Vzc2libGUKIAkJCQkJICog dGhyb3VnaCB0aGUgYXR0YWNoZWQgcG9ydAogCQkJCQkgKi8KIH07CkBAIC0xMDY5LDcgKzEwNjks NyBAQCBzdHJ1Y3QgZmNfZm5fcGVlcl9jb25nbl9kZXNjIHsKIAkJCQkJICogY29uZ2VzdGlvbiBl dmVudAogCQkJCQkgKi8KIAlfX2JlMzIJCXBuYW1lX2NvdW50OwkvKiBudW1iZXIgb2YgcG9ydG5h bWVfbGlzdCBlbGVtZW50cyAqLwotCV9fYmU2NAkJcG5hbWVfbGlzdFswXTsJLyogbGlzdCBvZiBO X1BvcnRfTmFtZXMgYWNjZXNzaWJsZQorCV9fYmU2NAkJcG5hbWVfbGlzdFtdOwkvKiBsaXN0IG9m IE5fUG9ydF9OYW1lcyBhY2Nlc3NpYmxlCiAJCQkJCSAqIHRocm91Z2ggdGhlIGF0dGFjaGVkIHBv cnQKIAkJCQkJICovCiB9OwpAQCAtMTEwNCw3ICsxMTA0LDcgQEAgc3RydWN0IGZjX2Vsc19mcGlu IHsKIAkJCQkJICogU2l6ZSBvZiBFTFMgZXhjbHVkaW5nIGZwaW5fY21kLAogCQkJCQkgKiBmcGlu X3plcm8gYW5kIGRlc2NfbGVuIGZpZWxkcy4KIAkJCQkJICovCi0Jc3RydWN0IGZjX3Rsdl9kZXNj CWZwaW5fZGVzY1swXTsJLyogRGVzY3JpcHRvciBsaXN0ICovCisJc3RydWN0IGZjX3Rsdl9kZXNj CWZwaW5fZGVzY1tdOwkvKiBEZXNjcmlwdG9yIGxpc3QgKi8KIH07CiAKIC8qIERpYWdub3N0aWMg RnVuY3Rpb24gRGVzY3JpcHRvciAtIEZQSU4gUmVnaXN0cmF0aW9uICovCkBAIC0xMTE1LDcgKzEx MTUsNyBAQCBzdHJ1Y3QgZmNfZGZfZGVzY19mcGluX3JlZyB7CiAJCQkJCSAqIGRlc2NfdGFnIGFu ZCBkZXNjX2xlbiBmaWVsZHMuCiAJCQkJCSAqLwogCV9fYmUzMgkJY291bnQ7CQkvKiBOdW1iZXIg b2YgZGVzY190YWdzIGVsZW1lbnRzICovCi0JX19iZTMyCQlkZXNjX3RhZ3NbMF07CS8qIEFycmF5 IG9mIERlc2NyaXB0b3IgVGFncy4KKwlfX2JlMzIJCWRlc2NfdGFnc1tdOwkvKiBBcnJheSBvZiBE ZXNjcmlwdG9yIFRhZ3MuCiAJCQkJCSAqIEVhY2ggdGFnIGluZGljYXRlcyBhIGZ1bmN0aW9uCiAJ CQkJCSAqIHN1cHBvcnRlZCBieSB0aGUgTl9Qb3J0IChyZXF1ZXN0KQogCQkJCQkgKiBvciBieSB0 aGUgIE5fUG9ydCBhbmQgRmFicmljCkBAIC0xMTM1LDcgKzExMzUsNyBAQCBzdHJ1Y3QgZmNfZWxz X3JkZiB7CiAJCQkJCSAqIFNpemUgb2YgRUxTIGV4Y2x1ZGluZyBmcGluX2NtZCwKIAkJCQkJICog ZnBpbl96ZXJvIGFuZCBkZXNjX2xlbiBmaWVsZHMuCiAJCQkJCSAqLwotCXN0cnVjdCBmY190bHZf ZGVzYwlkZXNjWzBdOwkvKiBEZXNjcmlwdG9yIGxpc3QgKi8KKwlzdHJ1Y3QgZmNfdGx2X2Rlc2MJ ZGVzY1tdOwkvKiBEZXNjcmlwdG9yIGxpc3QgKi8KIH07CiAKIC8qCkBAIC0xMTQ4LDcgKzExNDgs NyBAQCBzdHJ1Y3QgZmNfZWxzX3JkZl9yZXNwIHsKIAkJCQkJCSAqIGFuZCBkZXNjX2xpc3RfbGVu IGZpZWxkcy4KIAkJCQkJCSAqLwogCXN0cnVjdCBmY19lbHNfbHNyaV9kZXNjCWxzcmk7Ci0Jc3Ry dWN0IGZjX3Rsdl9kZXNjCWRlc2NbMF07CS8qIFN1cHBvcnRlZCBEZXNjcmlwdG9yIGxpc3QgKi8K KwlzdHJ1Y3QgZmNfdGx2X2Rlc2MJZGVzY1tdOwkvKiBTdXBwb3J0ZWQgRGVzY3JpcHRvciBsaXN0 ICovCiB9OwogCiAKQEAgLTEyMzEsNyArMTIzMSw3IEBAIHN0cnVjdCBmY19lbHNfZWRjIHsKIAkJ CQkJICogU2l6ZSBvZiBFTFMgZXhjbHVkaW5nIGVkY19jbWQsCiAJCQkJCSAqIGVkY196ZXJvIGFu ZCBkZXNjX2xlbiBmaWVsZHMuCiAJCQkJCSAqLwotCXN0cnVjdCBmY190bHZfZGVzYwlkZXNjWzBd OworCXN0cnVjdCBmY190bHZfZGVzYwlkZXNjW107CiAJCQkJCS8qIERpYWdub3N0aWMgRGVzY3Jp cHRvciBsaXN0ICovCiB9OwogCkBAIC0xMjQ1LDcgKzEyNDUsNyBAQCBzdHJ1Y3QgZmNfZWxzX2Vk Y19yZXNwIHsKIAkJCQkJCSAqIGFuZCBkZXNjX2xpc3RfbGVuIGZpZWxkcy4KIAkJCQkJCSAqLwog CXN0cnVjdCBmY19lbHNfbHNyaV9kZXNjCWxzcmk7Ci0Jc3RydWN0IGZjX3Rsdl9kZXNjCWRlc2Nb MF07CisJc3RydWN0IGZjX3Rsdl9kZXNjCWRlc2NbXTsKIAkJCQkgICAgLyogU3VwcG9ydGVkIERp YWdub3N0aWMgRGVzY3JpcHRvciBsaXN0ICovCiB9OwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL3Vh cGkvc2NzaS9zY3NpX2JzZ19mYy5oIGIvaW5jbHVkZS91YXBpL3Njc2kvc2NzaV9ic2dfZmMuaApp bmRleCAzYWU2NWU5MzIzNWMuLjdmNTkzMDgwMWY3MiAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBp L3Njc2kvc2NzaV9ic2dfZmMuaAorKysgYi9pbmNsdWRlL3VhcGkvc2NzaS9zY3NpX2JzZ19mYy5o CkBAIC0yMDksNyArMjA5LDcgQEAgc3RydWN0IGZjX2JzZ19ob3N0X3ZlbmRvciB7CiAJX191NjQg dmVuZG9yX2lkOwogCiAJLyogc3RhcnQgb2YgdmVuZG9yIGNvbW1hbmQgYXJlYSAqLwotCV9fdTMy IHZlbmRvcl9jbWRbMF07CisJX191MzIgdmVuZG9yX2NtZFtdOwogfTsKIAogLyogUmVzcG9uc2U6 CmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvc291bmQvYXNvdW5kLmggYi9pbmNsdWRlL3VhcGkv c291bmQvYXNvdW5kLmgKaW5kZXggMmQzZTVkZjM5YTU5Li4zOTc0YTJhOTExY2MgMTAwNjQ0Ci0t LSBhL2luY2x1ZGUvdWFwaS9zb3VuZC9hc291bmQuaAorKysgYi9pbmNsdWRlL3VhcGkvc291bmQv YXNvdW5kLmgKQEAgLTExMDYsNyArMTEwNiw3IEBAIHN0cnVjdCBzbmRfY3RsX2VsZW1fdmFsdWUg ewogc3RydWN0IHNuZF9jdGxfdGx2IHsKIAl1bnNpZ25lZCBpbnQgbnVtaWQ7CS8qIGNvbnRyb2wg ZWxlbWVudCBudW1lcmljIGlkZW50aWZpY2F0aW9uICovCiAJdW5zaWduZWQgaW50IGxlbmd0aDsJ LyogaW4gYnl0ZXMgYWxpZ25lZCB0byA0ICovCi0JdW5zaWduZWQgaW50IHRsdlswXTsJLyogZmly c3QgVExWICovCisJdW5zaWduZWQgaW50IHRsdltdOwkvKiBmaXJzdCBUTFYgKi8KIH07CiAKICNk ZWZpbmUgU05EUlZfQ1RMX0lPQ1RMX1BWRVJTSU9OCV9JT1IoJ1UnLCAweDAwLCBpbnQpCmRpZmYg LS1naXQgYS9pbmNsdWRlL3VhcGkvc291bmQvZmlyZXdpcmUuaCBiL2luY2x1ZGUvdWFwaS9zb3Vu ZC9maXJld2lyZS5oCmluZGV4IDM5Y2Y2ZWI3NTk0MC4uMzUzMmFjNzA0NmQ3IDEwMDY0NAotLS0g YS9pbmNsdWRlL3VhcGkvc291bmQvZmlyZXdpcmUuaAorKysgYi9pbmNsdWRlL3VhcGkvc291bmQv ZmlyZXdpcmUuaApAQCAtMzgsMTEgKzM4LDExIEBAIHN0cnVjdCBzbmRfZWZ3X3RyYW5zYWN0aW9u IHsKIAlfX2JlMzIgY2F0ZWdvcnk7CiAJX19iZTMyIGNvbW1hbmQ7CiAJX19iZTMyIHN0YXR1czsK LQlfX2JlMzIgcGFyYW1zWzBdOworCV9fYmUzMiBwYXJhbXNbXTsKIH07CiBzdHJ1Y3Qgc25kX2Zp cmV3aXJlX2V2ZW50X2Vmd19yZXNwb25zZSB7CiAJdW5zaWduZWQgaW50IHR5cGU7Ci0JX19iZTMy IHJlc3BvbnNlWzBdOwkvKiBzb21lIHJlc3BvbnNlcyAqLworCV9fYmUzMiByZXNwb25zZVtdOwkv KiBzb21lIHJlc3BvbnNlcyAqLwogfTsKIAogc3RydWN0IHNuZF9maXJld2lyZV9ldmVudF9kaWdp MDB4X21lc3NhZ2UgewpAQCAtNjMsNyArNjMsNyBAQCBzdHJ1Y3Qgc25kX2ZpcmV3aXJlX3Rhc2Nh bV9jaGFuZ2UgewogCiBzdHJ1Y3Qgc25kX2ZpcmV3aXJlX2V2ZW50X3Rhc2NhbV9jb250cm9sIHsK IAl1bnNpZ25lZCBpbnQgdHlwZTsKLQlzdHJ1Y3Qgc25kX2ZpcmV3aXJlX3Rhc2NhbV9jaGFuZ2Ug Y2hhbmdlc1swXTsKKwlzdHJ1Y3Qgc25kX2ZpcmV3aXJlX3Rhc2NhbV9jaGFuZ2UgY2hhbmdlc1td OwogfTsKIAogc3RydWN0IHNuZF9maXJld2lyZV9ldmVudF9tb3R1X3JlZ2lzdGVyX2RzcF9jaGFu Z2UgewpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL3NvdW5kL3NrbC10cGxnLWludGVyZmFjZS5o IGIvaW5jbHVkZS91YXBpL3NvdW5kL3NrbC10cGxnLWludGVyZmFjZS5oCmluZGV4IGE5M2MwZGVj ZmRkNS4uZjI5ODk5YjE3OWE2IDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvc291bmQvc2tsLXRw bGctaW50ZXJmYWNlLmgKKysrIGIvaW5jbHVkZS91YXBpL3NvdW5kL3NrbC10cGxnLWludGVyZmFj ZS5oCkBAIC0xNTEsNyArMTUxLDcgQEAgc3RydWN0IHNrbF9kZndfYWxnb19kYXRhIHsKIAlfX3Uz MiByc3ZkOjMwOwogCV9fdTMyIHBhcmFtX2lkOwogCV9fdTMyIG1heDsKLQljaGFyIHBhcmFtc1sw XTsKKwljaGFyIHBhcmFtc1tdOwogfSBfX3BhY2tlZDsKIAogZW51bSBza2xfdGtuX2RpciB7CmRp ZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvc291bmQvc29mL2hlYWRlci5oIGIvaW5jbHVkZS91YXBp L3NvdW5kL3NvZi9oZWFkZXIuaAppbmRleCA1ZjQ1MThlN2E5NzIuLmRiZjEzNzUxNjUyMiAxMDA2 NDQKLS0tIGEvaW5jbHVkZS91YXBpL3NvdW5kL3NvZi9oZWFkZXIuaAorKysgYi9pbmNsdWRlL3Vh cGkvc291bmQvc29mL2hlYWRlci5oCkBAIC0yMyw3ICsyMyw3IEBAIHN0cnVjdCBzb2ZfYWJpX2hk ciB7CiAJX191MzIgc2l6ZTsJCS8qKjwgc2l6ZSBpbiBieXRlcyBvZiBkYXRhIGV4Y2wuIHRoaXMg c3RydWN0ICovCiAJX191MzIgYWJpOwkJLyoqPCBTT0YgQUJJIHZlcnNpb24gKi8KIAlfX3UzMiBy ZXNlcnZlZFs0XTsJLyoqPCByZXNlcnZlZCBmb3IgZnV0dXJlIHVzZSAqLwotCV9fdTMyIGRhdGFb MF07CQkvKio8IENvbXBvbmVudCBkYXRhIC0gb3BhcXVlIHRvIGNvcmUgKi8KKwlfX3UzMiBkYXRh W107CQkvKio8IENvbXBvbmVudCBkYXRhIC0gb3BhcXVlIHRvIGNvcmUgKi8KIH0gIF9fcGFja2Vk OwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9zb3VuZC91c2Jfc3RyZWFtLmgg Yi9pbmNsdWRlL3VhcGkvc291bmQvdXNiX3N0cmVhbS5oCmluZGV4IDk1NDE5ZDhiYmMxNi4uZmZk ZDNlYTFlMzFkIDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvc291bmQvdXNiX3N0cmVhbS5oCisr KyBiL2luY2x1ZGUvdWFwaS9zb3VuZC91c2Jfc3RyZWFtLmgKQEAgLTYxLDcgKzYxLDcgQEAgc3Ry dWN0IHVzYl9zdHJlYW0gewogCXVuc2lnbmVkCQkgaW5wYWNrZXRfc3BsaXRfYXQ7CiAJdW5zaWdu ZWQJCSBuZXh0X2lucGFja2V0X3NwbGl0OwogCXVuc2lnbmVkCQkgbmV4dF9pbnBhY2tldF9zcGxp dF9hdDsKLQlzdHJ1Y3QgdXNiX3N0cmVhbV9wYWNrZXQgaW5wYWNrZXRbMF07CisJc3RydWN0IHVz Yl9zdHJlYW1fcGFja2V0IGlucGFja2V0W107CiB9OwogCiBlbnVtIHVzYl9zdHJlYW1fc3RhdGUg ewpkaWZmIC0tZ2l0IGEvdG9vbHMvYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9rdm0uaCBiL3Rv b2xzL2FyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20va3ZtLmgKaW5kZXggYmY2ZTk2MDExZGZlLi5l MTM1ZjRkY2IxOWQgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2FyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20v a3ZtLmgKKysrIGIvdG9vbHMvYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9rdm0uaApAQCAtMTk4 LDEzICsxOTgsMTMgQEAgc3RydWN0IGt2bV9tc3JzIHsKIAlfX3UzMiBubXNyczsgLyogbnVtYmVy IG9mIG1zcnMgaW4gZW50cmllcyAqLwogCV9fdTMyIHBhZDsKIAotCXN0cnVjdCBrdm1fbXNyX2Vu dHJ5IGVudHJpZXNbMF07CisJc3RydWN0IGt2bV9tc3JfZW50cnkgZW50cmllc1tdOwogfTsKIAog LyogZm9yIEtWTV9HRVRfTVNSX0lOREVYX0xJU1QgKi8KIHN0cnVjdCBrdm1fbXNyX2xpc3Qgewog CV9fdTMyIG5tc3JzOyAvKiBudW1iZXIgb2YgbXNycyBpbiBlbnRyaWVzICovCi0JX191MzIgaW5k aWNlc1swXTsKKwlfX3UzMiBpbmRpY2VzW107CiB9OwogCiAvKiBNYXhpbXVtIHNpemUgb2YgYW55 IGFjY2VzcyBiaXRtYXAgaW4gYnl0ZXMgKi8KQEAgLTI0MSw3ICsyNDEsNyBAQCBzdHJ1Y3Qga3Zt X2NwdWlkX2VudHJ5IHsKIHN0cnVjdCBrdm1fY3B1aWQgewogCV9fdTMyIG5lbnQ7CiAJX191MzIg cGFkZGluZzsKLQlzdHJ1Y3Qga3ZtX2NwdWlkX2VudHJ5IGVudHJpZXNbMF07CisJc3RydWN0IGt2 bV9jcHVpZF9lbnRyeSBlbnRyaWVzW107CiB9OwogCiBzdHJ1Y3Qga3ZtX2NwdWlkX2VudHJ5MiB7 CkBAIC0yNjMsNyArMjYzLDcgQEAgc3RydWN0IGt2bV9jcHVpZF9lbnRyeTIgewogc3RydWN0IGt2 bV9jcHVpZDIgewogCV9fdTMyIG5lbnQ7CiAJX191MzIgcGFkZGluZzsKLQlzdHJ1Y3Qga3ZtX2Nw dWlkX2VudHJ5MiBlbnRyaWVzWzBdOworCXN0cnVjdCBrdm1fY3B1aWRfZW50cnkyIGVudHJpZXNb XTsKIH07CiAKIC8qIGZvciBLVk1fR0VUX1BJVCBhbmQgS1ZNX1NFVF9QSVQgKi8KQEAgLTM4OSw3 ICszODksNyBAQCBzdHJ1Y3Qga3ZtX3hzYXZlIHsKIAkgKiB0aGUgY29udGVudHMgb2YgQ1BVSUQg bGVhZiAweEQgb24gdGhlIGhvc3QuCiAJICovCiAJX191MzIgcmVnaW9uWzEwMjRdOwotCV9fdTMy IGV4dHJhWzBdOworCV9fdTMyIGV4dHJhW107CiB9OwogCiAjZGVmaW5lIEtWTV9NQVhfWENSUwkx NgpAQCAtNTE1LDcgKzUxNSw3IEBAIHN0cnVjdCBrdm1fcG11X2V2ZW50X2ZpbHRlciB7CiAJX191 MzIgZml4ZWRfY291bnRlcl9iaXRtYXA7CiAJX191MzIgZmxhZ3M7CiAJX191MzIgcGFkWzRdOwot CV9fdTY0IGV2ZW50c1swXTsKKwlfX3U2NCBldmVudHNbXTsKIH07CiAKICNkZWZpbmUgS1ZNX1BN VV9FVkVOVF9BTExPVyAwCmRpZmYgLS1naXQgYS90b29scy9pbmNsdWRlL3VhcGkvZHJtL2k5MTVf ZHJtLmggYi90b29scy9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgKaW5kZXggMDVjMzY0MmFh ZWNlLi4yMzliOTFiMTNjNjAgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2luY2x1ZGUvdWFwaS9kcm0vaTkx NV9kcm0uaAorKysgYi90b29scy9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgKQEAgLTIwNjAs NyArMjA2MCw3IEBAIHN0cnVjdCBpOTE1X2NvbnRleHRfZW5naW5lc19sb2FkX2JhbGFuY2Ugewog CiAJX191NjQgbWJ6NjQ7IC8qIHJlc2VydmVkIGZvciBmdXR1cmUgdXNlOyBtdXN0IGJlIHplcm8g Ki8KIAotCXN0cnVjdCBpOTE1X2VuZ2luZV9jbGFzc19pbnN0YW5jZSBlbmdpbmVzWzBdOworCXN0 cnVjdCBpOTE1X2VuZ2luZV9jbGFzc19pbnN0YW5jZSBlbmdpbmVzW107CiB9IF9fYXR0cmlidXRl X18oKHBhY2tlZCkpOwogCiAjZGVmaW5lIEk5MTVfREVGSU5FX0NPTlRFWFRfRU5HSU5FU19MT0FE X0JBTEFOQ0UobmFtZV9fLCBOX18pIHN0cnVjdCB7IFwKQEAgLTIwOTgsNyArMjA5OCw3IEBAIHN0 cnVjdCBpOTE1X2NvbnRleHRfZW5naW5lc19ib25kIHsKIAlfX3U2NCBmbGFnczsgLyogYWxsIHVu ZGVmaW5lZCBmbGFncyBtdXN0IGJlIHplcm8gKi8KIAlfX3U2NCBtYno2NFs0XTsgLyogcmVzZXJ2 ZWQgZm9yIGZ1dHVyZSB1c2U7IG11c3QgYmUgemVybyAqLwogCi0Jc3RydWN0IGk5MTVfZW5naW5l X2NsYXNzX2luc3RhbmNlIGVuZ2luZXNbMF07CisJc3RydWN0IGk5MTVfZW5naW5lX2NsYXNzX2lu c3RhbmNlIGVuZ2luZXNbXTsKIH0gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CiAKICNkZWZpbmUg STkxNV9ERUZJTkVfQ09OVEVYVF9FTkdJTkVTX0JPTkQobmFtZV9fLCBOX18pIHN0cnVjdCB7IFwK QEAgLTIyMjUsNyArMjIyNSw3IEBAIHN0cnVjdCBpOTE1X2NvbnRleHRfZW5naW5lc19wYXJhbGxl bF9zdWJtaXQgewogCSAqIGxlbmd0aCA9IHdpZHRoIChpKSAqIG51bV9zaWJsaW5ncyAoaikKIAkg KiBpbmRleCA9IGogKyBpICogbnVtX3NpYmxpbmdzCiAJICovCi0Jc3RydWN0IGk5MTVfZW5naW5l X2NsYXNzX2luc3RhbmNlIGVuZ2luZXNbMF07CisJc3RydWN0IGk5MTVfZW5naW5lX2NsYXNzX2lu c3RhbmNlIGVuZ2luZXNbXTsKIAogfSBfX3BhY2tlZDsKIApkaWZmIC0tZ2l0IGEvdG9vbHMvaW5j bHVkZS91YXBpL2xpbnV4L2JwZi5oIGIvdG9vbHMvaW5jbHVkZS91YXBpL2xpbnV4L2JwZi5oCmlu ZGV4IGY0MDA5ZGJkZjYyZC4uZTRiMzNiYTA2ZjAwIDEwMDY0NAotLS0gYS90b29scy9pbmNsdWRl L3VhcGkvbGludXgvYnBmLmgKKysrIGIvdG9vbHMvaW5jbHVkZS91YXBpL2xpbnV4L2JwZi5oCkBA IC03OSw3ICs3OSw3IEBAIHN0cnVjdCBicGZfaW5zbiB7CiAvKiBLZXkgb2YgYW4gYSBCUEZfTUFQ X1RZUEVfTFBNX1RSSUUgZW50cnkgKi8KIHN0cnVjdCBicGZfbHBtX3RyaWVfa2V5IHsKIAlfX3Uz MglwcmVmaXhsZW47CS8qIHVwIHRvIDMyIGZvciBBRl9JTkVULCAxMjggZm9yIEFGX0lORVQ2ICov Ci0JX191OAlkYXRhWzBdOwkvKiBBcmJpdHJhcnkgc2l6ZSAqLworCV9fdTgJZGF0YVtdOwkvKiBB cmJpdHJhcnkgc2l6ZSAqLwogfTsKIAogc3RydWN0IGJwZl9jZ3JvdXBfc3RvcmFnZV9rZXkgewpk aWZmIC0tZ2l0IGEvdG9vbHMvaW5jbHVkZS91YXBpL2xpbnV4L2ZzLmggYi90b29scy9pbmNsdWRl L3VhcGkvbGludXgvZnMuaAppbmRleCBiZGY3YjQwNGIzZTcuLmI3YjU2ODcxMDI5YyAxMDA2NDQK LS0tIGEvdG9vbHMvaW5jbHVkZS91YXBpL2xpbnV4L2ZzLmgKKysrIGIvdG9vbHMvaW5jbHVkZS91 YXBpL2xpbnV4L2ZzLmgKQEAgLTkwLDcgKzkwLDcgQEAgc3RydWN0IGZpbGVfZGVkdXBlX3Jhbmdl IHsKIAlfX3UxNiBkZXN0X2NvdW50OwkvKiBpbiAtIHRvdGFsIGVsZW1lbnRzIGluIGluZm8gYXJy YXkgKi8KIAlfX3UxNiByZXNlcnZlZDE7CS8qIG11c3QgYmUgemVybyAqLwogCV9fdTMyIHJlc2Vy dmVkMjsJLyogbXVzdCBiZSB6ZXJvICovCi0Jc3RydWN0IGZpbGVfZGVkdXBlX3JhbmdlX2luZm8g aW5mb1swXTsKKwlzdHJ1Y3QgZmlsZV9kZWR1cGVfcmFuZ2VfaW5mbyBpbmZvW107CiB9OwogCiAv KiBBbmQgZHluYW1pY2FsbHktdHVuYWJsZSBsaW1pdHMgYW5kIGRlZmF1bHRzOiAqLwpkaWZmIC0t Z2l0IGEvdG9vbHMvaW5jbHVkZS91YXBpL2xpbnV4L2lmX3R1bi5oIGIvdG9vbHMvaW5jbHVkZS91 YXBpL2xpbnV4L2lmX3R1bi5oCmluZGV4IDQ1NGFlMzFiOTNjNy4uMmVjMDdkZTFkNzNiIDEwMDY0 NAotLS0gYS90b29scy9pbmNsdWRlL3VhcGkvbGludXgvaWZfdHVuLmgKKysrIGIvdG9vbHMvaW5j bHVkZS91YXBpL2xpbnV4L2lmX3R1bi5oCkBAIC0xMDgsNyArMTA4LDcgQEAgc3RydWN0IHR1bl9w aSB7CiBzdHJ1Y3QgdHVuX2ZpbHRlciB7CiAJX191MTYgIGZsYWdzOyAvKiBUVU5fRkxUXyBmbGFn cyBzZWUgYWJvdmUgKi8KIAlfX3UxNiAgY291bnQ7IC8qIE51bWJlciBvZiBhZGRyZXNzZXMgKi8K LQlfX3U4ICAgYWRkclswXVtFVEhfQUxFTl07CisJX191OCAgIGFkZHJbXVtFVEhfQUxFTl07CiB9 OwogCiAjZW5kaWYgLyogX1VBUElfX0lGX1RVTl9IICovCmRpZmYgLS1naXQgYS90b29scy9pbmNs dWRlL3VhcGkvbGludXgva3ZtLmggYi90b29scy9pbmNsdWRlL3VhcGkvbGludXgva3ZtLmgKaW5k ZXggNmExODRkMjYwYzdmLi4zN2NlOGNiYWMzMjIgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2luY2x1ZGUv dWFwaS9saW51eC9rdm0uaAorKysgYi90b29scy9pbmNsdWRlL3VhcGkvbGludXgva3ZtLmgKQEAg LTUzOSw3ICs1MzksNyBAQCBzdHJ1Y3Qga3ZtX2NvYWxlc2NlZF9tbWlvIHsKIAogc3RydWN0IGt2 bV9jb2FsZXNjZWRfbW1pb19yaW5nIHsKIAlfX3UzMiBmaXJzdCwgbGFzdDsKLQlzdHJ1Y3Qga3Zt X2NvYWxlc2NlZF9tbWlvIGNvYWxlc2NlZF9tbWlvWzBdOworCXN0cnVjdCBrdm1fY29hbGVzY2Vk X21taW8gY29hbGVzY2VkX21taW9bXTsKIH07CiAKICNkZWZpbmUgS1ZNX0NPQUxFU0NFRF9NTUlP X01BWCBcCkBAIC02MTgsNyArNjE4LDcgQEAgc3RydWN0IGt2bV9jbGVhcl9kaXJ0eV9sb2cgewog LyogZm9yIEtWTV9TRVRfU0lHTkFMX01BU0sgKi8KIHN0cnVjdCBrdm1fc2lnbmFsX21hc2sgewog CV9fdTMyIGxlbjsKLQlfX3U4ICBzaWdzZXRbMF07CisJX191OCAgc2lnc2V0W107CiB9OwogCiAv KiBmb3IgS1ZNX1RQUl9BQ0NFU1NfUkVQT1JUSU5HICovCkBAIC0xMjE2LDcgKzEyMTYsNyBAQCBz dHJ1Y3Qga3ZtX2lycV9yb3V0aW5nX2VudHJ5IHsKIHN0cnVjdCBrdm1faXJxX3JvdXRpbmcgewog CV9fdTMyIG5yOwogCV9fdTMyIGZsYWdzOwotCXN0cnVjdCBrdm1faXJxX3JvdXRpbmdfZW50cnkg ZW50cmllc1swXTsKKwlzdHJ1Y3Qga3ZtX2lycV9yb3V0aW5nX2VudHJ5IGVudHJpZXNbXTsKIH07 CiAKICNlbmRpZgpAQCAtMTMzNSw3ICsxMzM1LDcgQEAgc3RydWN0IGt2bV9kaXJ0eV90bGIgewog CiBzdHJ1Y3Qga3ZtX3JlZ19saXN0IHsKIAlfX3U2NCBuOyAvKiBudW1iZXIgb2YgcmVncyAqLwot CV9fdTY0IHJlZ1swXTsKKwlfX3U2NCByZWdbXTsKIH07CiAKIHN0cnVjdCBrdm1fb25lX3JlZyB7 CmRpZmYgLS1naXQgYS90b29scy9pbmNsdWRlL3VhcGkvbGludXgvcGVyZl9ldmVudC5oIGIvdG9v bHMvaW5jbHVkZS91YXBpL2xpbnV4L3BlcmZfZXZlbnQuaAppbmRleCBkMzc2MjlkYmFkNzIuLjQ2 NTM4MzRmMDc4ZiAxMDA2NDQKLS0tIGEvdG9vbHMvaW5jbHVkZS91YXBpL2xpbnV4L3BlcmZfZXZl bnQuaAorKysgYi90b29scy9pbmNsdWRlL3VhcGkvbGludXgvcGVyZl9ldmVudC5oCkBAIC00OTEs NyArNDkxLDcgQEAgc3RydWN0IHBlcmZfZXZlbnRfcXVlcnlfYnBmIHsKIAkvKgogCSAqIFVzZXIg cHJvdmlkZWQgYnVmZmVyIHRvIHN0b3JlIHByb2dyYW0gaWRzCiAJICovCi0JX191MzIJaWRzWzBd OworCV9fdTMyCWlkc1tdOwogfTsKIAogLyoKZGlmZiAtLWdpdCBhL3Rvb2xzL2luY2x1ZGUvdWFw aS9saW51eC9wa3RfY2xzLmggYi90b29scy9pbmNsdWRlL3VhcGkvbGludXgvcGt0X2Nscy5oCmlu ZGV4IDEyMTUzNzcxMzk2YS4uM2ZhZWUwMTk5YTliIDEwMDY0NAotLS0gYS90b29scy9pbmNsdWRl L3VhcGkvbGludXgvcGt0X2Nscy5oCisrKyBiL3Rvb2xzL2luY2x1ZGUvdWFwaS9saW51eC9wa3Rf Y2xzLmgKQEAgLTE4MCw3ICsxODAsNyBAQCBzdHJ1Y3QgdGNfdTMyX3NlbCB7CiAKIAlzaG9ydAkJ CWhvZmY7CiAJX19iZTMyCQkJaG1hc2s7Ci0Jc3RydWN0IHRjX3UzMl9rZXkJa2V5c1swXTsKKwlz dHJ1Y3QgdGNfdTMyX2tleQlrZXlzW107CiB9OwogCiBzdHJ1Y3QgdGNfdTMyX21hcmsgewpAQCAt MTkyLDcgKzE5Miw3IEBAIHN0cnVjdCB0Y191MzJfbWFyayB7CiBzdHJ1Y3QgdGNfdTMyX3BjbnQg ewogCV9fdTY0IHJjbnQ7CiAJX191NjQgcmhpdDsKLQlfX3U2NCBrY250c1swXTsKKwlfX3U2NCBr Y250c1tdOwogfTsKIAogLyogRmxhZ3MgKi8KZGlmZiAtLWdpdCBhL3Rvb2xzL2luY2x1ZGUvdWFw aS9saW51eC9zZWc2LmggYi90b29scy9pbmNsdWRlL3VhcGkvbGludXgvc2VnNi5oCmluZGV4IDI4 NmU4ZDZhOGU5OC4uZjk0YmFmMTU0YzQ3IDEwMDY0NAotLS0gYS90b29scy9pbmNsdWRlL3VhcGkv bGludXgvc2VnNi5oCisrKyBiL3Rvb2xzL2luY2x1ZGUvdWFwaS9saW51eC9zZWc2LmgKQEAgLTMw LDcgKzMwLDcgQEAgc3RydWN0IGlwdjZfc3JfaGRyIHsKIAlfX3U4CWZsYWdzOwogCV9fdTE2CXRh ZzsKIAotCXN0cnVjdCBpbjZfYWRkciBzZWdtZW50c1swXTsKKwlzdHJ1Y3QgaW42X2FkZHIgc2Vn bWVudHNbXTsKIH07CiAKICNkZWZpbmUgU1I2X0ZMQUcxX1BST1RFQ1RFRAkoMSA8PCA2KQpAQCAt NDksNyArNDksNyBAQCBzdHJ1Y3QgaXB2Nl9zcl9oZHIgewogc3RydWN0IHNyNl90bHYgewogCV9f dTggdHlwZTsKIAlfX3U4IGxlbjsKLQlfX3U4IGRhdGFbMF07CisJX191OCBkYXRhW107CiB9Owog CiAjZW5kaWYKZGlmZiAtLWdpdCBhL3Rvb2xzL2luY2x1ZGUvdWFwaS9saW51eC91c2JkZXZpY2Vf ZnMuaCBiL3Rvb2xzL2luY2x1ZGUvdWFwaS9saW51eC91c2JkZXZpY2VfZnMuaAppbmRleCBjZjUy NWNkZGViOTQuLjc0YTg0ZTAyNDIyYSAxMDA2NDQKLS0tIGEvdG9vbHMvaW5jbHVkZS91YXBpL2xp bnV4L3VzYmRldmljZV9mcy5oCisrKyBiL3Rvb2xzL2luY2x1ZGUvdWFwaS9saW51eC91c2JkZXZp Y2VfZnMuaApAQCAtMTMxLDcgKzEzMSw3IEBAIHN0cnVjdCB1c2JkZXZmc191cmIgewogCXVuc2ln bmVkIGludCBzaWducjsJLyogc2lnbmFsIHRvIGJlIHNlbnQgb24gY29tcGxldGlvbiwKIAkJCQkg IG9yIDAgaWYgbm9uZSBzaG91bGQgYmUgc2VudC4gKi8KIAl2b2lkIF9fdXNlciAqdXNlcmNvbnRl eHQ7Ci0Jc3RydWN0IHVzYmRldmZzX2lzb19wYWNrZXRfZGVzYyBpc29fZnJhbWVfZGVzY1swXTsK KwlzdHJ1Y3QgdXNiZGV2ZnNfaXNvX3BhY2tldF9kZXNjIGlzb19mcmFtZV9kZXNjW107CiB9Owog CiAvKiBpb2N0bHMgZm9yIHRhbGtpbmcgZGlyZWN0bHkgdG8gZHJpdmVycyAqLwpAQCAtMTc2LDcg KzE3Niw3IEBAIHN0cnVjdCB1c2JkZXZmc19kaXNjb25uZWN0X2NsYWltIHsKIHN0cnVjdCB1c2Jk ZXZmc19zdHJlYW1zIHsKIAl1bnNpZ25lZCBpbnQgbnVtX3N0cmVhbXM7IC8qIE5vdCB1c2VkIGJ5 IFVTQkRFVkZTX0ZSRUVfU1RSRUFNUyAqLwogCXVuc2lnbmVkIGludCBudW1fZXBzOwotCXVuc2ln bmVkIGNoYXIgZXBzWzBdOworCXVuc2lnbmVkIGNoYXIgZXBzW107CiB9OwogCiAvKgpkaWZmIC0t Z2l0IGEvdG9vbHMvaW5jbHVkZS91YXBpL3NvdW5kL2Fzb3VuZC5oIGIvdG9vbHMvaW5jbHVkZS91 YXBpL3NvdW5kL2Fzb3VuZC5oCmluZGV4IDJkM2U1ZGYzOWE1OS4uMzk3NGEyYTkxMWNjIDEwMDY0 NAotLS0gYS90b29scy9pbmNsdWRlL3VhcGkvc291bmQvYXNvdW5kLmgKKysrIGIvdG9vbHMvaW5j bHVkZS91YXBpL3NvdW5kL2Fzb3VuZC5oCkBAIC0xMTA2LDcgKzExMDYsNyBAQCBzdHJ1Y3Qgc25k X2N0bF9lbGVtX3ZhbHVlIHsKIHN0cnVjdCBzbmRfY3RsX3RsdiB7CiAJdW5zaWduZWQgaW50IG51 bWlkOwkvKiBjb250cm9sIGVsZW1lbnQgbnVtZXJpYyBpZGVudGlmaWNhdGlvbiAqLwogCXVuc2ln bmVkIGludCBsZW5ndGg7CS8qIGluIGJ5dGVzIGFsaWduZWQgdG8gNCAqLwotCXVuc2lnbmVkIGlu dCB0bHZbMF07CS8qIGZpcnN0IFRMViAqLworCXVuc2lnbmVkIGludCB0bHZbXTsJLyogZmlyc3Qg VExWICovCiB9OwogCiAjZGVmaW5lIFNORFJWX0NUTF9JT0NUTF9QVkVSU0lPTglfSU9SKCdVJywg MHgwMCwgaW50KQotLSAKMi4yNy4wCgotLQpkbS1kZXZlbCBtYWlsaW5nIGxpc3QKZG0tZGV2ZWxA cmVkaGF0LmNvbQpodHRwczovL2xpc3RtYW4ucmVkaGF0LmNvbS9tYWlsbWFuL2xpc3RpbmZvL2Rt LWRldmVsCg== 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 2AC8EC43334 for ; Mon, 27 Jun 2022 18:06:01 +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:MIME-Version:Message-ID:Subject:Cc:To: From:Date:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=vu8DGHjpBw823Xo3ynfxrHZ0ah8Kjyl7pMz19/yxmLM=; b=AsL5WEIkxPvw2Q GwDU6gsb1r3DVBeIoRNjmRQTVQChn7FYE0fjxe+yUbo6q3NEoMuGCH7CeQGQNj+WRQRnT1LVdfp9X DhynxjaCLMJB72UrbL4/SmsFVyS6NjE4Nzv47GfCPR08sv8V0jzq6WhQiKBzq/2W25unifk5//w1d i3Bj3ycFOEWRG6gV0Sthq8Z8gX+a7AdWXb0U78R4h7dwnO3vPgetHU6tNNCwcnrlUZ6JPDrd27KAo +r6OwsVSJHNCJbStkcqkbT/A8271ZOvb15or9mfcGb3LBCt/4YciHcc5rK10c3KsivdPe2be+gbmw 8Ba4M0ba6EQenZN5wJGA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1o5t6W-002K9q-Oc; Mon, 27 Jun 2022 18:04:56 +0000 Received: from dfw.source.kernel.org ([2604:1380:4641:c500::1]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1o5t6F-002K17-8Q; Mon, 27 Jun 2022 18:04:44 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 04A5661526; Mon, 27 Jun 2022 18:04:38 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8180FC3411D; Mon, 27 Jun 2022 18:04:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1656353077; bh=zSKczzoHL+2IPAqWZ9stqX2VHIHei/r/jrczBmwH9KU=; h=Date:From:To:Cc:Subject:From; b=q4QOvRQefEcEjVVyAOahSkl46FyS0ej/BwQljX3V/tEKW1uJvemX2PdsUwiHIg7Sg YDvtmL1JtX3dS9wnyairzCKocYShwtXmeFooQK1pBYjn0nU4z5GMa7xfMTPk9cb7bZ jq6bOTrXMM1fFJRFxq0d/LZbAXmOH7I5TzmvJulBRQhyvpEa+2cET2cbtmn8IEBTzX IJ/jwM+A03aTQybuDDzJkgT9kZdGiiMxL8m60Hs9fUzbhF3UmW19Co1BmWRKOIL45X b4fYE8tW8QLzqs8PmvUF0KHkgY40QgL+2QS5U7UxNoKp+TFhXR4rbYyFY2Ts7D6y3R dm+wxbun+jboQ== Date: Mon, 27 Jun 2022 20:04:32 +0200 From: "Gustavo A. R. Silva" To: Kees Cook , linux-kernel@vger.kernel.org Cc: x86@kernel.org, dm-devel@redhat.com, linux-m68k@lists.linux-m68k.org, linux-mips@vger.kernel.org, linux-s390@vger.kernel.org, kvm@vger.kernel.org, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, netdev@vger.kernel.org, bpf@vger.kernel.org, linux-btrfs@vger.kernel.org, linux-can@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux1394-devel@lists.sourceforge.net, io-uring@vger.kernel.org, lvs-devel@vger.kernel.org, linux-mtd@lists.infradead.org, kasan-dev@googlegroups.com, linux-mmc@vger.kernel.org, nvdimm@lists.linux.dev, netfilter-devel@vger.kernel.org, coreteam@netfilter.org, linux-perf-users@vger.kernel.org, linux-raid@vger.kernel.org, linux-sctp@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, linux-scsi@vger.kernel.org, target-devel@vger.kernel.org, linux-usb@vger.kernel.org, virtualization@lists.linux-foundation.org, v9fs-developer@lists.sourceforge.net, linux-rdma@vger.kernel.org, alsa-devel@alsa-project.org, "Gustavo A. R. Silva" , linux-hardening@vger.kernel.org Subject: [PATCH][next] treewide: uapi: Replace zero-length arrays with flexible-array members Message-ID: <20220627180432.GA136081@embeddedor> MIME-Version: 1.0 Content-Disposition: inline X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220627_110439_538232_ED7C4A4C X-CRM114-Status: GOOD ( 21.79 ) X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-mtd" Errors-To: linux-mtd-bounces+linux-mtd=archiver.kernel.org@lists.infradead.org VGhlcmUgaXMgYSByZWd1bGFyIG5lZWQgaW4gdGhlIGtlcm5lbCB0byBwcm92aWRlIGEgd2F5IHRv IGRlY2xhcmUKaGF2aW5nIGEgZHluYW1pY2FsbHkgc2l6ZWQgc2V0IG9mIHRyYWlsaW5nIGVsZW1l bnRzIGluIGEgc3RydWN0dXJlLgpLZXJuZWwgY29kZSBzaG91bGQgYWx3YXlzIHVzZSDigJxmbGV4 aWJsZSBhcnJheSBtZW1iZXJz4oCdWzFdIGZvciB0aGVzZQpjYXNlcy4gVGhlIG9sZGVyIHN0eWxl IG9mIG9uZS1lbGVtZW50IG9yIHplcm8tbGVuZ3RoIGFycmF5cyBzaG91bGQKbm8gbG9uZ2VyIGJl IHVzZWRbMl0uCgpUaGlzIGNvZGUgd2FzIHRyYW5zZm9ybWVkIHdpdGggdGhlIGhlbHAgb2YgQ29j Y2luZWxsZToKKGxpbnV4LTUuMTktcmMyJCBzcGF0Y2ggLS1qb2JzICQoZ2V0Y29uZiBfTlBST0NF U1NPUlNfT05MTikgLS1zcC1maWxlIHNjcmlwdC5jb2NjaSAtLWluY2x1ZGUtaGVhZGVycyAtLWRp ciAuID4gb3V0cHV0LnBhdGNoKQoKQEAKaWRlbnRpZmllciBTLCBtZW1iZXIsIGFycmF5Owp0eXBl IFQxLCBUMjsKQEAKCnN0cnVjdCBTIHsKICAuLi4KICBUMSBtZW1iZXI7CiAgVDIgYXJyYXlbCi0g MAogIF07Cn07CgotZnN0cmljdC1mbGV4LWFycmF5cz0zIGlzIGNvbWluZyBhbmQgd2UgbmVlZCB0 byBsYW5kIHRoZXNlIGNoYW5nZXMKdG8gcHJldmVudCBpc3N1ZXMgbGlrZSB0aGVzZSBpbiB0aGUg c2hvcnQgZnV0dXJlOgoKLi4vZnMvbWluaXgvZGlyLmM6MzM3OjM6IHdhcm5pbmc6ICdzdHJjcHkn IHdpbGwgYWx3YXlzIG92ZXJmbG93OyBkZXN0aW5hdGlvbiBidWZmZXIgaGFzIHNpemUgMCwKYnV0 IHRoZSBzb3VyY2Ugc3RyaW5nIGhhcyBsZW5ndGggMiAoaW5jbHVkaW5nIE5VTCBieXRlKSBbLVdm b3J0aWZ5LXNvdXJjZV0KCQlzdHJjcHkoZGUzLT5uYW1lLCAiLiIpOwoJCV4KClNpbmNlIHRoZXNl IGFyZSBhbGwgWzBdIHRvIFtdIGNoYW5nZXMsIHRoZSByaXNrIHRvIFVBUEkgaXMgbmVhcmx5IHpl cm8uIElmCnRoaXMgYnJlYWtzIGFueXRoaW5nLCB3ZSBjYW4gdXNlIGEgdW5pb24gd2l0aCBhIG5l dyBtZW1iZXIgbmFtZS4KClsxXSBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9GbGV4aWJs ZV9hcnJheV9tZW1iZXIKWzJdIGh0dHBzOi8vd3d3Lmtlcm5lbC5vcmcvZG9jL2h0bWwvdjUuMTYv cHJvY2Vzcy9kZXByZWNhdGVkLmh0bWwjemVyby1sZW5ndGgtYW5kLW9uZS1lbGVtZW50LWFycmF5 cwoKTGluazogaHR0cHM6Ly9naXRodWIuY29tL0tTUFAvbGludXgvaXNzdWVzLzc4CkJ1aWxkLXRl c3RlZC1ieTogaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvbGttbC82MmI2NzVlYy53S1g2QU9aNmNi RTcxdnRGJTI1bGtwQGludGVsLmNvbS8KU2lnbmVkLW9mZi1ieTogR3VzdGF2byBBLiBSLiBTaWx2 YSA8Z3VzdGF2b2Fyc0BrZXJuZWwub3JnPgotLS0KSGkgYWxsIQoKSkZZSTogSSdtIGFkZGluZyB0 aGlzIHRvIG15IC1uZXh0IHRyZWUuIDopCgogYXJjaC9tNjhrL2luY2x1ZGUvdWFwaS9hc20vYm9v dGluZm8uaCAgICAgICAgIHwgIDQgKy0KIGFyY2gvbWlwcy9pbmNsdWRlL3VhcGkvYXNtL3Vjb250 ZXh0LmggICAgICAgICB8ICAyICstCiBhcmNoL3MzOTAvaW5jbHVkZS91YXBpL2FzbS9od2N0cnNl dC5oICAgICAgICAgfCAgNiArLQogYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9ib290cGFyYW0u aCAgICAgICAgIHwgIDIgKy0KIGFyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20va3ZtLmggICAgICAg ICAgICAgICB8IDEyICsrLS0KIGluY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaCAgICAgICAgICAg ICAgICAgICB8ICA2ICstCiBpbmNsdWRlL3VhcGkvbGludXgvYmxrem9uZWQuaCAgICAgICAgICAg ICAgICAgfCAgMiArLQogaW5jbHVkZS91YXBpL2xpbnV4L2JwZi5oICAgICAgICAgICAgICAgICAg ICAgIHwgIDIgKy0KIGluY2x1ZGUvdWFwaS9saW51eC9idHJmcy5oICAgICAgICAgICAgICAgICAg ICB8IDEwICstLQogaW5jbHVkZS91YXBpL2xpbnV4L2J0cmZzX3RyZWUuaCAgICAgICAgICAgICAg IHwgIDIgKy0KIGluY2x1ZGUvdWFwaS9saW51eC9jYW4vYmNtLmggICAgICAgICAgICAgICAgICB8 ICAyICstCiBpbmNsdWRlL3VhcGkvbGludXgvY29ubmVjdG9yLmggICAgICAgICAgICAgICAgfCAg MiArLQogaW5jbHVkZS91YXBpL2xpbnV4L2N5Y3hfY2ZtLmggICAgICAgICAgICAgICAgIHwgIDIg Ky0KIGluY2x1ZGUvdWFwaS9saW51eC9kbS1pb2N0bC5oICAgICAgICAgICAgICAgICB8ICA4ICst LQogaW5jbHVkZS91YXBpL2xpbnV4L2RtLWxvZy11c2Vyc3BhY2UuaCAgICAgICAgIHwgIDIgKy0K IGluY2x1ZGUvdWFwaS9saW51eC9ldGh0b29sLmggICAgICAgICAgICAgICAgICB8IDI4ICsrKyst LS0tCiBpbmNsdWRlL3VhcGkvbGludXgvZmFub3RpZnkuaCAgICAgICAgICAgICAgICAgfCAgMiAr LQogaW5jbHVkZS91YXBpL2xpbnV4L2ZpZW1hcC5oICAgICAgICAgICAgICAgICAgIHwgIDIgKy0K IGluY2x1ZGUvdWFwaS9saW51eC9maXJld2lyZS1jZGV2LmggICAgICAgICAgICB8IDEyICsrLS0K IGluY2x1ZGUvdWFwaS9saW51eC9mcy5oICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBp bmNsdWRlL3VhcGkvbGludXgvaWZfYWxnLmggICAgICAgICAgICAgICAgICAgfCAgMiArLQogaW5j bHVkZS91YXBpL2xpbnV4L2lmX2FyY25ldC5oICAgICAgICAgICAgICAgIHwgIDYgKy0KIGluY2x1 ZGUvdWFwaS9saW51eC9pZl9wcHBveC5oICAgICAgICAgICAgICAgICB8ICA0ICstCiBpbmNsdWRl L3VhcGkvbGludXgvaWZfdHVuLmggICAgICAgICAgICAgICAgICAgfCAgMiArLQogaW5jbHVkZS91 YXBpL2xpbnV4L2lnbXAuaCAgICAgICAgICAgICAgICAgICAgIHwgIDYgKy0KIGluY2x1ZGUvdWFw aS9saW51eC9pbmV0X2RpYWcuaCAgICAgICAgICAgICAgICB8ICAyICstCiBpbmNsdWRlL3VhcGkv bGludXgvaW5vdGlmeS5oICAgICAgICAgICAgICAgICAgfCAgMiArLQogaW5jbHVkZS91YXBpL2xp bnV4L2lvX3VyaW5nLmggICAgICAgICAgICAgICAgIHwgIDIgKy0KIGluY2x1ZGUvdWFwaS9saW51 eC9pcC5oICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICstCiBpbmNsdWRlL3VhcGkvbGludXgv aXBfdnMuaCAgICAgICAgICAgICAgICAgICAgfCAgNCArLQogaW5jbHVkZS91YXBpL2xpbnV4L2lz b19mcy5oICAgICAgICAgICAgICAgICAgIHwgIDQgKy0KIGluY2x1ZGUvdWFwaS9saW51eC9qZmZz Mi5oICAgICAgICAgICAgICAgICAgICB8ICA4ICstLQogaW5jbHVkZS91YXBpL2xpbnV4L2tjb3Yu aCAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGluY2x1ZGUvdWFwaS9saW51eC9rdm0uaCAg ICAgICAgICAgICAgICAgICAgICB8ICA4ICstLQogaW5jbHVkZS91YXBpL2xpbnV4L21pbml4X2Zz LmggICAgICAgICAgICAgICAgIHwgIDQgKy0KIGluY2x1ZGUvdWFwaS9saW51eC9tbWMvaW9jdGwu aCAgICAgICAgICAgICAgICB8ICAyICstCiBpbmNsdWRlL3VhcGkvbGludXgvbmRjdGwuaCAgICAg ICAgICAgICAgICAgICAgfCAxMCArLS0KIGluY2x1ZGUvdWFwaS9saW51eC9uZXRfZHJvcG1vbi5o ICAgICAgICAgICAgICB8ICA0ICstCiBpbmNsdWRlL3VhcGkvbGludXgvbmV0ZmlsdGVyL3hfdGFi bGVzLmggICAgICAgfCAgNCArLQogaW5jbHVkZS91YXBpL2xpbnV4L25ldGZpbHRlcl9hcnAvYXJw X3RhYmxlcy5oIHwgIDYgKy0KIC4uLi91YXBpL2xpbnV4L25ldGZpbHRlcl9icmlkZ2UvZWJ0X2Ft b25nLmggICB8ICAyICstCiBpbmNsdWRlL3VhcGkvbGludXgvbmV0ZmlsdGVyX2lwdjQvaXBfdGFi bGVzLmggfCAgNiArLQogLi4uL3VhcGkvbGludXgvbmV0ZmlsdGVyX2lwdjYvaXA2X3RhYmxlcy5o ICAgIHwgIDQgKy0KIGluY2x1ZGUvdWFwaS9saW51eC9wZXJmX2V2ZW50LmggICAgICAgICAgICAg ICB8ICAyICstCiBpbmNsdWRlL3VhcGkvbGludXgvcGt0X2Nscy5oICAgICAgICAgICAgICAgICAg fCAgNCArLQogaW5jbHVkZS91YXBpL2xpbnV4L3JhaWQvbWRfcC5oICAgICAgICAgICAgICAgIHwg IDIgKy0KIGluY2x1ZGUvdWFwaS9saW51eC9yYW5kb20uaCAgICAgICAgICAgICAgICAgICB8ICAy ICstCiBpbmNsdWRlL3VhcGkvbGludXgvcm9tZnNfZnMuaCAgICAgICAgICAgICAgICAgfCAgNCAr LQogaW5jbHVkZS91YXBpL2xpbnV4L3J0bmV0bGluay5oICAgICAgICAgICAgICAgIHwgIDIgKy0K IGluY2x1ZGUvdWFwaS9saW51eC9zY3RwLmggICAgICAgICAgICAgICAgICAgICB8IDEwICstLQog aW5jbHVkZS91YXBpL2xpbnV4L3NlZzYuaCAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGlu Y2x1ZGUvdWFwaS9saW51eC9zZWc2X2lwdHVubmVsLmggICAgICAgICAgICB8ICAyICstCiBpbmNs dWRlL3VhcGkvbGludXgvc3RtLmggICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogaW5jbHVk ZS91YXBpL2xpbnV4L3RhcmdldF9jb3JlX3VzZXIuaCAgICAgICAgIHwgIDIgKy0KIGluY2x1ZGUv dWFwaS9saW51eC91c2IvYXVkaW8uaCAgICAgICAgICAgICAgICB8ICAyICstCiBpbmNsdWRlL3Vh cGkvbGludXgvdXNiL2NkYy5oICAgICAgICAgICAgICAgICAgfCAgNiArLQogaW5jbHVkZS91YXBp L2xpbnV4L3VzYi9jaDkuaCAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGluY2x1ZGUvdWFwaS9s aW51eC91c2IvcmF3X2dhZGdldC5oICAgICAgICAgICB8ICA0ICstCiBpbmNsdWRlL3VhcGkvbGlu dXgvdXNiZGV2aWNlX2ZzLmggICAgICAgICAgICAgfCAgNCArLQogaW5jbHVkZS91YXBpL2xpbnV4 L3Zob3N0X3R5cGVzLmggICAgICAgICAgICAgIHwgIDQgKy0KIGluY2x1ZGUvdWFwaS9saW51eC92 aXJ0aW9fOXAuaCAgICAgICAgICAgICAgICB8ICAyICstCiBpbmNsdWRlL3VhcGkvbGludXgveGZy bS5oICAgICAgICAgICAgICAgICAgICAgfCAxMCArLS0KIGluY2x1ZGUvdWFwaS9yZG1hL2hmaS9o ZmkxX3VzZXIuaCAgICAgICAgICAgICB8ICAyICstCiBpbmNsdWRlL3VhcGkvcmRtYS9pYl91c2Vy X3ZlcmJzLmggICAgICAgICAgICAgfCA3MiArKysrKysrKystLS0tLS0tLS0tCiBpbmNsdWRlL3Vh cGkvcmRtYS9yZG1hX3VzZXJfY20uaCAgICAgICAgICAgICAgfCAgMiArLQogaW5jbHVkZS91YXBp L3JkbWEvcmRtYV91c2VyX2lvY3RsX2NtZHMuaCAgICAgIHwgIDIgKy0KIGluY2x1ZGUvdWFwaS9z Y3NpL2ZjL2ZjX2Vscy5oICAgICAgICAgICAgICAgICB8IDE4ICsrLS0tCiBpbmNsdWRlL3VhcGkv c2NzaS9zY3NpX2JzZ19mYy5oICAgICAgICAgICAgICAgfCAgMiArLQogaW5jbHVkZS91YXBpL3Nv dW5kL2Fzb3VuZC5oICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGluY2x1ZGUvdWFwaS9zb3Vu ZC9maXJld2lyZS5oICAgICAgICAgICAgICAgICB8ICA2ICstCiBpbmNsdWRlL3VhcGkvc291bmQv c2tsLXRwbGctaW50ZXJmYWNlLmggICAgICAgfCAgMiArLQogaW5jbHVkZS91YXBpL3NvdW5kL3Nv Zi9oZWFkZXIuaCAgICAgICAgICAgICAgIHwgIDIgKy0KIGluY2x1ZGUvdWFwaS9zb3VuZC91c2Jf c3RyZWFtLmggICAgICAgICAgICAgICB8ICAyICstCiB0b29scy9hcmNoL3g4Ni9pbmNsdWRlL3Vh cGkvYXNtL2t2bS5oICAgICAgICAgfCAxMiArKy0tCiB0b29scy9pbmNsdWRlL3VhcGkvZHJtL2k5 MTVfZHJtLmggICAgICAgICAgICAgfCAgNiArLQogdG9vbHMvaW5jbHVkZS91YXBpL2xpbnV4L2Jw Zi5oICAgICAgICAgICAgICAgIHwgIDIgKy0KIHRvb2xzL2luY2x1ZGUvdWFwaS9saW51eC9mcy5o ICAgICAgICAgICAgICAgICB8ICAyICstCiB0b29scy9pbmNsdWRlL3VhcGkvbGludXgvaWZfdHVu LmggICAgICAgICAgICAgfCAgMiArLQogdG9vbHMvaW5jbHVkZS91YXBpL2xpbnV4L2t2bS5oICAg ICAgICAgICAgICAgIHwgIDggKy0tCiB0b29scy9pbmNsdWRlL3VhcGkvbGludXgvcGVyZl9ldmVu dC5oICAgICAgICAgfCAgMiArLQogdG9vbHMvaW5jbHVkZS91YXBpL2xpbnV4L3BrdF9jbHMuaCAg ICAgICAgICAgIHwgIDQgKy0KIHRvb2xzL2luY2x1ZGUvdWFwaS9saW51eC9zZWc2LmggICAgICAg ICAgICAgICB8ICA0ICstCiB0b29scy9pbmNsdWRlL3VhcGkvbGludXgvdXNiZGV2aWNlX2ZzLmgg ICAgICAgfCAgNCArLQogdG9vbHMvaW5jbHVkZS91YXBpL3NvdW5kL2Fzb3VuZC5oICAgICAgICAg ICAgIHwgIDIgKy0KIDg0IGZpbGVzIGNoYW5nZWQsIDIxOCBpbnNlcnRpb25zKCspLCAyMTggZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvYXJjaC9tNjhrL2luY2x1ZGUvdWFwaS9hc20vYm9vdGlu Zm8uaCBiL2FyY2gvbTY4ay9pbmNsdWRlL3VhcGkvYXNtL2Jvb3RpbmZvLmgKaW5kZXggMjAzZDlj YmY5NjMwLi45NWVjZjNhZTRjNDkgMTAwNjQ0Ci0tLSBhL2FyY2gvbTY4ay9pbmNsdWRlL3VhcGkv YXNtL2Jvb3RpbmZvLmgKKysrIGIvYXJjaC9tNjhrL2luY2x1ZGUvdWFwaS9hc20vYm9vdGluZm8u aApAQCAtMzQsNyArMzQsNyBAQAogc3RydWN0IGJpX3JlY29yZCB7CiAJX19iZTE2IHRhZzsJCQkv KiB0YWcgSUQgKi8KIAlfX2JlMTYgc2l6ZTsJCQkvKiBzaXplIG9mIHJlY29yZCAoaW4gYnl0ZXMp ICovCi0JX19iZTMyIGRhdGFbMF07CQkJLyogZGF0YSAqLworCV9fYmUzMiBkYXRhW107CQkJLyog ZGF0YSAqLwogfTsKIAogCkBAIC0xNjgsNyArMTY4LDcgQEAgc3RydWN0IGJvb3R2ZXJzaW9uIHsK IAlzdHJ1Y3QgewogCQlfX2JlMzIgbWFjaHR5cGU7CiAJCV9fYmUzMiB2ZXJzaW9uOwotCX0gbWFj aHZlcnNpb25zWzBdOworCX0gbWFjaHZlcnNpb25zW107CiB9IF9fcGFja2VkOwogCiAjZW5kaWYg LyogX19BU1NFTUJMWV9fICovCmRpZmYgLS1naXQgYS9hcmNoL21pcHMvaW5jbHVkZS91YXBpL2Fz bS91Y29udGV4dC5oIGIvYXJjaC9taXBzL2luY2x1ZGUvdWFwaS9hc20vdWNvbnRleHQuaAppbmRl eCAyZDNiZjhlZWJmMWYuLjYxMjJlZjk3YzZmZiAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL2luY2x1 ZGUvdWFwaS9hc20vdWNvbnRleHQuaAorKysgYi9hcmNoL21pcHMvaW5jbHVkZS91YXBpL2FzbS91 Y29udGV4dC5oCkBAIC02MCw3ICs2MCw3IEBAIHN0cnVjdCB1Y29udGV4dCB7CiAJc2lnc2V0X3QJ CXVjX3NpZ21hc2s7CiAKIAkvKiBFeHRlbmRlZCBjb250ZXh0IHN0cnVjdHVyZXMgbWF5IGZvbGxv dyB1Y29udGV4dCAqLwotCXVuc2lnbmVkIGxvbmcgbG9uZwl1Y19leHRjb250ZXh0WzBdOworCXVu c2lnbmVkIGxvbmcgbG9uZwl1Y19leHRjb250ZXh0W107CiB9OwogCiAjZW5kaWYgLyogX19NSVBT X1VBUElfQVNNX1VDT05URVhUX0ggKi8KZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9pbmNsdWRlL3Vh cGkvYXNtL2h3Y3Ryc2V0LmggYi9hcmNoL3MzOTAvaW5jbHVkZS91YXBpL2FzbS9od2N0cnNldC5o CmluZGV4IDNkODI4NGI5NWY4Ny4uZTU2YjlkZDIzYTRiIDEwMDY0NAotLS0gYS9hcmNoL3MzOTAv aW5jbHVkZS91YXBpL2FzbS9od2N0cnNldC5oCisrKyBiL2FyY2gvczM5MC9pbmNsdWRlL3VhcGkv YXNtL2h3Y3Ryc2V0LmgKQEAgLTMwLDE4ICszMCwxOCBAQCBzdHJ1Y3QgczM5MF9jdHJzZXRfc3Rh cnQgewkJLyogU2V0IENQVXMgdG8gb3BlcmF0ZSBvbiAqLwogc3RydWN0IHMzOTBfY3Ryc2V0X3Nl dGRhdGEgewkJLyogQ291bnRlciBzZXQgZGF0YSAqLwogCV9fdTMyIHNldDsJCQkvKiBDb3VudGVy IHNldCBudW1iZXIgKi8KIAlfX3UzMiBub19jbnRzOwkJCS8qICMgb2YgY291bnRlcnMgc3RvcmVk IGluIGN2W10gKi8KLQlfX3U2NCBjdlswXTsJCQkvKiBDb3VudGVyIHZhbHVlcyAodmFyaWFibGUg bGVuZ3RoKSAqLworCV9fdTY0IGN2W107CQkJLyogQ291bnRlciB2YWx1ZXMgKHZhcmlhYmxlIGxl bmd0aCkgKi8KIH07CiAKIHN0cnVjdCBzMzkwX2N0cnNldF9jcHVkYXRhIHsJCS8qIENvdW50ZXIg c2V0IGRhdGEgcGVyIENQVSAqLwogCV9fdTMyIGNwdV9ucjsJCQkvKiBDUFUgbnVtYmVyICovCiAJ X191MzIgbm9fc2V0czsJCQkvKiAjIG9mIGNvdW50ZXJzIHNldHMgaW4gZGF0YVtdICovCi0Jc3Ry dWN0IHMzOTBfY3Ryc2V0X3NldGRhdGEgZGF0YVswXTsKKwlzdHJ1Y3QgczM5MF9jdHJzZXRfc2V0 ZGF0YSBkYXRhW107CiB9OwogCiBzdHJ1Y3QgczM5MF9jdHJzZXRfcmVhZCB7CQkvKiBTdHJ1Y3R1 cmUgdG8gZ2V0IGFsbCBjdHIgc2V0cyAqLwogCV9fdTY0IG5vX2NwdXM7CQkJLyogVG90YWwgIyBv ZiBDUFVzIGRhdGEgdGFrZW4gZnJvbSAqLwotCXN0cnVjdCBzMzkwX2N0cnNldF9jcHVkYXRhIGRh dGFbMF07CisJc3RydWN0IHMzOTBfY3Ryc2V0X2NwdWRhdGEgZGF0YVtdOwogfTsKIAogI2RlZmlu ZSBTMzkwX0hXQ1RSX01BR0lDCSdDJwkvKiBSYW5kb20gbWFnaWMgIyBmb3IgaW9jdGxzICovCmRp ZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL2Jvb3RwYXJhbS5oIGIvYXJjaC94 ODYvaW5jbHVkZS91YXBpL2FzbS9ib290cGFyYW0uaAppbmRleCBiZWE1Y2RjZGY1MzIuLmNkZDZj N2Y2Y2ZhNiAxMDA2NDQKLS0tIGEvYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9ib290cGFyYW0u aAorKysgYi9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL2Jvb3RwYXJhbS5oCkBAIC01Miw3ICs1 Miw3IEBAIHN0cnVjdCBzZXR1cF9kYXRhIHsKIAlfX3U2NCBuZXh0OwogCV9fdTMyIHR5cGU7CiAJ X191MzIgbGVuOwotCV9fdTggZGF0YVswXTsKKwlfX3U4IGRhdGFbXTsKIH07CiAKIC8qIGV4dGVu c2libGUgc2V0dXAgaW5kaXJlY3QgZGF0YSBub2RlICovCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9p bmNsdWRlL3VhcGkvYXNtL2t2bS5oIGIvYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9rdm0uaApp bmRleCAyMTYxNDgwN2EyY2IuLmVjNTNjOWZhMWRhOSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvaW5j bHVkZS91YXBpL2FzbS9rdm0uaAorKysgYi9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL2t2bS5o CkBAIC0xOTgsMTMgKzE5OCwxMyBAQCBzdHJ1Y3Qga3ZtX21zcnMgewogCV9fdTMyIG5tc3JzOyAv KiBudW1iZXIgb2YgbXNycyBpbiBlbnRyaWVzICovCiAJX191MzIgcGFkOwogCi0Jc3RydWN0IGt2 bV9tc3JfZW50cnkgZW50cmllc1swXTsKKwlzdHJ1Y3Qga3ZtX21zcl9lbnRyeSBlbnRyaWVzW107 CiB9OwogCiAvKiBmb3IgS1ZNX0dFVF9NU1JfSU5ERVhfTElTVCAqLwogc3RydWN0IGt2bV9tc3Jf bGlzdCB7CiAJX191MzIgbm1zcnM7IC8qIG51bWJlciBvZiBtc3JzIGluIGVudHJpZXMgKi8KLQlf X3UzMiBpbmRpY2VzWzBdOworCV9fdTMyIGluZGljZXNbXTsKIH07CiAKIC8qIE1heGltdW0gc2l6 ZSBvZiBhbnkgYWNjZXNzIGJpdG1hcCBpbiBieXRlcyAqLwpAQCAtMjQxLDcgKzI0MSw3IEBAIHN0 cnVjdCBrdm1fY3B1aWRfZW50cnkgewogc3RydWN0IGt2bV9jcHVpZCB7CiAJX191MzIgbmVudDsK IAlfX3UzMiBwYWRkaW5nOwotCXN0cnVjdCBrdm1fY3B1aWRfZW50cnkgZW50cmllc1swXTsKKwlz dHJ1Y3Qga3ZtX2NwdWlkX2VudHJ5IGVudHJpZXNbXTsKIH07CiAKIHN0cnVjdCBrdm1fY3B1aWRf ZW50cnkyIHsKQEAgLTI2Myw3ICsyNjMsNyBAQCBzdHJ1Y3Qga3ZtX2NwdWlkX2VudHJ5MiB7CiBz dHJ1Y3Qga3ZtX2NwdWlkMiB7CiAJX191MzIgbmVudDsKIAlfX3UzMiBwYWRkaW5nOwotCXN0cnVj dCBrdm1fY3B1aWRfZW50cnkyIGVudHJpZXNbMF07CisJc3RydWN0IGt2bV9jcHVpZF9lbnRyeTIg ZW50cmllc1tdOwogfTsKIAogLyogZm9yIEtWTV9HRVRfUElUIGFuZCBLVk1fU0VUX1BJVCAqLwpA QCAtMzg5LDcgKzM4OSw3IEBAIHN0cnVjdCBrdm1feHNhdmUgewogCSAqIHRoZSBjb250ZW50cyBv ZiBDUFVJRCBsZWFmIDB4RCBvbiB0aGUgaG9zdC4KIAkgKi8KIAlfX3UzMiByZWdpb25bMTAyNF07 Ci0JX191MzIgZXh0cmFbMF07CisJX191MzIgZXh0cmFbXTsKIH07CiAKICNkZWZpbmUgS1ZNX01B WF9YQ1JTCTE2CkBAIC01MTYsNyArNTE2LDcgQEAgc3RydWN0IGt2bV9wbXVfZXZlbnRfZmlsdGVy IHsKIAlfX3UzMiBmaXhlZF9jb3VudGVyX2JpdG1hcDsKIAlfX3UzMiBmbGFnczsKIAlfX3UzMiBw YWRbNF07Ci0JX191NjQgZXZlbnRzWzBdOworCV9fdTY0IGV2ZW50c1tdOwogfTsKIAogI2RlZmlu ZSBLVk1fUE1VX0VWRU5UX0FMTE9XIDAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9kcm0vaTkx NV9kcm0uaCBiL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaAppbmRleCBhMmRlZjdiMjcwMDku LmIyOGZmNWQ4ODE0NSAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oCisr KyBiL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaApAQCAtMjEyMyw3ICsyMTIzLDcgQEAgc3Ry dWN0IGk5MTVfY29udGV4dF9lbmdpbmVzX2xvYWRfYmFsYW5jZSB7CiAKIAlfX3U2NCBtYno2NDsg LyogcmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2U7IG11c3QgYmUgemVybyAqLwogCi0Jc3RydWN0IGk5 MTVfZW5naW5lX2NsYXNzX2luc3RhbmNlIGVuZ2luZXNbMF07CisJc3RydWN0IGk5MTVfZW5naW5l X2NsYXNzX2luc3RhbmNlIGVuZ2luZXNbXTsKIH0gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CiAK ICNkZWZpbmUgSTkxNV9ERUZJTkVfQ09OVEVYVF9FTkdJTkVTX0xPQURfQkFMQU5DRShuYW1lX18s IE5fXykgc3RydWN0IHsgXApAQCAtMjE2MSw3ICsyMTYxLDcgQEAgc3RydWN0IGk5MTVfY29udGV4 dF9lbmdpbmVzX2JvbmQgewogCV9fdTY0IGZsYWdzOyAvKiBhbGwgdW5kZWZpbmVkIGZsYWdzIG11 c3QgYmUgemVybyAqLwogCV9fdTY0IG1iejY0WzRdOyAvKiByZXNlcnZlZCBmb3IgZnV0dXJlIHVz ZTsgbXVzdCBiZSB6ZXJvICovCiAKLQlzdHJ1Y3QgaTkxNV9lbmdpbmVfY2xhc3NfaW5zdGFuY2Ug ZW5naW5lc1swXTsKKwlzdHJ1Y3QgaTkxNV9lbmdpbmVfY2xhc3NfaW5zdGFuY2UgZW5naW5lc1td OwogfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKIAogI2RlZmluZSBJOTE1X0RFRklORV9DT05U RVhUX0VOR0lORVNfQk9ORChuYW1lX18sIE5fXykgc3RydWN0IHsgXApAQCAtMjI4OCw3ICsyMjg4 LDcgQEAgc3RydWN0IGk5MTVfY29udGV4dF9lbmdpbmVzX3BhcmFsbGVsX3N1Ym1pdCB7CiAJICog bGVuZ3RoID0gd2lkdGggKGkpICogbnVtX3NpYmxpbmdzIChqKQogCSAqIGluZGV4ID0gaiArIGkg KiBudW1fc2libGluZ3MKIAkgKi8KLQlzdHJ1Y3QgaTkxNV9lbmdpbmVfY2xhc3NfaW5zdGFuY2Ug ZW5naW5lc1swXTsKKwlzdHJ1Y3QgaTkxNV9lbmdpbmVfY2xhc3NfaW5zdGFuY2UgZW5naW5lc1td OwogCiB9IF9fcGFja2VkOwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvbGludXgvYmxrem9u ZWQuaCBiL2luY2x1ZGUvdWFwaS9saW51eC9ibGt6b25lZC5oCmluZGV4IDY1NmEzMjY4MjFhMi4u YjgwZmNjOWVhNTI1IDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvYmxrem9uZWQuaAor KysgYi9pbmNsdWRlL3VhcGkvbGludXgvYmxrem9uZWQuaApAQCAtMTMwLDcgKzEzMCw3IEBAIHN0 cnVjdCBibGtfem9uZV9yZXBvcnQgewogCV9fdTY0CQlzZWN0b3I7CiAJX191MzIJCW5yX3pvbmVz OwogCV9fdTMyCQlmbGFnczsKLQlzdHJ1Y3QgYmxrX3pvbmUgem9uZXNbMF07CisJc3RydWN0IGJs a196b25lIHpvbmVzW107CiB9OwogCiAvKioKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51 eC9icGYuaCBiL2luY2x1ZGUvdWFwaS9saW51eC9icGYuaAppbmRleCBmNDAwOWRiZGY2MmQuLmU0 YjMzYmEwNmYwMCAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L2JwZi5oCisrKyBiL2lu Y2x1ZGUvdWFwaS9saW51eC9icGYuaApAQCAtNzksNyArNzksNyBAQCBzdHJ1Y3QgYnBmX2luc24g ewogLyogS2V5IG9mIGFuIGEgQlBGX01BUF9UWVBFX0xQTV9UUklFIGVudHJ5ICovCiBzdHJ1Y3Qg YnBmX2xwbV90cmllX2tleSB7CiAJX191MzIJcHJlZml4bGVuOwkvKiB1cCB0byAzMiBmb3IgQUZf SU5FVCwgMTI4IGZvciBBRl9JTkVUNiAqLwotCV9fdTgJZGF0YVswXTsJLyogQXJiaXRyYXJ5IHNp emUgKi8KKwlfX3U4CWRhdGFbXTsJLyogQXJiaXRyYXJ5IHNpemUgKi8KIH07CiAKIHN0cnVjdCBi cGZfY2dyb3VwX3N0b3JhZ2Vfa2V5IHsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9i dHJmcy5oIGIvaW5jbHVkZS91YXBpL2xpbnV4L2J0cmZzLmgKaW5kZXggZDk1NmIyOTkzOTcwLi4z ZDBlZGJlM2I5OTEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC9idHJmcy5oCisrKyBi L2luY2x1ZGUvdWFwaS9saW51eC9idHJmcy5oCkBAIC05Myw3ICs5Myw3IEBAIHN0cnVjdCBidHJm c19xZ3JvdXBfaW5oZXJpdCB7CiAJX191NjQJbnVtX3JlZl9jb3BpZXM7CiAJX191NjQJbnVtX2V4 Y2xfY29waWVzOwogCXN0cnVjdCBidHJmc19xZ3JvdXBfbGltaXQgbGltOwotCV9fdTY0CXFncm91 cHNbMF07CisJX191NjQJcWdyb3Vwc1tdOwogfTsKIAogc3RydWN0IGJ0cmZzX2lvY3RsX3Fncm91 cF9saW1pdF9hcmdzIHsKQEAgLTU2MSw3ICs1NjEsNyBAQCBzdHJ1Y3QgYnRyZnNfaW9jdGxfc2Vh cmNoX2FyZ3NfdjIgewogCV9fdTY0IGJ1Zl9zaXplOwkJICAgLyogaW4gLSBzaXplIG9mIGJ1ZmZl cgogCQkJCQkgICAgKiBvdXQgLSBvbiBFT1ZFUkZMT1c6IG5lZWRlZCBzaXplCiAJCQkJCSAgICAq ICAgICAgIHRvIHN0b3JlIGl0ZW0gKi8KLQlfX3U2NCBidWZbMF07ICAgICAgICAgICAgICAgICAg ICAgICAvKiBvdXQgLSBmb3VuZCBpdGVtcyAqLworCV9fdTY0IGJ1ZltdOyAgICAgICAgICAgICAg ICAgICAgICAgLyogb3V0IC0gZm91bmQgaXRlbXMgKi8KIH07CiAKIHN0cnVjdCBidHJmc19pb2N0 bF9jbG9uZV9yYW5nZV9hcmdzIHsKQEAgLTYzMiw3ICs2MzIsNyBAQCBzdHJ1Y3QgYnRyZnNfaW9j dGxfc2FtZV9hcmdzIHsKIAlfX3UxNiBkZXN0X2NvdW50OwkvKiBpbiAtIHRvdGFsIGVsZW1lbnRz IGluIGluZm8gYXJyYXkgKi8KIAlfX3UxNiByZXNlcnZlZDE7CiAJX191MzIgcmVzZXJ2ZWQyOwot CXN0cnVjdCBidHJmc19pb2N0bF9zYW1lX2V4dGVudF9pbmZvIGluZm9bMF07CisJc3RydWN0IGJ0 cmZzX2lvY3RsX3NhbWVfZXh0ZW50X2luZm8gaW5mb1tdOwogfTsKIAogc3RydWN0IGJ0cmZzX2lv Y3RsX3NwYWNlX2luZm8gewpAQCAtNjQ0LDcgKzY0NCw3IEBAIHN0cnVjdCBidHJmc19pb2N0bF9z cGFjZV9pbmZvIHsKIHN0cnVjdCBidHJmc19pb2N0bF9zcGFjZV9hcmdzIHsKIAlfX3U2NCBzcGFj ZV9zbG90czsKIAlfX3U2NCB0b3RhbF9zcGFjZXM7Ci0Jc3RydWN0IGJ0cmZzX2lvY3RsX3NwYWNl X2luZm8gc3BhY2VzWzBdOworCXN0cnVjdCBidHJmc19pb2N0bF9zcGFjZV9pbmZvIHNwYWNlc1td OwogfTsKIAogc3RydWN0IGJ0cmZzX2RhdGFfY29udGFpbmVyIHsKQEAgLTY1Miw3ICs2NTIsNyBA QCBzdHJ1Y3QgYnRyZnNfZGF0YV9jb250YWluZXIgewogCV9fdTMyCWJ5dGVzX21pc3Npbmc7CS8q IG91dCAtLSBhZGRpdGlvbmFsIGJ5dGVzIG5lZWRlZCBmb3IgcmVzdWx0ICovCiAJX191MzIJZWxl bV9jbnQ7CS8qIG91dCAqLwogCV9fdTMyCWVsZW1fbWlzc2VkOwkvKiBvdXQgKi8KLQlfX3U2NAl2 YWxbMF07CQkvKiBvdXQgKi8KKwlfX3U2NAl2YWxbXTsJCS8qIG91dCAqLwogfTsKIAogc3RydWN0 IGJ0cmZzX2lvY3RsX2lub19wYXRoX2FyZ3MgewpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xp bnV4L2J0cmZzX3RyZWUuaCBiL2luY2x1ZGUvdWFwaS9saW51eC9idHJmc190cmVlLmgKaW5kZXgg ZDQxMTcxNTJkOTA3Li41ZjMyYTJhNDk1ZGMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51 eC9idHJmc190cmVlLmgKKysrIGIvaW5jbHVkZS91YXBpL2xpbnV4L2J0cmZzX3RyZWUuaApAQCAt NTc1LDcgKzU3NSw3IEBAIHN0cnVjdCBidHJmc19pbm9kZV9leHRyZWYgewogCV9fbGU2NCBwYXJl bnRfb2JqZWN0aWQ7CiAJX19sZTY0IGluZGV4OwogCV9fbGUxNiBuYW1lX2xlbjsKLQlfX3U4ICAg bmFtZVswXTsKKwlfX3U4ICAgbmFtZVtdOwogCS8qIG5hbWUgZ29lcyBoZXJlICovCiB9IF9fYXR0 cmlidXRlX18gKChfX3BhY2tlZF9fKSk7CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51 eC9jYW4vYmNtLmggYi9pbmNsdWRlL3VhcGkvbGludXgvY2FuL2JjbS5oCmluZGV4IGRkMmI5MjVi MDlhYy4uZjFlNDVmNTMzYTcyIDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvY2FuL2Jj bS5oCisrKyBiL2luY2x1ZGUvdWFwaS9saW51eC9jYW4vYmNtLmgKQEAgLTcxLDcgKzcxLDcgQEAg c3RydWN0IGJjbV9tc2dfaGVhZCB7CiAJc3RydWN0IGJjbV90aW1ldmFsIGl2YWwxLCBpdmFsMjsK IAljYW5pZF90IGNhbl9pZDsKIAlfX3UzMiBuZnJhbWVzOwotCXN0cnVjdCBjYW5fZnJhbWUgZnJh bWVzWzBdOworCXN0cnVjdCBjYW5fZnJhbWUgZnJhbWVzW107CiB9OwogCiBlbnVtIHsKZGlmZiAt LWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9jb25uZWN0b3IuaCBiL2luY2x1ZGUvdWFwaS9saW51 eC9jb25uZWN0b3IuaAppbmRleCAzNzM4OTM2MTQ5YTIuLjVhZTEzMWMzZjE0NSAxMDA2NDQKLS0t IGEvaW5jbHVkZS91YXBpL2xpbnV4L2Nvbm5lY3Rvci5oCisrKyBiL2luY2x1ZGUvdWFwaS9saW51 eC9jb25uZWN0b3IuaApAQCAtNzUsNyArNzUsNyBAQCBzdHJ1Y3QgY25fbXNnIHsKIAogCV9fdTE2 IGxlbjsJCS8qIExlbmd0aCBvZiB0aGUgZm9sbG93aW5nIGRhdGEgKi8KIAlfX3UxNiBmbGFnczsK LQlfX3U4IGRhdGFbMF07CisJX191OCBkYXRhW107CiB9OwogCiAjZW5kaWYgLyogX1VBUElfX0NP Tk5FQ1RPUl9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvbGludXgvY3ljeF9jZm0uaCBi L2luY2x1ZGUvdWFwaS9saW51eC9jeWN4X2NmbS5oCmluZGV4IDUxZjU0MTk0MmZmOS4uOTE3Nzhj ODAyNGIxIDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvY3ljeF9jZm0uaAorKysgYi9p bmNsdWRlL3VhcGkvbGludXgvY3ljeF9jZm0uaApAQCAtOTEsNyArOTEsNyBAQCBzdHJ1Y3QgY3lj eF9maXJtd2FyZSB7CiAJdW5zaWduZWQgc2hvcnQJICAgIHJlc2VydmVkWzZdOwogCWNoYXIJCSAg ICBkZXNjcltDRk1fREVTQ1JfTEVOXTsKIAlzdHJ1Y3QgY3ljeF9md19pbmZvIGluZm87Ci0JdW5z aWduZWQgY2hhcgkgICAgaW1hZ2VbMF07CisJdW5zaWduZWQgY2hhcgkgICAgaW1hZ2VbXTsKIH07 CiAKIHN0cnVjdCBjeWN4X2Z3X2hlYWRlciB7CmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvbGlu dXgvZG0taW9jdGwuaCBiL2luY2x1ZGUvdWFwaS9saW51eC9kbS1pb2N0bC5oCmluZGV4IDJlOTU1 MGZlZjkwZi4uOGM5N2Q3NWYzMTA0IDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvZG0t aW9jdGwuaAorKysgYi9pbmNsdWRlL3VhcGkvbGludXgvZG0taW9jdGwuaApAQCAtMTgyLDcgKzE4 Miw3IEBAIHN0cnVjdCBkbV90YXJnZXRfc3BlYyB7CiBzdHJ1Y3QgZG1fdGFyZ2V0X2RlcHMgewog CV9fdTMyIGNvdW50OwkvKiBBcnJheSBzaXplICovCiAJX191MzIgcGFkZGluZzsJLyogdW51c2Vk ICovCi0JX191NjQgZGV2WzBdOwkvKiBvdXQgKi8KKwlfX3U2NCBkZXZbXTsJLyogb3V0ICovCiB9 OwogCiAvKgpAQCAtMTkyLDcgKzE5Miw3IEBAIHN0cnVjdCBkbV9uYW1lX2xpc3QgewogCV9fdTY0 IGRldjsKIAlfX3UzMiBuZXh0OwkJLyogb2Zmc2V0IHRvIHRoZSBuZXh0IHJlY29yZCBmcm9tCiAJ CQkJICAgdGhlIF9zdGFydF8gb2YgdGhpcyAqLwotCWNoYXIgbmFtZVswXTsKKwljaGFyIG5hbWVb XTsKIAogCS8qCiAJICogVGhlIGZvbGxvd2luZyBtZW1iZXJzIGNhbiBiZSBhY2Nlc3NlZCBieSB0 YWtpbmcgYSBwb2ludGVyIHRoYXQKQEAgLTIxNiw3ICsyMTYsNyBAQCBzdHJ1Y3QgZG1fdGFyZ2V0 X3ZlcnNpb25zIHsKICAgICAgICAgX191MzIgbmV4dDsKICAgICAgICAgX191MzIgdmVyc2lvblsz XTsKIAotICAgICAgICBjaGFyIG5hbWVbMF07CisgICAgICAgIGNoYXIgbmFtZVtdOwogfTsKIAog LyoKQEAgLTIyNSw3ICsyMjUsNyBAQCBzdHJ1Y3QgZG1fdGFyZ2V0X3ZlcnNpb25zIHsKIHN0cnVj dCBkbV90YXJnZXRfbXNnIHsKIAlfX3U2NCBzZWN0b3I7CS8qIERldmljZSBzZWN0b3IgKi8KIAot CWNoYXIgbWVzc2FnZVswXTsKKwljaGFyIG1lc3NhZ2VbXTsKIH07CiAKIC8qCmRpZmYgLS1naXQg YS9pbmNsdWRlL3VhcGkvbGludXgvZG0tbG9nLXVzZXJzcGFjZS5oIGIvaW5jbHVkZS91YXBpL2xp bnV4L2RtLWxvZy11c2Vyc3BhY2UuaAppbmRleCA1YzQ3YTg2MDMzNzYuLjIzZGFkOTU2NWU0NiAx MDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L2RtLWxvZy11c2Vyc3BhY2UuaAorKysgYi9p bmNsdWRlL3VhcGkvbGludXgvZG0tbG9nLXVzZXJzcGFjZS5oCkBAIC00MjYsNyArNDI2LDcgQEAg c3RydWN0IGRtX3Vsb2dfcmVxdWVzdCB7CiAJX191MzIgcmVxdWVzdF90eXBlOyAgLyogRE1fVUxP R18qIGRlZmluZWQgYWJvdmUgKi8KIAlfX3UzMiBkYXRhX3NpemU7ICAgICAvKiBIb3cgbXVjaCBk YXRhIChub3QgaW5jbHVkaW5nIHRoaXMgc3RydWN0KSAqLwogCi0JY2hhciBkYXRhWzBdOworCWNo YXIgZGF0YVtdOwogfTsKIAogI2VuZGlmIC8qIF9fRE1fTE9HX1VTRVJTUEFDRV9IX18gKi8KZGlm ZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9ldGh0b29sLmggYi9pbmNsdWRlL3VhcGkvbGlu dXgvZXRodG9vbC5oCmluZGV4IGUwZjBlZTliYzg5ZS4uMmQ1NzQxZmQ0NGJiIDEwMDY0NAotLS0g YS9pbmNsdWRlL3VhcGkvbGludXgvZXRodG9vbC5oCisrKyBiL2luY2x1ZGUvdWFwaS9saW51eC9l dGh0b29sLmgKQEAgLTI1Nyw3ICsyNTcsNyBAQCBzdHJ1Y3QgZXRodG9vbF90dW5hYmxlIHsKIAlf X3UzMglpZDsKIAlfX3UzMgl0eXBlX2lkOwogCV9fdTMyCWxlbjsKLQl2b2lkCSpkYXRhWzBdOwor CXZvaWQJKmRhdGFbXTsKIH07CiAKICNkZWZpbmUgRE9XTlNISUZUX0RFVl9ERUZBVUxUX0NPVU5U CTB4ZmYKQEAgLTMyMiw3ICszMjIsNyBAQCBzdHJ1Y3QgZXRodG9vbF9yZWdzIHsKIAlfX3UzMglj bWQ7CiAJX191MzIJdmVyc2lvbjsKIAlfX3UzMglsZW47Ci0JX191OAlkYXRhWzBdOworCV9fdTgJ ZGF0YVtdOwogfTsKIAogLyoqCkBAIC0zNDgsNyArMzQ4LDcgQEAgc3RydWN0IGV0aHRvb2xfZWVw cm9tIHsKIAlfX3UzMgltYWdpYzsKIAlfX3UzMglvZmZzZXQ7CiAJX191MzIJbGVuOwotCV9fdTgJ ZGF0YVswXTsKKwlfX3U4CWRhdGFbXTsKIH07CiAKIC8qKgpAQCAtNzUyLDcgKzc1Miw3IEBAIHN0 cnVjdCBldGh0b29sX2dzdHJpbmdzIHsKIAlfX3UzMgljbWQ7CiAJX191MzIJc3RyaW5nX3NldDsK IAlfX3UzMglsZW47Ci0JX191OAlkYXRhWzBdOworCV9fdTgJZGF0YVtdOwogfTsKIAogLyoqCkBA IC03NzcsNyArNzc3LDcgQEAgc3RydWN0IGV0aHRvb2xfc3NldF9pbmZvIHsKIAlfX3UzMgljbWQ7 CiAJX191MzIJcmVzZXJ2ZWQ7CiAJX191NjQJc3NldF9tYXNrOwotCV9fdTMyCWRhdGFbMF07CisJ X191MzIJZGF0YVtdOwogfTsKIAogLyoqCkBAIC04MTcsNyArODE3LDcgQEAgc3RydWN0IGV0aHRv b2xfdGVzdCB7CiAJX191MzIJZmxhZ3M7CiAJX191MzIJcmVzZXJ2ZWQ7CiAJX191MzIJbGVuOwot CV9fdTY0CWRhdGFbMF07CisJX191NjQJZGF0YVtdOwogfTsKIAogLyoqCkBAIC04MzQsNyArODM0 LDcgQEAgc3RydWN0IGV0aHRvb2xfdGVzdCB7CiBzdHJ1Y3QgZXRodG9vbF9zdGF0cyB7CiAJX191 MzIJY21kOwogCV9fdTMyCW5fc3RhdHM7Ci0JX191NjQJZGF0YVswXTsKKwlfX3U2NAlkYXRhW107 CiB9OwogCiAvKioKQEAgLTg1MSw3ICs4NTEsNyBAQCBzdHJ1Y3QgZXRodG9vbF9zdGF0cyB7CiBz dHJ1Y3QgZXRodG9vbF9wZXJtX2FkZHIgewogCV9fdTMyCWNtZDsKIAlfX3UzMglzaXplOwotCV9f dTgJZGF0YVswXTsKKwlfX3U4CWRhdGFbXTsKIH07CiAKIC8qIGJvb2xlYW4gZmxhZ3MgY29udHJv bGxpbmcgcGVyLWludGVyZmFjZSBiZWhhdmlvciBjaGFyYWN0ZXJpc3RpY3MuCkBAIC0xMTYwLDcg KzExNjAsNyBAQCBzdHJ1Y3QgZXRodG9vbF9yeG5mYyB7CiBzdHJ1Y3QgZXRodG9vbF9yeGZoX2lu ZGlyIHsKIAlfX3UzMgljbWQ7CiAJX191MzIJc2l6ZTsKLQlfX3UzMglyaW5nX2luZGV4WzBdOwor CV9fdTMyCXJpbmdfaW5kZXhbXTsKIH07CiAKIC8qKgpAQCAtMTIwMSw3ICsxMjAxLDcgQEAgc3Ry dWN0IGV0aHRvb2xfcnhmaCB7CiAJX191OAloZnVuYzsKIAlfX3U4CXJzdmQ4WzNdOwogCV9fdTMy CXJzdmQzMjsKLQlfX3UzMiAgIHJzc19jb25maWdbMF07CisJX191MzIgICByc3NfY29uZmlnW107 CiB9OwogI2RlZmluZSBFVEhfUlhGSF9DT05URVhUX0FMTE9DCQkweGZmZmZmZmZmCiAjZGVmaW5l IEVUSF9SWEZIX0lORElSX05PX0NIQU5HRQkweGZmZmZmZmZmCkBAIC0xMjg2LDcgKzEyODYsNyBA QCBzdHJ1Y3QgZXRodG9vbF9kdW1wIHsKIAlfX3UzMgl2ZXJzaW9uOwogCV9fdTMyCWZsYWc7CiAJ X191MzIJbGVuOwotCV9fdTgJZGF0YVswXTsKKwlfX3U4CWRhdGFbXTsKIH07CiAKICNkZWZpbmUg RVRIX0ZXX0RVTVBfRElTQUJMRSAwCkBAIC0xMzE4LDcgKzEzMTgsNyBAQCBzdHJ1Y3QgZXRodG9v bF9nZXRfZmVhdHVyZXNfYmxvY2sgewogc3RydWN0IGV0aHRvb2xfZ2ZlYXR1cmVzIHsKIAlfX3Uz MgljbWQ7CiAJX191MzIJc2l6ZTsKLQlzdHJ1Y3QgZXRodG9vbF9nZXRfZmVhdHVyZXNfYmxvY2sg ZmVhdHVyZXNbMF07CisJc3RydWN0IGV0aHRvb2xfZ2V0X2ZlYXR1cmVzX2Jsb2NrIGZlYXR1cmVz W107CiB9OwogCiAvKioKQEAgLTEzNDAsNyArMTM0MCw3IEBAIHN0cnVjdCBldGh0b29sX3NldF9m ZWF0dXJlc19ibG9jayB7CiBzdHJ1Y3QgZXRodG9vbF9zZmVhdHVyZXMgewogCV9fdTMyCWNtZDsK IAlfX3UzMglzaXplOwotCXN0cnVjdCBldGh0b29sX3NldF9mZWF0dXJlc19ibG9jayBmZWF0dXJl c1swXTsKKwlzdHJ1Y3QgZXRodG9vbF9zZXRfZmVhdHVyZXNfYmxvY2sgZmVhdHVyZXNbXTsKIH07 CiAKIC8qKgpAQCAtMjA4Nyw3ICsyMDg3LDcgQEAgc3RydWN0IGV0aHRvb2xfbGlua19zZXR0aW5n cyB7CiAJX191OAltYXN0ZXJfc2xhdmVfc3RhdGU7CiAJX191OAlyZXNlcnZlZDFbMV07CiAJX191 MzIJcmVzZXJ2ZWRbN107Ci0JX191MzIJbGlua19tb2RlX21hc2tzWzBdOworCV9fdTMyCWxpbmtf bW9kZV9tYXNrc1tdOwogCS8qIGxheW91dCBvZiBsaW5rX21vZGVfbWFza3MgZmllbGRzOgogCSAq IF9fdTMyIG1hcF9zdXBwb3J0ZWRbbGlua19tb2RlX21hc2tzX253b3Jkc107CiAJICogX191MzIg bWFwX2FkdmVydGlzaW5nW2xpbmtfbW9kZV9tYXNrc19ud29yZHNdOwpkaWZmIC0tZ2l0IGEvaW5j bHVkZS91YXBpL2xpbnV4L2Zhbm90aWZ5LmggYi9pbmNsdWRlL3VhcGkvbGludXgvZmFub3RpZnku aAppbmRleCBmMWY4OTEzMmQ2MGUuLjE5N2RmMzQ0MzA3ZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS91 YXBpL2xpbnV4L2Zhbm90aWZ5LmgKKysrIGIvaW5jbHVkZS91YXBpL2xpbnV4L2Zhbm90aWZ5LmgK QEAgLTE2Miw3ICsxNjIsNyBAQCBzdHJ1Y3QgZmFub3RpZnlfZXZlbnRfaW5mb19maWQgewogCSAq IEZvbGxvd2luZyBpcyBhbiBvcGFxdWUgc3RydWN0IGZpbGVfaGFuZGxlIHRoYXQgY2FuIGJlIHBh c3NlZCBhcwogCSAqIGFuIGFyZ3VtZW50IHRvIG9wZW5fYnlfaGFuZGxlX2F0KDIpLgogCSAqLwot CXVuc2lnbmVkIGNoYXIgaGFuZGxlWzBdOworCXVuc2lnbmVkIGNoYXIgaGFuZGxlW107CiB9Owog CiAvKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L2ZpZW1hcC5oIGIvaW5jbHVkZS91 YXBpL2xpbnV4L2ZpZW1hcC5oCmluZGV4IDA3YzFjZGNiNzE1ZS4uMjRjYTBjMDBjYWUzIDEwMDY0 NAotLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvZmllbWFwLmgKKysrIGIvaW5jbHVkZS91YXBpL2xp bnV4L2ZpZW1hcC5oCkBAIC0zNCw3ICszNCw3IEBAIHN0cnVjdCBmaWVtYXAgewogCV9fdTMyIGZt X21hcHBlZF9leHRlbnRzOy8qIG51bWJlciBvZiBleHRlbnRzIHRoYXQgd2VyZSBtYXBwZWQgKG91 dCkgKi8KIAlfX3UzMiBmbV9leHRlbnRfY291bnQ7ICAvKiBzaXplIG9mIGZtX2V4dGVudHMgYXJy YXkgKGluKSAqLwogCV9fdTMyIGZtX3Jlc2VydmVkOwotCXN0cnVjdCBmaWVtYXBfZXh0ZW50IGZt X2V4dGVudHNbMF07IC8qIGFycmF5IG9mIG1hcHBlZCBleHRlbnRzIChvdXQpICovCisJc3RydWN0 IGZpZW1hcF9leHRlbnQgZm1fZXh0ZW50c1tdOyAvKiBhcnJheSBvZiBtYXBwZWQgZXh0ZW50cyAo b3V0KSAqLwogfTsKIAogI2RlZmluZSBGSUVNQVBfTUFYX09GRlNFVAkofjBVTEwpCmRpZmYgLS1n aXQgYS9pbmNsdWRlL3VhcGkvbGludXgvZmlyZXdpcmUtY2Rldi5oIGIvaW5jbHVkZS91YXBpL2xp bnV4L2ZpcmV3aXJlLWNkZXYuaAppbmRleCA1ZWZmYTk4MzI4MDIuLjkyYmUzZWEzYzZlMCAxMDA2 NDQKLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L2ZpcmV3aXJlLWNkZXYuaAorKysgYi9pbmNsdWRl L3VhcGkvbGludXgvZmlyZXdpcmUtY2Rldi5oCkBAIC0xMTgsNyArMTE4LDcgQEAgc3RydWN0IGZ3 X2NkZXZfZXZlbnRfcmVzcG9uc2UgewogCV9fdTMyIHR5cGU7CiAJX191MzIgcmNvZGU7CiAJX191 MzIgbGVuZ3RoOwotCV9fdTMyIGRhdGFbMF07CisJX191MzIgZGF0YVtdOwogfTsKIAogLyoqCkBA IC0xNDIsNyArMTQyLDcgQEAgc3RydWN0IGZ3X2NkZXZfZXZlbnRfcmVxdWVzdCB7CiAJX191NjQg b2Zmc2V0OwogCV9fdTMyIGhhbmRsZTsKIAlfX3UzMiBsZW5ndGg7Ci0JX191MzIgZGF0YVswXTsK KwlfX3UzMiBkYXRhW107CiB9OwogCiAvKioKQEAgLTIwNSw3ICsyMDUsNyBAQCBzdHJ1Y3QgZndf Y2Rldl9ldmVudF9yZXF1ZXN0MiB7CiAJX191MzIgZ2VuZXJhdGlvbjsKIAlfX3UzMiBoYW5kbGU7 CiAJX191MzIgbGVuZ3RoOwotCV9fdTMyIGRhdGFbMF07CisJX191MzIgZGF0YVtdOwogfTsKIAog LyoqCkBAIC0yNjUsNyArMjY1LDcgQEAgc3RydWN0IGZ3X2NkZXZfZXZlbnRfaXNvX2ludGVycnVw dCB7CiAJX191MzIgdHlwZTsKIAlfX3UzMiBjeWNsZTsKIAlfX3UzMiBoZWFkZXJfbGVuZ3RoOwot CV9fdTMyIGhlYWRlclswXTsKKwlfX3UzMiBoZWFkZXJbXTsKIH07CiAKIC8qKgpAQCAtMzU1LDcg KzM1NSw3IEBAIHN0cnVjdCBmd19jZGV2X2V2ZW50X3BoeV9wYWNrZXQgewogCV9fdTMyIHR5cGU7 CiAJX191MzIgcmNvZGU7CiAJX191MzIgbGVuZ3RoOwotCV9fdTMyIGRhdGFbMF07CisJX191MzIg ZGF0YVtdOwogfTsKIAogLyoqCkBAIC04MDMsNyArODAzLDcgQEAgc3RydWN0IGZ3X2NkZXZfc2V0 X2lzb19jaGFubmVscyB7CiAgKi8KIHN0cnVjdCBmd19jZGV2X2lzb19wYWNrZXQgewogCV9fdTMy IGNvbnRyb2w7Ci0JX191MzIgaGVhZGVyWzBdOworCV9fdTMyIGhlYWRlcltdOwogfTsKIAogLyoq CmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvbGludXgvZnMuaCBiL2luY2x1ZGUvdWFwaS9saW51 eC9mcy5oCmluZGV4IGJkZjdiNDA0YjNlNy4uYjdiNTY4NzEwMjljIDEwMDY0NAotLS0gYS9pbmNs dWRlL3VhcGkvbGludXgvZnMuaAorKysgYi9pbmNsdWRlL3VhcGkvbGludXgvZnMuaApAQCAtOTAs NyArOTAsNyBAQCBzdHJ1Y3QgZmlsZV9kZWR1cGVfcmFuZ2UgewogCV9fdTE2IGRlc3RfY291bnQ7 CS8qIGluIC0gdG90YWwgZWxlbWVudHMgaW4gaW5mbyBhcnJheSAqLwogCV9fdTE2IHJlc2VydmVk MTsJLyogbXVzdCBiZSB6ZXJvICovCiAJX191MzIgcmVzZXJ2ZWQyOwkvKiBtdXN0IGJlIHplcm8g Ki8KLQlzdHJ1Y3QgZmlsZV9kZWR1cGVfcmFuZ2VfaW5mbyBpbmZvWzBdOworCXN0cnVjdCBmaWxl X2RlZHVwZV9yYW5nZV9pbmZvIGluZm9bXTsKIH07CiAKIC8qIEFuZCBkeW5hbWljYWxseS10dW5h YmxlIGxpbWl0cyBhbmQgZGVmYXVsdHM6ICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvbGlu dXgvaWZfYWxnLmggYi9pbmNsdWRlL3VhcGkvbGludXgvaWZfYWxnLmgKaW5kZXggZGM1MmExMWJh NmQxLi41NzhiMThhYWI4MjEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC9pZl9hbGcu aAorKysgYi9pbmNsdWRlL3VhcGkvbGludXgvaWZfYWxnLmgKQEAgLTQyLDcgKzQyLDcgQEAgc3Ry dWN0IHNvY2thZGRyX2FsZ19uZXcgewogCiBzdHJ1Y3QgYWZfYWxnX2l2IHsKIAlfX3UzMglpdmxl bjsKLQlfX3U4CWl2WzBdOworCV9fdTgJaXZbXTsKIH07CiAKIC8qIFNvY2tldCBvcHRpb25zICov CmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvbGludXgvaWZfYXJjbmV0LmggYi9pbmNsdWRlL3Vh cGkvbGludXgvaWZfYXJjbmV0LmgKaW5kZXggNjgzODc4MDM2ZDc2Li5iMTIyY2ZhYzcxMjggMTAw NjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC9pZl9hcmNuZXQuaAorKysgYi9pbmNsdWRlL3Vh cGkvbGludXgvaWZfYXJjbmV0LmgKQEAgLTYwLDcgKzYwLDcgQEAgc3RydWN0IGFyY19yZmMxMjAx IHsKIAlfX3U4ICBwcm90bzsJCS8qIHByb3RvY29sIElEIGZpZWxkIC0gdmFyaWVzCQkqLwogCV9f dTggIHNwbGl0X2ZsYWc7CS8qIGZvciB1c2Ugd2l0aCBzcGxpdCBwYWNrZXRzCQkqLwogCV9fYmUx NiAgIHNlcXVlbmNlOwkvKiBzZXF1ZW5jZSBudW1iZXIJCQkqLwotCV9fdTggIHBheWxvYWRbMF07 CS8qIHNwYWNlIHJlbWFpbmluZyBpbiBwYWNrZXQgKDUwNCBieXRlcykqLworCV9fdTggIHBheWxv YWRbXTsJLyogc3BhY2UgcmVtYWluaW5nIGluIHBhY2tldCAoNTA0IGJ5dGVzKSovCiB9OwogI2Rl ZmluZSBSRkMxMjAxX0hEUl9TSVpFIDQKIApAQCAtNjksNyArNjksNyBAQCBzdHJ1Y3QgYXJjX3Jm YzEyMDEgewogICovCiBzdHJ1Y3QgYXJjX3JmYzEwNTEgewogCV9fdTggcHJvdG87CQkvKiBBUkNf UF9SRkMxMDUxX0FSUC9SRkMxMDUxX0lQCSovCi0JX191OCBwYXlsb2FkWzBdOwkvKiA1MDcgYnl0 ZXMJCQkqLworCV9fdTggcGF5bG9hZFtdOwkvKiA1MDcgYnl0ZXMJCQkqLwogfTsKICNkZWZpbmUg UkZDMTA1MV9IRFJfU0laRSAxCiAKQEAgLTgwLDcgKzgwLDcgQEAgc3RydWN0IGFyY19yZmMxMDUx IHsKIHN0cnVjdCBhcmNfZXRoX2VuY2FwIHsKIAlfX3U4IHByb3RvOwkJLyogQWx3YXlzIEFSQ19Q X0VUSEVSCQkJKi8KIAlzdHJ1Y3QgZXRoaGRyIGV0aDsJLyogc3RhbmRhcmQgZXRoZXJuZXQgaGVh ZGVyICh5dWNrISkJKi8KLQlfX3U4IHBheWxvYWRbMF07CS8qIDQ5MyBieXRlcwkJCQkqLworCV9f dTggcGF5bG9hZFtdOwkvKiA0OTMgYnl0ZXMJCQkJKi8KIH07CiAjZGVmaW5lIEVUSF9FTkNBUF9I RFJfU0laRSAxNAogCmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvbGludXgvaWZfcHBwb3guaCBi L2luY2x1ZGUvdWFwaS9saW51eC9pZl9wcHBveC5oCmluZGV4IGU3YTY5M2MyOGYxNi4uOWFiZDgw ZGNjNDZmIDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvaWZfcHBwb3guaAorKysgYi9p bmNsdWRlL3VhcGkvbGludXgvaWZfcHBwb3guaApAQCAtMTIyLDcgKzEyMiw3IEBAIHN0cnVjdCBz b2NrYWRkcl9wcHBvbDJ0cHYzaW42IHsKIHN0cnVjdCBwcHBvZV90YWcgewogCV9fYmUxNiB0YWdf dHlwZTsKIAlfX2JlMTYgdGFnX2xlbjsKLQljaGFyIHRhZ19kYXRhWzBdOworCWNoYXIgdGFnX2Rh dGFbXTsKIH0gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpOwogCiAvKiBUYWcgaWRlbnRpZmllcnMg Ki8KQEAgLTE1MCw3ICsxNTAsNyBAQCBzdHJ1Y3QgcHBwb2VfaGRyIHsKIAlfX3U4IGNvZGU7CiAJ X19iZTE2IHNpZDsKIAlfX2JlMTYgbGVuZ3RoOwotCXN0cnVjdCBwcHBvZV90YWcgdGFnWzBdOwor CXN0cnVjdCBwcHBvZV90YWcgdGFnW107CiB9IF9fcGFja2VkOwogCiAvKiBMZW5ndGggb2YgZW50 aXJlIFBQUG9FICsgUFBQIGhlYWRlciAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4 L2lmX3R1bi5oIGIvaW5jbHVkZS91YXBpL2xpbnV4L2lmX3R1bi5oCmluZGV4IDQ1NGFlMzFiOTNj Ny4uMmVjMDdkZTFkNzNiIDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvaWZfdHVuLmgK KysrIGIvaW5jbHVkZS91YXBpL2xpbnV4L2lmX3R1bi5oCkBAIC0xMDgsNyArMTA4LDcgQEAgc3Ry dWN0IHR1bl9waSB7CiBzdHJ1Y3QgdHVuX2ZpbHRlciB7CiAJX191MTYgIGZsYWdzOyAvKiBUVU5f RkxUXyBmbGFncyBzZWUgYWJvdmUgKi8KIAlfX3UxNiAgY291bnQ7IC8qIE51bWJlciBvZiBhZGRy ZXNzZXMgKi8KLQlfX3U4ICAgYWRkclswXVtFVEhfQUxFTl07CisJX191OCAgIGFkZHJbXVtFVEhf QUxFTl07CiB9OwogCiAjZW5kaWYgLyogX1VBUElfX0lGX1RVTl9IICovCmRpZmYgLS1naXQgYS9p bmNsdWRlL3VhcGkvbGludXgvaWdtcC5oIGIvaW5jbHVkZS91YXBpL2xpbnV4L2lnbXAuaAppbmRl eCA5MGMyOGJjNDY2YzYuLjU5MzBmMjQzN2NkMSAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2xp bnV4L2lnbXAuaAorKysgYi9pbmNsdWRlL3VhcGkvbGludXgvaWdtcC5oCkBAIC00OCw3ICs0OCw3 IEBAIHN0cnVjdCBpZ21wdjNfZ3JlYyB7CiAJX191OAlncmVjX2F1eHdvcmRzOwogCV9fYmUxNgln cmVjX25zcmNzOwogCV9fYmUzMglncmVjX21jYTsKLQlfX2JlMzIJZ3JlY19zcmNbMF07CisJX19i ZTMyCWdyZWNfc3JjW107CiB9OwogCiBzdHJ1Y3QgaWdtcHYzX3JlcG9ydCB7CkBAIC01Nyw3ICs1 Nyw3IEBAIHN0cnVjdCBpZ21wdjNfcmVwb3J0IHsKIAlfX3N1bTE2IGNzdW07CiAJX19iZTE2IHJl c3YyOwogCV9fYmUxNiBuZ3JlYzsKLQlzdHJ1Y3QgaWdtcHYzX2dyZWMgZ3JlY1swXTsKKwlzdHJ1 Y3QgaWdtcHYzX2dyZWMgZ3JlY1tdOwogfTsKIAogc3RydWN0IGlnbXB2M19xdWVyeSB7CkBAIC03 OCw3ICs3OCw3IEBAIHN0cnVjdCBpZ21wdjNfcXVlcnkgewogI2VuZGlmCiAJX191OCBxcWljOwog CV9fYmUxNiBuc3JjczsKLQlfX2JlMzIgc3Jjc1swXTsKKwlfX2JlMzIgc3Jjc1tdOwogfTsKIAog I2RlZmluZSBJR01QX0hPU1RfTUVNQkVSU0hJUF9RVUVSWQkweDExCS8qIEZyb20gUkZDMTExMiAq LwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L2luZXRfZGlhZy5oIGIvaW5jbHVkZS91 YXBpL2xpbnV4L2luZXRfZGlhZy5oCmluZGV4IDIwZWU5M2YwZjg3Ni4uNTA2NTVkZTA0YzliIDEw MDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvaW5ldF9kaWFnLmgKKysrIGIvaW5jbHVkZS91 YXBpL2xpbnV4L2luZXRfZGlhZy5oCkBAIC0xMDQsNyArMTA0LDcgQEAgc3RydWN0IGluZXRfZGlh Z19ob3N0Y29uZCB7CiAJX191OAlmYW1pbHk7CiAJX191OAlwcmVmaXhfbGVuOwogCWludAlwb3J0 OwotCV9fYmUzMglhZGRyWzBdOworCV9fYmUzMglhZGRyW107CiB9OwogCiBzdHJ1Y3QgaW5ldF9k aWFnX21hcmtjb25kIHsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9pbm90aWZ5Lmgg Yi9pbmNsdWRlL3VhcGkvbGludXgvaW5vdGlmeS5oCmluZGV4IDg4NGI0ODQ2YjYzMC4uYjNlMTY1 ODUzZDViIDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvaW5vdGlmeS5oCisrKyBiL2lu Y2x1ZGUvdWFwaS9saW51eC9pbm90aWZ5LmgKQEAgLTIzLDcgKzIzLDcgQEAgc3RydWN0IGlub3Rp ZnlfZXZlbnQgewogCV9fdTMyCQltYXNrOwkJLyogd2F0Y2ggbWFzayAqLwogCV9fdTMyCQljb29r aWU7CQkvKiBjb29raWUgdG8gc3luY2hyb25pemUgdHdvIGV2ZW50cyAqLwogCV9fdTMyCQlsZW47 CQkvKiBsZW5ndGggKGluY2x1ZGluZyBudWxscykgb2YgbmFtZSAqLwotCWNoYXIJCW5hbWVbMF07 CS8qIHN0dWIgZm9yIHBvc3NpYmxlIG5hbWUgKi8KKwljaGFyCQluYW1lW107CS8qIHN0dWIgZm9y IHBvc3NpYmxlIG5hbWUgKi8KIH07CiAKIC8qIHRoZSBmb2xsb3dpbmcgYXJlIGxlZ2FsLCBpbXBs ZW1lbnRlZCBldmVudHMgdGhhdCB1c2VyLXNwYWNlIGNhbiB3YXRjaCBmb3IgKi8KZGlmZiAtLWdp dCBhL2luY2x1ZGUvdWFwaS9saW51eC9pb191cmluZy5oIGIvaW5jbHVkZS91YXBpL2xpbnV4L2lv X3VyaW5nLmgKaW5kZXggNzc2ZTAyNzhmOWRkLi43ODIyZWY5ZDg2MjggMTAwNjQ0Ci0tLSBhL2lu Y2x1ZGUvdWFwaS9saW51eC9pb191cmluZy5oCisrKyBiL2luY2x1ZGUvdWFwaS9saW51eC9pb191 cmluZy5oCkBAIC00ODYsNyArNDg2LDcgQEAgc3RydWN0IGlvX3VyaW5nX3Byb2JlIHsKIAlfX3U4 IG9wc19sZW47CS8qIGxlbmd0aCBvZiBvcHNbXSBhcnJheSBiZWxvdyAqLwogCV9fdTE2IHJlc3Y7 CiAJX191MzIgcmVzdjJbM107Ci0Jc3RydWN0IGlvX3VyaW5nX3Byb2JlX29wIG9wc1swXTsKKwlz dHJ1Y3QgaW9fdXJpbmdfcHJvYmVfb3Agb3BzW107CiB9OwogCiBzdHJ1Y3QgaW9fdXJpbmdfcmVz dHJpY3Rpb24gewpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L2lwLmggYi9pbmNsdWRl L3VhcGkvbGludXgvaXAuaAppbmRleCBlMDBiYmI5YzQ3YmIuLjk2MWVjMTZhMjZiOCAxMDA2NDQK LS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L2lwLmgKKysrIGIvaW5jbHVkZS91YXBpL2xpbnV4L2lw LmgKQEAgLTExMiwxMyArMTEyLDEzIEBAIHN0cnVjdCBpcF9hdXRoX2hkciB7CiAJX19iZTE2IHJl c2VydmVkOwogCV9fYmUzMiBzcGk7CiAJX19iZTMyIHNlcV9ubzsJCS8qIFNlcXVlbmNlIG51bWJl ciAqLwotCV9fdTggIGF1dGhfZGF0YVswXTsJLyogVmFyaWFibGUgbGVuIGJ1dCA+PTQuIE1pbmQg dGhlIDY0IGJpdCBhbGlnbm1lbnQhICovCisJX191OCAgYXV0aF9kYXRhW107CS8qIFZhcmlhYmxl IGxlbiBidXQgPj00LiBNaW5kIHRoZSA2NCBiaXQgYWxpZ25tZW50ISAqLwogfTsKIAogc3RydWN0 IGlwX2VzcF9oZHIgewogCV9fYmUzMiBzcGk7CiAJX19iZTMyIHNlcV9ubzsJCS8qIFNlcXVlbmNl IG51bWJlciAqLwotCV9fdTggIGVuY19kYXRhWzBdOwkvKiBWYXJpYWJsZSBsZW4gYnV0ID49OC4g TWluZCB0aGUgNjQgYml0IGFsaWdubWVudCEgKi8KKwlfX3U4ICBlbmNfZGF0YVtdOwkvKiBWYXJp YWJsZSBsZW4gYnV0ID49OC4gTWluZCB0aGUgNjQgYml0IGFsaWdubWVudCEgKi8KIH07CiAKIHN0 cnVjdCBpcF9jb21wX2hkciB7CmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvbGludXgvaXBfdnMu aCBiL2luY2x1ZGUvdWFwaS9saW51eC9pcF92cy5oCmluZGV4IDQxMDJkZGNiNGUxNC4uMWVkMjM0 ZTdmMjUxIDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvaXBfdnMuaAorKysgYi9pbmNs dWRlL3VhcGkvbGludXgvaXBfdnMuaApAQCAtMjU0LDcgKzI1NCw3IEBAIHN0cnVjdCBpcF92c19n ZXRfZGVzdHMgewogCXVuc2lnbmVkIGludAkJbnVtX2Rlc3RzOwogCiAJLyogdGhlIHJlYWwgc2Vy dmVycyAqLwotCXN0cnVjdCBpcF92c19kZXN0X2VudHJ5CWVudHJ5dGFibGVbMF07CisJc3RydWN0 IGlwX3ZzX2Rlc3RfZW50cnkJZW50cnl0YWJsZVtdOwogfTsKIAogCkBAIC0yNjQsNyArMjY0LDcg QEAgc3RydWN0IGlwX3ZzX2dldF9zZXJ2aWNlcyB7CiAJdW5zaWduZWQgaW50CQludW1fc2Vydmlj ZXM7CiAKIAkvKiBzZXJ2aWNlIHRhYmxlICovCi0Jc3RydWN0IGlwX3ZzX3NlcnZpY2VfZW50cnkg ZW50cnl0YWJsZVswXTsKKwlzdHJ1Y3QgaXBfdnNfc2VydmljZV9lbnRyeSBlbnRyeXRhYmxlW107 CiB9OwogCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9pc29fZnMuaCBiL2luY2x1 ZGUvdWFwaS9saW51eC9pc29fZnMuaAppbmRleCBhMjU1NTE3NmY2ZDEuLjc1ODE3OGY1YjUyZCAx MDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L2lzb19mcy5oCisrKyBiL2luY2x1ZGUvdWFw aS9saW51eC9pc29fZnMuaApAQCAtMTM3LDcgKzEzNyw3IEBAIHN0cnVjdCBpc29fcGF0aF90YWJs ZXsKIAlfX3U4ICBuYW1lX2xlblsyXTsJLyogNzIxICovCiAJX191OCAgZXh0ZW50WzRdOwkvKiA3 MzEgKi8KIAlfX3U4ICBwYXJlbnRbMl07CS8qIDcyMSAqLwotCWNoYXIgbmFtZVswXTsKKwljaGFy IG5hbWVbXTsKIH0gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CiAKIC8qIGhpZ2ggc2llcnJhIGlz IGlkZW50aWNhbCB0byBpc28sIGV4Y2VwdCB0aGF0IHRoZSBkYXRlIGlzIG9ubHkgNiBieXRlcywg YW5kCkBAIC0xNTQsNyArMTU0LDcgQEAgc3RydWN0IGlzb19kaXJlY3RvcnlfcmVjb3JkIHsKIAlf X3U4IGludGVybGVhdmUJCQlbSVNPRENMICgyOCwgMjgpXTsgLyogNzExICovCiAJX191OCB2b2x1 bWVfc2VxdWVuY2VfbnVtYmVyCVtJU09EQ0wgKDI5LCAzMildOyAvKiA3MjMgKi8KIAlfX3U4IG5h bWVfbGVuCQkJW0lTT0RDTCAoMzMsIDMzKV07IC8qIDcxMSAqLwotCWNoYXIgbmFtZQkJCVswXTsK KwljaGFyIG5hbWUJCQlbXTsKIH0gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CiAKICNkZWZpbmUg SVNPRlNfQkxPQ0tfQklUUyAxMQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L2pmZnMy LmggYi9pbmNsdWRlL3VhcGkvbGludXgvamZmczIuaAppbmRleCA3ODRiYTBiOTY5MGEuLjYzN2Vl NGE3OTNjZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L2pmZnMyLmgKKysrIGIvaW5j bHVkZS91YXBpL2xpbnV4L2pmZnMyLmgKQEAgLTEyMyw3ICsxMjMsNyBAQCBzdHJ1Y3QgamZmczJf cmF3X2RpcmVudAogCV9fdTggdW51c2VkWzJdOwogCWppbnQzMl90IG5vZGVfY3JjOwogCWppbnQz Ml90IG5hbWVfY3JjOwotCV9fdTggbmFtZVswXTsKKwlfX3U4IG5hbWVbXTsKIH07CiAKIC8qIFRo ZSBKRkZTMiByYXcgaW5vZGUgc3RydWN0dXJlOiBVc2VkIGZvciBzdG9yYWdlIG9uIHBoeXNpY2Fs IG1lZGlhLiAgKi8KQEAgLTE1NSw3ICsxNTUsNyBAQCBzdHJ1Y3QgamZmczJfcmF3X2lub2RlCiAJ amludDE2X3QgZmxhZ3M7CSAgICAgLyogU2VlIEpGRlMyX0lOT19GTEFHXyogKi8KIAlqaW50MzJf dCBkYXRhX2NyYzsgICAvKiBDUkMgZm9yIHRoZSAoY29tcHJlc3NlZCkgZGF0YS4gICovCiAJamlu dDMyX3Qgbm9kZV9jcmM7ICAgLyogQ1JDIGZvciB0aGUgcmF3IGlub2RlIChleGNsdWRpbmcgZGF0 YSkgICovCi0JX191OCBkYXRhWzBdOworCV9fdTggZGF0YVtdOwogfTsKIAogc3RydWN0IGpmZnMy X3Jhd194YXR0ciB7CkBAIC0xNzAsNyArMTcwLDcgQEAgc3RydWN0IGpmZnMyX3Jhd194YXR0ciB7 CiAJamludDE2X3QgdmFsdWVfbGVuOwogCWppbnQzMl90IGRhdGFfY3JjOwogCWppbnQzMl90IG5v ZGVfY3JjOwotCV9fdTggZGF0YVswXTsKKwlfX3U4IGRhdGFbXTsKIH0gX19hdHRyaWJ1dGVfXygo cGFja2VkKSk7CiAKIHN0cnVjdCBqZmZzMl9yYXdfeHJlZgpAQCAtMTk2LDcgKzE5Niw3IEBAIHN0 cnVjdCBqZmZzMl9yYXdfc3VtbWFyeQogCWppbnQzMl90IHBhZGRlZDsJLyogc3VtIG9mIHRoZSBz aXplIG9mIHBhZGRpbmcgbm9kZXMgKi8KIAlqaW50MzJfdCBzdW1fY3JjOwkvKiBzdW1tYXJ5IGlu Zm9ybWF0aW9uIGNyYyAqLwogCWppbnQzMl90IG5vZGVfY3JjOyAJLyogbm9kZSBjcmMgKi8KLQlq aW50MzJfdCBzdW1bMF07IAkvKiBpbm9kZSBzdW1tYXJ5IGluZm8gKi8KKwlqaW50MzJfdCBzdW1b XTsgCS8qIGlub2RlIHN1bW1hcnkgaW5mbyAqLwogfTsKIAogdW5pb24gamZmczJfbm9kZV91bmlv bgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L2tjb3YuaCBiL2luY2x1ZGUvdWFwaS9s aW51eC9rY292LmgKaW5kZXggMWQwMzUwZTQ0YWUzLi5lZDk1ZGJhOWZhMzcgMTAwNjQ0Ci0tLSBh L2luY2x1ZGUvdWFwaS9saW51eC9rY292LmgKKysrIGIvaW5jbHVkZS91YXBpL2xpbnV4L2tjb3Yu aApAQCAtMTMsNyArMTMsNyBAQCBzdHJ1Y3Qga2Nvdl9yZW1vdGVfYXJnIHsKIAlfX3UzMgkJYXJl YV9zaXplOwkvKiBMZW5ndGggb2YgY292ZXJhZ2UgYnVmZmVyIGluIHdvcmRzICovCiAJX191MzIJ CW51bV9oYW5kbGVzOwkvKiBTaXplIG9mIGhhbmRsZXMgYXJyYXkgKi8KIAlfX2FsaWduZWRfdTY0 CWNvbW1vbl9oYW5kbGU7Ci0JX19hbGlnbmVkX3U2NAloYW5kbGVzWzBdOworCV9fYWxpZ25lZF91 NjQJaGFuZGxlc1tdOwogfTsKIAogI2RlZmluZSBLQ09WX1JFTU9URV9NQVhfSEFORExFUwkJMHgx MDAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9rdm0uaCBiL2luY2x1ZGUvdWFwaS9s aW51eC9rdm0uaAppbmRleCA1MDg4YmQ5ZjE5MjIuLjc0ZGM4YmFmY2I5ZSAxMDA2NDQKLS0tIGEv aW5jbHVkZS91YXBpL2xpbnV4L2t2bS5oCisrKyBiL2luY2x1ZGUvdWFwaS9saW51eC9rdm0uaApA QCAtNTQyLDcgKzU0Miw3IEBAIHN0cnVjdCBrdm1fY29hbGVzY2VkX21taW8gewogCiBzdHJ1Y3Qg a3ZtX2NvYWxlc2NlZF9tbWlvX3JpbmcgewogCV9fdTMyIGZpcnN0LCBsYXN0OwotCXN0cnVjdCBr dm1fY29hbGVzY2VkX21taW8gY29hbGVzY2VkX21taW9bMF07CisJc3RydWN0IGt2bV9jb2FsZXNj ZWRfbW1pbyBjb2FsZXNjZWRfbW1pb1tdOwogfTsKIAogI2RlZmluZSBLVk1fQ09BTEVTQ0VEX01N SU9fTUFYIFwKQEAgLTYyMSw3ICs2MjEsNyBAQCBzdHJ1Y3Qga3ZtX2NsZWFyX2RpcnR5X2xvZyB7 CiAvKiBmb3IgS1ZNX1NFVF9TSUdOQUxfTUFTSyAqLwogc3RydWN0IGt2bV9zaWduYWxfbWFzayB7 CiAJX191MzIgbGVuOwotCV9fdTggIHNpZ3NldFswXTsKKwlfX3U4ICBzaWdzZXRbXTsKIH07CiAK IC8qIGZvciBLVk1fVFBSX0FDQ0VTU19SRVBPUlRJTkcgKi8KQEAgLTEyMjEsNyArMTIyMSw3IEBA IHN0cnVjdCBrdm1faXJxX3JvdXRpbmdfZW50cnkgewogc3RydWN0IGt2bV9pcnFfcm91dGluZyB7 CiAJX191MzIgbnI7CiAJX191MzIgZmxhZ3M7Ci0Jc3RydWN0IGt2bV9pcnFfcm91dGluZ19lbnRy eSBlbnRyaWVzWzBdOworCXN0cnVjdCBrdm1faXJxX3JvdXRpbmdfZW50cnkgZW50cmllc1tdOwog fTsKIAogI2VuZGlmCkBAIC0xMzQxLDcgKzEzNDEsNyBAQCBzdHJ1Y3Qga3ZtX2RpcnR5X3RsYiB7 CiAKIHN0cnVjdCBrdm1fcmVnX2xpc3QgewogCV9fdTY0IG47IC8qIG51bWJlciBvZiByZWdzICov Ci0JX191NjQgcmVnWzBdOworCV9fdTY0IHJlZ1tdOwogfTsKIAogc3RydWN0IGt2bV9vbmVfcmVn IHsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9taW5peF9mcy5oIGIvaW5jbHVkZS91 YXBpL2xpbnV4L21pbml4X2ZzLmgKaW5kZXggOTVkYmNiMTdlYWNkLi44ZDljYThiMmMzNTcgMTAw NjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC9taW5peF9mcy5oCisrKyBiL2luY2x1ZGUvdWFw aS9saW51eC9taW5peF9mcy5oCkBAIC05NywxMSArOTcsMTEgQEAgc3RydWN0IG1pbml4M19zdXBl cl9ibG9jayB7CiAKIHN0cnVjdCBtaW5peF9kaXJfZW50cnkgewogCV9fdTE2IGlub2RlOwotCWNo YXIgbmFtZVswXTsKKwljaGFyIG5hbWVbXTsKIH07CiAKIHN0cnVjdCBtaW5peDNfZGlyX2VudHJ5 IHsKIAlfX3UzMiBpbm9kZTsKLQljaGFyIG5hbWVbMF07CisJY2hhciBuYW1lW107CiB9OwogI2Vu ZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvbGludXgvbW1jL2lvY3RsLmggYi9pbmNsdWRl L3VhcGkvbGludXgvbW1jL2lvY3RsLmgKaW5kZXggMjdhMzk4NDdkNTVjLi5lNzQwMWFkZTY4MjIg MTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC9tbWMvaW9jdGwuaAorKysgYi9pbmNsdWRl L3VhcGkvbGludXgvbW1jL2lvY3RsLmgKQEAgLTU4LDcgKzU4LDcgQEAgc3RydWN0IG1tY19pb2Nf Y21kIHsKICAqLwogc3RydWN0IG1tY19pb2NfbXVsdGlfY21kIHsKIAlfX3U2NCBudW1fb2ZfY21k czsKLQlzdHJ1Y3QgbW1jX2lvY19jbWQgY21kc1swXTsKKwlzdHJ1Y3QgbW1jX2lvY19jbWQgY21k c1tdOwogfTsKIAogI2RlZmluZSBNTUNfSU9DX0NNRCBfSU9XUihNTUNfQkxPQ0tfTUFKT1IsIDAs IHN0cnVjdCBtbWNfaW9jX2NtZCkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9uZGN0 bC5oIGIvaW5jbHVkZS91YXBpL2xpbnV4L25kY3RsLmgKaW5kZXggMTdlMDJiNjRlYTJlLi43MzUx NmUyNjM2MjcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC9uZGN0bC5oCisrKyBiL2lu Y2x1ZGUvdWFwaS9saW51eC9uZGN0bC5oCkBAIC0zMCwyNSArMzAsMjUgQEAgc3RydWN0IG5kX2Nt ZF9nZXRfY29uZmlnX2RhdGFfaGRyIHsKIAlfX3UzMiBpbl9vZmZzZXQ7CiAJX191MzIgaW5fbGVu Z3RoOwogCV9fdTMyIHN0YXR1czsKLQlfX3U4IG91dF9idWZbMF07CisJX191OCBvdXRfYnVmW107 CiB9IF9fcGFja2VkOwogCiBzdHJ1Y3QgbmRfY21kX3NldF9jb25maWdfaGRyIHsKIAlfX3UzMiBp bl9vZmZzZXQ7CiAJX191MzIgaW5fbGVuZ3RoOwotCV9fdTggaW5fYnVmWzBdOworCV9fdTggaW5f YnVmW107CiB9IF9fcGFja2VkOwogCiBzdHJ1Y3QgbmRfY21kX3ZlbmRvcl9oZHIgewogCV9fdTMy IG9wY29kZTsKIAlfX3UzMiBpbl9sZW5ndGg7Ci0JX191OCBpbl9idWZbMF07CisJX191OCBpbl9i dWZbXTsKIH0gX19wYWNrZWQ7CiAKIHN0cnVjdCBuZF9jbWRfdmVuZG9yX3RhaWwgewogCV9fdTMy IHN0YXR1czsKIAlfX3UzMiBvdXRfbGVuZ3RoOwotCV9fdTggb3V0X2J1ZlswXTsKKwlfX3U4IG91 dF9idWZbXTsKIH0gX19wYWNrZWQ7CiAKIHN0cnVjdCBuZF9jbWRfYXJzX2NhcCB7CkBAIC04Niw3 ICs4Niw3IEBAIHN0cnVjdCBuZF9jbWRfYXJzX3N0YXR1cyB7CiAJCV9fdTMyIHJlc2VydmVkOwog CQlfX3U2NCBlcnJfYWRkcmVzczsKIAkJX191NjQgbGVuZ3RoOwotCX0gX19wYWNrZWQgcmVjb3Jk c1swXTsKKwl9IF9fcGFja2VkIHJlY29yZHNbXTsKIH0gX19wYWNrZWQ7CiAKIHN0cnVjdCBuZF9j bWRfY2xlYXJfZXJyb3IgewpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L25ldF9kcm9w bW9uLmggYi9pbmNsdWRlL3VhcGkvbGludXgvbmV0X2Ryb3Btb24uaAppbmRleCAxYmJlYThmMDY4 MWUuLjg0ZjYyMmE2NmE3YSAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L25ldF9kcm9w bW9uLmgKKysrIGIvaW5jbHVkZS91YXBpL2xpbnV4L25ldF9kcm9wbW9uLmgKQEAgLTI5LDEyICsy OSwxMiBAQCBzdHJ1Y3QgbmV0X2RtX2NvbmZpZ19lbnRyeSB7CiAKIHN0cnVjdCBuZXRfZG1fY29u ZmlnX21zZyB7CiAJX191MzIgZW50cmllczsKLQlzdHJ1Y3QgbmV0X2RtX2NvbmZpZ19lbnRyeSBv cHRpb25zWzBdOworCXN0cnVjdCBuZXRfZG1fY29uZmlnX2VudHJ5IG9wdGlvbnNbXTsKIH07CiAK IHN0cnVjdCBuZXRfZG1fYWxlcnRfbXNnIHsKIAlfX3UzMiBlbnRyaWVzOwotCXN0cnVjdCBuZXRf ZG1fZHJvcF9wb2ludCBwb2ludHNbMF07CisJc3RydWN0IG5ldF9kbV9kcm9wX3BvaW50IHBvaW50 c1tdOwogfTsKIAogc3RydWN0IG5ldF9kbV91c2VyX21zZyB7CmRpZmYgLS1naXQgYS9pbmNsdWRl L3VhcGkvbGludXgvbmV0ZmlsdGVyL3hfdGFibGVzLmggYi9pbmNsdWRlL3VhcGkvbGludXgvbmV0 ZmlsdGVyL3hfdGFibGVzLmgKaW5kZXggYjhjNmJiMjMzYWMxLi43OTZhZjgzYTk2M2EgMTAwNjQ0 Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC9uZXRmaWx0ZXIveF90YWJsZXMuaAorKysgYi9pbmNs dWRlL3VhcGkvbGludXgvbmV0ZmlsdGVyL3hfdGFibGVzLmgKQEAgLTI4LDcgKzI4LDcgQEAgc3Ry dWN0IHh0X2VudHJ5X21hdGNoIHsKIAkJX191MTYgbWF0Y2hfc2l6ZTsKIAl9IHU7CiAKLQl1bnNp Z25lZCBjaGFyIGRhdGFbMF07CisJdW5zaWduZWQgY2hhciBkYXRhW107CiB9OwogCiBzdHJ1Y3Qg eHRfZW50cnlfdGFyZ2V0IHsKQEAgLTExOSw3ICsxMTksNyBAQCBzdHJ1Y3QgeHRfY291bnRlcnNf aW5mbyB7CiAJdW5zaWduZWQgaW50IG51bV9jb3VudGVyczsKIAogCS8qIFRoZSBjb3VudGVycyAo YWN0dWFsbHkgYG51bWJlcicgb2YgdGhlc2UpLiAqLwotCXN0cnVjdCB4dF9jb3VudGVycyBjb3Vu dGVyc1swXTsKKwlzdHJ1Y3QgeHRfY291bnRlcnMgY291bnRlcnNbXTsKIH07CiAKICNkZWZpbmUg WFRfSU5WX1BST1RPCQkweDQwCS8qIEludmVydCB0aGUgc2Vuc2Ugb2YgUFJPVE8uICovCmRpZmYg LS1naXQgYS9pbmNsdWRlL3VhcGkvbGludXgvbmV0ZmlsdGVyX2FycC9hcnBfdGFibGVzLmggYi9p bmNsdWRlL3VhcGkvbGludXgvbmV0ZmlsdGVyX2FycC9hcnBfdGFibGVzLmgKaW5kZXggYmJmNWFm MmI2N2E4Li5hNmFjMjQ2M2Y3ODcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC9uZXRm aWx0ZXJfYXJwL2FycF90YWJsZXMuaAorKysgYi9pbmNsdWRlL3VhcGkvbGludXgvbmV0ZmlsdGVy X2FycC9hcnBfdGFibGVzLmgKQEAgLTEwOSw3ICsxMDksNyBAQCBzdHJ1Y3QgYXJwdF9lbnRyeQog CXN0cnVjdCB4dF9jb3VudGVycyBjb3VudGVyczsKIAogCS8qIFRoZSBtYXRjaGVzIChpZiBhbnkp LCB0aGVuIHRoZSB0YXJnZXQuICovCi0JdW5zaWduZWQgY2hhciBlbGVtc1swXTsKKwl1bnNpZ25l ZCBjaGFyIGVsZW1zW107CiB9OwogCiAvKgpAQCAtMTgxLDcgKzE4MSw3IEBAIHN0cnVjdCBhcnB0 X3JlcGxhY2UgewogCXN0cnVjdCB4dF9jb3VudGVycyBfX3VzZXIgKmNvdW50ZXJzOwogCiAJLyog VGhlIGVudHJpZXMgKGhhbmcgb2ZmIGVuZDogbm90IHJlYWxseSBhbiBhcnJheSkuICovCi0Jc3Ry dWN0IGFycHRfZW50cnkgZW50cmllc1swXTsKKwlzdHJ1Y3QgYXJwdF9lbnRyeSBlbnRyaWVzW107 CiB9OwogCiAvKiBUaGUgYXJndW1lbnQgdG8gQVJQVF9TT19HRVRfRU5UUklFUy4gKi8KQEAgLTE5 Myw3ICsxOTMsNyBAQCBzdHJ1Y3QgYXJwdF9nZXRfZW50cmllcyB7CiAJdW5zaWduZWQgaW50IHNp emU7CiAKIAkvKiBUaGUgZW50cmllcy4gKi8KLQlzdHJ1Y3QgYXJwdF9lbnRyeSBlbnRyeXRhYmxl WzBdOworCXN0cnVjdCBhcnB0X2VudHJ5IGVudHJ5dGFibGVbXTsKIH07CiAKIC8qIEhlbHBlciBm dW5jdGlvbnMgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9uZXRmaWx0ZXJfYnJp ZGdlL2VidF9hbW9uZy5oIGIvaW5jbHVkZS91YXBpL2xpbnV4L25ldGZpbHRlcl9icmlkZ2UvZWJ0 X2Ftb25nLmgKaW5kZXggOWFjZjc1N2JjMWY3Li43M2IyNmEyODBjNGYgMTAwNjQ0Ci0tLSBhL2lu Y2x1ZGUvdWFwaS9saW51eC9uZXRmaWx0ZXJfYnJpZGdlL2VidF9hbW9uZy5oCisrKyBiL2luY2x1 ZGUvdWFwaS9saW51eC9uZXRmaWx0ZXJfYnJpZGdlL2VidF9hbW9uZy5oCkBAIC00MCw3ICs0MCw3 IEBAIHN0cnVjdCBlYnRfbWFjX3dvcm1oYXNoX3R1cGxlIHsKIHN0cnVjdCBlYnRfbWFjX3dvcm1o YXNoIHsKIAlpbnQgdGFibGVbMjU3XTsKIAlpbnQgcG9vbHNpemU7Ci0Jc3RydWN0IGVidF9tYWNf d29ybWhhc2hfdHVwbGUgcG9vbFswXTsKKwlzdHJ1Y3QgZWJ0X21hY193b3JtaGFzaF90dXBsZSBw b29sW107CiB9OwogCiAjZGVmaW5lIGVidF9tYWNfd29ybWhhc2hfc2l6ZSh4KSAoKHgpID8gc2l6 ZW9mKHN0cnVjdCBlYnRfbWFjX3dvcm1oYXNoKSBcCmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkv bGludXgvbmV0ZmlsdGVyX2lwdjQvaXBfdGFibGVzLmggYi9pbmNsdWRlL3VhcGkvbGludXgvbmV0 ZmlsdGVyX2lwdjQvaXBfdGFibGVzLmgKaW5kZXggNTBjN2ZlZTYyNWFlLi4xNDg1ZGYyOGIyMzkg MTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC9uZXRmaWx0ZXJfaXB2NC9pcF90YWJsZXMu aAorKysgYi9pbmNsdWRlL3VhcGkvbGludXgvbmV0ZmlsdGVyX2lwdjQvaXBfdGFibGVzLmgKQEAg LTEyMSw3ICsxMjEsNyBAQCBzdHJ1Y3QgaXB0X2VudHJ5IHsKIAlzdHJ1Y3QgeHRfY291bnRlcnMg Y291bnRlcnM7CiAKIAkvKiBUaGUgbWF0Y2hlcyAoaWYgYW55KSwgdGhlbiB0aGUgdGFyZ2V0LiAq LwotCXVuc2lnbmVkIGNoYXIgZWxlbXNbMF07CisJdW5zaWduZWQgY2hhciBlbGVtc1tdOwogfTsK IAogLyoKQEAgLTIwMyw3ICsyMDMsNyBAQCBzdHJ1Y3QgaXB0X3JlcGxhY2UgewogCXN0cnVjdCB4 dF9jb3VudGVycyBfX3VzZXIgKmNvdW50ZXJzOwogCiAJLyogVGhlIGVudHJpZXMgKGhhbmcgb2Zm IGVuZDogbm90IHJlYWxseSBhbiBhcnJheSkuICovCi0Jc3RydWN0IGlwdF9lbnRyeSBlbnRyaWVz WzBdOworCXN0cnVjdCBpcHRfZW50cnkgZW50cmllc1tdOwogfTsKIAogLyogVGhlIGFyZ3VtZW50 IHRvIElQVF9TT19HRVRfRU5UUklFUy4gKi8KQEAgLTIxNSw3ICsyMTUsNyBAQCBzdHJ1Y3QgaXB0 X2dldF9lbnRyaWVzIHsKIAl1bnNpZ25lZCBpbnQgc2l6ZTsKIAogCS8qIFRoZSBlbnRyaWVzLiAq LwotCXN0cnVjdCBpcHRfZW50cnkgZW50cnl0YWJsZVswXTsKKwlzdHJ1Y3QgaXB0X2VudHJ5IGVu dHJ5dGFibGVbXTsKIH07CiAKIC8qIEhlbHBlciBmdW5jdGlvbnMgKi8KZGlmZiAtLWdpdCBhL2lu Y2x1ZGUvdWFwaS9saW51eC9uZXRmaWx0ZXJfaXB2Ni9pcDZfdGFibGVzLmggYi9pbmNsdWRlL3Vh cGkvbGludXgvbmV0ZmlsdGVyX2lwdjYvaXA2X3RhYmxlcy5oCmluZGV4IGQ5ZTM2NGY5NmE1Yy4u NzY2ZThlMGJjYzY4IDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvbmV0ZmlsdGVyX2lw djYvaXA2X3RhYmxlcy5oCisrKyBiL2luY2x1ZGUvdWFwaS9saW51eC9uZXRmaWx0ZXJfaXB2Ni9p cDZfdGFibGVzLmgKQEAgLTI0Myw3ICsyNDMsNyBAQCBzdHJ1Y3QgaXA2dF9yZXBsYWNlIHsKIAlz dHJ1Y3QgeHRfY291bnRlcnMgX191c2VyICpjb3VudGVyczsKIAogCS8qIFRoZSBlbnRyaWVzICho YW5nIG9mZiBlbmQ6IG5vdCByZWFsbHkgYW4gYXJyYXkpLiAqLwotCXN0cnVjdCBpcDZ0X2VudHJ5 IGVudHJpZXNbMF07CisJc3RydWN0IGlwNnRfZW50cnkgZW50cmllc1tdOwogfTsKIAogLyogVGhl IGFyZ3VtZW50IHRvIElQNlRfU09fR0VUX0VOVFJJRVMuICovCkBAIC0yNTUsNyArMjU1LDcgQEAg c3RydWN0IGlwNnRfZ2V0X2VudHJpZXMgewogCXVuc2lnbmVkIGludCBzaXplOwogCiAJLyogVGhl IGVudHJpZXMuICovCi0Jc3RydWN0IGlwNnRfZW50cnkgZW50cnl0YWJsZVswXTsKKwlzdHJ1Y3Qg aXA2dF9lbnRyeSBlbnRyeXRhYmxlW107CiB9OwogCiAvKiBIZWxwZXIgZnVuY3Rpb25zICovCmRp ZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvbGludXgvcGVyZl9ldmVudC5oIGIvaW5jbHVkZS91YXBp L2xpbnV4L3BlcmZfZXZlbnQuaAppbmRleCBkMzc2MjlkYmFkNzIuLjQ2NTM4MzRmMDc4ZiAxMDA2 NDQKLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L3BlcmZfZXZlbnQuaAorKysgYi9pbmNsdWRlL3Vh cGkvbGludXgvcGVyZl9ldmVudC5oCkBAIC00OTEsNyArNDkxLDcgQEAgc3RydWN0IHBlcmZfZXZl bnRfcXVlcnlfYnBmIHsKIAkvKgogCSAqIFVzZXIgcHJvdmlkZWQgYnVmZmVyIHRvIHN0b3JlIHBy b2dyYW0gaWRzCiAJICovCi0JX191MzIJaWRzWzBdOworCV9fdTMyCWlkc1tdOwogfTsKIAogLyoK ZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9wa3RfY2xzLmggYi9pbmNsdWRlL3VhcGkv bGludXgvcGt0X2Nscy5oCmluZGV4IDlhMmVlMWUzOWZhZC4uZmZiZTIzMGVmOTBiIDEwMDY0NAot LS0gYS9pbmNsdWRlL3VhcGkvbGludXgvcGt0X2Nscy5oCisrKyBiL2luY2x1ZGUvdWFwaS9saW51 eC9wa3RfY2xzLmgKQEAgLTI1Niw3ICsyNTYsNyBAQCBzdHJ1Y3QgdGNfdTMyX3NlbCB7CiAKIAlz aG9ydAkJCWhvZmY7CiAJX19iZTMyCQkJaG1hc2s7Ci0Jc3RydWN0IHRjX3UzMl9rZXkJa2V5c1sw XTsKKwlzdHJ1Y3QgdGNfdTMyX2tleQlrZXlzW107CiB9OwogCiBzdHJ1Y3QgdGNfdTMyX21hcmsg ewpAQCAtMjY4LDcgKzI2OCw3IEBAIHN0cnVjdCB0Y191MzJfbWFyayB7CiBzdHJ1Y3QgdGNfdTMy X3BjbnQgewogCV9fdTY0IHJjbnQ7CiAJX191NjQgcmhpdDsKLQlfX3U2NCBrY250c1swXTsKKwlf X3U2NCBrY250c1tdOwogfTsKIAogLyogRmxhZ3MgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFw aS9saW51eC9yYWlkL21kX3AuaCBiL2luY2x1ZGUvdWFwaS9saW51eC9yYWlkL21kX3AuaAppbmRl eCBlNWE5OGExNmY5YjAuLjZjMGFhNTc3NzMwZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2xp bnV4L3JhaWQvbWRfcC5oCisrKyBiL2luY2x1ZGUvdWFwaS9saW51eC9yYWlkL21kX3AuaApAQCAt MzAzLDcgKzMwMyw3IEBAIHN0cnVjdCBtZHBfc3VwZXJibG9ja18xIHsKIAkgKiBpbnRvIHRoZSAn cm9sZXMnIHZhbHVlLiAgSWYgYSBkZXZpY2UgaXMgc3BhcmUgb3IgZmF1bHR5LCB0aGVuIGl0IGRv ZXNuJ3QKIAkgKiBoYXZlIGEgbWVhbmluZ2Z1bCByb2xlLgogCSAqLwotCV9fbGUxNglkZXZfcm9s ZXNbMF07CS8qIHJvbGUgaW4gYXJyYXksIG9yIDB4ZmZmZiBmb3IgYSBzcGFyZSwgb3IgMHhmZmZl IGZvciBmYXVsdHkgKi8KKwlfX2xlMTYJZGV2X3JvbGVzW107CS8qIHJvbGUgaW4gYXJyYXksIG9y IDB4ZmZmZiBmb3IgYSBzcGFyZSwgb3IgMHhmZmZlIGZvciBmYXVsdHkgKi8KIH07CiAKIC8qIGZl YXR1cmVfbWFwIGJpdHMgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9yYW5kb20u aCBiL2luY2x1ZGUvdWFwaS9saW51eC9yYW5kb20uaAppbmRleCBkY2MxYjNlNjEwNmYuLmU3NDRj MjM1ODJlYiAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L3JhbmRvbS5oCisrKyBiL2lu Y2x1ZGUvdWFwaS9saW51eC9yYW5kb20uaApAQCAtNDEsNyArNDEsNyBAQAogc3RydWN0IHJhbmRf cG9vbF9pbmZvIHsKIAlpbnQJZW50cm9weV9jb3VudDsKIAlpbnQJYnVmX3NpemU7Ci0JX191MzIJ YnVmWzBdOworCV9fdTMyCWJ1ZltdOwogfTsKIAogLyoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFw aS9saW51eC9yb21mc19mcy5oIGIvaW5jbHVkZS91YXBpL2xpbnV4L3JvbWZzX2ZzLmgKaW5kZXgg YTdmMTU4NWFjY2VmLi42YWEwNWU3OTI0NTQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51 eC9yb21mc19mcy5oCisrKyBiL2luY2x1ZGUvdWFwaS9saW51eC9yb21mc19mcy5oCkBAIC0yNyw3 ICsyNyw3IEBAIHN0cnVjdCByb21mc19zdXBlcl9ibG9jayB7CiAJX19iZTMyIHdvcmQxOwogCV9f YmUzMiBzaXplOwogCV9fYmUzMiBjaGVja3N1bTsKLQljaGFyIG5hbWVbMF07CQkvKiB2b2x1bWUg bmFtZSAqLworCWNoYXIgbmFtZVtdOwkJLyogdm9sdW1lIG5hbWUgKi8KIH07CiAKIC8qIE9uIGRp c2sgaW5vZGUgKi8KQEAgLTM3LDcgKzM3LDcgQEAgc3RydWN0IHJvbWZzX2lub2RlIHsKIAlfX2Jl MzIgc3BlYzsKIAlfX2JlMzIgc2l6ZTsKIAlfX2JlMzIgY2hlY2tzdW07Ci0JY2hhciBuYW1lWzBd OworCWNoYXIgbmFtZVtdOwogfTsKIAogI2RlZmluZSBST01GSF9UWVBFIDcKZGlmZiAtLWdpdCBh L2luY2x1ZGUvdWFwaS9saW51eC9ydG5ldGxpbmsuaCBiL2luY2x1ZGUvdWFwaS9saW51eC9ydG5l dGxpbmsuaAppbmRleCA4Mzg0OWEzN2RiNWIuLmViMjc0N2Q1OGE4MSAxMDA2NDQKLS0tIGEvaW5j bHVkZS91YXBpL2xpbnV4L3J0bmV0bGluay5oCisrKyBiL2luY2x1ZGUvdWFwaS9saW51eC9ydG5l dGxpbmsuaApAQCAtNDQwLDcgKzQ0MCw3IEBAIHN0cnVjdCBydG5leHRob3AgewogLyogUlRBX1ZJ QSAqLwogc3RydWN0IHJ0dmlhIHsKIAlfX2tlcm5lbF9zYV9mYW1pbHlfdAlydHZpYV9mYW1pbHk7 Ci0JX191OAkJCXJ0dmlhX2FkZHJbMF07CisJX191OAkJCXJ0dmlhX2FkZHJbXTsKIH07CiAKIC8q IFJUTV9DQUNIRUlORk8gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9zY3RwLmgg Yi9pbmNsdWRlL3VhcGkvbGludXgvc2N0cC5oCmluZGV4IGM0ZmYxZWJkOGJjYy4uZWQ3ZDRlY2Jm NTNkIDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvc2N0cC5oCisrKyBiL2luY2x1ZGUv dWFwaS9saW51eC9zY3RwLmgKQEAgLTM2NSw3ICszNjUsNyBAQCBzdHJ1Y3Qgc2N0cF9hc3NvY19j aGFuZ2UgewogCV9fdTE2IHNhY19vdXRib3VuZF9zdHJlYW1zOwogCV9fdTE2IHNhY19pbmJvdW5k X3N0cmVhbXM7CiAJc2N0cF9hc3NvY190IHNhY19hc3NvY19pZDsKLQlfX3U4IHNhY19pbmZvWzBd OworCV9fdTggc2FjX2luZm9bXTsKIH07CiAKIC8qCkBAIC00MzYsNyArNDM2LDcgQEAgc3RydWN0 IHNjdHBfcmVtb3RlX2Vycm9yIHsKIAlfX3UzMiBzcmVfbGVuZ3RoOwogCV9fYmUxNiBzcmVfZXJy b3I7CiAJc2N0cF9hc3NvY190IHNyZV9hc3NvY19pZDsKLQlfX3U4IHNyZV9kYXRhWzBdOworCV9f dTggc3JlX2RhdGFbXTsKIH07CiAKIApAQCAtNDUzLDcgKzQ1Myw3IEBAIHN0cnVjdCBzY3RwX3Nl bmRfZmFpbGVkIHsKIAlfX3UzMiBzc2ZfZXJyb3I7CiAJc3RydWN0IHNjdHBfc25kcmN2aW5mbyBz c2ZfaW5mbzsKIAlzY3RwX2Fzc29jX3Qgc3NmX2Fzc29jX2lkOwotCV9fdTggc3NmX2RhdGFbMF07 CisJX191OCBzc2ZfZGF0YVtdOwogfTsKIAogc3RydWN0IHNjdHBfc2VuZF9mYWlsZWRfZXZlbnQg ewpAQCAtNDYzLDcgKzQ2Myw3IEBAIHN0cnVjdCBzY3RwX3NlbmRfZmFpbGVkX2V2ZW50IHsKIAlf X3UzMiBzc2ZfZXJyb3I7CiAJc3RydWN0IHNjdHBfc25kaW5mbyBzc2ZlX2luZm87CiAJc2N0cF9h c3NvY190IHNzZl9hc3NvY19pZDsKLQlfX3U4IHNzZl9kYXRhWzBdOworCV9fdTggc3NmX2RhdGFb XTsKIH07CiAKIC8qCkBAIC0xMDI5LDcgKzEwMjksNyBAQCBzdHJ1Y3Qgc2N0cF9nZXRhZGRyc19v bGQgewogc3RydWN0IHNjdHBfZ2V0YWRkcnMgewogCXNjdHBfYXNzb2NfdAkJYXNzb2NfaWQ7IC8q aW5wdXQqLwogCV9fdTMyCQkJYWRkcl9udW07IC8qb3V0cHV0Ki8KLQlfX3U4CQkJYWRkcnNbMF07 IC8qb3V0cHV0LCB2YXJpYWJsZSBzaXplKi8KKwlfX3U4CQkJYWRkcnNbXTsgLypvdXRwdXQsIHZh cmlhYmxlIHNpemUqLwogfTsKIAogLyogQSBzb2NrZXQgdXNlciByZXF1ZXN0IG9idGFpbmVkIHZp YSBTQ1RQX0dFVF9BU1NPQ19TVEFUUyB0aGF0IHJldHJpZXZlcwpkaWZmIC0tZ2l0IGEvaW5jbHVk ZS91YXBpL2xpbnV4L3NlZzYuaCBiL2luY2x1ZGUvdWFwaS9saW51eC9zZWc2LmgKaW5kZXggMjg2 ZThkNmE4ZTk4Li4xM2JjYmM4YmJhMzIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC9z ZWc2LmgKKysrIGIvaW5jbHVkZS91YXBpL2xpbnV4L3NlZzYuaApAQCAtMzAsNyArMzAsNyBAQCBz dHJ1Y3QgaXB2Nl9zcl9oZHIgewogCV9fdTgJZmxhZ3M7CiAJX191MTYJdGFnOwogCi0Jc3RydWN0 IGluNl9hZGRyIHNlZ21lbnRzWzBdOworCXN0cnVjdCBpbjZfYWRkciBzZWdtZW50c1tdOwogfTsK IAogI2RlZmluZSBTUjZfRkxBRzFfUFJPVEVDVEVECSgxIDw8IDYpCmRpZmYgLS1naXQgYS9pbmNs dWRlL3VhcGkvbGludXgvc2VnNl9pcHR1bm5lbC5oIGIvaW5jbHVkZS91YXBpL2xpbnV4L3NlZzZf aXB0dW5uZWwuaAppbmRleCBlYjgxNWUwZDBhYzMuLmE3NDI5NDIxMTI5MCAxMDA2NDQKLS0tIGEv aW5jbHVkZS91YXBpL2xpbnV4L3NlZzZfaXB0dW5uZWwuaAorKysgYi9pbmNsdWRlL3VhcGkvbGlu dXgvc2VnNl9pcHR1bm5lbC5oCkBAIC0yNiw3ICsyNiw3IEBAIGVudW0gewogCiBzdHJ1Y3Qgc2Vn Nl9pcHR1bm5lbF9lbmNhcCB7CiAJaW50IG1vZGU7Ci0Jc3RydWN0IGlwdjZfc3JfaGRyIHNyaFsw XTsKKwlzdHJ1Y3QgaXB2Nl9zcl9oZHIgc3JoW107CiB9OwogCiAjZGVmaW5lIFNFRzZfSVBUVU5f RU5DQVBfU0laRSh4KSAoKHNpemVvZigqeCkpICsgKCgoeCktPnNyaC0+aGRybGVuICsgMSkgPDwg MykpCmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvbGludXgvc3RtLmggYi9pbmNsdWRlL3VhcGkv bGludXgvc3RtLmgKaW5kZXggN2JhYzMxOGI0NDQwLi5kZTM1NzljMmNmZjAgMTAwNjQ0Ci0tLSBh L2luY2x1ZGUvdWFwaS9saW51eC9zdG0uaAorKysgYi9pbmNsdWRlL3VhcGkvbGludXgvc3RtLmgK QEAgLTM2LDcgKzM2LDcgQEAgc3RydWN0IHN0cF9wb2xpY3lfaWQgewogCS8qIHBhZGRpbmcgKi8K IAlfX3UxNgkJX19yZXNlcnZlZF8wOwogCV9fdTMyCQlfX3Jlc2VydmVkXzE7Ci0JY2hhcgkJaWRb MF07CisJY2hhcgkJaWRbXTsKIH07CiAKICNkZWZpbmUgU1RQX1BPTElDWV9JRF9TRVQJX0lPV1Io JyUnLCAwLCBzdHJ1Y3Qgc3RwX3BvbGljeV9pZCkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9s aW51eC90YXJnZXRfY29yZV91c2VyLmggYi9pbmNsdWRlL3VhcGkvbGludXgvdGFyZ2V0X2NvcmVf dXNlci5oCmluZGV4IDI3YWNlNTEyYmFiZC4uZmJkOGNhNjdlMTA3IDEwMDY0NAotLS0gYS9pbmNs dWRlL3VhcGkvbGludXgvdGFyZ2V0X2NvcmVfdXNlci5oCisrKyBiL2luY2x1ZGUvdWFwaS9saW51 eC90YXJnZXRfY29yZV91c2VyLmgKQEAgLTE1Miw3ICsxNTIsNyBAQCBzdHJ1Y3QgdGNtdV90bXJf ZW50cnkgewogCV9fdTMyIGNtZF9jbnQ7CiAJX191NjQgX19wYWQzOwogCV9fdTY0IF9fcGFkNDsK LQlfX3UxNiBjbWRfaWRzWzBdOworCV9fdTE2IGNtZF9pZHNbXTsKIH0gX19wYWNrZWQ7CiAKICNk ZWZpbmUgVENNVV9PUF9BTElHTl9TSVpFIHNpemVvZihfX3U2NCkKZGlmZiAtLWdpdCBhL2luY2x1 ZGUvdWFwaS9saW51eC91c2IvYXVkaW8uaCBiL2luY2x1ZGUvdWFwaS9saW51eC91c2IvYXVkaW8u aAppbmRleCA3NmI3YzNmNmNkMGQuLmM5MTdjNTMwNzBkNSAxMDA2NDQKLS0tIGEvaW5jbHVkZS91 YXBpL2xpbnV4L3VzYi9hdWRpby5oCisrKyBiL2luY2x1ZGUvdWFwaS9saW51eC91c2IvYXVkaW8u aApAQCAtMzQxLDcgKzM0MSw3IEBAIHN0cnVjdCB1YWNfZmVhdHVyZV91bml0X2Rlc2NyaXB0b3Ig ewogCV9fdTggYlVuaXRJRDsKIAlfX3U4IGJTb3VyY2VJRDsKIAlfX3U4IGJDb250cm9sU2l6ZTsK LQlfX3U4IGJtYUNvbnRyb2xzWzBdOyAvKiB2YXJpYWJsZSBsZW5ndGggKi8KKwlfX3U4IGJtYUNv bnRyb2xzW107IC8qIHZhcmlhYmxlIGxlbmd0aCAqLwogfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQp KTsKIAogc3RhdGljIGlubGluZSBfX3U4IHVhY19mZWF0dXJlX3VuaXRfaUZlYXR1cmUoc3RydWN0 IHVhY19mZWF0dXJlX3VuaXRfZGVzY3JpcHRvciAqZGVzYykKZGlmZiAtLWdpdCBhL2luY2x1ZGUv dWFwaS9saW51eC91c2IvY2RjLmggYi9pbmNsdWRlL3VhcGkvbGludXgvdXNiL2NkYy5oCmluZGV4 IDZkNjE1NTA5NTllZi4uYWNmMzg1MmJiNjc2IDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvbGlu dXgvdXNiL2NkYy5oCisrKyBiL2luY2x1ZGUvdWFwaS9saW51eC91c2IvY2RjLmgKQEAgLTE3MSw3 ICsxNzEsNyBAQCBzdHJ1Y3QgdXNiX2NkY19tZGxtX2RldGFpbF9kZXNjIHsKIAogCS8qIHR5cGUg aXMgYXNzb2NpYXRlZCB3aXRoIG1kbG1fZGVzYy5iR1VJRCAqLwogCV9fdTgJYkd1aWREZXNjcmlw dG9yVHlwZTsKLQlfX3U4CWJEZXRhaWxEYXRhWzBdOworCV9fdTgJYkRldGFpbERhdGFbXTsKIH0g X19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpOwogCiAvKiAiT0JFWCBDb250cm9sIE1vZGVsIEZ1bmN0 aW9uYWwgRGVzY3JpcHRvciIgKi8KQEAgLTM3OSw3ICszNzksNyBAQCBzdHJ1Y3QgdXNiX2NkY19u Y21fbmRwMTYgewogCV9fbGUzMglkd1NpZ25hdHVyZTsKIAlfX2xlMTYJd0xlbmd0aDsKIAlfX2xl MTYJd05leHROZHBJbmRleDsKLQlzdHJ1Y3QJdXNiX2NkY19uY21fZHBlMTYgZHBlMTZbMF07CisJ c3RydWN0CXVzYl9jZGNfbmNtX2RwZTE2IGRwZTE2W107CiB9IF9fYXR0cmlidXRlX18gKChwYWNr ZWQpKTsKIAogLyogMzItYml0IE5DTSBEYXRhZ3JhbSBQb2ludGVyIEVudHJ5ICovCkBAIC0zOTUs NyArMzk1LDcgQEAgc3RydWN0IHVzYl9jZGNfbmNtX25kcDMyIHsKIAlfX2xlMTYJd1Jlc2VydmVk NjsKIAlfX2xlMzIJZHdOZXh0TmRwSW5kZXg7CiAJX19sZTMyCWR3UmVzZXJ2ZWQxMjsKLQlzdHJ1 Y3QJdXNiX2NkY19uY21fZHBlMzIgZHBlMzJbMF07CisJc3RydWN0CXVzYl9jZGNfbmNtX2RwZTMy IGRwZTMyW107CiB9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKTsKIAogLyogQ0RDIE5DTSBzdWJj bGFzcyAzLjIuMSBhbmQgMy4yLjIgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC91 c2IvY2g5LmggYi9pbmNsdWRlL3VhcGkvbGludXgvdXNiL2NoOS5oCmluZGV4IDE3Y2U1NjE5OGM5 YS4uMzFmY2ZhMDg0ZTYzIDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvdXNiL2NoOS5o CisrKyBiL2luY2x1ZGUvdWFwaS9saW51eC91c2IvY2g5LmgKQEAgLTgxOCw3ICs4MTgsNyBAQCBz dHJ1Y3QgdXNiX2tleV9kZXNjcmlwdG9yIHsKIAogCV9fdTggIHRUS0lEWzNdOwogCV9fdTggIGJS ZXNlcnZlZDsKLQlfX3U4ICBiS2V5RGF0YVswXTsKKwlfX3U4ICBiS2V5RGF0YVtdOwogfSBfX2F0 dHJpYnV0ZV9fKChwYWNrZWQpKTsKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KZGlmZiAtLWdpdCBh L2luY2x1ZGUvdWFwaS9saW51eC91c2IvcmF3X2dhZGdldC5oIGIvaW5jbHVkZS91YXBpL2xpbnV4 L3VzYi9yYXdfZ2FkZ2V0LmgKaW5kZXggMGJlNjg1MjcyZWIxLi5jN2QyMTk5MTM0ZDcgMTAwNjQ0 Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC91c2IvcmF3X2dhZGdldC5oCisrKyBiL2luY2x1ZGUv dWFwaS9saW51eC91c2IvcmF3X2dhZGdldC5oCkBAIC02MCw3ICs2MCw3IEBAIGVudW0gdXNiX3Jh d19ldmVudF90eXBlIHsKIHN0cnVjdCB1c2JfcmF3X2V2ZW50IHsKIAlfX3UzMgkJdHlwZTsKIAlf X3UzMgkJbGVuZ3RoOwotCV9fdTgJCWRhdGFbMF07CisJX191OAkJZGF0YVtdOwogfTsKIAogI2Rl ZmluZSBVU0JfUkFXX0lPX0ZMQUdTX1pFUk8JMHgwMDAxCkBAIC05MCw3ICs5MCw3IEBAIHN0cnVj dCB1c2JfcmF3X2VwX2lvIHsKIAlfX3UxNgkJZXA7CiAJX191MTYJCWZsYWdzOwogCV9fdTMyCQls ZW5ndGg7Ci0JX191OAkJZGF0YVswXTsKKwlfX3U4CQlkYXRhW107CiB9OwogCiAvKiBNYXhpbXVt IG51bWJlciBvZiBub24tY29udHJvbCBlbmRwb2ludHMgaW4gc3RydWN0IHVzYl9yYXdfZXBzX2lu Zm8uICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvbGludXgvdXNiZGV2aWNlX2ZzLmggYi9p bmNsdWRlL3VhcGkvbGludXgvdXNiZGV2aWNlX2ZzLmgKaW5kZXggY2Y1MjVjZGRlYjk0Li43NGE4 NGUwMjQyMmEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC91c2JkZXZpY2VfZnMuaAor KysgYi9pbmNsdWRlL3VhcGkvbGludXgvdXNiZGV2aWNlX2ZzLmgKQEAgLTEzMSw3ICsxMzEsNyBA QCBzdHJ1Y3QgdXNiZGV2ZnNfdXJiIHsKIAl1bnNpZ25lZCBpbnQgc2lnbnI7CS8qIHNpZ25hbCB0 byBiZSBzZW50IG9uIGNvbXBsZXRpb24sCiAJCQkJICBvciAwIGlmIG5vbmUgc2hvdWxkIGJlIHNl bnQuICovCiAJdm9pZCBfX3VzZXIgKnVzZXJjb250ZXh0OwotCXN0cnVjdCB1c2JkZXZmc19pc29f cGFja2V0X2Rlc2MgaXNvX2ZyYW1lX2Rlc2NbMF07CisJc3RydWN0IHVzYmRldmZzX2lzb19wYWNr ZXRfZGVzYyBpc29fZnJhbWVfZGVzY1tdOwogfTsKIAogLyogaW9jdGxzIGZvciB0YWxraW5nIGRp cmVjdGx5IHRvIGRyaXZlcnMgKi8KQEAgLTE3Niw3ICsxNzYsNyBAQCBzdHJ1Y3QgdXNiZGV2ZnNf ZGlzY29ubmVjdF9jbGFpbSB7CiBzdHJ1Y3QgdXNiZGV2ZnNfc3RyZWFtcyB7CiAJdW5zaWduZWQg aW50IG51bV9zdHJlYW1zOyAvKiBOb3QgdXNlZCBieSBVU0JERVZGU19GUkVFX1NUUkVBTVMgKi8K IAl1bnNpZ25lZCBpbnQgbnVtX2VwczsKLQl1bnNpZ25lZCBjaGFyIGVwc1swXTsKKwl1bnNpZ25l ZCBjaGFyIGVwc1tdOwogfTsKIAogLyoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC92 aG9zdF90eXBlcy5oIGIvaW5jbHVkZS91YXBpL2xpbnV4L3Zob3N0X3R5cGVzLmgKaW5kZXggNjM0 Y2VlNDg1YWJiLi4zOTEzMzFhMTA4NzkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC92 aG9zdF90eXBlcy5oCisrKyBiL2luY2x1ZGUvdWFwaS9saW51eC92aG9zdF90eXBlcy5oCkBAIC0x MDcsNyArMTA3LDcgQEAgc3RydWN0IHZob3N0X21lbW9yeV9yZWdpb24gewogc3RydWN0IHZob3N0 X21lbW9yeSB7CiAJX191MzIgbnJlZ2lvbnM7CiAJX191MzIgcGFkZGluZzsKLQlzdHJ1Y3Qgdmhv c3RfbWVtb3J5X3JlZ2lvbiByZWdpb25zWzBdOworCXN0cnVjdCB2aG9zdF9tZW1vcnlfcmVnaW9u IHJlZ2lvbnNbXTsKIH07CiAKIC8qIFZIT1NUX1NDU0kgc3BlY2lmaWMgZGVmaW5pdGlvbnMgKi8K QEAgLTEzNSw3ICsxMzUsNyBAQCBzdHJ1Y3Qgdmhvc3Rfc2NzaV90YXJnZXQgewogc3RydWN0IHZo b3N0X3ZkcGFfY29uZmlnIHsKIAlfX3UzMiBvZmY7CiAJX191MzIgbGVuOwotCV9fdTggYnVmWzBd OworCV9fdTggYnVmW107CiB9OwogCiAvKiB2aG9zdCB2ZHBhIElPVkEgcmFuZ2UKZGlmZiAtLWdp dCBhL2luY2x1ZGUvdWFwaS9saW51eC92aXJ0aW9fOXAuaCBiL2luY2x1ZGUvdWFwaS9saW51eC92 aXJ0aW9fOXAuaAppbmRleCA0NDEwNDc0MzIyNTguLjM3NGI2OGY4YWM2ZSAxMDA2NDQKLS0tIGEv aW5jbHVkZS91YXBpL2xpbnV4L3ZpcnRpb185cC5oCisrKyBiL2luY2x1ZGUvdWFwaS9saW51eC92 aXJ0aW9fOXAuaApAQCAtMzgsNyArMzgsNyBAQCBzdHJ1Y3QgdmlydGlvXzlwX2NvbmZpZyB7CiAJ LyogbGVuZ3RoIG9mIHRoZSB0YWcgbmFtZSAqLwogCV9fdmlydGlvMTYgdGFnX2xlbjsKIAkvKiBu b24tTlVMTCB0ZXJtaW5hdGVkIHRhZyBuYW1lICovCi0JX191OCB0YWdbMF07CisJX191OCB0YWdb XTsKIH0gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CiAKICNlbmRpZiAvKiBfTElOVVhfVklSVElP XzlQX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC94ZnJtLmggYi9pbmNsdWRl L3VhcGkvbGludXgveGZybS5oCmluZGV4IDY1ZTEzYTA5OWIxYS4uZTgxOTFlMGMzYjU2IDEwMDY0 NAotLS0gYS9pbmNsdWRlL3VhcGkvbGludXgveGZybS5oCisrKyBiL2luY2x1ZGUvdWFwaS9saW51 eC94ZnJtLmgKQEAgLTMzLDcgKzMzLDcgQEAgc3RydWN0IHhmcm1fc2VjX2N0eCB7CiAJX191OAlj dHhfYWxnOwogCV9fdTE2CWN0eF9sZW47CiAJX191MzIJY3R4X3NpZDsKLQljaGFyCWN0eF9zdHJb MF07CisJY2hhcgljdHhfc3RyW107CiB9OwogCiAvKiBTZWN1cml0eSBDb250ZXh0IERvbWFpbnMg b2YgSW50ZXJwcmV0YXRpb24gKi8KQEAgLTk2LDI3ICs5NiwyNyBAQCBzdHJ1Y3QgeGZybV9yZXBs YXlfc3RhdGVfZXNuIHsKIAlfX3UzMgkJb3NlcV9oaTsKIAlfX3UzMgkJc2VxX2hpOwogCV9fdTMy CQlyZXBsYXlfd2luZG93OwotCV9fdTMyCQlibXBbMF07CisJX191MzIJCWJtcFtdOwogfTsKIAog c3RydWN0IHhmcm1fYWxnbyB7CiAJY2hhcgkJYWxnX25hbWVbNjRdOwogCXVuc2lnbmVkIGludAlh bGdfa2V5X2xlbjsgICAgLyogaW4gYml0cyAqLwotCWNoYXIJCWFsZ19rZXlbMF07CisJY2hhcgkJ YWxnX2tleVtdOwogfTsKIAogc3RydWN0IHhmcm1fYWxnb19hdXRoIHsKIAljaGFyCQlhbGdfbmFt ZVs2NF07CiAJdW5zaWduZWQgaW50CWFsZ19rZXlfbGVuOyAgICAvKiBpbiBiaXRzICovCiAJdW5z aWduZWQgaW50CWFsZ190cnVuY19sZW47ICAvKiBpbiBiaXRzICovCi0JY2hhcgkJYWxnX2tleVsw XTsKKwljaGFyCQlhbGdfa2V5W107CiB9OwogCiBzdHJ1Y3QgeGZybV9hbGdvX2FlYWQgewogCWNo YXIJCWFsZ19uYW1lWzY0XTsKIAl1bnNpZ25lZCBpbnQJYWxnX2tleV9sZW47CS8qIGluIGJpdHMg Ki8KIAl1bnNpZ25lZCBpbnQJYWxnX2ljdl9sZW47CS8qIGluIGJpdHMgKi8KLQljaGFyCQlhbGdf a2V5WzBdOworCWNoYXIJCWFsZ19rZXlbXTsKIH07CiAKIHN0cnVjdCB4ZnJtX3N0YXRzIHsKZGlm ZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9yZG1hL2hmaS9oZmkxX3VzZXIuaCBiL2luY2x1ZGUvdWFw aS9yZG1hL2hmaS9oZmkxX3VzZXIuaAppbmRleCBkOTVlZjlhMmIwMzIuLjExMDZhN2M5MGIyOSAx MDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL3JkbWEvaGZpL2hmaTFfdXNlci5oCisrKyBiL2luY2x1 ZGUvdWFwaS9yZG1hL2hmaS9oZmkxX3VzZXIuaApAQCAtMTgwLDcgKzE4MCw3IEBAIHN0cnVjdCBo ZmkxX3NkbWFfY29tcF9lbnRyeSB7CiBzdHJ1Y3QgaGZpMV9zdGF0dXMgewogCV9fYWxpZ25lZF91 NjQgZGV2OyAgICAgIC8qIGRldmljZS9odyBzdGF0dXMgYml0cyAqLwogCV9fYWxpZ25lZF91NjQg cG9ydDsgICAgIC8qIHBvcnQgc3RhdGUgYW5kIHN0YXR1cyBiaXRzICovCi0JY2hhciBmcmVlemVt c2dbMF07CisJY2hhciBmcmVlemVtc2dbXTsKIH07CiAKIGVudW0gc2RtYV9yZXFfb3Bjb2RlIHsK ZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9yZG1hL2liX3VzZXJfdmVyYnMuaCBiL2luY2x1ZGUv dWFwaS9yZG1hL2liX3VzZXJfdmVyYnMuaAppbmRleCA3ZGQ5MDNkOTMyZTUuLjQzNjcyY2IxZmQ1 NyAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL3JkbWEvaWJfdXNlcl92ZXJicy5oCisrKyBiL2lu Y2x1ZGUvdWFwaS9yZG1hL2liX3VzZXJfdmVyYnMuaApAQCAtMTU4LDE4ICsxNTgsMTggQEAgc3Ry dWN0IGliX3V2ZXJic19leF9jbWRfaGRyIHsKIAogc3RydWN0IGliX3V2ZXJic19nZXRfY29udGV4 dCB7CiAJX19hbGlnbmVkX3U2NCByZXNwb25zZTsKLQlfX2FsaWduZWRfdTY0IGRyaXZlcl9kYXRh WzBdOworCV9fYWxpZ25lZF91NjQgZHJpdmVyX2RhdGFbXTsKIH07CiAKIHN0cnVjdCBpYl91dmVy YnNfZ2V0X2NvbnRleHRfcmVzcCB7CiAJX191MzIgYXN5bmNfZmQ7CiAJX191MzIgbnVtX2NvbXBf dmVjdG9yczsKLQlfX2FsaWduZWRfdTY0IGRyaXZlcl9kYXRhWzBdOworCV9fYWxpZ25lZF91NjQg ZHJpdmVyX2RhdGFbXTsKIH07CiAKIHN0cnVjdCBpYl91dmVyYnNfcXVlcnlfZGV2aWNlIHsKIAlf X2FsaWduZWRfdTY0IHJlc3BvbnNlOwotCV9fYWxpZ25lZF91NjQgZHJpdmVyX2RhdGFbMF07CisJ X19hbGlnbmVkX3U2NCBkcml2ZXJfZGF0YVtdOwogfTsKIAogc3RydWN0IGliX3V2ZXJic19xdWVy eV9kZXZpY2VfcmVzcCB7CkBAIC0yNzgsNyArMjc4LDcgQEAgc3RydWN0IGliX3V2ZXJic19xdWVy eV9wb3J0IHsKIAlfX2FsaWduZWRfdTY0IHJlc3BvbnNlOwogCV9fdTggIHBvcnRfbnVtOwogCV9f dTggIHJlc2VydmVkWzddOwotCV9fYWxpZ25lZF91NjQgZHJpdmVyX2RhdGFbMF07CisJX19hbGln bmVkX3U2NCBkcml2ZXJfZGF0YVtdOwogfTsKIAogc3RydWN0IGliX3V2ZXJic19xdWVyeV9wb3J0 X3Jlc3AgewpAQCAtMzA4LDEyICszMDgsMTIgQEAgc3RydWN0IGliX3V2ZXJic19xdWVyeV9wb3J0 X3Jlc3AgewogCiBzdHJ1Y3QgaWJfdXZlcmJzX2FsbG9jX3BkIHsKIAlfX2FsaWduZWRfdTY0IHJl c3BvbnNlOwotCV9fYWxpZ25lZF91NjQgZHJpdmVyX2RhdGFbMF07CisJX19hbGlnbmVkX3U2NCBk cml2ZXJfZGF0YVtdOwogfTsKIAogc3RydWN0IGliX3V2ZXJic19hbGxvY19wZF9yZXNwIHsKIAlf X3UzMiBwZF9oYW5kbGU7Ci0JX191MzIgZHJpdmVyX2RhdGFbMF07CisJX191MzIgZHJpdmVyX2Rh dGFbXTsKIH07CiAKIHN0cnVjdCBpYl91dmVyYnNfZGVhbGxvY19wZCB7CkBAIC0zMjQsMTIgKzMy NCwxMiBAQCBzdHJ1Y3QgaWJfdXZlcmJzX29wZW5feHJjZCB7CiAJX19hbGlnbmVkX3U2NCByZXNw b25zZTsKIAlfX3UzMiBmZDsKIAlfX3UzMiBvZmxhZ3M7Ci0JX19hbGlnbmVkX3U2NCBkcml2ZXJf ZGF0YVswXTsKKwlfX2FsaWduZWRfdTY0IGRyaXZlcl9kYXRhW107CiB9OwogCiBzdHJ1Y3QgaWJf dXZlcmJzX29wZW5feHJjZF9yZXNwIHsKIAlfX3UzMiB4cmNkX2hhbmRsZTsKLQlfX3UzMiBkcml2 ZXJfZGF0YVswXTsKKwlfX3UzMiBkcml2ZXJfZGF0YVtdOwogfTsKIAogc3RydWN0IGliX3V2ZXJi c19jbG9zZV94cmNkIHsKQEAgLTM0MywxNCArMzQzLDE0IEBAIHN0cnVjdCBpYl91dmVyYnNfcmVn X21yIHsKIAlfX2FsaWduZWRfdTY0IGhjYV92YTsKIAlfX3UzMiBwZF9oYW5kbGU7CiAJX191MzIg YWNjZXNzX2ZsYWdzOwotCV9fYWxpZ25lZF91NjQgZHJpdmVyX2RhdGFbMF07CisJX19hbGlnbmVk X3U2NCBkcml2ZXJfZGF0YVtdOwogfTsKIAogc3RydWN0IGliX3V2ZXJic19yZWdfbXJfcmVzcCB7 CiAJX191MzIgbXJfaGFuZGxlOwogCV9fdTMyIGxrZXk7CiAJX191MzIgcmtleTsKLQlfX3UzMiBk cml2ZXJfZGF0YVswXTsKKwlfX3UzMiBkcml2ZXJfZGF0YVtdOwogfTsKIAogc3RydWN0IGliX3V2 ZXJic19yZXJlZ19tciB7CkBAIC0zNjIsMTMgKzM2MiwxMyBAQCBzdHJ1Y3QgaWJfdXZlcmJzX3Jl cmVnX21yIHsKIAlfX2FsaWduZWRfdTY0IGhjYV92YTsKIAlfX3UzMiBwZF9oYW5kbGU7CiAJX191 MzIgYWNjZXNzX2ZsYWdzOwotCV9fYWxpZ25lZF91NjQgZHJpdmVyX2RhdGFbMF07CisJX19hbGln bmVkX3U2NCBkcml2ZXJfZGF0YVtdOwogfTsKIAogc3RydWN0IGliX3V2ZXJic19yZXJlZ19tcl9y ZXNwIHsKIAlfX3UzMiBsa2V5OwogCV9fdTMyIHJrZXk7Ci0JX19hbGlnbmVkX3U2NCBkcml2ZXJf ZGF0YVswXTsKKwlfX2FsaWduZWRfdTY0IGRyaXZlcl9kYXRhW107CiB9OwogCiBzdHJ1Y3QgaWJf dXZlcmJzX2RlcmVnX21yIHsKQEAgLTM4MCwxMyArMzgwLDEzIEBAIHN0cnVjdCBpYl91dmVyYnNf YWxsb2NfbXcgewogCV9fdTMyIHBkX2hhbmRsZTsKIAlfX3U4ICBtd190eXBlOwogCV9fdTggIHJl c2VydmVkWzNdOwotCV9fYWxpZ25lZF91NjQgZHJpdmVyX2RhdGFbMF07CisJX19hbGlnbmVkX3U2 NCBkcml2ZXJfZGF0YVtdOwogfTsKIAogc3RydWN0IGliX3V2ZXJic19hbGxvY19td19yZXNwIHsK IAlfX3UzMiBtd19oYW5kbGU7CiAJX191MzIgcmtleTsKLQlfX2FsaWduZWRfdTY0IGRyaXZlcl9k YXRhWzBdOworCV9fYWxpZ25lZF91NjQgZHJpdmVyX2RhdGFbXTsKIH07CiAKIHN0cnVjdCBpYl91 dmVyYnNfZGVhbGxvY19tdyB7CkBAIC00MDgsNyArNDA4LDcgQEAgc3RydWN0IGliX3V2ZXJic19j cmVhdGVfY3EgewogCV9fdTMyIGNvbXBfdmVjdG9yOwogCV9fczMyIGNvbXBfY2hhbm5lbDsKIAlf X3UzMiByZXNlcnZlZDsKLQlfX2FsaWduZWRfdTY0IGRyaXZlcl9kYXRhWzBdOworCV9fYWxpZ25l ZF91NjQgZHJpdmVyX2RhdGFbXTsKIH07CiAKIGVudW0gaWJfdXZlcmJzX2V4X2NyZWF0ZV9jcV9m bGFncyB7CkBAIC00NDIsMTMgKzQ0MiwxMyBAQCBzdHJ1Y3QgaWJfdXZlcmJzX3Jlc2l6ZV9jcSB7 CiAJX19hbGlnbmVkX3U2NCByZXNwb25zZTsKIAlfX3UzMiBjcV9oYW5kbGU7CiAJX191MzIgY3Fl OwotCV9fYWxpZ25lZF91NjQgZHJpdmVyX2RhdGFbMF07CisJX19hbGlnbmVkX3U2NCBkcml2ZXJf ZGF0YVtdOwogfTsKIAogc3RydWN0IGliX3V2ZXJic19yZXNpemVfY3FfcmVzcCB7CiAJX191MzIg Y3FlOwogCV9fdTMyIHJlc2VydmVkOwotCV9fYWxpZ25lZF91NjQgZHJpdmVyX2RhdGFbMF07CisJ X19hbGlnbmVkX3U2NCBkcml2ZXJfZGF0YVtdOwogfTsKIAogc3RydWN0IGliX3V2ZXJic19wb2xs X2NxIHsKQEAgLTQ5Miw3ICs0OTIsNyBAQCBzdHJ1Y3QgaWJfdXZlcmJzX3djIHsKIHN0cnVjdCBp Yl91dmVyYnNfcG9sbF9jcV9yZXNwIHsKIAlfX3UzMiBjb3VudDsKIAlfX3UzMiByZXNlcnZlZDsK LQlzdHJ1Y3QgaWJfdXZlcmJzX3djIHdjWzBdOworCXN0cnVjdCBpYl91dmVyYnNfd2Mgd2NbXTsK IH07CiAKIHN0cnVjdCBpYl91dmVyYnNfcmVxX25vdGlmeV9jcSB7CkBAIC01ODUsNyArNTg1LDcg QEAgc3RydWN0IGliX3V2ZXJic19jcmVhdGVfcXAgewogCV9fdTggIHFwX3R5cGU7CiAJX191OCAg aXNfc3JxOwogCV9fdTggIHJlc2VydmVkOwotCV9fYWxpZ25lZF91NjQgZHJpdmVyX2RhdGFbMF07 CisJX19hbGlnbmVkX3U2NCBkcml2ZXJfZGF0YVtdOwogfTsKIAogZW51bSBpYl91dmVyYnNfY3Jl YXRlX3FwX21hc2sgewpAQCAtNjI0LDcgKzYyNCw3IEBAIHN0cnVjdCBpYl91dmVyYnNfb3Blbl9x cCB7CiAJX191MzIgcXBuOwogCV9fdTggIHFwX3R5cGU7CiAJX191OCAgcmVzZXJ2ZWRbN107Ci0J X19hbGlnbmVkX3U2NCBkcml2ZXJfZGF0YVswXTsKKwlfX2FsaWduZWRfdTY0IGRyaXZlcl9kYXRh W107CiB9OwogCiAvKiBhbHNvIHVzZWQgZm9yIG9wZW4gcmVzcG9uc2UgKi8KQEAgLTY2OSw3ICs2 NjksNyBAQCBzdHJ1Y3QgaWJfdXZlcmJzX3F1ZXJ5X3FwIHsKIAlfX2FsaWduZWRfdTY0IHJlc3Bv bnNlOwogCV9fdTMyIHFwX2hhbmRsZTsKIAlfX3UzMiBhdHRyX21hc2s7Ci0JX19hbGlnbmVkX3U2 NCBkcml2ZXJfZGF0YVswXTsKKwlfX2FsaWduZWRfdTY0IGRyaXZlcl9kYXRhW107CiB9OwogCiBz dHJ1Y3QgaWJfdXZlcmJzX3F1ZXJ5X3FwX3Jlc3AgewpAQCAtNzAzLDcgKzcwMyw3IEBAIHN0cnVj dCBpYl91dmVyYnNfcXVlcnlfcXBfcmVzcCB7CiAJX191OCAgYWx0X3RpbWVvdXQ7CiAJX191OCAg c3Ffc2lnX2FsbDsKIAlfX3U4ICByZXNlcnZlZFs1XTsKLQlfX2FsaWduZWRfdTY0IGRyaXZlcl9k YXRhWzBdOworCV9fYWxpZ25lZF91NjQgZHJpdmVyX2RhdGFbXTsKIH07CiAKIHN0cnVjdCBpYl91 dmVyYnNfbW9kaWZ5X3FwIHsKQEAgLTgyNCw3ICs4MjQsNyBAQCBzdHJ1Y3QgaWJfdXZlcmJzX3Bv c3Rfc2VuZCB7CiAJX191MzIgd3JfY291bnQ7CiAJX191MzIgc2dlX2NvdW50OwogCV9fdTMyIHdx ZV9zaXplOwotCXN0cnVjdCBpYl91dmVyYnNfc2VuZF93ciBzZW5kX3dyWzBdOworCXN0cnVjdCBp Yl91dmVyYnNfc2VuZF93ciBzZW5kX3dyW107CiB9OwogCiBzdHJ1Y3QgaWJfdXZlcmJzX3Bvc3Rf c2VuZF9yZXNwIHsKQEAgLTg0Myw3ICs4NDMsNyBAQCBzdHJ1Y3QgaWJfdXZlcmJzX3Bvc3RfcmVj diB7CiAJX191MzIgd3JfY291bnQ7CiAJX191MzIgc2dlX2NvdW50OwogCV9fdTMyIHdxZV9zaXpl OwotCXN0cnVjdCBpYl91dmVyYnNfcmVjdl93ciByZWN2X3dyWzBdOworCXN0cnVjdCBpYl91dmVy YnNfcmVjdl93ciByZWN2X3dyW107CiB9OwogCiBzdHJ1Y3QgaWJfdXZlcmJzX3Bvc3RfcmVjdl9y ZXNwIHsKQEAgLTg1Niw3ICs4NTYsNyBAQCBzdHJ1Y3QgaWJfdXZlcmJzX3Bvc3Rfc3JxX3JlY3Yg ewogCV9fdTMyIHdyX2NvdW50OwogCV9fdTMyIHNnZV9jb3VudDsKIAlfX3UzMiB3cWVfc2l6ZTsK LQlzdHJ1Y3QgaWJfdXZlcmJzX3JlY3Zfd3IgcmVjdlswXTsKKwlzdHJ1Y3QgaWJfdXZlcmJzX3Jl Y3Zfd3IgcmVjdltdOwogfTsKIAogc3RydWN0IGliX3V2ZXJic19wb3N0X3NycV9yZWN2X3Jlc3Ag ewpAQCAtODY5LDEyICs4NjksMTIgQEAgc3RydWN0IGliX3V2ZXJic19jcmVhdGVfYWggewogCV9f dTMyIHBkX2hhbmRsZTsKIAlfX3UzMiByZXNlcnZlZDsKIAlzdHJ1Y3QgaWJfdXZlcmJzX2FoX2F0 dHIgYXR0cjsKLQlfX2FsaWduZWRfdTY0IGRyaXZlcl9kYXRhWzBdOworCV9fYWxpZ25lZF91NjQg ZHJpdmVyX2RhdGFbXTsKIH07CiAKIHN0cnVjdCBpYl91dmVyYnNfY3JlYXRlX2FoX3Jlc3Agewog CV9fdTMyIGFoX2hhbmRsZTsKLQlfX3UzMiBkcml2ZXJfZGF0YVswXTsKKwlfX3UzMiBkcml2ZXJf ZGF0YVtdOwogfTsKIAogc3RydWN0IGliX3V2ZXJic19kZXN0cm95X2FoIHsKQEAgLTg4Niw3ICs4 ODYsNyBAQCBzdHJ1Y3QgaWJfdXZlcmJzX2F0dGFjaF9tY2FzdCB7CiAJX191MzIgcXBfaGFuZGxl OwogCV9fdTE2IG1saWQ7CiAJX191MTYgcmVzZXJ2ZWQ7Ci0JX19hbGlnbmVkX3U2NCBkcml2ZXJf ZGF0YVswXTsKKwlfX2FsaWduZWRfdTY0IGRyaXZlcl9kYXRhW107CiB9OwogCiBzdHJ1Y3QgaWJf dXZlcmJzX2RldGFjaF9tY2FzdCB7CkBAIC04OTQsNyArODk0LDcgQEAgc3RydWN0IGliX3V2ZXJi c19kZXRhY2hfbWNhc3QgewogCV9fdTMyIHFwX2hhbmRsZTsKIAlfX3UxNiBtbGlkOwogCV9fdTE2 IHJlc2VydmVkOwotCV9fYWxpZ25lZF91NjQgZHJpdmVyX2RhdGFbMF07CisJX19hbGlnbmVkX3U2 NCBkcml2ZXJfZGF0YVtdOwogfTsKIAogc3RydWN0IGliX3V2ZXJic19mbG93X3NwZWNfaGRyIHsK QEAgLTExMzUsNyArMTEzNSw3IEBAIHN0cnVjdCBpYl91dmVyYnNfZmxvd19hdHRyIHsKIAkgKiBz dHJ1Y3QgaWJfZmxvd19zcGVjX3h4eAogCSAqIHN0cnVjdCBpYl9mbG93X3NwZWNfeXl5CiAJICov Ci0Jc3RydWN0IGliX3V2ZXJic19mbG93X3NwZWNfaGRyIGZsb3dfc3BlY3NbMF07CisJc3RydWN0 IGliX3V2ZXJic19mbG93X3NwZWNfaGRyIGZsb3dfc3BlY3NbXTsKIH07CiAKIHN0cnVjdCBpYl91 dmVyYnNfY3JlYXRlX2Zsb3cgIHsKQEAgLTExNjEsNyArMTE2MSw3IEBAIHN0cnVjdCBpYl91dmVy YnNfY3JlYXRlX3NycSB7CiAJX191MzIgbWF4X3dyOwogCV9fdTMyIG1heF9zZ2U7CiAJX191MzIg c3JxX2xpbWl0OwotCV9fYWxpZ25lZF91NjQgZHJpdmVyX2RhdGFbMF07CisJX19hbGlnbmVkX3U2 NCBkcml2ZXJfZGF0YVtdOwogfTsKIAogc3RydWN0IGliX3V2ZXJic19jcmVhdGVfeHNycSB7CkBA IC0xMTc1LDcgKzExNzUsNyBAQCBzdHJ1Y3QgaWJfdXZlcmJzX2NyZWF0ZV94c3JxIHsKIAlfX3Uz MiBtYXhfbnVtX3RhZ3M7CiAJX191MzIgeHJjZF9oYW5kbGU7CiAJX191MzIgY3FfaGFuZGxlOwot CV9fYWxpZ25lZF91NjQgZHJpdmVyX2RhdGFbMF07CisJX19hbGlnbmVkX3U2NCBkcml2ZXJfZGF0 YVtdOwogfTsKIAogc3RydWN0IGliX3V2ZXJic19jcmVhdGVfc3JxX3Jlc3AgewpAQCAtMTE4Myw3 ICsxMTgzLDcgQEAgc3RydWN0IGliX3V2ZXJic19jcmVhdGVfc3JxX3Jlc3AgewogCV9fdTMyIG1h eF93cjsKIAlfX3UzMiBtYXhfc2dlOwogCV9fdTMyIHNycW47Ci0JX191MzIgZHJpdmVyX2RhdGFb MF07CisJX191MzIgZHJpdmVyX2RhdGFbXTsKIH07CiAKIHN0cnVjdCBpYl91dmVyYnNfbW9kaWZ5 X3NycSB7CkBAIC0xMTkxLDE0ICsxMTkxLDE0IEBAIHN0cnVjdCBpYl91dmVyYnNfbW9kaWZ5X3Ny cSB7CiAJX191MzIgYXR0cl9tYXNrOwogCV9fdTMyIG1heF93cjsKIAlfX3UzMiBzcnFfbGltaXQ7 Ci0JX19hbGlnbmVkX3U2NCBkcml2ZXJfZGF0YVswXTsKKwlfX2FsaWduZWRfdTY0IGRyaXZlcl9k YXRhW107CiB9OwogCiBzdHJ1Y3QgaWJfdXZlcmJzX3F1ZXJ5X3NycSB7CiAJX19hbGlnbmVkX3U2 NCByZXNwb25zZTsKIAlfX3UzMiBzcnFfaGFuZGxlOwogCV9fdTMyIHJlc2VydmVkOwotCV9fYWxp Z25lZF91NjQgZHJpdmVyX2RhdGFbMF07CisJX19hbGlnbmVkX3U2NCBkcml2ZXJfZGF0YVtdOwog fTsKIAogc3RydWN0IGliX3V2ZXJic19xdWVyeV9zcnFfcmVzcCB7CkBAIC0xMjY5LDcgKzEyNjks NyBAQCBzdHJ1Y3QgaWJfdXZlcmJzX2V4X2NyZWF0ZV9yd3FfaW5kX3RhYmxlICB7CiAJICogd3Ff aGFuZGxlMQogCSAqIHdxX2hhbmRsZTIKIAkgKi8KLQlfX3UzMiB3cV9oYW5kbGVzWzBdOworCV9f dTMyIHdxX2hhbmRsZXNbXTsKIH07CiAKIHN0cnVjdCBpYl91dmVyYnNfZXhfY3JlYXRlX3J3cV9p bmRfdGFibGVfcmVzcCB7CmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvcmRtYS9yZG1hX3VzZXJf Y20uaCBiL2luY2x1ZGUvdWFwaS9yZG1hL3JkbWFfdXNlcl9jbS5oCmluZGV4IGVkNWE1MTQzMDVj MS4uN2NlYTAzNTgxZjc5IDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvcmRtYS9yZG1hX3VzZXJf Y20uaAorKysgYi9pbmNsdWRlL3VhcGkvcmRtYS9yZG1hX3VzZXJfY20uaApAQCAtMTg0LDcgKzE4 NCw3IEBAIHN0cnVjdCByZG1hX3VjbV9xdWVyeV9hZGRyX3Jlc3Agewogc3RydWN0IHJkbWFfdWNt X3F1ZXJ5X3BhdGhfcmVzcCB7CiAJX191MzIgbnVtX3BhdGhzOwogCV9fdTMyIHJlc2VydmVkOwot CXN0cnVjdCBpYl9wYXRoX3JlY19kYXRhIHBhdGhfZGF0YVswXTsKKwlzdHJ1Y3QgaWJfcGF0aF9y ZWNfZGF0YSBwYXRoX2RhdGFbXTsKIH07CiAKIHN0cnVjdCByZG1hX3VjbV9jb25uX3BhcmFtIHsK ZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9yZG1hL3JkbWFfdXNlcl9pb2N0bF9jbWRzLmggYi9p bmNsdWRlL3VhcGkvcmRtYS9yZG1hX3VzZXJfaW9jdGxfY21kcy5oCmluZGV4IDM4YWI3YWNjYjdi ZS4uYWIxYWVmMTdmZWIxIDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvcmRtYS9yZG1hX3VzZXJf aW9jdGxfY21kcy5oCisrKyBiL2luY2x1ZGUvdWFwaS9yZG1hL3JkbWFfdXNlcl9pb2N0bF9jbWRz LmgKQEAgLTgxLDcgKzgxLDcgQEAgc3RydWN0IGliX3V2ZXJic19pb2N0bF9oZHIgewogCV9fYWxp Z25lZF91NjQgcmVzZXJ2ZWQxOwogCV9fdTMyIGRyaXZlcl9pZDsKIAlfX3UzMiByZXNlcnZlZDI7 Ci0Jc3RydWN0IGliX3V2ZXJic19hdHRyICBhdHRyc1swXTsKKwlzdHJ1Y3QgaWJfdXZlcmJzX2F0 dHIgIGF0dHJzW107CiB9OwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9zY3Np L2ZjL2ZjX2Vscy5oIGIvaW5jbHVkZS91YXBpL3Njc2kvZmMvZmNfZWxzLmgKaW5kZXggYzk4MTJj NWMyZmM0Li4xNjc4MmMzNjBkZTMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9zY3NpL2ZjL2Zj X2Vscy5oCisrKyBiL2luY2x1ZGUvdWFwaS9zY3NpL2ZjL2ZjX2Vscy5oCkBAIC0yNjQsNyArMjY0 LDcgQEAgc3RydWN0IGZjX3Rsdl9kZXNjIHsKIAkJCQkJICogU2l6ZSBvZiBkZXNjcmlwdG9yIGV4 Y2x1ZGluZwogCQkJCQkgKiBkZXNjX3RhZyBhbmQgZGVzY19sZW4gZmllbGRzLgogCQkJCQkgKi8K LQlfX3U4CQlkZXNjX3ZhbHVlWzBdOyAgLyogRGVzY3JpcHRvciBWYWx1ZSAqLworCV9fdTgJCWRl c2NfdmFsdWVbXTsgIC8qIERlc2NyaXB0b3IgVmFsdWUgKi8KIH07CiAKIC8qIERlc2NyaXB0b3Ig dGFnIGFuZCBsZW4gZmllbGRzIGFyZSBjb25zaWRlcmVkIHRoZSBtYW5kYXRvcnkgaGVhZGVyCkBA IC0xMDI3LDcgKzEwMjcsNyBAQCBzdHJ1Y3QgZmNfZm5fbGlfZGVzYyB7CiAJCQkJCSAqIHRocmVz aG9sZCB0byBjYWF1c2UgdGhlIExJIGV2ZW50CiAJCQkJCSAqLwogCV9fYmUzMgkJcG5hbWVfY291 bnQ7CS8qIG51bWJlciBvZiBwb3J0bmFtZV9saXN0IGVsZW1lbnRzICovCi0JX19iZTY0CQlwbmFt ZV9saXN0WzBdOwkvKiBsaXN0IG9mIE5fUG9ydF9OYW1lcyBhY2Nlc3NpYmxlCisJX19iZTY0CQlw bmFtZV9saXN0W107CS8qIGxpc3Qgb2YgTl9Qb3J0X05hbWVzIGFjY2Vzc2libGUKIAkJCQkJICog dGhyb3VnaCB0aGUgYXR0YWNoZWQgcG9ydAogCQkJCQkgKi8KIH07CkBAIC0xMDY5LDcgKzEwNjks NyBAQCBzdHJ1Y3QgZmNfZm5fcGVlcl9jb25nbl9kZXNjIHsKIAkJCQkJICogY29uZ2VzdGlvbiBl dmVudAogCQkJCQkgKi8KIAlfX2JlMzIJCXBuYW1lX2NvdW50OwkvKiBudW1iZXIgb2YgcG9ydG5h bWVfbGlzdCBlbGVtZW50cyAqLwotCV9fYmU2NAkJcG5hbWVfbGlzdFswXTsJLyogbGlzdCBvZiBO X1BvcnRfTmFtZXMgYWNjZXNzaWJsZQorCV9fYmU2NAkJcG5hbWVfbGlzdFtdOwkvKiBsaXN0IG9m IE5fUG9ydF9OYW1lcyBhY2Nlc3NpYmxlCiAJCQkJCSAqIHRocm91Z2ggdGhlIGF0dGFjaGVkIHBv cnQKIAkJCQkJICovCiB9OwpAQCAtMTEwNCw3ICsxMTA0LDcgQEAgc3RydWN0IGZjX2Vsc19mcGlu IHsKIAkJCQkJICogU2l6ZSBvZiBFTFMgZXhjbHVkaW5nIGZwaW5fY21kLAogCQkJCQkgKiBmcGlu X3plcm8gYW5kIGRlc2NfbGVuIGZpZWxkcy4KIAkJCQkJICovCi0Jc3RydWN0IGZjX3Rsdl9kZXNj CWZwaW5fZGVzY1swXTsJLyogRGVzY3JpcHRvciBsaXN0ICovCisJc3RydWN0IGZjX3Rsdl9kZXNj CWZwaW5fZGVzY1tdOwkvKiBEZXNjcmlwdG9yIGxpc3QgKi8KIH07CiAKIC8qIERpYWdub3N0aWMg RnVuY3Rpb24gRGVzY3JpcHRvciAtIEZQSU4gUmVnaXN0cmF0aW9uICovCkBAIC0xMTE1LDcgKzEx MTUsNyBAQCBzdHJ1Y3QgZmNfZGZfZGVzY19mcGluX3JlZyB7CiAJCQkJCSAqIGRlc2NfdGFnIGFu ZCBkZXNjX2xlbiBmaWVsZHMuCiAJCQkJCSAqLwogCV9fYmUzMgkJY291bnQ7CQkvKiBOdW1iZXIg b2YgZGVzY190YWdzIGVsZW1lbnRzICovCi0JX19iZTMyCQlkZXNjX3RhZ3NbMF07CS8qIEFycmF5 IG9mIERlc2NyaXB0b3IgVGFncy4KKwlfX2JlMzIJCWRlc2NfdGFnc1tdOwkvKiBBcnJheSBvZiBE ZXNjcmlwdG9yIFRhZ3MuCiAJCQkJCSAqIEVhY2ggdGFnIGluZGljYXRlcyBhIGZ1bmN0aW9uCiAJ CQkJCSAqIHN1cHBvcnRlZCBieSB0aGUgTl9Qb3J0IChyZXF1ZXN0KQogCQkJCQkgKiBvciBieSB0 aGUgIE5fUG9ydCBhbmQgRmFicmljCkBAIC0xMTM1LDcgKzExMzUsNyBAQCBzdHJ1Y3QgZmNfZWxz X3JkZiB7CiAJCQkJCSAqIFNpemUgb2YgRUxTIGV4Y2x1ZGluZyBmcGluX2NtZCwKIAkJCQkJICog ZnBpbl96ZXJvIGFuZCBkZXNjX2xlbiBmaWVsZHMuCiAJCQkJCSAqLwotCXN0cnVjdCBmY190bHZf ZGVzYwlkZXNjWzBdOwkvKiBEZXNjcmlwdG9yIGxpc3QgKi8KKwlzdHJ1Y3QgZmNfdGx2X2Rlc2MJ ZGVzY1tdOwkvKiBEZXNjcmlwdG9yIGxpc3QgKi8KIH07CiAKIC8qCkBAIC0xMTQ4LDcgKzExNDgs NyBAQCBzdHJ1Y3QgZmNfZWxzX3JkZl9yZXNwIHsKIAkJCQkJCSAqIGFuZCBkZXNjX2xpc3RfbGVu IGZpZWxkcy4KIAkJCQkJCSAqLwogCXN0cnVjdCBmY19lbHNfbHNyaV9kZXNjCWxzcmk7Ci0Jc3Ry dWN0IGZjX3Rsdl9kZXNjCWRlc2NbMF07CS8qIFN1cHBvcnRlZCBEZXNjcmlwdG9yIGxpc3QgKi8K KwlzdHJ1Y3QgZmNfdGx2X2Rlc2MJZGVzY1tdOwkvKiBTdXBwb3J0ZWQgRGVzY3JpcHRvciBsaXN0 ICovCiB9OwogCiAKQEAgLTEyMzEsNyArMTIzMSw3IEBAIHN0cnVjdCBmY19lbHNfZWRjIHsKIAkJ CQkJICogU2l6ZSBvZiBFTFMgZXhjbHVkaW5nIGVkY19jbWQsCiAJCQkJCSAqIGVkY196ZXJvIGFu ZCBkZXNjX2xlbiBmaWVsZHMuCiAJCQkJCSAqLwotCXN0cnVjdCBmY190bHZfZGVzYwlkZXNjWzBd OworCXN0cnVjdCBmY190bHZfZGVzYwlkZXNjW107CiAJCQkJCS8qIERpYWdub3N0aWMgRGVzY3Jp cHRvciBsaXN0ICovCiB9OwogCkBAIC0xMjQ1LDcgKzEyNDUsNyBAQCBzdHJ1Y3QgZmNfZWxzX2Vk Y19yZXNwIHsKIAkJCQkJCSAqIGFuZCBkZXNjX2xpc3RfbGVuIGZpZWxkcy4KIAkJCQkJCSAqLwog CXN0cnVjdCBmY19lbHNfbHNyaV9kZXNjCWxzcmk7Ci0Jc3RydWN0IGZjX3Rsdl9kZXNjCWRlc2Nb MF07CisJc3RydWN0IGZjX3Rsdl9kZXNjCWRlc2NbXTsKIAkJCQkgICAgLyogU3VwcG9ydGVkIERp YWdub3N0aWMgRGVzY3JpcHRvciBsaXN0ICovCiB9OwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL3Vh cGkvc2NzaS9zY3NpX2JzZ19mYy5oIGIvaW5jbHVkZS91YXBpL3Njc2kvc2NzaV9ic2dfZmMuaApp bmRleCAzYWU2NWU5MzIzNWMuLjdmNTkzMDgwMWY3MiAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBp L3Njc2kvc2NzaV9ic2dfZmMuaAorKysgYi9pbmNsdWRlL3VhcGkvc2NzaS9zY3NpX2JzZ19mYy5o CkBAIC0yMDksNyArMjA5LDcgQEAgc3RydWN0IGZjX2JzZ19ob3N0X3ZlbmRvciB7CiAJX191NjQg dmVuZG9yX2lkOwogCiAJLyogc3RhcnQgb2YgdmVuZG9yIGNvbW1hbmQgYXJlYSAqLwotCV9fdTMy IHZlbmRvcl9jbWRbMF07CisJX191MzIgdmVuZG9yX2NtZFtdOwogfTsKIAogLyogUmVzcG9uc2U6 CmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvc291bmQvYXNvdW5kLmggYi9pbmNsdWRlL3VhcGkv c291bmQvYXNvdW5kLmgKaW5kZXggMmQzZTVkZjM5YTU5Li4zOTc0YTJhOTExY2MgMTAwNjQ0Ci0t LSBhL2luY2x1ZGUvdWFwaS9zb3VuZC9hc291bmQuaAorKysgYi9pbmNsdWRlL3VhcGkvc291bmQv YXNvdW5kLmgKQEAgLTExMDYsNyArMTEwNiw3IEBAIHN0cnVjdCBzbmRfY3RsX2VsZW1fdmFsdWUg ewogc3RydWN0IHNuZF9jdGxfdGx2IHsKIAl1bnNpZ25lZCBpbnQgbnVtaWQ7CS8qIGNvbnRyb2wg ZWxlbWVudCBudW1lcmljIGlkZW50aWZpY2F0aW9uICovCiAJdW5zaWduZWQgaW50IGxlbmd0aDsJ LyogaW4gYnl0ZXMgYWxpZ25lZCB0byA0ICovCi0JdW5zaWduZWQgaW50IHRsdlswXTsJLyogZmly c3QgVExWICovCisJdW5zaWduZWQgaW50IHRsdltdOwkvKiBmaXJzdCBUTFYgKi8KIH07CiAKICNk ZWZpbmUgU05EUlZfQ1RMX0lPQ1RMX1BWRVJTSU9OCV9JT1IoJ1UnLCAweDAwLCBpbnQpCmRpZmYg LS1naXQgYS9pbmNsdWRlL3VhcGkvc291bmQvZmlyZXdpcmUuaCBiL2luY2x1ZGUvdWFwaS9zb3Vu ZC9maXJld2lyZS5oCmluZGV4IDM5Y2Y2ZWI3NTk0MC4uMzUzMmFjNzA0NmQ3IDEwMDY0NAotLS0g YS9pbmNsdWRlL3VhcGkvc291bmQvZmlyZXdpcmUuaAorKysgYi9pbmNsdWRlL3VhcGkvc291bmQv ZmlyZXdpcmUuaApAQCAtMzgsMTEgKzM4LDExIEBAIHN0cnVjdCBzbmRfZWZ3X3RyYW5zYWN0aW9u IHsKIAlfX2JlMzIgY2F0ZWdvcnk7CiAJX19iZTMyIGNvbW1hbmQ7CiAJX19iZTMyIHN0YXR1czsK LQlfX2JlMzIgcGFyYW1zWzBdOworCV9fYmUzMiBwYXJhbXNbXTsKIH07CiBzdHJ1Y3Qgc25kX2Zp cmV3aXJlX2V2ZW50X2Vmd19yZXNwb25zZSB7CiAJdW5zaWduZWQgaW50IHR5cGU7Ci0JX19iZTMy IHJlc3BvbnNlWzBdOwkvKiBzb21lIHJlc3BvbnNlcyAqLworCV9fYmUzMiByZXNwb25zZVtdOwkv KiBzb21lIHJlc3BvbnNlcyAqLwogfTsKIAogc3RydWN0IHNuZF9maXJld2lyZV9ldmVudF9kaWdp MDB4X21lc3NhZ2UgewpAQCAtNjMsNyArNjMsNyBAQCBzdHJ1Y3Qgc25kX2ZpcmV3aXJlX3Rhc2Nh bV9jaGFuZ2UgewogCiBzdHJ1Y3Qgc25kX2ZpcmV3aXJlX2V2ZW50X3Rhc2NhbV9jb250cm9sIHsK IAl1bnNpZ25lZCBpbnQgdHlwZTsKLQlzdHJ1Y3Qgc25kX2ZpcmV3aXJlX3Rhc2NhbV9jaGFuZ2Ug Y2hhbmdlc1swXTsKKwlzdHJ1Y3Qgc25kX2ZpcmV3aXJlX3Rhc2NhbV9jaGFuZ2UgY2hhbmdlc1td OwogfTsKIAogc3RydWN0IHNuZF9maXJld2lyZV9ldmVudF9tb3R1X3JlZ2lzdGVyX2RzcF9jaGFu Z2UgewpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL3NvdW5kL3NrbC10cGxnLWludGVyZmFjZS5o IGIvaW5jbHVkZS91YXBpL3NvdW5kL3NrbC10cGxnLWludGVyZmFjZS5oCmluZGV4IGE5M2MwZGVj ZmRkNS4uZjI5ODk5YjE3OWE2IDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvc291bmQvc2tsLXRw bGctaW50ZXJmYWNlLmgKKysrIGIvaW5jbHVkZS91YXBpL3NvdW5kL3NrbC10cGxnLWludGVyZmFj ZS5oCkBAIC0xNTEsNyArMTUxLDcgQEAgc3RydWN0IHNrbF9kZndfYWxnb19kYXRhIHsKIAlfX3Uz MiByc3ZkOjMwOwogCV9fdTMyIHBhcmFtX2lkOwogCV9fdTMyIG1heDsKLQljaGFyIHBhcmFtc1sw XTsKKwljaGFyIHBhcmFtc1tdOwogfSBfX3BhY2tlZDsKIAogZW51bSBza2xfdGtuX2RpciB7CmRp ZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvc291bmQvc29mL2hlYWRlci5oIGIvaW5jbHVkZS91YXBp L3NvdW5kL3NvZi9oZWFkZXIuaAppbmRleCA1ZjQ1MThlN2E5NzIuLmRiZjEzNzUxNjUyMiAxMDA2 NDQKLS0tIGEvaW5jbHVkZS91YXBpL3NvdW5kL3NvZi9oZWFkZXIuaAorKysgYi9pbmNsdWRlL3Vh cGkvc291bmQvc29mL2hlYWRlci5oCkBAIC0yMyw3ICsyMyw3IEBAIHN0cnVjdCBzb2ZfYWJpX2hk ciB7CiAJX191MzIgc2l6ZTsJCS8qKjwgc2l6ZSBpbiBieXRlcyBvZiBkYXRhIGV4Y2wuIHRoaXMg c3RydWN0ICovCiAJX191MzIgYWJpOwkJLyoqPCBTT0YgQUJJIHZlcnNpb24gKi8KIAlfX3UzMiBy ZXNlcnZlZFs0XTsJLyoqPCByZXNlcnZlZCBmb3IgZnV0dXJlIHVzZSAqLwotCV9fdTMyIGRhdGFb MF07CQkvKio8IENvbXBvbmVudCBkYXRhIC0gb3BhcXVlIHRvIGNvcmUgKi8KKwlfX3UzMiBkYXRh W107CQkvKio8IENvbXBvbmVudCBkYXRhIC0gb3BhcXVlIHRvIGNvcmUgKi8KIH0gIF9fcGFja2Vk OwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9zb3VuZC91c2Jfc3RyZWFtLmgg Yi9pbmNsdWRlL3VhcGkvc291bmQvdXNiX3N0cmVhbS5oCmluZGV4IDk1NDE5ZDhiYmMxNi4uZmZk ZDNlYTFlMzFkIDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvc291bmQvdXNiX3N0cmVhbS5oCisr KyBiL2luY2x1ZGUvdWFwaS9zb3VuZC91c2Jfc3RyZWFtLmgKQEAgLTYxLDcgKzYxLDcgQEAgc3Ry dWN0IHVzYl9zdHJlYW0gewogCXVuc2lnbmVkCQkgaW5wYWNrZXRfc3BsaXRfYXQ7CiAJdW5zaWdu ZWQJCSBuZXh0X2lucGFja2V0X3NwbGl0OwogCXVuc2lnbmVkCQkgbmV4dF9pbnBhY2tldF9zcGxp dF9hdDsKLQlzdHJ1Y3QgdXNiX3N0cmVhbV9wYWNrZXQgaW5wYWNrZXRbMF07CisJc3RydWN0IHVz Yl9zdHJlYW1fcGFja2V0IGlucGFja2V0W107CiB9OwogCiBlbnVtIHVzYl9zdHJlYW1fc3RhdGUg ewpkaWZmIC0tZ2l0IGEvdG9vbHMvYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9rdm0uaCBiL3Rv b2xzL2FyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20va3ZtLmgKaW5kZXggYmY2ZTk2MDExZGZlLi5l MTM1ZjRkY2IxOWQgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2FyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20v a3ZtLmgKKysrIGIvdG9vbHMvYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9rdm0uaApAQCAtMTk4 LDEzICsxOTgsMTMgQEAgc3RydWN0IGt2bV9tc3JzIHsKIAlfX3UzMiBubXNyczsgLyogbnVtYmVy IG9mIG1zcnMgaW4gZW50cmllcyAqLwogCV9fdTMyIHBhZDsKIAotCXN0cnVjdCBrdm1fbXNyX2Vu dHJ5IGVudHJpZXNbMF07CisJc3RydWN0IGt2bV9tc3JfZW50cnkgZW50cmllc1tdOwogfTsKIAog LyogZm9yIEtWTV9HRVRfTVNSX0lOREVYX0xJU1QgKi8KIHN0cnVjdCBrdm1fbXNyX2xpc3Qgewog CV9fdTMyIG5tc3JzOyAvKiBudW1iZXIgb2YgbXNycyBpbiBlbnRyaWVzICovCi0JX191MzIgaW5k aWNlc1swXTsKKwlfX3UzMiBpbmRpY2VzW107CiB9OwogCiAvKiBNYXhpbXVtIHNpemUgb2YgYW55 IGFjY2VzcyBiaXRtYXAgaW4gYnl0ZXMgKi8KQEAgLTI0MSw3ICsyNDEsNyBAQCBzdHJ1Y3Qga3Zt X2NwdWlkX2VudHJ5IHsKIHN0cnVjdCBrdm1fY3B1aWQgewogCV9fdTMyIG5lbnQ7CiAJX191MzIg cGFkZGluZzsKLQlzdHJ1Y3Qga3ZtX2NwdWlkX2VudHJ5IGVudHJpZXNbMF07CisJc3RydWN0IGt2 bV9jcHVpZF9lbnRyeSBlbnRyaWVzW107CiB9OwogCiBzdHJ1Y3Qga3ZtX2NwdWlkX2VudHJ5MiB7 CkBAIC0yNjMsNyArMjYzLDcgQEAgc3RydWN0IGt2bV9jcHVpZF9lbnRyeTIgewogc3RydWN0IGt2 bV9jcHVpZDIgewogCV9fdTMyIG5lbnQ7CiAJX191MzIgcGFkZGluZzsKLQlzdHJ1Y3Qga3ZtX2Nw dWlkX2VudHJ5MiBlbnRyaWVzWzBdOworCXN0cnVjdCBrdm1fY3B1aWRfZW50cnkyIGVudHJpZXNb XTsKIH07CiAKIC8qIGZvciBLVk1fR0VUX1BJVCBhbmQgS1ZNX1NFVF9QSVQgKi8KQEAgLTM4OSw3 ICszODksNyBAQCBzdHJ1Y3Qga3ZtX3hzYXZlIHsKIAkgKiB0aGUgY29udGVudHMgb2YgQ1BVSUQg bGVhZiAweEQgb24gdGhlIGhvc3QuCiAJICovCiAJX191MzIgcmVnaW9uWzEwMjRdOwotCV9fdTMy IGV4dHJhWzBdOworCV9fdTMyIGV4dHJhW107CiB9OwogCiAjZGVmaW5lIEtWTV9NQVhfWENSUwkx NgpAQCAtNTE1LDcgKzUxNSw3IEBAIHN0cnVjdCBrdm1fcG11X2V2ZW50X2ZpbHRlciB7CiAJX191 MzIgZml4ZWRfY291bnRlcl9iaXRtYXA7CiAJX191MzIgZmxhZ3M7CiAJX191MzIgcGFkWzRdOwot CV9fdTY0IGV2ZW50c1swXTsKKwlfX3U2NCBldmVudHNbXTsKIH07CiAKICNkZWZpbmUgS1ZNX1BN VV9FVkVOVF9BTExPVyAwCmRpZmYgLS1naXQgYS90b29scy9pbmNsdWRlL3VhcGkvZHJtL2k5MTVf ZHJtLmggYi90b29scy9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgKaW5kZXggMDVjMzY0MmFh ZWNlLi4yMzliOTFiMTNjNjAgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2luY2x1ZGUvdWFwaS9kcm0vaTkx NV9kcm0uaAorKysgYi90b29scy9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgKQEAgLTIwNjAs NyArMjA2MCw3IEBAIHN0cnVjdCBpOTE1X2NvbnRleHRfZW5naW5lc19sb2FkX2JhbGFuY2Ugewog CiAJX191NjQgbWJ6NjQ7IC8qIHJlc2VydmVkIGZvciBmdXR1cmUgdXNlOyBtdXN0IGJlIHplcm8g Ki8KIAotCXN0cnVjdCBpOTE1X2VuZ2luZV9jbGFzc19pbnN0YW5jZSBlbmdpbmVzWzBdOworCXN0 cnVjdCBpOTE1X2VuZ2luZV9jbGFzc19pbnN0YW5jZSBlbmdpbmVzW107CiB9IF9fYXR0cmlidXRl X18oKHBhY2tlZCkpOwogCiAjZGVmaW5lIEk5MTVfREVGSU5FX0NPTlRFWFRfRU5HSU5FU19MT0FE X0JBTEFOQ0UobmFtZV9fLCBOX18pIHN0cnVjdCB7IFwKQEAgLTIwOTgsNyArMjA5OCw3IEBAIHN0 cnVjdCBpOTE1X2NvbnRleHRfZW5naW5lc19ib25kIHsKIAlfX3U2NCBmbGFnczsgLyogYWxsIHVu ZGVmaW5lZCBmbGFncyBtdXN0IGJlIHplcm8gKi8KIAlfX3U2NCBtYno2NFs0XTsgLyogcmVzZXJ2 ZWQgZm9yIGZ1dHVyZSB1c2U7IG11c3QgYmUgemVybyAqLwogCi0Jc3RydWN0IGk5MTVfZW5naW5l X2NsYXNzX2luc3RhbmNlIGVuZ2luZXNbMF07CisJc3RydWN0IGk5MTVfZW5naW5lX2NsYXNzX2lu c3RhbmNlIGVuZ2luZXNbXTsKIH0gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CiAKICNkZWZpbmUg STkxNV9ERUZJTkVfQ09OVEVYVF9FTkdJTkVTX0JPTkQobmFtZV9fLCBOX18pIHN0cnVjdCB7IFwK QEAgLTIyMjUsNyArMjIyNSw3IEBAIHN0cnVjdCBpOTE1X2NvbnRleHRfZW5naW5lc19wYXJhbGxl bF9zdWJtaXQgewogCSAqIGxlbmd0aCA9IHdpZHRoIChpKSAqIG51bV9zaWJsaW5ncyAoaikKIAkg KiBpbmRleCA9IGogKyBpICogbnVtX3NpYmxpbmdzCiAJICovCi0Jc3RydWN0IGk5MTVfZW5naW5l X2NsYXNzX2luc3RhbmNlIGVuZ2luZXNbMF07CisJc3RydWN0IGk5MTVfZW5naW5lX2NsYXNzX2lu c3RhbmNlIGVuZ2luZXNbXTsKIAogfSBfX3BhY2tlZDsKIApkaWZmIC0tZ2l0IGEvdG9vbHMvaW5j bHVkZS91YXBpL2xpbnV4L2JwZi5oIGIvdG9vbHMvaW5jbHVkZS91YXBpL2xpbnV4L2JwZi5oCmlu ZGV4IGY0MDA5ZGJkZjYyZC4uZTRiMzNiYTA2ZjAwIDEwMDY0NAotLS0gYS90b29scy9pbmNsdWRl L3VhcGkvbGludXgvYnBmLmgKKysrIGIvdG9vbHMvaW5jbHVkZS91YXBpL2xpbnV4L2JwZi5oCkBA IC03OSw3ICs3OSw3IEBAIHN0cnVjdCBicGZfaW5zbiB7CiAvKiBLZXkgb2YgYW4gYSBCUEZfTUFQ X1RZUEVfTFBNX1RSSUUgZW50cnkgKi8KIHN0cnVjdCBicGZfbHBtX3RyaWVfa2V5IHsKIAlfX3Uz MglwcmVmaXhsZW47CS8qIHVwIHRvIDMyIGZvciBBRl9JTkVULCAxMjggZm9yIEFGX0lORVQ2ICov Ci0JX191OAlkYXRhWzBdOwkvKiBBcmJpdHJhcnkgc2l6ZSAqLworCV9fdTgJZGF0YVtdOwkvKiBB cmJpdHJhcnkgc2l6ZSAqLwogfTsKIAogc3RydWN0IGJwZl9jZ3JvdXBfc3RvcmFnZV9rZXkgewpk aWZmIC0tZ2l0IGEvdG9vbHMvaW5jbHVkZS91YXBpL2xpbnV4L2ZzLmggYi90b29scy9pbmNsdWRl L3VhcGkvbGludXgvZnMuaAppbmRleCBiZGY3YjQwNGIzZTcuLmI3YjU2ODcxMDI5YyAxMDA2NDQK LS0tIGEvdG9vbHMvaW5jbHVkZS91YXBpL2xpbnV4L2ZzLmgKKysrIGIvdG9vbHMvaW5jbHVkZS91 YXBpL2xpbnV4L2ZzLmgKQEAgLTkwLDcgKzkwLDcgQEAgc3RydWN0IGZpbGVfZGVkdXBlX3Jhbmdl IHsKIAlfX3UxNiBkZXN0X2NvdW50OwkvKiBpbiAtIHRvdGFsIGVsZW1lbnRzIGluIGluZm8gYXJy YXkgKi8KIAlfX3UxNiByZXNlcnZlZDE7CS8qIG11c3QgYmUgemVybyAqLwogCV9fdTMyIHJlc2Vy dmVkMjsJLyogbXVzdCBiZSB6ZXJvICovCi0Jc3RydWN0IGZpbGVfZGVkdXBlX3JhbmdlX2luZm8g aW5mb1swXTsKKwlzdHJ1Y3QgZmlsZV9kZWR1cGVfcmFuZ2VfaW5mbyBpbmZvW107CiB9OwogCiAv KiBBbmQgZHluYW1pY2FsbHktdHVuYWJsZSBsaW1pdHMgYW5kIGRlZmF1bHRzOiAqLwpkaWZmIC0t Z2l0IGEvdG9vbHMvaW5jbHVkZS91YXBpL2xpbnV4L2lmX3R1bi5oIGIvdG9vbHMvaW5jbHVkZS91 YXBpL2xpbnV4L2lmX3R1bi5oCmluZGV4IDQ1NGFlMzFiOTNjNy4uMmVjMDdkZTFkNzNiIDEwMDY0 NAotLS0gYS90b29scy9pbmNsdWRlL3VhcGkvbGludXgvaWZfdHVuLmgKKysrIGIvdG9vbHMvaW5j bHVkZS91YXBpL2xpbnV4L2lmX3R1bi5oCkBAIC0xMDgsNyArMTA4LDcgQEAgc3RydWN0IHR1bl9w aSB7CiBzdHJ1Y3QgdHVuX2ZpbHRlciB7CiAJX191MTYgIGZsYWdzOyAvKiBUVU5fRkxUXyBmbGFn cyBzZWUgYWJvdmUgKi8KIAlfX3UxNiAgY291bnQ7IC8qIE51bWJlciBvZiBhZGRyZXNzZXMgKi8K LQlfX3U4ICAgYWRkclswXVtFVEhfQUxFTl07CisJX191OCAgIGFkZHJbXVtFVEhfQUxFTl07CiB9 OwogCiAjZW5kaWYgLyogX1VBUElfX0lGX1RVTl9IICovCmRpZmYgLS1naXQgYS90b29scy9pbmNs dWRlL3VhcGkvbGludXgva3ZtLmggYi90b29scy9pbmNsdWRlL3VhcGkvbGludXgva3ZtLmgKaW5k ZXggNmExODRkMjYwYzdmLi4zN2NlOGNiYWMzMjIgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2luY2x1ZGUv dWFwaS9saW51eC9rdm0uaAorKysgYi90b29scy9pbmNsdWRlL3VhcGkvbGludXgva3ZtLmgKQEAg LTUzOSw3ICs1MzksNyBAQCBzdHJ1Y3Qga3ZtX2NvYWxlc2NlZF9tbWlvIHsKIAogc3RydWN0IGt2 bV9jb2FsZXNjZWRfbW1pb19yaW5nIHsKIAlfX3UzMiBmaXJzdCwgbGFzdDsKLQlzdHJ1Y3Qga3Zt X2NvYWxlc2NlZF9tbWlvIGNvYWxlc2NlZF9tbWlvWzBdOworCXN0cnVjdCBrdm1fY29hbGVzY2Vk X21taW8gY29hbGVzY2VkX21taW9bXTsKIH07CiAKICNkZWZpbmUgS1ZNX0NPQUxFU0NFRF9NTUlP X01BWCBcCkBAIC02MTgsNyArNjE4LDcgQEAgc3RydWN0IGt2bV9jbGVhcl9kaXJ0eV9sb2cgewog LyogZm9yIEtWTV9TRVRfU0lHTkFMX01BU0sgKi8KIHN0cnVjdCBrdm1fc2lnbmFsX21hc2sgewog CV9fdTMyIGxlbjsKLQlfX3U4ICBzaWdzZXRbMF07CisJX191OCAgc2lnc2V0W107CiB9OwogCiAv KiBmb3IgS1ZNX1RQUl9BQ0NFU1NfUkVQT1JUSU5HICovCkBAIC0xMjE2LDcgKzEyMTYsNyBAQCBz dHJ1Y3Qga3ZtX2lycV9yb3V0aW5nX2VudHJ5IHsKIHN0cnVjdCBrdm1faXJxX3JvdXRpbmcgewog CV9fdTMyIG5yOwogCV9fdTMyIGZsYWdzOwotCXN0cnVjdCBrdm1faXJxX3JvdXRpbmdfZW50cnkg ZW50cmllc1swXTsKKwlzdHJ1Y3Qga3ZtX2lycV9yb3V0aW5nX2VudHJ5IGVudHJpZXNbXTsKIH07 CiAKICNlbmRpZgpAQCAtMTMzNSw3ICsxMzM1LDcgQEAgc3RydWN0IGt2bV9kaXJ0eV90bGIgewog CiBzdHJ1Y3Qga3ZtX3JlZ19saXN0IHsKIAlfX3U2NCBuOyAvKiBudW1iZXIgb2YgcmVncyAqLwot CV9fdTY0IHJlZ1swXTsKKwlfX3U2NCByZWdbXTsKIH07CiAKIHN0cnVjdCBrdm1fb25lX3JlZyB7 CmRpZmYgLS1naXQgYS90b29scy9pbmNsdWRlL3VhcGkvbGludXgvcGVyZl9ldmVudC5oIGIvdG9v bHMvaW5jbHVkZS91YXBpL2xpbnV4L3BlcmZfZXZlbnQuaAppbmRleCBkMzc2MjlkYmFkNzIuLjQ2 NTM4MzRmMDc4ZiAxMDA2NDQKLS0tIGEvdG9vbHMvaW5jbHVkZS91YXBpL2xpbnV4L3BlcmZfZXZl bnQuaAorKysgYi90b29scy9pbmNsdWRlL3VhcGkvbGludXgvcGVyZl9ldmVudC5oCkBAIC00OTEs NyArNDkxLDcgQEAgc3RydWN0IHBlcmZfZXZlbnRfcXVlcnlfYnBmIHsKIAkvKgogCSAqIFVzZXIg cHJvdmlkZWQgYnVmZmVyIHRvIHN0b3JlIHByb2dyYW0gaWRzCiAJICovCi0JX191MzIJaWRzWzBd OworCV9fdTMyCWlkc1tdOwogfTsKIAogLyoKZGlmZiAtLWdpdCBhL3Rvb2xzL2luY2x1ZGUvdWFw aS9saW51eC9wa3RfY2xzLmggYi90b29scy9pbmNsdWRlL3VhcGkvbGludXgvcGt0X2Nscy5oCmlu ZGV4IDEyMTUzNzcxMzk2YS4uM2ZhZWUwMTk5YTliIDEwMDY0NAotLS0gYS90b29scy9pbmNsdWRl L3VhcGkvbGludXgvcGt0X2Nscy5oCisrKyBiL3Rvb2xzL2luY2x1ZGUvdWFwaS9saW51eC9wa3Rf Y2xzLmgKQEAgLTE4MCw3ICsxODAsNyBAQCBzdHJ1Y3QgdGNfdTMyX3NlbCB7CiAKIAlzaG9ydAkJ CWhvZmY7CiAJX19iZTMyCQkJaG1hc2s7Ci0Jc3RydWN0IHRjX3UzMl9rZXkJa2V5c1swXTsKKwlz dHJ1Y3QgdGNfdTMyX2tleQlrZXlzW107CiB9OwogCiBzdHJ1Y3QgdGNfdTMyX21hcmsgewpAQCAt MTkyLDcgKzE5Miw3IEBAIHN0cnVjdCB0Y191MzJfbWFyayB7CiBzdHJ1Y3QgdGNfdTMyX3BjbnQg ewogCV9fdTY0IHJjbnQ7CiAJX191NjQgcmhpdDsKLQlfX3U2NCBrY250c1swXTsKKwlfX3U2NCBr Y250c1tdOwogfTsKIAogLyogRmxhZ3MgKi8KZGlmZiAtLWdpdCBhL3Rvb2xzL2luY2x1ZGUvdWFw aS9saW51eC9zZWc2LmggYi90b29scy9pbmNsdWRlL3VhcGkvbGludXgvc2VnNi5oCmluZGV4IDI4 NmU4ZDZhOGU5OC4uZjk0YmFmMTU0YzQ3IDEwMDY0NAotLS0gYS90b29scy9pbmNsdWRlL3VhcGkv bGludXgvc2VnNi5oCisrKyBiL3Rvb2xzL2luY2x1ZGUvdWFwaS9saW51eC9zZWc2LmgKQEAgLTMw LDcgKzMwLDcgQEAgc3RydWN0IGlwdjZfc3JfaGRyIHsKIAlfX3U4CWZsYWdzOwogCV9fdTE2CXRh ZzsKIAotCXN0cnVjdCBpbjZfYWRkciBzZWdtZW50c1swXTsKKwlzdHJ1Y3QgaW42X2FkZHIgc2Vn bWVudHNbXTsKIH07CiAKICNkZWZpbmUgU1I2X0ZMQUcxX1BST1RFQ1RFRAkoMSA8PCA2KQpAQCAt NDksNyArNDksNyBAQCBzdHJ1Y3QgaXB2Nl9zcl9oZHIgewogc3RydWN0IHNyNl90bHYgewogCV9f dTggdHlwZTsKIAlfX3U4IGxlbjsKLQlfX3U4IGRhdGFbMF07CisJX191OCBkYXRhW107CiB9Owog CiAjZW5kaWYKZGlmZiAtLWdpdCBhL3Rvb2xzL2luY2x1ZGUvdWFwaS9saW51eC91c2JkZXZpY2Vf ZnMuaCBiL3Rvb2xzL2luY2x1ZGUvdWFwaS9saW51eC91c2JkZXZpY2VfZnMuaAppbmRleCBjZjUy NWNkZGViOTQuLjc0YTg0ZTAyNDIyYSAxMDA2NDQKLS0tIGEvdG9vbHMvaW5jbHVkZS91YXBpL2xp bnV4L3VzYmRldmljZV9mcy5oCisrKyBiL3Rvb2xzL2luY2x1ZGUvdWFwaS9saW51eC91c2JkZXZp Y2VfZnMuaApAQCAtMTMxLDcgKzEzMSw3IEBAIHN0cnVjdCB1c2JkZXZmc191cmIgewogCXVuc2ln bmVkIGludCBzaWducjsJLyogc2lnbmFsIHRvIGJlIHNlbnQgb24gY29tcGxldGlvbiwKIAkJCQkg IG9yIDAgaWYgbm9uZSBzaG91bGQgYmUgc2VudC4gKi8KIAl2b2lkIF9fdXNlciAqdXNlcmNvbnRl eHQ7Ci0Jc3RydWN0IHVzYmRldmZzX2lzb19wYWNrZXRfZGVzYyBpc29fZnJhbWVfZGVzY1swXTsK KwlzdHJ1Y3QgdXNiZGV2ZnNfaXNvX3BhY2tldF9kZXNjIGlzb19mcmFtZV9kZXNjW107CiB9Owog CiAvKiBpb2N0bHMgZm9yIHRhbGtpbmcgZGlyZWN0bHkgdG8gZHJpdmVycyAqLwpAQCAtMTc2LDcg KzE3Niw3IEBAIHN0cnVjdCB1c2JkZXZmc19kaXNjb25uZWN0X2NsYWltIHsKIHN0cnVjdCB1c2Jk ZXZmc19zdHJlYW1zIHsKIAl1bnNpZ25lZCBpbnQgbnVtX3N0cmVhbXM7IC8qIE5vdCB1c2VkIGJ5 IFVTQkRFVkZTX0ZSRUVfU1RSRUFNUyAqLwogCXVuc2lnbmVkIGludCBudW1fZXBzOwotCXVuc2ln bmVkIGNoYXIgZXBzWzBdOworCXVuc2lnbmVkIGNoYXIgZXBzW107CiB9OwogCiAvKgpkaWZmIC0t Z2l0IGEvdG9vbHMvaW5jbHVkZS91YXBpL3NvdW5kL2Fzb3VuZC5oIGIvdG9vbHMvaW5jbHVkZS91 YXBpL3NvdW5kL2Fzb3VuZC5oCmluZGV4IDJkM2U1ZGYzOWE1OS4uMzk3NGEyYTkxMWNjIDEwMDY0 NAotLS0gYS90b29scy9pbmNsdWRlL3VhcGkvc291bmQvYXNvdW5kLmgKKysrIGIvdG9vbHMvaW5j bHVkZS91YXBpL3NvdW5kL2Fzb3VuZC5oCkBAIC0xMTA2LDcgKzExMDYsNyBAQCBzdHJ1Y3Qgc25k X2N0bF9lbGVtX3ZhbHVlIHsKIHN0cnVjdCBzbmRfY3RsX3RsdiB7CiAJdW5zaWduZWQgaW50IG51 bWlkOwkvKiBjb250cm9sIGVsZW1lbnQgbnVtZXJpYyBpZGVudGlmaWNhdGlvbiAqLwogCXVuc2ln bmVkIGludCBsZW5ndGg7CS8qIGluIGJ5dGVzIGFsaWduZWQgdG8gNCAqLwotCXVuc2lnbmVkIGlu dCB0bHZbMF07CS8qIGZpcnN0IFRMViAqLworCXVuc2lnbmVkIGludCB0bHZbXTsJLyogZmlyc3Qg VExWICovCiB9OwogCiAjZGVmaW5lIFNORFJWX0NUTF9JT0NUTF9QVkVSU0lPTglfSU9SKCdVJywg MHgwMCwgaW50KQotLSAKMi4yNy4wCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCkxpbnV4IE1URCBkaXNjdXNzaW9uIG1haWxpbmcgbGlzdApo dHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LW10ZC8K From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Gustavo A. R. Silva" Subject: [PATCH][next] treewide: uapi: Replace zero-length arrays with flexible-array members Date: Mon, 27 Jun 2022 20:04:32 +0200 Message-ID: <20220627180432.GA136081@embeddedor> Mime-Version: 1.0 Content-Transfer-Encoding: 8bit Return-path: DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1656353077; bh=zSKczzoHL+2IPAqWZ9stqX2VHIHei/r/jrczBmwH9KU=; h=Date:From:To:Cc:Subject:From; b=q4QOvRQefEcEjVVyAOahSkl46FyS0ej/BwQljX3V/tEKW1uJvemX2PdsUwiHIg7Sg YDvtmL1JtX3dS9wnyairzCKocYShwtXmeFooQK1pBYjn0nU4z5GMa7xfMTPk9cb7bZ jq6bOTrXMM1fFJRFxq0d/LZbAXmOH7I5TzmvJulBRQhyvpEa+2cET2cbtmn8IEBTzX IJ/jwM+A03aTQybuDDzJkgT9kZdGiiMxL8m60Hs9fUzbhF3UmW19Co1BmWRKOIL45X b4fYE8tW8QLzqs8PmvUF0KHkgY40QgL+2QS5U7UxNoKp+TFhXR4rbYyFY2Ts7D6y3R dm+wxbun+jboQ== Content-Disposition: inline List-ID: Content-Type: text/plain; charset="utf-8" To: Kees Cook , linux-kernel@vger.kernel.org Cc: x86@kernel.org, dm-devel@redhat.com, linux-m68k@lists.linux-m68k.org, linux-mips@vger.kernel.org, linux-s390@vger.kernel.org, kvm@vger.kernel.org, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, netdev@vger.kernel.org, bpf@vger.kernel.org, linux-btrfs@vger.kernel.org, linux-can@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux1394-devel@lists.sourceforge.net, io-uring@vger.kernel.org, lvs-devel@vger.kernel.org, linux-mtd@lists.infradead.org, kasan-dev@googlegroups.com, linux-mmc@vger.kernel.org, nvdimm@lists.linux.dev, netfilter-devel@vger.kernel.org, coreteam@netfilter.org, linux-perf-users@vger.kernel.org, linux-raid@vger.kernel.org, linux-sctp@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, linux-scsi There is a regular need in the kernel to provide a way to declare having a dynamically sized set of trailing elements in a structure. Kernel code should always use “flexible array members”[1] for these cases. The older style of one-element or zero-length arrays should no longer be used[2]. This code was transformed with the help of Coccinelle: (linux-5.19-rc2$ spatch --jobs $(getconf _NPROCESSORS_ONLN) --sp-file script.cocci --include-headers --dir . > output.patch) @@ identifier S, member, array; type T1, T2; @@ struct S { ... T1 member; T2 array[ - 0 ]; }; -fstrict-flex-arrays=3 is coming and we need to land these changes to prevent issues like these in the short future: ../fs/minix/dir.c:337:3: warning: 'strcpy' will always overflow; destination buffer has size 0, but the source string has length 2 (including NUL byte) [-Wfortify-source] strcpy(de3->name, "."); ^ Since these are all [0] to [] changes, the risk to UAPI is nearly zero. If this breaks anything, we can use a union with a new member name. [1] https://en.wikipedia.org/wiki/Flexible_array_member [2] https://www.kernel.org/doc/html/v5.16/process/deprecated.html#zero-length-and-one-element-arrays Link: https://github.com/KSPP/linux/issues/78 Build-tested-by: https://lore.kernel.org/lkml/62b675ec.wKX6AOZ6cbE71vtF%25lkp@intel.com/ Signed-off-by: Gustavo A. R. Silva --- Hi all! JFYI: I'm adding this to my -next tree. :) arch/m68k/include/uapi/asm/bootinfo.h | 4 +- arch/mips/include/uapi/asm/ucontext.h | 2 +- arch/s390/include/uapi/asm/hwctrset.h | 6 +- arch/x86/include/uapi/asm/bootparam.h | 2 +- arch/x86/include/uapi/asm/kvm.h | 12 ++-- include/uapi/drm/i915_drm.h | 6 +- include/uapi/linux/blkzoned.h | 2 +- include/uapi/linux/bpf.h | 2 +- include/uapi/linux/btrfs.h | 10 +-- include/uapi/linux/btrfs_tree.h | 2 +- include/uapi/linux/can/bcm.h | 2 +- include/uapi/linux/connector.h | 2 +- include/uapi/linux/cycx_cfm.h | 2 +- include/uapi/linux/dm-ioctl.h | 8 +-- include/uapi/linux/dm-log-userspace.h | 2 +- include/uapi/linux/ethtool.h | 28 ++++---- include/uapi/linux/fanotify.h | 2 +- include/uapi/linux/fiemap.h | 2 +- include/uapi/linux/firewire-cdev.h | 12 ++-- include/uapi/linux/fs.h | 2 +- include/uapi/linux/if_alg.h | 2 +- include/uapi/linux/if_arcnet.h | 6 +- include/uapi/linux/if_pppox.h | 4 +- include/uapi/linux/if_tun.h | 2 +- include/uapi/linux/igmp.h | 6 +- include/uapi/linux/inet_diag.h | 2 +- include/uapi/linux/inotify.h | 2 +- include/uapi/linux/io_uring.h | 2 +- include/uapi/linux/ip.h | 4 +- include/uapi/linux/ip_vs.h | 4 +- include/uapi/linux/iso_fs.h | 4 +- include/uapi/linux/jffs2.h | 8 +-- include/uapi/linux/kcov.h | 2 +- include/uapi/linux/kvm.h | 8 +-- include/uapi/linux/minix_fs.h | 4 +- include/uapi/linux/mmc/ioctl.h | 2 +- include/uapi/linux/ndctl.h | 10 +-- include/uapi/linux/net_dropmon.h | 4 +- include/uapi/linux/netfilter/x_tables.h | 4 +- include/uapi/linux/netfilter_arp/arp_tables.h | 6 +- .../uapi/linux/netfilter_bridge/ebt_among.h | 2 +- include/uapi/linux/netfilter_ipv4/ip_tables.h | 6 +- .../uapi/linux/netfilter_ipv6/ip6_tables.h | 4 +- include/uapi/linux/perf_event.h | 2 +- include/uapi/linux/pkt_cls.h | 4 +- include/uapi/linux/raid/md_p.h | 2 +- include/uapi/linux/random.h | 2 +- include/uapi/linux/romfs_fs.h | 4 +- include/uapi/linux/rtnetlink.h | 2 +- include/uapi/linux/sctp.h | 10 +-- include/uapi/linux/seg6.h | 2 +- include/uapi/linux/seg6_iptunnel.h | 2 +- include/uapi/linux/stm.h | 2 +- include/uapi/linux/target_core_user.h | 2 +- include/uapi/linux/usb/audio.h | 2 +- include/uapi/linux/usb/cdc.h | 6 +- include/uapi/linux/usb/ch9.h | 2 +- include/uapi/linux/usb/raw_gadget.h | 4 +- include/uapi/linux/usbdevice_fs.h | 4 +- include/uapi/linux/vhost_types.h | 4 +- include/uapi/linux/virtio_9p.h | 2 +- include/uapi/linux/xfrm.h | 10 +-- include/uapi/rdma/hfi/hfi1_user.h | 2 +- include/uapi/rdma/ib_user_verbs.h | 72 +++++++++---------- include/uapi/rdma/rdma_user_cm.h | 2 +- include/uapi/rdma/rdma_user_ioctl_cmds.h | 2 +- include/uapi/scsi/fc/fc_els.h | 18 ++--- include/uapi/scsi/scsi_bsg_fc.h | 2 +- include/uapi/sound/asound.h | 2 +- include/uapi/sound/firewire.h | 6 +- include/uapi/sound/skl-tplg-interface.h | 2 +- include/uapi/sound/sof/header.h | 2 +- include/uapi/sound/usb_stream.h | 2 +- tools/arch/x86/include/uapi/asm/kvm.h | 12 ++-- tools/include/uapi/drm/i915_drm.h | 6 +- tools/include/uapi/linux/bpf.h | 2 +- tools/include/uapi/linux/fs.h | 2 +- tools/include/uapi/linux/if_tun.h | 2 +- tools/include/uapi/linux/kvm.h | 8 +-- tools/include/uapi/linux/perf_event.h | 2 +- tools/include/uapi/linux/pkt_cls.h | 4 +- tools/include/uapi/linux/seg6.h | 4 +- tools/include/uapi/linux/usbdevice_fs.h | 4 +- tools/include/uapi/sound/asound.h | 2 +- 84 files changed, 218 insertions(+), 218 deletions(-) diff --git a/arch/m68k/include/uapi/asm/bootinfo.h b/arch/m68k/include/uapi/asm/bootinfo.h index 203d9cbf9630..95ecf3ae4c49 100644 --- a/arch/m68k/include/uapi/asm/bootinfo.h +++ b/arch/m68k/include/uapi/asm/bootinfo.h @@ -34,7 +34,7 @@ struct bi_record { __be16 tag; /* tag ID */ __be16 size; /* size of record (in bytes) */ - __be32 data[0]; /* data */ + __be32 data[]; /* data */ }; @@ -168,7 +168,7 @@ struct bootversion { struct { __be32 machtype; __be32 version; - } machversions[0]; + } machversions[]; } __packed; #endif /* __ASSEMBLY__ */ diff --git a/arch/mips/include/uapi/asm/ucontext.h b/arch/mips/include/uapi/asm/ucontext.h index 2d3bf8eebf1f..6122ef97c6ff 100644 --- a/arch/mips/include/uapi/asm/ucontext.h +++ b/arch/mips/include/uapi/asm/ucontext.h @@ -60,7 +60,7 @@ struct ucontext { sigset_t uc_sigmask; /* Extended context structures may follow ucontext */ - unsigned long long uc_extcontext[0]; + unsigned long long uc_extcontext[]; }; #endif /* __MIPS_UAPI_ASM_UCONTEXT_H */ diff --git a/arch/s390/include/uapi/asm/hwctrset.h b/arch/s390/include/uapi/asm/hwctrset.h index 3d8284b95f87..e56b9dd23a4b 100644 --- a/arch/s390/include/uapi/asm/hwctrset.h +++ b/arch/s390/include/uapi/asm/hwctrset.h @@ -30,18 +30,18 @@ struct s390_ctrset_start { /* Set CPUs to operate on */ struct s390_ctrset_setdata { /* Counter set data */ __u32 set; /* Counter set number */ __u32 no_cnts; /* # of counters stored in cv[] */ - __u64 cv[0]; /* Counter values (variable length) */ + __u64 cv[]; /* Counter values (variable length) */ }; struct s390_ctrset_cpudata { /* Counter set data per CPU */ __u32 cpu_nr; /* CPU number */ __u32 no_sets; /* # of counters sets in data[] */ - struct s390_ctrset_setdata data[0]; + struct s390_ctrset_setdata data[]; }; struct s390_ctrset_read { /* Structure to get all ctr sets */ __u64 no_cpus; /* Total # of CPUs data taken from */ - struct s390_ctrset_cpudata data[0]; + struct s390_ctrset_cpudata data[]; }; #define S390_HWCTR_MAGIC 'C' /* Random magic # for ioctls */ diff --git a/arch/x86/include/uapi/asm/bootparam.h b/arch/x86/include/uapi/asm/bootparam.h index bea5cdcdf532..cdd6c7f6cfa6 100644 --- a/arch/x86/include/uapi/asm/bootparam.h +++ b/arch/x86/include/uapi/asm/bootparam.h @@ -52,7 +52,7 @@ struct setup_data { __u64 next; __u32 type; __u32 len; - __u8 data[0]; + __u8 data[]; }; /* extensible setup indirect data node */ diff --git a/arch/x86/include/uapi/asm/kvm.h b/arch/x86/include/uapi/asm/kvm.h index 21614807a2cb..ec53c9fa1da9 100644 --- a/arch/x86/include/uapi/asm/kvm.h +++ b/arch/x86/include/uapi/asm/kvm.h @@ -198,13 +198,13 @@ struct kvm_msrs { __u32 nmsrs; /* number of msrs in entries */ __u32 pad; - struct kvm_msr_entry entries[0]; + struct kvm_msr_entry entries[]; }; /* for KVM_GET_MSR_INDEX_LIST */ struct kvm_msr_list { __u32 nmsrs; /* number of msrs in entries */ - __u32 indices[0]; + __u32 indices[]; }; /* Maximum size of any access bitmap in bytes */ @@ -241,7 +241,7 @@ struct kvm_cpuid_entry { struct kvm_cpuid { __u32 nent; __u32 padding; - struct kvm_cpuid_entry entries[0]; + struct kvm_cpuid_entry entries[]; }; struct kvm_cpuid_entry2 { @@ -263,7 +263,7 @@ struct kvm_cpuid_entry2 { struct kvm_cpuid2 { __u32 nent; __u32 padding; - struct kvm_cpuid_entry2 entries[0]; + struct kvm_cpuid_entry2 entries[]; }; /* for KVM_GET_PIT and KVM_SET_PIT */ @@ -389,7 +389,7 @@ struct kvm_xsave { * the contents of CPUID leaf 0xD on the host. */ __u32 region[1024]; - __u32 extra[0]; + __u32 extra[]; }; #define KVM_MAX_XCRS 16 @@ -516,7 +516,7 @@ struct kvm_pmu_event_filter { __u32 fixed_counter_bitmap; __u32 flags; __u32 pad[4]; - __u64 events[0]; + __u64 events[]; }; #define KVM_PMU_EVENT_ALLOW 0 diff --git a/include/uapi/drm/i915_drm.h b/include/uapi/drm/i915_drm.h index a2def7b27009..b28ff5d88145 100644 --- a/include/uapi/drm/i915_drm.h +++ b/include/uapi/drm/i915_drm.h @@ -2123,7 +2123,7 @@ struct i915_context_engines_load_balance { __u64 mbz64; /* reserved for future use; must be zero */ - struct i915_engine_class_instance engines[0]; + struct i915_engine_class_instance engines[]; } __attribute__((packed)); #define I915_DEFINE_CONTEXT_ENGINES_LOAD_BALANCE(name__, N__) struct { \ @@ -2161,7 +2161,7 @@ struct i915_context_engines_bond { __u64 flags; /* all undefined flags must be zero */ __u64 mbz64[4]; /* reserved for future use; must be zero */ - struct i915_engine_class_instance engines[0]; + struct i915_engine_class_instance engines[]; } __attribute__((packed)); #define I915_DEFINE_CONTEXT_ENGINES_BOND(name__, N__) struct { \ @@ -2288,7 +2288,7 @@ struct i915_context_engines_parallel_submit { * length = width (i) * num_siblings (j) * index = j + i * num_siblings */ - struct i915_engine_class_instance engines[0]; + struct i915_engine_class_instance engines[]; } __packed; diff --git a/include/uapi/linux/blkzoned.h b/include/uapi/linux/blkzoned.h index 656a326821a2..b80fcc9ea525 100644 --- a/include/uapi/linux/blkzoned.h +++ b/include/uapi/linux/blkzoned.h @@ -130,7 +130,7 @@ struct blk_zone_report { __u64 sector; __u32 nr_zones; __u32 flags; - struct blk_zone zones[0]; + struct blk_zone zones[]; }; /** diff --git a/include/uapi/linux/bpf.h b/include/uapi/linux/bpf.h index f4009dbdf62d..e4b33ba06f00 100644 --- a/include/uapi/linux/bpf.h +++ b/include/uapi/linux/bpf.h @@ -79,7 +79,7 @@ struct bpf_insn { /* Key of an a BPF_MAP_TYPE_LPM_TRIE entry */ struct bpf_lpm_trie_key { __u32 prefixlen; /* up to 32 for AF_INET, 128 for AF_INET6 */ - __u8 data[0]; /* Arbitrary size */ + __u8 data[]; /* Arbitrary size */ }; struct bpf_cgroup_storage_key { diff --git a/include/uapi/linux/btrfs.h b/include/uapi/linux/btrfs.h index d956b2993970..3d0edbe3b991 100644 --- a/include/uapi/linux/btrfs.h +++ b/include/uapi/linux/btrfs.h @@ -93,7 +93,7 @@ struct btrfs_qgroup_inherit { __u64 num_ref_copies; __u64 num_excl_copies; struct btrfs_qgroup_limit lim; - __u64 qgroups[0]; + __u64 qgroups[]; }; struct btrfs_ioctl_qgroup_limit_args { @@ -561,7 +561,7 @@ struct btrfs_ioctl_search_args_v2 { __u64 buf_size; /* in - size of buffer * out - on EOVERFLOW: needed size * to store item */ - __u64 buf[0]; /* out - found items */ + __u64 buf[]; /* out - found items */ }; struct btrfs_ioctl_clone_range_args { @@ -632,7 +632,7 @@ struct btrfs_ioctl_same_args { __u16 dest_count; /* in - total elements in info array */ __u16 reserved1; __u32 reserved2; - struct btrfs_ioctl_same_extent_info info[0]; + struct btrfs_ioctl_same_extent_info info[]; }; struct btrfs_ioctl_space_info { @@ -644,7 +644,7 @@ struct btrfs_ioctl_space_info { struct btrfs_ioctl_space_args { __u64 space_slots; __u64 total_spaces; - struct btrfs_ioctl_space_info spaces[0]; + struct btrfs_ioctl_space_info spaces[]; }; struct btrfs_data_container { @@ -652,7 +652,7 @@ struct btrfs_data_container { __u32 bytes_missing; /* out -- additional bytes needed for result */ __u32 elem_cnt; /* out */ __u32 elem_missed; /* out */ - __u64 val[0]; /* out */ + __u64 val[]; /* out */ }; struct btrfs_ioctl_ino_path_args { diff --git a/include/uapi/linux/btrfs_tree.h b/include/uapi/linux/btrfs_tree.h index d4117152d907..5f32a2a495dc 100644 --- a/include/uapi/linux/btrfs_tree.h +++ b/include/uapi/linux/btrfs_tree.h @@ -575,7 +575,7 @@ struct btrfs_inode_extref { __le64 parent_objectid; __le64 index; __le16 name_len; - __u8 name[0]; + __u8 name[]; /* name goes here */ } __attribute__ ((__packed__)); diff --git a/include/uapi/linux/can/bcm.h b/include/uapi/linux/can/bcm.h index dd2b925b09ac..f1e45f533a72 100644 --- a/include/uapi/linux/can/bcm.h +++ b/include/uapi/linux/can/bcm.h @@ -71,7 +71,7 @@ struct bcm_msg_head { struct bcm_timeval ival1, ival2; canid_t can_id; __u32 nframes; - struct can_frame frames[0]; + struct can_frame frames[]; }; enum { diff --git a/include/uapi/linux/connector.h b/include/uapi/linux/connector.h index 3738936149a2..5ae131c3f145 100644 --- a/include/uapi/linux/connector.h +++ b/include/uapi/linux/connector.h @@ -75,7 +75,7 @@ struct cn_msg { __u16 len; /* Length of the following data */ __u16 flags; - __u8 data[0]; + __u8 data[]; }; #endif /* _UAPI__CONNECTOR_H */ diff --git a/include/uapi/linux/cycx_cfm.h b/include/uapi/linux/cycx_cfm.h index 51f541942ff9..91778c8024b1 100644 --- a/include/uapi/linux/cycx_cfm.h +++ b/include/uapi/linux/cycx_cfm.h @@ -91,7 +91,7 @@ struct cycx_firmware { unsigned short reserved[6]; char descr[CFM_DESCR_LEN]; struct cycx_fw_info info; - unsigned char image[0]; + unsigned char image[]; }; struct cycx_fw_header { diff --git a/include/uapi/linux/dm-ioctl.h b/include/uapi/linux/dm-ioctl.h index 2e9550fef90f..8c97d75f3104 100644 --- a/include/uapi/linux/dm-ioctl.h +++ b/include/uapi/linux/dm-ioctl.h @@ -182,7 +182,7 @@ struct dm_target_spec { struct dm_target_deps { __u32 count; /* Array size */ __u32 padding; /* unused */ - __u64 dev[0]; /* out */ + __u64 dev[]; /* out */ }; /* @@ -192,7 +192,7 @@ struct dm_name_list { __u64 dev; __u32 next; /* offset to the next record from the _start_ of this */ - char name[0]; + char name[]; /* * The following members can be accessed by taking a pointer that @@ -216,7 +216,7 @@ struct dm_target_versions { __u32 next; __u32 version[3]; - char name[0]; + char name[]; }; /* @@ -225,7 +225,7 @@ struct dm_target_versions { struct dm_target_msg { __u64 sector; /* Device sector */ - char message[0]; + char message[]; }; /* diff --git a/include/uapi/linux/dm-log-userspace.h b/include/uapi/linux/dm-log-userspace.h index 5c47a8603376..23dad9565e46 100644 --- a/include/uapi/linux/dm-log-userspace.h +++ b/include/uapi/linux/dm-log-userspace.h @@ -426,7 +426,7 @@ struct dm_ulog_request { __u32 request_type; /* DM_ULOG_* defined above */ __u32 data_size; /* How much data (not including this struct) */ - char data[0]; + char data[]; }; #endif /* __DM_LOG_USERSPACE_H__ */ diff --git a/include/uapi/linux/ethtool.h b/include/uapi/linux/ethtool.h index e0f0ee9bc89e..2d5741fd44bb 100644 --- a/include/uapi/linux/ethtool.h +++ b/include/uapi/linux/ethtool.h @@ -257,7 +257,7 @@ struct ethtool_tunable { __u32 id; __u32 type_id; __u32 len; - void *data[0]; + void *data[]; }; #define DOWNSHIFT_DEV_DEFAULT_COUNT 0xff @@ -322,7 +322,7 @@ struct ethtool_regs { __u32 cmd; __u32 version; __u32 len; - __u8 data[0]; + __u8 data[]; }; /** @@ -348,7 +348,7 @@ struct ethtool_eeprom { __u32 magic; __u32 offset; __u32 len; - __u8 data[0]; + __u8 data[]; }; /** @@ -752,7 +752,7 @@ struct ethtool_gstrings { __u32 cmd; __u32 string_set; __u32 len; - __u8 data[0]; + __u8 data[]; }; /** @@ -777,7 +777,7 @@ struct ethtool_sset_info { __u32 cmd; __u32 reserved; __u64 sset_mask; - __u32 data[0]; + __u32 data[]; }; /** @@ -817,7 +817,7 @@ struct ethtool_test { __u32 flags; __u32 reserved; __u32 len; - __u64 data[0]; + __u64 data[]; }; /** @@ -834,7 +834,7 @@ struct ethtool_test { struct ethtool_stats { __u32 cmd; __u32 n_stats; - __u64 data[0]; + __u64 data[]; }; /** @@ -851,7 +851,7 @@ struct ethtool_stats { struct ethtool_perm_addr { __u32 cmd; __u32 size; - __u8 data[0]; + __u8 data[]; }; /* boolean flags controlling per-interface behavior characteristics. @@ -1160,7 +1160,7 @@ struct ethtool_rxnfc { struct ethtool_rxfh_indir { __u32 cmd; __u32 size; - __u32 ring_index[0]; + __u32 ring_index[]; }; /** @@ -1201,7 +1201,7 @@ struct ethtool_rxfh { __u8 hfunc; __u8 rsvd8[3]; __u32 rsvd32; - __u32 rss_config[0]; + __u32 rss_config[]; }; #define ETH_RXFH_CONTEXT_ALLOC 0xffffffff #define ETH_RXFH_INDIR_NO_CHANGE 0xffffffff @@ -1286,7 +1286,7 @@ struct ethtool_dump { __u32 version; __u32 flag; __u32 len; - __u8 data[0]; + __u8 data[]; }; #define ETH_FW_DUMP_DISABLE 0 @@ -1318,7 +1318,7 @@ struct ethtool_get_features_block { struct ethtool_gfeatures { __u32 cmd; __u32 size; - struct ethtool_get_features_block features[0]; + struct ethtool_get_features_block features[]; }; /** @@ -1340,7 +1340,7 @@ struct ethtool_set_features_block { struct ethtool_sfeatures { __u32 cmd; __u32 size; - struct ethtool_set_features_block features[0]; + struct ethtool_set_features_block features[]; }; /** @@ -2087,7 +2087,7 @@ struct ethtool_link_settings { __u8 master_slave_state; __u8 reserved1[1]; __u32 reserved[7]; - __u32 link_mode_masks[0]; + __u32 link_mode_masks[]; /* layout of link_mode_masks fields: * __u32 map_supported[link_mode_masks_nwords]; * __u32 map_advertising[link_mode_masks_nwords]; diff --git a/include/uapi/linux/fanotify.h b/include/uapi/linux/fanotify.h index f1f89132d60e..197df344307d 100644 --- a/include/uapi/linux/fanotify.h +++ b/include/uapi/linux/fanotify.h @@ -162,7 +162,7 @@ struct fanotify_event_info_fid { * Following is an opaque struct file_handle that can be passed as * an argument to open_by_handle_at(2). */ - unsigned char handle[0]; + unsigned char handle[]; }; /* diff --git a/include/uapi/linux/fiemap.h b/include/uapi/linux/fiemap.h index 07c1cdcb715e..24ca0c00cae3 100644 --- a/include/uapi/linux/fiemap.h +++ b/include/uapi/linux/fiemap.h @@ -34,7 +34,7 @@ struct fiemap { __u32 fm_mapped_extents;/* number of extents that were mapped (out) */ __u32 fm_extent_count; /* size of fm_extents array (in) */ __u32 fm_reserved; - struct fiemap_extent fm_extents[0]; /* array of mapped extents (out) */ + struct fiemap_extent fm_extents[]; /* array of mapped extents (out) */ }; #define FIEMAP_MAX_OFFSET (~0ULL) diff --git a/include/uapi/linux/firewire-cdev.h b/include/uapi/linux/firewire-cdev.h index 5effa9832802..92be3ea3c6e0 100644 --- a/include/uapi/linux/firewire-cdev.h +++ b/include/uapi/linux/firewire-cdev.h @@ -118,7 +118,7 @@ struct fw_cdev_event_response { __u32 type; __u32 rcode; __u32 length; - __u32 data[0]; + __u32 data[]; }; /** @@ -142,7 +142,7 @@ struct fw_cdev_event_request { __u64 offset; __u32 handle; __u32 length; - __u32 data[0]; + __u32 data[]; }; /** @@ -205,7 +205,7 @@ struct fw_cdev_event_request2 { __u32 generation; __u32 handle; __u32 length; - __u32 data[0]; + __u32 data[]; }; /** @@ -265,7 +265,7 @@ struct fw_cdev_event_iso_interrupt { __u32 type; __u32 cycle; __u32 header_length; - __u32 header[0]; + __u32 header[]; }; /** @@ -355,7 +355,7 @@ struct fw_cdev_event_phy_packet { __u32 type; __u32 rcode; __u32 length; - __u32 data[0]; + __u32 data[]; }; /** @@ -803,7 +803,7 @@ struct fw_cdev_set_iso_channels { */ struct fw_cdev_iso_packet { __u32 control; - __u32 header[0]; + __u32 header[]; }; /** diff --git a/include/uapi/linux/fs.h b/include/uapi/linux/fs.h index bdf7b404b3e7..b7b56871029c 100644 --- a/include/uapi/linux/fs.h +++ b/include/uapi/linux/fs.h @@ -90,7 +90,7 @@ struct file_dedupe_range { __u16 dest_count; /* in - total elements in info array */ __u16 reserved1; /* must be zero */ __u32 reserved2; /* must be zero */ - struct file_dedupe_range_info info[0]; + struct file_dedupe_range_info info[]; }; /* And dynamically-tunable limits and defaults: */ diff --git a/include/uapi/linux/if_alg.h b/include/uapi/linux/if_alg.h index dc52a11ba6d1..578b18aab821 100644 --- a/include/uapi/linux/if_alg.h +++ b/include/uapi/linux/if_alg.h @@ -42,7 +42,7 @@ struct sockaddr_alg_new { struct af_alg_iv { __u32 ivlen; - __u8 iv[0]; + __u8 iv[]; }; /* Socket options */ diff --git a/include/uapi/linux/if_arcnet.h b/include/uapi/linux/if_arcnet.h index 683878036d76..b122cfac7128 100644 --- a/include/uapi/linux/if_arcnet.h +++ b/include/uapi/linux/if_arcnet.h @@ -60,7 +60,7 @@ struct arc_rfc1201 { __u8 proto; /* protocol ID field - varies */ __u8 split_flag; /* for use with split packets */ __be16 sequence; /* sequence number */ - __u8 payload[0]; /* space remaining in packet (504 bytes)*/ + __u8 payload[]; /* space remaining in packet (504 bytes)*/ }; #define RFC1201_HDR_SIZE 4 @@ -69,7 +69,7 @@ struct arc_rfc1201 { */ struct arc_rfc1051 { __u8 proto; /* ARC_P_RFC1051_ARP/RFC1051_IP */ - __u8 payload[0]; /* 507 bytes */ + __u8 payload[]; /* 507 bytes */ }; #define RFC1051_HDR_SIZE 1 @@ -80,7 +80,7 @@ struct arc_rfc1051 { struct arc_eth_encap { __u8 proto; /* Always ARC_P_ETHER */ struct ethhdr eth; /* standard ethernet header (yuck!) */ - __u8 payload[0]; /* 493 bytes */ + __u8 payload[]; /* 493 bytes */ }; #define ETH_ENCAP_HDR_SIZE 14 diff --git a/include/uapi/linux/if_pppox.h b/include/uapi/linux/if_pppox.h index e7a693c28f16..9abd80dcc46f 100644 --- a/include/uapi/linux/if_pppox.h +++ b/include/uapi/linux/if_pppox.h @@ -122,7 +122,7 @@ struct sockaddr_pppol2tpv3in6 { struct pppoe_tag { __be16 tag_type; __be16 tag_len; - char tag_data[0]; + char tag_data[]; } __attribute__ ((packed)); /* Tag identifiers */ @@ -150,7 +150,7 @@ struct pppoe_hdr { __u8 code; __be16 sid; __be16 length; - struct pppoe_tag tag[0]; + struct pppoe_tag tag[]; } __packed; /* Length of entire PPPoE + PPP header */ diff --git a/include/uapi/linux/if_tun.h b/include/uapi/linux/if_tun.h index 454ae31b93c7..2ec07de1d73b 100644 --- a/include/uapi/linux/if_tun.h +++ b/include/uapi/linux/if_tun.h @@ -108,7 +108,7 @@ struct tun_pi { struct tun_filter { __u16 flags; /* TUN_FLT_ flags see above */ __u16 count; /* Number of addresses */ - __u8 addr[0][ETH_ALEN]; + __u8 addr[][ETH_ALEN]; }; #endif /* _UAPI__IF_TUN_H */ diff --git a/include/uapi/linux/igmp.h b/include/uapi/linux/igmp.h index 90c28bc466c6..5930f2437cd1 100644 --- a/include/uapi/linux/igmp.h +++ b/include/uapi/linux/igmp.h @@ -48,7 +48,7 @@ struct igmpv3_grec { __u8 grec_auxwords; __be16 grec_nsrcs; __be32 grec_mca; - __be32 grec_src[0]; + __be32 grec_src[]; }; struct igmpv3_report { @@ -57,7 +57,7 @@ struct igmpv3_report { __sum16 csum; __be16 resv2; __be16 ngrec; - struct igmpv3_grec grec[0]; + struct igmpv3_grec grec[]; }; struct igmpv3_query { @@ -78,7 +78,7 @@ struct igmpv3_query { #endif __u8 qqic; __be16 nsrcs; - __be32 srcs[0]; + __be32 srcs[]; }; #define IGMP_HOST_MEMBERSHIP_QUERY 0x11 /* From RFC1112 */ diff --git a/include/uapi/linux/inet_diag.h b/include/uapi/linux/inet_diag.h index 20ee93f0f876..50655de04c9b 100644 --- a/include/uapi/linux/inet_diag.h +++ b/include/uapi/linux/inet_diag.h @@ -104,7 +104,7 @@ struct inet_diag_hostcond { __u8 family; __u8 prefix_len; int port; - __be32 addr[0]; + __be32 addr[]; }; struct inet_diag_markcond { diff --git a/include/uapi/linux/inotify.h b/include/uapi/linux/inotify.h index 884b4846b630..b3e165853d5b 100644 --- a/include/uapi/linux/inotify.h +++ b/include/uapi/linux/inotify.h @@ -23,7 +23,7 @@ struct inotify_event { __u32 mask; /* watch mask */ __u32 cookie; /* cookie to synchronize two events */ __u32 len; /* length (including nulls) of name */ - char name[0]; /* stub for possible name */ + char name[]; /* stub for possible name */ }; /* the following are legal, implemented events that user-space can watch for */ diff --git a/include/uapi/linux/io_uring.h b/include/uapi/linux/io_uring.h index 776e0278f9dd..7822ef9d8628 100644 --- a/include/uapi/linux/io_uring.h +++ b/include/uapi/linux/io_uring.h @@ -486,7 +486,7 @@ struct io_uring_probe { __u8 ops_len; /* length of ops[] array below */ __u16 resv; __u32 resv2[3]; - struct io_uring_probe_op ops[0]; + struct io_uring_probe_op ops[]; }; struct io_uring_restriction { diff --git a/include/uapi/linux/ip.h b/include/uapi/linux/ip.h index e00bbb9c47bb..961ec16a26b8 100644 --- a/include/uapi/linux/ip.h +++ b/include/uapi/linux/ip.h @@ -112,13 +112,13 @@ struct ip_auth_hdr { __be16 reserved; __be32 spi; __be32 seq_no; /* Sequence number */ - __u8 auth_data[0]; /* Variable len but >=4. Mind the 64 bit alignment! */ + __u8 auth_data[]; /* Variable len but >=4. Mind the 64 bit alignment! */ }; struct ip_esp_hdr { __be32 spi; __be32 seq_no; /* Sequence number */ - __u8 enc_data[0]; /* Variable len but >=8. Mind the 64 bit alignment! */ + __u8 enc_data[]; /* Variable len but >=8. Mind the 64 bit alignment! */ }; struct ip_comp_hdr { diff --git a/include/uapi/linux/ip_vs.h b/include/uapi/linux/ip_vs.h index 4102ddcb4e14..1ed234e7f251 100644 --- a/include/uapi/linux/ip_vs.h +++ b/include/uapi/linux/ip_vs.h @@ -254,7 +254,7 @@ struct ip_vs_get_dests { unsigned int num_dests; /* the real servers */ - struct ip_vs_dest_entry entrytable[0]; + struct ip_vs_dest_entry entrytable[]; }; @@ -264,7 +264,7 @@ struct ip_vs_get_services { unsigned int num_services; /* service table */ - struct ip_vs_service_entry entrytable[0]; + struct ip_vs_service_entry entrytable[]; }; diff --git a/include/uapi/linux/iso_fs.h b/include/uapi/linux/iso_fs.h index a2555176f6d1..758178f5b52d 100644 --- a/include/uapi/linux/iso_fs.h +++ b/include/uapi/linux/iso_fs.h @@ -137,7 +137,7 @@ struct iso_path_table{ __u8 name_len[2]; /* 721 */ __u8 extent[4]; /* 731 */ __u8 parent[2]; /* 721 */ - char name[0]; + char name[]; } __attribute__((packed)); /* high sierra is identical to iso, except that the date is only 6 bytes, and @@ -154,7 +154,7 @@ struct iso_directory_record { __u8 interleave [ISODCL (28, 28)]; /* 711 */ __u8 volume_sequence_number [ISODCL (29, 32)]; /* 723 */ __u8 name_len [ISODCL (33, 33)]; /* 711 */ - char name [0]; + char name []; } __attribute__((packed)); #define ISOFS_BLOCK_BITS 11 diff --git a/include/uapi/linux/jffs2.h b/include/uapi/linux/jffs2.h index 784ba0b9690a..637ee4a793cf 100644 --- a/include/uapi/linux/jffs2.h +++ b/include/uapi/linux/jffs2.h @@ -123,7 +123,7 @@ struct jffs2_raw_dirent __u8 unused[2]; jint32_t node_crc; jint32_t name_crc; - __u8 name[0]; + __u8 name[]; }; /* The JFFS2 raw inode structure: Used for storage on physical media. */ @@ -155,7 +155,7 @@ struct jffs2_raw_inode jint16_t flags; /* See JFFS2_INO_FLAG_* */ jint32_t data_crc; /* CRC for the (compressed) data. */ jint32_t node_crc; /* CRC for the raw inode (excluding data) */ - __u8 data[0]; + __u8 data[]; }; struct jffs2_raw_xattr { @@ -170,7 +170,7 @@ struct jffs2_raw_xattr { jint16_t value_len; jint32_t data_crc; jint32_t node_crc; - __u8 data[0]; + __u8 data[]; } __attribute__((packed)); struct jffs2_raw_xref @@ -196,7 +196,7 @@ struct jffs2_raw_summary jint32_t padded; /* sum of the size of padding nodes */ jint32_t sum_crc; /* summary information crc */ jint32_t node_crc; /* node crc */ - jint32_t sum[0]; /* inode summary info */ + jint32_t sum[]; /* inode summary info */ }; union jffs2_node_union diff --git a/include/uapi/linux/kcov.h b/include/uapi/linux/kcov.h index 1d0350e44ae3..ed95dba9fa37 100644 --- a/include/uapi/linux/kcov.h +++ b/include/uapi/linux/kcov.h @@ -13,7 +13,7 @@ struct kcov_remote_arg { __u32 area_size; /* Length of coverage buffer in words */ __u32 num_handles; /* Size of handles array */ __aligned_u64 common_handle; - __aligned_u64 handles[0]; + __aligned_u64 handles[]; }; #define KCOV_REMOTE_MAX_HANDLES 0x100 diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h index 5088bd9f1922..74dc8bafcb9e 100644 --- a/include/uapi/linux/kvm.h +++ b/include/uapi/linux/kvm.h @@ -542,7 +542,7 @@ struct kvm_coalesced_mmio { struct kvm_coalesced_mmio_ring { __u32 first, last; - struct kvm_coalesced_mmio coalesced_mmio[0]; + struct kvm_coalesced_mmio coalesced_mmio[]; }; #define KVM_COALESCED_MMIO_MAX \ @@ -621,7 +621,7 @@ struct kvm_clear_dirty_log { /* for KVM_SET_SIGNAL_MASK */ struct kvm_signal_mask { __u32 len; - __u8 sigset[0]; + __u8 sigset[]; }; /* for KVM_TPR_ACCESS_REPORTING */ @@ -1221,7 +1221,7 @@ struct kvm_irq_routing_entry { struct kvm_irq_routing { __u32 nr; __u32 flags; - struct kvm_irq_routing_entry entries[0]; + struct kvm_irq_routing_entry entries[]; }; #endif @@ -1341,7 +1341,7 @@ struct kvm_dirty_tlb { struct kvm_reg_list { __u64 n; /* number of regs */ - __u64 reg[0]; + __u64 reg[]; }; struct kvm_one_reg { diff --git a/include/uapi/linux/minix_fs.h b/include/uapi/linux/minix_fs.h index 95dbcb17eacd..8d9ca8b2c357 100644 --- a/include/uapi/linux/minix_fs.h +++ b/include/uapi/linux/minix_fs.h @@ -97,11 +97,11 @@ struct minix3_super_block { struct minix_dir_entry { __u16 inode; - char name[0]; + char name[]; }; struct minix3_dir_entry { __u32 inode; - char name[0]; + char name[]; }; #endif diff --git a/include/uapi/linux/mmc/ioctl.h b/include/uapi/linux/mmc/ioctl.h index 27a39847d55c..e7401ade6822 100644 --- a/include/uapi/linux/mmc/ioctl.h +++ b/include/uapi/linux/mmc/ioctl.h @@ -58,7 +58,7 @@ struct mmc_ioc_cmd { */ struct mmc_ioc_multi_cmd { __u64 num_of_cmds; - struct mmc_ioc_cmd cmds[0]; + struct mmc_ioc_cmd cmds[]; }; #define MMC_IOC_CMD _IOWR(MMC_BLOCK_MAJOR, 0, struct mmc_ioc_cmd) diff --git a/include/uapi/linux/ndctl.h b/include/uapi/linux/ndctl.h index 17e02b64ea2e..73516e263627 100644 --- a/include/uapi/linux/ndctl.h +++ b/include/uapi/linux/ndctl.h @@ -30,25 +30,25 @@ struct nd_cmd_get_config_data_hdr { __u32 in_offset; __u32 in_length; __u32 status; - __u8 out_buf[0]; + __u8 out_buf[]; } __packed; struct nd_cmd_set_config_hdr { __u32 in_offset; __u32 in_length; - __u8 in_buf[0]; + __u8 in_buf[]; } __packed; struct nd_cmd_vendor_hdr { __u32 opcode; __u32 in_length; - __u8 in_buf[0]; + __u8 in_buf[]; } __packed; struct nd_cmd_vendor_tail { __u32 status; __u32 out_length; - __u8 out_buf[0]; + __u8 out_buf[]; } __packed; struct nd_cmd_ars_cap { @@ -86,7 +86,7 @@ struct nd_cmd_ars_status { __u32 reserved; __u64 err_address; __u64 length; - } __packed records[0]; + } __packed records[]; } __packed; struct nd_cmd_clear_error { diff --git a/include/uapi/linux/net_dropmon.h b/include/uapi/linux/net_dropmon.h index 1bbea8f0681e..84f622a66a7a 100644 --- a/include/uapi/linux/net_dropmon.h +++ b/include/uapi/linux/net_dropmon.h @@ -29,12 +29,12 @@ struct net_dm_config_entry { struct net_dm_config_msg { __u32 entries; - struct net_dm_config_entry options[0]; + struct net_dm_config_entry options[]; }; struct net_dm_alert_msg { __u32 entries; - struct net_dm_drop_point points[0]; + struct net_dm_drop_point points[]; }; struct net_dm_user_msg { diff --git a/include/uapi/linux/netfilter/x_tables.h b/include/uapi/linux/netfilter/x_tables.h index b8c6bb233ac1..796af83a963a 100644 --- a/include/uapi/linux/netfilter/x_tables.h +++ b/include/uapi/linux/netfilter/x_tables.h @@ -28,7 +28,7 @@ struct xt_entry_match { __u16 match_size; } u; - unsigned char data[0]; + unsigned char data[]; }; struct xt_entry_target { @@ -119,7 +119,7 @@ struct xt_counters_info { unsigned int num_counters; /* The counters (actually `number' of these). */ - struct xt_counters counters[0]; + struct xt_counters counters[]; }; #define XT_INV_PROTO 0x40 /* Invert the sense of PROTO. */ diff --git a/include/uapi/linux/netfilter_arp/arp_tables.h b/include/uapi/linux/netfilter_arp/arp_tables.h index bbf5af2b67a8..a6ac2463f787 100644 --- a/include/uapi/linux/netfilter_arp/arp_tables.h +++ b/include/uapi/linux/netfilter_arp/arp_tables.h @@ -109,7 +109,7 @@ struct arpt_entry struct xt_counters counters; /* The matches (if any), then the target. */ - unsigned char elems[0]; + unsigned char elems[]; }; /* @@ -181,7 +181,7 @@ struct arpt_replace { struct xt_counters __user *counters; /* The entries (hang off end: not really an array). */ - struct arpt_entry entries[0]; + struct arpt_entry entries[]; }; /* The argument to ARPT_SO_GET_ENTRIES. */ @@ -193,7 +193,7 @@ struct arpt_get_entries { unsigned int size; /* The entries. */ - struct arpt_entry entrytable[0]; + struct arpt_entry entrytable[]; }; /* Helper functions */ diff --git a/include/uapi/linux/netfilter_bridge/ebt_among.h b/include/uapi/linux/netfilter_bridge/ebt_among.h index 9acf757bc1f7..73b26a280c4f 100644 --- a/include/uapi/linux/netfilter_bridge/ebt_among.h +++ b/include/uapi/linux/netfilter_bridge/ebt_among.h @@ -40,7 +40,7 @@ struct ebt_mac_wormhash_tuple { struct ebt_mac_wormhash { int table[257]; int poolsize; - struct ebt_mac_wormhash_tuple pool[0]; + struct ebt_mac_wormhash_tuple pool[]; }; #define ebt_mac_wormhash_size(x) ((x) ? sizeof(struct ebt_mac_wormhash) \ diff --git a/include/uapi/linux/netfilter_ipv4/ip_tables.h b/include/uapi/linux/netfilter_ipv4/ip_tables.h index 50c7fee625ae..1485df28b239 100644 --- a/include/uapi/linux/netfilter_ipv4/ip_tables.h +++ b/include/uapi/linux/netfilter_ipv4/ip_tables.h @@ -121,7 +121,7 @@ struct ipt_entry { struct xt_counters counters; /* The matches (if any), then the target. */ - unsigned char elems[0]; + unsigned char elems[]; }; /* @@ -203,7 +203,7 @@ struct ipt_replace { struct xt_counters __user *counters; /* The entries (hang off end: not really an array). */ - struct ipt_entry entries[0]; + struct ipt_entry entries[]; }; /* The argument to IPT_SO_GET_ENTRIES. */ @@ -215,7 +215,7 @@ struct ipt_get_entries { unsigned int size; /* The entries. */ - struct ipt_entry entrytable[0]; + struct ipt_entry entrytable[]; }; /* Helper functions */ diff --git a/include/uapi/linux/netfilter_ipv6/ip6_tables.h b/include/uapi/linux/netfilter_ipv6/ip6_tables.h index d9e364f96a5c..766e8e0bcc68 100644 --- a/include/uapi/linux/netfilter_ipv6/ip6_tables.h +++ b/include/uapi/linux/netfilter_ipv6/ip6_tables.h @@ -243,7 +243,7 @@ struct ip6t_replace { struct xt_counters __user *counters; /* The entries (hang off end: not really an array). */ - struct ip6t_entry entries[0]; + struct ip6t_entry entries[]; }; /* The argument to IP6T_SO_GET_ENTRIES. */ @@ -255,7 +255,7 @@ struct ip6t_get_entries { unsigned int size; /* The entries. */ - struct ip6t_entry entrytable[0]; + struct ip6t_entry entrytable[]; }; /* Helper functions */ diff --git a/include/uapi/linux/perf_event.h b/include/uapi/linux/perf_event.h index d37629dbad72..4653834f078f 100644 --- a/include/uapi/linux/perf_event.h +++ b/include/uapi/linux/perf_event.h @@ -491,7 +491,7 @@ struct perf_event_query_bpf { /* * User provided buffer to store program ids */ - __u32 ids[0]; + __u32 ids[]; }; /* diff --git a/include/uapi/linux/pkt_cls.h b/include/uapi/linux/pkt_cls.h index 9a2ee1e39fad..ffbe230ef90b 100644 --- a/include/uapi/linux/pkt_cls.h +++ b/include/uapi/linux/pkt_cls.h @@ -256,7 +256,7 @@ struct tc_u32_sel { short hoff; __be32 hmask; - struct tc_u32_key keys[0]; + struct tc_u32_key keys[]; }; struct tc_u32_mark { @@ -268,7 +268,7 @@ struct tc_u32_mark { struct tc_u32_pcnt { __u64 rcnt; __u64 rhit; - __u64 kcnts[0]; + __u64 kcnts[]; }; /* Flags */ diff --git a/include/uapi/linux/raid/md_p.h b/include/uapi/linux/raid/md_p.h index e5a98a16f9b0..6c0aa577730f 100644 --- a/include/uapi/linux/raid/md_p.h +++ b/include/uapi/linux/raid/md_p.h @@ -303,7 +303,7 @@ struct mdp_superblock_1 { * into the 'roles' value. If a device is spare or faulty, then it doesn't * have a meaningful role. */ - __le16 dev_roles[0]; /* role in array, or 0xffff for a spare, or 0xfffe for faulty */ + __le16 dev_roles[]; /* role in array, or 0xffff for a spare, or 0xfffe for faulty */ }; /* feature_map bits */ diff --git a/include/uapi/linux/random.h b/include/uapi/linux/random.h index dcc1b3e6106f..e744c23582eb 100644 --- a/include/uapi/linux/random.h +++ b/include/uapi/linux/random.h @@ -41,7 +41,7 @@ struct rand_pool_info { int entropy_count; int buf_size; - __u32 buf[0]; + __u32 buf[]; }; /* diff --git a/include/uapi/linux/romfs_fs.h b/include/uapi/linux/romfs_fs.h index a7f1585accef..6aa05e792454 100644 --- a/include/uapi/linux/romfs_fs.h +++ b/include/uapi/linux/romfs_fs.h @@ -27,7 +27,7 @@ struct romfs_super_block { __be32 word1; __be32 size; __be32 checksum; - char name[0]; /* volume name */ + char name[]; /* volume name */ }; /* On disk inode */ @@ -37,7 +37,7 @@ struct romfs_inode { __be32 spec; __be32 size; __be32 checksum; - char name[0]; + char name[]; }; #define ROMFH_TYPE 7 diff --git a/include/uapi/linux/rtnetlink.h b/include/uapi/linux/rtnetlink.h index 83849a37db5b..eb2747d58a81 100644 --- a/include/uapi/linux/rtnetlink.h +++ b/include/uapi/linux/rtnetlink.h @@ -440,7 +440,7 @@ struct rtnexthop { /* RTA_VIA */ struct rtvia { __kernel_sa_family_t rtvia_family; - __u8 rtvia_addr[0]; + __u8 rtvia_addr[]; }; /* RTM_CACHEINFO */ diff --git a/include/uapi/linux/sctp.h b/include/uapi/linux/sctp.h index c4ff1ebd8bcc..ed7d4ecbf53d 100644 --- a/include/uapi/linux/sctp.h +++ b/include/uapi/linux/sctp.h @@ -365,7 +365,7 @@ struct sctp_assoc_change { __u16 sac_outbound_streams; __u16 sac_inbound_streams; sctp_assoc_t sac_assoc_id; - __u8 sac_info[0]; + __u8 sac_info[]; }; /* @@ -436,7 +436,7 @@ struct sctp_remote_error { __u32 sre_length; __be16 sre_error; sctp_assoc_t sre_assoc_id; - __u8 sre_data[0]; + __u8 sre_data[]; }; @@ -453,7 +453,7 @@ struct sctp_send_failed { __u32 ssf_error; struct sctp_sndrcvinfo ssf_info; sctp_assoc_t ssf_assoc_id; - __u8 ssf_data[0]; + __u8 ssf_data[]; }; struct sctp_send_failed_event { @@ -463,7 +463,7 @@ struct sctp_send_failed_event { __u32 ssf_error; struct sctp_sndinfo ssfe_info; sctp_assoc_t ssf_assoc_id; - __u8 ssf_data[0]; + __u8 ssf_data[]; }; /* @@ -1029,7 +1029,7 @@ struct sctp_getaddrs_old { struct sctp_getaddrs { sctp_assoc_t assoc_id; /*input*/ __u32 addr_num; /*output*/ - __u8 addrs[0]; /*output, variable size*/ + __u8 addrs[]; /*output, variable size*/ }; /* A socket user request obtained via SCTP_GET_ASSOC_STATS that retrieves diff --git a/include/uapi/linux/seg6.h b/include/uapi/linux/seg6.h index 286e8d6a8e98..13bcbc8bba32 100644 --- a/include/uapi/linux/seg6.h +++ b/include/uapi/linux/seg6.h @@ -30,7 +30,7 @@ struct ipv6_sr_hdr { __u8 flags; __u16 tag; - struct in6_addr segments[0]; + struct in6_addr segments[]; }; #define SR6_FLAG1_PROTECTED (1 << 6) diff --git a/include/uapi/linux/seg6_iptunnel.h b/include/uapi/linux/seg6_iptunnel.h index eb815e0d0ac3..a74294211290 100644 --- a/include/uapi/linux/seg6_iptunnel.h +++ b/include/uapi/linux/seg6_iptunnel.h @@ -26,7 +26,7 @@ enum { struct seg6_iptunnel_encap { int mode; - struct ipv6_sr_hdr srh[0]; + struct ipv6_sr_hdr srh[]; }; #define SEG6_IPTUN_ENCAP_SIZE(x) ((sizeof(*x)) + (((x)->srh->hdrlen + 1) << 3)) diff --git a/include/uapi/linux/stm.h b/include/uapi/linux/stm.h index 7bac318b4440..de3579c2cff0 100644 --- a/include/uapi/linux/stm.h +++ b/include/uapi/linux/stm.h @@ -36,7 +36,7 @@ struct stp_policy_id { /* padding */ __u16 __reserved_0; __u32 __reserved_1; - char id[0]; + char id[]; }; #define STP_POLICY_ID_SET _IOWR('%', 0, struct stp_policy_id) diff --git a/include/uapi/linux/target_core_user.h b/include/uapi/linux/target_core_user.h index 27ace512babd..fbd8ca67e107 100644 --- a/include/uapi/linux/target_core_user.h +++ b/include/uapi/linux/target_core_user.h @@ -152,7 +152,7 @@ struct tcmu_tmr_entry { __u32 cmd_cnt; __u64 __pad3; __u64 __pad4; - __u16 cmd_ids[0]; + __u16 cmd_ids[]; } __packed; #define TCMU_OP_ALIGN_SIZE sizeof(__u64) diff --git a/include/uapi/linux/usb/audio.h b/include/uapi/linux/usb/audio.h index 76b7c3f6cd0d..c917c53070d5 100644 --- a/include/uapi/linux/usb/audio.h +++ b/include/uapi/linux/usb/audio.h @@ -341,7 +341,7 @@ struct uac_feature_unit_descriptor { __u8 bUnitID; __u8 bSourceID; __u8 bControlSize; - __u8 bmaControls[0]; /* variable length */ + __u8 bmaControls[]; /* variable length */ } __attribute__((packed)); static inline __u8 uac_feature_unit_iFeature(struct uac_feature_unit_descriptor *desc) diff --git a/include/uapi/linux/usb/cdc.h b/include/uapi/linux/usb/cdc.h index 6d61550959ef..acf3852bb676 100644 --- a/include/uapi/linux/usb/cdc.h +++ b/include/uapi/linux/usb/cdc.h @@ -171,7 +171,7 @@ struct usb_cdc_mdlm_detail_desc { /* type is associated with mdlm_desc.bGUID */ __u8 bGuidDescriptorType; - __u8 bDetailData[0]; + __u8 bDetailData[]; } __attribute__ ((packed)); /* "OBEX Control Model Functional Descriptor" */ @@ -379,7 +379,7 @@ struct usb_cdc_ncm_ndp16 { __le32 dwSignature; __le16 wLength; __le16 wNextNdpIndex; - struct usb_cdc_ncm_dpe16 dpe16[0]; + struct usb_cdc_ncm_dpe16 dpe16[]; } __attribute__ ((packed)); /* 32-bit NCM Datagram Pointer Entry */ @@ -395,7 +395,7 @@ struct usb_cdc_ncm_ndp32 { __le16 wReserved6; __le32 dwNextNdpIndex; __le32 dwReserved12; - struct usb_cdc_ncm_dpe32 dpe32[0]; + struct usb_cdc_ncm_dpe32 dpe32[]; } __attribute__ ((packed)); /* CDC NCM subclass 3.2.1 and 3.2.2 */ diff --git a/include/uapi/linux/usb/ch9.h b/include/uapi/linux/usb/ch9.h index 17ce56198c9a..31fcfa084e63 100644 --- a/include/uapi/linux/usb/ch9.h +++ b/include/uapi/linux/usb/ch9.h @@ -818,7 +818,7 @@ struct usb_key_descriptor { __u8 tTKID[3]; __u8 bReserved; - __u8 bKeyData[0]; + __u8 bKeyData[]; } __attribute__((packed)); /*-------------------------------------------------------------------------*/ diff --git a/include/uapi/linux/usb/raw_gadget.h b/include/uapi/linux/usb/raw_gadget.h index 0be685272eb1..c7d2199134d7 100644 --- a/include/uapi/linux/usb/raw_gadget.h +++ b/include/uapi/linux/usb/raw_gadget.h @@ -60,7 +60,7 @@ enum usb_raw_event_type { struct usb_raw_event { __u32 type; __u32 length; - __u8 data[0]; + __u8 data[]; }; #define USB_RAW_IO_FLAGS_ZERO 0x0001 @@ -90,7 +90,7 @@ struct usb_raw_ep_io { __u16 ep; __u16 flags; __u32 length; - __u8 data[0]; + __u8 data[]; }; /* Maximum number of non-control endpoints in struct usb_raw_eps_info. */ diff --git a/include/uapi/linux/usbdevice_fs.h b/include/uapi/linux/usbdevice_fs.h index cf525cddeb94..74a84e02422a 100644 --- a/include/uapi/linux/usbdevice_fs.h +++ b/include/uapi/linux/usbdevice_fs.h @@ -131,7 +131,7 @@ struct usbdevfs_urb { unsigned int signr; /* signal to be sent on completion, or 0 if none should be sent. */ void __user *usercontext; - struct usbdevfs_iso_packet_desc iso_frame_desc[0]; + struct usbdevfs_iso_packet_desc iso_frame_desc[]; }; /* ioctls for talking directly to drivers */ @@ -176,7 +176,7 @@ struct usbdevfs_disconnect_claim { struct usbdevfs_streams { unsigned int num_streams; /* Not used by USBDEVFS_FREE_STREAMS */ unsigned int num_eps; - unsigned char eps[0]; + unsigned char eps[]; }; /* diff --git a/include/uapi/linux/vhost_types.h b/include/uapi/linux/vhost_types.h index 634cee485abb..391331a10879 100644 --- a/include/uapi/linux/vhost_types.h +++ b/include/uapi/linux/vhost_types.h @@ -107,7 +107,7 @@ struct vhost_memory_region { struct vhost_memory { __u32 nregions; __u32 padding; - struct vhost_memory_region regions[0]; + struct vhost_memory_region regions[]; }; /* VHOST_SCSI specific definitions */ @@ -135,7 +135,7 @@ struct vhost_scsi_target { struct vhost_vdpa_config { __u32 off; __u32 len; - __u8 buf[0]; + __u8 buf[]; }; /* vhost vdpa IOVA range diff --git a/include/uapi/linux/virtio_9p.h b/include/uapi/linux/virtio_9p.h index 441047432258..374b68f8ac6e 100644 --- a/include/uapi/linux/virtio_9p.h +++ b/include/uapi/linux/virtio_9p.h @@ -38,7 +38,7 @@ struct virtio_9p_config { /* length of the tag name */ __virtio16 tag_len; /* non-NULL terminated tag name */ - __u8 tag[0]; + __u8 tag[]; } __attribute__((packed)); #endif /* _LINUX_VIRTIO_9P_H */ diff --git a/include/uapi/linux/xfrm.h b/include/uapi/linux/xfrm.h index 65e13a099b1a..e8191e0c3b56 100644 --- a/include/uapi/linux/xfrm.h +++ b/include/uapi/linux/xfrm.h @@ -33,7 +33,7 @@ struct xfrm_sec_ctx { __u8 ctx_alg; __u16 ctx_len; __u32 ctx_sid; - char ctx_str[0]; + char ctx_str[]; }; /* Security Context Domains of Interpretation */ @@ -96,27 +96,27 @@ struct xfrm_replay_state_esn { __u32 oseq_hi; __u32 seq_hi; __u32 replay_window; - __u32 bmp[0]; + __u32 bmp[]; }; struct xfrm_algo { char alg_name[64]; unsigned int alg_key_len; /* in bits */ - char alg_key[0]; + char alg_key[]; }; struct xfrm_algo_auth { char alg_name[64]; unsigned int alg_key_len; /* in bits */ unsigned int alg_trunc_len; /* in bits */ - char alg_key[0]; + char alg_key[]; }; struct xfrm_algo_aead { char alg_name[64]; unsigned int alg_key_len; /* in bits */ unsigned int alg_icv_len; /* in bits */ - char alg_key[0]; + char alg_key[]; }; struct xfrm_stats { diff --git a/include/uapi/rdma/hfi/hfi1_user.h b/include/uapi/rdma/hfi/hfi1_user.h index d95ef9a2b032..1106a7c90b29 100644 --- a/include/uapi/rdma/hfi/hfi1_user.h +++ b/include/uapi/rdma/hfi/hfi1_user.h @@ -180,7 +180,7 @@ struct hfi1_sdma_comp_entry { struct hfi1_status { __aligned_u64 dev; /* device/hw status bits */ __aligned_u64 port; /* port state and status bits */ - char freezemsg[0]; + char freezemsg[]; }; enum sdma_req_opcode { diff --git a/include/uapi/rdma/ib_user_verbs.h b/include/uapi/rdma/ib_user_verbs.h index 7dd903d932e5..43672cb1fd57 100644 --- a/include/uapi/rdma/ib_user_verbs.h +++ b/include/uapi/rdma/ib_user_verbs.h @@ -158,18 +158,18 @@ struct ib_uverbs_ex_cmd_hdr { struct ib_uverbs_get_context { __aligned_u64 response; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_get_context_resp { __u32 async_fd; __u32 num_comp_vectors; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_query_device { __aligned_u64 response; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_query_device_resp { @@ -278,7 +278,7 @@ struct ib_uverbs_query_port { __aligned_u64 response; __u8 port_num; __u8 reserved[7]; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_query_port_resp { @@ -308,12 +308,12 @@ struct ib_uverbs_query_port_resp { struct ib_uverbs_alloc_pd { __aligned_u64 response; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_alloc_pd_resp { __u32 pd_handle; - __u32 driver_data[0]; + __u32 driver_data[]; }; struct ib_uverbs_dealloc_pd { @@ -324,12 +324,12 @@ struct ib_uverbs_open_xrcd { __aligned_u64 response; __u32 fd; __u32 oflags; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_open_xrcd_resp { __u32 xrcd_handle; - __u32 driver_data[0]; + __u32 driver_data[]; }; struct ib_uverbs_close_xrcd { @@ -343,14 +343,14 @@ struct ib_uverbs_reg_mr { __aligned_u64 hca_va; __u32 pd_handle; __u32 access_flags; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_reg_mr_resp { __u32 mr_handle; __u32 lkey; __u32 rkey; - __u32 driver_data[0]; + __u32 driver_data[]; }; struct ib_uverbs_rereg_mr { @@ -362,13 +362,13 @@ struct ib_uverbs_rereg_mr { __aligned_u64 hca_va; __u32 pd_handle; __u32 access_flags; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_rereg_mr_resp { __u32 lkey; __u32 rkey; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_dereg_mr { @@ -380,13 +380,13 @@ struct ib_uverbs_alloc_mw { __u32 pd_handle; __u8 mw_type; __u8 reserved[3]; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_alloc_mw_resp { __u32 mw_handle; __u32 rkey; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_dealloc_mw { @@ -408,7 +408,7 @@ struct ib_uverbs_create_cq { __u32 comp_vector; __s32 comp_channel; __u32 reserved; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; enum ib_uverbs_ex_create_cq_flags { @@ -442,13 +442,13 @@ struct ib_uverbs_resize_cq { __aligned_u64 response; __u32 cq_handle; __u32 cqe; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_resize_cq_resp { __u32 cqe; __u32 reserved; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_poll_cq { @@ -492,7 +492,7 @@ struct ib_uverbs_wc { struct ib_uverbs_poll_cq_resp { __u32 count; __u32 reserved; - struct ib_uverbs_wc wc[0]; + struct ib_uverbs_wc wc[]; }; struct ib_uverbs_req_notify_cq { @@ -585,7 +585,7 @@ struct ib_uverbs_create_qp { __u8 qp_type; __u8 is_srq; __u8 reserved; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; enum ib_uverbs_create_qp_mask { @@ -624,7 +624,7 @@ struct ib_uverbs_open_qp { __u32 qpn; __u8 qp_type; __u8 reserved[7]; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; /* also used for open response */ @@ -669,7 +669,7 @@ struct ib_uverbs_query_qp { __aligned_u64 response; __u32 qp_handle; __u32 attr_mask; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_query_qp_resp { @@ -703,7 +703,7 @@ struct ib_uverbs_query_qp_resp { __u8 alt_timeout; __u8 sq_sig_all; __u8 reserved[5]; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_modify_qp { @@ -824,7 +824,7 @@ struct ib_uverbs_post_send { __u32 wr_count; __u32 sge_count; __u32 wqe_size; - struct ib_uverbs_send_wr send_wr[0]; + struct ib_uverbs_send_wr send_wr[]; }; struct ib_uverbs_post_send_resp { @@ -843,7 +843,7 @@ struct ib_uverbs_post_recv { __u32 wr_count; __u32 sge_count; __u32 wqe_size; - struct ib_uverbs_recv_wr recv_wr[0]; + struct ib_uverbs_recv_wr recv_wr[]; }; struct ib_uverbs_post_recv_resp { @@ -856,7 +856,7 @@ struct ib_uverbs_post_srq_recv { __u32 wr_count; __u32 sge_count; __u32 wqe_size; - struct ib_uverbs_recv_wr recv[0]; + struct ib_uverbs_recv_wr recv[]; }; struct ib_uverbs_post_srq_recv_resp { @@ -869,12 +869,12 @@ struct ib_uverbs_create_ah { __u32 pd_handle; __u32 reserved; struct ib_uverbs_ah_attr attr; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_create_ah_resp { __u32 ah_handle; - __u32 driver_data[0]; + __u32 driver_data[]; }; struct ib_uverbs_destroy_ah { @@ -886,7 +886,7 @@ struct ib_uverbs_attach_mcast { __u32 qp_handle; __u16 mlid; __u16 reserved; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_detach_mcast { @@ -894,7 +894,7 @@ struct ib_uverbs_detach_mcast { __u32 qp_handle; __u16 mlid; __u16 reserved; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_flow_spec_hdr { @@ -1135,7 +1135,7 @@ struct ib_uverbs_flow_attr { * struct ib_flow_spec_xxx * struct ib_flow_spec_yyy */ - struct ib_uverbs_flow_spec_hdr flow_specs[0]; + struct ib_uverbs_flow_spec_hdr flow_specs[]; }; struct ib_uverbs_create_flow { @@ -1161,7 +1161,7 @@ struct ib_uverbs_create_srq { __u32 max_wr; __u32 max_sge; __u32 srq_limit; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_create_xsrq { @@ -1175,7 +1175,7 @@ struct ib_uverbs_create_xsrq { __u32 max_num_tags; __u32 xrcd_handle; __u32 cq_handle; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_create_srq_resp { @@ -1183,7 +1183,7 @@ struct ib_uverbs_create_srq_resp { __u32 max_wr; __u32 max_sge; __u32 srqn; - __u32 driver_data[0]; + __u32 driver_data[]; }; struct ib_uverbs_modify_srq { @@ -1191,14 +1191,14 @@ struct ib_uverbs_modify_srq { __u32 attr_mask; __u32 max_wr; __u32 srq_limit; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_query_srq { __aligned_u64 response; __u32 srq_handle; __u32 reserved; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_query_srq_resp { @@ -1269,7 +1269,7 @@ struct ib_uverbs_ex_create_rwq_ind_table { * wq_handle1 * wq_handle2 */ - __u32 wq_handles[0]; + __u32 wq_handles[]; }; struct ib_uverbs_ex_create_rwq_ind_table_resp { diff --git a/include/uapi/rdma/rdma_user_cm.h b/include/uapi/rdma/rdma_user_cm.h index ed5a514305c1..7cea03581f79 100644 --- a/include/uapi/rdma/rdma_user_cm.h +++ b/include/uapi/rdma/rdma_user_cm.h @@ -184,7 +184,7 @@ struct rdma_ucm_query_addr_resp { struct rdma_ucm_query_path_resp { __u32 num_paths; __u32 reserved; - struct ib_path_rec_data path_data[0]; + struct ib_path_rec_data path_data[]; }; struct rdma_ucm_conn_param { diff --git a/include/uapi/rdma/rdma_user_ioctl_cmds.h b/include/uapi/rdma/rdma_user_ioctl_cmds.h index 38ab7accb7be..ab1aef17feb1 100644 --- a/include/uapi/rdma/rdma_user_ioctl_cmds.h +++ b/include/uapi/rdma/rdma_user_ioctl_cmds.h @@ -81,7 +81,7 @@ struct ib_uverbs_ioctl_hdr { __aligned_u64 reserved1; __u32 driver_id; __u32 reserved2; - struct ib_uverbs_attr attrs[0]; + struct ib_uverbs_attr attrs[]; }; #endif diff --git a/include/uapi/scsi/fc/fc_els.h b/include/uapi/scsi/fc/fc_els.h index c9812c5c2fc4..16782c360de3 100644 --- a/include/uapi/scsi/fc/fc_els.h +++ b/include/uapi/scsi/fc/fc_els.h @@ -264,7 +264,7 @@ struct fc_tlv_desc { * Size of descriptor excluding * desc_tag and desc_len fields. */ - __u8 desc_value[0]; /* Descriptor Value */ + __u8 desc_value[]; /* Descriptor Value */ }; /* Descriptor tag and len fields are considered the mandatory header @@ -1027,7 +1027,7 @@ struct fc_fn_li_desc { * threshold to caause the LI event */ __be32 pname_count; /* number of portname_list elements */ - __be64 pname_list[0]; /* list of N_Port_Names accessible + __be64 pname_list[]; /* list of N_Port_Names accessible * through the attached port */ }; @@ -1069,7 +1069,7 @@ struct fc_fn_peer_congn_desc { * congestion event */ __be32 pname_count; /* number of portname_list elements */ - __be64 pname_list[0]; /* list of N_Port_Names accessible + __be64 pname_list[]; /* list of N_Port_Names accessible * through the attached port */ }; @@ -1104,7 +1104,7 @@ struct fc_els_fpin { * Size of ELS excluding fpin_cmd, * fpin_zero and desc_len fields. */ - struct fc_tlv_desc fpin_desc[0]; /* Descriptor list */ + struct fc_tlv_desc fpin_desc[]; /* Descriptor list */ }; /* Diagnostic Function Descriptor - FPIN Registration */ @@ -1115,7 +1115,7 @@ struct fc_df_desc_fpin_reg { * desc_tag and desc_len fields. */ __be32 count; /* Number of desc_tags elements */ - __be32 desc_tags[0]; /* Array of Descriptor Tags. + __be32 desc_tags[]; /* Array of Descriptor Tags. * Each tag indicates a function * supported by the N_Port (request) * or by the N_Port and Fabric @@ -1135,7 +1135,7 @@ struct fc_els_rdf { * Size of ELS excluding fpin_cmd, * fpin_zero and desc_len fields. */ - struct fc_tlv_desc desc[0]; /* Descriptor list */ + struct fc_tlv_desc desc[]; /* Descriptor list */ }; /* @@ -1148,7 +1148,7 @@ struct fc_els_rdf_resp { * and desc_list_len fields. */ struct fc_els_lsri_desc lsri; - struct fc_tlv_desc desc[0]; /* Supported Descriptor list */ + struct fc_tlv_desc desc[]; /* Supported Descriptor list */ }; @@ -1231,7 +1231,7 @@ struct fc_els_edc { * Size of ELS excluding edc_cmd, * edc_zero and desc_len fields. */ - struct fc_tlv_desc desc[0]; + struct fc_tlv_desc desc[]; /* Diagnostic Descriptor list */ }; @@ -1245,7 +1245,7 @@ struct fc_els_edc_resp { * and desc_list_len fields. */ struct fc_els_lsri_desc lsri; - struct fc_tlv_desc desc[0]; + struct fc_tlv_desc desc[]; /* Supported Diagnostic Descriptor list */ }; diff --git a/include/uapi/scsi/scsi_bsg_fc.h b/include/uapi/scsi/scsi_bsg_fc.h index 3ae65e93235c..7f5930801f72 100644 --- a/include/uapi/scsi/scsi_bsg_fc.h +++ b/include/uapi/scsi/scsi_bsg_fc.h @@ -209,7 +209,7 @@ struct fc_bsg_host_vendor { __u64 vendor_id; /* start of vendor command area */ - __u32 vendor_cmd[0]; + __u32 vendor_cmd[]; }; /* Response: diff --git a/include/uapi/sound/asound.h b/include/uapi/sound/asound.h index 2d3e5df39a59..3974a2a911cc 100644 --- a/include/uapi/sound/asound.h +++ b/include/uapi/sound/asound.h @@ -1106,7 +1106,7 @@ struct snd_ctl_elem_value { struct snd_ctl_tlv { unsigned int numid; /* control element numeric identification */ unsigned int length; /* in bytes aligned to 4 */ - unsigned int tlv[0]; /* first TLV */ + unsigned int tlv[]; /* first TLV */ }; #define SNDRV_CTL_IOCTL_PVERSION _IOR('U', 0x00, int) diff --git a/include/uapi/sound/firewire.h b/include/uapi/sound/firewire.h index 39cf6eb75940..3532ac7046d7 100644 --- a/include/uapi/sound/firewire.h +++ b/include/uapi/sound/firewire.h @@ -38,11 +38,11 @@ struct snd_efw_transaction { __be32 category; __be32 command; __be32 status; - __be32 params[0]; + __be32 params[]; }; struct snd_firewire_event_efw_response { unsigned int type; - __be32 response[0]; /* some responses */ + __be32 response[]; /* some responses */ }; struct snd_firewire_event_digi00x_message { @@ -63,7 +63,7 @@ struct snd_firewire_tascam_change { struct snd_firewire_event_tascam_control { unsigned int type; - struct snd_firewire_tascam_change changes[0]; + struct snd_firewire_tascam_change changes[]; }; struct snd_firewire_event_motu_register_dsp_change { diff --git a/include/uapi/sound/skl-tplg-interface.h b/include/uapi/sound/skl-tplg-interface.h index a93c0decfdd5..f29899b179a6 100644 --- a/include/uapi/sound/skl-tplg-interface.h +++ b/include/uapi/sound/skl-tplg-interface.h @@ -151,7 +151,7 @@ struct skl_dfw_algo_data { __u32 rsvd:30; __u32 param_id; __u32 max; - char params[0]; + char params[]; } __packed; enum skl_tkn_dir { diff --git a/include/uapi/sound/sof/header.h b/include/uapi/sound/sof/header.h index 5f4518e7a972..dbf137516522 100644 --- a/include/uapi/sound/sof/header.h +++ b/include/uapi/sound/sof/header.h @@ -23,7 +23,7 @@ struct sof_abi_hdr { __u32 size; /**< size in bytes of data excl. this struct */ __u32 abi; /**< SOF ABI version */ __u32 reserved[4]; /**< reserved for future use */ - __u32 data[0]; /**< Component data - opaque to core */ + __u32 data[]; /**< Component data - opaque to core */ } __packed; #endif diff --git a/include/uapi/sound/usb_stream.h b/include/uapi/sound/usb_stream.h index 95419d8bbc16..ffdd3ea1e31d 100644 --- a/include/uapi/sound/usb_stream.h +++ b/include/uapi/sound/usb_stream.h @@ -61,7 +61,7 @@ struct usb_stream { unsigned inpacket_split_at; unsigned next_inpacket_split; unsigned next_inpacket_split_at; - struct usb_stream_packet inpacket[0]; + struct usb_stream_packet inpacket[]; }; enum usb_stream_state { diff --git a/tools/arch/x86/include/uapi/asm/kvm.h b/tools/arch/x86/include/uapi/asm/kvm.h index bf6e96011dfe..e135f4dcb19d 100644 --- a/tools/arch/x86/include/uapi/asm/kvm.h +++ b/tools/arch/x86/include/uapi/asm/kvm.h @@ -198,13 +198,13 @@ struct kvm_msrs { __u32 nmsrs; /* number of msrs in entries */ __u32 pad; - struct kvm_msr_entry entries[0]; + struct kvm_msr_entry entries[]; }; /* for KVM_GET_MSR_INDEX_LIST */ struct kvm_msr_list { __u32 nmsrs; /* number of msrs in entries */ - __u32 indices[0]; + __u32 indices[]; }; /* Maximum size of any access bitmap in bytes */ @@ -241,7 +241,7 @@ struct kvm_cpuid_entry { struct kvm_cpuid { __u32 nent; __u32 padding; - struct kvm_cpuid_entry entries[0]; + struct kvm_cpuid_entry entries[]; }; struct kvm_cpuid_entry2 { @@ -263,7 +263,7 @@ struct kvm_cpuid_entry2 { struct kvm_cpuid2 { __u32 nent; __u32 padding; - struct kvm_cpuid_entry2 entries[0]; + struct kvm_cpuid_entry2 entries[]; }; /* for KVM_GET_PIT and KVM_SET_PIT */ @@ -389,7 +389,7 @@ struct kvm_xsave { * the contents of CPUID leaf 0xD on the host. */ __u32 region[1024]; - __u32 extra[0]; + __u32 extra[]; }; #define KVM_MAX_XCRS 16 @@ -515,7 +515,7 @@ struct kvm_pmu_event_filter { __u32 fixed_counter_bitmap; __u32 flags; __u32 pad[4]; - __u64 events[0]; + __u64 events[]; }; #define KVM_PMU_EVENT_ALLOW 0 diff --git a/tools/include/uapi/drm/i915_drm.h b/tools/include/uapi/drm/i915_drm.h index 05c3642aaece..239b91b13c60 100644 --- a/tools/include/uapi/drm/i915_drm.h +++ b/tools/include/uapi/drm/i915_drm.h @@ -2060,7 +2060,7 @@ struct i915_context_engines_load_balance { __u64 mbz64; /* reserved for future use; must be zero */ - struct i915_engine_class_instance engines[0]; + struct i915_engine_class_instance engines[]; } __attribute__((packed)); #define I915_DEFINE_CONTEXT_ENGINES_LOAD_BALANCE(name__, N__) struct { \ @@ -2098,7 +2098,7 @@ struct i915_context_engines_bond { __u64 flags; /* all undefined flags must be zero */ __u64 mbz64[4]; /* reserved for future use; must be zero */ - struct i915_engine_class_instance engines[0]; + struct i915_engine_class_instance engines[]; } __attribute__((packed)); #define I915_DEFINE_CONTEXT_ENGINES_BOND(name__, N__) struct { \ @@ -2225,7 +2225,7 @@ struct i915_context_engines_parallel_submit { * length = width (i) * num_siblings (j) * index = j + i * num_siblings */ - struct i915_engine_class_instance engines[0]; + struct i915_engine_class_instance engines[]; } __packed; diff --git a/tools/include/uapi/linux/bpf.h b/tools/include/uapi/linux/bpf.h index f4009dbdf62d..e4b33ba06f00 100644 --- a/tools/include/uapi/linux/bpf.h +++ b/tools/include/uapi/linux/bpf.h @@ -79,7 +79,7 @@ struct bpf_insn { /* Key of an a BPF_MAP_TYPE_LPM_TRIE entry */ struct bpf_lpm_trie_key { __u32 prefixlen; /* up to 32 for AF_INET, 128 for AF_INET6 */ - __u8 data[0]; /* Arbitrary size */ + __u8 data[]; /* Arbitrary size */ }; struct bpf_cgroup_storage_key { diff --git a/tools/include/uapi/linux/fs.h b/tools/include/uapi/linux/fs.h index bdf7b404b3e7..b7b56871029c 100644 --- a/tools/include/uapi/linux/fs.h +++ b/tools/include/uapi/linux/fs.h @@ -90,7 +90,7 @@ struct file_dedupe_range { __u16 dest_count; /* in - total elements in info array */ __u16 reserved1; /* must be zero */ __u32 reserved2; /* must be zero */ - struct file_dedupe_range_info info[0]; + struct file_dedupe_range_info info[]; }; /* And dynamically-tunable limits and defaults: */ diff --git a/tools/include/uapi/linux/if_tun.h b/tools/include/uapi/linux/if_tun.h index 454ae31b93c7..2ec07de1d73b 100644 --- a/tools/include/uapi/linux/if_tun.h +++ b/tools/include/uapi/linux/if_tun.h @@ -108,7 +108,7 @@ struct tun_pi { struct tun_filter { __u16 flags; /* TUN_FLT_ flags see above */ __u16 count; /* Number of addresses */ - __u8 addr[0][ETH_ALEN]; + __u8 addr[][ETH_ALEN]; }; #endif /* _UAPI__IF_TUN_H */ diff --git a/tools/include/uapi/linux/kvm.h b/tools/include/uapi/linux/kvm.h index 6a184d260c7f..37ce8cbac322 100644 --- a/tools/include/uapi/linux/kvm.h +++ b/tools/include/uapi/linux/kvm.h @@ -539,7 +539,7 @@ struct kvm_coalesced_mmio { struct kvm_coalesced_mmio_ring { __u32 first, last; - struct kvm_coalesced_mmio coalesced_mmio[0]; + struct kvm_coalesced_mmio coalesced_mmio[]; }; #define KVM_COALESCED_MMIO_MAX \ @@ -618,7 +618,7 @@ struct kvm_clear_dirty_log { /* for KVM_SET_SIGNAL_MASK */ struct kvm_signal_mask { __u32 len; - __u8 sigset[0]; + __u8 sigset[]; }; /* for KVM_TPR_ACCESS_REPORTING */ @@ -1216,7 +1216,7 @@ struct kvm_irq_routing_entry { struct kvm_irq_routing { __u32 nr; __u32 flags; - struct kvm_irq_routing_entry entries[0]; + struct kvm_irq_routing_entry entries[]; }; #endif @@ -1335,7 +1335,7 @@ struct kvm_dirty_tlb { struct kvm_reg_list { __u64 n; /* number of regs */ - __u64 reg[0]; + __u64 reg[]; }; struct kvm_one_reg { diff --git a/tools/include/uapi/linux/perf_event.h b/tools/include/uapi/linux/perf_event.h index d37629dbad72..4653834f078f 100644 --- a/tools/include/uapi/linux/perf_event.h +++ b/tools/include/uapi/linux/perf_event.h @@ -491,7 +491,7 @@ struct perf_event_query_bpf { /* * User provided buffer to store program ids */ - __u32 ids[0]; + __u32 ids[]; }; /* diff --git a/tools/include/uapi/linux/pkt_cls.h b/tools/include/uapi/linux/pkt_cls.h index 12153771396a..3faee0199a9b 100644 --- a/tools/include/uapi/linux/pkt_cls.h +++ b/tools/include/uapi/linux/pkt_cls.h @@ -180,7 +180,7 @@ struct tc_u32_sel { short hoff; __be32 hmask; - struct tc_u32_key keys[0]; + struct tc_u32_key keys[]; }; struct tc_u32_mark { @@ -192,7 +192,7 @@ struct tc_u32_mark { struct tc_u32_pcnt { __u64 rcnt; __u64 rhit; - __u64 kcnts[0]; + __u64 kcnts[]; }; /* Flags */ diff --git a/tools/include/uapi/linux/seg6.h b/tools/include/uapi/linux/seg6.h index 286e8d6a8e98..f94baf154c47 100644 --- a/tools/include/uapi/linux/seg6.h +++ b/tools/include/uapi/linux/seg6.h @@ -30,7 +30,7 @@ struct ipv6_sr_hdr { __u8 flags; __u16 tag; - struct in6_addr segments[0]; + struct in6_addr segments[]; }; #define SR6_FLAG1_PROTECTED (1 << 6) @@ -49,7 +49,7 @@ struct ipv6_sr_hdr { struct sr6_tlv { __u8 type; __u8 len; - __u8 data[0]; + __u8 data[]; }; #endif diff --git a/tools/include/uapi/linux/usbdevice_fs.h b/tools/include/uapi/linux/usbdevice_fs.h index cf525cddeb94..74a84e02422a 100644 --- a/tools/include/uapi/linux/usbdevice_fs.h +++ b/tools/include/uapi/linux/usbdevice_fs.h @@ -131,7 +131,7 @@ struct usbdevfs_urb { unsigned int signr; /* signal to be sent on completion, or 0 if none should be sent. */ void __user *usercontext; - struct usbdevfs_iso_packet_desc iso_frame_desc[0]; + struct usbdevfs_iso_packet_desc iso_frame_desc[]; }; /* ioctls for talking directly to drivers */ @@ -176,7 +176,7 @@ struct usbdevfs_disconnect_claim { struct usbdevfs_streams { unsigned int num_streams; /* Not used by USBDEVFS_FREE_STREAMS */ unsigned int num_eps; - unsigned char eps[0]; + unsigned char eps[]; }; /* diff --git a/tools/include/uapi/sound/asound.h b/tools/include/uapi/sound/asound.h index 2d3e5df39a59..3974a2a911cc 100644 --- a/tools/include/uapi/sound/asound.h +++ b/tools/include/uapi/sound/asound.h @@ -1106,7 +1106,7 @@ struct snd_ctl_elem_value { struct snd_ctl_tlv { unsigned int numid; /* control element numeric identification */ unsigned int length; /* in bytes aligned to 4 */ - unsigned int tlv[0]; /* first TLV */ + unsigned int tlv[]; /* first TLV */ }; #define SNDRV_CTL_IOCTL_PVERSION _IOR('U', 0x00, int) -- 2.27.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 57AA4C433EF for ; Mon, 27 Jun 2022 18:07:20 +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:MIME-Version:Message-ID:Subject:Cc:To: From:Date:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=0+65/pHOedAKJAckQQYsRkB7BkkQRi6yspzJCm6MO3A=; b=4qMbIPtC5eNyiV dW2rAjrj2919isSplLeL83GwuGMv54N99lOkkfL6scGehsEFrSuz7a3ev5liTBT9vBanA6ldYWcq5 run0oE7gECbgN/ztRWUwgj+MeTQup2/rdjWDzUuSUSnk17Vey8pgSMCw6Qt2+X/p8qHhNcoQE5Cpx lX+8N9yYGYl/LfjJgaBT2jN4StH3Wg3FrORqT/2qH0pGAM7aUvWq1su9oRjIUrxexy6W0pAFdseYA tGTZEjxj+4d16ZTjOSsQ2vHcUfJCbi4rPfe+dJ/KwDvYQgvuitOCsS6LyzssYBAS6HzPjORYXtp3c PIXVE1BuBlzlSVgcBabg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1o5t6M-002K4M-Gw; Mon, 27 Jun 2022 18:04:46 +0000 Received: from dfw.source.kernel.org ([2604:1380:4641:c500::1]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1o5t6F-002K17-8Q; Mon, 27 Jun 2022 18:04:44 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 04A5661526; Mon, 27 Jun 2022 18:04:38 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8180FC3411D; Mon, 27 Jun 2022 18:04:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1656353077; bh=zSKczzoHL+2IPAqWZ9stqX2VHIHei/r/jrczBmwH9KU=; h=Date:From:To:Cc:Subject:From; b=q4QOvRQefEcEjVVyAOahSkl46FyS0ej/BwQljX3V/tEKW1uJvemX2PdsUwiHIg7Sg YDvtmL1JtX3dS9wnyairzCKocYShwtXmeFooQK1pBYjn0nU4z5GMa7xfMTPk9cb7bZ jq6bOTrXMM1fFJRFxq0d/LZbAXmOH7I5TzmvJulBRQhyvpEa+2cET2cbtmn8IEBTzX IJ/jwM+A03aTQybuDDzJkgT9kZdGiiMxL8m60Hs9fUzbhF3UmW19Co1BmWRKOIL45X b4fYE8tW8QLzqs8PmvUF0KHkgY40QgL+2QS5U7UxNoKp+TFhXR4rbYyFY2Ts7D6y3R dm+wxbun+jboQ== Date: Mon, 27 Jun 2022 20:04:32 +0200 From: "Gustavo A. R. Silva" To: Kees Cook , linux-kernel@vger.kernel.org Cc: x86@kernel.org, dm-devel@redhat.com, linux-m68k@lists.linux-m68k.org, linux-mips@vger.kernel.org, linux-s390@vger.kernel.org, kvm@vger.kernel.org, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, netdev@vger.kernel.org, bpf@vger.kernel.org, linux-btrfs@vger.kernel.org, linux-can@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux1394-devel@lists.sourceforge.net, io-uring@vger.kernel.org, lvs-devel@vger.kernel.org, linux-mtd@lists.infradead.org, kasan-dev@googlegroups.com, linux-mmc@vger.kernel.org, nvdimm@lists.linux.dev, netfilter-devel@vger.kernel.org, coreteam@netfilter.org, linux-perf-users@vger.kernel.org, linux-raid@vger.kernel.org, linux-sctp@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, linux-scsi@vger.kernel.org, target-devel@vger.kernel.org, linux-usb@vger.kernel.org, virtualization@lists.linux-foundation.org, v9fs-developer@lists.sourceforge.net, linux-rdma@vger.kernel.org, alsa-devel@alsa-project.org, "Gustavo A. R. Silva" , linux-hardening@vger.kernel.org Subject: [PATCH][next] treewide: uapi: Replace zero-length arrays with flexible-array members Message-ID: <20220627180432.GA136081@embeddedor> MIME-Version: 1.0 Content-Disposition: inline X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220627_110439_538232_ED7C4A4C X-CRM114-Status: GOOD ( 21.79 ) X-BeenThere: linux-arm-kernel@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-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org VGhlcmUgaXMgYSByZWd1bGFyIG5lZWQgaW4gdGhlIGtlcm5lbCB0byBwcm92aWRlIGEgd2F5IHRv IGRlY2xhcmUKaGF2aW5nIGEgZHluYW1pY2FsbHkgc2l6ZWQgc2V0IG9mIHRyYWlsaW5nIGVsZW1l bnRzIGluIGEgc3RydWN0dXJlLgpLZXJuZWwgY29kZSBzaG91bGQgYWx3YXlzIHVzZSDigJxmbGV4 aWJsZSBhcnJheSBtZW1iZXJz4oCdWzFdIGZvciB0aGVzZQpjYXNlcy4gVGhlIG9sZGVyIHN0eWxl IG9mIG9uZS1lbGVtZW50IG9yIHplcm8tbGVuZ3RoIGFycmF5cyBzaG91bGQKbm8gbG9uZ2VyIGJl IHVzZWRbMl0uCgpUaGlzIGNvZGUgd2FzIHRyYW5zZm9ybWVkIHdpdGggdGhlIGhlbHAgb2YgQ29j Y2luZWxsZToKKGxpbnV4LTUuMTktcmMyJCBzcGF0Y2ggLS1qb2JzICQoZ2V0Y29uZiBfTlBST0NF U1NPUlNfT05MTikgLS1zcC1maWxlIHNjcmlwdC5jb2NjaSAtLWluY2x1ZGUtaGVhZGVycyAtLWRp ciAuID4gb3V0cHV0LnBhdGNoKQoKQEAKaWRlbnRpZmllciBTLCBtZW1iZXIsIGFycmF5Owp0eXBl IFQxLCBUMjsKQEAKCnN0cnVjdCBTIHsKICAuLi4KICBUMSBtZW1iZXI7CiAgVDIgYXJyYXlbCi0g MAogIF07Cn07CgotZnN0cmljdC1mbGV4LWFycmF5cz0zIGlzIGNvbWluZyBhbmQgd2UgbmVlZCB0 byBsYW5kIHRoZXNlIGNoYW5nZXMKdG8gcHJldmVudCBpc3N1ZXMgbGlrZSB0aGVzZSBpbiB0aGUg c2hvcnQgZnV0dXJlOgoKLi4vZnMvbWluaXgvZGlyLmM6MzM3OjM6IHdhcm5pbmc6ICdzdHJjcHkn IHdpbGwgYWx3YXlzIG92ZXJmbG93OyBkZXN0aW5hdGlvbiBidWZmZXIgaGFzIHNpemUgMCwKYnV0 IHRoZSBzb3VyY2Ugc3RyaW5nIGhhcyBsZW5ndGggMiAoaW5jbHVkaW5nIE5VTCBieXRlKSBbLVdm b3J0aWZ5LXNvdXJjZV0KCQlzdHJjcHkoZGUzLT5uYW1lLCAiLiIpOwoJCV4KClNpbmNlIHRoZXNl IGFyZSBhbGwgWzBdIHRvIFtdIGNoYW5nZXMsIHRoZSByaXNrIHRvIFVBUEkgaXMgbmVhcmx5IHpl cm8uIElmCnRoaXMgYnJlYWtzIGFueXRoaW5nLCB3ZSBjYW4gdXNlIGEgdW5pb24gd2l0aCBhIG5l dyBtZW1iZXIgbmFtZS4KClsxXSBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9GbGV4aWJs ZV9hcnJheV9tZW1iZXIKWzJdIGh0dHBzOi8vd3d3Lmtlcm5lbC5vcmcvZG9jL2h0bWwvdjUuMTYv cHJvY2Vzcy9kZXByZWNhdGVkLmh0bWwjemVyby1sZW5ndGgtYW5kLW9uZS1lbGVtZW50LWFycmF5 cwoKTGluazogaHR0cHM6Ly9naXRodWIuY29tL0tTUFAvbGludXgvaXNzdWVzLzc4CkJ1aWxkLXRl c3RlZC1ieTogaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvbGttbC82MmI2NzVlYy53S1g2QU9aNmNi RTcxdnRGJTI1bGtwQGludGVsLmNvbS8KU2lnbmVkLW9mZi1ieTogR3VzdGF2byBBLiBSLiBTaWx2 YSA8Z3VzdGF2b2Fyc0BrZXJuZWwub3JnPgotLS0KSGkgYWxsIQoKSkZZSTogSSdtIGFkZGluZyB0 aGlzIHRvIG15IC1uZXh0IHRyZWUuIDopCgogYXJjaC9tNjhrL2luY2x1ZGUvdWFwaS9hc20vYm9v dGluZm8uaCAgICAgICAgIHwgIDQgKy0KIGFyY2gvbWlwcy9pbmNsdWRlL3VhcGkvYXNtL3Vjb250 ZXh0LmggICAgICAgICB8ICAyICstCiBhcmNoL3MzOTAvaW5jbHVkZS91YXBpL2FzbS9od2N0cnNl dC5oICAgICAgICAgfCAgNiArLQogYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9ib290cGFyYW0u aCAgICAgICAgIHwgIDIgKy0KIGFyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20va3ZtLmggICAgICAg ICAgICAgICB8IDEyICsrLS0KIGluY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaCAgICAgICAgICAg ICAgICAgICB8ICA2ICstCiBpbmNsdWRlL3VhcGkvbGludXgvYmxrem9uZWQuaCAgICAgICAgICAg ICAgICAgfCAgMiArLQogaW5jbHVkZS91YXBpL2xpbnV4L2JwZi5oICAgICAgICAgICAgICAgICAg ICAgIHwgIDIgKy0KIGluY2x1ZGUvdWFwaS9saW51eC9idHJmcy5oICAgICAgICAgICAgICAgICAg ICB8IDEwICstLQogaW5jbHVkZS91YXBpL2xpbnV4L2J0cmZzX3RyZWUuaCAgICAgICAgICAgICAg IHwgIDIgKy0KIGluY2x1ZGUvdWFwaS9saW51eC9jYW4vYmNtLmggICAgICAgICAgICAgICAgICB8 ICAyICstCiBpbmNsdWRlL3VhcGkvbGludXgvY29ubmVjdG9yLmggICAgICAgICAgICAgICAgfCAg MiArLQogaW5jbHVkZS91YXBpL2xpbnV4L2N5Y3hfY2ZtLmggICAgICAgICAgICAgICAgIHwgIDIg Ky0KIGluY2x1ZGUvdWFwaS9saW51eC9kbS1pb2N0bC5oICAgICAgICAgICAgICAgICB8ICA4ICst LQogaW5jbHVkZS91YXBpL2xpbnV4L2RtLWxvZy11c2Vyc3BhY2UuaCAgICAgICAgIHwgIDIgKy0K IGluY2x1ZGUvdWFwaS9saW51eC9ldGh0b29sLmggICAgICAgICAgICAgICAgICB8IDI4ICsrKyst LS0tCiBpbmNsdWRlL3VhcGkvbGludXgvZmFub3RpZnkuaCAgICAgICAgICAgICAgICAgfCAgMiAr LQogaW5jbHVkZS91YXBpL2xpbnV4L2ZpZW1hcC5oICAgICAgICAgICAgICAgICAgIHwgIDIgKy0K IGluY2x1ZGUvdWFwaS9saW51eC9maXJld2lyZS1jZGV2LmggICAgICAgICAgICB8IDEyICsrLS0K IGluY2x1ZGUvdWFwaS9saW51eC9mcy5oICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBp bmNsdWRlL3VhcGkvbGludXgvaWZfYWxnLmggICAgICAgICAgICAgICAgICAgfCAgMiArLQogaW5j bHVkZS91YXBpL2xpbnV4L2lmX2FyY25ldC5oICAgICAgICAgICAgICAgIHwgIDYgKy0KIGluY2x1 ZGUvdWFwaS9saW51eC9pZl9wcHBveC5oICAgICAgICAgICAgICAgICB8ICA0ICstCiBpbmNsdWRl L3VhcGkvbGludXgvaWZfdHVuLmggICAgICAgICAgICAgICAgICAgfCAgMiArLQogaW5jbHVkZS91 YXBpL2xpbnV4L2lnbXAuaCAgICAgICAgICAgICAgICAgICAgIHwgIDYgKy0KIGluY2x1ZGUvdWFw aS9saW51eC9pbmV0X2RpYWcuaCAgICAgICAgICAgICAgICB8ICAyICstCiBpbmNsdWRlL3VhcGkv bGludXgvaW5vdGlmeS5oICAgICAgICAgICAgICAgICAgfCAgMiArLQogaW5jbHVkZS91YXBpL2xp bnV4L2lvX3VyaW5nLmggICAgICAgICAgICAgICAgIHwgIDIgKy0KIGluY2x1ZGUvdWFwaS9saW51 eC9pcC5oICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICstCiBpbmNsdWRlL3VhcGkvbGludXgv aXBfdnMuaCAgICAgICAgICAgICAgICAgICAgfCAgNCArLQogaW5jbHVkZS91YXBpL2xpbnV4L2lz b19mcy5oICAgICAgICAgICAgICAgICAgIHwgIDQgKy0KIGluY2x1ZGUvdWFwaS9saW51eC9qZmZz Mi5oICAgICAgICAgICAgICAgICAgICB8ICA4ICstLQogaW5jbHVkZS91YXBpL2xpbnV4L2tjb3Yu aCAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGluY2x1ZGUvdWFwaS9saW51eC9rdm0uaCAg ICAgICAgICAgICAgICAgICAgICB8ICA4ICstLQogaW5jbHVkZS91YXBpL2xpbnV4L21pbml4X2Zz LmggICAgICAgICAgICAgICAgIHwgIDQgKy0KIGluY2x1ZGUvdWFwaS9saW51eC9tbWMvaW9jdGwu aCAgICAgICAgICAgICAgICB8ICAyICstCiBpbmNsdWRlL3VhcGkvbGludXgvbmRjdGwuaCAgICAg ICAgICAgICAgICAgICAgfCAxMCArLS0KIGluY2x1ZGUvdWFwaS9saW51eC9uZXRfZHJvcG1vbi5o ICAgICAgICAgICAgICB8ICA0ICstCiBpbmNsdWRlL3VhcGkvbGludXgvbmV0ZmlsdGVyL3hfdGFi bGVzLmggICAgICAgfCAgNCArLQogaW5jbHVkZS91YXBpL2xpbnV4L25ldGZpbHRlcl9hcnAvYXJw X3RhYmxlcy5oIHwgIDYgKy0KIC4uLi91YXBpL2xpbnV4L25ldGZpbHRlcl9icmlkZ2UvZWJ0X2Ft b25nLmggICB8ICAyICstCiBpbmNsdWRlL3VhcGkvbGludXgvbmV0ZmlsdGVyX2lwdjQvaXBfdGFi bGVzLmggfCAgNiArLQogLi4uL3VhcGkvbGludXgvbmV0ZmlsdGVyX2lwdjYvaXA2X3RhYmxlcy5o ICAgIHwgIDQgKy0KIGluY2x1ZGUvdWFwaS9saW51eC9wZXJmX2V2ZW50LmggICAgICAgICAgICAg ICB8ICAyICstCiBpbmNsdWRlL3VhcGkvbGludXgvcGt0X2Nscy5oICAgICAgICAgICAgICAgICAg fCAgNCArLQogaW5jbHVkZS91YXBpL2xpbnV4L3JhaWQvbWRfcC5oICAgICAgICAgICAgICAgIHwg IDIgKy0KIGluY2x1ZGUvdWFwaS9saW51eC9yYW5kb20uaCAgICAgICAgICAgICAgICAgICB8ICAy ICstCiBpbmNsdWRlL3VhcGkvbGludXgvcm9tZnNfZnMuaCAgICAgICAgICAgICAgICAgfCAgNCAr LQogaW5jbHVkZS91YXBpL2xpbnV4L3J0bmV0bGluay5oICAgICAgICAgICAgICAgIHwgIDIgKy0K IGluY2x1ZGUvdWFwaS9saW51eC9zY3RwLmggICAgICAgICAgICAgICAgICAgICB8IDEwICstLQog aW5jbHVkZS91YXBpL2xpbnV4L3NlZzYuaCAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGlu Y2x1ZGUvdWFwaS9saW51eC9zZWc2X2lwdHVubmVsLmggICAgICAgICAgICB8ICAyICstCiBpbmNs dWRlL3VhcGkvbGludXgvc3RtLmggICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogaW5jbHVk ZS91YXBpL2xpbnV4L3RhcmdldF9jb3JlX3VzZXIuaCAgICAgICAgIHwgIDIgKy0KIGluY2x1ZGUv dWFwaS9saW51eC91c2IvYXVkaW8uaCAgICAgICAgICAgICAgICB8ICAyICstCiBpbmNsdWRlL3Vh cGkvbGludXgvdXNiL2NkYy5oICAgICAgICAgICAgICAgICAgfCAgNiArLQogaW5jbHVkZS91YXBp L2xpbnV4L3VzYi9jaDkuaCAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGluY2x1ZGUvdWFwaS9s aW51eC91c2IvcmF3X2dhZGdldC5oICAgICAgICAgICB8ICA0ICstCiBpbmNsdWRlL3VhcGkvbGlu dXgvdXNiZGV2aWNlX2ZzLmggICAgICAgICAgICAgfCAgNCArLQogaW5jbHVkZS91YXBpL2xpbnV4 L3Zob3N0X3R5cGVzLmggICAgICAgICAgICAgIHwgIDQgKy0KIGluY2x1ZGUvdWFwaS9saW51eC92 aXJ0aW9fOXAuaCAgICAgICAgICAgICAgICB8ICAyICstCiBpbmNsdWRlL3VhcGkvbGludXgveGZy bS5oICAgICAgICAgICAgICAgICAgICAgfCAxMCArLS0KIGluY2x1ZGUvdWFwaS9yZG1hL2hmaS9o ZmkxX3VzZXIuaCAgICAgICAgICAgICB8ICAyICstCiBpbmNsdWRlL3VhcGkvcmRtYS9pYl91c2Vy X3ZlcmJzLmggICAgICAgICAgICAgfCA3MiArKysrKysrKystLS0tLS0tLS0tCiBpbmNsdWRlL3Vh cGkvcmRtYS9yZG1hX3VzZXJfY20uaCAgICAgICAgICAgICAgfCAgMiArLQogaW5jbHVkZS91YXBp L3JkbWEvcmRtYV91c2VyX2lvY3RsX2NtZHMuaCAgICAgIHwgIDIgKy0KIGluY2x1ZGUvdWFwaS9z Y3NpL2ZjL2ZjX2Vscy5oICAgICAgICAgICAgICAgICB8IDE4ICsrLS0tCiBpbmNsdWRlL3VhcGkv c2NzaS9zY3NpX2JzZ19mYy5oICAgICAgICAgICAgICAgfCAgMiArLQogaW5jbHVkZS91YXBpL3Nv dW5kL2Fzb3VuZC5oICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGluY2x1ZGUvdWFwaS9zb3Vu ZC9maXJld2lyZS5oICAgICAgICAgICAgICAgICB8ICA2ICstCiBpbmNsdWRlL3VhcGkvc291bmQv c2tsLXRwbGctaW50ZXJmYWNlLmggICAgICAgfCAgMiArLQogaW5jbHVkZS91YXBpL3NvdW5kL3Nv Zi9oZWFkZXIuaCAgICAgICAgICAgICAgIHwgIDIgKy0KIGluY2x1ZGUvdWFwaS9zb3VuZC91c2Jf c3RyZWFtLmggICAgICAgICAgICAgICB8ICAyICstCiB0b29scy9hcmNoL3g4Ni9pbmNsdWRlL3Vh cGkvYXNtL2t2bS5oICAgICAgICAgfCAxMiArKy0tCiB0b29scy9pbmNsdWRlL3VhcGkvZHJtL2k5 MTVfZHJtLmggICAgICAgICAgICAgfCAgNiArLQogdG9vbHMvaW5jbHVkZS91YXBpL2xpbnV4L2Jw Zi5oICAgICAgICAgICAgICAgIHwgIDIgKy0KIHRvb2xzL2luY2x1ZGUvdWFwaS9saW51eC9mcy5o ICAgICAgICAgICAgICAgICB8ICAyICstCiB0b29scy9pbmNsdWRlL3VhcGkvbGludXgvaWZfdHVu LmggICAgICAgICAgICAgfCAgMiArLQogdG9vbHMvaW5jbHVkZS91YXBpL2xpbnV4L2t2bS5oICAg ICAgICAgICAgICAgIHwgIDggKy0tCiB0b29scy9pbmNsdWRlL3VhcGkvbGludXgvcGVyZl9ldmVu dC5oICAgICAgICAgfCAgMiArLQogdG9vbHMvaW5jbHVkZS91YXBpL2xpbnV4L3BrdF9jbHMuaCAg ICAgICAgICAgIHwgIDQgKy0KIHRvb2xzL2luY2x1ZGUvdWFwaS9saW51eC9zZWc2LmggICAgICAg ICAgICAgICB8ICA0ICstCiB0b29scy9pbmNsdWRlL3VhcGkvbGludXgvdXNiZGV2aWNlX2ZzLmgg ICAgICAgfCAgNCArLQogdG9vbHMvaW5jbHVkZS91YXBpL3NvdW5kL2Fzb3VuZC5oICAgICAgICAg ICAgIHwgIDIgKy0KIDg0IGZpbGVzIGNoYW5nZWQsIDIxOCBpbnNlcnRpb25zKCspLCAyMTggZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvYXJjaC9tNjhrL2luY2x1ZGUvdWFwaS9hc20vYm9vdGlu Zm8uaCBiL2FyY2gvbTY4ay9pbmNsdWRlL3VhcGkvYXNtL2Jvb3RpbmZvLmgKaW5kZXggMjAzZDlj YmY5NjMwLi45NWVjZjNhZTRjNDkgMTAwNjQ0Ci0tLSBhL2FyY2gvbTY4ay9pbmNsdWRlL3VhcGkv YXNtL2Jvb3RpbmZvLmgKKysrIGIvYXJjaC9tNjhrL2luY2x1ZGUvdWFwaS9hc20vYm9vdGluZm8u aApAQCAtMzQsNyArMzQsNyBAQAogc3RydWN0IGJpX3JlY29yZCB7CiAJX19iZTE2IHRhZzsJCQkv KiB0YWcgSUQgKi8KIAlfX2JlMTYgc2l6ZTsJCQkvKiBzaXplIG9mIHJlY29yZCAoaW4gYnl0ZXMp ICovCi0JX19iZTMyIGRhdGFbMF07CQkJLyogZGF0YSAqLworCV9fYmUzMiBkYXRhW107CQkJLyog ZGF0YSAqLwogfTsKIAogCkBAIC0xNjgsNyArMTY4LDcgQEAgc3RydWN0IGJvb3R2ZXJzaW9uIHsK IAlzdHJ1Y3QgewogCQlfX2JlMzIgbWFjaHR5cGU7CiAJCV9fYmUzMiB2ZXJzaW9uOwotCX0gbWFj aHZlcnNpb25zWzBdOworCX0gbWFjaHZlcnNpb25zW107CiB9IF9fcGFja2VkOwogCiAjZW5kaWYg LyogX19BU1NFTUJMWV9fICovCmRpZmYgLS1naXQgYS9hcmNoL21pcHMvaW5jbHVkZS91YXBpL2Fz bS91Y29udGV4dC5oIGIvYXJjaC9taXBzL2luY2x1ZGUvdWFwaS9hc20vdWNvbnRleHQuaAppbmRl eCAyZDNiZjhlZWJmMWYuLjYxMjJlZjk3YzZmZiAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL2luY2x1 ZGUvdWFwaS9hc20vdWNvbnRleHQuaAorKysgYi9hcmNoL21pcHMvaW5jbHVkZS91YXBpL2FzbS91 Y29udGV4dC5oCkBAIC02MCw3ICs2MCw3IEBAIHN0cnVjdCB1Y29udGV4dCB7CiAJc2lnc2V0X3QJ CXVjX3NpZ21hc2s7CiAKIAkvKiBFeHRlbmRlZCBjb250ZXh0IHN0cnVjdHVyZXMgbWF5IGZvbGxv dyB1Y29udGV4dCAqLwotCXVuc2lnbmVkIGxvbmcgbG9uZwl1Y19leHRjb250ZXh0WzBdOworCXVu c2lnbmVkIGxvbmcgbG9uZwl1Y19leHRjb250ZXh0W107CiB9OwogCiAjZW5kaWYgLyogX19NSVBT X1VBUElfQVNNX1VDT05URVhUX0ggKi8KZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9pbmNsdWRlL3Vh cGkvYXNtL2h3Y3Ryc2V0LmggYi9hcmNoL3MzOTAvaW5jbHVkZS91YXBpL2FzbS9od2N0cnNldC5o CmluZGV4IDNkODI4NGI5NWY4Ny4uZTU2YjlkZDIzYTRiIDEwMDY0NAotLS0gYS9hcmNoL3MzOTAv aW5jbHVkZS91YXBpL2FzbS9od2N0cnNldC5oCisrKyBiL2FyY2gvczM5MC9pbmNsdWRlL3VhcGkv YXNtL2h3Y3Ryc2V0LmgKQEAgLTMwLDE4ICszMCwxOCBAQCBzdHJ1Y3QgczM5MF9jdHJzZXRfc3Rh cnQgewkJLyogU2V0IENQVXMgdG8gb3BlcmF0ZSBvbiAqLwogc3RydWN0IHMzOTBfY3Ryc2V0X3Nl dGRhdGEgewkJLyogQ291bnRlciBzZXQgZGF0YSAqLwogCV9fdTMyIHNldDsJCQkvKiBDb3VudGVy IHNldCBudW1iZXIgKi8KIAlfX3UzMiBub19jbnRzOwkJCS8qICMgb2YgY291bnRlcnMgc3RvcmVk IGluIGN2W10gKi8KLQlfX3U2NCBjdlswXTsJCQkvKiBDb3VudGVyIHZhbHVlcyAodmFyaWFibGUg bGVuZ3RoKSAqLworCV9fdTY0IGN2W107CQkJLyogQ291bnRlciB2YWx1ZXMgKHZhcmlhYmxlIGxl bmd0aCkgKi8KIH07CiAKIHN0cnVjdCBzMzkwX2N0cnNldF9jcHVkYXRhIHsJCS8qIENvdW50ZXIg c2V0IGRhdGEgcGVyIENQVSAqLwogCV9fdTMyIGNwdV9ucjsJCQkvKiBDUFUgbnVtYmVyICovCiAJ X191MzIgbm9fc2V0czsJCQkvKiAjIG9mIGNvdW50ZXJzIHNldHMgaW4gZGF0YVtdICovCi0Jc3Ry dWN0IHMzOTBfY3Ryc2V0X3NldGRhdGEgZGF0YVswXTsKKwlzdHJ1Y3QgczM5MF9jdHJzZXRfc2V0 ZGF0YSBkYXRhW107CiB9OwogCiBzdHJ1Y3QgczM5MF9jdHJzZXRfcmVhZCB7CQkvKiBTdHJ1Y3R1 cmUgdG8gZ2V0IGFsbCBjdHIgc2V0cyAqLwogCV9fdTY0IG5vX2NwdXM7CQkJLyogVG90YWwgIyBv ZiBDUFVzIGRhdGEgdGFrZW4gZnJvbSAqLwotCXN0cnVjdCBzMzkwX2N0cnNldF9jcHVkYXRhIGRh dGFbMF07CisJc3RydWN0IHMzOTBfY3Ryc2V0X2NwdWRhdGEgZGF0YVtdOwogfTsKIAogI2RlZmlu ZSBTMzkwX0hXQ1RSX01BR0lDCSdDJwkvKiBSYW5kb20gbWFnaWMgIyBmb3IgaW9jdGxzICovCmRp ZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL2Jvb3RwYXJhbS5oIGIvYXJjaC94 ODYvaW5jbHVkZS91YXBpL2FzbS9ib290cGFyYW0uaAppbmRleCBiZWE1Y2RjZGY1MzIuLmNkZDZj N2Y2Y2ZhNiAxMDA2NDQKLS0tIGEvYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9ib290cGFyYW0u aAorKysgYi9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL2Jvb3RwYXJhbS5oCkBAIC01Miw3ICs1 Miw3IEBAIHN0cnVjdCBzZXR1cF9kYXRhIHsKIAlfX3U2NCBuZXh0OwogCV9fdTMyIHR5cGU7CiAJ X191MzIgbGVuOwotCV9fdTggZGF0YVswXTsKKwlfX3U4IGRhdGFbXTsKIH07CiAKIC8qIGV4dGVu c2libGUgc2V0dXAgaW5kaXJlY3QgZGF0YSBub2RlICovCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9p bmNsdWRlL3VhcGkvYXNtL2t2bS5oIGIvYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9rdm0uaApp bmRleCAyMTYxNDgwN2EyY2IuLmVjNTNjOWZhMWRhOSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvaW5j bHVkZS91YXBpL2FzbS9rdm0uaAorKysgYi9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL2t2bS5o CkBAIC0xOTgsMTMgKzE5OCwxMyBAQCBzdHJ1Y3Qga3ZtX21zcnMgewogCV9fdTMyIG5tc3JzOyAv KiBudW1iZXIgb2YgbXNycyBpbiBlbnRyaWVzICovCiAJX191MzIgcGFkOwogCi0Jc3RydWN0IGt2 bV9tc3JfZW50cnkgZW50cmllc1swXTsKKwlzdHJ1Y3Qga3ZtX21zcl9lbnRyeSBlbnRyaWVzW107 CiB9OwogCiAvKiBmb3IgS1ZNX0dFVF9NU1JfSU5ERVhfTElTVCAqLwogc3RydWN0IGt2bV9tc3Jf bGlzdCB7CiAJX191MzIgbm1zcnM7IC8qIG51bWJlciBvZiBtc3JzIGluIGVudHJpZXMgKi8KLQlf X3UzMiBpbmRpY2VzWzBdOworCV9fdTMyIGluZGljZXNbXTsKIH07CiAKIC8qIE1heGltdW0gc2l6 ZSBvZiBhbnkgYWNjZXNzIGJpdG1hcCBpbiBieXRlcyAqLwpAQCAtMjQxLDcgKzI0MSw3IEBAIHN0 cnVjdCBrdm1fY3B1aWRfZW50cnkgewogc3RydWN0IGt2bV9jcHVpZCB7CiAJX191MzIgbmVudDsK IAlfX3UzMiBwYWRkaW5nOwotCXN0cnVjdCBrdm1fY3B1aWRfZW50cnkgZW50cmllc1swXTsKKwlz dHJ1Y3Qga3ZtX2NwdWlkX2VudHJ5IGVudHJpZXNbXTsKIH07CiAKIHN0cnVjdCBrdm1fY3B1aWRf ZW50cnkyIHsKQEAgLTI2Myw3ICsyNjMsNyBAQCBzdHJ1Y3Qga3ZtX2NwdWlkX2VudHJ5MiB7CiBz dHJ1Y3Qga3ZtX2NwdWlkMiB7CiAJX191MzIgbmVudDsKIAlfX3UzMiBwYWRkaW5nOwotCXN0cnVj dCBrdm1fY3B1aWRfZW50cnkyIGVudHJpZXNbMF07CisJc3RydWN0IGt2bV9jcHVpZF9lbnRyeTIg ZW50cmllc1tdOwogfTsKIAogLyogZm9yIEtWTV9HRVRfUElUIGFuZCBLVk1fU0VUX1BJVCAqLwpA QCAtMzg5LDcgKzM4OSw3IEBAIHN0cnVjdCBrdm1feHNhdmUgewogCSAqIHRoZSBjb250ZW50cyBv ZiBDUFVJRCBsZWFmIDB4RCBvbiB0aGUgaG9zdC4KIAkgKi8KIAlfX3UzMiByZWdpb25bMTAyNF07 Ci0JX191MzIgZXh0cmFbMF07CisJX191MzIgZXh0cmFbXTsKIH07CiAKICNkZWZpbmUgS1ZNX01B WF9YQ1JTCTE2CkBAIC01MTYsNyArNTE2LDcgQEAgc3RydWN0IGt2bV9wbXVfZXZlbnRfZmlsdGVy IHsKIAlfX3UzMiBmaXhlZF9jb3VudGVyX2JpdG1hcDsKIAlfX3UzMiBmbGFnczsKIAlfX3UzMiBw YWRbNF07Ci0JX191NjQgZXZlbnRzWzBdOworCV9fdTY0IGV2ZW50c1tdOwogfTsKIAogI2RlZmlu ZSBLVk1fUE1VX0VWRU5UX0FMTE9XIDAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9kcm0vaTkx NV9kcm0uaCBiL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaAppbmRleCBhMmRlZjdiMjcwMDku LmIyOGZmNWQ4ODE0NSAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oCisr KyBiL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaApAQCAtMjEyMyw3ICsyMTIzLDcgQEAgc3Ry dWN0IGk5MTVfY29udGV4dF9lbmdpbmVzX2xvYWRfYmFsYW5jZSB7CiAKIAlfX3U2NCBtYno2NDsg LyogcmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2U7IG11c3QgYmUgemVybyAqLwogCi0Jc3RydWN0IGk5 MTVfZW5naW5lX2NsYXNzX2luc3RhbmNlIGVuZ2luZXNbMF07CisJc3RydWN0IGk5MTVfZW5naW5l X2NsYXNzX2luc3RhbmNlIGVuZ2luZXNbXTsKIH0gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CiAK ICNkZWZpbmUgSTkxNV9ERUZJTkVfQ09OVEVYVF9FTkdJTkVTX0xPQURfQkFMQU5DRShuYW1lX18s IE5fXykgc3RydWN0IHsgXApAQCAtMjE2MSw3ICsyMTYxLDcgQEAgc3RydWN0IGk5MTVfY29udGV4 dF9lbmdpbmVzX2JvbmQgewogCV9fdTY0IGZsYWdzOyAvKiBhbGwgdW5kZWZpbmVkIGZsYWdzIG11 c3QgYmUgemVybyAqLwogCV9fdTY0IG1iejY0WzRdOyAvKiByZXNlcnZlZCBmb3IgZnV0dXJlIHVz ZTsgbXVzdCBiZSB6ZXJvICovCiAKLQlzdHJ1Y3QgaTkxNV9lbmdpbmVfY2xhc3NfaW5zdGFuY2Ug ZW5naW5lc1swXTsKKwlzdHJ1Y3QgaTkxNV9lbmdpbmVfY2xhc3NfaW5zdGFuY2UgZW5naW5lc1td OwogfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKIAogI2RlZmluZSBJOTE1X0RFRklORV9DT05U RVhUX0VOR0lORVNfQk9ORChuYW1lX18sIE5fXykgc3RydWN0IHsgXApAQCAtMjI4OCw3ICsyMjg4 LDcgQEAgc3RydWN0IGk5MTVfY29udGV4dF9lbmdpbmVzX3BhcmFsbGVsX3N1Ym1pdCB7CiAJICog bGVuZ3RoID0gd2lkdGggKGkpICogbnVtX3NpYmxpbmdzIChqKQogCSAqIGluZGV4ID0gaiArIGkg KiBudW1fc2libGluZ3MKIAkgKi8KLQlzdHJ1Y3QgaTkxNV9lbmdpbmVfY2xhc3NfaW5zdGFuY2Ug ZW5naW5lc1swXTsKKwlzdHJ1Y3QgaTkxNV9lbmdpbmVfY2xhc3NfaW5zdGFuY2UgZW5naW5lc1td OwogCiB9IF9fcGFja2VkOwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvbGludXgvYmxrem9u ZWQuaCBiL2luY2x1ZGUvdWFwaS9saW51eC9ibGt6b25lZC5oCmluZGV4IDY1NmEzMjY4MjFhMi4u YjgwZmNjOWVhNTI1IDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvYmxrem9uZWQuaAor KysgYi9pbmNsdWRlL3VhcGkvbGludXgvYmxrem9uZWQuaApAQCAtMTMwLDcgKzEzMCw3IEBAIHN0 cnVjdCBibGtfem9uZV9yZXBvcnQgewogCV9fdTY0CQlzZWN0b3I7CiAJX191MzIJCW5yX3pvbmVz OwogCV9fdTMyCQlmbGFnczsKLQlzdHJ1Y3QgYmxrX3pvbmUgem9uZXNbMF07CisJc3RydWN0IGJs a196b25lIHpvbmVzW107CiB9OwogCiAvKioKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51 eC9icGYuaCBiL2luY2x1ZGUvdWFwaS9saW51eC9icGYuaAppbmRleCBmNDAwOWRiZGY2MmQuLmU0 YjMzYmEwNmYwMCAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L2JwZi5oCisrKyBiL2lu Y2x1ZGUvdWFwaS9saW51eC9icGYuaApAQCAtNzksNyArNzksNyBAQCBzdHJ1Y3QgYnBmX2luc24g ewogLyogS2V5IG9mIGFuIGEgQlBGX01BUF9UWVBFX0xQTV9UUklFIGVudHJ5ICovCiBzdHJ1Y3Qg YnBmX2xwbV90cmllX2tleSB7CiAJX191MzIJcHJlZml4bGVuOwkvKiB1cCB0byAzMiBmb3IgQUZf SU5FVCwgMTI4IGZvciBBRl9JTkVUNiAqLwotCV9fdTgJZGF0YVswXTsJLyogQXJiaXRyYXJ5IHNp emUgKi8KKwlfX3U4CWRhdGFbXTsJLyogQXJiaXRyYXJ5IHNpemUgKi8KIH07CiAKIHN0cnVjdCBi cGZfY2dyb3VwX3N0b3JhZ2Vfa2V5IHsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9i dHJmcy5oIGIvaW5jbHVkZS91YXBpL2xpbnV4L2J0cmZzLmgKaW5kZXggZDk1NmIyOTkzOTcwLi4z ZDBlZGJlM2I5OTEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC9idHJmcy5oCisrKyBi L2luY2x1ZGUvdWFwaS9saW51eC9idHJmcy5oCkBAIC05Myw3ICs5Myw3IEBAIHN0cnVjdCBidHJm c19xZ3JvdXBfaW5oZXJpdCB7CiAJX191NjQJbnVtX3JlZl9jb3BpZXM7CiAJX191NjQJbnVtX2V4 Y2xfY29waWVzOwogCXN0cnVjdCBidHJmc19xZ3JvdXBfbGltaXQgbGltOwotCV9fdTY0CXFncm91 cHNbMF07CisJX191NjQJcWdyb3Vwc1tdOwogfTsKIAogc3RydWN0IGJ0cmZzX2lvY3RsX3Fncm91 cF9saW1pdF9hcmdzIHsKQEAgLTU2MSw3ICs1NjEsNyBAQCBzdHJ1Y3QgYnRyZnNfaW9jdGxfc2Vh cmNoX2FyZ3NfdjIgewogCV9fdTY0IGJ1Zl9zaXplOwkJICAgLyogaW4gLSBzaXplIG9mIGJ1ZmZl cgogCQkJCQkgICAgKiBvdXQgLSBvbiBFT1ZFUkZMT1c6IG5lZWRlZCBzaXplCiAJCQkJCSAgICAq ICAgICAgIHRvIHN0b3JlIGl0ZW0gKi8KLQlfX3U2NCBidWZbMF07ICAgICAgICAgICAgICAgICAg ICAgICAvKiBvdXQgLSBmb3VuZCBpdGVtcyAqLworCV9fdTY0IGJ1ZltdOyAgICAgICAgICAgICAg ICAgICAgICAgLyogb3V0IC0gZm91bmQgaXRlbXMgKi8KIH07CiAKIHN0cnVjdCBidHJmc19pb2N0 bF9jbG9uZV9yYW5nZV9hcmdzIHsKQEAgLTYzMiw3ICs2MzIsNyBAQCBzdHJ1Y3QgYnRyZnNfaW9j dGxfc2FtZV9hcmdzIHsKIAlfX3UxNiBkZXN0X2NvdW50OwkvKiBpbiAtIHRvdGFsIGVsZW1lbnRz IGluIGluZm8gYXJyYXkgKi8KIAlfX3UxNiByZXNlcnZlZDE7CiAJX191MzIgcmVzZXJ2ZWQyOwot CXN0cnVjdCBidHJmc19pb2N0bF9zYW1lX2V4dGVudF9pbmZvIGluZm9bMF07CisJc3RydWN0IGJ0 cmZzX2lvY3RsX3NhbWVfZXh0ZW50X2luZm8gaW5mb1tdOwogfTsKIAogc3RydWN0IGJ0cmZzX2lv Y3RsX3NwYWNlX2luZm8gewpAQCAtNjQ0LDcgKzY0NCw3IEBAIHN0cnVjdCBidHJmc19pb2N0bF9z cGFjZV9pbmZvIHsKIHN0cnVjdCBidHJmc19pb2N0bF9zcGFjZV9hcmdzIHsKIAlfX3U2NCBzcGFj ZV9zbG90czsKIAlfX3U2NCB0b3RhbF9zcGFjZXM7Ci0Jc3RydWN0IGJ0cmZzX2lvY3RsX3NwYWNl X2luZm8gc3BhY2VzWzBdOworCXN0cnVjdCBidHJmc19pb2N0bF9zcGFjZV9pbmZvIHNwYWNlc1td OwogfTsKIAogc3RydWN0IGJ0cmZzX2RhdGFfY29udGFpbmVyIHsKQEAgLTY1Miw3ICs2NTIsNyBA QCBzdHJ1Y3QgYnRyZnNfZGF0YV9jb250YWluZXIgewogCV9fdTMyCWJ5dGVzX21pc3Npbmc7CS8q IG91dCAtLSBhZGRpdGlvbmFsIGJ5dGVzIG5lZWRlZCBmb3IgcmVzdWx0ICovCiAJX191MzIJZWxl bV9jbnQ7CS8qIG91dCAqLwogCV9fdTMyCWVsZW1fbWlzc2VkOwkvKiBvdXQgKi8KLQlfX3U2NAl2 YWxbMF07CQkvKiBvdXQgKi8KKwlfX3U2NAl2YWxbXTsJCS8qIG91dCAqLwogfTsKIAogc3RydWN0 IGJ0cmZzX2lvY3RsX2lub19wYXRoX2FyZ3MgewpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xp bnV4L2J0cmZzX3RyZWUuaCBiL2luY2x1ZGUvdWFwaS9saW51eC9idHJmc190cmVlLmgKaW5kZXgg ZDQxMTcxNTJkOTA3Li41ZjMyYTJhNDk1ZGMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51 eC9idHJmc190cmVlLmgKKysrIGIvaW5jbHVkZS91YXBpL2xpbnV4L2J0cmZzX3RyZWUuaApAQCAt NTc1LDcgKzU3NSw3IEBAIHN0cnVjdCBidHJmc19pbm9kZV9leHRyZWYgewogCV9fbGU2NCBwYXJl bnRfb2JqZWN0aWQ7CiAJX19sZTY0IGluZGV4OwogCV9fbGUxNiBuYW1lX2xlbjsKLQlfX3U4ICAg bmFtZVswXTsKKwlfX3U4ICAgbmFtZVtdOwogCS8qIG5hbWUgZ29lcyBoZXJlICovCiB9IF9fYXR0 cmlidXRlX18gKChfX3BhY2tlZF9fKSk7CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51 eC9jYW4vYmNtLmggYi9pbmNsdWRlL3VhcGkvbGludXgvY2FuL2JjbS5oCmluZGV4IGRkMmI5MjVi MDlhYy4uZjFlNDVmNTMzYTcyIDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvY2FuL2Jj bS5oCisrKyBiL2luY2x1ZGUvdWFwaS9saW51eC9jYW4vYmNtLmgKQEAgLTcxLDcgKzcxLDcgQEAg c3RydWN0IGJjbV9tc2dfaGVhZCB7CiAJc3RydWN0IGJjbV90aW1ldmFsIGl2YWwxLCBpdmFsMjsK IAljYW5pZF90IGNhbl9pZDsKIAlfX3UzMiBuZnJhbWVzOwotCXN0cnVjdCBjYW5fZnJhbWUgZnJh bWVzWzBdOworCXN0cnVjdCBjYW5fZnJhbWUgZnJhbWVzW107CiB9OwogCiBlbnVtIHsKZGlmZiAt LWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9jb25uZWN0b3IuaCBiL2luY2x1ZGUvdWFwaS9saW51 eC9jb25uZWN0b3IuaAppbmRleCAzNzM4OTM2MTQ5YTIuLjVhZTEzMWMzZjE0NSAxMDA2NDQKLS0t IGEvaW5jbHVkZS91YXBpL2xpbnV4L2Nvbm5lY3Rvci5oCisrKyBiL2luY2x1ZGUvdWFwaS9saW51 eC9jb25uZWN0b3IuaApAQCAtNzUsNyArNzUsNyBAQCBzdHJ1Y3QgY25fbXNnIHsKIAogCV9fdTE2 IGxlbjsJCS8qIExlbmd0aCBvZiB0aGUgZm9sbG93aW5nIGRhdGEgKi8KIAlfX3UxNiBmbGFnczsK LQlfX3U4IGRhdGFbMF07CisJX191OCBkYXRhW107CiB9OwogCiAjZW5kaWYgLyogX1VBUElfX0NP Tk5FQ1RPUl9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvbGludXgvY3ljeF9jZm0uaCBi L2luY2x1ZGUvdWFwaS9saW51eC9jeWN4X2NmbS5oCmluZGV4IDUxZjU0MTk0MmZmOS4uOTE3Nzhj ODAyNGIxIDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvY3ljeF9jZm0uaAorKysgYi9p bmNsdWRlL3VhcGkvbGludXgvY3ljeF9jZm0uaApAQCAtOTEsNyArOTEsNyBAQCBzdHJ1Y3QgY3lj eF9maXJtd2FyZSB7CiAJdW5zaWduZWQgc2hvcnQJICAgIHJlc2VydmVkWzZdOwogCWNoYXIJCSAg ICBkZXNjcltDRk1fREVTQ1JfTEVOXTsKIAlzdHJ1Y3QgY3ljeF9md19pbmZvIGluZm87Ci0JdW5z aWduZWQgY2hhcgkgICAgaW1hZ2VbMF07CisJdW5zaWduZWQgY2hhcgkgICAgaW1hZ2VbXTsKIH07 CiAKIHN0cnVjdCBjeWN4X2Z3X2hlYWRlciB7CmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvbGlu dXgvZG0taW9jdGwuaCBiL2luY2x1ZGUvdWFwaS9saW51eC9kbS1pb2N0bC5oCmluZGV4IDJlOTU1 MGZlZjkwZi4uOGM5N2Q3NWYzMTA0IDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvZG0t aW9jdGwuaAorKysgYi9pbmNsdWRlL3VhcGkvbGludXgvZG0taW9jdGwuaApAQCAtMTgyLDcgKzE4 Miw3IEBAIHN0cnVjdCBkbV90YXJnZXRfc3BlYyB7CiBzdHJ1Y3QgZG1fdGFyZ2V0X2RlcHMgewog CV9fdTMyIGNvdW50OwkvKiBBcnJheSBzaXplICovCiAJX191MzIgcGFkZGluZzsJLyogdW51c2Vk ICovCi0JX191NjQgZGV2WzBdOwkvKiBvdXQgKi8KKwlfX3U2NCBkZXZbXTsJLyogb3V0ICovCiB9 OwogCiAvKgpAQCAtMTkyLDcgKzE5Miw3IEBAIHN0cnVjdCBkbV9uYW1lX2xpc3QgewogCV9fdTY0 IGRldjsKIAlfX3UzMiBuZXh0OwkJLyogb2Zmc2V0IHRvIHRoZSBuZXh0IHJlY29yZCBmcm9tCiAJ CQkJICAgdGhlIF9zdGFydF8gb2YgdGhpcyAqLwotCWNoYXIgbmFtZVswXTsKKwljaGFyIG5hbWVb XTsKIAogCS8qCiAJICogVGhlIGZvbGxvd2luZyBtZW1iZXJzIGNhbiBiZSBhY2Nlc3NlZCBieSB0 YWtpbmcgYSBwb2ludGVyIHRoYXQKQEAgLTIxNiw3ICsyMTYsNyBAQCBzdHJ1Y3QgZG1fdGFyZ2V0 X3ZlcnNpb25zIHsKICAgICAgICAgX191MzIgbmV4dDsKICAgICAgICAgX191MzIgdmVyc2lvblsz XTsKIAotICAgICAgICBjaGFyIG5hbWVbMF07CisgICAgICAgIGNoYXIgbmFtZVtdOwogfTsKIAog LyoKQEAgLTIyNSw3ICsyMjUsNyBAQCBzdHJ1Y3QgZG1fdGFyZ2V0X3ZlcnNpb25zIHsKIHN0cnVj dCBkbV90YXJnZXRfbXNnIHsKIAlfX3U2NCBzZWN0b3I7CS8qIERldmljZSBzZWN0b3IgKi8KIAot CWNoYXIgbWVzc2FnZVswXTsKKwljaGFyIG1lc3NhZ2VbXTsKIH07CiAKIC8qCmRpZmYgLS1naXQg YS9pbmNsdWRlL3VhcGkvbGludXgvZG0tbG9nLXVzZXJzcGFjZS5oIGIvaW5jbHVkZS91YXBpL2xp bnV4L2RtLWxvZy11c2Vyc3BhY2UuaAppbmRleCA1YzQ3YTg2MDMzNzYuLjIzZGFkOTU2NWU0NiAx MDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L2RtLWxvZy11c2Vyc3BhY2UuaAorKysgYi9p bmNsdWRlL3VhcGkvbGludXgvZG0tbG9nLXVzZXJzcGFjZS5oCkBAIC00MjYsNyArNDI2LDcgQEAg c3RydWN0IGRtX3Vsb2dfcmVxdWVzdCB7CiAJX191MzIgcmVxdWVzdF90eXBlOyAgLyogRE1fVUxP R18qIGRlZmluZWQgYWJvdmUgKi8KIAlfX3UzMiBkYXRhX3NpemU7ICAgICAvKiBIb3cgbXVjaCBk YXRhIChub3QgaW5jbHVkaW5nIHRoaXMgc3RydWN0KSAqLwogCi0JY2hhciBkYXRhWzBdOworCWNo YXIgZGF0YVtdOwogfTsKIAogI2VuZGlmIC8qIF9fRE1fTE9HX1VTRVJTUEFDRV9IX18gKi8KZGlm ZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9ldGh0b29sLmggYi9pbmNsdWRlL3VhcGkvbGlu dXgvZXRodG9vbC5oCmluZGV4IGUwZjBlZTliYzg5ZS4uMmQ1NzQxZmQ0NGJiIDEwMDY0NAotLS0g YS9pbmNsdWRlL3VhcGkvbGludXgvZXRodG9vbC5oCisrKyBiL2luY2x1ZGUvdWFwaS9saW51eC9l dGh0b29sLmgKQEAgLTI1Nyw3ICsyNTcsNyBAQCBzdHJ1Y3QgZXRodG9vbF90dW5hYmxlIHsKIAlf X3UzMglpZDsKIAlfX3UzMgl0eXBlX2lkOwogCV9fdTMyCWxlbjsKLQl2b2lkCSpkYXRhWzBdOwor CXZvaWQJKmRhdGFbXTsKIH07CiAKICNkZWZpbmUgRE9XTlNISUZUX0RFVl9ERUZBVUxUX0NPVU5U CTB4ZmYKQEAgLTMyMiw3ICszMjIsNyBAQCBzdHJ1Y3QgZXRodG9vbF9yZWdzIHsKIAlfX3UzMglj bWQ7CiAJX191MzIJdmVyc2lvbjsKIAlfX3UzMglsZW47Ci0JX191OAlkYXRhWzBdOworCV9fdTgJ ZGF0YVtdOwogfTsKIAogLyoqCkBAIC0zNDgsNyArMzQ4LDcgQEAgc3RydWN0IGV0aHRvb2xfZWVw cm9tIHsKIAlfX3UzMgltYWdpYzsKIAlfX3UzMglvZmZzZXQ7CiAJX191MzIJbGVuOwotCV9fdTgJ ZGF0YVswXTsKKwlfX3U4CWRhdGFbXTsKIH07CiAKIC8qKgpAQCAtNzUyLDcgKzc1Miw3IEBAIHN0 cnVjdCBldGh0b29sX2dzdHJpbmdzIHsKIAlfX3UzMgljbWQ7CiAJX191MzIJc3RyaW5nX3NldDsK IAlfX3UzMglsZW47Ci0JX191OAlkYXRhWzBdOworCV9fdTgJZGF0YVtdOwogfTsKIAogLyoqCkBA IC03NzcsNyArNzc3LDcgQEAgc3RydWN0IGV0aHRvb2xfc3NldF9pbmZvIHsKIAlfX3UzMgljbWQ7 CiAJX191MzIJcmVzZXJ2ZWQ7CiAJX191NjQJc3NldF9tYXNrOwotCV9fdTMyCWRhdGFbMF07CisJ X191MzIJZGF0YVtdOwogfTsKIAogLyoqCkBAIC04MTcsNyArODE3LDcgQEAgc3RydWN0IGV0aHRv b2xfdGVzdCB7CiAJX191MzIJZmxhZ3M7CiAJX191MzIJcmVzZXJ2ZWQ7CiAJX191MzIJbGVuOwot CV9fdTY0CWRhdGFbMF07CisJX191NjQJZGF0YVtdOwogfTsKIAogLyoqCkBAIC04MzQsNyArODM0 LDcgQEAgc3RydWN0IGV0aHRvb2xfdGVzdCB7CiBzdHJ1Y3QgZXRodG9vbF9zdGF0cyB7CiAJX191 MzIJY21kOwogCV9fdTMyCW5fc3RhdHM7Ci0JX191NjQJZGF0YVswXTsKKwlfX3U2NAlkYXRhW107 CiB9OwogCiAvKioKQEAgLTg1MSw3ICs4NTEsNyBAQCBzdHJ1Y3QgZXRodG9vbF9zdGF0cyB7CiBz dHJ1Y3QgZXRodG9vbF9wZXJtX2FkZHIgewogCV9fdTMyCWNtZDsKIAlfX3UzMglzaXplOwotCV9f dTgJZGF0YVswXTsKKwlfX3U4CWRhdGFbXTsKIH07CiAKIC8qIGJvb2xlYW4gZmxhZ3MgY29udHJv bGxpbmcgcGVyLWludGVyZmFjZSBiZWhhdmlvciBjaGFyYWN0ZXJpc3RpY3MuCkBAIC0xMTYwLDcg KzExNjAsNyBAQCBzdHJ1Y3QgZXRodG9vbF9yeG5mYyB7CiBzdHJ1Y3QgZXRodG9vbF9yeGZoX2lu ZGlyIHsKIAlfX3UzMgljbWQ7CiAJX191MzIJc2l6ZTsKLQlfX3UzMglyaW5nX2luZGV4WzBdOwor CV9fdTMyCXJpbmdfaW5kZXhbXTsKIH07CiAKIC8qKgpAQCAtMTIwMSw3ICsxMjAxLDcgQEAgc3Ry dWN0IGV0aHRvb2xfcnhmaCB7CiAJX191OAloZnVuYzsKIAlfX3U4CXJzdmQ4WzNdOwogCV9fdTMy CXJzdmQzMjsKLQlfX3UzMiAgIHJzc19jb25maWdbMF07CisJX191MzIgICByc3NfY29uZmlnW107 CiB9OwogI2RlZmluZSBFVEhfUlhGSF9DT05URVhUX0FMTE9DCQkweGZmZmZmZmZmCiAjZGVmaW5l IEVUSF9SWEZIX0lORElSX05PX0NIQU5HRQkweGZmZmZmZmZmCkBAIC0xMjg2LDcgKzEyODYsNyBA QCBzdHJ1Y3QgZXRodG9vbF9kdW1wIHsKIAlfX3UzMgl2ZXJzaW9uOwogCV9fdTMyCWZsYWc7CiAJ X191MzIJbGVuOwotCV9fdTgJZGF0YVswXTsKKwlfX3U4CWRhdGFbXTsKIH07CiAKICNkZWZpbmUg RVRIX0ZXX0RVTVBfRElTQUJMRSAwCkBAIC0xMzE4LDcgKzEzMTgsNyBAQCBzdHJ1Y3QgZXRodG9v bF9nZXRfZmVhdHVyZXNfYmxvY2sgewogc3RydWN0IGV0aHRvb2xfZ2ZlYXR1cmVzIHsKIAlfX3Uz MgljbWQ7CiAJX191MzIJc2l6ZTsKLQlzdHJ1Y3QgZXRodG9vbF9nZXRfZmVhdHVyZXNfYmxvY2sg ZmVhdHVyZXNbMF07CisJc3RydWN0IGV0aHRvb2xfZ2V0X2ZlYXR1cmVzX2Jsb2NrIGZlYXR1cmVz W107CiB9OwogCiAvKioKQEAgLTEzNDAsNyArMTM0MCw3IEBAIHN0cnVjdCBldGh0b29sX3NldF9m ZWF0dXJlc19ibG9jayB7CiBzdHJ1Y3QgZXRodG9vbF9zZmVhdHVyZXMgewogCV9fdTMyCWNtZDsK IAlfX3UzMglzaXplOwotCXN0cnVjdCBldGh0b29sX3NldF9mZWF0dXJlc19ibG9jayBmZWF0dXJl c1swXTsKKwlzdHJ1Y3QgZXRodG9vbF9zZXRfZmVhdHVyZXNfYmxvY2sgZmVhdHVyZXNbXTsKIH07 CiAKIC8qKgpAQCAtMjA4Nyw3ICsyMDg3LDcgQEAgc3RydWN0IGV0aHRvb2xfbGlua19zZXR0aW5n cyB7CiAJX191OAltYXN0ZXJfc2xhdmVfc3RhdGU7CiAJX191OAlyZXNlcnZlZDFbMV07CiAJX191 MzIJcmVzZXJ2ZWRbN107Ci0JX191MzIJbGlua19tb2RlX21hc2tzWzBdOworCV9fdTMyCWxpbmtf bW9kZV9tYXNrc1tdOwogCS8qIGxheW91dCBvZiBsaW5rX21vZGVfbWFza3MgZmllbGRzOgogCSAq IF9fdTMyIG1hcF9zdXBwb3J0ZWRbbGlua19tb2RlX21hc2tzX253b3Jkc107CiAJICogX191MzIg bWFwX2FkdmVydGlzaW5nW2xpbmtfbW9kZV9tYXNrc19ud29yZHNdOwpkaWZmIC0tZ2l0IGEvaW5j bHVkZS91YXBpL2xpbnV4L2Zhbm90aWZ5LmggYi9pbmNsdWRlL3VhcGkvbGludXgvZmFub3RpZnku aAppbmRleCBmMWY4OTEzMmQ2MGUuLjE5N2RmMzQ0MzA3ZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS91 YXBpL2xpbnV4L2Zhbm90aWZ5LmgKKysrIGIvaW5jbHVkZS91YXBpL2xpbnV4L2Zhbm90aWZ5LmgK QEAgLTE2Miw3ICsxNjIsNyBAQCBzdHJ1Y3QgZmFub3RpZnlfZXZlbnRfaW5mb19maWQgewogCSAq IEZvbGxvd2luZyBpcyBhbiBvcGFxdWUgc3RydWN0IGZpbGVfaGFuZGxlIHRoYXQgY2FuIGJlIHBh c3NlZCBhcwogCSAqIGFuIGFyZ3VtZW50IHRvIG9wZW5fYnlfaGFuZGxlX2F0KDIpLgogCSAqLwot CXVuc2lnbmVkIGNoYXIgaGFuZGxlWzBdOworCXVuc2lnbmVkIGNoYXIgaGFuZGxlW107CiB9Owog CiAvKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L2ZpZW1hcC5oIGIvaW5jbHVkZS91 YXBpL2xpbnV4L2ZpZW1hcC5oCmluZGV4IDA3YzFjZGNiNzE1ZS4uMjRjYTBjMDBjYWUzIDEwMDY0 NAotLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvZmllbWFwLmgKKysrIGIvaW5jbHVkZS91YXBpL2xp bnV4L2ZpZW1hcC5oCkBAIC0zNCw3ICszNCw3IEBAIHN0cnVjdCBmaWVtYXAgewogCV9fdTMyIGZt X21hcHBlZF9leHRlbnRzOy8qIG51bWJlciBvZiBleHRlbnRzIHRoYXQgd2VyZSBtYXBwZWQgKG91 dCkgKi8KIAlfX3UzMiBmbV9leHRlbnRfY291bnQ7ICAvKiBzaXplIG9mIGZtX2V4dGVudHMgYXJy YXkgKGluKSAqLwogCV9fdTMyIGZtX3Jlc2VydmVkOwotCXN0cnVjdCBmaWVtYXBfZXh0ZW50IGZt X2V4dGVudHNbMF07IC8qIGFycmF5IG9mIG1hcHBlZCBleHRlbnRzIChvdXQpICovCisJc3RydWN0 IGZpZW1hcF9leHRlbnQgZm1fZXh0ZW50c1tdOyAvKiBhcnJheSBvZiBtYXBwZWQgZXh0ZW50cyAo b3V0KSAqLwogfTsKIAogI2RlZmluZSBGSUVNQVBfTUFYX09GRlNFVAkofjBVTEwpCmRpZmYgLS1n aXQgYS9pbmNsdWRlL3VhcGkvbGludXgvZmlyZXdpcmUtY2Rldi5oIGIvaW5jbHVkZS91YXBpL2xp bnV4L2ZpcmV3aXJlLWNkZXYuaAppbmRleCA1ZWZmYTk4MzI4MDIuLjkyYmUzZWEzYzZlMCAxMDA2 NDQKLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L2ZpcmV3aXJlLWNkZXYuaAorKysgYi9pbmNsdWRl L3VhcGkvbGludXgvZmlyZXdpcmUtY2Rldi5oCkBAIC0xMTgsNyArMTE4LDcgQEAgc3RydWN0IGZ3 X2NkZXZfZXZlbnRfcmVzcG9uc2UgewogCV9fdTMyIHR5cGU7CiAJX191MzIgcmNvZGU7CiAJX191 MzIgbGVuZ3RoOwotCV9fdTMyIGRhdGFbMF07CisJX191MzIgZGF0YVtdOwogfTsKIAogLyoqCkBA IC0xNDIsNyArMTQyLDcgQEAgc3RydWN0IGZ3X2NkZXZfZXZlbnRfcmVxdWVzdCB7CiAJX191NjQg b2Zmc2V0OwogCV9fdTMyIGhhbmRsZTsKIAlfX3UzMiBsZW5ndGg7Ci0JX191MzIgZGF0YVswXTsK KwlfX3UzMiBkYXRhW107CiB9OwogCiAvKioKQEAgLTIwNSw3ICsyMDUsNyBAQCBzdHJ1Y3QgZndf Y2Rldl9ldmVudF9yZXF1ZXN0MiB7CiAJX191MzIgZ2VuZXJhdGlvbjsKIAlfX3UzMiBoYW5kbGU7 CiAJX191MzIgbGVuZ3RoOwotCV9fdTMyIGRhdGFbMF07CisJX191MzIgZGF0YVtdOwogfTsKIAog LyoqCkBAIC0yNjUsNyArMjY1LDcgQEAgc3RydWN0IGZ3X2NkZXZfZXZlbnRfaXNvX2ludGVycnVw dCB7CiAJX191MzIgdHlwZTsKIAlfX3UzMiBjeWNsZTsKIAlfX3UzMiBoZWFkZXJfbGVuZ3RoOwot CV9fdTMyIGhlYWRlclswXTsKKwlfX3UzMiBoZWFkZXJbXTsKIH07CiAKIC8qKgpAQCAtMzU1LDcg KzM1NSw3IEBAIHN0cnVjdCBmd19jZGV2X2V2ZW50X3BoeV9wYWNrZXQgewogCV9fdTMyIHR5cGU7 CiAJX191MzIgcmNvZGU7CiAJX191MzIgbGVuZ3RoOwotCV9fdTMyIGRhdGFbMF07CisJX191MzIg ZGF0YVtdOwogfTsKIAogLyoqCkBAIC04MDMsNyArODAzLDcgQEAgc3RydWN0IGZ3X2NkZXZfc2V0 X2lzb19jaGFubmVscyB7CiAgKi8KIHN0cnVjdCBmd19jZGV2X2lzb19wYWNrZXQgewogCV9fdTMy IGNvbnRyb2w7Ci0JX191MzIgaGVhZGVyWzBdOworCV9fdTMyIGhlYWRlcltdOwogfTsKIAogLyoq CmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvbGludXgvZnMuaCBiL2luY2x1ZGUvdWFwaS9saW51 eC9mcy5oCmluZGV4IGJkZjdiNDA0YjNlNy4uYjdiNTY4NzEwMjljIDEwMDY0NAotLS0gYS9pbmNs dWRlL3VhcGkvbGludXgvZnMuaAorKysgYi9pbmNsdWRlL3VhcGkvbGludXgvZnMuaApAQCAtOTAs NyArOTAsNyBAQCBzdHJ1Y3QgZmlsZV9kZWR1cGVfcmFuZ2UgewogCV9fdTE2IGRlc3RfY291bnQ7 CS8qIGluIC0gdG90YWwgZWxlbWVudHMgaW4gaW5mbyBhcnJheSAqLwogCV9fdTE2IHJlc2VydmVk MTsJLyogbXVzdCBiZSB6ZXJvICovCiAJX191MzIgcmVzZXJ2ZWQyOwkvKiBtdXN0IGJlIHplcm8g Ki8KLQlzdHJ1Y3QgZmlsZV9kZWR1cGVfcmFuZ2VfaW5mbyBpbmZvWzBdOworCXN0cnVjdCBmaWxl X2RlZHVwZV9yYW5nZV9pbmZvIGluZm9bXTsKIH07CiAKIC8qIEFuZCBkeW5hbWljYWxseS10dW5h YmxlIGxpbWl0cyBhbmQgZGVmYXVsdHM6ICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvbGlu dXgvaWZfYWxnLmggYi9pbmNsdWRlL3VhcGkvbGludXgvaWZfYWxnLmgKaW5kZXggZGM1MmExMWJh NmQxLi41NzhiMThhYWI4MjEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC9pZl9hbGcu aAorKysgYi9pbmNsdWRlL3VhcGkvbGludXgvaWZfYWxnLmgKQEAgLTQyLDcgKzQyLDcgQEAgc3Ry dWN0IHNvY2thZGRyX2FsZ19uZXcgewogCiBzdHJ1Y3QgYWZfYWxnX2l2IHsKIAlfX3UzMglpdmxl bjsKLQlfX3U4CWl2WzBdOworCV9fdTgJaXZbXTsKIH07CiAKIC8qIFNvY2tldCBvcHRpb25zICov CmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvbGludXgvaWZfYXJjbmV0LmggYi9pbmNsdWRlL3Vh cGkvbGludXgvaWZfYXJjbmV0LmgKaW5kZXggNjgzODc4MDM2ZDc2Li5iMTIyY2ZhYzcxMjggMTAw NjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC9pZl9hcmNuZXQuaAorKysgYi9pbmNsdWRlL3Vh cGkvbGludXgvaWZfYXJjbmV0LmgKQEAgLTYwLDcgKzYwLDcgQEAgc3RydWN0IGFyY19yZmMxMjAx IHsKIAlfX3U4ICBwcm90bzsJCS8qIHByb3RvY29sIElEIGZpZWxkIC0gdmFyaWVzCQkqLwogCV9f dTggIHNwbGl0X2ZsYWc7CS8qIGZvciB1c2Ugd2l0aCBzcGxpdCBwYWNrZXRzCQkqLwogCV9fYmUx NiAgIHNlcXVlbmNlOwkvKiBzZXF1ZW5jZSBudW1iZXIJCQkqLwotCV9fdTggIHBheWxvYWRbMF07 CS8qIHNwYWNlIHJlbWFpbmluZyBpbiBwYWNrZXQgKDUwNCBieXRlcykqLworCV9fdTggIHBheWxv YWRbXTsJLyogc3BhY2UgcmVtYWluaW5nIGluIHBhY2tldCAoNTA0IGJ5dGVzKSovCiB9OwogI2Rl ZmluZSBSRkMxMjAxX0hEUl9TSVpFIDQKIApAQCAtNjksNyArNjksNyBAQCBzdHJ1Y3QgYXJjX3Jm YzEyMDEgewogICovCiBzdHJ1Y3QgYXJjX3JmYzEwNTEgewogCV9fdTggcHJvdG87CQkvKiBBUkNf UF9SRkMxMDUxX0FSUC9SRkMxMDUxX0lQCSovCi0JX191OCBwYXlsb2FkWzBdOwkvKiA1MDcgYnl0 ZXMJCQkqLworCV9fdTggcGF5bG9hZFtdOwkvKiA1MDcgYnl0ZXMJCQkqLwogfTsKICNkZWZpbmUg UkZDMTA1MV9IRFJfU0laRSAxCiAKQEAgLTgwLDcgKzgwLDcgQEAgc3RydWN0IGFyY19yZmMxMDUx IHsKIHN0cnVjdCBhcmNfZXRoX2VuY2FwIHsKIAlfX3U4IHByb3RvOwkJLyogQWx3YXlzIEFSQ19Q X0VUSEVSCQkJKi8KIAlzdHJ1Y3QgZXRoaGRyIGV0aDsJLyogc3RhbmRhcmQgZXRoZXJuZXQgaGVh ZGVyICh5dWNrISkJKi8KLQlfX3U4IHBheWxvYWRbMF07CS8qIDQ5MyBieXRlcwkJCQkqLworCV9f dTggcGF5bG9hZFtdOwkvKiA0OTMgYnl0ZXMJCQkJKi8KIH07CiAjZGVmaW5lIEVUSF9FTkNBUF9I RFJfU0laRSAxNAogCmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvbGludXgvaWZfcHBwb3guaCBi L2luY2x1ZGUvdWFwaS9saW51eC9pZl9wcHBveC5oCmluZGV4IGU3YTY5M2MyOGYxNi4uOWFiZDgw ZGNjNDZmIDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvaWZfcHBwb3guaAorKysgYi9p bmNsdWRlL3VhcGkvbGludXgvaWZfcHBwb3guaApAQCAtMTIyLDcgKzEyMiw3IEBAIHN0cnVjdCBz b2NrYWRkcl9wcHBvbDJ0cHYzaW42IHsKIHN0cnVjdCBwcHBvZV90YWcgewogCV9fYmUxNiB0YWdf dHlwZTsKIAlfX2JlMTYgdGFnX2xlbjsKLQljaGFyIHRhZ19kYXRhWzBdOworCWNoYXIgdGFnX2Rh dGFbXTsKIH0gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpOwogCiAvKiBUYWcgaWRlbnRpZmllcnMg Ki8KQEAgLTE1MCw3ICsxNTAsNyBAQCBzdHJ1Y3QgcHBwb2VfaGRyIHsKIAlfX3U4IGNvZGU7CiAJ X19iZTE2IHNpZDsKIAlfX2JlMTYgbGVuZ3RoOwotCXN0cnVjdCBwcHBvZV90YWcgdGFnWzBdOwor CXN0cnVjdCBwcHBvZV90YWcgdGFnW107CiB9IF9fcGFja2VkOwogCiAvKiBMZW5ndGggb2YgZW50 aXJlIFBQUG9FICsgUFBQIGhlYWRlciAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4 L2lmX3R1bi5oIGIvaW5jbHVkZS91YXBpL2xpbnV4L2lmX3R1bi5oCmluZGV4IDQ1NGFlMzFiOTNj Ny4uMmVjMDdkZTFkNzNiIDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvaWZfdHVuLmgK KysrIGIvaW5jbHVkZS91YXBpL2xpbnV4L2lmX3R1bi5oCkBAIC0xMDgsNyArMTA4LDcgQEAgc3Ry dWN0IHR1bl9waSB7CiBzdHJ1Y3QgdHVuX2ZpbHRlciB7CiAJX191MTYgIGZsYWdzOyAvKiBUVU5f RkxUXyBmbGFncyBzZWUgYWJvdmUgKi8KIAlfX3UxNiAgY291bnQ7IC8qIE51bWJlciBvZiBhZGRy ZXNzZXMgKi8KLQlfX3U4ICAgYWRkclswXVtFVEhfQUxFTl07CisJX191OCAgIGFkZHJbXVtFVEhf QUxFTl07CiB9OwogCiAjZW5kaWYgLyogX1VBUElfX0lGX1RVTl9IICovCmRpZmYgLS1naXQgYS9p bmNsdWRlL3VhcGkvbGludXgvaWdtcC5oIGIvaW5jbHVkZS91YXBpL2xpbnV4L2lnbXAuaAppbmRl eCA5MGMyOGJjNDY2YzYuLjU5MzBmMjQzN2NkMSAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2xp bnV4L2lnbXAuaAorKysgYi9pbmNsdWRlL3VhcGkvbGludXgvaWdtcC5oCkBAIC00OCw3ICs0OCw3 IEBAIHN0cnVjdCBpZ21wdjNfZ3JlYyB7CiAJX191OAlncmVjX2F1eHdvcmRzOwogCV9fYmUxNgln cmVjX25zcmNzOwogCV9fYmUzMglncmVjX21jYTsKLQlfX2JlMzIJZ3JlY19zcmNbMF07CisJX19i ZTMyCWdyZWNfc3JjW107CiB9OwogCiBzdHJ1Y3QgaWdtcHYzX3JlcG9ydCB7CkBAIC01Nyw3ICs1 Nyw3IEBAIHN0cnVjdCBpZ21wdjNfcmVwb3J0IHsKIAlfX3N1bTE2IGNzdW07CiAJX19iZTE2IHJl c3YyOwogCV9fYmUxNiBuZ3JlYzsKLQlzdHJ1Y3QgaWdtcHYzX2dyZWMgZ3JlY1swXTsKKwlzdHJ1 Y3QgaWdtcHYzX2dyZWMgZ3JlY1tdOwogfTsKIAogc3RydWN0IGlnbXB2M19xdWVyeSB7CkBAIC03 OCw3ICs3OCw3IEBAIHN0cnVjdCBpZ21wdjNfcXVlcnkgewogI2VuZGlmCiAJX191OCBxcWljOwog CV9fYmUxNiBuc3JjczsKLQlfX2JlMzIgc3Jjc1swXTsKKwlfX2JlMzIgc3Jjc1tdOwogfTsKIAog I2RlZmluZSBJR01QX0hPU1RfTUVNQkVSU0hJUF9RVUVSWQkweDExCS8qIEZyb20gUkZDMTExMiAq LwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L2luZXRfZGlhZy5oIGIvaW5jbHVkZS91 YXBpL2xpbnV4L2luZXRfZGlhZy5oCmluZGV4IDIwZWU5M2YwZjg3Ni4uNTA2NTVkZTA0YzliIDEw MDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvaW5ldF9kaWFnLmgKKysrIGIvaW5jbHVkZS91 YXBpL2xpbnV4L2luZXRfZGlhZy5oCkBAIC0xMDQsNyArMTA0LDcgQEAgc3RydWN0IGluZXRfZGlh Z19ob3N0Y29uZCB7CiAJX191OAlmYW1pbHk7CiAJX191OAlwcmVmaXhfbGVuOwogCWludAlwb3J0 OwotCV9fYmUzMglhZGRyWzBdOworCV9fYmUzMglhZGRyW107CiB9OwogCiBzdHJ1Y3QgaW5ldF9k aWFnX21hcmtjb25kIHsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9pbm90aWZ5Lmgg Yi9pbmNsdWRlL3VhcGkvbGludXgvaW5vdGlmeS5oCmluZGV4IDg4NGI0ODQ2YjYzMC4uYjNlMTY1 ODUzZDViIDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvaW5vdGlmeS5oCisrKyBiL2lu Y2x1ZGUvdWFwaS9saW51eC9pbm90aWZ5LmgKQEAgLTIzLDcgKzIzLDcgQEAgc3RydWN0IGlub3Rp ZnlfZXZlbnQgewogCV9fdTMyCQltYXNrOwkJLyogd2F0Y2ggbWFzayAqLwogCV9fdTMyCQljb29r aWU7CQkvKiBjb29raWUgdG8gc3luY2hyb25pemUgdHdvIGV2ZW50cyAqLwogCV9fdTMyCQlsZW47 CQkvKiBsZW5ndGggKGluY2x1ZGluZyBudWxscykgb2YgbmFtZSAqLwotCWNoYXIJCW5hbWVbMF07 CS8qIHN0dWIgZm9yIHBvc3NpYmxlIG5hbWUgKi8KKwljaGFyCQluYW1lW107CS8qIHN0dWIgZm9y IHBvc3NpYmxlIG5hbWUgKi8KIH07CiAKIC8qIHRoZSBmb2xsb3dpbmcgYXJlIGxlZ2FsLCBpbXBs ZW1lbnRlZCBldmVudHMgdGhhdCB1c2VyLXNwYWNlIGNhbiB3YXRjaCBmb3IgKi8KZGlmZiAtLWdp dCBhL2luY2x1ZGUvdWFwaS9saW51eC9pb191cmluZy5oIGIvaW5jbHVkZS91YXBpL2xpbnV4L2lv X3VyaW5nLmgKaW5kZXggNzc2ZTAyNzhmOWRkLi43ODIyZWY5ZDg2MjggMTAwNjQ0Ci0tLSBhL2lu Y2x1ZGUvdWFwaS9saW51eC9pb191cmluZy5oCisrKyBiL2luY2x1ZGUvdWFwaS9saW51eC9pb191 cmluZy5oCkBAIC00ODYsNyArNDg2LDcgQEAgc3RydWN0IGlvX3VyaW5nX3Byb2JlIHsKIAlfX3U4 IG9wc19sZW47CS8qIGxlbmd0aCBvZiBvcHNbXSBhcnJheSBiZWxvdyAqLwogCV9fdTE2IHJlc3Y7 CiAJX191MzIgcmVzdjJbM107Ci0Jc3RydWN0IGlvX3VyaW5nX3Byb2JlX29wIG9wc1swXTsKKwlz dHJ1Y3QgaW9fdXJpbmdfcHJvYmVfb3Agb3BzW107CiB9OwogCiBzdHJ1Y3QgaW9fdXJpbmdfcmVz dHJpY3Rpb24gewpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L2lwLmggYi9pbmNsdWRl L3VhcGkvbGludXgvaXAuaAppbmRleCBlMDBiYmI5YzQ3YmIuLjk2MWVjMTZhMjZiOCAxMDA2NDQK LS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L2lwLmgKKysrIGIvaW5jbHVkZS91YXBpL2xpbnV4L2lw LmgKQEAgLTExMiwxMyArMTEyLDEzIEBAIHN0cnVjdCBpcF9hdXRoX2hkciB7CiAJX19iZTE2IHJl c2VydmVkOwogCV9fYmUzMiBzcGk7CiAJX19iZTMyIHNlcV9ubzsJCS8qIFNlcXVlbmNlIG51bWJl ciAqLwotCV9fdTggIGF1dGhfZGF0YVswXTsJLyogVmFyaWFibGUgbGVuIGJ1dCA+PTQuIE1pbmQg dGhlIDY0IGJpdCBhbGlnbm1lbnQhICovCisJX191OCAgYXV0aF9kYXRhW107CS8qIFZhcmlhYmxl IGxlbiBidXQgPj00LiBNaW5kIHRoZSA2NCBiaXQgYWxpZ25tZW50ISAqLwogfTsKIAogc3RydWN0 IGlwX2VzcF9oZHIgewogCV9fYmUzMiBzcGk7CiAJX19iZTMyIHNlcV9ubzsJCS8qIFNlcXVlbmNl IG51bWJlciAqLwotCV9fdTggIGVuY19kYXRhWzBdOwkvKiBWYXJpYWJsZSBsZW4gYnV0ID49OC4g TWluZCB0aGUgNjQgYml0IGFsaWdubWVudCEgKi8KKwlfX3U4ICBlbmNfZGF0YVtdOwkvKiBWYXJp YWJsZSBsZW4gYnV0ID49OC4gTWluZCB0aGUgNjQgYml0IGFsaWdubWVudCEgKi8KIH07CiAKIHN0 cnVjdCBpcF9jb21wX2hkciB7CmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvbGludXgvaXBfdnMu aCBiL2luY2x1ZGUvdWFwaS9saW51eC9pcF92cy5oCmluZGV4IDQxMDJkZGNiNGUxNC4uMWVkMjM0 ZTdmMjUxIDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvaXBfdnMuaAorKysgYi9pbmNs dWRlL3VhcGkvbGludXgvaXBfdnMuaApAQCAtMjU0LDcgKzI1NCw3IEBAIHN0cnVjdCBpcF92c19n ZXRfZGVzdHMgewogCXVuc2lnbmVkIGludAkJbnVtX2Rlc3RzOwogCiAJLyogdGhlIHJlYWwgc2Vy dmVycyAqLwotCXN0cnVjdCBpcF92c19kZXN0X2VudHJ5CWVudHJ5dGFibGVbMF07CisJc3RydWN0 IGlwX3ZzX2Rlc3RfZW50cnkJZW50cnl0YWJsZVtdOwogfTsKIAogCkBAIC0yNjQsNyArMjY0LDcg QEAgc3RydWN0IGlwX3ZzX2dldF9zZXJ2aWNlcyB7CiAJdW5zaWduZWQgaW50CQludW1fc2Vydmlj ZXM7CiAKIAkvKiBzZXJ2aWNlIHRhYmxlICovCi0Jc3RydWN0IGlwX3ZzX3NlcnZpY2VfZW50cnkg ZW50cnl0YWJsZVswXTsKKwlzdHJ1Y3QgaXBfdnNfc2VydmljZV9lbnRyeSBlbnRyeXRhYmxlW107 CiB9OwogCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9pc29fZnMuaCBiL2luY2x1 ZGUvdWFwaS9saW51eC9pc29fZnMuaAppbmRleCBhMjU1NTE3NmY2ZDEuLjc1ODE3OGY1YjUyZCAx MDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L2lzb19mcy5oCisrKyBiL2luY2x1ZGUvdWFw aS9saW51eC9pc29fZnMuaApAQCAtMTM3LDcgKzEzNyw3IEBAIHN0cnVjdCBpc29fcGF0aF90YWJs ZXsKIAlfX3U4ICBuYW1lX2xlblsyXTsJLyogNzIxICovCiAJX191OCAgZXh0ZW50WzRdOwkvKiA3 MzEgKi8KIAlfX3U4ICBwYXJlbnRbMl07CS8qIDcyMSAqLwotCWNoYXIgbmFtZVswXTsKKwljaGFy IG5hbWVbXTsKIH0gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CiAKIC8qIGhpZ2ggc2llcnJhIGlz IGlkZW50aWNhbCB0byBpc28sIGV4Y2VwdCB0aGF0IHRoZSBkYXRlIGlzIG9ubHkgNiBieXRlcywg YW5kCkBAIC0xNTQsNyArMTU0LDcgQEAgc3RydWN0IGlzb19kaXJlY3RvcnlfcmVjb3JkIHsKIAlf X3U4IGludGVybGVhdmUJCQlbSVNPRENMICgyOCwgMjgpXTsgLyogNzExICovCiAJX191OCB2b2x1 bWVfc2VxdWVuY2VfbnVtYmVyCVtJU09EQ0wgKDI5LCAzMildOyAvKiA3MjMgKi8KIAlfX3U4IG5h bWVfbGVuCQkJW0lTT0RDTCAoMzMsIDMzKV07IC8qIDcxMSAqLwotCWNoYXIgbmFtZQkJCVswXTsK KwljaGFyIG5hbWUJCQlbXTsKIH0gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CiAKICNkZWZpbmUg SVNPRlNfQkxPQ0tfQklUUyAxMQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L2pmZnMy LmggYi9pbmNsdWRlL3VhcGkvbGludXgvamZmczIuaAppbmRleCA3ODRiYTBiOTY5MGEuLjYzN2Vl NGE3OTNjZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L2pmZnMyLmgKKysrIGIvaW5j bHVkZS91YXBpL2xpbnV4L2pmZnMyLmgKQEAgLTEyMyw3ICsxMjMsNyBAQCBzdHJ1Y3QgamZmczJf cmF3X2RpcmVudAogCV9fdTggdW51c2VkWzJdOwogCWppbnQzMl90IG5vZGVfY3JjOwogCWppbnQz Ml90IG5hbWVfY3JjOwotCV9fdTggbmFtZVswXTsKKwlfX3U4IG5hbWVbXTsKIH07CiAKIC8qIFRo ZSBKRkZTMiByYXcgaW5vZGUgc3RydWN0dXJlOiBVc2VkIGZvciBzdG9yYWdlIG9uIHBoeXNpY2Fs IG1lZGlhLiAgKi8KQEAgLTE1NSw3ICsxNTUsNyBAQCBzdHJ1Y3QgamZmczJfcmF3X2lub2RlCiAJ amludDE2X3QgZmxhZ3M7CSAgICAgLyogU2VlIEpGRlMyX0lOT19GTEFHXyogKi8KIAlqaW50MzJf dCBkYXRhX2NyYzsgICAvKiBDUkMgZm9yIHRoZSAoY29tcHJlc3NlZCkgZGF0YS4gICovCiAJamlu dDMyX3Qgbm9kZV9jcmM7ICAgLyogQ1JDIGZvciB0aGUgcmF3IGlub2RlIChleGNsdWRpbmcgZGF0 YSkgICovCi0JX191OCBkYXRhWzBdOworCV9fdTggZGF0YVtdOwogfTsKIAogc3RydWN0IGpmZnMy X3Jhd194YXR0ciB7CkBAIC0xNzAsNyArMTcwLDcgQEAgc3RydWN0IGpmZnMyX3Jhd194YXR0ciB7 CiAJamludDE2X3QgdmFsdWVfbGVuOwogCWppbnQzMl90IGRhdGFfY3JjOwogCWppbnQzMl90IG5v ZGVfY3JjOwotCV9fdTggZGF0YVswXTsKKwlfX3U4IGRhdGFbXTsKIH0gX19hdHRyaWJ1dGVfXygo cGFja2VkKSk7CiAKIHN0cnVjdCBqZmZzMl9yYXdfeHJlZgpAQCAtMTk2LDcgKzE5Niw3IEBAIHN0 cnVjdCBqZmZzMl9yYXdfc3VtbWFyeQogCWppbnQzMl90IHBhZGRlZDsJLyogc3VtIG9mIHRoZSBz aXplIG9mIHBhZGRpbmcgbm9kZXMgKi8KIAlqaW50MzJfdCBzdW1fY3JjOwkvKiBzdW1tYXJ5IGlu Zm9ybWF0aW9uIGNyYyAqLwogCWppbnQzMl90IG5vZGVfY3JjOyAJLyogbm9kZSBjcmMgKi8KLQlq aW50MzJfdCBzdW1bMF07IAkvKiBpbm9kZSBzdW1tYXJ5IGluZm8gKi8KKwlqaW50MzJfdCBzdW1b XTsgCS8qIGlub2RlIHN1bW1hcnkgaW5mbyAqLwogfTsKIAogdW5pb24gamZmczJfbm9kZV91bmlv bgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L2tjb3YuaCBiL2luY2x1ZGUvdWFwaS9s aW51eC9rY292LmgKaW5kZXggMWQwMzUwZTQ0YWUzLi5lZDk1ZGJhOWZhMzcgMTAwNjQ0Ci0tLSBh L2luY2x1ZGUvdWFwaS9saW51eC9rY292LmgKKysrIGIvaW5jbHVkZS91YXBpL2xpbnV4L2tjb3Yu aApAQCAtMTMsNyArMTMsNyBAQCBzdHJ1Y3Qga2Nvdl9yZW1vdGVfYXJnIHsKIAlfX3UzMgkJYXJl YV9zaXplOwkvKiBMZW5ndGggb2YgY292ZXJhZ2UgYnVmZmVyIGluIHdvcmRzICovCiAJX191MzIJ CW51bV9oYW5kbGVzOwkvKiBTaXplIG9mIGhhbmRsZXMgYXJyYXkgKi8KIAlfX2FsaWduZWRfdTY0 CWNvbW1vbl9oYW5kbGU7Ci0JX19hbGlnbmVkX3U2NAloYW5kbGVzWzBdOworCV9fYWxpZ25lZF91 NjQJaGFuZGxlc1tdOwogfTsKIAogI2RlZmluZSBLQ09WX1JFTU9URV9NQVhfSEFORExFUwkJMHgx MDAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9rdm0uaCBiL2luY2x1ZGUvdWFwaS9s aW51eC9rdm0uaAppbmRleCA1MDg4YmQ5ZjE5MjIuLjc0ZGM4YmFmY2I5ZSAxMDA2NDQKLS0tIGEv aW5jbHVkZS91YXBpL2xpbnV4L2t2bS5oCisrKyBiL2luY2x1ZGUvdWFwaS9saW51eC9rdm0uaApA QCAtNTQyLDcgKzU0Miw3IEBAIHN0cnVjdCBrdm1fY29hbGVzY2VkX21taW8gewogCiBzdHJ1Y3Qg a3ZtX2NvYWxlc2NlZF9tbWlvX3JpbmcgewogCV9fdTMyIGZpcnN0LCBsYXN0OwotCXN0cnVjdCBr dm1fY29hbGVzY2VkX21taW8gY29hbGVzY2VkX21taW9bMF07CisJc3RydWN0IGt2bV9jb2FsZXNj ZWRfbW1pbyBjb2FsZXNjZWRfbW1pb1tdOwogfTsKIAogI2RlZmluZSBLVk1fQ09BTEVTQ0VEX01N SU9fTUFYIFwKQEAgLTYyMSw3ICs2MjEsNyBAQCBzdHJ1Y3Qga3ZtX2NsZWFyX2RpcnR5X2xvZyB7 CiAvKiBmb3IgS1ZNX1NFVF9TSUdOQUxfTUFTSyAqLwogc3RydWN0IGt2bV9zaWduYWxfbWFzayB7 CiAJX191MzIgbGVuOwotCV9fdTggIHNpZ3NldFswXTsKKwlfX3U4ICBzaWdzZXRbXTsKIH07CiAK IC8qIGZvciBLVk1fVFBSX0FDQ0VTU19SRVBPUlRJTkcgKi8KQEAgLTEyMjEsNyArMTIyMSw3IEBA IHN0cnVjdCBrdm1faXJxX3JvdXRpbmdfZW50cnkgewogc3RydWN0IGt2bV9pcnFfcm91dGluZyB7 CiAJX191MzIgbnI7CiAJX191MzIgZmxhZ3M7Ci0Jc3RydWN0IGt2bV9pcnFfcm91dGluZ19lbnRy eSBlbnRyaWVzWzBdOworCXN0cnVjdCBrdm1faXJxX3JvdXRpbmdfZW50cnkgZW50cmllc1tdOwog fTsKIAogI2VuZGlmCkBAIC0xMzQxLDcgKzEzNDEsNyBAQCBzdHJ1Y3Qga3ZtX2RpcnR5X3RsYiB7 CiAKIHN0cnVjdCBrdm1fcmVnX2xpc3QgewogCV9fdTY0IG47IC8qIG51bWJlciBvZiByZWdzICov Ci0JX191NjQgcmVnWzBdOworCV9fdTY0IHJlZ1tdOwogfTsKIAogc3RydWN0IGt2bV9vbmVfcmVn IHsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9taW5peF9mcy5oIGIvaW5jbHVkZS91 YXBpL2xpbnV4L21pbml4X2ZzLmgKaW5kZXggOTVkYmNiMTdlYWNkLi44ZDljYThiMmMzNTcgMTAw NjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC9taW5peF9mcy5oCisrKyBiL2luY2x1ZGUvdWFw aS9saW51eC9taW5peF9mcy5oCkBAIC05NywxMSArOTcsMTEgQEAgc3RydWN0IG1pbml4M19zdXBl cl9ibG9jayB7CiAKIHN0cnVjdCBtaW5peF9kaXJfZW50cnkgewogCV9fdTE2IGlub2RlOwotCWNo YXIgbmFtZVswXTsKKwljaGFyIG5hbWVbXTsKIH07CiAKIHN0cnVjdCBtaW5peDNfZGlyX2VudHJ5 IHsKIAlfX3UzMiBpbm9kZTsKLQljaGFyIG5hbWVbMF07CisJY2hhciBuYW1lW107CiB9OwogI2Vu ZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvbGludXgvbW1jL2lvY3RsLmggYi9pbmNsdWRl L3VhcGkvbGludXgvbW1jL2lvY3RsLmgKaW5kZXggMjdhMzk4NDdkNTVjLi5lNzQwMWFkZTY4MjIg MTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC9tbWMvaW9jdGwuaAorKysgYi9pbmNsdWRl L3VhcGkvbGludXgvbW1jL2lvY3RsLmgKQEAgLTU4LDcgKzU4LDcgQEAgc3RydWN0IG1tY19pb2Nf Y21kIHsKICAqLwogc3RydWN0IG1tY19pb2NfbXVsdGlfY21kIHsKIAlfX3U2NCBudW1fb2ZfY21k czsKLQlzdHJ1Y3QgbW1jX2lvY19jbWQgY21kc1swXTsKKwlzdHJ1Y3QgbW1jX2lvY19jbWQgY21k c1tdOwogfTsKIAogI2RlZmluZSBNTUNfSU9DX0NNRCBfSU9XUihNTUNfQkxPQ0tfTUFKT1IsIDAs IHN0cnVjdCBtbWNfaW9jX2NtZCkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9uZGN0 bC5oIGIvaW5jbHVkZS91YXBpL2xpbnV4L25kY3RsLmgKaW5kZXggMTdlMDJiNjRlYTJlLi43MzUx NmUyNjM2MjcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC9uZGN0bC5oCisrKyBiL2lu Y2x1ZGUvdWFwaS9saW51eC9uZGN0bC5oCkBAIC0zMCwyNSArMzAsMjUgQEAgc3RydWN0IG5kX2Nt ZF9nZXRfY29uZmlnX2RhdGFfaGRyIHsKIAlfX3UzMiBpbl9vZmZzZXQ7CiAJX191MzIgaW5fbGVu Z3RoOwogCV9fdTMyIHN0YXR1czsKLQlfX3U4IG91dF9idWZbMF07CisJX191OCBvdXRfYnVmW107 CiB9IF9fcGFja2VkOwogCiBzdHJ1Y3QgbmRfY21kX3NldF9jb25maWdfaGRyIHsKIAlfX3UzMiBp bl9vZmZzZXQ7CiAJX191MzIgaW5fbGVuZ3RoOwotCV9fdTggaW5fYnVmWzBdOworCV9fdTggaW5f YnVmW107CiB9IF9fcGFja2VkOwogCiBzdHJ1Y3QgbmRfY21kX3ZlbmRvcl9oZHIgewogCV9fdTMy IG9wY29kZTsKIAlfX3UzMiBpbl9sZW5ndGg7Ci0JX191OCBpbl9idWZbMF07CisJX191OCBpbl9i dWZbXTsKIH0gX19wYWNrZWQ7CiAKIHN0cnVjdCBuZF9jbWRfdmVuZG9yX3RhaWwgewogCV9fdTMy IHN0YXR1czsKIAlfX3UzMiBvdXRfbGVuZ3RoOwotCV9fdTggb3V0X2J1ZlswXTsKKwlfX3U4IG91 dF9idWZbXTsKIH0gX19wYWNrZWQ7CiAKIHN0cnVjdCBuZF9jbWRfYXJzX2NhcCB7CkBAIC04Niw3 ICs4Niw3IEBAIHN0cnVjdCBuZF9jbWRfYXJzX3N0YXR1cyB7CiAJCV9fdTMyIHJlc2VydmVkOwog CQlfX3U2NCBlcnJfYWRkcmVzczsKIAkJX191NjQgbGVuZ3RoOwotCX0gX19wYWNrZWQgcmVjb3Jk c1swXTsKKwl9IF9fcGFja2VkIHJlY29yZHNbXTsKIH0gX19wYWNrZWQ7CiAKIHN0cnVjdCBuZF9j bWRfY2xlYXJfZXJyb3IgewpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L25ldF9kcm9w bW9uLmggYi9pbmNsdWRlL3VhcGkvbGludXgvbmV0X2Ryb3Btb24uaAppbmRleCAxYmJlYThmMDY4 MWUuLjg0ZjYyMmE2NmE3YSAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L25ldF9kcm9w bW9uLmgKKysrIGIvaW5jbHVkZS91YXBpL2xpbnV4L25ldF9kcm9wbW9uLmgKQEAgLTI5LDEyICsy OSwxMiBAQCBzdHJ1Y3QgbmV0X2RtX2NvbmZpZ19lbnRyeSB7CiAKIHN0cnVjdCBuZXRfZG1fY29u ZmlnX21zZyB7CiAJX191MzIgZW50cmllczsKLQlzdHJ1Y3QgbmV0X2RtX2NvbmZpZ19lbnRyeSBv cHRpb25zWzBdOworCXN0cnVjdCBuZXRfZG1fY29uZmlnX2VudHJ5IG9wdGlvbnNbXTsKIH07CiAK IHN0cnVjdCBuZXRfZG1fYWxlcnRfbXNnIHsKIAlfX3UzMiBlbnRyaWVzOwotCXN0cnVjdCBuZXRf ZG1fZHJvcF9wb2ludCBwb2ludHNbMF07CisJc3RydWN0IG5ldF9kbV9kcm9wX3BvaW50IHBvaW50 c1tdOwogfTsKIAogc3RydWN0IG5ldF9kbV91c2VyX21zZyB7CmRpZmYgLS1naXQgYS9pbmNsdWRl L3VhcGkvbGludXgvbmV0ZmlsdGVyL3hfdGFibGVzLmggYi9pbmNsdWRlL3VhcGkvbGludXgvbmV0 ZmlsdGVyL3hfdGFibGVzLmgKaW5kZXggYjhjNmJiMjMzYWMxLi43OTZhZjgzYTk2M2EgMTAwNjQ0 Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC9uZXRmaWx0ZXIveF90YWJsZXMuaAorKysgYi9pbmNs dWRlL3VhcGkvbGludXgvbmV0ZmlsdGVyL3hfdGFibGVzLmgKQEAgLTI4LDcgKzI4LDcgQEAgc3Ry dWN0IHh0X2VudHJ5X21hdGNoIHsKIAkJX191MTYgbWF0Y2hfc2l6ZTsKIAl9IHU7CiAKLQl1bnNp Z25lZCBjaGFyIGRhdGFbMF07CisJdW5zaWduZWQgY2hhciBkYXRhW107CiB9OwogCiBzdHJ1Y3Qg eHRfZW50cnlfdGFyZ2V0IHsKQEAgLTExOSw3ICsxMTksNyBAQCBzdHJ1Y3QgeHRfY291bnRlcnNf aW5mbyB7CiAJdW5zaWduZWQgaW50IG51bV9jb3VudGVyczsKIAogCS8qIFRoZSBjb3VudGVycyAo YWN0dWFsbHkgYG51bWJlcicgb2YgdGhlc2UpLiAqLwotCXN0cnVjdCB4dF9jb3VudGVycyBjb3Vu dGVyc1swXTsKKwlzdHJ1Y3QgeHRfY291bnRlcnMgY291bnRlcnNbXTsKIH07CiAKICNkZWZpbmUg WFRfSU5WX1BST1RPCQkweDQwCS8qIEludmVydCB0aGUgc2Vuc2Ugb2YgUFJPVE8uICovCmRpZmYg LS1naXQgYS9pbmNsdWRlL3VhcGkvbGludXgvbmV0ZmlsdGVyX2FycC9hcnBfdGFibGVzLmggYi9p bmNsdWRlL3VhcGkvbGludXgvbmV0ZmlsdGVyX2FycC9hcnBfdGFibGVzLmgKaW5kZXggYmJmNWFm MmI2N2E4Li5hNmFjMjQ2M2Y3ODcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC9uZXRm aWx0ZXJfYXJwL2FycF90YWJsZXMuaAorKysgYi9pbmNsdWRlL3VhcGkvbGludXgvbmV0ZmlsdGVy X2FycC9hcnBfdGFibGVzLmgKQEAgLTEwOSw3ICsxMDksNyBAQCBzdHJ1Y3QgYXJwdF9lbnRyeQog CXN0cnVjdCB4dF9jb3VudGVycyBjb3VudGVyczsKIAogCS8qIFRoZSBtYXRjaGVzIChpZiBhbnkp LCB0aGVuIHRoZSB0YXJnZXQuICovCi0JdW5zaWduZWQgY2hhciBlbGVtc1swXTsKKwl1bnNpZ25l ZCBjaGFyIGVsZW1zW107CiB9OwogCiAvKgpAQCAtMTgxLDcgKzE4MSw3IEBAIHN0cnVjdCBhcnB0 X3JlcGxhY2UgewogCXN0cnVjdCB4dF9jb3VudGVycyBfX3VzZXIgKmNvdW50ZXJzOwogCiAJLyog VGhlIGVudHJpZXMgKGhhbmcgb2ZmIGVuZDogbm90IHJlYWxseSBhbiBhcnJheSkuICovCi0Jc3Ry dWN0IGFycHRfZW50cnkgZW50cmllc1swXTsKKwlzdHJ1Y3QgYXJwdF9lbnRyeSBlbnRyaWVzW107 CiB9OwogCiAvKiBUaGUgYXJndW1lbnQgdG8gQVJQVF9TT19HRVRfRU5UUklFUy4gKi8KQEAgLTE5 Myw3ICsxOTMsNyBAQCBzdHJ1Y3QgYXJwdF9nZXRfZW50cmllcyB7CiAJdW5zaWduZWQgaW50IHNp emU7CiAKIAkvKiBUaGUgZW50cmllcy4gKi8KLQlzdHJ1Y3QgYXJwdF9lbnRyeSBlbnRyeXRhYmxl WzBdOworCXN0cnVjdCBhcnB0X2VudHJ5IGVudHJ5dGFibGVbXTsKIH07CiAKIC8qIEhlbHBlciBm dW5jdGlvbnMgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9uZXRmaWx0ZXJfYnJp ZGdlL2VidF9hbW9uZy5oIGIvaW5jbHVkZS91YXBpL2xpbnV4L25ldGZpbHRlcl9icmlkZ2UvZWJ0 X2Ftb25nLmgKaW5kZXggOWFjZjc1N2JjMWY3Li43M2IyNmEyODBjNGYgMTAwNjQ0Ci0tLSBhL2lu Y2x1ZGUvdWFwaS9saW51eC9uZXRmaWx0ZXJfYnJpZGdlL2VidF9hbW9uZy5oCisrKyBiL2luY2x1 ZGUvdWFwaS9saW51eC9uZXRmaWx0ZXJfYnJpZGdlL2VidF9hbW9uZy5oCkBAIC00MCw3ICs0MCw3 IEBAIHN0cnVjdCBlYnRfbWFjX3dvcm1oYXNoX3R1cGxlIHsKIHN0cnVjdCBlYnRfbWFjX3dvcm1o YXNoIHsKIAlpbnQgdGFibGVbMjU3XTsKIAlpbnQgcG9vbHNpemU7Ci0Jc3RydWN0IGVidF9tYWNf d29ybWhhc2hfdHVwbGUgcG9vbFswXTsKKwlzdHJ1Y3QgZWJ0X21hY193b3JtaGFzaF90dXBsZSBw b29sW107CiB9OwogCiAjZGVmaW5lIGVidF9tYWNfd29ybWhhc2hfc2l6ZSh4KSAoKHgpID8gc2l6 ZW9mKHN0cnVjdCBlYnRfbWFjX3dvcm1oYXNoKSBcCmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkv bGludXgvbmV0ZmlsdGVyX2lwdjQvaXBfdGFibGVzLmggYi9pbmNsdWRlL3VhcGkvbGludXgvbmV0 ZmlsdGVyX2lwdjQvaXBfdGFibGVzLmgKaW5kZXggNTBjN2ZlZTYyNWFlLi4xNDg1ZGYyOGIyMzkg MTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC9uZXRmaWx0ZXJfaXB2NC9pcF90YWJsZXMu aAorKysgYi9pbmNsdWRlL3VhcGkvbGludXgvbmV0ZmlsdGVyX2lwdjQvaXBfdGFibGVzLmgKQEAg LTEyMSw3ICsxMjEsNyBAQCBzdHJ1Y3QgaXB0X2VudHJ5IHsKIAlzdHJ1Y3QgeHRfY291bnRlcnMg Y291bnRlcnM7CiAKIAkvKiBUaGUgbWF0Y2hlcyAoaWYgYW55KSwgdGhlbiB0aGUgdGFyZ2V0LiAq LwotCXVuc2lnbmVkIGNoYXIgZWxlbXNbMF07CisJdW5zaWduZWQgY2hhciBlbGVtc1tdOwogfTsK IAogLyoKQEAgLTIwMyw3ICsyMDMsNyBAQCBzdHJ1Y3QgaXB0X3JlcGxhY2UgewogCXN0cnVjdCB4 dF9jb3VudGVycyBfX3VzZXIgKmNvdW50ZXJzOwogCiAJLyogVGhlIGVudHJpZXMgKGhhbmcgb2Zm IGVuZDogbm90IHJlYWxseSBhbiBhcnJheSkuICovCi0Jc3RydWN0IGlwdF9lbnRyeSBlbnRyaWVz WzBdOworCXN0cnVjdCBpcHRfZW50cnkgZW50cmllc1tdOwogfTsKIAogLyogVGhlIGFyZ3VtZW50 IHRvIElQVF9TT19HRVRfRU5UUklFUy4gKi8KQEAgLTIxNSw3ICsyMTUsNyBAQCBzdHJ1Y3QgaXB0 X2dldF9lbnRyaWVzIHsKIAl1bnNpZ25lZCBpbnQgc2l6ZTsKIAogCS8qIFRoZSBlbnRyaWVzLiAq LwotCXN0cnVjdCBpcHRfZW50cnkgZW50cnl0YWJsZVswXTsKKwlzdHJ1Y3QgaXB0X2VudHJ5IGVu dHJ5dGFibGVbXTsKIH07CiAKIC8qIEhlbHBlciBmdW5jdGlvbnMgKi8KZGlmZiAtLWdpdCBhL2lu Y2x1ZGUvdWFwaS9saW51eC9uZXRmaWx0ZXJfaXB2Ni9pcDZfdGFibGVzLmggYi9pbmNsdWRlL3Vh cGkvbGludXgvbmV0ZmlsdGVyX2lwdjYvaXA2X3RhYmxlcy5oCmluZGV4IGQ5ZTM2NGY5NmE1Yy4u NzY2ZThlMGJjYzY4IDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvbmV0ZmlsdGVyX2lw djYvaXA2X3RhYmxlcy5oCisrKyBiL2luY2x1ZGUvdWFwaS9saW51eC9uZXRmaWx0ZXJfaXB2Ni9p cDZfdGFibGVzLmgKQEAgLTI0Myw3ICsyNDMsNyBAQCBzdHJ1Y3QgaXA2dF9yZXBsYWNlIHsKIAlz dHJ1Y3QgeHRfY291bnRlcnMgX191c2VyICpjb3VudGVyczsKIAogCS8qIFRoZSBlbnRyaWVzICho YW5nIG9mZiBlbmQ6IG5vdCByZWFsbHkgYW4gYXJyYXkpLiAqLwotCXN0cnVjdCBpcDZ0X2VudHJ5 IGVudHJpZXNbMF07CisJc3RydWN0IGlwNnRfZW50cnkgZW50cmllc1tdOwogfTsKIAogLyogVGhl IGFyZ3VtZW50IHRvIElQNlRfU09fR0VUX0VOVFJJRVMuICovCkBAIC0yNTUsNyArMjU1LDcgQEAg c3RydWN0IGlwNnRfZ2V0X2VudHJpZXMgewogCXVuc2lnbmVkIGludCBzaXplOwogCiAJLyogVGhl IGVudHJpZXMuICovCi0Jc3RydWN0IGlwNnRfZW50cnkgZW50cnl0YWJsZVswXTsKKwlzdHJ1Y3Qg aXA2dF9lbnRyeSBlbnRyeXRhYmxlW107CiB9OwogCiAvKiBIZWxwZXIgZnVuY3Rpb25zICovCmRp ZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvbGludXgvcGVyZl9ldmVudC5oIGIvaW5jbHVkZS91YXBp L2xpbnV4L3BlcmZfZXZlbnQuaAppbmRleCBkMzc2MjlkYmFkNzIuLjQ2NTM4MzRmMDc4ZiAxMDA2 NDQKLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L3BlcmZfZXZlbnQuaAorKysgYi9pbmNsdWRlL3Vh cGkvbGludXgvcGVyZl9ldmVudC5oCkBAIC00OTEsNyArNDkxLDcgQEAgc3RydWN0IHBlcmZfZXZl bnRfcXVlcnlfYnBmIHsKIAkvKgogCSAqIFVzZXIgcHJvdmlkZWQgYnVmZmVyIHRvIHN0b3JlIHBy b2dyYW0gaWRzCiAJICovCi0JX191MzIJaWRzWzBdOworCV9fdTMyCWlkc1tdOwogfTsKIAogLyoK ZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9wa3RfY2xzLmggYi9pbmNsdWRlL3VhcGkv bGludXgvcGt0X2Nscy5oCmluZGV4IDlhMmVlMWUzOWZhZC4uZmZiZTIzMGVmOTBiIDEwMDY0NAot LS0gYS9pbmNsdWRlL3VhcGkvbGludXgvcGt0X2Nscy5oCisrKyBiL2luY2x1ZGUvdWFwaS9saW51 eC9wa3RfY2xzLmgKQEAgLTI1Niw3ICsyNTYsNyBAQCBzdHJ1Y3QgdGNfdTMyX3NlbCB7CiAKIAlz aG9ydAkJCWhvZmY7CiAJX19iZTMyCQkJaG1hc2s7Ci0Jc3RydWN0IHRjX3UzMl9rZXkJa2V5c1sw XTsKKwlzdHJ1Y3QgdGNfdTMyX2tleQlrZXlzW107CiB9OwogCiBzdHJ1Y3QgdGNfdTMyX21hcmsg ewpAQCAtMjY4LDcgKzI2OCw3IEBAIHN0cnVjdCB0Y191MzJfbWFyayB7CiBzdHJ1Y3QgdGNfdTMy X3BjbnQgewogCV9fdTY0IHJjbnQ7CiAJX191NjQgcmhpdDsKLQlfX3U2NCBrY250c1swXTsKKwlf X3U2NCBrY250c1tdOwogfTsKIAogLyogRmxhZ3MgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFw aS9saW51eC9yYWlkL21kX3AuaCBiL2luY2x1ZGUvdWFwaS9saW51eC9yYWlkL21kX3AuaAppbmRl eCBlNWE5OGExNmY5YjAuLjZjMGFhNTc3NzMwZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2xp bnV4L3JhaWQvbWRfcC5oCisrKyBiL2luY2x1ZGUvdWFwaS9saW51eC9yYWlkL21kX3AuaApAQCAt MzAzLDcgKzMwMyw3IEBAIHN0cnVjdCBtZHBfc3VwZXJibG9ja18xIHsKIAkgKiBpbnRvIHRoZSAn cm9sZXMnIHZhbHVlLiAgSWYgYSBkZXZpY2UgaXMgc3BhcmUgb3IgZmF1bHR5LCB0aGVuIGl0IGRv ZXNuJ3QKIAkgKiBoYXZlIGEgbWVhbmluZ2Z1bCByb2xlLgogCSAqLwotCV9fbGUxNglkZXZfcm9s ZXNbMF07CS8qIHJvbGUgaW4gYXJyYXksIG9yIDB4ZmZmZiBmb3IgYSBzcGFyZSwgb3IgMHhmZmZl IGZvciBmYXVsdHkgKi8KKwlfX2xlMTYJZGV2X3JvbGVzW107CS8qIHJvbGUgaW4gYXJyYXksIG9y IDB4ZmZmZiBmb3IgYSBzcGFyZSwgb3IgMHhmZmZlIGZvciBmYXVsdHkgKi8KIH07CiAKIC8qIGZl YXR1cmVfbWFwIGJpdHMgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9yYW5kb20u aCBiL2luY2x1ZGUvdWFwaS9saW51eC9yYW5kb20uaAppbmRleCBkY2MxYjNlNjEwNmYuLmU3NDRj MjM1ODJlYiAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L3JhbmRvbS5oCisrKyBiL2lu Y2x1ZGUvdWFwaS9saW51eC9yYW5kb20uaApAQCAtNDEsNyArNDEsNyBAQAogc3RydWN0IHJhbmRf cG9vbF9pbmZvIHsKIAlpbnQJZW50cm9weV9jb3VudDsKIAlpbnQJYnVmX3NpemU7Ci0JX191MzIJ YnVmWzBdOworCV9fdTMyCWJ1ZltdOwogfTsKIAogLyoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFw aS9saW51eC9yb21mc19mcy5oIGIvaW5jbHVkZS91YXBpL2xpbnV4L3JvbWZzX2ZzLmgKaW5kZXgg YTdmMTU4NWFjY2VmLi42YWEwNWU3OTI0NTQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51 eC9yb21mc19mcy5oCisrKyBiL2luY2x1ZGUvdWFwaS9saW51eC9yb21mc19mcy5oCkBAIC0yNyw3 ICsyNyw3IEBAIHN0cnVjdCByb21mc19zdXBlcl9ibG9jayB7CiAJX19iZTMyIHdvcmQxOwogCV9f YmUzMiBzaXplOwogCV9fYmUzMiBjaGVja3N1bTsKLQljaGFyIG5hbWVbMF07CQkvKiB2b2x1bWUg bmFtZSAqLworCWNoYXIgbmFtZVtdOwkJLyogdm9sdW1lIG5hbWUgKi8KIH07CiAKIC8qIE9uIGRp c2sgaW5vZGUgKi8KQEAgLTM3LDcgKzM3LDcgQEAgc3RydWN0IHJvbWZzX2lub2RlIHsKIAlfX2Jl MzIgc3BlYzsKIAlfX2JlMzIgc2l6ZTsKIAlfX2JlMzIgY2hlY2tzdW07Ci0JY2hhciBuYW1lWzBd OworCWNoYXIgbmFtZVtdOwogfTsKIAogI2RlZmluZSBST01GSF9UWVBFIDcKZGlmZiAtLWdpdCBh L2luY2x1ZGUvdWFwaS9saW51eC9ydG5ldGxpbmsuaCBiL2luY2x1ZGUvdWFwaS9saW51eC9ydG5l dGxpbmsuaAppbmRleCA4Mzg0OWEzN2RiNWIuLmViMjc0N2Q1OGE4MSAxMDA2NDQKLS0tIGEvaW5j bHVkZS91YXBpL2xpbnV4L3J0bmV0bGluay5oCisrKyBiL2luY2x1ZGUvdWFwaS9saW51eC9ydG5l dGxpbmsuaApAQCAtNDQwLDcgKzQ0MCw3IEBAIHN0cnVjdCBydG5leHRob3AgewogLyogUlRBX1ZJ QSAqLwogc3RydWN0IHJ0dmlhIHsKIAlfX2tlcm5lbF9zYV9mYW1pbHlfdAlydHZpYV9mYW1pbHk7 Ci0JX191OAkJCXJ0dmlhX2FkZHJbMF07CisJX191OAkJCXJ0dmlhX2FkZHJbXTsKIH07CiAKIC8q IFJUTV9DQUNIRUlORk8gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9zY3RwLmgg Yi9pbmNsdWRlL3VhcGkvbGludXgvc2N0cC5oCmluZGV4IGM0ZmYxZWJkOGJjYy4uZWQ3ZDRlY2Jm NTNkIDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvc2N0cC5oCisrKyBiL2luY2x1ZGUv dWFwaS9saW51eC9zY3RwLmgKQEAgLTM2NSw3ICszNjUsNyBAQCBzdHJ1Y3Qgc2N0cF9hc3NvY19j aGFuZ2UgewogCV9fdTE2IHNhY19vdXRib3VuZF9zdHJlYW1zOwogCV9fdTE2IHNhY19pbmJvdW5k X3N0cmVhbXM7CiAJc2N0cF9hc3NvY190IHNhY19hc3NvY19pZDsKLQlfX3U4IHNhY19pbmZvWzBd OworCV9fdTggc2FjX2luZm9bXTsKIH07CiAKIC8qCkBAIC00MzYsNyArNDM2LDcgQEAgc3RydWN0 IHNjdHBfcmVtb3RlX2Vycm9yIHsKIAlfX3UzMiBzcmVfbGVuZ3RoOwogCV9fYmUxNiBzcmVfZXJy b3I7CiAJc2N0cF9hc3NvY190IHNyZV9hc3NvY19pZDsKLQlfX3U4IHNyZV9kYXRhWzBdOworCV9f dTggc3JlX2RhdGFbXTsKIH07CiAKIApAQCAtNDUzLDcgKzQ1Myw3IEBAIHN0cnVjdCBzY3RwX3Nl bmRfZmFpbGVkIHsKIAlfX3UzMiBzc2ZfZXJyb3I7CiAJc3RydWN0IHNjdHBfc25kcmN2aW5mbyBz c2ZfaW5mbzsKIAlzY3RwX2Fzc29jX3Qgc3NmX2Fzc29jX2lkOwotCV9fdTggc3NmX2RhdGFbMF07 CisJX191OCBzc2ZfZGF0YVtdOwogfTsKIAogc3RydWN0IHNjdHBfc2VuZF9mYWlsZWRfZXZlbnQg ewpAQCAtNDYzLDcgKzQ2Myw3IEBAIHN0cnVjdCBzY3RwX3NlbmRfZmFpbGVkX2V2ZW50IHsKIAlf X3UzMiBzc2ZfZXJyb3I7CiAJc3RydWN0IHNjdHBfc25kaW5mbyBzc2ZlX2luZm87CiAJc2N0cF9h c3NvY190IHNzZl9hc3NvY19pZDsKLQlfX3U4IHNzZl9kYXRhWzBdOworCV9fdTggc3NmX2RhdGFb XTsKIH07CiAKIC8qCkBAIC0xMDI5LDcgKzEwMjksNyBAQCBzdHJ1Y3Qgc2N0cF9nZXRhZGRyc19v bGQgewogc3RydWN0IHNjdHBfZ2V0YWRkcnMgewogCXNjdHBfYXNzb2NfdAkJYXNzb2NfaWQ7IC8q aW5wdXQqLwogCV9fdTMyCQkJYWRkcl9udW07IC8qb3V0cHV0Ki8KLQlfX3U4CQkJYWRkcnNbMF07 IC8qb3V0cHV0LCB2YXJpYWJsZSBzaXplKi8KKwlfX3U4CQkJYWRkcnNbXTsgLypvdXRwdXQsIHZh cmlhYmxlIHNpemUqLwogfTsKIAogLyogQSBzb2NrZXQgdXNlciByZXF1ZXN0IG9idGFpbmVkIHZp YSBTQ1RQX0dFVF9BU1NPQ19TVEFUUyB0aGF0IHJldHJpZXZlcwpkaWZmIC0tZ2l0IGEvaW5jbHVk ZS91YXBpL2xpbnV4L3NlZzYuaCBiL2luY2x1ZGUvdWFwaS9saW51eC9zZWc2LmgKaW5kZXggMjg2 ZThkNmE4ZTk4Li4xM2JjYmM4YmJhMzIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC9z ZWc2LmgKKysrIGIvaW5jbHVkZS91YXBpL2xpbnV4L3NlZzYuaApAQCAtMzAsNyArMzAsNyBAQCBz dHJ1Y3QgaXB2Nl9zcl9oZHIgewogCV9fdTgJZmxhZ3M7CiAJX191MTYJdGFnOwogCi0Jc3RydWN0 IGluNl9hZGRyIHNlZ21lbnRzWzBdOworCXN0cnVjdCBpbjZfYWRkciBzZWdtZW50c1tdOwogfTsK IAogI2RlZmluZSBTUjZfRkxBRzFfUFJPVEVDVEVECSgxIDw8IDYpCmRpZmYgLS1naXQgYS9pbmNs dWRlL3VhcGkvbGludXgvc2VnNl9pcHR1bm5lbC5oIGIvaW5jbHVkZS91YXBpL2xpbnV4L3NlZzZf aXB0dW5uZWwuaAppbmRleCBlYjgxNWUwZDBhYzMuLmE3NDI5NDIxMTI5MCAxMDA2NDQKLS0tIGEv aW5jbHVkZS91YXBpL2xpbnV4L3NlZzZfaXB0dW5uZWwuaAorKysgYi9pbmNsdWRlL3VhcGkvbGlu dXgvc2VnNl9pcHR1bm5lbC5oCkBAIC0yNiw3ICsyNiw3IEBAIGVudW0gewogCiBzdHJ1Y3Qgc2Vn Nl9pcHR1bm5lbF9lbmNhcCB7CiAJaW50IG1vZGU7Ci0Jc3RydWN0IGlwdjZfc3JfaGRyIHNyaFsw XTsKKwlzdHJ1Y3QgaXB2Nl9zcl9oZHIgc3JoW107CiB9OwogCiAjZGVmaW5lIFNFRzZfSVBUVU5f RU5DQVBfU0laRSh4KSAoKHNpemVvZigqeCkpICsgKCgoeCktPnNyaC0+aGRybGVuICsgMSkgPDwg MykpCmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvbGludXgvc3RtLmggYi9pbmNsdWRlL3VhcGkv bGludXgvc3RtLmgKaW5kZXggN2JhYzMxOGI0NDQwLi5kZTM1NzljMmNmZjAgMTAwNjQ0Ci0tLSBh L2luY2x1ZGUvdWFwaS9saW51eC9zdG0uaAorKysgYi9pbmNsdWRlL3VhcGkvbGludXgvc3RtLmgK QEAgLTM2LDcgKzM2LDcgQEAgc3RydWN0IHN0cF9wb2xpY3lfaWQgewogCS8qIHBhZGRpbmcgKi8K IAlfX3UxNgkJX19yZXNlcnZlZF8wOwogCV9fdTMyCQlfX3Jlc2VydmVkXzE7Ci0JY2hhcgkJaWRb MF07CisJY2hhcgkJaWRbXTsKIH07CiAKICNkZWZpbmUgU1RQX1BPTElDWV9JRF9TRVQJX0lPV1Io JyUnLCAwLCBzdHJ1Y3Qgc3RwX3BvbGljeV9pZCkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9s aW51eC90YXJnZXRfY29yZV91c2VyLmggYi9pbmNsdWRlL3VhcGkvbGludXgvdGFyZ2V0X2NvcmVf dXNlci5oCmluZGV4IDI3YWNlNTEyYmFiZC4uZmJkOGNhNjdlMTA3IDEwMDY0NAotLS0gYS9pbmNs dWRlL3VhcGkvbGludXgvdGFyZ2V0X2NvcmVfdXNlci5oCisrKyBiL2luY2x1ZGUvdWFwaS9saW51 eC90YXJnZXRfY29yZV91c2VyLmgKQEAgLTE1Miw3ICsxNTIsNyBAQCBzdHJ1Y3QgdGNtdV90bXJf ZW50cnkgewogCV9fdTMyIGNtZF9jbnQ7CiAJX191NjQgX19wYWQzOwogCV9fdTY0IF9fcGFkNDsK LQlfX3UxNiBjbWRfaWRzWzBdOworCV9fdTE2IGNtZF9pZHNbXTsKIH0gX19wYWNrZWQ7CiAKICNk ZWZpbmUgVENNVV9PUF9BTElHTl9TSVpFIHNpemVvZihfX3U2NCkKZGlmZiAtLWdpdCBhL2luY2x1 ZGUvdWFwaS9saW51eC91c2IvYXVkaW8uaCBiL2luY2x1ZGUvdWFwaS9saW51eC91c2IvYXVkaW8u aAppbmRleCA3NmI3YzNmNmNkMGQuLmM5MTdjNTMwNzBkNSAxMDA2NDQKLS0tIGEvaW5jbHVkZS91 YXBpL2xpbnV4L3VzYi9hdWRpby5oCisrKyBiL2luY2x1ZGUvdWFwaS9saW51eC91c2IvYXVkaW8u aApAQCAtMzQxLDcgKzM0MSw3IEBAIHN0cnVjdCB1YWNfZmVhdHVyZV91bml0X2Rlc2NyaXB0b3Ig ewogCV9fdTggYlVuaXRJRDsKIAlfX3U4IGJTb3VyY2VJRDsKIAlfX3U4IGJDb250cm9sU2l6ZTsK LQlfX3U4IGJtYUNvbnRyb2xzWzBdOyAvKiB2YXJpYWJsZSBsZW5ndGggKi8KKwlfX3U4IGJtYUNv bnRyb2xzW107IC8qIHZhcmlhYmxlIGxlbmd0aCAqLwogfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQp KTsKIAogc3RhdGljIGlubGluZSBfX3U4IHVhY19mZWF0dXJlX3VuaXRfaUZlYXR1cmUoc3RydWN0 IHVhY19mZWF0dXJlX3VuaXRfZGVzY3JpcHRvciAqZGVzYykKZGlmZiAtLWdpdCBhL2luY2x1ZGUv dWFwaS9saW51eC91c2IvY2RjLmggYi9pbmNsdWRlL3VhcGkvbGludXgvdXNiL2NkYy5oCmluZGV4 IDZkNjE1NTA5NTllZi4uYWNmMzg1MmJiNjc2IDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvbGlu dXgvdXNiL2NkYy5oCisrKyBiL2luY2x1ZGUvdWFwaS9saW51eC91c2IvY2RjLmgKQEAgLTE3MSw3 ICsxNzEsNyBAQCBzdHJ1Y3QgdXNiX2NkY19tZGxtX2RldGFpbF9kZXNjIHsKIAogCS8qIHR5cGUg aXMgYXNzb2NpYXRlZCB3aXRoIG1kbG1fZGVzYy5iR1VJRCAqLwogCV9fdTgJYkd1aWREZXNjcmlw dG9yVHlwZTsKLQlfX3U4CWJEZXRhaWxEYXRhWzBdOworCV9fdTgJYkRldGFpbERhdGFbXTsKIH0g X19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpOwogCiAvKiAiT0JFWCBDb250cm9sIE1vZGVsIEZ1bmN0 aW9uYWwgRGVzY3JpcHRvciIgKi8KQEAgLTM3OSw3ICszNzksNyBAQCBzdHJ1Y3QgdXNiX2NkY19u Y21fbmRwMTYgewogCV9fbGUzMglkd1NpZ25hdHVyZTsKIAlfX2xlMTYJd0xlbmd0aDsKIAlfX2xl MTYJd05leHROZHBJbmRleDsKLQlzdHJ1Y3QJdXNiX2NkY19uY21fZHBlMTYgZHBlMTZbMF07CisJ c3RydWN0CXVzYl9jZGNfbmNtX2RwZTE2IGRwZTE2W107CiB9IF9fYXR0cmlidXRlX18gKChwYWNr ZWQpKTsKIAogLyogMzItYml0IE5DTSBEYXRhZ3JhbSBQb2ludGVyIEVudHJ5ICovCkBAIC0zOTUs NyArMzk1LDcgQEAgc3RydWN0IHVzYl9jZGNfbmNtX25kcDMyIHsKIAlfX2xlMTYJd1Jlc2VydmVk NjsKIAlfX2xlMzIJZHdOZXh0TmRwSW5kZXg7CiAJX19sZTMyCWR3UmVzZXJ2ZWQxMjsKLQlzdHJ1 Y3QJdXNiX2NkY19uY21fZHBlMzIgZHBlMzJbMF07CisJc3RydWN0CXVzYl9jZGNfbmNtX2RwZTMy IGRwZTMyW107CiB9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKTsKIAogLyogQ0RDIE5DTSBzdWJj bGFzcyAzLjIuMSBhbmQgMy4yLjIgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC91 c2IvY2g5LmggYi9pbmNsdWRlL3VhcGkvbGludXgvdXNiL2NoOS5oCmluZGV4IDE3Y2U1NjE5OGM5 YS4uMzFmY2ZhMDg0ZTYzIDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvdXNiL2NoOS5o CisrKyBiL2luY2x1ZGUvdWFwaS9saW51eC91c2IvY2g5LmgKQEAgLTgxOCw3ICs4MTgsNyBAQCBz dHJ1Y3QgdXNiX2tleV9kZXNjcmlwdG9yIHsKIAogCV9fdTggIHRUS0lEWzNdOwogCV9fdTggIGJS ZXNlcnZlZDsKLQlfX3U4ICBiS2V5RGF0YVswXTsKKwlfX3U4ICBiS2V5RGF0YVtdOwogfSBfX2F0 dHJpYnV0ZV9fKChwYWNrZWQpKTsKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KZGlmZiAtLWdpdCBh L2luY2x1ZGUvdWFwaS9saW51eC91c2IvcmF3X2dhZGdldC5oIGIvaW5jbHVkZS91YXBpL2xpbnV4 L3VzYi9yYXdfZ2FkZ2V0LmgKaW5kZXggMGJlNjg1MjcyZWIxLi5jN2QyMTk5MTM0ZDcgMTAwNjQ0 Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC91c2IvcmF3X2dhZGdldC5oCisrKyBiL2luY2x1ZGUv dWFwaS9saW51eC91c2IvcmF3X2dhZGdldC5oCkBAIC02MCw3ICs2MCw3IEBAIGVudW0gdXNiX3Jh d19ldmVudF90eXBlIHsKIHN0cnVjdCB1c2JfcmF3X2V2ZW50IHsKIAlfX3UzMgkJdHlwZTsKIAlf X3UzMgkJbGVuZ3RoOwotCV9fdTgJCWRhdGFbMF07CisJX191OAkJZGF0YVtdOwogfTsKIAogI2Rl ZmluZSBVU0JfUkFXX0lPX0ZMQUdTX1pFUk8JMHgwMDAxCkBAIC05MCw3ICs5MCw3IEBAIHN0cnVj dCB1c2JfcmF3X2VwX2lvIHsKIAlfX3UxNgkJZXA7CiAJX191MTYJCWZsYWdzOwogCV9fdTMyCQls ZW5ndGg7Ci0JX191OAkJZGF0YVswXTsKKwlfX3U4CQlkYXRhW107CiB9OwogCiAvKiBNYXhpbXVt IG51bWJlciBvZiBub24tY29udHJvbCBlbmRwb2ludHMgaW4gc3RydWN0IHVzYl9yYXdfZXBzX2lu Zm8uICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvbGludXgvdXNiZGV2aWNlX2ZzLmggYi9p bmNsdWRlL3VhcGkvbGludXgvdXNiZGV2aWNlX2ZzLmgKaW5kZXggY2Y1MjVjZGRlYjk0Li43NGE4 NGUwMjQyMmEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC91c2JkZXZpY2VfZnMuaAor KysgYi9pbmNsdWRlL3VhcGkvbGludXgvdXNiZGV2aWNlX2ZzLmgKQEAgLTEzMSw3ICsxMzEsNyBA QCBzdHJ1Y3QgdXNiZGV2ZnNfdXJiIHsKIAl1bnNpZ25lZCBpbnQgc2lnbnI7CS8qIHNpZ25hbCB0 byBiZSBzZW50IG9uIGNvbXBsZXRpb24sCiAJCQkJICBvciAwIGlmIG5vbmUgc2hvdWxkIGJlIHNl bnQuICovCiAJdm9pZCBfX3VzZXIgKnVzZXJjb250ZXh0OwotCXN0cnVjdCB1c2JkZXZmc19pc29f cGFja2V0X2Rlc2MgaXNvX2ZyYW1lX2Rlc2NbMF07CisJc3RydWN0IHVzYmRldmZzX2lzb19wYWNr ZXRfZGVzYyBpc29fZnJhbWVfZGVzY1tdOwogfTsKIAogLyogaW9jdGxzIGZvciB0YWxraW5nIGRp cmVjdGx5IHRvIGRyaXZlcnMgKi8KQEAgLTE3Niw3ICsxNzYsNyBAQCBzdHJ1Y3QgdXNiZGV2ZnNf ZGlzY29ubmVjdF9jbGFpbSB7CiBzdHJ1Y3QgdXNiZGV2ZnNfc3RyZWFtcyB7CiAJdW5zaWduZWQg aW50IG51bV9zdHJlYW1zOyAvKiBOb3QgdXNlZCBieSBVU0JERVZGU19GUkVFX1NUUkVBTVMgKi8K IAl1bnNpZ25lZCBpbnQgbnVtX2VwczsKLQl1bnNpZ25lZCBjaGFyIGVwc1swXTsKKwl1bnNpZ25l ZCBjaGFyIGVwc1tdOwogfTsKIAogLyoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC92 aG9zdF90eXBlcy5oIGIvaW5jbHVkZS91YXBpL2xpbnV4L3Zob3N0X3R5cGVzLmgKaW5kZXggNjM0 Y2VlNDg1YWJiLi4zOTEzMzFhMTA4NzkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC92 aG9zdF90eXBlcy5oCisrKyBiL2luY2x1ZGUvdWFwaS9saW51eC92aG9zdF90eXBlcy5oCkBAIC0x MDcsNyArMTA3LDcgQEAgc3RydWN0IHZob3N0X21lbW9yeV9yZWdpb24gewogc3RydWN0IHZob3N0 X21lbW9yeSB7CiAJX191MzIgbnJlZ2lvbnM7CiAJX191MzIgcGFkZGluZzsKLQlzdHJ1Y3Qgdmhv c3RfbWVtb3J5X3JlZ2lvbiByZWdpb25zWzBdOworCXN0cnVjdCB2aG9zdF9tZW1vcnlfcmVnaW9u IHJlZ2lvbnNbXTsKIH07CiAKIC8qIFZIT1NUX1NDU0kgc3BlY2lmaWMgZGVmaW5pdGlvbnMgKi8K QEAgLTEzNSw3ICsxMzUsNyBAQCBzdHJ1Y3Qgdmhvc3Rfc2NzaV90YXJnZXQgewogc3RydWN0IHZo b3N0X3ZkcGFfY29uZmlnIHsKIAlfX3UzMiBvZmY7CiAJX191MzIgbGVuOwotCV9fdTggYnVmWzBd OworCV9fdTggYnVmW107CiB9OwogCiAvKiB2aG9zdCB2ZHBhIElPVkEgcmFuZ2UKZGlmZiAtLWdp dCBhL2luY2x1ZGUvdWFwaS9saW51eC92aXJ0aW9fOXAuaCBiL2luY2x1ZGUvdWFwaS9saW51eC92 aXJ0aW9fOXAuaAppbmRleCA0NDEwNDc0MzIyNTguLjM3NGI2OGY4YWM2ZSAxMDA2NDQKLS0tIGEv aW5jbHVkZS91YXBpL2xpbnV4L3ZpcnRpb185cC5oCisrKyBiL2luY2x1ZGUvdWFwaS9saW51eC92 aXJ0aW9fOXAuaApAQCAtMzgsNyArMzgsNyBAQCBzdHJ1Y3QgdmlydGlvXzlwX2NvbmZpZyB7CiAJ LyogbGVuZ3RoIG9mIHRoZSB0YWcgbmFtZSAqLwogCV9fdmlydGlvMTYgdGFnX2xlbjsKIAkvKiBu b24tTlVMTCB0ZXJtaW5hdGVkIHRhZyBuYW1lICovCi0JX191OCB0YWdbMF07CisJX191OCB0YWdb XTsKIH0gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CiAKICNlbmRpZiAvKiBfTElOVVhfVklSVElP XzlQX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC94ZnJtLmggYi9pbmNsdWRl L3VhcGkvbGludXgveGZybS5oCmluZGV4IDY1ZTEzYTA5OWIxYS4uZTgxOTFlMGMzYjU2IDEwMDY0 NAotLS0gYS9pbmNsdWRlL3VhcGkvbGludXgveGZybS5oCisrKyBiL2luY2x1ZGUvdWFwaS9saW51 eC94ZnJtLmgKQEAgLTMzLDcgKzMzLDcgQEAgc3RydWN0IHhmcm1fc2VjX2N0eCB7CiAJX191OAlj dHhfYWxnOwogCV9fdTE2CWN0eF9sZW47CiAJX191MzIJY3R4X3NpZDsKLQljaGFyCWN0eF9zdHJb MF07CisJY2hhcgljdHhfc3RyW107CiB9OwogCiAvKiBTZWN1cml0eSBDb250ZXh0IERvbWFpbnMg b2YgSW50ZXJwcmV0YXRpb24gKi8KQEAgLTk2LDI3ICs5NiwyNyBAQCBzdHJ1Y3QgeGZybV9yZXBs YXlfc3RhdGVfZXNuIHsKIAlfX3UzMgkJb3NlcV9oaTsKIAlfX3UzMgkJc2VxX2hpOwogCV9fdTMy CQlyZXBsYXlfd2luZG93OwotCV9fdTMyCQlibXBbMF07CisJX191MzIJCWJtcFtdOwogfTsKIAog c3RydWN0IHhmcm1fYWxnbyB7CiAJY2hhcgkJYWxnX25hbWVbNjRdOwogCXVuc2lnbmVkIGludAlh bGdfa2V5X2xlbjsgICAgLyogaW4gYml0cyAqLwotCWNoYXIJCWFsZ19rZXlbMF07CisJY2hhcgkJ YWxnX2tleVtdOwogfTsKIAogc3RydWN0IHhmcm1fYWxnb19hdXRoIHsKIAljaGFyCQlhbGdfbmFt ZVs2NF07CiAJdW5zaWduZWQgaW50CWFsZ19rZXlfbGVuOyAgICAvKiBpbiBiaXRzICovCiAJdW5z aWduZWQgaW50CWFsZ190cnVuY19sZW47ICAvKiBpbiBiaXRzICovCi0JY2hhcgkJYWxnX2tleVsw XTsKKwljaGFyCQlhbGdfa2V5W107CiB9OwogCiBzdHJ1Y3QgeGZybV9hbGdvX2FlYWQgewogCWNo YXIJCWFsZ19uYW1lWzY0XTsKIAl1bnNpZ25lZCBpbnQJYWxnX2tleV9sZW47CS8qIGluIGJpdHMg Ki8KIAl1bnNpZ25lZCBpbnQJYWxnX2ljdl9sZW47CS8qIGluIGJpdHMgKi8KLQljaGFyCQlhbGdf a2V5WzBdOworCWNoYXIJCWFsZ19rZXlbXTsKIH07CiAKIHN0cnVjdCB4ZnJtX3N0YXRzIHsKZGlm ZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9yZG1hL2hmaS9oZmkxX3VzZXIuaCBiL2luY2x1ZGUvdWFw aS9yZG1hL2hmaS9oZmkxX3VzZXIuaAppbmRleCBkOTVlZjlhMmIwMzIuLjExMDZhN2M5MGIyOSAx MDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL3JkbWEvaGZpL2hmaTFfdXNlci5oCisrKyBiL2luY2x1 ZGUvdWFwaS9yZG1hL2hmaS9oZmkxX3VzZXIuaApAQCAtMTgwLDcgKzE4MCw3IEBAIHN0cnVjdCBo ZmkxX3NkbWFfY29tcF9lbnRyeSB7CiBzdHJ1Y3QgaGZpMV9zdGF0dXMgewogCV9fYWxpZ25lZF91 NjQgZGV2OyAgICAgIC8qIGRldmljZS9odyBzdGF0dXMgYml0cyAqLwogCV9fYWxpZ25lZF91NjQg cG9ydDsgICAgIC8qIHBvcnQgc3RhdGUgYW5kIHN0YXR1cyBiaXRzICovCi0JY2hhciBmcmVlemVt c2dbMF07CisJY2hhciBmcmVlemVtc2dbXTsKIH07CiAKIGVudW0gc2RtYV9yZXFfb3Bjb2RlIHsK ZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9yZG1hL2liX3VzZXJfdmVyYnMuaCBiL2luY2x1ZGUv dWFwaS9yZG1hL2liX3VzZXJfdmVyYnMuaAppbmRleCA3ZGQ5MDNkOTMyZTUuLjQzNjcyY2IxZmQ1 NyAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL3JkbWEvaWJfdXNlcl92ZXJicy5oCisrKyBiL2lu Y2x1ZGUvdWFwaS9yZG1hL2liX3VzZXJfdmVyYnMuaApAQCAtMTU4LDE4ICsxNTgsMTggQEAgc3Ry dWN0IGliX3V2ZXJic19leF9jbWRfaGRyIHsKIAogc3RydWN0IGliX3V2ZXJic19nZXRfY29udGV4 dCB7CiAJX19hbGlnbmVkX3U2NCByZXNwb25zZTsKLQlfX2FsaWduZWRfdTY0IGRyaXZlcl9kYXRh WzBdOworCV9fYWxpZ25lZF91NjQgZHJpdmVyX2RhdGFbXTsKIH07CiAKIHN0cnVjdCBpYl91dmVy YnNfZ2V0X2NvbnRleHRfcmVzcCB7CiAJX191MzIgYXN5bmNfZmQ7CiAJX191MzIgbnVtX2NvbXBf dmVjdG9yczsKLQlfX2FsaWduZWRfdTY0IGRyaXZlcl9kYXRhWzBdOworCV9fYWxpZ25lZF91NjQg ZHJpdmVyX2RhdGFbXTsKIH07CiAKIHN0cnVjdCBpYl91dmVyYnNfcXVlcnlfZGV2aWNlIHsKIAlf X2FsaWduZWRfdTY0IHJlc3BvbnNlOwotCV9fYWxpZ25lZF91NjQgZHJpdmVyX2RhdGFbMF07CisJ X19hbGlnbmVkX3U2NCBkcml2ZXJfZGF0YVtdOwogfTsKIAogc3RydWN0IGliX3V2ZXJic19xdWVy eV9kZXZpY2VfcmVzcCB7CkBAIC0yNzgsNyArMjc4LDcgQEAgc3RydWN0IGliX3V2ZXJic19xdWVy eV9wb3J0IHsKIAlfX2FsaWduZWRfdTY0IHJlc3BvbnNlOwogCV9fdTggIHBvcnRfbnVtOwogCV9f dTggIHJlc2VydmVkWzddOwotCV9fYWxpZ25lZF91NjQgZHJpdmVyX2RhdGFbMF07CisJX19hbGln bmVkX3U2NCBkcml2ZXJfZGF0YVtdOwogfTsKIAogc3RydWN0IGliX3V2ZXJic19xdWVyeV9wb3J0 X3Jlc3AgewpAQCAtMzA4LDEyICszMDgsMTIgQEAgc3RydWN0IGliX3V2ZXJic19xdWVyeV9wb3J0 X3Jlc3AgewogCiBzdHJ1Y3QgaWJfdXZlcmJzX2FsbG9jX3BkIHsKIAlfX2FsaWduZWRfdTY0IHJl c3BvbnNlOwotCV9fYWxpZ25lZF91NjQgZHJpdmVyX2RhdGFbMF07CisJX19hbGlnbmVkX3U2NCBk cml2ZXJfZGF0YVtdOwogfTsKIAogc3RydWN0IGliX3V2ZXJic19hbGxvY19wZF9yZXNwIHsKIAlf X3UzMiBwZF9oYW5kbGU7Ci0JX191MzIgZHJpdmVyX2RhdGFbMF07CisJX191MzIgZHJpdmVyX2Rh dGFbXTsKIH07CiAKIHN0cnVjdCBpYl91dmVyYnNfZGVhbGxvY19wZCB7CkBAIC0zMjQsMTIgKzMy NCwxMiBAQCBzdHJ1Y3QgaWJfdXZlcmJzX29wZW5feHJjZCB7CiAJX19hbGlnbmVkX3U2NCByZXNw b25zZTsKIAlfX3UzMiBmZDsKIAlfX3UzMiBvZmxhZ3M7Ci0JX19hbGlnbmVkX3U2NCBkcml2ZXJf ZGF0YVswXTsKKwlfX2FsaWduZWRfdTY0IGRyaXZlcl9kYXRhW107CiB9OwogCiBzdHJ1Y3QgaWJf dXZlcmJzX29wZW5feHJjZF9yZXNwIHsKIAlfX3UzMiB4cmNkX2hhbmRsZTsKLQlfX3UzMiBkcml2 ZXJfZGF0YVswXTsKKwlfX3UzMiBkcml2ZXJfZGF0YVtdOwogfTsKIAogc3RydWN0IGliX3V2ZXJi c19jbG9zZV94cmNkIHsKQEAgLTM0MywxNCArMzQzLDE0IEBAIHN0cnVjdCBpYl91dmVyYnNfcmVn X21yIHsKIAlfX2FsaWduZWRfdTY0IGhjYV92YTsKIAlfX3UzMiBwZF9oYW5kbGU7CiAJX191MzIg YWNjZXNzX2ZsYWdzOwotCV9fYWxpZ25lZF91NjQgZHJpdmVyX2RhdGFbMF07CisJX19hbGlnbmVk X3U2NCBkcml2ZXJfZGF0YVtdOwogfTsKIAogc3RydWN0IGliX3V2ZXJic19yZWdfbXJfcmVzcCB7 CiAJX191MzIgbXJfaGFuZGxlOwogCV9fdTMyIGxrZXk7CiAJX191MzIgcmtleTsKLQlfX3UzMiBk cml2ZXJfZGF0YVswXTsKKwlfX3UzMiBkcml2ZXJfZGF0YVtdOwogfTsKIAogc3RydWN0IGliX3V2 ZXJic19yZXJlZ19tciB7CkBAIC0zNjIsMTMgKzM2MiwxMyBAQCBzdHJ1Y3QgaWJfdXZlcmJzX3Jl cmVnX21yIHsKIAlfX2FsaWduZWRfdTY0IGhjYV92YTsKIAlfX3UzMiBwZF9oYW5kbGU7CiAJX191 MzIgYWNjZXNzX2ZsYWdzOwotCV9fYWxpZ25lZF91NjQgZHJpdmVyX2RhdGFbMF07CisJX19hbGln bmVkX3U2NCBkcml2ZXJfZGF0YVtdOwogfTsKIAogc3RydWN0IGliX3V2ZXJic19yZXJlZ19tcl9y ZXNwIHsKIAlfX3UzMiBsa2V5OwogCV9fdTMyIHJrZXk7Ci0JX19hbGlnbmVkX3U2NCBkcml2ZXJf ZGF0YVswXTsKKwlfX2FsaWduZWRfdTY0IGRyaXZlcl9kYXRhW107CiB9OwogCiBzdHJ1Y3QgaWJf dXZlcmJzX2RlcmVnX21yIHsKQEAgLTM4MCwxMyArMzgwLDEzIEBAIHN0cnVjdCBpYl91dmVyYnNf YWxsb2NfbXcgewogCV9fdTMyIHBkX2hhbmRsZTsKIAlfX3U4ICBtd190eXBlOwogCV9fdTggIHJl c2VydmVkWzNdOwotCV9fYWxpZ25lZF91NjQgZHJpdmVyX2RhdGFbMF07CisJX19hbGlnbmVkX3U2 NCBkcml2ZXJfZGF0YVtdOwogfTsKIAogc3RydWN0IGliX3V2ZXJic19hbGxvY19td19yZXNwIHsK IAlfX3UzMiBtd19oYW5kbGU7CiAJX191MzIgcmtleTsKLQlfX2FsaWduZWRfdTY0IGRyaXZlcl9k YXRhWzBdOworCV9fYWxpZ25lZF91NjQgZHJpdmVyX2RhdGFbXTsKIH07CiAKIHN0cnVjdCBpYl91 dmVyYnNfZGVhbGxvY19tdyB7CkBAIC00MDgsNyArNDA4LDcgQEAgc3RydWN0IGliX3V2ZXJic19j cmVhdGVfY3EgewogCV9fdTMyIGNvbXBfdmVjdG9yOwogCV9fczMyIGNvbXBfY2hhbm5lbDsKIAlf X3UzMiByZXNlcnZlZDsKLQlfX2FsaWduZWRfdTY0IGRyaXZlcl9kYXRhWzBdOworCV9fYWxpZ25l ZF91NjQgZHJpdmVyX2RhdGFbXTsKIH07CiAKIGVudW0gaWJfdXZlcmJzX2V4X2NyZWF0ZV9jcV9m bGFncyB7CkBAIC00NDIsMTMgKzQ0MiwxMyBAQCBzdHJ1Y3QgaWJfdXZlcmJzX3Jlc2l6ZV9jcSB7 CiAJX19hbGlnbmVkX3U2NCByZXNwb25zZTsKIAlfX3UzMiBjcV9oYW5kbGU7CiAJX191MzIgY3Fl OwotCV9fYWxpZ25lZF91NjQgZHJpdmVyX2RhdGFbMF07CisJX19hbGlnbmVkX3U2NCBkcml2ZXJf ZGF0YVtdOwogfTsKIAogc3RydWN0IGliX3V2ZXJic19yZXNpemVfY3FfcmVzcCB7CiAJX191MzIg Y3FlOwogCV9fdTMyIHJlc2VydmVkOwotCV9fYWxpZ25lZF91NjQgZHJpdmVyX2RhdGFbMF07CisJ X19hbGlnbmVkX3U2NCBkcml2ZXJfZGF0YVtdOwogfTsKIAogc3RydWN0IGliX3V2ZXJic19wb2xs X2NxIHsKQEAgLTQ5Miw3ICs0OTIsNyBAQCBzdHJ1Y3QgaWJfdXZlcmJzX3djIHsKIHN0cnVjdCBp Yl91dmVyYnNfcG9sbF9jcV9yZXNwIHsKIAlfX3UzMiBjb3VudDsKIAlfX3UzMiByZXNlcnZlZDsK LQlzdHJ1Y3QgaWJfdXZlcmJzX3djIHdjWzBdOworCXN0cnVjdCBpYl91dmVyYnNfd2Mgd2NbXTsK IH07CiAKIHN0cnVjdCBpYl91dmVyYnNfcmVxX25vdGlmeV9jcSB7CkBAIC01ODUsNyArNTg1LDcg QEAgc3RydWN0IGliX3V2ZXJic19jcmVhdGVfcXAgewogCV9fdTggIHFwX3R5cGU7CiAJX191OCAg aXNfc3JxOwogCV9fdTggIHJlc2VydmVkOwotCV9fYWxpZ25lZF91NjQgZHJpdmVyX2RhdGFbMF07 CisJX19hbGlnbmVkX3U2NCBkcml2ZXJfZGF0YVtdOwogfTsKIAogZW51bSBpYl91dmVyYnNfY3Jl YXRlX3FwX21hc2sgewpAQCAtNjI0LDcgKzYyNCw3IEBAIHN0cnVjdCBpYl91dmVyYnNfb3Blbl9x cCB7CiAJX191MzIgcXBuOwogCV9fdTggIHFwX3R5cGU7CiAJX191OCAgcmVzZXJ2ZWRbN107Ci0J X19hbGlnbmVkX3U2NCBkcml2ZXJfZGF0YVswXTsKKwlfX2FsaWduZWRfdTY0IGRyaXZlcl9kYXRh W107CiB9OwogCiAvKiBhbHNvIHVzZWQgZm9yIG9wZW4gcmVzcG9uc2UgKi8KQEAgLTY2OSw3ICs2 NjksNyBAQCBzdHJ1Y3QgaWJfdXZlcmJzX3F1ZXJ5X3FwIHsKIAlfX2FsaWduZWRfdTY0IHJlc3Bv bnNlOwogCV9fdTMyIHFwX2hhbmRsZTsKIAlfX3UzMiBhdHRyX21hc2s7Ci0JX19hbGlnbmVkX3U2 NCBkcml2ZXJfZGF0YVswXTsKKwlfX2FsaWduZWRfdTY0IGRyaXZlcl9kYXRhW107CiB9OwogCiBz dHJ1Y3QgaWJfdXZlcmJzX3F1ZXJ5X3FwX3Jlc3AgewpAQCAtNzAzLDcgKzcwMyw3IEBAIHN0cnVj dCBpYl91dmVyYnNfcXVlcnlfcXBfcmVzcCB7CiAJX191OCAgYWx0X3RpbWVvdXQ7CiAJX191OCAg c3Ffc2lnX2FsbDsKIAlfX3U4ICByZXNlcnZlZFs1XTsKLQlfX2FsaWduZWRfdTY0IGRyaXZlcl9k YXRhWzBdOworCV9fYWxpZ25lZF91NjQgZHJpdmVyX2RhdGFbXTsKIH07CiAKIHN0cnVjdCBpYl91 dmVyYnNfbW9kaWZ5X3FwIHsKQEAgLTgyNCw3ICs4MjQsNyBAQCBzdHJ1Y3QgaWJfdXZlcmJzX3Bv c3Rfc2VuZCB7CiAJX191MzIgd3JfY291bnQ7CiAJX191MzIgc2dlX2NvdW50OwogCV9fdTMyIHdx ZV9zaXplOwotCXN0cnVjdCBpYl91dmVyYnNfc2VuZF93ciBzZW5kX3dyWzBdOworCXN0cnVjdCBp Yl91dmVyYnNfc2VuZF93ciBzZW5kX3dyW107CiB9OwogCiBzdHJ1Y3QgaWJfdXZlcmJzX3Bvc3Rf c2VuZF9yZXNwIHsKQEAgLTg0Myw3ICs4NDMsNyBAQCBzdHJ1Y3QgaWJfdXZlcmJzX3Bvc3RfcmVj diB7CiAJX191MzIgd3JfY291bnQ7CiAJX191MzIgc2dlX2NvdW50OwogCV9fdTMyIHdxZV9zaXpl OwotCXN0cnVjdCBpYl91dmVyYnNfcmVjdl93ciByZWN2X3dyWzBdOworCXN0cnVjdCBpYl91dmVy YnNfcmVjdl93ciByZWN2X3dyW107CiB9OwogCiBzdHJ1Y3QgaWJfdXZlcmJzX3Bvc3RfcmVjdl9y ZXNwIHsKQEAgLTg1Niw3ICs4NTYsNyBAQCBzdHJ1Y3QgaWJfdXZlcmJzX3Bvc3Rfc3JxX3JlY3Yg ewogCV9fdTMyIHdyX2NvdW50OwogCV9fdTMyIHNnZV9jb3VudDsKIAlfX3UzMiB3cWVfc2l6ZTsK LQlzdHJ1Y3QgaWJfdXZlcmJzX3JlY3Zfd3IgcmVjdlswXTsKKwlzdHJ1Y3QgaWJfdXZlcmJzX3Jl Y3Zfd3IgcmVjdltdOwogfTsKIAogc3RydWN0IGliX3V2ZXJic19wb3N0X3NycV9yZWN2X3Jlc3Ag ewpAQCAtODY5LDEyICs4NjksMTIgQEAgc3RydWN0IGliX3V2ZXJic19jcmVhdGVfYWggewogCV9f dTMyIHBkX2hhbmRsZTsKIAlfX3UzMiByZXNlcnZlZDsKIAlzdHJ1Y3QgaWJfdXZlcmJzX2FoX2F0 dHIgYXR0cjsKLQlfX2FsaWduZWRfdTY0IGRyaXZlcl9kYXRhWzBdOworCV9fYWxpZ25lZF91NjQg ZHJpdmVyX2RhdGFbXTsKIH07CiAKIHN0cnVjdCBpYl91dmVyYnNfY3JlYXRlX2FoX3Jlc3Agewog CV9fdTMyIGFoX2hhbmRsZTsKLQlfX3UzMiBkcml2ZXJfZGF0YVswXTsKKwlfX3UzMiBkcml2ZXJf ZGF0YVtdOwogfTsKIAogc3RydWN0IGliX3V2ZXJic19kZXN0cm95X2FoIHsKQEAgLTg4Niw3ICs4 ODYsNyBAQCBzdHJ1Y3QgaWJfdXZlcmJzX2F0dGFjaF9tY2FzdCB7CiAJX191MzIgcXBfaGFuZGxl OwogCV9fdTE2IG1saWQ7CiAJX191MTYgcmVzZXJ2ZWQ7Ci0JX19hbGlnbmVkX3U2NCBkcml2ZXJf ZGF0YVswXTsKKwlfX2FsaWduZWRfdTY0IGRyaXZlcl9kYXRhW107CiB9OwogCiBzdHJ1Y3QgaWJf dXZlcmJzX2RldGFjaF9tY2FzdCB7CkBAIC04OTQsNyArODk0LDcgQEAgc3RydWN0IGliX3V2ZXJi c19kZXRhY2hfbWNhc3QgewogCV9fdTMyIHFwX2hhbmRsZTsKIAlfX3UxNiBtbGlkOwogCV9fdTE2 IHJlc2VydmVkOwotCV9fYWxpZ25lZF91NjQgZHJpdmVyX2RhdGFbMF07CisJX19hbGlnbmVkX3U2 NCBkcml2ZXJfZGF0YVtdOwogfTsKIAogc3RydWN0IGliX3V2ZXJic19mbG93X3NwZWNfaGRyIHsK QEAgLTExMzUsNyArMTEzNSw3IEBAIHN0cnVjdCBpYl91dmVyYnNfZmxvd19hdHRyIHsKIAkgKiBz dHJ1Y3QgaWJfZmxvd19zcGVjX3h4eAogCSAqIHN0cnVjdCBpYl9mbG93X3NwZWNfeXl5CiAJICov Ci0Jc3RydWN0IGliX3V2ZXJic19mbG93X3NwZWNfaGRyIGZsb3dfc3BlY3NbMF07CisJc3RydWN0 IGliX3V2ZXJic19mbG93X3NwZWNfaGRyIGZsb3dfc3BlY3NbXTsKIH07CiAKIHN0cnVjdCBpYl91 dmVyYnNfY3JlYXRlX2Zsb3cgIHsKQEAgLTExNjEsNyArMTE2MSw3IEBAIHN0cnVjdCBpYl91dmVy YnNfY3JlYXRlX3NycSB7CiAJX191MzIgbWF4X3dyOwogCV9fdTMyIG1heF9zZ2U7CiAJX191MzIg c3JxX2xpbWl0OwotCV9fYWxpZ25lZF91NjQgZHJpdmVyX2RhdGFbMF07CisJX19hbGlnbmVkX3U2 NCBkcml2ZXJfZGF0YVtdOwogfTsKIAogc3RydWN0IGliX3V2ZXJic19jcmVhdGVfeHNycSB7CkBA IC0xMTc1LDcgKzExNzUsNyBAQCBzdHJ1Y3QgaWJfdXZlcmJzX2NyZWF0ZV94c3JxIHsKIAlfX3Uz MiBtYXhfbnVtX3RhZ3M7CiAJX191MzIgeHJjZF9oYW5kbGU7CiAJX191MzIgY3FfaGFuZGxlOwot CV9fYWxpZ25lZF91NjQgZHJpdmVyX2RhdGFbMF07CisJX19hbGlnbmVkX3U2NCBkcml2ZXJfZGF0 YVtdOwogfTsKIAogc3RydWN0IGliX3V2ZXJic19jcmVhdGVfc3JxX3Jlc3AgewpAQCAtMTE4Myw3 ICsxMTgzLDcgQEAgc3RydWN0IGliX3V2ZXJic19jcmVhdGVfc3JxX3Jlc3AgewogCV9fdTMyIG1h eF93cjsKIAlfX3UzMiBtYXhfc2dlOwogCV9fdTMyIHNycW47Ci0JX191MzIgZHJpdmVyX2RhdGFb MF07CisJX191MzIgZHJpdmVyX2RhdGFbXTsKIH07CiAKIHN0cnVjdCBpYl91dmVyYnNfbW9kaWZ5 X3NycSB7CkBAIC0xMTkxLDE0ICsxMTkxLDE0IEBAIHN0cnVjdCBpYl91dmVyYnNfbW9kaWZ5X3Ny cSB7CiAJX191MzIgYXR0cl9tYXNrOwogCV9fdTMyIG1heF93cjsKIAlfX3UzMiBzcnFfbGltaXQ7 Ci0JX19hbGlnbmVkX3U2NCBkcml2ZXJfZGF0YVswXTsKKwlfX2FsaWduZWRfdTY0IGRyaXZlcl9k YXRhW107CiB9OwogCiBzdHJ1Y3QgaWJfdXZlcmJzX3F1ZXJ5X3NycSB7CiAJX19hbGlnbmVkX3U2 NCByZXNwb25zZTsKIAlfX3UzMiBzcnFfaGFuZGxlOwogCV9fdTMyIHJlc2VydmVkOwotCV9fYWxp Z25lZF91NjQgZHJpdmVyX2RhdGFbMF07CisJX19hbGlnbmVkX3U2NCBkcml2ZXJfZGF0YVtdOwog fTsKIAogc3RydWN0IGliX3V2ZXJic19xdWVyeV9zcnFfcmVzcCB7CkBAIC0xMjY5LDcgKzEyNjks NyBAQCBzdHJ1Y3QgaWJfdXZlcmJzX2V4X2NyZWF0ZV9yd3FfaW5kX3RhYmxlICB7CiAJICogd3Ff aGFuZGxlMQogCSAqIHdxX2hhbmRsZTIKIAkgKi8KLQlfX3UzMiB3cV9oYW5kbGVzWzBdOworCV9f dTMyIHdxX2hhbmRsZXNbXTsKIH07CiAKIHN0cnVjdCBpYl91dmVyYnNfZXhfY3JlYXRlX3J3cV9p bmRfdGFibGVfcmVzcCB7CmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvcmRtYS9yZG1hX3VzZXJf Y20uaCBiL2luY2x1ZGUvdWFwaS9yZG1hL3JkbWFfdXNlcl9jbS5oCmluZGV4IGVkNWE1MTQzMDVj MS4uN2NlYTAzNTgxZjc5IDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvcmRtYS9yZG1hX3VzZXJf Y20uaAorKysgYi9pbmNsdWRlL3VhcGkvcmRtYS9yZG1hX3VzZXJfY20uaApAQCAtMTg0LDcgKzE4 NCw3IEBAIHN0cnVjdCByZG1hX3VjbV9xdWVyeV9hZGRyX3Jlc3Agewogc3RydWN0IHJkbWFfdWNt X3F1ZXJ5X3BhdGhfcmVzcCB7CiAJX191MzIgbnVtX3BhdGhzOwogCV9fdTMyIHJlc2VydmVkOwot CXN0cnVjdCBpYl9wYXRoX3JlY19kYXRhIHBhdGhfZGF0YVswXTsKKwlzdHJ1Y3QgaWJfcGF0aF9y ZWNfZGF0YSBwYXRoX2RhdGFbXTsKIH07CiAKIHN0cnVjdCByZG1hX3VjbV9jb25uX3BhcmFtIHsK ZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9yZG1hL3JkbWFfdXNlcl9pb2N0bF9jbWRzLmggYi9p bmNsdWRlL3VhcGkvcmRtYS9yZG1hX3VzZXJfaW9jdGxfY21kcy5oCmluZGV4IDM4YWI3YWNjYjdi ZS4uYWIxYWVmMTdmZWIxIDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvcmRtYS9yZG1hX3VzZXJf aW9jdGxfY21kcy5oCisrKyBiL2luY2x1ZGUvdWFwaS9yZG1hL3JkbWFfdXNlcl9pb2N0bF9jbWRz LmgKQEAgLTgxLDcgKzgxLDcgQEAgc3RydWN0IGliX3V2ZXJic19pb2N0bF9oZHIgewogCV9fYWxp Z25lZF91NjQgcmVzZXJ2ZWQxOwogCV9fdTMyIGRyaXZlcl9pZDsKIAlfX3UzMiByZXNlcnZlZDI7 Ci0Jc3RydWN0IGliX3V2ZXJic19hdHRyICBhdHRyc1swXTsKKwlzdHJ1Y3QgaWJfdXZlcmJzX2F0 dHIgIGF0dHJzW107CiB9OwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9zY3Np L2ZjL2ZjX2Vscy5oIGIvaW5jbHVkZS91YXBpL3Njc2kvZmMvZmNfZWxzLmgKaW5kZXggYzk4MTJj NWMyZmM0Li4xNjc4MmMzNjBkZTMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9zY3NpL2ZjL2Zj X2Vscy5oCisrKyBiL2luY2x1ZGUvdWFwaS9zY3NpL2ZjL2ZjX2Vscy5oCkBAIC0yNjQsNyArMjY0 LDcgQEAgc3RydWN0IGZjX3Rsdl9kZXNjIHsKIAkJCQkJICogU2l6ZSBvZiBkZXNjcmlwdG9yIGV4 Y2x1ZGluZwogCQkJCQkgKiBkZXNjX3RhZyBhbmQgZGVzY19sZW4gZmllbGRzLgogCQkJCQkgKi8K LQlfX3U4CQlkZXNjX3ZhbHVlWzBdOyAgLyogRGVzY3JpcHRvciBWYWx1ZSAqLworCV9fdTgJCWRl c2NfdmFsdWVbXTsgIC8qIERlc2NyaXB0b3IgVmFsdWUgKi8KIH07CiAKIC8qIERlc2NyaXB0b3Ig dGFnIGFuZCBsZW4gZmllbGRzIGFyZSBjb25zaWRlcmVkIHRoZSBtYW5kYXRvcnkgaGVhZGVyCkBA IC0xMDI3LDcgKzEwMjcsNyBAQCBzdHJ1Y3QgZmNfZm5fbGlfZGVzYyB7CiAJCQkJCSAqIHRocmVz aG9sZCB0byBjYWF1c2UgdGhlIExJIGV2ZW50CiAJCQkJCSAqLwogCV9fYmUzMgkJcG5hbWVfY291 bnQ7CS8qIG51bWJlciBvZiBwb3J0bmFtZV9saXN0IGVsZW1lbnRzICovCi0JX19iZTY0CQlwbmFt ZV9saXN0WzBdOwkvKiBsaXN0IG9mIE5fUG9ydF9OYW1lcyBhY2Nlc3NpYmxlCisJX19iZTY0CQlw bmFtZV9saXN0W107CS8qIGxpc3Qgb2YgTl9Qb3J0X05hbWVzIGFjY2Vzc2libGUKIAkJCQkJICog dGhyb3VnaCB0aGUgYXR0YWNoZWQgcG9ydAogCQkJCQkgKi8KIH07CkBAIC0xMDY5LDcgKzEwNjks NyBAQCBzdHJ1Y3QgZmNfZm5fcGVlcl9jb25nbl9kZXNjIHsKIAkJCQkJICogY29uZ2VzdGlvbiBl dmVudAogCQkJCQkgKi8KIAlfX2JlMzIJCXBuYW1lX2NvdW50OwkvKiBudW1iZXIgb2YgcG9ydG5h bWVfbGlzdCBlbGVtZW50cyAqLwotCV9fYmU2NAkJcG5hbWVfbGlzdFswXTsJLyogbGlzdCBvZiBO X1BvcnRfTmFtZXMgYWNjZXNzaWJsZQorCV9fYmU2NAkJcG5hbWVfbGlzdFtdOwkvKiBsaXN0IG9m IE5fUG9ydF9OYW1lcyBhY2Nlc3NpYmxlCiAJCQkJCSAqIHRocm91Z2ggdGhlIGF0dGFjaGVkIHBv cnQKIAkJCQkJICovCiB9OwpAQCAtMTEwNCw3ICsxMTA0LDcgQEAgc3RydWN0IGZjX2Vsc19mcGlu IHsKIAkJCQkJICogU2l6ZSBvZiBFTFMgZXhjbHVkaW5nIGZwaW5fY21kLAogCQkJCQkgKiBmcGlu X3plcm8gYW5kIGRlc2NfbGVuIGZpZWxkcy4KIAkJCQkJICovCi0Jc3RydWN0IGZjX3Rsdl9kZXNj CWZwaW5fZGVzY1swXTsJLyogRGVzY3JpcHRvciBsaXN0ICovCisJc3RydWN0IGZjX3Rsdl9kZXNj CWZwaW5fZGVzY1tdOwkvKiBEZXNjcmlwdG9yIGxpc3QgKi8KIH07CiAKIC8qIERpYWdub3N0aWMg RnVuY3Rpb24gRGVzY3JpcHRvciAtIEZQSU4gUmVnaXN0cmF0aW9uICovCkBAIC0xMTE1LDcgKzEx MTUsNyBAQCBzdHJ1Y3QgZmNfZGZfZGVzY19mcGluX3JlZyB7CiAJCQkJCSAqIGRlc2NfdGFnIGFu ZCBkZXNjX2xlbiBmaWVsZHMuCiAJCQkJCSAqLwogCV9fYmUzMgkJY291bnQ7CQkvKiBOdW1iZXIg b2YgZGVzY190YWdzIGVsZW1lbnRzICovCi0JX19iZTMyCQlkZXNjX3RhZ3NbMF07CS8qIEFycmF5 IG9mIERlc2NyaXB0b3IgVGFncy4KKwlfX2JlMzIJCWRlc2NfdGFnc1tdOwkvKiBBcnJheSBvZiBE ZXNjcmlwdG9yIFRhZ3MuCiAJCQkJCSAqIEVhY2ggdGFnIGluZGljYXRlcyBhIGZ1bmN0aW9uCiAJ CQkJCSAqIHN1cHBvcnRlZCBieSB0aGUgTl9Qb3J0IChyZXF1ZXN0KQogCQkJCQkgKiBvciBieSB0 aGUgIE5fUG9ydCBhbmQgRmFicmljCkBAIC0xMTM1LDcgKzExMzUsNyBAQCBzdHJ1Y3QgZmNfZWxz X3JkZiB7CiAJCQkJCSAqIFNpemUgb2YgRUxTIGV4Y2x1ZGluZyBmcGluX2NtZCwKIAkJCQkJICog ZnBpbl96ZXJvIGFuZCBkZXNjX2xlbiBmaWVsZHMuCiAJCQkJCSAqLwotCXN0cnVjdCBmY190bHZf ZGVzYwlkZXNjWzBdOwkvKiBEZXNjcmlwdG9yIGxpc3QgKi8KKwlzdHJ1Y3QgZmNfdGx2X2Rlc2MJ ZGVzY1tdOwkvKiBEZXNjcmlwdG9yIGxpc3QgKi8KIH07CiAKIC8qCkBAIC0xMTQ4LDcgKzExNDgs NyBAQCBzdHJ1Y3QgZmNfZWxzX3JkZl9yZXNwIHsKIAkJCQkJCSAqIGFuZCBkZXNjX2xpc3RfbGVu IGZpZWxkcy4KIAkJCQkJCSAqLwogCXN0cnVjdCBmY19lbHNfbHNyaV9kZXNjCWxzcmk7Ci0Jc3Ry dWN0IGZjX3Rsdl9kZXNjCWRlc2NbMF07CS8qIFN1cHBvcnRlZCBEZXNjcmlwdG9yIGxpc3QgKi8K KwlzdHJ1Y3QgZmNfdGx2X2Rlc2MJZGVzY1tdOwkvKiBTdXBwb3J0ZWQgRGVzY3JpcHRvciBsaXN0 ICovCiB9OwogCiAKQEAgLTEyMzEsNyArMTIzMSw3IEBAIHN0cnVjdCBmY19lbHNfZWRjIHsKIAkJ CQkJICogU2l6ZSBvZiBFTFMgZXhjbHVkaW5nIGVkY19jbWQsCiAJCQkJCSAqIGVkY196ZXJvIGFu ZCBkZXNjX2xlbiBmaWVsZHMuCiAJCQkJCSAqLwotCXN0cnVjdCBmY190bHZfZGVzYwlkZXNjWzBd OworCXN0cnVjdCBmY190bHZfZGVzYwlkZXNjW107CiAJCQkJCS8qIERpYWdub3N0aWMgRGVzY3Jp cHRvciBsaXN0ICovCiB9OwogCkBAIC0xMjQ1LDcgKzEyNDUsNyBAQCBzdHJ1Y3QgZmNfZWxzX2Vk Y19yZXNwIHsKIAkJCQkJCSAqIGFuZCBkZXNjX2xpc3RfbGVuIGZpZWxkcy4KIAkJCQkJCSAqLwog CXN0cnVjdCBmY19lbHNfbHNyaV9kZXNjCWxzcmk7Ci0Jc3RydWN0IGZjX3Rsdl9kZXNjCWRlc2Nb MF07CisJc3RydWN0IGZjX3Rsdl9kZXNjCWRlc2NbXTsKIAkJCQkgICAgLyogU3VwcG9ydGVkIERp YWdub3N0aWMgRGVzY3JpcHRvciBsaXN0ICovCiB9OwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL3Vh cGkvc2NzaS9zY3NpX2JzZ19mYy5oIGIvaW5jbHVkZS91YXBpL3Njc2kvc2NzaV9ic2dfZmMuaApp bmRleCAzYWU2NWU5MzIzNWMuLjdmNTkzMDgwMWY3MiAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBp L3Njc2kvc2NzaV9ic2dfZmMuaAorKysgYi9pbmNsdWRlL3VhcGkvc2NzaS9zY3NpX2JzZ19mYy5o CkBAIC0yMDksNyArMjA5LDcgQEAgc3RydWN0IGZjX2JzZ19ob3N0X3ZlbmRvciB7CiAJX191NjQg dmVuZG9yX2lkOwogCiAJLyogc3RhcnQgb2YgdmVuZG9yIGNvbW1hbmQgYXJlYSAqLwotCV9fdTMy IHZlbmRvcl9jbWRbMF07CisJX191MzIgdmVuZG9yX2NtZFtdOwogfTsKIAogLyogUmVzcG9uc2U6 CmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvc291bmQvYXNvdW5kLmggYi9pbmNsdWRlL3VhcGkv c291bmQvYXNvdW5kLmgKaW5kZXggMmQzZTVkZjM5YTU5Li4zOTc0YTJhOTExY2MgMTAwNjQ0Ci0t LSBhL2luY2x1ZGUvdWFwaS9zb3VuZC9hc291bmQuaAorKysgYi9pbmNsdWRlL3VhcGkvc291bmQv YXNvdW5kLmgKQEAgLTExMDYsNyArMTEwNiw3IEBAIHN0cnVjdCBzbmRfY3RsX2VsZW1fdmFsdWUg ewogc3RydWN0IHNuZF9jdGxfdGx2IHsKIAl1bnNpZ25lZCBpbnQgbnVtaWQ7CS8qIGNvbnRyb2wg ZWxlbWVudCBudW1lcmljIGlkZW50aWZpY2F0aW9uICovCiAJdW5zaWduZWQgaW50IGxlbmd0aDsJ LyogaW4gYnl0ZXMgYWxpZ25lZCB0byA0ICovCi0JdW5zaWduZWQgaW50IHRsdlswXTsJLyogZmly c3QgVExWICovCisJdW5zaWduZWQgaW50IHRsdltdOwkvKiBmaXJzdCBUTFYgKi8KIH07CiAKICNk ZWZpbmUgU05EUlZfQ1RMX0lPQ1RMX1BWRVJTSU9OCV9JT1IoJ1UnLCAweDAwLCBpbnQpCmRpZmYg LS1naXQgYS9pbmNsdWRlL3VhcGkvc291bmQvZmlyZXdpcmUuaCBiL2luY2x1ZGUvdWFwaS9zb3Vu ZC9maXJld2lyZS5oCmluZGV4IDM5Y2Y2ZWI3NTk0MC4uMzUzMmFjNzA0NmQ3IDEwMDY0NAotLS0g YS9pbmNsdWRlL3VhcGkvc291bmQvZmlyZXdpcmUuaAorKysgYi9pbmNsdWRlL3VhcGkvc291bmQv ZmlyZXdpcmUuaApAQCAtMzgsMTEgKzM4LDExIEBAIHN0cnVjdCBzbmRfZWZ3X3RyYW5zYWN0aW9u IHsKIAlfX2JlMzIgY2F0ZWdvcnk7CiAJX19iZTMyIGNvbW1hbmQ7CiAJX19iZTMyIHN0YXR1czsK LQlfX2JlMzIgcGFyYW1zWzBdOworCV9fYmUzMiBwYXJhbXNbXTsKIH07CiBzdHJ1Y3Qgc25kX2Zp cmV3aXJlX2V2ZW50X2Vmd19yZXNwb25zZSB7CiAJdW5zaWduZWQgaW50IHR5cGU7Ci0JX19iZTMy IHJlc3BvbnNlWzBdOwkvKiBzb21lIHJlc3BvbnNlcyAqLworCV9fYmUzMiByZXNwb25zZVtdOwkv KiBzb21lIHJlc3BvbnNlcyAqLwogfTsKIAogc3RydWN0IHNuZF9maXJld2lyZV9ldmVudF9kaWdp MDB4X21lc3NhZ2UgewpAQCAtNjMsNyArNjMsNyBAQCBzdHJ1Y3Qgc25kX2ZpcmV3aXJlX3Rhc2Nh bV9jaGFuZ2UgewogCiBzdHJ1Y3Qgc25kX2ZpcmV3aXJlX2V2ZW50X3Rhc2NhbV9jb250cm9sIHsK IAl1bnNpZ25lZCBpbnQgdHlwZTsKLQlzdHJ1Y3Qgc25kX2ZpcmV3aXJlX3Rhc2NhbV9jaGFuZ2Ug Y2hhbmdlc1swXTsKKwlzdHJ1Y3Qgc25kX2ZpcmV3aXJlX3Rhc2NhbV9jaGFuZ2UgY2hhbmdlc1td OwogfTsKIAogc3RydWN0IHNuZF9maXJld2lyZV9ldmVudF9tb3R1X3JlZ2lzdGVyX2RzcF9jaGFu Z2UgewpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL3NvdW5kL3NrbC10cGxnLWludGVyZmFjZS5o IGIvaW5jbHVkZS91YXBpL3NvdW5kL3NrbC10cGxnLWludGVyZmFjZS5oCmluZGV4IGE5M2MwZGVj ZmRkNS4uZjI5ODk5YjE3OWE2IDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvc291bmQvc2tsLXRw bGctaW50ZXJmYWNlLmgKKysrIGIvaW5jbHVkZS91YXBpL3NvdW5kL3NrbC10cGxnLWludGVyZmFj ZS5oCkBAIC0xNTEsNyArMTUxLDcgQEAgc3RydWN0IHNrbF9kZndfYWxnb19kYXRhIHsKIAlfX3Uz MiByc3ZkOjMwOwogCV9fdTMyIHBhcmFtX2lkOwogCV9fdTMyIG1heDsKLQljaGFyIHBhcmFtc1sw XTsKKwljaGFyIHBhcmFtc1tdOwogfSBfX3BhY2tlZDsKIAogZW51bSBza2xfdGtuX2RpciB7CmRp ZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvc291bmQvc29mL2hlYWRlci5oIGIvaW5jbHVkZS91YXBp L3NvdW5kL3NvZi9oZWFkZXIuaAppbmRleCA1ZjQ1MThlN2E5NzIuLmRiZjEzNzUxNjUyMiAxMDA2 NDQKLS0tIGEvaW5jbHVkZS91YXBpL3NvdW5kL3NvZi9oZWFkZXIuaAorKysgYi9pbmNsdWRlL3Vh cGkvc291bmQvc29mL2hlYWRlci5oCkBAIC0yMyw3ICsyMyw3IEBAIHN0cnVjdCBzb2ZfYWJpX2hk ciB7CiAJX191MzIgc2l6ZTsJCS8qKjwgc2l6ZSBpbiBieXRlcyBvZiBkYXRhIGV4Y2wuIHRoaXMg c3RydWN0ICovCiAJX191MzIgYWJpOwkJLyoqPCBTT0YgQUJJIHZlcnNpb24gKi8KIAlfX3UzMiBy ZXNlcnZlZFs0XTsJLyoqPCByZXNlcnZlZCBmb3IgZnV0dXJlIHVzZSAqLwotCV9fdTMyIGRhdGFb MF07CQkvKio8IENvbXBvbmVudCBkYXRhIC0gb3BhcXVlIHRvIGNvcmUgKi8KKwlfX3UzMiBkYXRh W107CQkvKio8IENvbXBvbmVudCBkYXRhIC0gb3BhcXVlIHRvIGNvcmUgKi8KIH0gIF9fcGFja2Vk OwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9zb3VuZC91c2Jfc3RyZWFtLmgg Yi9pbmNsdWRlL3VhcGkvc291bmQvdXNiX3N0cmVhbS5oCmluZGV4IDk1NDE5ZDhiYmMxNi4uZmZk ZDNlYTFlMzFkIDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvc291bmQvdXNiX3N0cmVhbS5oCisr KyBiL2luY2x1ZGUvdWFwaS9zb3VuZC91c2Jfc3RyZWFtLmgKQEAgLTYxLDcgKzYxLDcgQEAgc3Ry dWN0IHVzYl9zdHJlYW0gewogCXVuc2lnbmVkCQkgaW5wYWNrZXRfc3BsaXRfYXQ7CiAJdW5zaWdu ZWQJCSBuZXh0X2lucGFja2V0X3NwbGl0OwogCXVuc2lnbmVkCQkgbmV4dF9pbnBhY2tldF9zcGxp dF9hdDsKLQlzdHJ1Y3QgdXNiX3N0cmVhbV9wYWNrZXQgaW5wYWNrZXRbMF07CisJc3RydWN0IHVz Yl9zdHJlYW1fcGFja2V0IGlucGFja2V0W107CiB9OwogCiBlbnVtIHVzYl9zdHJlYW1fc3RhdGUg ewpkaWZmIC0tZ2l0IGEvdG9vbHMvYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9rdm0uaCBiL3Rv b2xzL2FyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20va3ZtLmgKaW5kZXggYmY2ZTk2MDExZGZlLi5l MTM1ZjRkY2IxOWQgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2FyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20v a3ZtLmgKKysrIGIvdG9vbHMvYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9rdm0uaApAQCAtMTk4 LDEzICsxOTgsMTMgQEAgc3RydWN0IGt2bV9tc3JzIHsKIAlfX3UzMiBubXNyczsgLyogbnVtYmVy IG9mIG1zcnMgaW4gZW50cmllcyAqLwogCV9fdTMyIHBhZDsKIAotCXN0cnVjdCBrdm1fbXNyX2Vu dHJ5IGVudHJpZXNbMF07CisJc3RydWN0IGt2bV9tc3JfZW50cnkgZW50cmllc1tdOwogfTsKIAog LyogZm9yIEtWTV9HRVRfTVNSX0lOREVYX0xJU1QgKi8KIHN0cnVjdCBrdm1fbXNyX2xpc3Qgewog CV9fdTMyIG5tc3JzOyAvKiBudW1iZXIgb2YgbXNycyBpbiBlbnRyaWVzICovCi0JX191MzIgaW5k aWNlc1swXTsKKwlfX3UzMiBpbmRpY2VzW107CiB9OwogCiAvKiBNYXhpbXVtIHNpemUgb2YgYW55 IGFjY2VzcyBiaXRtYXAgaW4gYnl0ZXMgKi8KQEAgLTI0MSw3ICsyNDEsNyBAQCBzdHJ1Y3Qga3Zt X2NwdWlkX2VudHJ5IHsKIHN0cnVjdCBrdm1fY3B1aWQgewogCV9fdTMyIG5lbnQ7CiAJX191MzIg cGFkZGluZzsKLQlzdHJ1Y3Qga3ZtX2NwdWlkX2VudHJ5IGVudHJpZXNbMF07CisJc3RydWN0IGt2 bV9jcHVpZF9lbnRyeSBlbnRyaWVzW107CiB9OwogCiBzdHJ1Y3Qga3ZtX2NwdWlkX2VudHJ5MiB7 CkBAIC0yNjMsNyArMjYzLDcgQEAgc3RydWN0IGt2bV9jcHVpZF9lbnRyeTIgewogc3RydWN0IGt2 bV9jcHVpZDIgewogCV9fdTMyIG5lbnQ7CiAJX191MzIgcGFkZGluZzsKLQlzdHJ1Y3Qga3ZtX2Nw dWlkX2VudHJ5MiBlbnRyaWVzWzBdOworCXN0cnVjdCBrdm1fY3B1aWRfZW50cnkyIGVudHJpZXNb XTsKIH07CiAKIC8qIGZvciBLVk1fR0VUX1BJVCBhbmQgS1ZNX1NFVF9QSVQgKi8KQEAgLTM4OSw3 ICszODksNyBAQCBzdHJ1Y3Qga3ZtX3hzYXZlIHsKIAkgKiB0aGUgY29udGVudHMgb2YgQ1BVSUQg bGVhZiAweEQgb24gdGhlIGhvc3QuCiAJICovCiAJX191MzIgcmVnaW9uWzEwMjRdOwotCV9fdTMy IGV4dHJhWzBdOworCV9fdTMyIGV4dHJhW107CiB9OwogCiAjZGVmaW5lIEtWTV9NQVhfWENSUwkx NgpAQCAtNTE1LDcgKzUxNSw3IEBAIHN0cnVjdCBrdm1fcG11X2V2ZW50X2ZpbHRlciB7CiAJX191 MzIgZml4ZWRfY291bnRlcl9iaXRtYXA7CiAJX191MzIgZmxhZ3M7CiAJX191MzIgcGFkWzRdOwot CV9fdTY0IGV2ZW50c1swXTsKKwlfX3U2NCBldmVudHNbXTsKIH07CiAKICNkZWZpbmUgS1ZNX1BN VV9FVkVOVF9BTExPVyAwCmRpZmYgLS1naXQgYS90b29scy9pbmNsdWRlL3VhcGkvZHJtL2k5MTVf ZHJtLmggYi90b29scy9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgKaW5kZXggMDVjMzY0MmFh ZWNlLi4yMzliOTFiMTNjNjAgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2luY2x1ZGUvdWFwaS9kcm0vaTkx NV9kcm0uaAorKysgYi90b29scy9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgKQEAgLTIwNjAs NyArMjA2MCw3IEBAIHN0cnVjdCBpOTE1X2NvbnRleHRfZW5naW5lc19sb2FkX2JhbGFuY2Ugewog CiAJX191NjQgbWJ6NjQ7IC8qIHJlc2VydmVkIGZvciBmdXR1cmUgdXNlOyBtdXN0IGJlIHplcm8g Ki8KIAotCXN0cnVjdCBpOTE1X2VuZ2luZV9jbGFzc19pbnN0YW5jZSBlbmdpbmVzWzBdOworCXN0 cnVjdCBpOTE1X2VuZ2luZV9jbGFzc19pbnN0YW5jZSBlbmdpbmVzW107CiB9IF9fYXR0cmlidXRl X18oKHBhY2tlZCkpOwogCiAjZGVmaW5lIEk5MTVfREVGSU5FX0NPTlRFWFRfRU5HSU5FU19MT0FE X0JBTEFOQ0UobmFtZV9fLCBOX18pIHN0cnVjdCB7IFwKQEAgLTIwOTgsNyArMjA5OCw3IEBAIHN0 cnVjdCBpOTE1X2NvbnRleHRfZW5naW5lc19ib25kIHsKIAlfX3U2NCBmbGFnczsgLyogYWxsIHVu ZGVmaW5lZCBmbGFncyBtdXN0IGJlIHplcm8gKi8KIAlfX3U2NCBtYno2NFs0XTsgLyogcmVzZXJ2 ZWQgZm9yIGZ1dHVyZSB1c2U7IG11c3QgYmUgemVybyAqLwogCi0Jc3RydWN0IGk5MTVfZW5naW5l X2NsYXNzX2luc3RhbmNlIGVuZ2luZXNbMF07CisJc3RydWN0IGk5MTVfZW5naW5lX2NsYXNzX2lu c3RhbmNlIGVuZ2luZXNbXTsKIH0gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CiAKICNkZWZpbmUg STkxNV9ERUZJTkVfQ09OVEVYVF9FTkdJTkVTX0JPTkQobmFtZV9fLCBOX18pIHN0cnVjdCB7IFwK QEAgLTIyMjUsNyArMjIyNSw3IEBAIHN0cnVjdCBpOTE1X2NvbnRleHRfZW5naW5lc19wYXJhbGxl bF9zdWJtaXQgewogCSAqIGxlbmd0aCA9IHdpZHRoIChpKSAqIG51bV9zaWJsaW5ncyAoaikKIAkg KiBpbmRleCA9IGogKyBpICogbnVtX3NpYmxpbmdzCiAJICovCi0Jc3RydWN0IGk5MTVfZW5naW5l X2NsYXNzX2luc3RhbmNlIGVuZ2luZXNbMF07CisJc3RydWN0IGk5MTVfZW5naW5lX2NsYXNzX2lu c3RhbmNlIGVuZ2luZXNbXTsKIAogfSBfX3BhY2tlZDsKIApkaWZmIC0tZ2l0IGEvdG9vbHMvaW5j bHVkZS91YXBpL2xpbnV4L2JwZi5oIGIvdG9vbHMvaW5jbHVkZS91YXBpL2xpbnV4L2JwZi5oCmlu ZGV4IGY0MDA5ZGJkZjYyZC4uZTRiMzNiYTA2ZjAwIDEwMDY0NAotLS0gYS90b29scy9pbmNsdWRl L3VhcGkvbGludXgvYnBmLmgKKysrIGIvdG9vbHMvaW5jbHVkZS91YXBpL2xpbnV4L2JwZi5oCkBA IC03OSw3ICs3OSw3IEBAIHN0cnVjdCBicGZfaW5zbiB7CiAvKiBLZXkgb2YgYW4gYSBCUEZfTUFQ X1RZUEVfTFBNX1RSSUUgZW50cnkgKi8KIHN0cnVjdCBicGZfbHBtX3RyaWVfa2V5IHsKIAlfX3Uz MglwcmVmaXhsZW47CS8qIHVwIHRvIDMyIGZvciBBRl9JTkVULCAxMjggZm9yIEFGX0lORVQ2ICov Ci0JX191OAlkYXRhWzBdOwkvKiBBcmJpdHJhcnkgc2l6ZSAqLworCV9fdTgJZGF0YVtdOwkvKiBB cmJpdHJhcnkgc2l6ZSAqLwogfTsKIAogc3RydWN0IGJwZl9jZ3JvdXBfc3RvcmFnZV9rZXkgewpk aWZmIC0tZ2l0IGEvdG9vbHMvaW5jbHVkZS91YXBpL2xpbnV4L2ZzLmggYi90b29scy9pbmNsdWRl L3VhcGkvbGludXgvZnMuaAppbmRleCBiZGY3YjQwNGIzZTcuLmI3YjU2ODcxMDI5YyAxMDA2NDQK LS0tIGEvdG9vbHMvaW5jbHVkZS91YXBpL2xpbnV4L2ZzLmgKKysrIGIvdG9vbHMvaW5jbHVkZS91 YXBpL2xpbnV4L2ZzLmgKQEAgLTkwLDcgKzkwLDcgQEAgc3RydWN0IGZpbGVfZGVkdXBlX3Jhbmdl IHsKIAlfX3UxNiBkZXN0X2NvdW50OwkvKiBpbiAtIHRvdGFsIGVsZW1lbnRzIGluIGluZm8gYXJy YXkgKi8KIAlfX3UxNiByZXNlcnZlZDE7CS8qIG11c3QgYmUgemVybyAqLwogCV9fdTMyIHJlc2Vy dmVkMjsJLyogbXVzdCBiZSB6ZXJvICovCi0Jc3RydWN0IGZpbGVfZGVkdXBlX3JhbmdlX2luZm8g aW5mb1swXTsKKwlzdHJ1Y3QgZmlsZV9kZWR1cGVfcmFuZ2VfaW5mbyBpbmZvW107CiB9OwogCiAv KiBBbmQgZHluYW1pY2FsbHktdHVuYWJsZSBsaW1pdHMgYW5kIGRlZmF1bHRzOiAqLwpkaWZmIC0t Z2l0IGEvdG9vbHMvaW5jbHVkZS91YXBpL2xpbnV4L2lmX3R1bi5oIGIvdG9vbHMvaW5jbHVkZS91 YXBpL2xpbnV4L2lmX3R1bi5oCmluZGV4IDQ1NGFlMzFiOTNjNy4uMmVjMDdkZTFkNzNiIDEwMDY0 NAotLS0gYS90b29scy9pbmNsdWRlL3VhcGkvbGludXgvaWZfdHVuLmgKKysrIGIvdG9vbHMvaW5j bHVkZS91YXBpL2xpbnV4L2lmX3R1bi5oCkBAIC0xMDgsNyArMTA4LDcgQEAgc3RydWN0IHR1bl9w aSB7CiBzdHJ1Y3QgdHVuX2ZpbHRlciB7CiAJX191MTYgIGZsYWdzOyAvKiBUVU5fRkxUXyBmbGFn cyBzZWUgYWJvdmUgKi8KIAlfX3UxNiAgY291bnQ7IC8qIE51bWJlciBvZiBhZGRyZXNzZXMgKi8K LQlfX3U4ICAgYWRkclswXVtFVEhfQUxFTl07CisJX191OCAgIGFkZHJbXVtFVEhfQUxFTl07CiB9 OwogCiAjZW5kaWYgLyogX1VBUElfX0lGX1RVTl9IICovCmRpZmYgLS1naXQgYS90b29scy9pbmNs dWRlL3VhcGkvbGludXgva3ZtLmggYi90b29scy9pbmNsdWRlL3VhcGkvbGludXgva3ZtLmgKaW5k ZXggNmExODRkMjYwYzdmLi4zN2NlOGNiYWMzMjIgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2luY2x1ZGUv dWFwaS9saW51eC9rdm0uaAorKysgYi90b29scy9pbmNsdWRlL3VhcGkvbGludXgva3ZtLmgKQEAg LTUzOSw3ICs1MzksNyBAQCBzdHJ1Y3Qga3ZtX2NvYWxlc2NlZF9tbWlvIHsKIAogc3RydWN0IGt2 bV9jb2FsZXNjZWRfbW1pb19yaW5nIHsKIAlfX3UzMiBmaXJzdCwgbGFzdDsKLQlzdHJ1Y3Qga3Zt X2NvYWxlc2NlZF9tbWlvIGNvYWxlc2NlZF9tbWlvWzBdOworCXN0cnVjdCBrdm1fY29hbGVzY2Vk X21taW8gY29hbGVzY2VkX21taW9bXTsKIH07CiAKICNkZWZpbmUgS1ZNX0NPQUxFU0NFRF9NTUlP X01BWCBcCkBAIC02MTgsNyArNjE4LDcgQEAgc3RydWN0IGt2bV9jbGVhcl9kaXJ0eV9sb2cgewog LyogZm9yIEtWTV9TRVRfU0lHTkFMX01BU0sgKi8KIHN0cnVjdCBrdm1fc2lnbmFsX21hc2sgewog CV9fdTMyIGxlbjsKLQlfX3U4ICBzaWdzZXRbMF07CisJX191OCAgc2lnc2V0W107CiB9OwogCiAv KiBmb3IgS1ZNX1RQUl9BQ0NFU1NfUkVQT1JUSU5HICovCkBAIC0xMjE2LDcgKzEyMTYsNyBAQCBz dHJ1Y3Qga3ZtX2lycV9yb3V0aW5nX2VudHJ5IHsKIHN0cnVjdCBrdm1faXJxX3JvdXRpbmcgewog CV9fdTMyIG5yOwogCV9fdTMyIGZsYWdzOwotCXN0cnVjdCBrdm1faXJxX3JvdXRpbmdfZW50cnkg ZW50cmllc1swXTsKKwlzdHJ1Y3Qga3ZtX2lycV9yb3V0aW5nX2VudHJ5IGVudHJpZXNbXTsKIH07 CiAKICNlbmRpZgpAQCAtMTMzNSw3ICsxMzM1LDcgQEAgc3RydWN0IGt2bV9kaXJ0eV90bGIgewog CiBzdHJ1Y3Qga3ZtX3JlZ19saXN0IHsKIAlfX3U2NCBuOyAvKiBudW1iZXIgb2YgcmVncyAqLwot CV9fdTY0IHJlZ1swXTsKKwlfX3U2NCByZWdbXTsKIH07CiAKIHN0cnVjdCBrdm1fb25lX3JlZyB7 CmRpZmYgLS1naXQgYS90b29scy9pbmNsdWRlL3VhcGkvbGludXgvcGVyZl9ldmVudC5oIGIvdG9v bHMvaW5jbHVkZS91YXBpL2xpbnV4L3BlcmZfZXZlbnQuaAppbmRleCBkMzc2MjlkYmFkNzIuLjQ2 NTM4MzRmMDc4ZiAxMDA2NDQKLS0tIGEvdG9vbHMvaW5jbHVkZS91YXBpL2xpbnV4L3BlcmZfZXZl bnQuaAorKysgYi90b29scy9pbmNsdWRlL3VhcGkvbGludXgvcGVyZl9ldmVudC5oCkBAIC00OTEs NyArNDkxLDcgQEAgc3RydWN0IHBlcmZfZXZlbnRfcXVlcnlfYnBmIHsKIAkvKgogCSAqIFVzZXIg cHJvdmlkZWQgYnVmZmVyIHRvIHN0b3JlIHByb2dyYW0gaWRzCiAJICovCi0JX191MzIJaWRzWzBd OworCV9fdTMyCWlkc1tdOwogfTsKIAogLyoKZGlmZiAtLWdpdCBhL3Rvb2xzL2luY2x1ZGUvdWFw aS9saW51eC9wa3RfY2xzLmggYi90b29scy9pbmNsdWRlL3VhcGkvbGludXgvcGt0X2Nscy5oCmlu ZGV4IDEyMTUzNzcxMzk2YS4uM2ZhZWUwMTk5YTliIDEwMDY0NAotLS0gYS90b29scy9pbmNsdWRl L3VhcGkvbGludXgvcGt0X2Nscy5oCisrKyBiL3Rvb2xzL2luY2x1ZGUvdWFwaS9saW51eC9wa3Rf Y2xzLmgKQEAgLTE4MCw3ICsxODAsNyBAQCBzdHJ1Y3QgdGNfdTMyX3NlbCB7CiAKIAlzaG9ydAkJ CWhvZmY7CiAJX19iZTMyCQkJaG1hc2s7Ci0Jc3RydWN0IHRjX3UzMl9rZXkJa2V5c1swXTsKKwlz dHJ1Y3QgdGNfdTMyX2tleQlrZXlzW107CiB9OwogCiBzdHJ1Y3QgdGNfdTMyX21hcmsgewpAQCAt MTkyLDcgKzE5Miw3IEBAIHN0cnVjdCB0Y191MzJfbWFyayB7CiBzdHJ1Y3QgdGNfdTMyX3BjbnQg ewogCV9fdTY0IHJjbnQ7CiAJX191NjQgcmhpdDsKLQlfX3U2NCBrY250c1swXTsKKwlfX3U2NCBr Y250c1tdOwogfTsKIAogLyogRmxhZ3MgKi8KZGlmZiAtLWdpdCBhL3Rvb2xzL2luY2x1ZGUvdWFw aS9saW51eC9zZWc2LmggYi90b29scy9pbmNsdWRlL3VhcGkvbGludXgvc2VnNi5oCmluZGV4IDI4 NmU4ZDZhOGU5OC4uZjk0YmFmMTU0YzQ3IDEwMDY0NAotLS0gYS90b29scy9pbmNsdWRlL3VhcGkv bGludXgvc2VnNi5oCisrKyBiL3Rvb2xzL2luY2x1ZGUvdWFwaS9saW51eC9zZWc2LmgKQEAgLTMw LDcgKzMwLDcgQEAgc3RydWN0IGlwdjZfc3JfaGRyIHsKIAlfX3U4CWZsYWdzOwogCV9fdTE2CXRh ZzsKIAotCXN0cnVjdCBpbjZfYWRkciBzZWdtZW50c1swXTsKKwlzdHJ1Y3QgaW42X2FkZHIgc2Vn bWVudHNbXTsKIH07CiAKICNkZWZpbmUgU1I2X0ZMQUcxX1BST1RFQ1RFRAkoMSA8PCA2KQpAQCAt NDksNyArNDksNyBAQCBzdHJ1Y3QgaXB2Nl9zcl9oZHIgewogc3RydWN0IHNyNl90bHYgewogCV9f dTggdHlwZTsKIAlfX3U4IGxlbjsKLQlfX3U4IGRhdGFbMF07CisJX191OCBkYXRhW107CiB9Owog CiAjZW5kaWYKZGlmZiAtLWdpdCBhL3Rvb2xzL2luY2x1ZGUvdWFwaS9saW51eC91c2JkZXZpY2Vf ZnMuaCBiL3Rvb2xzL2luY2x1ZGUvdWFwaS9saW51eC91c2JkZXZpY2VfZnMuaAppbmRleCBjZjUy NWNkZGViOTQuLjc0YTg0ZTAyNDIyYSAxMDA2NDQKLS0tIGEvdG9vbHMvaW5jbHVkZS91YXBpL2xp bnV4L3VzYmRldmljZV9mcy5oCisrKyBiL3Rvb2xzL2luY2x1ZGUvdWFwaS9saW51eC91c2JkZXZp Y2VfZnMuaApAQCAtMTMxLDcgKzEzMSw3IEBAIHN0cnVjdCB1c2JkZXZmc191cmIgewogCXVuc2ln bmVkIGludCBzaWducjsJLyogc2lnbmFsIHRvIGJlIHNlbnQgb24gY29tcGxldGlvbiwKIAkJCQkg IG9yIDAgaWYgbm9uZSBzaG91bGQgYmUgc2VudC4gKi8KIAl2b2lkIF9fdXNlciAqdXNlcmNvbnRl eHQ7Ci0Jc3RydWN0IHVzYmRldmZzX2lzb19wYWNrZXRfZGVzYyBpc29fZnJhbWVfZGVzY1swXTsK KwlzdHJ1Y3QgdXNiZGV2ZnNfaXNvX3BhY2tldF9kZXNjIGlzb19mcmFtZV9kZXNjW107CiB9Owog CiAvKiBpb2N0bHMgZm9yIHRhbGtpbmcgZGlyZWN0bHkgdG8gZHJpdmVycyAqLwpAQCAtMTc2LDcg KzE3Niw3IEBAIHN0cnVjdCB1c2JkZXZmc19kaXNjb25uZWN0X2NsYWltIHsKIHN0cnVjdCB1c2Jk ZXZmc19zdHJlYW1zIHsKIAl1bnNpZ25lZCBpbnQgbnVtX3N0cmVhbXM7IC8qIE5vdCB1c2VkIGJ5 IFVTQkRFVkZTX0ZSRUVfU1RSRUFNUyAqLwogCXVuc2lnbmVkIGludCBudW1fZXBzOwotCXVuc2ln bmVkIGNoYXIgZXBzWzBdOworCXVuc2lnbmVkIGNoYXIgZXBzW107CiB9OwogCiAvKgpkaWZmIC0t Z2l0IGEvdG9vbHMvaW5jbHVkZS91YXBpL3NvdW5kL2Fzb3VuZC5oIGIvdG9vbHMvaW5jbHVkZS91 YXBpL3NvdW5kL2Fzb3VuZC5oCmluZGV4IDJkM2U1ZGYzOWE1OS4uMzk3NGEyYTkxMWNjIDEwMDY0 NAotLS0gYS90b29scy9pbmNsdWRlL3VhcGkvc291bmQvYXNvdW5kLmgKKysrIGIvdG9vbHMvaW5j bHVkZS91YXBpL3NvdW5kL2Fzb3VuZC5oCkBAIC0xMTA2LDcgKzExMDYsNyBAQCBzdHJ1Y3Qgc25k X2N0bF9lbGVtX3ZhbHVlIHsKIHN0cnVjdCBzbmRfY3RsX3RsdiB7CiAJdW5zaWduZWQgaW50IG51 bWlkOwkvKiBjb250cm9sIGVsZW1lbnQgbnVtZXJpYyBpZGVudGlmaWNhdGlvbiAqLwogCXVuc2ln bmVkIGludCBsZW5ndGg7CS8qIGluIGJ5dGVzIGFsaWduZWQgdG8gNCAqLwotCXVuc2lnbmVkIGlu dCB0bHZbMF07CS8qIGZpcnN0IFRMViAqLworCXVuc2lnbmVkIGludCB0bHZbXTsJLyogZmlyc3Qg VExWICovCiB9OwogCiAjZGVmaW5lIFNORFJWX0NUTF9JT0NUTF9QVkVSU0lPTglfSU9SKCdVJywg MHgwMCwgaW50KQotLSAKMi4yNy4wCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtl cm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxt YW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo= 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 gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 8AC3DCCA47E for ; Mon, 27 Jun 2022 18:04:44 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 8663110E4D7; Mon, 27 Jun 2022 18:04:43 +0000 (UTC) Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by gabe.freedesktop.org (Postfix) with ESMTPS id EE2F610E332; Mon, 27 Jun 2022 18:04:41 +0000 (UTC) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 04A5661526; Mon, 27 Jun 2022 18:04:38 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8180FC3411D; Mon, 27 Jun 2022 18:04:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1656353077; bh=zSKczzoHL+2IPAqWZ9stqX2VHIHei/r/jrczBmwH9KU=; h=Date:From:To:Cc:Subject:From; b=q4QOvRQefEcEjVVyAOahSkl46FyS0ej/BwQljX3V/tEKW1uJvemX2PdsUwiHIg7Sg YDvtmL1JtX3dS9wnyairzCKocYShwtXmeFooQK1pBYjn0nU4z5GMa7xfMTPk9cb7bZ jq6bOTrXMM1fFJRFxq0d/LZbAXmOH7I5TzmvJulBRQhyvpEa+2cET2cbtmn8IEBTzX IJ/jwM+A03aTQybuDDzJkgT9kZdGiiMxL8m60Hs9fUzbhF3UmW19Co1BmWRKOIL45X b4fYE8tW8QLzqs8PmvUF0KHkgY40QgL+2QS5U7UxNoKp+TFhXR4rbYyFY2Ts7D6y3R dm+wxbun+jboQ== Date: Mon, 27 Jun 2022 20:04:32 +0200 From: "Gustavo A. R. Silva" To: Kees Cook , linux-kernel@vger.kernel.org Subject: [PATCH][next] treewide: uapi: Replace zero-length arrays with flexible-array members Message-ID: <20220627180432.GA136081@embeddedor> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: nvdimm@lists.linux.dev, alsa-devel@alsa-project.org, "Gustavo A. R. Silva" , kvm@vger.kernel.org, dri-devel@lists.freedesktop.org, virtualization@lists.linux-foundation.org, dm-devel@redhat.com, target-devel@vger.kernel.org, linux-mtd@lists.infradead.org, linux-hardening@vger.kernel.org, linux1394-devel@lists.sourceforge.net, linux-stm32@st-md-mailman.stormreply.com, linux-s390@vger.kernel.org, linux-scsi@vger.kernel.org, linux-rdma@vger.kernel.org, x86@kernel.org, kasan-dev@googlegroups.com, lvs-devel@vger.kernel.org, coreteam@netfilter.org, v9fs-developer@lists.sourceforge.net, intel-gfx@lists.freedesktop.org, linux-can@vger.kernel.org, linux-raid@vger.kernel.org, linux-m68k@lists.linux-m68k.org, io-uring@vger.kernel.org, linux-arm-kernel@lists.infradead.org, netdev@vger.kernel.org, linux-usb@vger.kernel.org, linux-mmc@vger.kernel.org, linux-mips@vger.kernel.org, linux-perf-users@vger.kernel.org, linux-sctp@vger.kernel.org, netfilter-devel@vger.kernel.org, linux-fsdevel@vger.kernel.org, bpf@vger.kernel.org, linux-btrfs@vger.kernel.org Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" There is a regular need in the kernel to provide a way to declare having a dynamically sized set of trailing elements in a structure. Kernel code should always use “flexible array members”[1] for these cases. The older style of one-element or zero-length arrays should no longer be used[2]. This code was transformed with the help of Coccinelle: (linux-5.19-rc2$ spatch --jobs $(getconf _NPROCESSORS_ONLN) --sp-file script.cocci --include-headers --dir . > output.patch) @@ identifier S, member, array; type T1, T2; @@ struct S { ... T1 member; T2 array[ - 0 ]; }; -fstrict-flex-arrays=3 is coming and we need to land these changes to prevent issues like these in the short future: ../fs/minix/dir.c:337:3: warning: 'strcpy' will always overflow; destination buffer has size 0, but the source string has length 2 (including NUL byte) [-Wfortify-source] strcpy(de3->name, "."); ^ Since these are all [0] to [] changes, the risk to UAPI is nearly zero. If this breaks anything, we can use a union with a new member name. [1] https://en.wikipedia.org/wiki/Flexible_array_member [2] https://www.kernel.org/doc/html/v5.16/process/deprecated.html#zero-length-and-one-element-arrays Link: https://github.com/KSPP/linux/issues/78 Build-tested-by: https://lore.kernel.org/lkml/62b675ec.wKX6AOZ6cbE71vtF%25lkp@intel.com/ Signed-off-by: Gustavo A. R. Silva --- Hi all! JFYI: I'm adding this to my -next tree. :) arch/m68k/include/uapi/asm/bootinfo.h | 4 +- arch/mips/include/uapi/asm/ucontext.h | 2 +- arch/s390/include/uapi/asm/hwctrset.h | 6 +- arch/x86/include/uapi/asm/bootparam.h | 2 +- arch/x86/include/uapi/asm/kvm.h | 12 ++-- include/uapi/drm/i915_drm.h | 6 +- include/uapi/linux/blkzoned.h | 2 +- include/uapi/linux/bpf.h | 2 +- include/uapi/linux/btrfs.h | 10 +-- include/uapi/linux/btrfs_tree.h | 2 +- include/uapi/linux/can/bcm.h | 2 +- include/uapi/linux/connector.h | 2 +- include/uapi/linux/cycx_cfm.h | 2 +- include/uapi/linux/dm-ioctl.h | 8 +-- include/uapi/linux/dm-log-userspace.h | 2 +- include/uapi/linux/ethtool.h | 28 ++++---- include/uapi/linux/fanotify.h | 2 +- include/uapi/linux/fiemap.h | 2 +- include/uapi/linux/firewire-cdev.h | 12 ++-- include/uapi/linux/fs.h | 2 +- include/uapi/linux/if_alg.h | 2 +- include/uapi/linux/if_arcnet.h | 6 +- include/uapi/linux/if_pppox.h | 4 +- include/uapi/linux/if_tun.h | 2 +- include/uapi/linux/igmp.h | 6 +- include/uapi/linux/inet_diag.h | 2 +- include/uapi/linux/inotify.h | 2 +- include/uapi/linux/io_uring.h | 2 +- include/uapi/linux/ip.h | 4 +- include/uapi/linux/ip_vs.h | 4 +- include/uapi/linux/iso_fs.h | 4 +- include/uapi/linux/jffs2.h | 8 +-- include/uapi/linux/kcov.h | 2 +- include/uapi/linux/kvm.h | 8 +-- include/uapi/linux/minix_fs.h | 4 +- include/uapi/linux/mmc/ioctl.h | 2 +- include/uapi/linux/ndctl.h | 10 +-- include/uapi/linux/net_dropmon.h | 4 +- include/uapi/linux/netfilter/x_tables.h | 4 +- include/uapi/linux/netfilter_arp/arp_tables.h | 6 +- .../uapi/linux/netfilter_bridge/ebt_among.h | 2 +- include/uapi/linux/netfilter_ipv4/ip_tables.h | 6 +- .../uapi/linux/netfilter_ipv6/ip6_tables.h | 4 +- include/uapi/linux/perf_event.h | 2 +- include/uapi/linux/pkt_cls.h | 4 +- include/uapi/linux/raid/md_p.h | 2 +- include/uapi/linux/random.h | 2 +- include/uapi/linux/romfs_fs.h | 4 +- include/uapi/linux/rtnetlink.h | 2 +- include/uapi/linux/sctp.h | 10 +-- include/uapi/linux/seg6.h | 2 +- include/uapi/linux/seg6_iptunnel.h | 2 +- include/uapi/linux/stm.h | 2 +- include/uapi/linux/target_core_user.h | 2 +- include/uapi/linux/usb/audio.h | 2 +- include/uapi/linux/usb/cdc.h | 6 +- include/uapi/linux/usb/ch9.h | 2 +- include/uapi/linux/usb/raw_gadget.h | 4 +- include/uapi/linux/usbdevice_fs.h | 4 +- include/uapi/linux/vhost_types.h | 4 +- include/uapi/linux/virtio_9p.h | 2 +- include/uapi/linux/xfrm.h | 10 +-- include/uapi/rdma/hfi/hfi1_user.h | 2 +- include/uapi/rdma/ib_user_verbs.h | 72 +++++++++---------- include/uapi/rdma/rdma_user_cm.h | 2 +- include/uapi/rdma/rdma_user_ioctl_cmds.h | 2 +- include/uapi/scsi/fc/fc_els.h | 18 ++--- include/uapi/scsi/scsi_bsg_fc.h | 2 +- include/uapi/sound/asound.h | 2 +- include/uapi/sound/firewire.h | 6 +- include/uapi/sound/skl-tplg-interface.h | 2 +- include/uapi/sound/sof/header.h | 2 +- include/uapi/sound/usb_stream.h | 2 +- tools/arch/x86/include/uapi/asm/kvm.h | 12 ++-- tools/include/uapi/drm/i915_drm.h | 6 +- tools/include/uapi/linux/bpf.h | 2 +- tools/include/uapi/linux/fs.h | 2 +- tools/include/uapi/linux/if_tun.h | 2 +- tools/include/uapi/linux/kvm.h | 8 +-- tools/include/uapi/linux/perf_event.h | 2 +- tools/include/uapi/linux/pkt_cls.h | 4 +- tools/include/uapi/linux/seg6.h | 4 +- tools/include/uapi/linux/usbdevice_fs.h | 4 +- tools/include/uapi/sound/asound.h | 2 +- 84 files changed, 218 insertions(+), 218 deletions(-) diff --git a/arch/m68k/include/uapi/asm/bootinfo.h b/arch/m68k/include/uapi/asm/bootinfo.h index 203d9cbf9630..95ecf3ae4c49 100644 --- a/arch/m68k/include/uapi/asm/bootinfo.h +++ b/arch/m68k/include/uapi/asm/bootinfo.h @@ -34,7 +34,7 @@ struct bi_record { __be16 tag; /* tag ID */ __be16 size; /* size of record (in bytes) */ - __be32 data[0]; /* data */ + __be32 data[]; /* data */ }; @@ -168,7 +168,7 @@ struct bootversion { struct { __be32 machtype; __be32 version; - } machversions[0]; + } machversions[]; } __packed; #endif /* __ASSEMBLY__ */ diff --git a/arch/mips/include/uapi/asm/ucontext.h b/arch/mips/include/uapi/asm/ucontext.h index 2d3bf8eebf1f..6122ef97c6ff 100644 --- a/arch/mips/include/uapi/asm/ucontext.h +++ b/arch/mips/include/uapi/asm/ucontext.h @@ -60,7 +60,7 @@ struct ucontext { sigset_t uc_sigmask; /* Extended context structures may follow ucontext */ - unsigned long long uc_extcontext[0]; + unsigned long long uc_extcontext[]; }; #endif /* __MIPS_UAPI_ASM_UCONTEXT_H */ diff --git a/arch/s390/include/uapi/asm/hwctrset.h b/arch/s390/include/uapi/asm/hwctrset.h index 3d8284b95f87..e56b9dd23a4b 100644 --- a/arch/s390/include/uapi/asm/hwctrset.h +++ b/arch/s390/include/uapi/asm/hwctrset.h @@ -30,18 +30,18 @@ struct s390_ctrset_start { /* Set CPUs to operate on */ struct s390_ctrset_setdata { /* Counter set data */ __u32 set; /* Counter set number */ __u32 no_cnts; /* # of counters stored in cv[] */ - __u64 cv[0]; /* Counter values (variable length) */ + __u64 cv[]; /* Counter values (variable length) */ }; struct s390_ctrset_cpudata { /* Counter set data per CPU */ __u32 cpu_nr; /* CPU number */ __u32 no_sets; /* # of counters sets in data[] */ - struct s390_ctrset_setdata data[0]; + struct s390_ctrset_setdata data[]; }; struct s390_ctrset_read { /* Structure to get all ctr sets */ __u64 no_cpus; /* Total # of CPUs data taken from */ - struct s390_ctrset_cpudata data[0]; + struct s390_ctrset_cpudata data[]; }; #define S390_HWCTR_MAGIC 'C' /* Random magic # for ioctls */ diff --git a/arch/x86/include/uapi/asm/bootparam.h b/arch/x86/include/uapi/asm/bootparam.h index bea5cdcdf532..cdd6c7f6cfa6 100644 --- a/arch/x86/include/uapi/asm/bootparam.h +++ b/arch/x86/include/uapi/asm/bootparam.h @@ -52,7 +52,7 @@ struct setup_data { __u64 next; __u32 type; __u32 len; - __u8 data[0]; + __u8 data[]; }; /* extensible setup indirect data node */ diff --git a/arch/x86/include/uapi/asm/kvm.h b/arch/x86/include/uapi/asm/kvm.h index 21614807a2cb..ec53c9fa1da9 100644 --- a/arch/x86/include/uapi/asm/kvm.h +++ b/arch/x86/include/uapi/asm/kvm.h @@ -198,13 +198,13 @@ struct kvm_msrs { __u32 nmsrs; /* number of msrs in entries */ __u32 pad; - struct kvm_msr_entry entries[0]; + struct kvm_msr_entry entries[]; }; /* for KVM_GET_MSR_INDEX_LIST */ struct kvm_msr_list { __u32 nmsrs; /* number of msrs in entries */ - __u32 indices[0]; + __u32 indices[]; }; /* Maximum size of any access bitmap in bytes */ @@ -241,7 +241,7 @@ struct kvm_cpuid_entry { struct kvm_cpuid { __u32 nent; __u32 padding; - struct kvm_cpuid_entry entries[0]; + struct kvm_cpuid_entry entries[]; }; struct kvm_cpuid_entry2 { @@ -263,7 +263,7 @@ struct kvm_cpuid_entry2 { struct kvm_cpuid2 { __u32 nent; __u32 padding; - struct kvm_cpuid_entry2 entries[0]; + struct kvm_cpuid_entry2 entries[]; }; /* for KVM_GET_PIT and KVM_SET_PIT */ @@ -389,7 +389,7 @@ struct kvm_xsave { * the contents of CPUID leaf 0xD on the host. */ __u32 region[1024]; - __u32 extra[0]; + __u32 extra[]; }; #define KVM_MAX_XCRS 16 @@ -516,7 +516,7 @@ struct kvm_pmu_event_filter { __u32 fixed_counter_bitmap; __u32 flags; __u32 pad[4]; - __u64 events[0]; + __u64 events[]; }; #define KVM_PMU_EVENT_ALLOW 0 diff --git a/include/uapi/drm/i915_drm.h b/include/uapi/drm/i915_drm.h index a2def7b27009..b28ff5d88145 100644 --- a/include/uapi/drm/i915_drm.h +++ b/include/uapi/drm/i915_drm.h @@ -2123,7 +2123,7 @@ struct i915_context_engines_load_balance { __u64 mbz64; /* reserved for future use; must be zero */ - struct i915_engine_class_instance engines[0]; + struct i915_engine_class_instance engines[]; } __attribute__((packed)); #define I915_DEFINE_CONTEXT_ENGINES_LOAD_BALANCE(name__, N__) struct { \ @@ -2161,7 +2161,7 @@ struct i915_context_engines_bond { __u64 flags; /* all undefined flags must be zero */ __u64 mbz64[4]; /* reserved for future use; must be zero */ - struct i915_engine_class_instance engines[0]; + struct i915_engine_class_instance engines[]; } __attribute__((packed)); #define I915_DEFINE_CONTEXT_ENGINES_BOND(name__, N__) struct { \ @@ -2288,7 +2288,7 @@ struct i915_context_engines_parallel_submit { * length = width (i) * num_siblings (j) * index = j + i * num_siblings */ - struct i915_engine_class_instance engines[0]; + struct i915_engine_class_instance engines[]; } __packed; diff --git a/include/uapi/linux/blkzoned.h b/include/uapi/linux/blkzoned.h index 656a326821a2..b80fcc9ea525 100644 --- a/include/uapi/linux/blkzoned.h +++ b/include/uapi/linux/blkzoned.h @@ -130,7 +130,7 @@ struct blk_zone_report { __u64 sector; __u32 nr_zones; __u32 flags; - struct blk_zone zones[0]; + struct blk_zone zones[]; }; /** diff --git a/include/uapi/linux/bpf.h b/include/uapi/linux/bpf.h index f4009dbdf62d..e4b33ba06f00 100644 --- a/include/uapi/linux/bpf.h +++ b/include/uapi/linux/bpf.h @@ -79,7 +79,7 @@ struct bpf_insn { /* Key of an a BPF_MAP_TYPE_LPM_TRIE entry */ struct bpf_lpm_trie_key { __u32 prefixlen; /* up to 32 for AF_INET, 128 for AF_INET6 */ - __u8 data[0]; /* Arbitrary size */ + __u8 data[]; /* Arbitrary size */ }; struct bpf_cgroup_storage_key { diff --git a/include/uapi/linux/btrfs.h b/include/uapi/linux/btrfs.h index d956b2993970..3d0edbe3b991 100644 --- a/include/uapi/linux/btrfs.h +++ b/include/uapi/linux/btrfs.h @@ -93,7 +93,7 @@ struct btrfs_qgroup_inherit { __u64 num_ref_copies; __u64 num_excl_copies; struct btrfs_qgroup_limit lim; - __u64 qgroups[0]; + __u64 qgroups[]; }; struct btrfs_ioctl_qgroup_limit_args { @@ -561,7 +561,7 @@ struct btrfs_ioctl_search_args_v2 { __u64 buf_size; /* in - size of buffer * out - on EOVERFLOW: needed size * to store item */ - __u64 buf[0]; /* out - found items */ + __u64 buf[]; /* out - found items */ }; struct btrfs_ioctl_clone_range_args { @@ -632,7 +632,7 @@ struct btrfs_ioctl_same_args { __u16 dest_count; /* in - total elements in info array */ __u16 reserved1; __u32 reserved2; - struct btrfs_ioctl_same_extent_info info[0]; + struct btrfs_ioctl_same_extent_info info[]; }; struct btrfs_ioctl_space_info { @@ -644,7 +644,7 @@ struct btrfs_ioctl_space_info { struct btrfs_ioctl_space_args { __u64 space_slots; __u64 total_spaces; - struct btrfs_ioctl_space_info spaces[0]; + struct btrfs_ioctl_space_info spaces[]; }; struct btrfs_data_container { @@ -652,7 +652,7 @@ struct btrfs_data_container { __u32 bytes_missing; /* out -- additional bytes needed for result */ __u32 elem_cnt; /* out */ __u32 elem_missed; /* out */ - __u64 val[0]; /* out */ + __u64 val[]; /* out */ }; struct btrfs_ioctl_ino_path_args { diff --git a/include/uapi/linux/btrfs_tree.h b/include/uapi/linux/btrfs_tree.h index d4117152d907..5f32a2a495dc 100644 --- a/include/uapi/linux/btrfs_tree.h +++ b/include/uapi/linux/btrfs_tree.h @@ -575,7 +575,7 @@ struct btrfs_inode_extref { __le64 parent_objectid; __le64 index; __le16 name_len; - __u8 name[0]; + __u8 name[]; /* name goes here */ } __attribute__ ((__packed__)); diff --git a/include/uapi/linux/can/bcm.h b/include/uapi/linux/can/bcm.h index dd2b925b09ac..f1e45f533a72 100644 --- a/include/uapi/linux/can/bcm.h +++ b/include/uapi/linux/can/bcm.h @@ -71,7 +71,7 @@ struct bcm_msg_head { struct bcm_timeval ival1, ival2; canid_t can_id; __u32 nframes; - struct can_frame frames[0]; + struct can_frame frames[]; }; enum { diff --git a/include/uapi/linux/connector.h b/include/uapi/linux/connector.h index 3738936149a2..5ae131c3f145 100644 --- a/include/uapi/linux/connector.h +++ b/include/uapi/linux/connector.h @@ -75,7 +75,7 @@ struct cn_msg { __u16 len; /* Length of the following data */ __u16 flags; - __u8 data[0]; + __u8 data[]; }; #endif /* _UAPI__CONNECTOR_H */ diff --git a/include/uapi/linux/cycx_cfm.h b/include/uapi/linux/cycx_cfm.h index 51f541942ff9..91778c8024b1 100644 --- a/include/uapi/linux/cycx_cfm.h +++ b/include/uapi/linux/cycx_cfm.h @@ -91,7 +91,7 @@ struct cycx_firmware { unsigned short reserved[6]; char descr[CFM_DESCR_LEN]; struct cycx_fw_info info; - unsigned char image[0]; + unsigned char image[]; }; struct cycx_fw_header { diff --git a/include/uapi/linux/dm-ioctl.h b/include/uapi/linux/dm-ioctl.h index 2e9550fef90f..8c97d75f3104 100644 --- a/include/uapi/linux/dm-ioctl.h +++ b/include/uapi/linux/dm-ioctl.h @@ -182,7 +182,7 @@ struct dm_target_spec { struct dm_target_deps { __u32 count; /* Array size */ __u32 padding; /* unused */ - __u64 dev[0]; /* out */ + __u64 dev[]; /* out */ }; /* @@ -192,7 +192,7 @@ struct dm_name_list { __u64 dev; __u32 next; /* offset to the next record from the _start_ of this */ - char name[0]; + char name[]; /* * The following members can be accessed by taking a pointer that @@ -216,7 +216,7 @@ struct dm_target_versions { __u32 next; __u32 version[3]; - char name[0]; + char name[]; }; /* @@ -225,7 +225,7 @@ struct dm_target_versions { struct dm_target_msg { __u64 sector; /* Device sector */ - char message[0]; + char message[]; }; /* diff --git a/include/uapi/linux/dm-log-userspace.h b/include/uapi/linux/dm-log-userspace.h index 5c47a8603376..23dad9565e46 100644 --- a/include/uapi/linux/dm-log-userspace.h +++ b/include/uapi/linux/dm-log-userspace.h @@ -426,7 +426,7 @@ struct dm_ulog_request { __u32 request_type; /* DM_ULOG_* defined above */ __u32 data_size; /* How much data (not including this struct) */ - char data[0]; + char data[]; }; #endif /* __DM_LOG_USERSPACE_H__ */ diff --git a/include/uapi/linux/ethtool.h b/include/uapi/linux/ethtool.h index e0f0ee9bc89e..2d5741fd44bb 100644 --- a/include/uapi/linux/ethtool.h +++ b/include/uapi/linux/ethtool.h @@ -257,7 +257,7 @@ struct ethtool_tunable { __u32 id; __u32 type_id; __u32 len; - void *data[0]; + void *data[]; }; #define DOWNSHIFT_DEV_DEFAULT_COUNT 0xff @@ -322,7 +322,7 @@ struct ethtool_regs { __u32 cmd; __u32 version; __u32 len; - __u8 data[0]; + __u8 data[]; }; /** @@ -348,7 +348,7 @@ struct ethtool_eeprom { __u32 magic; __u32 offset; __u32 len; - __u8 data[0]; + __u8 data[]; }; /** @@ -752,7 +752,7 @@ struct ethtool_gstrings { __u32 cmd; __u32 string_set; __u32 len; - __u8 data[0]; + __u8 data[]; }; /** @@ -777,7 +777,7 @@ struct ethtool_sset_info { __u32 cmd; __u32 reserved; __u64 sset_mask; - __u32 data[0]; + __u32 data[]; }; /** @@ -817,7 +817,7 @@ struct ethtool_test { __u32 flags; __u32 reserved; __u32 len; - __u64 data[0]; + __u64 data[]; }; /** @@ -834,7 +834,7 @@ struct ethtool_test { struct ethtool_stats { __u32 cmd; __u32 n_stats; - __u64 data[0]; + __u64 data[]; }; /** @@ -851,7 +851,7 @@ struct ethtool_stats { struct ethtool_perm_addr { __u32 cmd; __u32 size; - __u8 data[0]; + __u8 data[]; }; /* boolean flags controlling per-interface behavior characteristics. @@ -1160,7 +1160,7 @@ struct ethtool_rxnfc { struct ethtool_rxfh_indir { __u32 cmd; __u32 size; - __u32 ring_index[0]; + __u32 ring_index[]; }; /** @@ -1201,7 +1201,7 @@ struct ethtool_rxfh { __u8 hfunc; __u8 rsvd8[3]; __u32 rsvd32; - __u32 rss_config[0]; + __u32 rss_config[]; }; #define ETH_RXFH_CONTEXT_ALLOC 0xffffffff #define ETH_RXFH_INDIR_NO_CHANGE 0xffffffff @@ -1286,7 +1286,7 @@ struct ethtool_dump { __u32 version; __u32 flag; __u32 len; - __u8 data[0]; + __u8 data[]; }; #define ETH_FW_DUMP_DISABLE 0 @@ -1318,7 +1318,7 @@ struct ethtool_get_features_block { struct ethtool_gfeatures { __u32 cmd; __u32 size; - struct ethtool_get_features_block features[0]; + struct ethtool_get_features_block features[]; }; /** @@ -1340,7 +1340,7 @@ struct ethtool_set_features_block { struct ethtool_sfeatures { __u32 cmd; __u32 size; - struct ethtool_set_features_block features[0]; + struct ethtool_set_features_block features[]; }; /** @@ -2087,7 +2087,7 @@ struct ethtool_link_settings { __u8 master_slave_state; __u8 reserved1[1]; __u32 reserved[7]; - __u32 link_mode_masks[0]; + __u32 link_mode_masks[]; /* layout of link_mode_masks fields: * __u32 map_supported[link_mode_masks_nwords]; * __u32 map_advertising[link_mode_masks_nwords]; diff --git a/include/uapi/linux/fanotify.h b/include/uapi/linux/fanotify.h index f1f89132d60e..197df344307d 100644 --- a/include/uapi/linux/fanotify.h +++ b/include/uapi/linux/fanotify.h @@ -162,7 +162,7 @@ struct fanotify_event_info_fid { * Following is an opaque struct file_handle that can be passed as * an argument to open_by_handle_at(2). */ - unsigned char handle[0]; + unsigned char handle[]; }; /* diff --git a/include/uapi/linux/fiemap.h b/include/uapi/linux/fiemap.h index 07c1cdcb715e..24ca0c00cae3 100644 --- a/include/uapi/linux/fiemap.h +++ b/include/uapi/linux/fiemap.h @@ -34,7 +34,7 @@ struct fiemap { __u32 fm_mapped_extents;/* number of extents that were mapped (out) */ __u32 fm_extent_count; /* size of fm_extents array (in) */ __u32 fm_reserved; - struct fiemap_extent fm_extents[0]; /* array of mapped extents (out) */ + struct fiemap_extent fm_extents[]; /* array of mapped extents (out) */ }; #define FIEMAP_MAX_OFFSET (~0ULL) diff --git a/include/uapi/linux/firewire-cdev.h b/include/uapi/linux/firewire-cdev.h index 5effa9832802..92be3ea3c6e0 100644 --- a/include/uapi/linux/firewire-cdev.h +++ b/include/uapi/linux/firewire-cdev.h @@ -118,7 +118,7 @@ struct fw_cdev_event_response { __u32 type; __u32 rcode; __u32 length; - __u32 data[0]; + __u32 data[]; }; /** @@ -142,7 +142,7 @@ struct fw_cdev_event_request { __u64 offset; __u32 handle; __u32 length; - __u32 data[0]; + __u32 data[]; }; /** @@ -205,7 +205,7 @@ struct fw_cdev_event_request2 { __u32 generation; __u32 handle; __u32 length; - __u32 data[0]; + __u32 data[]; }; /** @@ -265,7 +265,7 @@ struct fw_cdev_event_iso_interrupt { __u32 type; __u32 cycle; __u32 header_length; - __u32 header[0]; + __u32 header[]; }; /** @@ -355,7 +355,7 @@ struct fw_cdev_event_phy_packet { __u32 type; __u32 rcode; __u32 length; - __u32 data[0]; + __u32 data[]; }; /** @@ -803,7 +803,7 @@ struct fw_cdev_set_iso_channels { */ struct fw_cdev_iso_packet { __u32 control; - __u32 header[0]; + __u32 header[]; }; /** diff --git a/include/uapi/linux/fs.h b/include/uapi/linux/fs.h index bdf7b404b3e7..b7b56871029c 100644 --- a/include/uapi/linux/fs.h +++ b/include/uapi/linux/fs.h @@ -90,7 +90,7 @@ struct file_dedupe_range { __u16 dest_count; /* in - total elements in info array */ __u16 reserved1; /* must be zero */ __u32 reserved2; /* must be zero */ - struct file_dedupe_range_info info[0]; + struct file_dedupe_range_info info[]; }; /* And dynamically-tunable limits and defaults: */ diff --git a/include/uapi/linux/if_alg.h b/include/uapi/linux/if_alg.h index dc52a11ba6d1..578b18aab821 100644 --- a/include/uapi/linux/if_alg.h +++ b/include/uapi/linux/if_alg.h @@ -42,7 +42,7 @@ struct sockaddr_alg_new { struct af_alg_iv { __u32 ivlen; - __u8 iv[0]; + __u8 iv[]; }; /* Socket options */ diff --git a/include/uapi/linux/if_arcnet.h b/include/uapi/linux/if_arcnet.h index 683878036d76..b122cfac7128 100644 --- a/include/uapi/linux/if_arcnet.h +++ b/include/uapi/linux/if_arcnet.h @@ -60,7 +60,7 @@ struct arc_rfc1201 { __u8 proto; /* protocol ID field - varies */ __u8 split_flag; /* for use with split packets */ __be16 sequence; /* sequence number */ - __u8 payload[0]; /* space remaining in packet (504 bytes)*/ + __u8 payload[]; /* space remaining in packet (504 bytes)*/ }; #define RFC1201_HDR_SIZE 4 @@ -69,7 +69,7 @@ struct arc_rfc1201 { */ struct arc_rfc1051 { __u8 proto; /* ARC_P_RFC1051_ARP/RFC1051_IP */ - __u8 payload[0]; /* 507 bytes */ + __u8 payload[]; /* 507 bytes */ }; #define RFC1051_HDR_SIZE 1 @@ -80,7 +80,7 @@ struct arc_rfc1051 { struct arc_eth_encap { __u8 proto; /* Always ARC_P_ETHER */ struct ethhdr eth; /* standard ethernet header (yuck!) */ - __u8 payload[0]; /* 493 bytes */ + __u8 payload[]; /* 493 bytes */ }; #define ETH_ENCAP_HDR_SIZE 14 diff --git a/include/uapi/linux/if_pppox.h b/include/uapi/linux/if_pppox.h index e7a693c28f16..9abd80dcc46f 100644 --- a/include/uapi/linux/if_pppox.h +++ b/include/uapi/linux/if_pppox.h @@ -122,7 +122,7 @@ struct sockaddr_pppol2tpv3in6 { struct pppoe_tag { __be16 tag_type; __be16 tag_len; - char tag_data[0]; + char tag_data[]; } __attribute__ ((packed)); /* Tag identifiers */ @@ -150,7 +150,7 @@ struct pppoe_hdr { __u8 code; __be16 sid; __be16 length; - struct pppoe_tag tag[0]; + struct pppoe_tag tag[]; } __packed; /* Length of entire PPPoE + PPP header */ diff --git a/include/uapi/linux/if_tun.h b/include/uapi/linux/if_tun.h index 454ae31b93c7..2ec07de1d73b 100644 --- a/include/uapi/linux/if_tun.h +++ b/include/uapi/linux/if_tun.h @@ -108,7 +108,7 @@ struct tun_pi { struct tun_filter { __u16 flags; /* TUN_FLT_ flags see above */ __u16 count; /* Number of addresses */ - __u8 addr[0][ETH_ALEN]; + __u8 addr[][ETH_ALEN]; }; #endif /* _UAPI__IF_TUN_H */ diff --git a/include/uapi/linux/igmp.h b/include/uapi/linux/igmp.h index 90c28bc466c6..5930f2437cd1 100644 --- a/include/uapi/linux/igmp.h +++ b/include/uapi/linux/igmp.h @@ -48,7 +48,7 @@ struct igmpv3_grec { __u8 grec_auxwords; __be16 grec_nsrcs; __be32 grec_mca; - __be32 grec_src[0]; + __be32 grec_src[]; }; struct igmpv3_report { @@ -57,7 +57,7 @@ struct igmpv3_report { __sum16 csum; __be16 resv2; __be16 ngrec; - struct igmpv3_grec grec[0]; + struct igmpv3_grec grec[]; }; struct igmpv3_query { @@ -78,7 +78,7 @@ struct igmpv3_query { #endif __u8 qqic; __be16 nsrcs; - __be32 srcs[0]; + __be32 srcs[]; }; #define IGMP_HOST_MEMBERSHIP_QUERY 0x11 /* From RFC1112 */ diff --git a/include/uapi/linux/inet_diag.h b/include/uapi/linux/inet_diag.h index 20ee93f0f876..50655de04c9b 100644 --- a/include/uapi/linux/inet_diag.h +++ b/include/uapi/linux/inet_diag.h @@ -104,7 +104,7 @@ struct inet_diag_hostcond { __u8 family; __u8 prefix_len; int port; - __be32 addr[0]; + __be32 addr[]; }; struct inet_diag_markcond { diff --git a/include/uapi/linux/inotify.h b/include/uapi/linux/inotify.h index 884b4846b630..b3e165853d5b 100644 --- a/include/uapi/linux/inotify.h +++ b/include/uapi/linux/inotify.h @@ -23,7 +23,7 @@ struct inotify_event { __u32 mask; /* watch mask */ __u32 cookie; /* cookie to synchronize two events */ __u32 len; /* length (including nulls) of name */ - char name[0]; /* stub for possible name */ + char name[]; /* stub for possible name */ }; /* the following are legal, implemented events that user-space can watch for */ diff --git a/include/uapi/linux/io_uring.h b/include/uapi/linux/io_uring.h index 776e0278f9dd..7822ef9d8628 100644 --- a/include/uapi/linux/io_uring.h +++ b/include/uapi/linux/io_uring.h @@ -486,7 +486,7 @@ struct io_uring_probe { __u8 ops_len; /* length of ops[] array below */ __u16 resv; __u32 resv2[3]; - struct io_uring_probe_op ops[0]; + struct io_uring_probe_op ops[]; }; struct io_uring_restriction { diff --git a/include/uapi/linux/ip.h b/include/uapi/linux/ip.h index e00bbb9c47bb..961ec16a26b8 100644 --- a/include/uapi/linux/ip.h +++ b/include/uapi/linux/ip.h @@ -112,13 +112,13 @@ struct ip_auth_hdr { __be16 reserved; __be32 spi; __be32 seq_no; /* Sequence number */ - __u8 auth_data[0]; /* Variable len but >=4. Mind the 64 bit alignment! */ + __u8 auth_data[]; /* Variable len but >=4. Mind the 64 bit alignment! */ }; struct ip_esp_hdr { __be32 spi; __be32 seq_no; /* Sequence number */ - __u8 enc_data[0]; /* Variable len but >=8. Mind the 64 bit alignment! */ + __u8 enc_data[]; /* Variable len but >=8. Mind the 64 bit alignment! */ }; struct ip_comp_hdr { diff --git a/include/uapi/linux/ip_vs.h b/include/uapi/linux/ip_vs.h index 4102ddcb4e14..1ed234e7f251 100644 --- a/include/uapi/linux/ip_vs.h +++ b/include/uapi/linux/ip_vs.h @@ -254,7 +254,7 @@ struct ip_vs_get_dests { unsigned int num_dests; /* the real servers */ - struct ip_vs_dest_entry entrytable[0]; + struct ip_vs_dest_entry entrytable[]; }; @@ -264,7 +264,7 @@ struct ip_vs_get_services { unsigned int num_services; /* service table */ - struct ip_vs_service_entry entrytable[0]; + struct ip_vs_service_entry entrytable[]; }; diff --git a/include/uapi/linux/iso_fs.h b/include/uapi/linux/iso_fs.h index a2555176f6d1..758178f5b52d 100644 --- a/include/uapi/linux/iso_fs.h +++ b/include/uapi/linux/iso_fs.h @@ -137,7 +137,7 @@ struct iso_path_table{ __u8 name_len[2]; /* 721 */ __u8 extent[4]; /* 731 */ __u8 parent[2]; /* 721 */ - char name[0]; + char name[]; } __attribute__((packed)); /* high sierra is identical to iso, except that the date is only 6 bytes, and @@ -154,7 +154,7 @@ struct iso_directory_record { __u8 interleave [ISODCL (28, 28)]; /* 711 */ __u8 volume_sequence_number [ISODCL (29, 32)]; /* 723 */ __u8 name_len [ISODCL (33, 33)]; /* 711 */ - char name [0]; + char name []; } __attribute__((packed)); #define ISOFS_BLOCK_BITS 11 diff --git a/include/uapi/linux/jffs2.h b/include/uapi/linux/jffs2.h index 784ba0b9690a..637ee4a793cf 100644 --- a/include/uapi/linux/jffs2.h +++ b/include/uapi/linux/jffs2.h @@ -123,7 +123,7 @@ struct jffs2_raw_dirent __u8 unused[2]; jint32_t node_crc; jint32_t name_crc; - __u8 name[0]; + __u8 name[]; }; /* The JFFS2 raw inode structure: Used for storage on physical media. */ @@ -155,7 +155,7 @@ struct jffs2_raw_inode jint16_t flags; /* See JFFS2_INO_FLAG_* */ jint32_t data_crc; /* CRC for the (compressed) data. */ jint32_t node_crc; /* CRC for the raw inode (excluding data) */ - __u8 data[0]; + __u8 data[]; }; struct jffs2_raw_xattr { @@ -170,7 +170,7 @@ struct jffs2_raw_xattr { jint16_t value_len; jint32_t data_crc; jint32_t node_crc; - __u8 data[0]; + __u8 data[]; } __attribute__((packed)); struct jffs2_raw_xref @@ -196,7 +196,7 @@ struct jffs2_raw_summary jint32_t padded; /* sum of the size of padding nodes */ jint32_t sum_crc; /* summary information crc */ jint32_t node_crc; /* node crc */ - jint32_t sum[0]; /* inode summary info */ + jint32_t sum[]; /* inode summary info */ }; union jffs2_node_union diff --git a/include/uapi/linux/kcov.h b/include/uapi/linux/kcov.h index 1d0350e44ae3..ed95dba9fa37 100644 --- a/include/uapi/linux/kcov.h +++ b/include/uapi/linux/kcov.h @@ -13,7 +13,7 @@ struct kcov_remote_arg { __u32 area_size; /* Length of coverage buffer in words */ __u32 num_handles; /* Size of handles array */ __aligned_u64 common_handle; - __aligned_u64 handles[0]; + __aligned_u64 handles[]; }; #define KCOV_REMOTE_MAX_HANDLES 0x100 diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h index 5088bd9f1922..74dc8bafcb9e 100644 --- a/include/uapi/linux/kvm.h +++ b/include/uapi/linux/kvm.h @@ -542,7 +542,7 @@ struct kvm_coalesced_mmio { struct kvm_coalesced_mmio_ring { __u32 first, last; - struct kvm_coalesced_mmio coalesced_mmio[0]; + struct kvm_coalesced_mmio coalesced_mmio[]; }; #define KVM_COALESCED_MMIO_MAX \ @@ -621,7 +621,7 @@ struct kvm_clear_dirty_log { /* for KVM_SET_SIGNAL_MASK */ struct kvm_signal_mask { __u32 len; - __u8 sigset[0]; + __u8 sigset[]; }; /* for KVM_TPR_ACCESS_REPORTING */ @@ -1221,7 +1221,7 @@ struct kvm_irq_routing_entry { struct kvm_irq_routing { __u32 nr; __u32 flags; - struct kvm_irq_routing_entry entries[0]; + struct kvm_irq_routing_entry entries[]; }; #endif @@ -1341,7 +1341,7 @@ struct kvm_dirty_tlb { struct kvm_reg_list { __u64 n; /* number of regs */ - __u64 reg[0]; + __u64 reg[]; }; struct kvm_one_reg { diff --git a/include/uapi/linux/minix_fs.h b/include/uapi/linux/minix_fs.h index 95dbcb17eacd..8d9ca8b2c357 100644 --- a/include/uapi/linux/minix_fs.h +++ b/include/uapi/linux/minix_fs.h @@ -97,11 +97,11 @@ struct minix3_super_block { struct minix_dir_entry { __u16 inode; - char name[0]; + char name[]; }; struct minix3_dir_entry { __u32 inode; - char name[0]; + char name[]; }; #endif diff --git a/include/uapi/linux/mmc/ioctl.h b/include/uapi/linux/mmc/ioctl.h index 27a39847d55c..e7401ade6822 100644 --- a/include/uapi/linux/mmc/ioctl.h +++ b/include/uapi/linux/mmc/ioctl.h @@ -58,7 +58,7 @@ struct mmc_ioc_cmd { */ struct mmc_ioc_multi_cmd { __u64 num_of_cmds; - struct mmc_ioc_cmd cmds[0]; + struct mmc_ioc_cmd cmds[]; }; #define MMC_IOC_CMD _IOWR(MMC_BLOCK_MAJOR, 0, struct mmc_ioc_cmd) diff --git a/include/uapi/linux/ndctl.h b/include/uapi/linux/ndctl.h index 17e02b64ea2e..73516e263627 100644 --- a/include/uapi/linux/ndctl.h +++ b/include/uapi/linux/ndctl.h @@ -30,25 +30,25 @@ struct nd_cmd_get_config_data_hdr { __u32 in_offset; __u32 in_length; __u32 status; - __u8 out_buf[0]; + __u8 out_buf[]; } __packed; struct nd_cmd_set_config_hdr { __u32 in_offset; __u32 in_length; - __u8 in_buf[0]; + __u8 in_buf[]; } __packed; struct nd_cmd_vendor_hdr { __u32 opcode; __u32 in_length; - __u8 in_buf[0]; + __u8 in_buf[]; } __packed; struct nd_cmd_vendor_tail { __u32 status; __u32 out_length; - __u8 out_buf[0]; + __u8 out_buf[]; } __packed; struct nd_cmd_ars_cap { @@ -86,7 +86,7 @@ struct nd_cmd_ars_status { __u32 reserved; __u64 err_address; __u64 length; - } __packed records[0]; + } __packed records[]; } __packed; struct nd_cmd_clear_error { diff --git a/include/uapi/linux/net_dropmon.h b/include/uapi/linux/net_dropmon.h index 1bbea8f0681e..84f622a66a7a 100644 --- a/include/uapi/linux/net_dropmon.h +++ b/include/uapi/linux/net_dropmon.h @@ -29,12 +29,12 @@ struct net_dm_config_entry { struct net_dm_config_msg { __u32 entries; - struct net_dm_config_entry options[0]; + struct net_dm_config_entry options[]; }; struct net_dm_alert_msg { __u32 entries; - struct net_dm_drop_point points[0]; + struct net_dm_drop_point points[]; }; struct net_dm_user_msg { diff --git a/include/uapi/linux/netfilter/x_tables.h b/include/uapi/linux/netfilter/x_tables.h index b8c6bb233ac1..796af83a963a 100644 --- a/include/uapi/linux/netfilter/x_tables.h +++ b/include/uapi/linux/netfilter/x_tables.h @@ -28,7 +28,7 @@ struct xt_entry_match { __u16 match_size; } u; - unsigned char data[0]; + unsigned char data[]; }; struct xt_entry_target { @@ -119,7 +119,7 @@ struct xt_counters_info { unsigned int num_counters; /* The counters (actually `number' of these). */ - struct xt_counters counters[0]; + struct xt_counters counters[]; }; #define XT_INV_PROTO 0x40 /* Invert the sense of PROTO. */ diff --git a/include/uapi/linux/netfilter_arp/arp_tables.h b/include/uapi/linux/netfilter_arp/arp_tables.h index bbf5af2b67a8..a6ac2463f787 100644 --- a/include/uapi/linux/netfilter_arp/arp_tables.h +++ b/include/uapi/linux/netfilter_arp/arp_tables.h @@ -109,7 +109,7 @@ struct arpt_entry struct xt_counters counters; /* The matches (if any), then the target. */ - unsigned char elems[0]; + unsigned char elems[]; }; /* @@ -181,7 +181,7 @@ struct arpt_replace { struct xt_counters __user *counters; /* The entries (hang off end: not really an array). */ - struct arpt_entry entries[0]; + struct arpt_entry entries[]; }; /* The argument to ARPT_SO_GET_ENTRIES. */ @@ -193,7 +193,7 @@ struct arpt_get_entries { unsigned int size; /* The entries. */ - struct arpt_entry entrytable[0]; + struct arpt_entry entrytable[]; }; /* Helper functions */ diff --git a/include/uapi/linux/netfilter_bridge/ebt_among.h b/include/uapi/linux/netfilter_bridge/ebt_among.h index 9acf757bc1f7..73b26a280c4f 100644 --- a/include/uapi/linux/netfilter_bridge/ebt_among.h +++ b/include/uapi/linux/netfilter_bridge/ebt_among.h @@ -40,7 +40,7 @@ struct ebt_mac_wormhash_tuple { struct ebt_mac_wormhash { int table[257]; int poolsize; - struct ebt_mac_wormhash_tuple pool[0]; + struct ebt_mac_wormhash_tuple pool[]; }; #define ebt_mac_wormhash_size(x) ((x) ? sizeof(struct ebt_mac_wormhash) \ diff --git a/include/uapi/linux/netfilter_ipv4/ip_tables.h b/include/uapi/linux/netfilter_ipv4/ip_tables.h index 50c7fee625ae..1485df28b239 100644 --- a/include/uapi/linux/netfilter_ipv4/ip_tables.h +++ b/include/uapi/linux/netfilter_ipv4/ip_tables.h @@ -121,7 +121,7 @@ struct ipt_entry { struct xt_counters counters; /* The matches (if any), then the target. */ - unsigned char elems[0]; + unsigned char elems[]; }; /* @@ -203,7 +203,7 @@ struct ipt_replace { struct xt_counters __user *counters; /* The entries (hang off end: not really an array). */ - struct ipt_entry entries[0]; + struct ipt_entry entries[]; }; /* The argument to IPT_SO_GET_ENTRIES. */ @@ -215,7 +215,7 @@ struct ipt_get_entries { unsigned int size; /* The entries. */ - struct ipt_entry entrytable[0]; + struct ipt_entry entrytable[]; }; /* Helper functions */ diff --git a/include/uapi/linux/netfilter_ipv6/ip6_tables.h b/include/uapi/linux/netfilter_ipv6/ip6_tables.h index d9e364f96a5c..766e8e0bcc68 100644 --- a/include/uapi/linux/netfilter_ipv6/ip6_tables.h +++ b/include/uapi/linux/netfilter_ipv6/ip6_tables.h @@ -243,7 +243,7 @@ struct ip6t_replace { struct xt_counters __user *counters; /* The entries (hang off end: not really an array). */ - struct ip6t_entry entries[0]; + struct ip6t_entry entries[]; }; /* The argument to IP6T_SO_GET_ENTRIES. */ @@ -255,7 +255,7 @@ struct ip6t_get_entries { unsigned int size; /* The entries. */ - struct ip6t_entry entrytable[0]; + struct ip6t_entry entrytable[]; }; /* Helper functions */ diff --git a/include/uapi/linux/perf_event.h b/include/uapi/linux/perf_event.h index d37629dbad72..4653834f078f 100644 --- a/include/uapi/linux/perf_event.h +++ b/include/uapi/linux/perf_event.h @@ -491,7 +491,7 @@ struct perf_event_query_bpf { /* * User provided buffer to store program ids */ - __u32 ids[0]; + __u32 ids[]; }; /* diff --git a/include/uapi/linux/pkt_cls.h b/include/uapi/linux/pkt_cls.h index 9a2ee1e39fad..ffbe230ef90b 100644 --- a/include/uapi/linux/pkt_cls.h +++ b/include/uapi/linux/pkt_cls.h @@ -256,7 +256,7 @@ struct tc_u32_sel { short hoff; __be32 hmask; - struct tc_u32_key keys[0]; + struct tc_u32_key keys[]; }; struct tc_u32_mark { @@ -268,7 +268,7 @@ struct tc_u32_mark { struct tc_u32_pcnt { __u64 rcnt; __u64 rhit; - __u64 kcnts[0]; + __u64 kcnts[]; }; /* Flags */ diff --git a/include/uapi/linux/raid/md_p.h b/include/uapi/linux/raid/md_p.h index e5a98a16f9b0..6c0aa577730f 100644 --- a/include/uapi/linux/raid/md_p.h +++ b/include/uapi/linux/raid/md_p.h @@ -303,7 +303,7 @@ struct mdp_superblock_1 { * into the 'roles' value. If a device is spare or faulty, then it doesn't * have a meaningful role. */ - __le16 dev_roles[0]; /* role in array, or 0xffff for a spare, or 0xfffe for faulty */ + __le16 dev_roles[]; /* role in array, or 0xffff for a spare, or 0xfffe for faulty */ }; /* feature_map bits */ diff --git a/include/uapi/linux/random.h b/include/uapi/linux/random.h index dcc1b3e6106f..e744c23582eb 100644 --- a/include/uapi/linux/random.h +++ b/include/uapi/linux/random.h @@ -41,7 +41,7 @@ struct rand_pool_info { int entropy_count; int buf_size; - __u32 buf[0]; + __u32 buf[]; }; /* diff --git a/include/uapi/linux/romfs_fs.h b/include/uapi/linux/romfs_fs.h index a7f1585accef..6aa05e792454 100644 --- a/include/uapi/linux/romfs_fs.h +++ b/include/uapi/linux/romfs_fs.h @@ -27,7 +27,7 @@ struct romfs_super_block { __be32 word1; __be32 size; __be32 checksum; - char name[0]; /* volume name */ + char name[]; /* volume name */ }; /* On disk inode */ @@ -37,7 +37,7 @@ struct romfs_inode { __be32 spec; __be32 size; __be32 checksum; - char name[0]; + char name[]; }; #define ROMFH_TYPE 7 diff --git a/include/uapi/linux/rtnetlink.h b/include/uapi/linux/rtnetlink.h index 83849a37db5b..eb2747d58a81 100644 --- a/include/uapi/linux/rtnetlink.h +++ b/include/uapi/linux/rtnetlink.h @@ -440,7 +440,7 @@ struct rtnexthop { /* RTA_VIA */ struct rtvia { __kernel_sa_family_t rtvia_family; - __u8 rtvia_addr[0]; + __u8 rtvia_addr[]; }; /* RTM_CACHEINFO */ diff --git a/include/uapi/linux/sctp.h b/include/uapi/linux/sctp.h index c4ff1ebd8bcc..ed7d4ecbf53d 100644 --- a/include/uapi/linux/sctp.h +++ b/include/uapi/linux/sctp.h @@ -365,7 +365,7 @@ struct sctp_assoc_change { __u16 sac_outbound_streams; __u16 sac_inbound_streams; sctp_assoc_t sac_assoc_id; - __u8 sac_info[0]; + __u8 sac_info[]; }; /* @@ -436,7 +436,7 @@ struct sctp_remote_error { __u32 sre_length; __be16 sre_error; sctp_assoc_t sre_assoc_id; - __u8 sre_data[0]; + __u8 sre_data[]; }; @@ -453,7 +453,7 @@ struct sctp_send_failed { __u32 ssf_error; struct sctp_sndrcvinfo ssf_info; sctp_assoc_t ssf_assoc_id; - __u8 ssf_data[0]; + __u8 ssf_data[]; }; struct sctp_send_failed_event { @@ -463,7 +463,7 @@ struct sctp_send_failed_event { __u32 ssf_error; struct sctp_sndinfo ssfe_info; sctp_assoc_t ssf_assoc_id; - __u8 ssf_data[0]; + __u8 ssf_data[]; }; /* @@ -1029,7 +1029,7 @@ struct sctp_getaddrs_old { struct sctp_getaddrs { sctp_assoc_t assoc_id; /*input*/ __u32 addr_num; /*output*/ - __u8 addrs[0]; /*output, variable size*/ + __u8 addrs[]; /*output, variable size*/ }; /* A socket user request obtained via SCTP_GET_ASSOC_STATS that retrieves diff --git a/include/uapi/linux/seg6.h b/include/uapi/linux/seg6.h index 286e8d6a8e98..13bcbc8bba32 100644 --- a/include/uapi/linux/seg6.h +++ b/include/uapi/linux/seg6.h @@ -30,7 +30,7 @@ struct ipv6_sr_hdr { __u8 flags; __u16 tag; - struct in6_addr segments[0]; + struct in6_addr segments[]; }; #define SR6_FLAG1_PROTECTED (1 << 6) diff --git a/include/uapi/linux/seg6_iptunnel.h b/include/uapi/linux/seg6_iptunnel.h index eb815e0d0ac3..a74294211290 100644 --- a/include/uapi/linux/seg6_iptunnel.h +++ b/include/uapi/linux/seg6_iptunnel.h @@ -26,7 +26,7 @@ enum { struct seg6_iptunnel_encap { int mode; - struct ipv6_sr_hdr srh[0]; + struct ipv6_sr_hdr srh[]; }; #define SEG6_IPTUN_ENCAP_SIZE(x) ((sizeof(*x)) + (((x)->srh->hdrlen + 1) << 3)) diff --git a/include/uapi/linux/stm.h b/include/uapi/linux/stm.h index 7bac318b4440..de3579c2cff0 100644 --- a/include/uapi/linux/stm.h +++ b/include/uapi/linux/stm.h @@ -36,7 +36,7 @@ struct stp_policy_id { /* padding */ __u16 __reserved_0; __u32 __reserved_1; - char id[0]; + char id[]; }; #define STP_POLICY_ID_SET _IOWR('%', 0, struct stp_policy_id) diff --git a/include/uapi/linux/target_core_user.h b/include/uapi/linux/target_core_user.h index 27ace512babd..fbd8ca67e107 100644 --- a/include/uapi/linux/target_core_user.h +++ b/include/uapi/linux/target_core_user.h @@ -152,7 +152,7 @@ struct tcmu_tmr_entry { __u32 cmd_cnt; __u64 __pad3; __u64 __pad4; - __u16 cmd_ids[0]; + __u16 cmd_ids[]; } __packed; #define TCMU_OP_ALIGN_SIZE sizeof(__u64) diff --git a/include/uapi/linux/usb/audio.h b/include/uapi/linux/usb/audio.h index 76b7c3f6cd0d..c917c53070d5 100644 --- a/include/uapi/linux/usb/audio.h +++ b/include/uapi/linux/usb/audio.h @@ -341,7 +341,7 @@ struct uac_feature_unit_descriptor { __u8 bUnitID; __u8 bSourceID; __u8 bControlSize; - __u8 bmaControls[0]; /* variable length */ + __u8 bmaControls[]; /* variable length */ } __attribute__((packed)); static inline __u8 uac_feature_unit_iFeature(struct uac_feature_unit_descriptor *desc) diff --git a/include/uapi/linux/usb/cdc.h b/include/uapi/linux/usb/cdc.h index 6d61550959ef..acf3852bb676 100644 --- a/include/uapi/linux/usb/cdc.h +++ b/include/uapi/linux/usb/cdc.h @@ -171,7 +171,7 @@ struct usb_cdc_mdlm_detail_desc { /* type is associated with mdlm_desc.bGUID */ __u8 bGuidDescriptorType; - __u8 bDetailData[0]; + __u8 bDetailData[]; } __attribute__ ((packed)); /* "OBEX Control Model Functional Descriptor" */ @@ -379,7 +379,7 @@ struct usb_cdc_ncm_ndp16 { __le32 dwSignature; __le16 wLength; __le16 wNextNdpIndex; - struct usb_cdc_ncm_dpe16 dpe16[0]; + struct usb_cdc_ncm_dpe16 dpe16[]; } __attribute__ ((packed)); /* 32-bit NCM Datagram Pointer Entry */ @@ -395,7 +395,7 @@ struct usb_cdc_ncm_ndp32 { __le16 wReserved6; __le32 dwNextNdpIndex; __le32 dwReserved12; - struct usb_cdc_ncm_dpe32 dpe32[0]; + struct usb_cdc_ncm_dpe32 dpe32[]; } __attribute__ ((packed)); /* CDC NCM subclass 3.2.1 and 3.2.2 */ diff --git a/include/uapi/linux/usb/ch9.h b/include/uapi/linux/usb/ch9.h index 17ce56198c9a..31fcfa084e63 100644 --- a/include/uapi/linux/usb/ch9.h +++ b/include/uapi/linux/usb/ch9.h @@ -818,7 +818,7 @@ struct usb_key_descriptor { __u8 tTKID[3]; __u8 bReserved; - __u8 bKeyData[0]; + __u8 bKeyData[]; } __attribute__((packed)); /*-------------------------------------------------------------------------*/ diff --git a/include/uapi/linux/usb/raw_gadget.h b/include/uapi/linux/usb/raw_gadget.h index 0be685272eb1..c7d2199134d7 100644 --- a/include/uapi/linux/usb/raw_gadget.h +++ b/include/uapi/linux/usb/raw_gadget.h @@ -60,7 +60,7 @@ enum usb_raw_event_type { struct usb_raw_event { __u32 type; __u32 length; - __u8 data[0]; + __u8 data[]; }; #define USB_RAW_IO_FLAGS_ZERO 0x0001 @@ -90,7 +90,7 @@ struct usb_raw_ep_io { __u16 ep; __u16 flags; __u32 length; - __u8 data[0]; + __u8 data[]; }; /* Maximum number of non-control endpoints in struct usb_raw_eps_info. */ diff --git a/include/uapi/linux/usbdevice_fs.h b/include/uapi/linux/usbdevice_fs.h index cf525cddeb94..74a84e02422a 100644 --- a/include/uapi/linux/usbdevice_fs.h +++ b/include/uapi/linux/usbdevice_fs.h @@ -131,7 +131,7 @@ struct usbdevfs_urb { unsigned int signr; /* signal to be sent on completion, or 0 if none should be sent. */ void __user *usercontext; - struct usbdevfs_iso_packet_desc iso_frame_desc[0]; + struct usbdevfs_iso_packet_desc iso_frame_desc[]; }; /* ioctls for talking directly to drivers */ @@ -176,7 +176,7 @@ struct usbdevfs_disconnect_claim { struct usbdevfs_streams { unsigned int num_streams; /* Not used by USBDEVFS_FREE_STREAMS */ unsigned int num_eps; - unsigned char eps[0]; + unsigned char eps[]; }; /* diff --git a/include/uapi/linux/vhost_types.h b/include/uapi/linux/vhost_types.h index 634cee485abb..391331a10879 100644 --- a/include/uapi/linux/vhost_types.h +++ b/include/uapi/linux/vhost_types.h @@ -107,7 +107,7 @@ struct vhost_memory_region { struct vhost_memory { __u32 nregions; __u32 padding; - struct vhost_memory_region regions[0]; + struct vhost_memory_region regions[]; }; /* VHOST_SCSI specific definitions */ @@ -135,7 +135,7 @@ struct vhost_scsi_target { struct vhost_vdpa_config { __u32 off; __u32 len; - __u8 buf[0]; + __u8 buf[]; }; /* vhost vdpa IOVA range diff --git a/include/uapi/linux/virtio_9p.h b/include/uapi/linux/virtio_9p.h index 441047432258..374b68f8ac6e 100644 --- a/include/uapi/linux/virtio_9p.h +++ b/include/uapi/linux/virtio_9p.h @@ -38,7 +38,7 @@ struct virtio_9p_config { /* length of the tag name */ __virtio16 tag_len; /* non-NULL terminated tag name */ - __u8 tag[0]; + __u8 tag[]; } __attribute__((packed)); #endif /* _LINUX_VIRTIO_9P_H */ diff --git a/include/uapi/linux/xfrm.h b/include/uapi/linux/xfrm.h index 65e13a099b1a..e8191e0c3b56 100644 --- a/include/uapi/linux/xfrm.h +++ b/include/uapi/linux/xfrm.h @@ -33,7 +33,7 @@ struct xfrm_sec_ctx { __u8 ctx_alg; __u16 ctx_len; __u32 ctx_sid; - char ctx_str[0]; + char ctx_str[]; }; /* Security Context Domains of Interpretation */ @@ -96,27 +96,27 @@ struct xfrm_replay_state_esn { __u32 oseq_hi; __u32 seq_hi; __u32 replay_window; - __u32 bmp[0]; + __u32 bmp[]; }; struct xfrm_algo { char alg_name[64]; unsigned int alg_key_len; /* in bits */ - char alg_key[0]; + char alg_key[]; }; struct xfrm_algo_auth { char alg_name[64]; unsigned int alg_key_len; /* in bits */ unsigned int alg_trunc_len; /* in bits */ - char alg_key[0]; + char alg_key[]; }; struct xfrm_algo_aead { char alg_name[64]; unsigned int alg_key_len; /* in bits */ unsigned int alg_icv_len; /* in bits */ - char alg_key[0]; + char alg_key[]; }; struct xfrm_stats { diff --git a/include/uapi/rdma/hfi/hfi1_user.h b/include/uapi/rdma/hfi/hfi1_user.h index d95ef9a2b032..1106a7c90b29 100644 --- a/include/uapi/rdma/hfi/hfi1_user.h +++ b/include/uapi/rdma/hfi/hfi1_user.h @@ -180,7 +180,7 @@ struct hfi1_sdma_comp_entry { struct hfi1_status { __aligned_u64 dev; /* device/hw status bits */ __aligned_u64 port; /* port state and status bits */ - char freezemsg[0]; + char freezemsg[]; }; enum sdma_req_opcode { diff --git a/include/uapi/rdma/ib_user_verbs.h b/include/uapi/rdma/ib_user_verbs.h index 7dd903d932e5..43672cb1fd57 100644 --- a/include/uapi/rdma/ib_user_verbs.h +++ b/include/uapi/rdma/ib_user_verbs.h @@ -158,18 +158,18 @@ struct ib_uverbs_ex_cmd_hdr { struct ib_uverbs_get_context { __aligned_u64 response; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_get_context_resp { __u32 async_fd; __u32 num_comp_vectors; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_query_device { __aligned_u64 response; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_query_device_resp { @@ -278,7 +278,7 @@ struct ib_uverbs_query_port { __aligned_u64 response; __u8 port_num; __u8 reserved[7]; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_query_port_resp { @@ -308,12 +308,12 @@ struct ib_uverbs_query_port_resp { struct ib_uverbs_alloc_pd { __aligned_u64 response; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_alloc_pd_resp { __u32 pd_handle; - __u32 driver_data[0]; + __u32 driver_data[]; }; struct ib_uverbs_dealloc_pd { @@ -324,12 +324,12 @@ struct ib_uverbs_open_xrcd { __aligned_u64 response; __u32 fd; __u32 oflags; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_open_xrcd_resp { __u32 xrcd_handle; - __u32 driver_data[0]; + __u32 driver_data[]; }; struct ib_uverbs_close_xrcd { @@ -343,14 +343,14 @@ struct ib_uverbs_reg_mr { __aligned_u64 hca_va; __u32 pd_handle; __u32 access_flags; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_reg_mr_resp { __u32 mr_handle; __u32 lkey; __u32 rkey; - __u32 driver_data[0]; + __u32 driver_data[]; }; struct ib_uverbs_rereg_mr { @@ -362,13 +362,13 @@ struct ib_uverbs_rereg_mr { __aligned_u64 hca_va; __u32 pd_handle; __u32 access_flags; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_rereg_mr_resp { __u32 lkey; __u32 rkey; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_dereg_mr { @@ -380,13 +380,13 @@ struct ib_uverbs_alloc_mw { __u32 pd_handle; __u8 mw_type; __u8 reserved[3]; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_alloc_mw_resp { __u32 mw_handle; __u32 rkey; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_dealloc_mw { @@ -408,7 +408,7 @@ struct ib_uverbs_create_cq { __u32 comp_vector; __s32 comp_channel; __u32 reserved; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; enum ib_uverbs_ex_create_cq_flags { @@ -442,13 +442,13 @@ struct ib_uverbs_resize_cq { __aligned_u64 response; __u32 cq_handle; __u32 cqe; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_resize_cq_resp { __u32 cqe; __u32 reserved; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_poll_cq { @@ -492,7 +492,7 @@ struct ib_uverbs_wc { struct ib_uverbs_poll_cq_resp { __u32 count; __u32 reserved; - struct ib_uverbs_wc wc[0]; + struct ib_uverbs_wc wc[]; }; struct ib_uverbs_req_notify_cq { @@ -585,7 +585,7 @@ struct ib_uverbs_create_qp { __u8 qp_type; __u8 is_srq; __u8 reserved; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; enum ib_uverbs_create_qp_mask { @@ -624,7 +624,7 @@ struct ib_uverbs_open_qp { __u32 qpn; __u8 qp_type; __u8 reserved[7]; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; /* also used for open response */ @@ -669,7 +669,7 @@ struct ib_uverbs_query_qp { __aligned_u64 response; __u32 qp_handle; __u32 attr_mask; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_query_qp_resp { @@ -703,7 +703,7 @@ struct ib_uverbs_query_qp_resp { __u8 alt_timeout; __u8 sq_sig_all; __u8 reserved[5]; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_modify_qp { @@ -824,7 +824,7 @@ struct ib_uverbs_post_send { __u32 wr_count; __u32 sge_count; __u32 wqe_size; - struct ib_uverbs_send_wr send_wr[0]; + struct ib_uverbs_send_wr send_wr[]; }; struct ib_uverbs_post_send_resp { @@ -843,7 +843,7 @@ struct ib_uverbs_post_recv { __u32 wr_count; __u32 sge_count; __u32 wqe_size; - struct ib_uverbs_recv_wr recv_wr[0]; + struct ib_uverbs_recv_wr recv_wr[]; }; struct ib_uverbs_post_recv_resp { @@ -856,7 +856,7 @@ struct ib_uverbs_post_srq_recv { __u32 wr_count; __u32 sge_count; __u32 wqe_size; - struct ib_uverbs_recv_wr recv[0]; + struct ib_uverbs_recv_wr recv[]; }; struct ib_uverbs_post_srq_recv_resp { @@ -869,12 +869,12 @@ struct ib_uverbs_create_ah { __u32 pd_handle; __u32 reserved; struct ib_uverbs_ah_attr attr; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_create_ah_resp { __u32 ah_handle; - __u32 driver_data[0]; + __u32 driver_data[]; }; struct ib_uverbs_destroy_ah { @@ -886,7 +886,7 @@ struct ib_uverbs_attach_mcast { __u32 qp_handle; __u16 mlid; __u16 reserved; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_detach_mcast { @@ -894,7 +894,7 @@ struct ib_uverbs_detach_mcast { __u32 qp_handle; __u16 mlid; __u16 reserved; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_flow_spec_hdr { @@ -1135,7 +1135,7 @@ struct ib_uverbs_flow_attr { * struct ib_flow_spec_xxx * struct ib_flow_spec_yyy */ - struct ib_uverbs_flow_spec_hdr flow_specs[0]; + struct ib_uverbs_flow_spec_hdr flow_specs[]; }; struct ib_uverbs_create_flow { @@ -1161,7 +1161,7 @@ struct ib_uverbs_create_srq { __u32 max_wr; __u32 max_sge; __u32 srq_limit; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_create_xsrq { @@ -1175,7 +1175,7 @@ struct ib_uverbs_create_xsrq { __u32 max_num_tags; __u32 xrcd_handle; __u32 cq_handle; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_create_srq_resp { @@ -1183,7 +1183,7 @@ struct ib_uverbs_create_srq_resp { __u32 max_wr; __u32 max_sge; __u32 srqn; - __u32 driver_data[0]; + __u32 driver_data[]; }; struct ib_uverbs_modify_srq { @@ -1191,14 +1191,14 @@ struct ib_uverbs_modify_srq { __u32 attr_mask; __u32 max_wr; __u32 srq_limit; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_query_srq { __aligned_u64 response; __u32 srq_handle; __u32 reserved; - __aligned_u64 driver_data[0]; + __aligned_u64 driver_data[]; }; struct ib_uverbs_query_srq_resp { @@ -1269,7 +1269,7 @@ struct ib_uverbs_ex_create_rwq_ind_table { * wq_handle1 * wq_handle2 */ - __u32 wq_handles[0]; + __u32 wq_handles[]; }; struct ib_uverbs_ex_create_rwq_ind_table_resp { diff --git a/include/uapi/rdma/rdma_user_cm.h b/include/uapi/rdma/rdma_user_cm.h index ed5a514305c1..7cea03581f79 100644 --- a/include/uapi/rdma/rdma_user_cm.h +++ b/include/uapi/rdma/rdma_user_cm.h @@ -184,7 +184,7 @@ struct rdma_ucm_query_addr_resp { struct rdma_ucm_query_path_resp { __u32 num_paths; __u32 reserved; - struct ib_path_rec_data path_data[0]; + struct ib_path_rec_data path_data[]; }; struct rdma_ucm_conn_param { diff --git a/include/uapi/rdma/rdma_user_ioctl_cmds.h b/include/uapi/rdma/rdma_user_ioctl_cmds.h index 38ab7accb7be..ab1aef17feb1 100644 --- a/include/uapi/rdma/rdma_user_ioctl_cmds.h +++ b/include/uapi/rdma/rdma_user_ioctl_cmds.h @@ -81,7 +81,7 @@ struct ib_uverbs_ioctl_hdr { __aligned_u64 reserved1; __u32 driver_id; __u32 reserved2; - struct ib_uverbs_attr attrs[0]; + struct ib_uverbs_attr attrs[]; }; #endif diff --git a/include/uapi/scsi/fc/fc_els.h b/include/uapi/scsi/fc/fc_els.h index c9812c5c2fc4..16782c360de3 100644 --- a/include/uapi/scsi/fc/fc_els.h +++ b/include/uapi/scsi/fc/fc_els.h @@ -264,7 +264,7 @@ struct fc_tlv_desc { * Size of descriptor excluding * desc_tag and desc_len fields. */ - __u8 desc_value[0]; /* Descriptor Value */ + __u8 desc_value[]; /* Descriptor Value */ }; /* Descriptor tag and len fields are considered the mandatory header @@ -1027,7 +1027,7 @@ struct fc_fn_li_desc { * threshold to caause the LI event */ __be32 pname_count; /* number of portname_list elements */ - __be64 pname_list[0]; /* list of N_Port_Names accessible + __be64 pname_list[]; /* list of N_Port_Names accessible * through the attached port */ }; @@ -1069,7 +1069,7 @@ struct fc_fn_peer_congn_desc { * congestion event */ __be32 pname_count; /* number of portname_list elements */ - __be64 pname_list[0]; /* list of N_Port_Names accessible + __be64 pname_list[]; /* list of N_Port_Names accessible * through the attached port */ }; @@ -1104,7 +1104,7 @@ struct fc_els_fpin { * Size of ELS excluding fpin_cmd, * fpin_zero and desc_len fields. */ - struct fc_tlv_desc fpin_desc[0]; /* Descriptor list */ + struct fc_tlv_desc fpin_desc[]; /* Descriptor list */ }; /* Diagnostic Function Descriptor - FPIN Registration */ @@ -1115,7 +1115,7 @@ struct fc_df_desc_fpin_reg { * desc_tag and desc_len fields. */ __be32 count; /* Number of desc_tags elements */ - __be32 desc_tags[0]; /* Array of Descriptor Tags. + __be32 desc_tags[]; /* Array of Descriptor Tags. * Each tag indicates a function * supported by the N_Port (request) * or by the N_Port and Fabric @@ -1135,7 +1135,7 @@ struct fc_els_rdf { * Size of ELS excluding fpin_cmd, * fpin_zero and desc_len fields. */ - struct fc_tlv_desc desc[0]; /* Descriptor list */ + struct fc_tlv_desc desc[]; /* Descriptor list */ }; /* @@ -1148,7 +1148,7 @@ struct fc_els_rdf_resp { * and desc_list_len fields. */ struct fc_els_lsri_desc lsri; - struct fc_tlv_desc desc[0]; /* Supported Descriptor list */ + struct fc_tlv_desc desc[]; /* Supported Descriptor list */ }; @@ -1231,7 +1231,7 @@ struct fc_els_edc { * Size of ELS excluding edc_cmd, * edc_zero and desc_len fields. */ - struct fc_tlv_desc desc[0]; + struct fc_tlv_desc desc[]; /* Diagnostic Descriptor list */ }; @@ -1245,7 +1245,7 @@ struct fc_els_edc_resp { * and desc_list_len fields. */ struct fc_els_lsri_desc lsri; - struct fc_tlv_desc desc[0]; + struct fc_tlv_desc desc[]; /* Supported Diagnostic Descriptor list */ }; diff --git a/include/uapi/scsi/scsi_bsg_fc.h b/include/uapi/scsi/scsi_bsg_fc.h index 3ae65e93235c..7f5930801f72 100644 --- a/include/uapi/scsi/scsi_bsg_fc.h +++ b/include/uapi/scsi/scsi_bsg_fc.h @@ -209,7 +209,7 @@ struct fc_bsg_host_vendor { __u64 vendor_id; /* start of vendor command area */ - __u32 vendor_cmd[0]; + __u32 vendor_cmd[]; }; /* Response: diff --git a/include/uapi/sound/asound.h b/include/uapi/sound/asound.h index 2d3e5df39a59..3974a2a911cc 100644 --- a/include/uapi/sound/asound.h +++ b/include/uapi/sound/asound.h @@ -1106,7 +1106,7 @@ struct snd_ctl_elem_value { struct snd_ctl_tlv { unsigned int numid; /* control element numeric identification */ unsigned int length; /* in bytes aligned to 4 */ - unsigned int tlv[0]; /* first TLV */ + unsigned int tlv[]; /* first TLV */ }; #define SNDRV_CTL_IOCTL_PVERSION _IOR('U', 0x00, int) diff --git a/include/uapi/sound/firewire.h b/include/uapi/sound/firewire.h index 39cf6eb75940..3532ac7046d7 100644 --- a/include/uapi/sound/firewire.h +++ b/include/uapi/sound/firewire.h @@ -38,11 +38,11 @@ struct snd_efw_transaction { __be32 category; __be32 command; __be32 status; - __be32 params[0]; + __be32 params[]; }; struct snd_firewire_event_efw_response { unsigned int type; - __be32 response[0]; /* some responses */ + __be32 response[]; /* some responses */ }; struct snd_firewire_event_digi00x_message { @@ -63,7 +63,7 @@ struct snd_firewire_tascam_change { struct snd_firewire_event_tascam_control { unsigned int type; - struct snd_firewire_tascam_change changes[0]; + struct snd_firewire_tascam_change changes[]; }; struct snd_firewire_event_motu_register_dsp_change { diff --git a/include/uapi/sound/skl-tplg-interface.h b/include/uapi/sound/skl-tplg-interface.h index a93c0decfdd5..f29899b179a6 100644 --- a/include/uapi/sound/skl-tplg-interface.h +++ b/include/uapi/sound/skl-tplg-interface.h @@ -151,7 +151,7 @@ struct skl_dfw_algo_data { __u32 rsvd:30; __u32 param_id; __u32 max; - char params[0]; + char params[]; } __packed; enum skl_tkn_dir { diff --git a/include/uapi/sound/sof/header.h b/include/uapi/sound/sof/header.h index 5f4518e7a972..dbf137516522 100644 --- a/include/uapi/sound/sof/header.h +++ b/include/uapi/sound/sof/header.h @@ -23,7 +23,7 @@ struct sof_abi_hdr { __u32 size; /**< size in bytes of data excl. this struct */ __u32 abi; /**< SOF ABI version */ __u32 reserved[4]; /**< reserved for future use */ - __u32 data[0]; /**< Component data - opaque to core */ + __u32 data[]; /**< Component data - opaque to core */ } __packed; #endif diff --git a/include/uapi/sound/usb_stream.h b/include/uapi/sound/usb_stream.h index 95419d8bbc16..ffdd3ea1e31d 100644 --- a/include/uapi/sound/usb_stream.h +++ b/include/uapi/sound/usb_stream.h @@ -61,7 +61,7 @@ struct usb_stream { unsigned inpacket_split_at; unsigned next_inpacket_split; unsigned next_inpacket_split_at; - struct usb_stream_packet inpacket[0]; + struct usb_stream_packet inpacket[]; }; enum usb_stream_state { diff --git a/tools/arch/x86/include/uapi/asm/kvm.h b/tools/arch/x86/include/uapi/asm/kvm.h index bf6e96011dfe..e135f4dcb19d 100644 --- a/tools/arch/x86/include/uapi/asm/kvm.h +++ b/tools/arch/x86/include/uapi/asm/kvm.h @@ -198,13 +198,13 @@ struct kvm_msrs { __u32 nmsrs; /* number of msrs in entries */ __u32 pad; - struct kvm_msr_entry entries[0]; + struct kvm_msr_entry entries[]; }; /* for KVM_GET_MSR_INDEX_LIST */ struct kvm_msr_list { __u32 nmsrs; /* number of msrs in entries */ - __u32 indices[0]; + __u32 indices[]; }; /* Maximum size of any access bitmap in bytes */ @@ -241,7 +241,7 @@ struct kvm_cpuid_entry { struct kvm_cpuid { __u32 nent; __u32 padding; - struct kvm_cpuid_entry entries[0]; + struct kvm_cpuid_entry entries[]; }; struct kvm_cpuid_entry2 { @@ -263,7 +263,7 @@ struct kvm_cpuid_entry2 { struct kvm_cpuid2 { __u32 nent; __u32 padding; - struct kvm_cpuid_entry2 entries[0]; + struct kvm_cpuid_entry2 entries[]; }; /* for KVM_GET_PIT and KVM_SET_PIT */ @@ -389,7 +389,7 @@ struct kvm_xsave { * the contents of CPUID leaf 0xD on the host. */ __u32 region[1024]; - __u32 extra[0]; + __u32 extra[]; }; #define KVM_MAX_XCRS 16 @@ -515,7 +515,7 @@ struct kvm_pmu_event_filter { __u32 fixed_counter_bitmap; __u32 flags; __u32 pad[4]; - __u64 events[0]; + __u64 events[]; }; #define KVM_PMU_EVENT_ALLOW 0 diff --git a/tools/include/uapi/drm/i915_drm.h b/tools/include/uapi/drm/i915_drm.h index 05c3642aaece..239b91b13c60 100644 --- a/tools/include/uapi/drm/i915_drm.h +++ b/tools/include/uapi/drm/i915_drm.h @@ -2060,7 +2060,7 @@ struct i915_context_engines_load_balance { __u64 mbz64; /* reserved for future use; must be zero */ - struct i915_engine_class_instance engines[0]; + struct i915_engine_class_instance engines[]; } __attribute__((packed)); #define I915_DEFINE_CONTEXT_ENGINES_LOAD_BALANCE(name__, N__) struct { \ @@ -2098,7 +2098,7 @@ struct i915_context_engines_bond { __u64 flags; /* all undefined flags must be zero */ __u64 mbz64[4]; /* reserved for future use; must be zero */ - struct i915_engine_class_instance engines[0]; + struct i915_engine_class_instance engines[]; } __attribute__((packed)); #define I915_DEFINE_CONTEXT_ENGINES_BOND(name__, N__) struct { \ @@ -2225,7 +2225,7 @@ struct i915_context_engines_parallel_submit { * length = width (i) * num_siblings (j) * index = j + i * num_siblings */ - struct i915_engine_class_instance engines[0]; + struct i915_engine_class_instance engines[]; } __packed; diff --git a/tools/include/uapi/linux/bpf.h b/tools/include/uapi/linux/bpf.h index f4009dbdf62d..e4b33ba06f00 100644 --- a/tools/include/uapi/linux/bpf.h +++ b/tools/include/uapi/linux/bpf.h @@ -79,7 +79,7 @@ struct bpf_insn { /* Key of an a BPF_MAP_TYPE_LPM_TRIE entry */ struct bpf_lpm_trie_key { __u32 prefixlen; /* up to 32 for AF_INET, 128 for AF_INET6 */ - __u8 data[0]; /* Arbitrary size */ + __u8 data[]; /* Arbitrary size */ }; struct bpf_cgroup_storage_key { diff --git a/tools/include/uapi/linux/fs.h b/tools/include/uapi/linux/fs.h index bdf7b404b3e7..b7b56871029c 100644 --- a/tools/include/uapi/linux/fs.h +++ b/tools/include/uapi/linux/fs.h @@ -90,7 +90,7 @@ struct file_dedupe_range { __u16 dest_count; /* in - total elements in info array */ __u16 reserved1; /* must be zero */ __u32 reserved2; /* must be zero */ - struct file_dedupe_range_info info[0]; + struct file_dedupe_range_info info[]; }; /* And dynamically-tunable limits and defaults: */ diff --git a/tools/include/uapi/linux/if_tun.h b/tools/include/uapi/linux/if_tun.h index 454ae31b93c7..2ec07de1d73b 100644 --- a/tools/include/uapi/linux/if_tun.h +++ b/tools/include/uapi/linux/if_tun.h @@ -108,7 +108,7 @@ struct tun_pi { struct tun_filter { __u16 flags; /* TUN_FLT_ flags see above */ __u16 count; /* Number of addresses */ - __u8 addr[0][ETH_ALEN]; + __u8 addr[][ETH_ALEN]; }; #endif /* _UAPI__IF_TUN_H */ diff --git a/tools/include/uapi/linux/kvm.h b/tools/include/uapi/linux/kvm.h index 6a184d260c7f..37ce8cbac322 100644 --- a/tools/include/uapi/linux/kvm.h +++ b/tools/include/uapi/linux/kvm.h @@ -539,7 +539,7 @@ struct kvm_coalesced_mmio { struct kvm_coalesced_mmio_ring { __u32 first, last; - struct kvm_coalesced_mmio coalesced_mmio[0]; + struct kvm_coalesced_mmio coalesced_mmio[]; }; #define KVM_COALESCED_MMIO_MAX \ @@ -618,7 +618,7 @@ struct kvm_clear_dirty_log { /* for KVM_SET_SIGNAL_MASK */ struct kvm_signal_mask { __u32 len; - __u8 sigset[0]; + __u8 sigset[]; }; /* for KVM_TPR_ACCESS_REPORTING */ @@ -1216,7 +1216,7 @@ struct kvm_irq_routing_entry { struct kvm_irq_routing { __u32 nr; __u32 flags; - struct kvm_irq_routing_entry entries[0]; + struct kvm_irq_routing_entry entries[]; }; #endif @@ -1335,7 +1335,7 @@ struct kvm_dirty_tlb { struct kvm_reg_list { __u64 n; /* number of regs */ - __u64 reg[0]; + __u64 reg[]; }; struct kvm_one_reg { diff --git a/tools/include/uapi/linux/perf_event.h b/tools/include/uapi/linux/perf_event.h index d37629dbad72..4653834f078f 100644 --- a/tools/include/uapi/linux/perf_event.h +++ b/tools/include/uapi/linux/perf_event.h @@ -491,7 +491,7 @@ struct perf_event_query_bpf { /* * User provided buffer to store program ids */ - __u32 ids[0]; + __u32 ids[]; }; /* diff --git a/tools/include/uapi/linux/pkt_cls.h b/tools/include/uapi/linux/pkt_cls.h index 12153771396a..3faee0199a9b 100644 --- a/tools/include/uapi/linux/pkt_cls.h +++ b/tools/include/uapi/linux/pkt_cls.h @@ -180,7 +180,7 @@ struct tc_u32_sel { short hoff; __be32 hmask; - struct tc_u32_key keys[0]; + struct tc_u32_key keys[]; }; struct tc_u32_mark { @@ -192,7 +192,7 @@ struct tc_u32_mark { struct tc_u32_pcnt { __u64 rcnt; __u64 rhit; - __u64 kcnts[0]; + __u64 kcnts[]; }; /* Flags */ diff --git a/tools/include/uapi/linux/seg6.h b/tools/include/uapi/linux/seg6.h index 286e8d6a8e98..f94baf154c47 100644 --- a/tools/include/uapi/linux/seg6.h +++ b/tools/include/uapi/linux/seg6.h @@ -30,7 +30,7 @@ struct ipv6_sr_hdr { __u8 flags; __u16 tag; - struct in6_addr segments[0]; + struct in6_addr segments[]; }; #define SR6_FLAG1_PROTECTED (1 << 6) @@ -49,7 +49,7 @@ struct ipv6_sr_hdr { struct sr6_tlv { __u8 type; __u8 len; - __u8 data[0]; + __u8 data[]; }; #endif diff --git a/tools/include/uapi/linux/usbdevice_fs.h b/tools/include/uapi/linux/usbdevice_fs.h index cf525cddeb94..74a84e02422a 100644 --- a/tools/include/uapi/linux/usbdevice_fs.h +++ b/tools/include/uapi/linux/usbdevice_fs.h @@ -131,7 +131,7 @@ struct usbdevfs_urb { unsigned int signr; /* signal to be sent on completion, or 0 if none should be sent. */ void __user *usercontext; - struct usbdevfs_iso_packet_desc iso_frame_desc[0]; + struct usbdevfs_iso_packet_desc iso_frame_desc[]; }; /* ioctls for talking directly to drivers */ @@ -176,7 +176,7 @@ struct usbdevfs_disconnect_claim { struct usbdevfs_streams { unsigned int num_streams; /* Not used by USBDEVFS_FREE_STREAMS */ unsigned int num_eps; - unsigned char eps[0]; + unsigned char eps[]; }; /* diff --git a/tools/include/uapi/sound/asound.h b/tools/include/uapi/sound/asound.h index 2d3e5df39a59..3974a2a911cc 100644 --- a/tools/include/uapi/sound/asound.h +++ b/tools/include/uapi/sound/asound.h @@ -1106,7 +1106,7 @@ struct snd_ctl_elem_value { struct snd_ctl_tlv { unsigned int numid; /* control element numeric identification */ unsigned int length; /* in bytes aligned to 4 */ - unsigned int tlv[0]; /* first TLV */ + unsigned int tlv[]; /* first TLV */ }; #define SNDRV_CTL_IOCTL_PVERSION _IOR('U', 0x00, int) -- 2.27.0