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 alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) (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 6DD18C433F5 for ; Wed, 16 Feb 2022 09:30:32 +0000 (UTC) Received: from alsa1.perex.cz (alsa1.perex.cz [207.180.221.201]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by alsa0.perex.cz (Postfix) with ESMTPS id AA7F11A3C; Wed, 16 Feb 2022 10:29:40 +0100 (CET) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa0.perex.cz AA7F11A3C DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alsa-project.org; s=default; t=1645003830; bh=DMett6vVXSj8wlqJaPBVitbC+1b/pFrWBdbwXSCqmvY=; h=Date:From:To:Subject:List-Id:List-Unsubscribe:List-Archive: List-Post:List-Help:List-Subscribe:From; b=LZ7OXW7tBP5mcsyDplyH2/gJSzEAxhFAB0rM98nhgZN8rWa12ABKkao+TY/V02num D3x0U6jZH5mzB+dOg9jwQbfsXnawwX7olilIJDNnwdFGjt7gbQDMRjFMW0UeTLAgfK i45reVWV+lJy+SjPOcf7ebTZaehkXRgCAacAKA70= Received: from alsa1.perex.cz (localhost.localdomain [127.0.0.1]) by alsa1.perex.cz (Postfix) with ESMTP id 62C99F80566; Wed, 16 Feb 2022 10:25:55 +0100 (CET) Received: by alsa1.perex.cz (Postfix, from userid 50401) id 96FF1F80159; Tue, 15 Feb 2022 18:40:20 +0100 (CET) Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by alsa1.perex.cz (Postfix) with ESMTPS id E4276F80100 for ; Tue, 15 Feb 2022 18:40:13 +0100 (CET) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa1.perex.cz E4276F80100 Authentication-Results: alsa1.perex.cz; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="YHAhsK9b" 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 95BA5615F7; Tue, 15 Feb 2022 17:40:09 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id C6721C340EB; Tue, 15 Feb 2022 17:40:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1644946809; bh=DMett6vVXSj8wlqJaPBVitbC+1b/pFrWBdbwXSCqmvY=; h=Date:From:To:Subject:From; b=YHAhsK9b4ceo93O7cGMZkhAJtHRB9CQ+4MLg6VhoAXIqUZPNOt2f2z/RHYaJLxO76 o1sCxEuNmr5hKqcrqdfi+pE1eKIsCJw9V851Cjnm9cHc2sRZx45hzEu6vQLDXrkmcu xKf2+PXhFhb8dbpeFBN+6vQWXHxPvhHISBgL9Fxux6eGzM+9JCAXaTGT3/3xrwLv7i m8KqkuUbReSbhvZRqSxYfdGT/EXjyAq6yFXtOj0CnyhrPV5rigOkg2Pp92zsFyGVAh 1grvtuR4WfTMHEo/CBi7F8KvXPKqUpdwIOcsL3Pbwr2lQCgLUtbCpkZ3x6BdjDlhc3 zFo6AQd/J/DOQ== Date: Tue, 15 Feb 2022 11:47:43 -0600 From: "Gustavo A. R. Silva" To: GR-QLogic-Storage-Upstream@marvell.com, linux-alpha@vger.kernel.org, linux-kernel@vger.kernel.org, linux-ia64@vger.kernel.org, linux-s390@vger.kernel.org, linux-sh@vger.kernel.org, sparclinux@vger.kernel.org, linux-um@lists.infradead.org, linux-xtensa@linux-xtensa.org, linux-crypto@vger.kernel.org, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, nouveau@lists.freedesktop.org, coresight@lists.linaro.org, linux-arm-kernel@lists.infradead.org, bcm-kernel-feedback-list@broadcom.com, netdev@vger.kernel.org, linux-omap@vger.kernel.org, linux-scsi@vger.kernel.org, target-devel@vger.kernel.org, mpi3mr-linuxdrv.pdl@broadcom.com, linux-staging@lists.linux.dev, linux-rpi-kernel@lists.infradead.org, sparmaintainer@unisys.com, linux-cifs@vger.kernel.org, samba-technical@lists.samba.org, linux-ext4@vger.kernel.org, linux-acpi@vger.kernel.org, devel@acpica.org, linux-arch@vger.kernel.org, linux-mm@kvack.org, greybus-dev@lists.linaro.org, linux-i3c@lists.infradead.org, linux-rdma@vger.kernel.org, linux-bluetooth@vger.kernel.org, alsa-devel@alsa-project.org, devicetree@vger.kernel.org, linux-perf-users@vger.kernel.org, "Gustavo A. R. Silva" , linux-hardening@vger.kernel.org Subject: [PATCH][next] treewide: Replace zero-length arrays with flexible-array members Message-ID: <20220215174743.GA878920@embeddedor> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit X-Mailman-Approved-At: Wed, 16 Feb 2022 10:25:42 +0100 X-BeenThere: alsa-devel@alsa-project.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: "Alsa-devel mailing list for ALSA developers - http://www.alsa-project.org" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: "Alsa-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: (next-20220214$ 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 ]; }; UAPI and wireless changes were intentionally excluded from this patch and will be sent out separately. [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 Signed-off-by: Gustavo A. R. Silva --- Hi all, I'm expecting to carry this patch in my tree, so it'd be great to get some Acks. And given the size of the patch, I'm only sending this to mailing lists. Thanks! arch/alpha/include/asm/hwrpb.h | 2 +- arch/ia64/include/asm/sal.h | 2 +- arch/s390/include/asm/ccwgroup.h | 2 +- arch/s390/include/asm/chsc.h | 2 +- arch/s390/include/asm/eadm.h | 2 +- arch/s390/include/asm/fcx.h | 4 ++-- arch/s390/include/asm/idals.h | 2 +- arch/s390/include/asm/sclp.h | 2 +- arch/s390/include/asm/sysinfo.h | 6 +++--- arch/sh/include/asm/thread_info.h | 2 +- arch/sparc/include/asm/vio.h | 10 +++++----- arch/um/include/shared/net_kern.h | 2 +- arch/x86/include/asm/microcode_amd.h | 2 +- arch/x86/include/asm/microcode_intel.h | 4 ++-- arch/x86/include/asm/pci.h | 2 +- arch/x86/include/asm/pci_x86.h | 2 +- arch/xtensa/include/asm/bootparam.h | 2 +- drivers/crypto/caam/pdb.h | 2 +- drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c | 2 +- drivers/gpu/drm/nouveau/include/nvfw/hs.h | 2 +- .../hwtracing/coresight/coresight-config.h | 2 +- drivers/misc/bcm-vk/bcm_vk.h | 2 +- .../misc/habanalabs/include/common/cpucp_if.h | 6 +++--- .../habanalabs/include/gaudi/gaudi_packets.h | 4 ++-- .../habanalabs/include/goya/goya_packets.h | 4 ++-- .../net/ethernet/freescale/enetc/enetc_hw.h | 2 +- drivers/net/ethernet/i825xx/sun3_82586.h | 2 +- .../net/ethernet/marvell/octeontx2/af/npc.h | 6 +++--- drivers/net/ethernet/qlogic/qed/qed_mfw_hsi.h | 2 +- drivers/net/ethernet/ti/davinci_mdio.c | 2 +- drivers/scsi/dpt/dpti_i2o.h | 2 +- drivers/scsi/elx/libefc_sli/sli4.h | 20 +++++++++---------- drivers/scsi/mpi3mr/mpi3mr.h | 2 +- drivers/scsi/qla2xxx/qla_bsg.h | 4 ++-- drivers/scsi/qla2xxx/qla_def.h | 2 +- drivers/scsi/qla2xxx/qla_edif_bsg.h | 4 ++-- drivers/scsi/qla2xxx/qla_fw.h | 2 +- drivers/scsi/qla4xxx/ql4_fw.h | 2 +- drivers/staging/r8188eu/include/ieee80211.h | 6 +++--- drivers/staging/r8188eu/include/rtw_cmd.h | 10 +++++----- drivers/staging/rtl8712/rtl871x_cmd.h | 8 ++++---- drivers/staging/rtl8723bs/include/ieee80211.h | 2 +- drivers/staging/rtl8723bs/include/rtw_cmd.h | 2 +- .../include/linux/raspberrypi/vchiq.h | 2 +- drivers/visorbus/vbuschannel.h | 2 +- fs/cifs/ntlmssp.h | 2 +- fs/ext4/fast_commit.h | 4 ++-- fs/ksmbd/ksmbd_netlink.h | 2 +- fs/ksmbd/ntlmssp.h | 6 +++--- fs/ksmbd/smb2pdu.h | 8 ++++---- fs/ksmbd/transport_rdma.c | 2 +- fs/ksmbd/xattr.h | 2 +- fs/xfs/scrub/attr.h | 2 +- include/acpi/actbl2.h | 2 +- include/asm-generic/tlb.h | 4 ++-- include/linux/greybus/greybus_manifest.h | 4 ++-- include/linux/greybus/hd.h | 2 +- include/linux/greybus/module.h | 2 +- include/linux/i3c/ccc.h | 6 +++--- include/linux/mlx5/mlx5_ifc_fpga.h | 2 +- include/linux/platform_data/brcmfmac.h | 2 +- .../linux/platform_data/cros_ec_commands.h | 2 +- include/net/bluetooth/mgmt.h | 2 +- include/net/ioam6.h | 2 +- include/sound/sof/channel_map.h | 4 ++-- scripts/dtc/libfdt/fdt.h | 4 ++-- sound/soc/intel/atom/sst-mfld-dsp.h | 4 ++-- sound/soc/intel/skylake/skl-topology.h | 2 +- tools/lib/perf/include/perf/event.h | 2 +- 69 files changed, 116 insertions(+), 116 deletions(-) diff --git a/arch/alpha/include/asm/hwrpb.h b/arch/alpha/include/asm/hwrpb.h index d8180e527a1e..fc76f36265ad 100644 --- a/arch/alpha/include/asm/hwrpb.h +++ b/arch/alpha/include/asm/hwrpb.h @@ -152,7 +152,7 @@ struct memdesc_struct { unsigned long chksum; unsigned long optional_pa; unsigned long numclusters; - struct memclust_struct cluster[0]; + struct memclust_struct cluster[]; }; struct dsr_struct { diff --git a/arch/ia64/include/asm/sal.h b/arch/ia64/include/asm/sal.h index 78f4f7b40435..22749a201e92 100644 --- a/arch/ia64/include/asm/sal.h +++ b/arch/ia64/include/asm/sal.h @@ -420,7 +420,7 @@ typedef struct sal_log_processor_info { * The rest of this structure consists of variable-length arrays, which can't be * expressed in C. */ - sal_log_mod_error_info_t info[0]; + sal_log_mod_error_info_t info[]; /* * This is what the rest looked like if C supported variable-length arrays: * diff --git a/arch/s390/include/asm/ccwgroup.h b/arch/s390/include/asm/ccwgroup.h index aa995d91cd1d..11d2fb3de4f5 100644 --- a/arch/s390/include/asm/ccwgroup.h +++ b/arch/s390/include/asm/ccwgroup.h @@ -25,7 +25,7 @@ struct ccwgroup_device { unsigned int count; struct device dev; struct work_struct ungroup_work; - struct ccw_device *cdev[0]; + struct ccw_device *cdev[]; }; /** diff --git a/arch/s390/include/asm/chsc.h b/arch/s390/include/asm/chsc.h index ae4d2549cd67..bb48ea380c0d 100644 --- a/arch/s390/include/asm/chsc.h +++ b/arch/s390/include/asm/chsc.h @@ -63,7 +63,7 @@ struct chsc_pnso_area { struct chsc_header response; u32:32; struct chsc_pnso_naihdr naihdr; - struct chsc_pnso_naid_l2 entries[0]; + struct chsc_pnso_naid_l2 entries[]; } __packed __aligned(PAGE_SIZE); #endif /* _ASM_S390_CHSC_H */ diff --git a/arch/s390/include/asm/eadm.h b/arch/s390/include/asm/eadm.h index 445fe4c8184a..06f795855af7 100644 --- a/arch/s390/include/asm/eadm.h +++ b/arch/s390/include/asm/eadm.h @@ -78,7 +78,7 @@ struct aob { struct aob_rq_header { struct scm_device *scmdev; - char data[0]; + char data[]; }; struct scm_device { diff --git a/arch/s390/include/asm/fcx.h b/arch/s390/include/asm/fcx.h index cff0749e9657..b8a028a36173 100644 --- a/arch/s390/include/asm/fcx.h +++ b/arch/s390/include/asm/fcx.h @@ -214,7 +214,7 @@ struct dcw_intrg_data { u32 :32; u64 time; u64 prog_id; - u8 prog_data[0]; + u8 prog_data[]; } __attribute__ ((packed)); #define DCW_FLAGS_CC (1 << (7 - 1)) @@ -241,7 +241,7 @@ struct dcw { u32 :8; u32 cd_count:8; u32 count; - u8 cd[0]; + u8 cd[]; } __attribute__ ((packed)); #define TCCB_FORMAT_DEFAULT 0x7f diff --git a/arch/s390/include/asm/idals.h b/arch/s390/include/asm/idals.h index 6fb7aced104a..40eae2c08d61 100644 --- a/arch/s390/include/asm/idals.h +++ b/arch/s390/include/asm/idals.h @@ -108,7 +108,7 @@ clear_normalized_cda(struct ccw1 * ccw) struct idal_buffer { size_t size; size_t page_order; - void *data[0]; + void *data[]; }; /* diff --git a/arch/s390/include/asm/sclp.h b/arch/s390/include/asm/sclp.h index c68ea35de498..22b3213c6c9d 100644 --- a/arch/s390/include/asm/sclp.h +++ b/arch/s390/include/asm/sclp.h @@ -112,7 +112,7 @@ struct zpci_report_error_header { * (OpenCrypto Successful Diagnostics Execution) */ u16 length; /* Length of Subsequent Data (up to 4K – SCLP header */ - u8 data[0]; /* Subsequent Data passed verbatim to SCLP ET 24 */ + u8 data[]; /* Subsequent Data passed verbatim to SCLP ET 24 */ } __packed; extern char *sclp_early_sccb; diff --git a/arch/s390/include/asm/sysinfo.h b/arch/s390/include/asm/sysinfo.h index fe7b3f8f0791..ab1c6316055c 100644 --- a/arch/s390/include/asm/sysinfo.h +++ b/arch/s390/include/asm/sysinfo.h @@ -67,12 +67,12 @@ struct sysinfo_1_2_2 { unsigned short cpus_configured; unsigned short cpus_standby; unsigned short cpus_reserved; - unsigned short adjustment[0]; + unsigned short adjustment[]; }; struct sysinfo_1_2_2_extension { unsigned int alt_capability; - unsigned short alt_adjustment[0]; + unsigned short alt_adjustment[]; }; struct sysinfo_2_2_1 { @@ -181,7 +181,7 @@ struct sysinfo_15_1_x { unsigned char reserved1; unsigned char mnest; unsigned char reserved2[4]; - union topology_entry tle[0]; + union topology_entry tle[]; }; int stsi(void *sysinfo, int fc, int sel1, int sel2); diff --git a/arch/sh/include/asm/thread_info.h b/arch/sh/include/asm/thread_info.h index 598d0184ffea..3a2d50d61fc9 100644 --- a/arch/sh/include/asm/thread_info.h +++ b/arch/sh/include/asm/thread_info.h @@ -33,7 +33,7 @@ struct thread_info { mm_segment_t addr_limit; /* thread address space */ unsigned long previous_sp; /* sp of previous stack in case of nested IRQ stacks */ - __u8 supervisor_stack[0]; + __u8 supervisor_stack[]; }; #endif diff --git a/arch/sparc/include/asm/vio.h b/arch/sparc/include/asm/vio.h index 8a1a83bbb6d5..2d7bdf665fd3 100644 --- a/arch/sparc/include/asm/vio.h +++ b/arch/sparc/include/asm/vio.h @@ -70,7 +70,7 @@ struct vio_dring_register { #define VIO_RX_DRING_DATA 0x0004 u16 resv; u32 num_cookies; - struct ldc_trans_cookie cookies[0]; + struct ldc_trans_cookie cookies[]; }; struct vio_dring_unregister { @@ -161,7 +161,7 @@ struct vio_disk_desc { u64 size; u32 ncookies; u32 resv2; - struct ldc_trans_cookie cookies[0]; + struct ldc_trans_cookie cookies[]; }; #define VIO_DISK_VNAME_LEN 8 @@ -200,13 +200,13 @@ struct vio_disk_devid { u16 resv; u16 type; u32 len; - char id[0]; + char id[]; }; struct vio_disk_efi { u64 lba; u64 len; - char data[0]; + char data[]; }; /* VIO net specific structures and defines */ @@ -246,7 +246,7 @@ struct vio_net_desc { struct vio_dring_hdr hdr; u32 size; u32 ncookies; - struct ldc_trans_cookie cookies[0]; + struct ldc_trans_cookie cookies[]; }; struct vio_net_dext { diff --git a/arch/um/include/shared/net_kern.h b/arch/um/include/shared/net_kern.h index 441a8a309329..67b2e9a1f2e5 100644 --- a/arch/um/include/shared/net_kern.h +++ b/arch/um/include/shared/net_kern.h @@ -39,7 +39,7 @@ struct uml_net_private { void (*add_address)(unsigned char *, unsigned char *, void *); void (*delete_address)(unsigned char *, unsigned char *, void *); - char user[0]; + char user[]; }; struct net_kern_info { diff --git a/arch/x86/include/asm/microcode_amd.h b/arch/x86/include/asm/microcode_amd.h index 7063b5a43220..ac31f9140d07 100644 --- a/arch/x86/include/asm/microcode_amd.h +++ b/arch/x86/include/asm/microcode_amd.h @@ -38,7 +38,7 @@ struct microcode_header_amd { struct microcode_amd { struct microcode_header_amd hdr; - unsigned int mpb[0]; + unsigned int mpb[]; }; #define PATCH_MAX_SIZE (3 * PAGE_SIZE) diff --git a/arch/x86/include/asm/microcode_intel.h b/arch/x86/include/asm/microcode_intel.h index d85a07d7154f..4c92cea7e4b5 100644 --- a/arch/x86/include/asm/microcode_intel.h +++ b/arch/x86/include/asm/microcode_intel.h @@ -19,7 +19,7 @@ struct microcode_header_intel { struct microcode_intel { struct microcode_header_intel hdr; - unsigned int bits[0]; + unsigned int bits[]; }; /* microcode format is extended from prescott processors */ @@ -33,7 +33,7 @@ struct extended_sigtable { unsigned int count; unsigned int cksum; unsigned int reserved[3]; - struct extended_signature sigs[0]; + struct extended_signature sigs[]; }; #define DEFAULT_UCODE_DATASIZE (2000) diff --git a/arch/x86/include/asm/pci.h b/arch/x86/include/asm/pci.h index d2c76c8d8cfd..f3fd5928bcbb 100644 --- a/arch/x86/include/asm/pci.h +++ b/arch/x86/include/asm/pci.h @@ -135,7 +135,7 @@ struct pci_setup_rom { unsigned long bus; unsigned long device; unsigned long function; - uint8_t romdata[0]; + uint8_t romdata[]; }; #endif /* _ASM_X86_PCI_H */ diff --git a/arch/x86/include/asm/pci_x86.h b/arch/x86/include/asm/pci_x86.h index 490411dba438..3fb6fc596095 100644 --- a/arch/x86/include/asm/pci_x86.h +++ b/arch/x86/include/asm/pci_x86.h @@ -87,7 +87,7 @@ struct irq_routing_table { u32 miniport_data; /* Crap */ u8 rfu[11]; u8 checksum; /* Modulo 256 checksum must give 0 */ - struct irq_info slots[0]; + struct irq_info slots[]; } __attribute__((packed)); extern unsigned int pcibios_irq_mask; diff --git a/arch/xtensa/include/asm/bootparam.h b/arch/xtensa/include/asm/bootparam.h index 892aab399ac8..6333bd1eb9d2 100644 --- a/arch/xtensa/include/asm/bootparam.h +++ b/arch/xtensa/include/asm/bootparam.h @@ -34,7 +34,7 @@ typedef struct bp_tag { unsigned short id; /* tag id */ unsigned short size; /* size of this record excluding the structure*/ - unsigned long data[0]; /* data */ + unsigned long data[]; /* data */ } bp_tag_t; struct bp_meminfo { diff --git a/drivers/crypto/caam/pdb.h b/drivers/crypto/caam/pdb.h index 8ccc22075043..4b1bcf53f7ac 100644 --- a/drivers/crypto/caam/pdb.h +++ b/drivers/crypto/caam/pdb.h @@ -144,7 +144,7 @@ struct ipsec_encap_pdb { }; u32 spi; u32 ip_hdr_len; - u32 ip_hdr[0]; + u32 ip_hdr[]; }; /** diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c b/drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c index 1a1edae67e4e..3acee0060e23 100644 --- a/drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c @@ -51,7 +51,7 @@ struct __guc_ads_blob { struct guc_gt_system_info system_info; struct guc_engine_usage engine_usage; /* From here on, location is dynamic! Refer to above diagram. */ - struct guc_mmio_reg regset[0]; + struct guc_mmio_reg regset[]; } __packed; static u32 guc_ads_regset_size(struct intel_guc *guc) diff --git a/drivers/gpu/drm/nouveau/include/nvfw/hs.h b/drivers/gpu/drm/nouveau/include/nvfw/hs.h index 64d0d32200c2..b53bbc4cd130 100644 --- a/drivers/gpu/drm/nouveau/include/nvfw/hs.h +++ b/drivers/gpu/drm/nouveau/include/nvfw/hs.h @@ -23,7 +23,7 @@ struct nvfw_hs_load_header { u32 data_dma_base; u32 data_size; u32 num_apps; - u32 apps[0]; + u32 apps[]; }; const struct nvfw_hs_load_header * diff --git a/drivers/hwtracing/coresight/coresight-config.h b/drivers/hwtracing/coresight/coresight-config.h index 9bd44b940add..2e1670523461 100644 --- a/drivers/hwtracing/coresight/coresight-config.h +++ b/drivers/hwtracing/coresight/coresight-config.h @@ -231,7 +231,7 @@ struct cscfg_config_csdev { bool enabled; struct list_head node; int nr_feat; - struct cscfg_feature_csdev *feats_csdev[0]; + struct cscfg_feature_csdev *feats_csdev[]; }; /** diff --git a/drivers/misc/bcm-vk/bcm_vk.h b/drivers/misc/bcm-vk/bcm_vk.h index a1338f375589..25d51222eedf 100644 --- a/drivers/misc/bcm-vk/bcm_vk.h +++ b/drivers/misc/bcm-vk/bcm_vk.h @@ -311,7 +311,7 @@ struct bcm_vk_peer_log { u32 wr_idx; u32 buf_size; u32 mask; - char data[0]; + char data[]; }; /* max buf size allowed */ diff --git a/drivers/misc/habanalabs/include/common/cpucp_if.h b/drivers/misc/habanalabs/include/common/cpucp_if.h index 737c39f33f05..f9c4acc9bf5a 100644 --- a/drivers/misc/habanalabs/include/common/cpucp_if.h +++ b/drivers/misc/habanalabs/include/common/cpucp_if.h @@ -540,19 +540,19 @@ struct cpucp_packet { struct cpucp_unmask_irq_arr_packet { struct cpucp_packet cpucp_pkt; __le32 length; - __le32 irqs[0]; + __le32 irqs[]; }; struct cpucp_nic_status_packet { struct cpucp_packet cpucp_pkt; __le32 length; - __le32 data[0]; + __le32 data[]; }; struct cpucp_array_data_packet { struct cpucp_packet cpucp_pkt; __le32 length; - __le32 data[0]; + __le32 data[]; }; enum cpucp_packet_rc { diff --git a/drivers/misc/habanalabs/include/gaudi/gaudi_packets.h b/drivers/misc/habanalabs/include/gaudi/gaudi_packets.h index 6e097ace2e96..66fc083a7c6a 100644 --- a/drivers/misc/habanalabs/include/gaudi/gaudi_packets.h +++ b/drivers/misc/habanalabs/include/gaudi/gaudi_packets.h @@ -54,7 +54,7 @@ struct gaudi_packet { /* The rest of the packet data follows. Use the corresponding * packet_XXX struct to deference the data, based on packet type */ - u8 contents[0]; + u8 contents[]; }; struct packet_nop { @@ -75,7 +75,7 @@ struct packet_wreg32 { struct packet_wreg_bulk { __le32 size64; __le32 ctl; - __le64 values[0]; /* data starts here */ + __le64 values[]; /* data starts here */ }; #define GAUDI_PKT_LONG_CTL_OP_SHIFT 20 diff --git a/drivers/misc/habanalabs/include/goya/goya_packets.h b/drivers/misc/habanalabs/include/goya/goya_packets.h index ef54bad20509..50ce5175b63a 100644 --- a/drivers/misc/habanalabs/include/goya/goya_packets.h +++ b/drivers/misc/habanalabs/include/goya/goya_packets.h @@ -62,7 +62,7 @@ struct goya_packet { /* The rest of the packet data follows. Use the corresponding * packet_XXX struct to deference the data, based on packet type */ - u8 contents[0]; + u8 contents[]; }; struct packet_nop { @@ -86,7 +86,7 @@ struct packet_wreg32 { struct packet_wreg_bulk { __le32 size64; __le32 ctl; - __le64 values[0]; /* data starts here */ + __le64 values[]; /* data starts here */ }; struct packet_msg_long { diff --git a/drivers/net/ethernet/freescale/enetc/enetc_hw.h b/drivers/net/ethernet/freescale/enetc/enetc_hw.h index 1514e6a4a3ff..ce5b677e8c2f 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc_hw.h +++ b/drivers/net/ethernet/freescale/enetc/enetc_hw.h @@ -881,7 +881,7 @@ struct sgcl_data { u32 bth; u32 ct; u32 cte; - struct sgce sgcl[0]; + struct sgce sgcl[]; }; #define ENETC_CBDR_FMI_MR BIT(0) diff --git a/drivers/net/ethernet/i825xx/sun3_82586.h b/drivers/net/ethernet/i825xx/sun3_82586.h index 79aef681ac85..451cb3d26cb5 100644 --- a/drivers/net/ethernet/i825xx/sun3_82586.h +++ b/drivers/net/ethernet/i825xx/sun3_82586.h @@ -250,7 +250,7 @@ struct mcsetup_cmd_struct unsigned short cmd_cmd; unsigned short cmd_link; unsigned short mc_cnt; /* number of bytes in the MC-List */ - unsigned char mc_list[0][6]; /* pointer to 6 bytes entries */ + unsigned char mc_list[][6]; /* pointer to 6 bytes entries */ }; /* diff --git a/drivers/net/ethernet/marvell/octeontx2/af/npc.h b/drivers/net/ethernet/marvell/octeontx2/af/npc.h index 77fd39e2c8db..9b6e587e78b4 100644 --- a/drivers/net/ethernet/marvell/octeontx2/af/npc.h +++ b/drivers/net/ethernet/marvell/octeontx2/af/npc.h @@ -455,7 +455,7 @@ struct npc_coalesced_kpu_prfl { u8 name[NPC_NAME_LEN]; /* KPU Profile name */ u64 version; /* KPU firmware/profile version */ u8 num_prfl; /* No of NPC profiles. */ - u16 prfl_sz[0]; + u16 prfl_sz[]; }; struct npc_mcam_kex { @@ -482,7 +482,7 @@ struct npc_kpu_fwdata { * struct npc_kpu_profile_cam[entries]; * struct npc_kpu_profile_action[entries]; */ - u8 data[0]; + u8 data[]; } __packed; struct npc_lt_def { @@ -572,7 +572,7 @@ struct npc_kpu_profile_fwdata { * Custom KPU CAM and ACTION configuration entries. * struct npc_kpu_fwdata kpu[kpus]; */ - u8 data[0]; + u8 data[]; } __packed; struct rvu_npc_mcam_rule { diff --git a/drivers/net/ethernet/qlogic/qed/qed_mfw_hsi.h b/drivers/net/ethernet/qlogic/qed/qed_mfw_hsi.h index b70ee8200e15..6459dd3feb37 100644 --- a/drivers/net/ethernet/qlogic/qed/qed_mfw_hsi.h +++ b/drivers/net/ethernet/qlogic/qed/qed_mfw_hsi.h @@ -2470,6 +2470,6 @@ struct nvm_meta_bin_t { u32 version; #define NVM_META_BIN_VERSION 1 u32 num_options; - u32 options[0]; + u32 options[]; }; #endif diff --git a/drivers/net/ethernet/ti/davinci_mdio.c b/drivers/net/ethernet/ti/davinci_mdio.c index a4efd5e35158..fce2626e34fa 100644 --- a/drivers/net/ethernet/ti/davinci_mdio.c +++ b/drivers/net/ethernet/ti/davinci_mdio.c @@ -70,7 +70,7 @@ struct davinci_mdio_regs { #define USERACCESS_DATA (0xffff) u32 physel; - } user[0]; + } user[]; }; static const struct mdio_platform_data default_pdata = { diff --git a/drivers/scsi/dpt/dpti_i2o.h b/drivers/scsi/dpt/dpti_i2o.h index bf0daeeb50a9..e1fbbf55c09d 100644 --- a/drivers/scsi/dpt/dpti_i2o.h +++ b/drivers/scsi/dpt/dpti_i2o.h @@ -123,7 +123,7 @@ struct i2o_sys_tbl u32 change_ind; u32 reserved2; u32 reserved3; - struct i2o_sys_tbl_entry iops[0]; + struct i2o_sys_tbl_entry iops[]; }; /* diff --git a/drivers/scsi/elx/libefc_sli/sli4.h b/drivers/scsi/elx/libefc_sli/sli4.h index ee2a9e65a88d..38af166cc786 100644 --- a/drivers/scsi/elx/libefc_sli/sli4.h +++ b/drivers/scsi/elx/libefc_sli/sli4.h @@ -609,7 +609,7 @@ struct sli4_rqst_cmn_create_cq_v2 { __le16 cqe_count; __le16 rsvd30; __le32 rsvd32; - struct sli4_dmaaddr page_phys_addr[0]; + struct sli4_dmaaddr page_phys_addr[]; }; enum sli4_create_cqset_e { @@ -634,7 +634,7 @@ struct sli4_rqst_cmn_create_cq_set_v0 { __le16 num_cq_req; __le16 dw6w1_flags; __le16 eq_id[16]; - struct sli4_dmaaddr page_phys_addr[0]; + struct sli4_dmaaddr page_phys_addr[]; }; /* CQE count */ @@ -764,7 +764,7 @@ struct sli4_rqst_cmn_create_mq_ext { __le32 dw7_val; __le32 dw8_flags; __le32 rsvd36; - struct sli4_dmaaddr page_phys_addr[0]; + struct sli4_dmaaddr page_phys_addr[]; }; struct sli4_rsp_cmn_create_mq_ext { @@ -802,7 +802,7 @@ struct sli4_rqst_cmn_create_cq_v0 { __le32 dw6_flags; __le32 rsvd28; __le32 rsvd32; - struct sli4_dmaaddr page_phys_addr[0]; + struct sli4_dmaaddr page_phys_addr[]; }; enum sli4_create_rq_e { @@ -887,7 +887,7 @@ struct sli4_rqst_rq_create_v2 { __le16 base_cq_id; __le16 rsvd26; __le32 rsvd42; - struct sli4_dmaaddr page_phys_addr[0]; + struct sli4_dmaaddr page_phys_addr[]; }; struct sli4_rsp_rq_create_v2 { @@ -3168,7 +3168,7 @@ struct sli4_rqst_cmn_read_object { __le32 read_offset; u8 object_name[104]; __le32 host_buffer_descriptor_count; - struct sli4_bde host_buffer_descriptor[0]; + struct sli4_bde host_buffer_descriptor[]; }; #define RSP_COM_READ_OBJ_EOF 0x80000000 @@ -3191,7 +3191,7 @@ struct sli4_rqst_cmn_write_object { __le32 write_offset; u8 object_name[104]; __le32 host_buffer_descriptor_count; - struct sli4_bde host_buffer_descriptor[0]; + struct sli4_bde host_buffer_descriptor[]; }; #define RSP_CHANGE_STATUS 0xff @@ -3217,7 +3217,7 @@ struct sli4_rqst_cmn_read_object_list { __le32 read_offset; u8 object_name[104]; __le32 host_buffer_descriptor_count; - struct sli4_bde host_buffer_descriptor[0]; + struct sli4_bde host_buffer_descriptor[]; }; enum sli4_rqst_set_dump_flags { @@ -3342,7 +3342,7 @@ struct sli4_rspource_descriptor_v1 { u8 descriptor_type; u8 descriptor_length; __le16 rsvd16; - __le32 type_specific[0]; + __le32 type_specific[]; }; enum sli4_pcie_desc_flags { @@ -3474,7 +3474,7 @@ struct sli4_rqst_post_hdr_templates { struct sli4_rqst_hdr hdr; __le16 rpi_offset; __le16 page_count; - struct sli4_dmaaddr page_descriptor[0]; + struct sli4_dmaaddr page_descriptor[]; }; #define SLI4_HDR_TEMPLATE_SIZE 64 diff --git a/drivers/scsi/mpi3mr/mpi3mr.h b/drivers/scsi/mpi3mr/mpi3mr.h index fc4eaf6d1e47..fb7d8775c9f7 100644 --- a/drivers/scsi/mpi3mr/mpi3mr.h +++ b/drivers/scsi/mpi3mr/mpi3mr.h @@ -878,7 +878,7 @@ struct mpi3mr_fwevt { bool process_evt; u32 evt_ctx; struct kref ref_count; - char event_data[0] __aligned(4); + char event_data[] __aligned(4); }; diff --git a/drivers/scsi/qla2xxx/qla_bsg.h b/drivers/scsi/qla2xxx/qla_bsg.h index 0f8a4c7e52a2..6d2b0a7436c1 100644 --- a/drivers/scsi/qla2xxx/qla_bsg.h +++ b/drivers/scsi/qla2xxx/qla_bsg.h @@ -157,7 +157,7 @@ struct qla84_msg_mgmt { uint16_t rsrvd; struct qla84_mgmt_param mgmtp;/* parameters for cmd */ uint32_t len; /* bytes in payload following this struct */ - uint8_t payload[0]; /* payload for cmd */ + uint8_t payload[]; /* payload for cmd */ }; struct qla_bsg_a84_mgmt { @@ -216,7 +216,7 @@ struct qla_image_version { struct qla_image_version_list { uint32_t count; - struct qla_image_version version[0]; + struct qla_image_version version[]; } __packed; struct qla_status_reg { diff --git a/drivers/scsi/qla2xxx/qla_def.h b/drivers/scsi/qla2xxx/qla_def.h index 9ebf4a234d9a..b6434c72dee3 100644 --- a/drivers/scsi/qla2xxx/qla_def.h +++ b/drivers/scsi/qla2xxx/qla_def.h @@ -5410,7 +5410,7 @@ struct ql_vnd_stat_entry { struct ql_vnd_stats { u64 entry_count; /* Num of entries */ u64 rservd; - struct ql_vnd_stat_entry entry[0]; /* Place holder of entries */ + struct ql_vnd_stat_entry entry[]; /* Place holder of entries */ } __packed; struct ql_vnd_host_stats_resp { diff --git a/drivers/scsi/qla2xxx/qla_edif_bsg.h b/drivers/scsi/qla2xxx/qla_edif_bsg.h index 53026d82ebff..5a26c77157da 100644 --- a/drivers/scsi/qla2xxx/qla_edif_bsg.h +++ b/drivers/scsi/qla2xxx/qla_edif_bsg.h @@ -121,7 +121,7 @@ struct app_pinfo { struct app_pinfo_reply { uint8_t port_count; uint8_t reserved[VND_CMD_APP_RESERVED_SIZE]; - struct app_pinfo ports[0]; + struct app_pinfo ports[]; } __packed; struct app_sinfo_req { @@ -140,7 +140,7 @@ struct app_sinfo { struct app_stats_reply { uint8_t elem_count; - struct app_sinfo elem[0]; + struct app_sinfo elem[]; } __packed; struct qla_sa_update_frame { diff --git a/drivers/scsi/qla2xxx/qla_fw.h b/drivers/scsi/qla2xxx/qla_fw.h index 073d06e88c58..0bb1d562f0bf 100644 --- a/drivers/scsi/qla2xxx/qla_fw.h +++ b/drivers/scsi/qla2xxx/qla_fw.h @@ -1706,7 +1706,7 @@ struct qla_flt_header { __le16 length; __le16 checksum; __le16 unused; - struct qla_flt_region region[0]; + struct qla_flt_region region[]; }; #define FLT_REGION_SIZE 16 diff --git a/drivers/scsi/qla4xxx/ql4_fw.h b/drivers/scsi/qla4xxx/ql4_fw.h index 4e1764df0a73..860ec61b51b9 100644 --- a/drivers/scsi/qla4xxx/ql4_fw.h +++ b/drivers/scsi/qla4xxx/ql4_fw.h @@ -1028,7 +1028,7 @@ struct crash_record { uint8_t out_RISC_reg_dump[256]; /* 80 -17F */ uint8_t in_RISC_reg_dump[256]; /*180 -27F */ - uint8_t in_out_RISC_stack_dump[0]; /*280 - ??? */ + uint8_t in_out_RISC_stack_dump[]; /*280 - ??? */ }; struct conn_event_log_entry { diff --git a/drivers/staging/r8188eu/include/ieee80211.h b/drivers/staging/r8188eu/include/ieee80211.h index 3a23d5299314..5e7de631b8ef 100644 --- a/drivers/staging/r8188eu/include/ieee80211.h +++ b/drivers/staging/r8188eu/include/ieee80211.h @@ -185,7 +185,7 @@ struct ieee_param { struct ieee_param_ex { u32 cmd; u8 sta_addr[ETH_ALEN]; - u8 data[0]; + u8 data[]; }; struct sta_data { @@ -713,7 +713,7 @@ struct ieee80211_info_element_hdr { struct ieee80211_info_element { u8 id; u8 len; - u8 data[0]; + u8 data[]; } __packed; /* @@ -776,7 +776,7 @@ struct ieee80211_txb { u16 reserved; u16 frag_size; u16 payload_size; - struct sk_buff *fragments[0]; + struct sk_buff *fragments[]; }; /* SWEEP TABLE ENTRIES NUMBER*/ diff --git a/drivers/staging/r8188eu/include/rtw_cmd.h b/drivers/staging/r8188eu/include/rtw_cmd.h index cf0945ae11c1..f8991a0493d0 100644 --- a/drivers/staging/r8188eu/include/rtw_cmd.h +++ b/drivers/staging/r8188eu/include/rtw_cmd.h @@ -73,7 +73,7 @@ struct c2h_evt_hdr { u8 id:4; u8 plen:4; u8 seq; - u8 payload[0]; + u8 payload[]; }; #define c2h_evt_exist(c2h_evt) ((c2h_evt)->id || (c2h_evt)->plen) @@ -662,25 +662,25 @@ struct getcurtxpwrlevel_rspi { struct setprobereqextraie_parm { unsigned char e_id; unsigned char ie_len; - unsigned char ie[0]; + unsigned char ie[]; }; struct setassocreqextraie_parm { unsigned char e_id; unsigned char ie_len; - unsigned char ie[0]; + unsigned char ie[]; }; struct setproberspextraie_parm { unsigned char e_id; unsigned char ie_len; - unsigned char ie[0]; + unsigned char ie[]; }; struct setassocrspextraie_parm { unsigned char e_id; unsigned char ie_len; - unsigned char ie[0]; + unsigned char ie[]; }; struct addBaReq_parm { diff --git a/drivers/staging/rtl8712/rtl871x_cmd.h b/drivers/staging/rtl8712/rtl871x_cmd.h index ddd69c4ae208..95e9ea5b2d98 100644 --- a/drivers/staging/rtl8712/rtl871x_cmd.h +++ b/drivers/staging/rtl8712/rtl871x_cmd.h @@ -657,25 +657,25 @@ struct setra_parm { struct setprobereqextraie_parm { unsigned char e_id; unsigned char ie_len; - unsigned char ie[0]; + unsigned char ie[]; }; struct setassocreqextraie_parm { unsigned char e_id; unsigned char ie_len; - unsigned char ie[0]; + unsigned char ie[]; }; struct setproberspextraie_parm { unsigned char e_id; unsigned char ie_len; - unsigned char ie[0]; + unsigned char ie[]; }; struct setassocrspextraie_parm { unsigned char e_id; unsigned char ie_len; - unsigned char ie[0]; + unsigned char ie[]; }; struct addBaReq_parm { diff --git a/drivers/staging/rtl8723bs/include/ieee80211.h b/drivers/staging/rtl8723bs/include/ieee80211.h index c11d7e2d2347..1e627dc0044d 100644 --- a/drivers/staging/rtl8723bs/include/ieee80211.h +++ b/drivers/staging/rtl8723bs/include/ieee80211.h @@ -204,7 +204,7 @@ struct ieee_param { struct ieee_param_ex { u32 cmd; u8 sta_addr[ETH_ALEN]; - u8 data[0]; + u8 data[]; }; struct sta_data { diff --git a/drivers/staging/rtl8723bs/include/rtw_cmd.h b/drivers/staging/rtl8723bs/include/rtw_cmd.h index 28d2d2732374..1bf030cbbbbe 100644 --- a/drivers/staging/rtl8723bs/include/rtw_cmd.h +++ b/drivers/staging/rtl8723bs/include/rtw_cmd.h @@ -94,7 +94,7 @@ struct c2h_evt_hdr { u8 id:4; u8 plen:4; u8 seq; - u8 payload[0]; + u8 payload[]; }; struct c2h_evt_hdr_88xx { diff --git a/drivers/staging/vc04_services/include/linux/raspberrypi/vchiq.h b/drivers/staging/vc04_services/include/linux/raspberrypi/vchiq.h index 81db7fb76d6d..c93f2f3e87bb 100644 --- a/drivers/staging/vc04_services/include/linux/raspberrypi/vchiq.h +++ b/drivers/staging/vc04_services/include/linux/raspberrypi/vchiq.h @@ -45,7 +45,7 @@ struct vchiq_header { /* Size of message data. */ unsigned int size; - char data[0]; /* message */ + char data[]; /* message */ }; struct vchiq_element { diff --git a/drivers/visorbus/vbuschannel.h b/drivers/visorbus/vbuschannel.h index 4aaf6564eb9f..98711fb6d66e 100644 --- a/drivers/visorbus/vbuschannel.h +++ b/drivers/visorbus/vbuschannel.h @@ -89,7 +89,7 @@ struct visor_vbus_channel { struct visor_vbus_headerinfo hdr_info; struct visor_vbus_deviceinfo chp_info; struct visor_vbus_deviceinfo bus_info; - struct visor_vbus_deviceinfo dev_info[0]; + struct visor_vbus_deviceinfo dev_info[]; } __packed; #endif diff --git a/fs/cifs/ntlmssp.h b/fs/cifs/ntlmssp.h index 298458404252..55758b9ec877 100644 --- a/fs/cifs/ntlmssp.h +++ b/fs/cifs/ntlmssp.h @@ -107,7 +107,7 @@ struct negotiate_message { SECURITY_BUFFER WorkstationName; /* RFC 1001 and ASCII */ struct ntlmssp_version Version; /* SECURITY_BUFFER */ - char DomainString[0]; + char DomainString[]; /* followed by WorkstationString */ } __packed; diff --git a/fs/ext4/fast_commit.h b/fs/ext4/fast_commit.h index 083ad1cb705a..07e8b734c4fd 100644 --- a/fs/ext4/fast_commit.h +++ b/fs/ext4/fast_commit.h @@ -55,13 +55,13 @@ struct ext4_fc_del_range { struct ext4_fc_dentry_info { __le32 fc_parent_ino; __le32 fc_ino; - __u8 fc_dname[0]; + __u8 fc_dname[]; }; /* Value structure for EXT4_FC_TAG_INODE and EXT4_FC_TAG_INODE_PARTIAL. */ struct ext4_fc_inode { __le32 fc_ino; - __u8 fc_raw_inode[0]; + __u8 fc_raw_inode[]; }; /* Value structure for tag EXT4_FC_TAG_TAIL. */ diff --git a/fs/ksmbd/ksmbd_netlink.h b/fs/ksmbd/ksmbd_netlink.h index 71bfb7de4472..ebe6ca08467a 100644 --- a/fs/ksmbd/ksmbd_netlink.h +++ b/fs/ksmbd/ksmbd_netlink.h @@ -241,7 +241,7 @@ struct ksmbd_rpc_command { struct ksmbd_spnego_authen_request { __u32 handle; __u16 spnego_blob_len; /* the length of spnego_blob */ - __u8 spnego_blob[0]; /* + __u8 spnego_blob[]; /* * the GSS token from SecurityBuffer of * SMB2 SESSION SETUP request */ diff --git a/fs/ksmbd/ntlmssp.h b/fs/ksmbd/ntlmssp.h index adaf4c0cbe8f..f13153c18b4e 100644 --- a/fs/ksmbd/ntlmssp.h +++ b/fs/ksmbd/ntlmssp.h @@ -95,7 +95,7 @@ struct security_buffer { struct target_info { __le16 Type; __le16 Length; - __u8 Content[0]; + __u8 Content[]; } __packed; struct negotiate_message { @@ -108,7 +108,7 @@ struct negotiate_message { * struct security_buffer for version info not present since we * do not set the version is present flag */ - char DomainString[0]; + char DomainString[]; /* followed by WorkstationString */ } __packed; @@ -140,7 +140,7 @@ struct authenticate_message { * struct security_buffer for version info not present since we * do not set the version is present flag */ - char UserString[0]; + char UserString[]; } __packed; struct ntlmv2_resp { diff --git a/fs/ksmbd/smb2pdu.h b/fs/ksmbd/smb2pdu.h index 725b800c29c8..d49468426576 100644 --- a/fs/ksmbd/smb2pdu.h +++ b/fs/ksmbd/smb2pdu.h @@ -759,7 +759,7 @@ struct smb2_file_rename_info { /* encoding of request for level 10 */ __u8 Reserved[7]; __u64 RootDirectory; /* MBZ for network operations (why says spec?) */ __le32 FileNameLength; - char FileName[0]; /* New name to be assigned */ + char FileName[]; /* New name to be assigned */ } __packed; /* level 10 Set */ struct smb2_file_link_info { /* encoding of request for level 11 */ @@ -768,7 +768,7 @@ struct smb2_file_link_info { /* encoding of request for level 11 */ __u8 Reserved[7]; __u64 RootDirectory; /* MBZ for network operations (why says spec?) */ __le32 FileNameLength; - char FileName[0]; /* Name to be assigned to new link */ + char FileName[]; /* Name to be assigned to new link */ } __packed; /* level 11 Set */ /* @@ -810,7 +810,7 @@ struct smb2_file_basic_info { /* data block encoding of response to level 18 */ struct smb2_file_alt_name_info { __le32 FileNameLength; - char FileName[0]; + char FileName[]; } __packed; struct smb2_file_stream_info { @@ -818,7 +818,7 @@ struct smb2_file_stream_info { __le32 StreamNameLength; __le64 StreamSize; __le64 StreamAllocationSize; - char StreamName[0]; + char StreamName[]; } __packed; struct smb2_file_eof_info { /* encoding of request for level 10 */ diff --git a/fs/ksmbd/transport_rdma.c b/fs/ksmbd/transport_rdma.c index 3c1ec1ac0b27..9976d39c6ed8 100644 --- a/fs/ksmbd/transport_rdma.c +++ b/fs/ksmbd/transport_rdma.c @@ -211,7 +211,7 @@ struct smb_direct_rdma_rw_msg { struct completion *completion; struct rdma_rw_ctx rw_ctx; struct sg_table sgt; - struct scatterlist sg_list[0]; + struct scatterlist sg_list[]; }; static inline int get_buf_page_count(void *buf, int size) diff --git a/fs/ksmbd/xattr.h b/fs/ksmbd/xattr.h index 8857c01093d9..16499ca5c82d 100644 --- a/fs/ksmbd/xattr.h +++ b/fs/ksmbd/xattr.h @@ -76,7 +76,7 @@ struct xattr_acl_entry { struct xattr_smb_acl { int count; int next; - struct xattr_acl_entry entries[0]; + struct xattr_acl_entry entries[]; }; /* 64bytes hash in xattr_ntacl is computed with sha256 */ diff --git a/fs/xfs/scrub/attr.h b/fs/xfs/scrub/attr.h index 1719e1c4da59..3590e10e3e62 100644 --- a/fs/xfs/scrub/attr.h +++ b/fs/xfs/scrub/attr.h @@ -24,7 +24,7 @@ struct xchk_xattr_buf { * space bitmap follows immediately after; and we have a third buffer * for storing intermediate bitmap results. */ - uint8_t buf[0]; + uint8_t buf[]; }; /* A place to store attribute values. */ diff --git a/include/acpi/actbl2.h b/include/acpi/actbl2.h index 16847c8d9d5f..9ee4d1b39125 100644 --- a/include/acpi/actbl2.h +++ b/include/acpi/actbl2.h @@ -2319,7 +2319,7 @@ struct acpi_table_rgrt { u16 version; u8 image_type; u8 reserved; - u8 image[0]; + u8 image[]; }; /* image_type values */ diff --git a/include/asm-generic/tlb.h b/include/asm-generic/tlb.h index 2c68a545ffa7..fd7feb5c7894 100644 --- a/include/asm-generic/tlb.h +++ b/include/asm-generic/tlb.h @@ -180,7 +180,7 @@ struct mmu_table_batch { struct rcu_head rcu; #endif unsigned int nr; - void *tables[0]; + void *tables[]; }; #define MAX_TABLE_BATCH \ @@ -227,7 +227,7 @@ struct mmu_gather_batch { struct mmu_gather_batch *next; unsigned int nr; unsigned int max; - struct page *pages[0]; + struct page *pages[]; }; #define MAX_GATHER_BATCH \ diff --git a/include/linux/greybus/greybus_manifest.h b/include/linux/greybus/greybus_manifest.h index 6e62fe478712..bef9eb2093e9 100644 --- a/include/linux/greybus/greybus_manifest.h +++ b/include/linux/greybus/greybus_manifest.h @@ -100,7 +100,7 @@ enum { struct greybus_descriptor_string { __u8 length; __u8 id; - __u8 string[0]; + __u8 string[]; } __packed; /* @@ -175,7 +175,7 @@ struct greybus_manifest_header { struct greybus_manifest { struct greybus_manifest_header header; - struct greybus_descriptor descriptors[0]; + struct greybus_descriptor descriptors[]; } __packed; #endif /* __GREYBUS_MANIFEST_H */ diff --git a/include/linux/greybus/hd.h b/include/linux/greybus/hd.h index d3faf0c1a569..718e2857054e 100644 --- a/include/linux/greybus/hd.h +++ b/include/linux/greybus/hd.h @@ -58,7 +58,7 @@ struct gb_host_device { struct gb_svc *svc; /* Private data for the host driver */ - unsigned long hd_priv[0] __aligned(sizeof(s64)); + unsigned long hd_priv[] __aligned(sizeof(s64)); }; #define to_gb_host_device(d) container_of(d, struct gb_host_device, dev) diff --git a/include/linux/greybus/module.h b/include/linux/greybus/module.h index 47b839af145d..3efe2133acfd 100644 --- a/include/linux/greybus/module.h +++ b/include/linux/greybus/module.h @@ -23,7 +23,7 @@ struct gb_module { bool disconnected; - struct gb_interface *interfaces[0]; + struct gb_interface *interfaces[]; }; #define to_gb_module(d) container_of(d, struct gb_module, dev) diff --git a/include/linux/i3c/ccc.h b/include/linux/i3c/ccc.h index 73b0982cc519..ad59a4ae60d1 100644 --- a/include/linux/i3c/ccc.h +++ b/include/linux/i3c/ccc.h @@ -132,7 +132,7 @@ struct i3c_ccc_dev_desc { struct i3c_ccc_defslvs { u8 count; struct i3c_ccc_dev_desc master; - struct i3c_ccc_dev_desc slaves[0]; + struct i3c_ccc_dev_desc slaves[]; } __packed; /** @@ -240,7 +240,7 @@ struct i3c_ccc_bridged_slave_desc { */ struct i3c_ccc_setbrgtgt { u8 count; - struct i3c_ccc_bridged_slave_desc bslaves[0]; + struct i3c_ccc_bridged_slave_desc bslaves[]; } __packed; /** @@ -318,7 +318,7 @@ enum i3c_ccc_setxtime_subcmd { */ struct i3c_ccc_setxtime { u8 subcmd; - u8 data[0]; + u8 data[]; } __packed; #define I3C_CCC_GETXTIME_SYNC_MODE BIT(0) diff --git a/include/linux/mlx5/mlx5_ifc_fpga.h b/include/linux/mlx5/mlx5_ifc_fpga.h index 07d77323f78a..cac4e94abd3a 100644 --- a/include/linux/mlx5/mlx5_ifc_fpga.h +++ b/include/linux/mlx5/mlx5_ifc_fpga.h @@ -185,7 +185,7 @@ struct mlx5_ifc_fpga_access_reg_bits { u8 address[0x40]; - u8 data[0][0x8]; + u8 data[][0x8]; }; enum mlx5_ifc_fpga_qp_state { diff --git a/include/linux/platform_data/brcmfmac.h b/include/linux/platform_data/brcmfmac.h index 2b5676ff35be..f922a192fe58 100644 --- a/include/linux/platform_data/brcmfmac.h +++ b/include/linux/platform_data/brcmfmac.h @@ -178,7 +178,7 @@ struct brcmfmac_platform_data { void (*power_off)(void); char *fw_alternative_path; int device_count; - struct brcmfmac_pd_device devices[0]; + struct brcmfmac_pd_device devices[]; }; diff --git a/include/linux/platform_data/cros_ec_commands.h b/include/linux/platform_data/cros_ec_commands.h index 271bd87bff0a..728735aed980 100644 --- a/include/linux/platform_data/cros_ec_commands.h +++ b/include/linux/platform_data/cros_ec_commands.h @@ -5644,7 +5644,7 @@ struct ec_response_typec_discovery { uint8_t svid_count; /* Number of SVIDs partner sent */ uint16_t reserved; uint32_t discovery_vdo[6]; /* Max VDOs allowed after VDM header is 6 */ - struct svid_mode_info svids[0]; + struct svid_mode_info svids[]; } __ec_align1; /* USB Type-C commands for AP-controlled device policy. */ diff --git a/include/net/bluetooth/mgmt.h b/include/net/bluetooth/mgmt.h index 107b25deae68..9607ec289fd0 100644 --- a/include/net/bluetooth/mgmt.h +++ b/include/net/bluetooth/mgmt.h @@ -696,7 +696,7 @@ struct mgmt_cp_set_blocked_keys { #define MGMT_READ_CONTROLLER_CAP_SIZE 0 struct mgmt_rp_read_controller_cap { __le16 cap_len; - __u8 cap[0]; + __u8 cap[]; } __packed; #define MGMT_OP_READ_EXP_FEATURES_INFO 0x0049 diff --git a/include/net/ioam6.h b/include/net/ioam6.h index 3f45ba37a2c6..781d2d8b2f29 100644 --- a/include/net/ioam6.h +++ b/include/net/ioam6.h @@ -35,7 +35,7 @@ struct ioam6_schema { int len; __be32 hdr; - u8 data[0]; + u8 data[]; }; struct ioam6_pernet_data { diff --git a/include/sound/sof/channel_map.h b/include/sound/sof/channel_map.h index fd3a30fcf756..d363f0ca6979 100644 --- a/include/sound/sof/channel_map.h +++ b/include/sound/sof/channel_map.h @@ -39,7 +39,7 @@ struct sof_ipc_channel_map { uint32_t ext_id; uint32_t ch_mask; uint32_t reserved; - int32_t ch_coeffs[0]; + int32_t ch_coeffs[]; } __packed; /** @@ -55,7 +55,7 @@ struct sof_ipc_stream_map { struct sof_ipc_cmd_hdr hdr; uint32_t num_ch_map; uint32_t reserved[3]; - struct sof_ipc_channel_map ch_map[0]; + struct sof_ipc_channel_map ch_map[]; } __packed; #endif /* __IPC_CHANNEL_MAP_H__ */ diff --git a/scripts/dtc/libfdt/fdt.h b/scripts/dtc/libfdt/fdt.h index f2e68807f277..0c91aa7f67b5 100644 --- a/scripts/dtc/libfdt/fdt.h +++ b/scripts/dtc/libfdt/fdt.h @@ -35,14 +35,14 @@ struct fdt_reserve_entry { struct fdt_node_header { fdt32_t tag; - char name[0]; + char name[]; }; struct fdt_property { fdt32_t tag; fdt32_t len; fdt32_t nameoff; - char data[0]; + char data[]; }; #endif /* !__ASSEMBLY */ diff --git a/sound/soc/intel/atom/sst-mfld-dsp.h b/sound/soc/intel/atom/sst-mfld-dsp.h index 8d9e29b16e57..c8f0816edb53 100644 --- a/sound/soc/intel/atom/sst-mfld-dsp.h +++ b/sound/soc/intel/atom/sst-mfld-dsp.h @@ -427,7 +427,7 @@ struct snd_sst_drop_response { struct snd_sst_async_msg { u32 msg_id; /* Async msg id */ - u32 payload[0]; + u32 payload[]; }; struct snd_sst_async_err_msg { @@ -514,7 +514,7 @@ struct snd_sst_bytes_v2 { u8 pipe_id; u8 rsvd; u16 len; - char bytes[0]; + char bytes[]; }; #define MAX_VTSV_FILES 2 diff --git a/sound/soc/intel/skylake/skl-topology.h b/sound/soc/intel/skylake/skl-topology.h index 22963634fbea..a5bccf2fcd88 100644 --- a/sound/soc/intel/skylake/skl-topology.h +++ b/sound/soc/intel/skylake/skl-topology.h @@ -164,7 +164,7 @@ struct skl_base_cfg_ext { u8 reserved[8]; u32 priv_param_length; /* Input pin formats followed by output ones. */ - struct skl_pin_format pins_fmt[0]; + struct skl_pin_format pins_fmt[]; } __packed; struct skl_algo_cfg { diff --git a/tools/lib/perf/include/perf/event.h b/tools/lib/perf/include/perf/event.h index 75ee385fb078..e7758707cadd 100644 --- a/tools/lib/perf/include/perf/event.h +++ b/tools/lib/perf/include/perf/event.h @@ -240,7 +240,7 @@ struct id_index_entry { struct perf_record_id_index { struct perf_event_header header; __u64 nr; - struct id_index_entry entries[0]; + struct id_index_entry entries[]; }; struct perf_record_auxtrace_info { -- 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 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 76639C433EF for ; Wed, 16 Feb 2022 16:37:40 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 6A3E110E803; Wed, 16 Feb 2022 16:37:35 +0000 (UTC) Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4FE4710E46D; Tue, 15 Feb 2022 17:40:10 +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 95BA5615F7; Tue, 15 Feb 2022 17:40:09 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id C6721C340EB; Tue, 15 Feb 2022 17:40:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1644946809; bh=DMett6vVXSj8wlqJaPBVitbC+1b/pFrWBdbwXSCqmvY=; h=Date:From:To:Subject:From; b=YHAhsK9b4ceo93O7cGMZkhAJtHRB9CQ+4MLg6VhoAXIqUZPNOt2f2z/RHYaJLxO76 o1sCxEuNmr5hKqcrqdfi+pE1eKIsCJw9V851Cjnm9cHc2sRZx45hzEu6vQLDXrkmcu xKf2+PXhFhb8dbpeFBN+6vQWXHxPvhHISBgL9Fxux6eGzM+9JCAXaTGT3/3xrwLv7i m8KqkuUbReSbhvZRqSxYfdGT/EXjyAq6yFXtOj0CnyhrPV5rigOkg2Pp92zsFyGVAh 1grvtuR4WfTMHEo/CBi7F8KvXPKqUpdwIOcsL3Pbwr2lQCgLUtbCpkZ3x6BdjDlhc3 zFo6AQd/J/DOQ== Date: Tue, 15 Feb 2022 11:47:43 -0600 From: "Gustavo A. R. Silva" To: GR-QLogic-Storage-Upstream@marvell.com, linux-alpha@vger.kernel.org, linux-kernel@vger.kernel.org, linux-ia64@vger.kernel.org, linux-s390@vger.kernel.org, linux-sh@vger.kernel.org, sparclinux@vger.kernel.org, linux-um@lists.infradead.org, linux-xtensa@linux-xtensa.org, linux-crypto@vger.kernel.org, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, nouveau@lists.freedesktop.org, coresight@lists.linaro.org, linux-arm-kernel@lists.infradead.org, bcm-kernel-feedback-list@broadcom.com, netdev@vger.kernel.org, linux-omap@vger.kernel.org, linux-scsi@vger.kernel.org, target-devel@vger.kernel.org, mpi3mr-linuxdrv.pdl@broadcom.com, linux-staging@lists.linux.dev, linux-rpi-kernel@lists.infradead.org, sparmaintainer@unisys.com, linux-cifs@vger.kernel.org, samba-technical@lists.samba.org, linux-ext4@vger.kernel.org, linux-acpi@vger.kernel.org, devel@acpica.org, linux-arch@vger.kernel.org, linux-mm@kvack.org, greybus-dev@lists.linaro.org, linux-i3c@lists.infradead.org, linux-rdma@vger.kernel.org, linux-bluetooth@vger.kernel.org, alsa-devel@alsa-project.org, devicetree@vger.kernel.org, linux-perf-users@vger.kernel.org, "Gustavo A. R. Silva" , linux-hardening@vger.kernel.org Message-ID: <20220215174743.GA878920@embeddedor> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit X-Mailman-Approved-At: Wed, 16 Feb 2022 16:37:34 +0000 Subject: [Intel-gfx] [PATCH][next] treewide: Replace zero-length arrays with flexible-array members X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" 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: (next-20220214$ 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 ]; }; UAPI and wireless changes were intentionally excluded from this patch and will be sent out separately. [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 Signed-off-by: Gustavo A. R. Silva --- Hi all, I'm expecting to carry this patch in my tree, so it'd be great to get some Acks. And given the size of the patch, I'm only sending this to mailing lists. Thanks! arch/alpha/include/asm/hwrpb.h | 2 +- arch/ia64/include/asm/sal.h | 2 +- arch/s390/include/asm/ccwgroup.h | 2 +- arch/s390/include/asm/chsc.h | 2 +- arch/s390/include/asm/eadm.h | 2 +- arch/s390/include/asm/fcx.h | 4 ++-- arch/s390/include/asm/idals.h | 2 +- arch/s390/include/asm/sclp.h | 2 +- arch/s390/include/asm/sysinfo.h | 6 +++--- arch/sh/include/asm/thread_info.h | 2 +- arch/sparc/include/asm/vio.h | 10 +++++----- arch/um/include/shared/net_kern.h | 2 +- arch/x86/include/asm/microcode_amd.h | 2 +- arch/x86/include/asm/microcode_intel.h | 4 ++-- arch/x86/include/asm/pci.h | 2 +- arch/x86/include/asm/pci_x86.h | 2 +- arch/xtensa/include/asm/bootparam.h | 2 +- drivers/crypto/caam/pdb.h | 2 +- drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c | 2 +- drivers/gpu/drm/nouveau/include/nvfw/hs.h | 2 +- .../hwtracing/coresight/coresight-config.h | 2 +- drivers/misc/bcm-vk/bcm_vk.h | 2 +- .../misc/habanalabs/include/common/cpucp_if.h | 6 +++--- .../habanalabs/include/gaudi/gaudi_packets.h | 4 ++-- .../habanalabs/include/goya/goya_packets.h | 4 ++-- .../net/ethernet/freescale/enetc/enetc_hw.h | 2 +- drivers/net/ethernet/i825xx/sun3_82586.h | 2 +- .../net/ethernet/marvell/octeontx2/af/npc.h | 6 +++--- drivers/net/ethernet/qlogic/qed/qed_mfw_hsi.h | 2 +- drivers/net/ethernet/ti/davinci_mdio.c | 2 +- drivers/scsi/dpt/dpti_i2o.h | 2 +- drivers/scsi/elx/libefc_sli/sli4.h | 20 +++++++++---------- drivers/scsi/mpi3mr/mpi3mr.h | 2 +- drivers/scsi/qla2xxx/qla_bsg.h | 4 ++-- drivers/scsi/qla2xxx/qla_def.h | 2 +- drivers/scsi/qla2xxx/qla_edif_bsg.h | 4 ++-- drivers/scsi/qla2xxx/qla_fw.h | 2 +- drivers/scsi/qla4xxx/ql4_fw.h | 2 +- drivers/staging/r8188eu/include/ieee80211.h | 6 +++--- drivers/staging/r8188eu/include/rtw_cmd.h | 10 +++++----- drivers/staging/rtl8712/rtl871x_cmd.h | 8 ++++---- drivers/staging/rtl8723bs/include/ieee80211.h | 2 +- drivers/staging/rtl8723bs/include/rtw_cmd.h | 2 +- .../include/linux/raspberrypi/vchiq.h | 2 +- drivers/visorbus/vbuschannel.h | 2 +- fs/cifs/ntlmssp.h | 2 +- fs/ext4/fast_commit.h | 4 ++-- fs/ksmbd/ksmbd_netlink.h | 2 +- fs/ksmbd/ntlmssp.h | 6 +++--- fs/ksmbd/smb2pdu.h | 8 ++++---- fs/ksmbd/transport_rdma.c | 2 +- fs/ksmbd/xattr.h | 2 +- fs/xfs/scrub/attr.h | 2 +- include/acpi/actbl2.h | 2 +- include/asm-generic/tlb.h | 4 ++-- include/linux/greybus/greybus_manifest.h | 4 ++-- include/linux/greybus/hd.h | 2 +- include/linux/greybus/module.h | 2 +- include/linux/i3c/ccc.h | 6 +++--- include/linux/mlx5/mlx5_ifc_fpga.h | 2 +- include/linux/platform_data/brcmfmac.h | 2 +- .../linux/platform_data/cros_ec_commands.h | 2 +- include/net/bluetooth/mgmt.h | 2 +- include/net/ioam6.h | 2 +- include/sound/sof/channel_map.h | 4 ++-- scripts/dtc/libfdt/fdt.h | 4 ++-- sound/soc/intel/atom/sst-mfld-dsp.h | 4 ++-- sound/soc/intel/skylake/skl-topology.h | 2 +- tools/lib/perf/include/perf/event.h | 2 +- 69 files changed, 116 insertions(+), 116 deletions(-) diff --git a/arch/alpha/include/asm/hwrpb.h b/arch/alpha/include/asm/hwrpb.h index d8180e527a1e..fc76f36265ad 100644 --- a/arch/alpha/include/asm/hwrpb.h +++ b/arch/alpha/include/asm/hwrpb.h @@ -152,7 +152,7 @@ struct memdesc_struct { unsigned long chksum; unsigned long optional_pa; unsigned long numclusters; - struct memclust_struct cluster[0]; + struct memclust_struct cluster[]; }; struct dsr_struct { diff --git a/arch/ia64/include/asm/sal.h b/arch/ia64/include/asm/sal.h index 78f4f7b40435..22749a201e92 100644 --- a/arch/ia64/include/asm/sal.h +++ b/arch/ia64/include/asm/sal.h @@ -420,7 +420,7 @@ typedef struct sal_log_processor_info { * The rest of this structure consists of variable-length arrays, which can't be * expressed in C. */ - sal_log_mod_error_info_t info[0]; + sal_log_mod_error_info_t info[]; /* * This is what the rest looked like if C supported variable-length arrays: * diff --git a/arch/s390/include/asm/ccwgroup.h b/arch/s390/include/asm/ccwgroup.h index aa995d91cd1d..11d2fb3de4f5 100644 --- a/arch/s390/include/asm/ccwgroup.h +++ b/arch/s390/include/asm/ccwgroup.h @@ -25,7 +25,7 @@ struct ccwgroup_device { unsigned int count; struct device dev; struct work_struct ungroup_work; - struct ccw_device *cdev[0]; + struct ccw_device *cdev[]; }; /** diff --git a/arch/s390/include/asm/chsc.h b/arch/s390/include/asm/chsc.h index ae4d2549cd67..bb48ea380c0d 100644 --- a/arch/s390/include/asm/chsc.h +++ b/arch/s390/include/asm/chsc.h @@ -63,7 +63,7 @@ struct chsc_pnso_area { struct chsc_header response; u32:32; struct chsc_pnso_naihdr naihdr; - struct chsc_pnso_naid_l2 entries[0]; + struct chsc_pnso_naid_l2 entries[]; } __packed __aligned(PAGE_SIZE); #endif /* _ASM_S390_CHSC_H */ diff --git a/arch/s390/include/asm/eadm.h b/arch/s390/include/asm/eadm.h index 445fe4c8184a..06f795855af7 100644 --- a/arch/s390/include/asm/eadm.h +++ b/arch/s390/include/asm/eadm.h @@ -78,7 +78,7 @@ struct aob { struct aob_rq_header { struct scm_device *scmdev; - char data[0]; + char data[]; }; struct scm_device { diff --git a/arch/s390/include/asm/fcx.h b/arch/s390/include/asm/fcx.h index cff0749e9657..b8a028a36173 100644 --- a/arch/s390/include/asm/fcx.h +++ b/arch/s390/include/asm/fcx.h @@ -214,7 +214,7 @@ struct dcw_intrg_data { u32 :32; u64 time; u64 prog_id; - u8 prog_data[0]; + u8 prog_data[]; } __attribute__ ((packed)); #define DCW_FLAGS_CC (1 << (7 - 1)) @@ -241,7 +241,7 @@ struct dcw { u32 :8; u32 cd_count:8; u32 count; - u8 cd[0]; + u8 cd[]; } __attribute__ ((packed)); #define TCCB_FORMAT_DEFAULT 0x7f diff --git a/arch/s390/include/asm/idals.h b/arch/s390/include/asm/idals.h index 6fb7aced104a..40eae2c08d61 100644 --- a/arch/s390/include/asm/idals.h +++ b/arch/s390/include/asm/idals.h @@ -108,7 +108,7 @@ clear_normalized_cda(struct ccw1 * ccw) struct idal_buffer { size_t size; size_t page_order; - void *data[0]; + void *data[]; }; /* diff --git a/arch/s390/include/asm/sclp.h b/arch/s390/include/asm/sclp.h index c68ea35de498..22b3213c6c9d 100644 --- a/arch/s390/include/asm/sclp.h +++ b/arch/s390/include/asm/sclp.h @@ -112,7 +112,7 @@ struct zpci_report_error_header { * (OpenCrypto Successful Diagnostics Execution) */ u16 length; /* Length of Subsequent Data (up to 4K – SCLP header */ - u8 data[0]; /* Subsequent Data passed verbatim to SCLP ET 24 */ + u8 data[]; /* Subsequent Data passed verbatim to SCLP ET 24 */ } __packed; extern char *sclp_early_sccb; diff --git a/arch/s390/include/asm/sysinfo.h b/arch/s390/include/asm/sysinfo.h index fe7b3f8f0791..ab1c6316055c 100644 --- a/arch/s390/include/asm/sysinfo.h +++ b/arch/s390/include/asm/sysinfo.h @@ -67,12 +67,12 @@ struct sysinfo_1_2_2 { unsigned short cpus_configured; unsigned short cpus_standby; unsigned short cpus_reserved; - unsigned short adjustment[0]; + unsigned short adjustment[]; }; struct sysinfo_1_2_2_extension { unsigned int alt_capability; - unsigned short alt_adjustment[0]; + unsigned short alt_adjustment[]; }; struct sysinfo_2_2_1 { @@ -181,7 +181,7 @@ struct sysinfo_15_1_x { unsigned char reserved1; unsigned char mnest; unsigned char reserved2[4]; - union topology_entry tle[0]; + union topology_entry tle[]; }; int stsi(void *sysinfo, int fc, int sel1, int sel2); diff --git a/arch/sh/include/asm/thread_info.h b/arch/sh/include/asm/thread_info.h index 598d0184ffea..3a2d50d61fc9 100644 --- a/arch/sh/include/asm/thread_info.h +++ b/arch/sh/include/asm/thread_info.h @@ -33,7 +33,7 @@ struct thread_info { mm_segment_t addr_limit; /* thread address space */ unsigned long previous_sp; /* sp of previous stack in case of nested IRQ stacks */ - __u8 supervisor_stack[0]; + __u8 supervisor_stack[]; }; #endif diff --git a/arch/sparc/include/asm/vio.h b/arch/sparc/include/asm/vio.h index 8a1a83bbb6d5..2d7bdf665fd3 100644 --- a/arch/sparc/include/asm/vio.h +++ b/arch/sparc/include/asm/vio.h @@ -70,7 +70,7 @@ struct vio_dring_register { #define VIO_RX_DRING_DATA 0x0004 u16 resv; u32 num_cookies; - struct ldc_trans_cookie cookies[0]; + struct ldc_trans_cookie cookies[]; }; struct vio_dring_unregister { @@ -161,7 +161,7 @@ struct vio_disk_desc { u64 size; u32 ncookies; u32 resv2; - struct ldc_trans_cookie cookies[0]; + struct ldc_trans_cookie cookies[]; }; #define VIO_DISK_VNAME_LEN 8 @@ -200,13 +200,13 @@ struct vio_disk_devid { u16 resv; u16 type; u32 len; - char id[0]; + char id[]; }; struct vio_disk_efi { u64 lba; u64 len; - char data[0]; + char data[]; }; /* VIO net specific structures and defines */ @@ -246,7 +246,7 @@ struct vio_net_desc { struct vio_dring_hdr hdr; u32 size; u32 ncookies; - struct ldc_trans_cookie cookies[0]; + struct ldc_trans_cookie cookies[]; }; struct vio_net_dext { diff --git a/arch/um/include/shared/net_kern.h b/arch/um/include/shared/net_kern.h index 441a8a309329..67b2e9a1f2e5 100644 --- a/arch/um/include/shared/net_kern.h +++ b/arch/um/include/shared/net_kern.h @@ -39,7 +39,7 @@ struct uml_net_private { void (*add_address)(unsigned char *, unsigned char *, void *); void (*delete_address)(unsigned char *, unsigned char *, void *); - char user[0]; + char user[]; }; struct net_kern_info { diff --git a/arch/x86/include/asm/microcode_amd.h b/arch/x86/include/asm/microcode_amd.h index 7063b5a43220..ac31f9140d07 100644 --- a/arch/x86/include/asm/microcode_amd.h +++ b/arch/x86/include/asm/microcode_amd.h @@ -38,7 +38,7 @@ struct microcode_header_amd { struct microcode_amd { struct microcode_header_amd hdr; - unsigned int mpb[0]; + unsigned int mpb[]; }; #define PATCH_MAX_SIZE (3 * PAGE_SIZE) diff --git a/arch/x86/include/asm/microcode_intel.h b/arch/x86/include/asm/microcode_intel.h index d85a07d7154f..4c92cea7e4b5 100644 --- a/arch/x86/include/asm/microcode_intel.h +++ b/arch/x86/include/asm/microcode_intel.h @@ -19,7 +19,7 @@ struct microcode_header_intel { struct microcode_intel { struct microcode_header_intel hdr; - unsigned int bits[0]; + unsigned int bits[]; }; /* microcode format is extended from prescott processors */ @@ -33,7 +33,7 @@ struct extended_sigtable { unsigned int count; unsigned int cksum; unsigned int reserved[3]; - struct extended_signature sigs[0]; + struct extended_signature sigs[]; }; #define DEFAULT_UCODE_DATASIZE (2000) diff --git a/arch/x86/include/asm/pci.h b/arch/x86/include/asm/pci.h index d2c76c8d8cfd..f3fd5928bcbb 100644 --- a/arch/x86/include/asm/pci.h +++ b/arch/x86/include/asm/pci.h @@ -135,7 +135,7 @@ struct pci_setup_rom { unsigned long bus; unsigned long device; unsigned long function; - uint8_t romdata[0]; + uint8_t romdata[]; }; #endif /* _ASM_X86_PCI_H */ diff --git a/arch/x86/include/asm/pci_x86.h b/arch/x86/include/asm/pci_x86.h index 490411dba438..3fb6fc596095 100644 --- a/arch/x86/include/asm/pci_x86.h +++ b/arch/x86/include/asm/pci_x86.h @@ -87,7 +87,7 @@ struct irq_routing_table { u32 miniport_data; /* Crap */ u8 rfu[11]; u8 checksum; /* Modulo 256 checksum must give 0 */ - struct irq_info slots[0]; + struct irq_info slots[]; } __attribute__((packed)); extern unsigned int pcibios_irq_mask; diff --git a/arch/xtensa/include/asm/bootparam.h b/arch/xtensa/include/asm/bootparam.h index 892aab399ac8..6333bd1eb9d2 100644 --- a/arch/xtensa/include/asm/bootparam.h +++ b/arch/xtensa/include/asm/bootparam.h @@ -34,7 +34,7 @@ typedef struct bp_tag { unsigned short id; /* tag id */ unsigned short size; /* size of this record excluding the structure*/ - unsigned long data[0]; /* data */ + unsigned long data[]; /* data */ } bp_tag_t; struct bp_meminfo { diff --git a/drivers/crypto/caam/pdb.h b/drivers/crypto/caam/pdb.h index 8ccc22075043..4b1bcf53f7ac 100644 --- a/drivers/crypto/caam/pdb.h +++ b/drivers/crypto/caam/pdb.h @@ -144,7 +144,7 @@ struct ipsec_encap_pdb { }; u32 spi; u32 ip_hdr_len; - u32 ip_hdr[0]; + u32 ip_hdr[]; }; /** diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c b/drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c index 1a1edae67e4e..3acee0060e23 100644 --- a/drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c @@ -51,7 +51,7 @@ struct __guc_ads_blob { struct guc_gt_system_info system_info; struct guc_engine_usage engine_usage; /* From here on, location is dynamic! Refer to above diagram. */ - struct guc_mmio_reg regset[0]; + struct guc_mmio_reg regset[]; } __packed; static u32 guc_ads_regset_size(struct intel_guc *guc) diff --git a/drivers/gpu/drm/nouveau/include/nvfw/hs.h b/drivers/gpu/drm/nouveau/include/nvfw/hs.h index 64d0d32200c2..b53bbc4cd130 100644 --- a/drivers/gpu/drm/nouveau/include/nvfw/hs.h +++ b/drivers/gpu/drm/nouveau/include/nvfw/hs.h @@ -23,7 +23,7 @@ struct nvfw_hs_load_header { u32 data_dma_base; u32 data_size; u32 num_apps; - u32 apps[0]; + u32 apps[]; }; const struct nvfw_hs_load_header * diff --git a/drivers/hwtracing/coresight/coresight-config.h b/drivers/hwtracing/coresight/coresight-config.h index 9bd44b940add..2e1670523461 100644 --- a/drivers/hwtracing/coresight/coresight-config.h +++ b/drivers/hwtracing/coresight/coresight-config.h @@ -231,7 +231,7 @@ struct cscfg_config_csdev { bool enabled; struct list_head node; int nr_feat; - struct cscfg_feature_csdev *feats_csdev[0]; + struct cscfg_feature_csdev *feats_csdev[]; }; /** diff --git a/drivers/misc/bcm-vk/bcm_vk.h b/drivers/misc/bcm-vk/bcm_vk.h index a1338f375589..25d51222eedf 100644 --- a/drivers/misc/bcm-vk/bcm_vk.h +++ b/drivers/misc/bcm-vk/bcm_vk.h @@ -311,7 +311,7 @@ struct bcm_vk_peer_log { u32 wr_idx; u32 buf_size; u32 mask; - char data[0]; + char data[]; }; /* max buf size allowed */ diff --git a/drivers/misc/habanalabs/include/common/cpucp_if.h b/drivers/misc/habanalabs/include/common/cpucp_if.h index 737c39f33f05..f9c4acc9bf5a 100644 --- a/drivers/misc/habanalabs/include/common/cpucp_if.h +++ b/drivers/misc/habanalabs/include/common/cpucp_if.h @@ -540,19 +540,19 @@ struct cpucp_packet { struct cpucp_unmask_irq_arr_packet { struct cpucp_packet cpucp_pkt; __le32 length; - __le32 irqs[0]; + __le32 irqs[]; }; struct cpucp_nic_status_packet { struct cpucp_packet cpucp_pkt; __le32 length; - __le32 data[0]; + __le32 data[]; }; struct cpucp_array_data_packet { struct cpucp_packet cpucp_pkt; __le32 length; - __le32 data[0]; + __le32 data[]; }; enum cpucp_packet_rc { diff --git a/drivers/misc/habanalabs/include/gaudi/gaudi_packets.h b/drivers/misc/habanalabs/include/gaudi/gaudi_packets.h index 6e097ace2e96..66fc083a7c6a 100644 --- a/drivers/misc/habanalabs/include/gaudi/gaudi_packets.h +++ b/drivers/misc/habanalabs/include/gaudi/gaudi_packets.h @@ -54,7 +54,7 @@ struct gaudi_packet { /* The rest of the packet data follows. Use the corresponding * packet_XXX struct to deference the data, based on packet type */ - u8 contents[0]; + u8 contents[]; }; struct packet_nop { @@ -75,7 +75,7 @@ struct packet_wreg32 { struct packet_wreg_bulk { __le32 size64; __le32 ctl; - __le64 values[0]; /* data starts here */ + __le64 values[]; /* data starts here */ }; #define GAUDI_PKT_LONG_CTL_OP_SHIFT 20 diff --git a/drivers/misc/habanalabs/include/goya/goya_packets.h b/drivers/misc/habanalabs/include/goya/goya_packets.h index ef54bad20509..50ce5175b63a 100644 --- a/drivers/misc/habanalabs/include/goya/goya_packets.h +++ b/drivers/misc/habanalabs/include/goya/goya_packets.h @@ -62,7 +62,7 @@ struct goya_packet { /* The rest of the packet data follows. Use the corresponding * packet_XXX struct to deference the data, based on packet type */ - u8 contents[0]; + u8 contents[]; }; struct packet_nop { @@ -86,7 +86,7 @@ struct packet_wreg32 { struct packet_wreg_bulk { __le32 size64; __le32 ctl; - __le64 values[0]; /* data starts here */ + __le64 values[]; /* data starts here */ }; struct packet_msg_long { diff --git a/drivers/net/ethernet/freescale/enetc/enetc_hw.h b/drivers/net/ethernet/freescale/enetc/enetc_hw.h index 1514e6a4a3ff..ce5b677e8c2f 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc_hw.h +++ b/drivers/net/ethernet/freescale/enetc/enetc_hw.h @@ -881,7 +881,7 @@ struct sgcl_data { u32 bth; u32 ct; u32 cte; - struct sgce sgcl[0]; + struct sgce sgcl[]; }; #define ENETC_CBDR_FMI_MR BIT(0) diff --git a/drivers/net/ethernet/i825xx/sun3_82586.h b/drivers/net/ethernet/i825xx/sun3_82586.h index 79aef681ac85..451cb3d26cb5 100644 --- a/drivers/net/ethernet/i825xx/sun3_82586.h +++ b/drivers/net/ethernet/i825xx/sun3_82586.h @@ -250,7 +250,7 @@ struct mcsetup_cmd_struct unsigned short cmd_cmd; unsigned short cmd_link; unsigned short mc_cnt; /* number of bytes in the MC-List */ - unsigned char mc_list[0][6]; /* pointer to 6 bytes entries */ + unsigned char mc_list[][6]; /* pointer to 6 bytes entries */ }; /* diff --git a/drivers/net/ethernet/marvell/octeontx2/af/npc.h b/drivers/net/ethernet/marvell/octeontx2/af/npc.h index 77fd39e2c8db..9b6e587e78b4 100644 --- a/drivers/net/ethernet/marvell/octeontx2/af/npc.h +++ b/drivers/net/ethernet/marvell/octeontx2/af/npc.h @@ -455,7 +455,7 @@ struct npc_coalesced_kpu_prfl { u8 name[NPC_NAME_LEN]; /* KPU Profile name */ u64 version; /* KPU firmware/profile version */ u8 num_prfl; /* No of NPC profiles. */ - u16 prfl_sz[0]; + u16 prfl_sz[]; }; struct npc_mcam_kex { @@ -482,7 +482,7 @@ struct npc_kpu_fwdata { * struct npc_kpu_profile_cam[entries]; * struct npc_kpu_profile_action[entries]; */ - u8 data[0]; + u8 data[]; } __packed; struct npc_lt_def { @@ -572,7 +572,7 @@ struct npc_kpu_profile_fwdata { * Custom KPU CAM and ACTION configuration entries. * struct npc_kpu_fwdata kpu[kpus]; */ - u8 data[0]; + u8 data[]; } __packed; struct rvu_npc_mcam_rule { diff --git a/drivers/net/ethernet/qlogic/qed/qed_mfw_hsi.h b/drivers/net/ethernet/qlogic/qed/qed_mfw_hsi.h index b70ee8200e15..6459dd3feb37 100644 --- a/drivers/net/ethernet/qlogic/qed/qed_mfw_hsi.h +++ b/drivers/net/ethernet/qlogic/qed/qed_mfw_hsi.h @@ -2470,6 +2470,6 @@ struct nvm_meta_bin_t { u32 version; #define NVM_META_BIN_VERSION 1 u32 num_options; - u32 options[0]; + u32 options[]; }; #endif diff --git a/drivers/net/ethernet/ti/davinci_mdio.c b/drivers/net/ethernet/ti/davinci_mdio.c index a4efd5e35158..fce2626e34fa 100644 --- a/drivers/net/ethernet/ti/davinci_mdio.c +++ b/drivers/net/ethernet/ti/davinci_mdio.c @@ -70,7 +70,7 @@ struct davinci_mdio_regs { #define USERACCESS_DATA (0xffff) u32 physel; - } user[0]; + } user[]; }; static const struct mdio_platform_data default_pdata = { diff --git a/drivers/scsi/dpt/dpti_i2o.h b/drivers/scsi/dpt/dpti_i2o.h index bf0daeeb50a9..e1fbbf55c09d 100644 --- a/drivers/scsi/dpt/dpti_i2o.h +++ b/drivers/scsi/dpt/dpti_i2o.h @@ -123,7 +123,7 @@ struct i2o_sys_tbl u32 change_ind; u32 reserved2; u32 reserved3; - struct i2o_sys_tbl_entry iops[0]; + struct i2o_sys_tbl_entry iops[]; }; /* diff --git a/drivers/scsi/elx/libefc_sli/sli4.h b/drivers/scsi/elx/libefc_sli/sli4.h index ee2a9e65a88d..38af166cc786 100644 --- a/drivers/scsi/elx/libefc_sli/sli4.h +++ b/drivers/scsi/elx/libefc_sli/sli4.h @@ -609,7 +609,7 @@ struct sli4_rqst_cmn_create_cq_v2 { __le16 cqe_count; __le16 rsvd30; __le32 rsvd32; - struct sli4_dmaaddr page_phys_addr[0]; + struct sli4_dmaaddr page_phys_addr[]; }; enum sli4_create_cqset_e { @@ -634,7 +634,7 @@ struct sli4_rqst_cmn_create_cq_set_v0 { __le16 num_cq_req; __le16 dw6w1_flags; __le16 eq_id[16]; - struct sli4_dmaaddr page_phys_addr[0]; + struct sli4_dmaaddr page_phys_addr[]; }; /* CQE count */ @@ -764,7 +764,7 @@ struct sli4_rqst_cmn_create_mq_ext { __le32 dw7_val; __le32 dw8_flags; __le32 rsvd36; - struct sli4_dmaaddr page_phys_addr[0]; + struct sli4_dmaaddr page_phys_addr[]; }; struct sli4_rsp_cmn_create_mq_ext { @@ -802,7 +802,7 @@ struct sli4_rqst_cmn_create_cq_v0 { __le32 dw6_flags; __le32 rsvd28; __le32 rsvd32; - struct sli4_dmaaddr page_phys_addr[0]; + struct sli4_dmaaddr page_phys_addr[]; }; enum sli4_create_rq_e { @@ -887,7 +887,7 @@ struct sli4_rqst_rq_create_v2 { __le16 base_cq_id; __le16 rsvd26; __le32 rsvd42; - struct sli4_dmaaddr page_phys_addr[0]; + struct sli4_dmaaddr page_phys_addr[]; }; struct sli4_rsp_rq_create_v2 { @@ -3168,7 +3168,7 @@ struct sli4_rqst_cmn_read_object { __le32 read_offset; u8 object_name[104]; __le32 host_buffer_descriptor_count; - struct sli4_bde host_buffer_descriptor[0]; + struct sli4_bde host_buffer_descriptor[]; }; #define RSP_COM_READ_OBJ_EOF 0x80000000 @@ -3191,7 +3191,7 @@ struct sli4_rqst_cmn_write_object { __le32 write_offset; u8 object_name[104]; __le32 host_buffer_descriptor_count; - struct sli4_bde host_buffer_descriptor[0]; + struct sli4_bde host_buffer_descriptor[]; }; #define RSP_CHANGE_STATUS 0xff @@ -3217,7 +3217,7 @@ struct sli4_rqst_cmn_read_object_list { __le32 read_offset; u8 object_name[104]; __le32 host_buffer_descriptor_count; - struct sli4_bde host_buffer_descriptor[0]; + struct sli4_bde host_buffer_descriptor[]; }; enum sli4_rqst_set_dump_flags { @@ -3342,7 +3342,7 @@ struct sli4_rspource_descriptor_v1 { u8 descriptor_type; u8 descriptor_length; __le16 rsvd16; - __le32 type_specific[0]; + __le32 type_specific[]; }; enum sli4_pcie_desc_flags { @@ -3474,7 +3474,7 @@ struct sli4_rqst_post_hdr_templates { struct sli4_rqst_hdr hdr; __le16 rpi_offset; __le16 page_count; - struct sli4_dmaaddr page_descriptor[0]; + struct sli4_dmaaddr page_descriptor[]; }; #define SLI4_HDR_TEMPLATE_SIZE 64 diff --git a/drivers/scsi/mpi3mr/mpi3mr.h b/drivers/scsi/mpi3mr/mpi3mr.h index fc4eaf6d1e47..fb7d8775c9f7 100644 --- a/drivers/scsi/mpi3mr/mpi3mr.h +++ b/drivers/scsi/mpi3mr/mpi3mr.h @@ -878,7 +878,7 @@ struct mpi3mr_fwevt { bool process_evt; u32 evt_ctx; struct kref ref_count; - char event_data[0] __aligned(4); + char event_data[] __aligned(4); }; diff --git a/drivers/scsi/qla2xxx/qla_bsg.h b/drivers/scsi/qla2xxx/qla_bsg.h index 0f8a4c7e52a2..6d2b0a7436c1 100644 --- a/drivers/scsi/qla2xxx/qla_bsg.h +++ b/drivers/scsi/qla2xxx/qla_bsg.h @@ -157,7 +157,7 @@ struct qla84_msg_mgmt { uint16_t rsrvd; struct qla84_mgmt_param mgmtp;/* parameters for cmd */ uint32_t len; /* bytes in payload following this struct */ - uint8_t payload[0]; /* payload for cmd */ + uint8_t payload[]; /* payload for cmd */ }; struct qla_bsg_a84_mgmt { @@ -216,7 +216,7 @@ struct qla_image_version { struct qla_image_version_list { uint32_t count; - struct qla_image_version version[0]; + struct qla_image_version version[]; } __packed; struct qla_status_reg { diff --git a/drivers/scsi/qla2xxx/qla_def.h b/drivers/scsi/qla2xxx/qla_def.h index 9ebf4a234d9a..b6434c72dee3 100644 --- a/drivers/scsi/qla2xxx/qla_def.h +++ b/drivers/scsi/qla2xxx/qla_def.h @@ -5410,7 +5410,7 @@ struct ql_vnd_stat_entry { struct ql_vnd_stats { u64 entry_count; /* Num of entries */ u64 rservd; - struct ql_vnd_stat_entry entry[0]; /* Place holder of entries */ + struct ql_vnd_stat_entry entry[]; /* Place holder of entries */ } __packed; struct ql_vnd_host_stats_resp { diff --git a/drivers/scsi/qla2xxx/qla_edif_bsg.h b/drivers/scsi/qla2xxx/qla_edif_bsg.h index 53026d82ebff..5a26c77157da 100644 --- a/drivers/scsi/qla2xxx/qla_edif_bsg.h +++ b/drivers/scsi/qla2xxx/qla_edif_bsg.h @@ -121,7 +121,7 @@ struct app_pinfo { struct app_pinfo_reply { uint8_t port_count; uint8_t reserved[VND_CMD_APP_RESERVED_SIZE]; - struct app_pinfo ports[0]; + struct app_pinfo ports[]; } __packed; struct app_sinfo_req { @@ -140,7 +140,7 @@ struct app_sinfo { struct app_stats_reply { uint8_t elem_count; - struct app_sinfo elem[0]; + struct app_sinfo elem[]; } __packed; struct qla_sa_update_frame { diff --git a/drivers/scsi/qla2xxx/qla_fw.h b/drivers/scsi/qla2xxx/qla_fw.h index 073d06e88c58..0bb1d562f0bf 100644 --- a/drivers/scsi/qla2xxx/qla_fw.h +++ b/drivers/scsi/qla2xxx/qla_fw.h @@ -1706,7 +1706,7 @@ struct qla_flt_header { __le16 length; __le16 checksum; __le16 unused; - struct qla_flt_region region[0]; + struct qla_flt_region region[]; }; #define FLT_REGION_SIZE 16 diff --git a/drivers/scsi/qla4xxx/ql4_fw.h b/drivers/scsi/qla4xxx/ql4_fw.h index 4e1764df0a73..860ec61b51b9 100644 --- a/drivers/scsi/qla4xxx/ql4_fw.h +++ b/drivers/scsi/qla4xxx/ql4_fw.h @@ -1028,7 +1028,7 @@ struct crash_record { uint8_t out_RISC_reg_dump[256]; /* 80 -17F */ uint8_t in_RISC_reg_dump[256]; /*180 -27F */ - uint8_t in_out_RISC_stack_dump[0]; /*280 - ??? */ + uint8_t in_out_RISC_stack_dump[]; /*280 - ??? */ }; struct conn_event_log_entry { diff --git a/drivers/staging/r8188eu/include/ieee80211.h b/drivers/staging/r8188eu/include/ieee80211.h index 3a23d5299314..5e7de631b8ef 100644 --- a/drivers/staging/r8188eu/include/ieee80211.h +++ b/drivers/staging/r8188eu/include/ieee80211.h @@ -185,7 +185,7 @@ struct ieee_param { struct ieee_param_ex { u32 cmd; u8 sta_addr[ETH_ALEN]; - u8 data[0]; + u8 data[]; }; struct sta_data { @@ -713,7 +713,7 @@ struct ieee80211_info_element_hdr { struct ieee80211_info_element { u8 id; u8 len; - u8 data[0]; + u8 data[]; } __packed; /* @@ -776,7 +776,7 @@ struct ieee80211_txb { u16 reserved; u16 frag_size; u16 payload_size; - struct sk_buff *fragments[0]; + struct sk_buff *fragments[]; }; /* SWEEP TABLE ENTRIES NUMBER*/ diff --git a/drivers/staging/r8188eu/include/rtw_cmd.h b/drivers/staging/r8188eu/include/rtw_cmd.h index cf0945ae11c1..f8991a0493d0 100644 --- a/drivers/staging/r8188eu/include/rtw_cmd.h +++ b/drivers/staging/r8188eu/include/rtw_cmd.h @@ -73,7 +73,7 @@ struct c2h_evt_hdr { u8 id:4; u8 plen:4; u8 seq; - u8 payload[0]; + u8 payload[]; }; #define c2h_evt_exist(c2h_evt) ((c2h_evt)->id || (c2h_evt)->plen) @@ -662,25 +662,25 @@ struct getcurtxpwrlevel_rspi { struct setprobereqextraie_parm { unsigned char e_id; unsigned char ie_len; - unsigned char ie[0]; + unsigned char ie[]; }; struct setassocreqextraie_parm { unsigned char e_id; unsigned char ie_len; - unsigned char ie[0]; + unsigned char ie[]; }; struct setproberspextraie_parm { unsigned char e_id; unsigned char ie_len; - unsigned char ie[0]; + unsigned char ie[]; }; struct setassocrspextraie_parm { unsigned char e_id; unsigned char ie_len; - unsigned char ie[0]; + unsigned char ie[]; }; struct addBaReq_parm { diff --git a/drivers/staging/rtl8712/rtl871x_cmd.h b/drivers/staging/rtl8712/rtl871x_cmd.h index ddd69c4ae208..95e9ea5b2d98 100644 --- a/drivers/staging/rtl8712/rtl871x_cmd.h +++ b/drivers/staging/rtl8712/rtl871x_cmd.h @@ -657,25 +657,25 @@ struct setra_parm { struct setprobereqextraie_parm { unsigned char e_id; unsigned char ie_len; - unsigned char ie[0]; + unsigned char ie[]; }; struct setassocreqextraie_parm { unsigned char e_id; unsigned char ie_len; - unsigned char ie[0]; + unsigned char ie[]; }; struct setproberspextraie_parm { unsigned char e_id; unsigned char ie_len; - unsigned char ie[0]; + unsigned char ie[]; }; struct setassocrspextraie_parm { unsigned char e_id; unsigned char ie_len; - unsigned char ie[0]; + unsigned char ie[]; }; struct addBaReq_parm { diff --git a/drivers/staging/rtl8723bs/include/ieee80211.h b/drivers/staging/rtl8723bs/include/ieee80211.h index c11d7e2d2347..1e627dc0044d 100644 --- a/drivers/staging/rtl8723bs/include/ieee80211.h +++ b/drivers/staging/rtl8723bs/include/ieee80211.h @@ -204,7 +204,7 @@ struct ieee_param { struct ieee_param_ex { u32 cmd; u8 sta_addr[ETH_ALEN]; - u8 data[0]; + u8 data[]; }; struct sta_data { diff --git a/drivers/staging/rtl8723bs/include/rtw_cmd.h b/drivers/staging/rtl8723bs/include/rtw_cmd.h index 28d2d2732374..1bf030cbbbbe 100644 --- a/drivers/staging/rtl8723bs/include/rtw_cmd.h +++ b/drivers/staging/rtl8723bs/include/rtw_cmd.h @@ -94,7 +94,7 @@ struct c2h_evt_hdr { u8 id:4; u8 plen:4; u8 seq; - u8 payload[0]; + u8 payload[]; }; struct c2h_evt_hdr_88xx { diff --git a/drivers/staging/vc04_services/include/linux/raspberrypi/vchiq.h b/drivers/staging/vc04_services/include/linux/raspberrypi/vchiq.h index 81db7fb76d6d..c93f2f3e87bb 100644 --- a/drivers/staging/vc04_services/include/linux/raspberrypi/vchiq.h +++ b/drivers/staging/vc04_services/include/linux/raspberrypi/vchiq.h @@ -45,7 +45,7 @@ struct vchiq_header { /* Size of message data. */ unsigned int size; - char data[0]; /* message */ + char data[]; /* message */ }; struct vchiq_element { diff --git a/drivers/visorbus/vbuschannel.h b/drivers/visorbus/vbuschannel.h index 4aaf6564eb9f..98711fb6d66e 100644 --- a/drivers/visorbus/vbuschannel.h +++ b/drivers/visorbus/vbuschannel.h @@ -89,7 +89,7 @@ struct visor_vbus_channel { struct visor_vbus_headerinfo hdr_info; struct visor_vbus_deviceinfo chp_info; struct visor_vbus_deviceinfo bus_info; - struct visor_vbus_deviceinfo dev_info[0]; + struct visor_vbus_deviceinfo dev_info[]; } __packed; #endif diff --git a/fs/cifs/ntlmssp.h b/fs/cifs/ntlmssp.h index 298458404252..55758b9ec877 100644 --- a/fs/cifs/ntlmssp.h +++ b/fs/cifs/ntlmssp.h @@ -107,7 +107,7 @@ struct negotiate_message { SECURITY_BUFFER WorkstationName; /* RFC 1001 and ASCII */ struct ntlmssp_version Version; /* SECURITY_BUFFER */ - char DomainString[0]; + char DomainString[]; /* followed by WorkstationString */ } __packed; diff --git a/fs/ext4/fast_commit.h b/fs/ext4/fast_commit.h index 083ad1cb705a..07e8b734c4fd 100644 --- a/fs/ext4/fast_commit.h +++ b/fs/ext4/fast_commit.h @@ -55,13 +55,13 @@ struct ext4_fc_del_range { struct ext4_fc_dentry_info { __le32 fc_parent_ino; __le32 fc_ino; - __u8 fc_dname[0]; + __u8 fc_dname[]; }; /* Value structure for EXT4_FC_TAG_INODE and EXT4_FC_TAG_INODE_PARTIAL. */ struct ext4_fc_inode { __le32 fc_ino; - __u8 fc_raw_inode[0]; + __u8 fc_raw_inode[]; }; /* Value structure for tag EXT4_FC_TAG_TAIL. */ diff --git a/fs/ksmbd/ksmbd_netlink.h b/fs/ksmbd/ksmbd_netlink.h index 71bfb7de4472..ebe6ca08467a 100644 --- a/fs/ksmbd/ksmbd_netlink.h +++ b/fs/ksmbd/ksmbd_netlink.h @@ -241,7 +241,7 @@ struct ksmbd_rpc_command { struct ksmbd_spnego_authen_request { __u32 handle; __u16 spnego_blob_len; /* the length of spnego_blob */ - __u8 spnego_blob[0]; /* + __u8 spnego_blob[]; /* * the GSS token from SecurityBuffer of * SMB2 SESSION SETUP request */ diff --git a/fs/ksmbd/ntlmssp.h b/fs/ksmbd/ntlmssp.h index adaf4c0cbe8f..f13153c18b4e 100644 --- a/fs/ksmbd/ntlmssp.h +++ b/fs/ksmbd/ntlmssp.h @@ -95,7 +95,7 @@ struct security_buffer { struct target_info { __le16 Type; __le16 Length; - __u8 Content[0]; + __u8 Content[]; } __packed; struct negotiate_message { @@ -108,7 +108,7 @@ struct negotiate_message { * struct security_buffer for version info not present since we * do not set the version is present flag */ - char DomainString[0]; + char DomainString[]; /* followed by WorkstationString */ } __packed; @@ -140,7 +140,7 @@ struct authenticate_message { * struct security_buffer for version info not present since we * do not set the version is present flag */ - char UserString[0]; + char UserString[]; } __packed; struct ntlmv2_resp { diff --git a/fs/ksmbd/smb2pdu.h b/fs/ksmbd/smb2pdu.h index 725b800c29c8..d49468426576 100644 --- a/fs/ksmbd/smb2pdu.h +++ b/fs/ksmbd/smb2pdu.h @@ -759,7 +759,7 @@ struct smb2_file_rename_info { /* encoding of request for level 10 */ __u8 Reserved[7]; __u64 RootDirectory; /* MBZ for network operations (why says spec?) */ __le32 FileNameLength; - char FileName[0]; /* New name to be assigned */ + char FileName[]; /* New name to be assigned */ } __packed; /* level 10 Set */ struct smb2_file_link_info { /* encoding of request for level 11 */ @@ -768,7 +768,7 @@ struct smb2_file_link_info { /* encoding of request for level 11 */ __u8 Reserved[7]; __u64 RootDirectory; /* MBZ for network operations (why says spec?) */ __le32 FileNameLength; - char FileName[0]; /* Name to be assigned to new link */ + char FileName[]; /* Name to be assigned to new link */ } __packed; /* level 11 Set */ /* @@ -810,7 +810,7 @@ struct smb2_file_basic_info { /* data block encoding of response to level 18 */ struct smb2_file_alt_name_info { __le32 FileNameLength; - char FileName[0]; + char FileName[]; } __packed; struct smb2_file_stream_info { @@ -818,7 +818,7 @@ struct smb2_file_stream_info { __le32 StreamNameLength; __le64 StreamSize; __le64 StreamAllocationSize; - char StreamName[0]; + char StreamName[]; } __packed; struct smb2_file_eof_info { /* encoding of request for level 10 */ diff --git a/fs/ksmbd/transport_rdma.c b/fs/ksmbd/transport_rdma.c index 3c1ec1ac0b27..9976d39c6ed8 100644 --- a/fs/ksmbd/transport_rdma.c +++ b/fs/ksmbd/transport_rdma.c @@ -211,7 +211,7 @@ struct smb_direct_rdma_rw_msg { struct completion *completion; struct rdma_rw_ctx rw_ctx; struct sg_table sgt; - struct scatterlist sg_list[0]; + struct scatterlist sg_list[]; }; static inline int get_buf_page_count(void *buf, int size) diff --git a/fs/ksmbd/xattr.h b/fs/ksmbd/xattr.h index 8857c01093d9..16499ca5c82d 100644 --- a/fs/ksmbd/xattr.h +++ b/fs/ksmbd/xattr.h @@ -76,7 +76,7 @@ struct xattr_acl_entry { struct xattr_smb_acl { int count; int next; - struct xattr_acl_entry entries[0]; + struct xattr_acl_entry entries[]; }; /* 64bytes hash in xattr_ntacl is computed with sha256 */ diff --git a/fs/xfs/scrub/attr.h b/fs/xfs/scrub/attr.h index 1719e1c4da59..3590e10e3e62 100644 --- a/fs/xfs/scrub/attr.h +++ b/fs/xfs/scrub/attr.h @@ -24,7 +24,7 @@ struct xchk_xattr_buf { * space bitmap follows immediately after; and we have a third buffer * for storing intermediate bitmap results. */ - uint8_t buf[0]; + uint8_t buf[]; }; /* A place to store attribute values. */ diff --git a/include/acpi/actbl2.h b/include/acpi/actbl2.h index 16847c8d9d5f..9ee4d1b39125 100644 --- a/include/acpi/actbl2.h +++ b/include/acpi/actbl2.h @@ -2319,7 +2319,7 @@ struct acpi_table_rgrt { u16 version; u8 image_type; u8 reserved; - u8 image[0]; + u8 image[]; }; /* image_type values */ diff --git a/include/asm-generic/tlb.h b/include/asm-generic/tlb.h index 2c68a545ffa7..fd7feb5c7894 100644 --- a/include/asm-generic/tlb.h +++ b/include/asm-generic/tlb.h @@ -180,7 +180,7 @@ struct mmu_table_batch { struct rcu_head rcu; #endif unsigned int nr; - void *tables[0]; + void *tables[]; }; #define MAX_TABLE_BATCH \ @@ -227,7 +227,7 @@ struct mmu_gather_batch { struct mmu_gather_batch *next; unsigned int nr; unsigned int max; - struct page *pages[0]; + struct page *pages[]; }; #define MAX_GATHER_BATCH \ diff --git a/include/linux/greybus/greybus_manifest.h b/include/linux/greybus/greybus_manifest.h index 6e62fe478712..bef9eb2093e9 100644 --- a/include/linux/greybus/greybus_manifest.h +++ b/include/linux/greybus/greybus_manifest.h @@ -100,7 +100,7 @@ enum { struct greybus_descriptor_string { __u8 length; __u8 id; - __u8 string[0]; + __u8 string[]; } __packed; /* @@ -175,7 +175,7 @@ struct greybus_manifest_header { struct greybus_manifest { struct greybus_manifest_header header; - struct greybus_descriptor descriptors[0]; + struct greybus_descriptor descriptors[]; } __packed; #endif /* __GREYBUS_MANIFEST_H */ diff --git a/include/linux/greybus/hd.h b/include/linux/greybus/hd.h index d3faf0c1a569..718e2857054e 100644 --- a/include/linux/greybus/hd.h +++ b/include/linux/greybus/hd.h @@ -58,7 +58,7 @@ struct gb_host_device { struct gb_svc *svc; /* Private data for the host driver */ - unsigned long hd_priv[0] __aligned(sizeof(s64)); + unsigned long hd_priv[] __aligned(sizeof(s64)); }; #define to_gb_host_device(d) container_of(d, struct gb_host_device, dev) diff --git a/include/linux/greybus/module.h b/include/linux/greybus/module.h index 47b839af145d..3efe2133acfd 100644 --- a/include/linux/greybus/module.h +++ b/include/linux/greybus/module.h @@ -23,7 +23,7 @@ struct gb_module { bool disconnected; - struct gb_interface *interfaces[0]; + struct gb_interface *interfaces[]; }; #define to_gb_module(d) container_of(d, struct gb_module, dev) diff --git a/include/linux/i3c/ccc.h b/include/linux/i3c/ccc.h index 73b0982cc519..ad59a4ae60d1 100644 --- a/include/linux/i3c/ccc.h +++ b/include/linux/i3c/ccc.h @@ -132,7 +132,7 @@ struct i3c_ccc_dev_desc { struct i3c_ccc_defslvs { u8 count; struct i3c_ccc_dev_desc master; - struct i3c_ccc_dev_desc slaves[0]; + struct i3c_ccc_dev_desc slaves[]; } __packed; /** @@ -240,7 +240,7 @@ struct i3c_ccc_bridged_slave_desc { */ struct i3c_ccc_setbrgtgt { u8 count; - struct i3c_ccc_bridged_slave_desc bslaves[0]; + struct i3c_ccc_bridged_slave_desc bslaves[]; } __packed; /** @@ -318,7 +318,7 @@ enum i3c_ccc_setxtime_subcmd { */ struct i3c_ccc_setxtime { u8 subcmd; - u8 data[0]; + u8 data[]; } __packed; #define I3C_CCC_GETXTIME_SYNC_MODE BIT(0) diff --git a/include/linux/mlx5/mlx5_ifc_fpga.h b/include/linux/mlx5/mlx5_ifc_fpga.h index 07d77323f78a..cac4e94abd3a 100644 --- a/include/linux/mlx5/mlx5_ifc_fpga.h +++ b/include/linux/mlx5/mlx5_ifc_fpga.h @@ -185,7 +185,7 @@ struct mlx5_ifc_fpga_access_reg_bits { u8 address[0x40]; - u8 data[0][0x8]; + u8 data[][0x8]; }; enum mlx5_ifc_fpga_qp_state { diff --git a/include/linux/platform_data/brcmfmac.h b/include/linux/platform_data/brcmfmac.h index 2b5676ff35be..f922a192fe58 100644 --- a/include/linux/platform_data/brcmfmac.h +++ b/include/linux/platform_data/brcmfmac.h @@ -178,7 +178,7 @@ struct brcmfmac_platform_data { void (*power_off)(void); char *fw_alternative_path; int device_count; - struct brcmfmac_pd_device devices[0]; + struct brcmfmac_pd_device devices[]; }; diff --git a/include/linux/platform_data/cros_ec_commands.h b/include/linux/platform_data/cros_ec_commands.h index 271bd87bff0a..728735aed980 100644 --- a/include/linux/platform_data/cros_ec_commands.h +++ b/include/linux/platform_data/cros_ec_commands.h @@ -5644,7 +5644,7 @@ struct ec_response_typec_discovery { uint8_t svid_count; /* Number of SVIDs partner sent */ uint16_t reserved; uint32_t discovery_vdo[6]; /* Max VDOs allowed after VDM header is 6 */ - struct svid_mode_info svids[0]; + struct svid_mode_info svids[]; } __ec_align1; /* USB Type-C commands for AP-controlled device policy. */ diff --git a/include/net/bluetooth/mgmt.h b/include/net/bluetooth/mgmt.h index 107b25deae68..9607ec289fd0 100644 --- a/include/net/bluetooth/mgmt.h +++ b/include/net/bluetooth/mgmt.h @@ -696,7 +696,7 @@ struct mgmt_cp_set_blocked_keys { #define MGMT_READ_CONTROLLER_CAP_SIZE 0 struct mgmt_rp_read_controller_cap { __le16 cap_len; - __u8 cap[0]; + __u8 cap[]; } __packed; #define MGMT_OP_READ_EXP_FEATURES_INFO 0x0049 diff --git a/include/net/ioam6.h b/include/net/ioam6.h index 3f45ba37a2c6..781d2d8b2f29 100644 --- a/include/net/ioam6.h +++ b/include/net/ioam6.h @@ -35,7 +35,7 @@ struct ioam6_schema { int len; __be32 hdr; - u8 data[0]; + u8 data[]; }; struct ioam6_pernet_data { diff --git a/include/sound/sof/channel_map.h b/include/sound/sof/channel_map.h index fd3a30fcf756..d363f0ca6979 100644 --- a/include/sound/sof/channel_map.h +++ b/include/sound/sof/channel_map.h @@ -39,7 +39,7 @@ struct sof_ipc_channel_map { uint32_t ext_id; uint32_t ch_mask; uint32_t reserved; - int32_t ch_coeffs[0]; + int32_t ch_coeffs[]; } __packed; /** @@ -55,7 +55,7 @@ struct sof_ipc_stream_map { struct sof_ipc_cmd_hdr hdr; uint32_t num_ch_map; uint32_t reserved[3]; - struct sof_ipc_channel_map ch_map[0]; + struct sof_ipc_channel_map ch_map[]; } __packed; #endif /* __IPC_CHANNEL_MAP_H__ */ diff --git a/scripts/dtc/libfdt/fdt.h b/scripts/dtc/libfdt/fdt.h index f2e68807f277..0c91aa7f67b5 100644 --- a/scripts/dtc/libfdt/fdt.h +++ b/scripts/dtc/libfdt/fdt.h @@ -35,14 +35,14 @@ struct fdt_reserve_entry { struct fdt_node_header { fdt32_t tag; - char name[0]; + char name[]; }; struct fdt_property { fdt32_t tag; fdt32_t len; fdt32_t nameoff; - char data[0]; + char data[]; }; #endif /* !__ASSEMBLY */ diff --git a/sound/soc/intel/atom/sst-mfld-dsp.h b/sound/soc/intel/atom/sst-mfld-dsp.h index 8d9e29b16e57..c8f0816edb53 100644 --- a/sound/soc/intel/atom/sst-mfld-dsp.h +++ b/sound/soc/intel/atom/sst-mfld-dsp.h @@ -427,7 +427,7 @@ struct snd_sst_drop_response { struct snd_sst_async_msg { u32 msg_id; /* Async msg id */ - u32 payload[0]; + u32 payload[]; }; struct snd_sst_async_err_msg { @@ -514,7 +514,7 @@ struct snd_sst_bytes_v2 { u8 pipe_id; u8 rsvd; u16 len; - char bytes[0]; + char bytes[]; }; #define MAX_VTSV_FILES 2 diff --git a/sound/soc/intel/skylake/skl-topology.h b/sound/soc/intel/skylake/skl-topology.h index 22963634fbea..a5bccf2fcd88 100644 --- a/sound/soc/intel/skylake/skl-topology.h +++ b/sound/soc/intel/skylake/skl-topology.h @@ -164,7 +164,7 @@ struct skl_base_cfg_ext { u8 reserved[8]; u32 priv_param_length; /* Input pin formats followed by output ones. */ - struct skl_pin_format pins_fmt[0]; + struct skl_pin_format pins_fmt[]; } __packed; struct skl_algo_cfg { diff --git a/tools/lib/perf/include/perf/event.h b/tools/lib/perf/include/perf/event.h index 75ee385fb078..e7758707cadd 100644 --- a/tools/lib/perf/include/perf/event.h +++ b/tools/lib/perf/include/perf/event.h @@ -240,7 +240,7 @@ struct id_index_entry { struct perf_record_id_index { struct perf_event_header header; __u64 nr; - struct id_index_entry entries[0]; + struct id_index_entry entries[]; }; struct perf_record_auxtrace_info { -- 2.27.0 From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Gustavo A. R. Silva" Subject: [PATCH][next] treewide: Replace zero-length arrays with flexible-array members Date: Tue, 15 Feb 2022 11:47:43 -0600 Message-ID: <20220215174743.GA878920@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=1644946809; bh=DMett6vVXSj8wlqJaPBVitbC+1b/pFrWBdbwXSCqmvY=; h=Date:From:To:Subject:From; b=YHAhsK9b4ceo93O7cGMZkhAJtHRB9CQ+4MLg6VhoAXIqUZPNOt2f2z/RHYaJLxO76 o1sCxEuNmr5hKqcrqdfi+pE1eKIsCJw9V851Cjnm9cHc2sRZx45hzEu6vQLDXrkmcu xKf2+PXhFhb8dbpeFBN+6vQWXHxPvhHISBgL9Fxux6eGzM+9JCAXaTGT3/3xrwLv7i m8KqkuUbReSbhvZRqSxYfdGT/EXjyAq6yFXtOj0CnyhrPV5rigOkg2Pp92zsFyGVAh 1grvtuR4WfTMHEo/CBi7F8KvXPKqUpdwIOcsL3Pbwr2lQCgLUtbCpkZ3x6BdjDlhc3 zFo6AQd/J/DOQ== Content-Disposition: inline List-ID: Content-Type: text/plain; charset="utf-8" To: GR-QLogic-Storage-Upstream@marvell.com, linux-alpha@vger.kernel.org, linux-kernel@vger.kernel.org, linux-ia64@vger.kernel.org, linux-s390@vger.kernel.org, linux-sh@vger.kernel.org, sparclinux@vger.kernel.org, linux-um@lists.infradead.org, linux-xtensa@linux-xtensa.org, linux-crypto@vger.kernel.org, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, nouveau@lists.freedesktop.org, coresight@lists.linaro.org, linux-arm-kernel@lists.infradead.org, bcm-kernel-feedback-list@broadcom.com, netdev@vger.kernel.org, linux-omap@vger.kernel.org, linux-scsi@vger.kernel.org, target-devel@vger.kernel.org, mpi3mr-linuxdrv.pdl@broadcom.com, linux-staging@lists.linux.dev, linux-rpi-kernel@lists.infradead.org, sparmaintainer@unisys.com, linux-cifs@vger.kernel.org, samba-technical@lists. 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: (next-20220214$ 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 ]; }; UAPI and wireless changes were intentionally excluded from this patch and will be sent out separately. [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 Signed-off-by: Gustavo A. R. Silva --- Hi all, I'm expecting to carry this patch in my tree, so it'd be great to get some Acks. And given the size of the patch, I'm only sending this to mailing lists. Thanks! arch/alpha/include/asm/hwrpb.h | 2 +- arch/ia64/include/asm/sal.h | 2 +- arch/s390/include/asm/ccwgroup.h | 2 +- arch/s390/include/asm/chsc.h | 2 +- arch/s390/include/asm/eadm.h | 2 +- arch/s390/include/asm/fcx.h | 4 ++-- arch/s390/include/asm/idals.h | 2 +- arch/s390/include/asm/sclp.h | 2 +- arch/s390/include/asm/sysinfo.h | 6 +++--- arch/sh/include/asm/thread_info.h | 2 +- arch/sparc/include/asm/vio.h | 10 +++++----- arch/um/include/shared/net_kern.h | 2 +- arch/x86/include/asm/microcode_amd.h | 2 +- arch/x86/include/asm/microcode_intel.h | 4 ++-- arch/x86/include/asm/pci.h | 2 +- arch/x86/include/asm/pci_x86.h | 2 +- arch/xtensa/include/asm/bootparam.h | 2 +- drivers/crypto/caam/pdb.h | 2 +- drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c | 2 +- drivers/gpu/drm/nouveau/include/nvfw/hs.h | 2 +- .../hwtracing/coresight/coresight-config.h | 2 +- drivers/misc/bcm-vk/bcm_vk.h | 2 +- .../misc/habanalabs/include/common/cpucp_if.h | 6 +++--- .../habanalabs/include/gaudi/gaudi_packets.h | 4 ++-- .../habanalabs/include/goya/goya_packets.h | 4 ++-- .../net/ethernet/freescale/enetc/enetc_hw.h | 2 +- drivers/net/ethernet/i825xx/sun3_82586.h | 2 +- .../net/ethernet/marvell/octeontx2/af/npc.h | 6 +++--- drivers/net/ethernet/qlogic/qed/qed_mfw_hsi.h | 2 +- drivers/net/ethernet/ti/davinci_mdio.c | 2 +- drivers/scsi/dpt/dpti_i2o.h | 2 +- drivers/scsi/elx/libefc_sli/sli4.h | 20 +++++++++---------- drivers/scsi/mpi3mr/mpi3mr.h | 2 +- drivers/scsi/qla2xxx/qla_bsg.h | 4 ++-- drivers/scsi/qla2xxx/qla_def.h | 2 +- drivers/scsi/qla2xxx/qla_edif_bsg.h | 4 ++-- drivers/scsi/qla2xxx/qla_fw.h | 2 +- drivers/scsi/qla4xxx/ql4_fw.h | 2 +- drivers/staging/r8188eu/include/ieee80211.h | 6 +++--- drivers/staging/r8188eu/include/rtw_cmd.h | 10 +++++----- drivers/staging/rtl8712/rtl871x_cmd.h | 8 ++++---- drivers/staging/rtl8723bs/include/ieee80211.h | 2 +- drivers/staging/rtl8723bs/include/rtw_cmd.h | 2 +- .../include/linux/raspberrypi/vchiq.h | 2 +- drivers/visorbus/vbuschannel.h | 2 +- fs/cifs/ntlmssp.h | 2 +- fs/ext4/fast_commit.h | 4 ++-- fs/ksmbd/ksmbd_netlink.h | 2 +- fs/ksmbd/ntlmssp.h | 6 +++--- fs/ksmbd/smb2pdu.h | 8 ++++---- fs/ksmbd/transport_rdma.c | 2 +- fs/ksmbd/xattr.h | 2 +- fs/xfs/scrub/attr.h | 2 +- include/acpi/actbl2.h | 2 +- include/asm-generic/tlb.h | 4 ++-- include/linux/greybus/greybus_manifest.h | 4 ++-- include/linux/greybus/hd.h | 2 +- include/linux/greybus/module.h | 2 +- include/linux/i3c/ccc.h | 6 +++--- include/linux/mlx5/mlx5_ifc_fpga.h | 2 +- include/linux/platform_data/brcmfmac.h | 2 +- .../linux/platform_data/cros_ec_commands.h | 2 +- include/net/bluetooth/mgmt.h | 2 +- include/net/ioam6.h | 2 +- include/sound/sof/channel_map.h | 4 ++-- scripts/dtc/libfdt/fdt.h | 4 ++-- sound/soc/intel/atom/sst-mfld-dsp.h | 4 ++-- sound/soc/intel/skylake/skl-topology.h | 2 +- tools/lib/perf/include/perf/event.h | 2 +- 69 files changed, 116 insertions(+), 116 deletions(-) diff --git a/arch/alpha/include/asm/hwrpb.h b/arch/alpha/include/asm/hwrpb.h index d8180e527a1e..fc76f36265ad 100644 --- a/arch/alpha/include/asm/hwrpb.h +++ b/arch/alpha/include/asm/hwrpb.h @@ -152,7 +152,7 @@ struct memdesc_struct { unsigned long chksum; unsigned long optional_pa; unsigned long numclusters; - struct memclust_struct cluster[0]; + struct memclust_struct cluster[]; }; struct dsr_struct { diff --git a/arch/ia64/include/asm/sal.h b/arch/ia64/include/asm/sal.h index 78f4f7b40435..22749a201e92 100644 --- a/arch/ia64/include/asm/sal.h +++ b/arch/ia64/include/asm/sal.h @@ -420,7 +420,7 @@ typedef struct sal_log_processor_info { * The rest of this structure consists of variable-length arrays, which can't be * expressed in C. */ - sal_log_mod_error_info_t info[0]; + sal_log_mod_error_info_t info[]; /* * This is what the rest looked like if C supported variable-length arrays: * diff --git a/arch/s390/include/asm/ccwgroup.h b/arch/s390/include/asm/ccwgroup.h index aa995d91cd1d..11d2fb3de4f5 100644 --- a/arch/s390/include/asm/ccwgroup.h +++ b/arch/s390/include/asm/ccwgroup.h @@ -25,7 +25,7 @@ struct ccwgroup_device { unsigned int count; struct device dev; struct work_struct ungroup_work; - struct ccw_device *cdev[0]; + struct ccw_device *cdev[]; }; /** diff --git a/arch/s390/include/asm/chsc.h b/arch/s390/include/asm/chsc.h index ae4d2549cd67..bb48ea380c0d 100644 --- a/arch/s390/include/asm/chsc.h +++ b/arch/s390/include/asm/chsc.h @@ -63,7 +63,7 @@ struct chsc_pnso_area { struct chsc_header response; u32:32; struct chsc_pnso_naihdr naihdr; - struct chsc_pnso_naid_l2 entries[0]; + struct chsc_pnso_naid_l2 entries[]; } __packed __aligned(PAGE_SIZE); #endif /* _ASM_S390_CHSC_H */ diff --git a/arch/s390/include/asm/eadm.h b/arch/s390/include/asm/eadm.h index 445fe4c8184a..06f795855af7 100644 --- a/arch/s390/include/asm/eadm.h +++ b/arch/s390/include/asm/eadm.h @@ -78,7 +78,7 @@ struct aob { struct aob_rq_header { struct scm_device *scmdev; - char data[0]; + char data[]; }; struct scm_device { diff --git a/arch/s390/include/asm/fcx.h b/arch/s390/include/asm/fcx.h index cff0749e9657..b8a028a36173 100644 --- a/arch/s390/include/asm/fcx.h +++ b/arch/s390/include/asm/fcx.h @@ -214,7 +214,7 @@ struct dcw_intrg_data { u32 :32; u64 time; u64 prog_id; - u8 prog_data[0]; + u8 prog_data[]; } __attribute__ ((packed)); #define DCW_FLAGS_CC (1 << (7 - 1)) @@ -241,7 +241,7 @@ struct dcw { u32 :8; u32 cd_count:8; u32 count; - u8 cd[0]; + u8 cd[]; } __attribute__ ((packed)); #define TCCB_FORMAT_DEFAULT 0x7f diff --git a/arch/s390/include/asm/idals.h b/arch/s390/include/asm/idals.h index 6fb7aced104a..40eae2c08d61 100644 --- a/arch/s390/include/asm/idals.h +++ b/arch/s390/include/asm/idals.h @@ -108,7 +108,7 @@ clear_normalized_cda(struct ccw1 * ccw) struct idal_buffer { size_t size; size_t page_order; - void *data[0]; + void *data[]; }; /* diff --git a/arch/s390/include/asm/sclp.h b/arch/s390/include/asm/sclp.h index c68ea35de498..22b3213c6c9d 100644 --- a/arch/s390/include/asm/sclp.h +++ b/arch/s390/include/asm/sclp.h @@ -112,7 +112,7 @@ struct zpci_report_error_header { * (OpenCrypto Successful Diagnostics Execution) */ u16 length; /* Length of Subsequent Data (up to 4K – SCLP header */ - u8 data[0]; /* Subsequent Data passed verbatim to SCLP ET 24 */ + u8 data[]; /* Subsequent Data passed verbatim to SCLP ET 24 */ } __packed; extern char *sclp_early_sccb; diff --git a/arch/s390/include/asm/sysinfo.h b/arch/s390/include/asm/sysinfo.h index fe7b3f8f0791..ab1c6316055c 100644 --- a/arch/s390/include/asm/sysinfo.h +++ b/arch/s390/include/asm/sysinfo.h @@ -67,12 +67,12 @@ struct sysinfo_1_2_2 { unsigned short cpus_configured; unsigned short cpus_standby; unsigned short cpus_reserved; - unsigned short adjustment[0]; + unsigned short adjustment[]; }; struct sysinfo_1_2_2_extension { unsigned int alt_capability; - unsigned short alt_adjustment[0]; + unsigned short alt_adjustment[]; }; struct sysinfo_2_2_1 { @@ -181,7 +181,7 @@ struct sysinfo_15_1_x { unsigned char reserved1; unsigned char mnest; unsigned char reserved2[4]; - union topology_entry tle[0]; + union topology_entry tle[]; }; int stsi(void *sysinfo, int fc, int sel1, int sel2); diff --git a/arch/sh/include/asm/thread_info.h b/arch/sh/include/asm/thread_info.h index 598d0184ffea..3a2d50d61fc9 100644 --- a/arch/sh/include/asm/thread_info.h +++ b/arch/sh/include/asm/thread_info.h @@ -33,7 +33,7 @@ struct thread_info { mm_segment_t addr_limit; /* thread address space */ unsigned long previous_sp; /* sp of previous stack in case of nested IRQ stacks */ - __u8 supervisor_stack[0]; + __u8 supervisor_stack[]; }; #endif diff --git a/arch/sparc/include/asm/vio.h b/arch/sparc/include/asm/vio.h index 8a1a83bbb6d5..2d7bdf665fd3 100644 --- a/arch/sparc/include/asm/vio.h +++ b/arch/sparc/include/asm/vio.h @@ -70,7 +70,7 @@ struct vio_dring_register { #define VIO_RX_DRING_DATA 0x0004 u16 resv; u32 num_cookies; - struct ldc_trans_cookie cookies[0]; + struct ldc_trans_cookie cookies[]; }; struct vio_dring_unregister { @@ -161,7 +161,7 @@ struct vio_disk_desc { u64 size; u32 ncookies; u32 resv2; - struct ldc_trans_cookie cookies[0]; + struct ldc_trans_cookie cookies[]; }; #define VIO_DISK_VNAME_LEN 8 @@ -200,13 +200,13 @@ struct vio_disk_devid { u16 resv; u16 type; u32 len; - char id[0]; + char id[]; }; struct vio_disk_efi { u64 lba; u64 len; - char data[0]; + char data[]; }; /* VIO net specific structures and defines */ @@ -246,7 +246,7 @@ struct vio_net_desc { struct vio_dring_hdr hdr; u32 size; u32 ncookies; - struct ldc_trans_cookie cookies[0]; + struct ldc_trans_cookie cookies[]; }; struct vio_net_dext { diff --git a/arch/um/include/shared/net_kern.h b/arch/um/include/shared/net_kern.h index 441a8a309329..67b2e9a1f2e5 100644 --- a/arch/um/include/shared/net_kern.h +++ b/arch/um/include/shared/net_kern.h @@ -39,7 +39,7 @@ struct uml_net_private { void (*add_address)(unsigned char *, unsigned char *, void *); void (*delete_address)(unsigned char *, unsigned char *, void *); - char user[0]; + char user[]; }; struct net_kern_info { diff --git a/arch/x86/include/asm/microcode_amd.h b/arch/x86/include/asm/microcode_amd.h index 7063b5a43220..ac31f9140d07 100644 --- a/arch/x86/include/asm/microcode_amd.h +++ b/arch/x86/include/asm/microcode_amd.h @@ -38,7 +38,7 @@ struct microcode_header_amd { struct microcode_amd { struct microcode_header_amd hdr; - unsigned int mpb[0]; + unsigned int mpb[]; }; #define PATCH_MAX_SIZE (3 * PAGE_SIZE) diff --git a/arch/x86/include/asm/microcode_intel.h b/arch/x86/include/asm/microcode_intel.h index d85a07d7154f..4c92cea7e4b5 100644 --- a/arch/x86/include/asm/microcode_intel.h +++ b/arch/x86/include/asm/microcode_intel.h @@ -19,7 +19,7 @@ struct microcode_header_intel { struct microcode_intel { struct microcode_header_intel hdr; - unsigned int bits[0]; + unsigned int bits[]; }; /* microcode format is extended from prescott processors */ @@ -33,7 +33,7 @@ struct extended_sigtable { unsigned int count; unsigned int cksum; unsigned int reserved[3]; - struct extended_signature sigs[0]; + struct extended_signature sigs[]; }; #define DEFAULT_UCODE_DATASIZE (2000) diff --git a/arch/x86/include/asm/pci.h b/arch/x86/include/asm/pci.h index d2c76c8d8cfd..f3fd5928bcbb 100644 --- a/arch/x86/include/asm/pci.h +++ b/arch/x86/include/asm/pci.h @@ -135,7 +135,7 @@ struct pci_setup_rom { unsigned long bus; unsigned long device; unsigned long function; - uint8_t romdata[0]; + uint8_t romdata[]; }; #endif /* _ASM_X86_PCI_H */ diff --git a/arch/x86/include/asm/pci_x86.h b/arch/x86/include/asm/pci_x86.h index 490411dba438..3fb6fc596095 100644 --- a/arch/x86/include/asm/pci_x86.h +++ b/arch/x86/include/asm/pci_x86.h @@ -87,7 +87,7 @@ struct irq_routing_table { u32 miniport_data; /* Crap */ u8 rfu[11]; u8 checksum; /* Modulo 256 checksum must give 0 */ - struct irq_info slots[0]; + struct irq_info slots[]; } __attribute__((packed)); extern unsigned int pcibios_irq_mask; diff --git a/arch/xtensa/include/asm/bootparam.h b/arch/xtensa/include/asm/bootparam.h index 892aab399ac8..6333bd1eb9d2 100644 --- a/arch/xtensa/include/asm/bootparam.h +++ b/arch/xtensa/include/asm/bootparam.h @@ -34,7 +34,7 @@ typedef struct bp_tag { unsigned short id; /* tag id */ unsigned short size; /* size of this record excluding the structure*/ - unsigned long data[0]; /* data */ + unsigned long data[]; /* data */ } bp_tag_t; struct bp_meminfo { diff --git a/drivers/crypto/caam/pdb.h b/drivers/crypto/caam/pdb.h index 8ccc22075043..4b1bcf53f7ac 100644 --- a/drivers/crypto/caam/pdb.h +++ b/drivers/crypto/caam/pdb.h @@ -144,7 +144,7 @@ struct ipsec_encap_pdb { }; u32 spi; u32 ip_hdr_len; - u32 ip_hdr[0]; + u32 ip_hdr[]; }; /** diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c b/drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c index 1a1edae67e4e..3acee0060e23 100644 --- a/drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c @@ -51,7 +51,7 @@ struct __guc_ads_blob { struct guc_gt_system_info system_info; struct guc_engine_usage engine_usage; /* From here on, location is dynamic! Refer to above diagram. */ - struct guc_mmio_reg regset[0]; + struct guc_mmio_reg regset[]; } __packed; static u32 guc_ads_regset_size(struct intel_guc *guc) diff --git a/drivers/gpu/drm/nouveau/include/nvfw/hs.h b/drivers/gpu/drm/nouveau/include/nvfw/hs.h index 64d0d32200c2..b53bbc4cd130 100644 --- a/drivers/gpu/drm/nouveau/include/nvfw/hs.h +++ b/drivers/gpu/drm/nouveau/include/nvfw/hs.h @@ -23,7 +23,7 @@ struct nvfw_hs_load_header { u32 data_dma_base; u32 data_size; u32 num_apps; - u32 apps[0]; + u32 apps[]; }; const struct nvfw_hs_load_header * diff --git a/drivers/hwtracing/coresight/coresight-config.h b/drivers/hwtracing/coresight/coresight-config.h index 9bd44b940add..2e1670523461 100644 --- a/drivers/hwtracing/coresight/coresight-config.h +++ b/drivers/hwtracing/coresight/coresight-config.h @@ -231,7 +231,7 @@ struct cscfg_config_csdev { bool enabled; struct list_head node; int nr_feat; - struct cscfg_feature_csdev *feats_csdev[0]; + struct cscfg_feature_csdev *feats_csdev[]; }; /** diff --git a/drivers/misc/bcm-vk/bcm_vk.h b/drivers/misc/bcm-vk/bcm_vk.h index a1338f375589..25d51222eedf 100644 --- a/drivers/misc/bcm-vk/bcm_vk.h +++ b/drivers/misc/bcm-vk/bcm_vk.h @@ -311,7 +311,7 @@ struct bcm_vk_peer_log { u32 wr_idx; u32 buf_size; u32 mask; - char data[0]; + char data[]; }; /* max buf size allowed */ diff --git a/drivers/misc/habanalabs/include/common/cpucp_if.h b/drivers/misc/habanalabs/include/common/cpucp_if.h index 737c39f33f05..f9c4acc9bf5a 100644 --- a/drivers/misc/habanalabs/include/common/cpucp_if.h +++ b/drivers/misc/habanalabs/include/common/cpucp_if.h @@ -540,19 +540,19 @@ struct cpucp_packet { struct cpucp_unmask_irq_arr_packet { struct cpucp_packet cpucp_pkt; __le32 length; - __le32 irqs[0]; + __le32 irqs[]; }; struct cpucp_nic_status_packet { struct cpucp_packet cpucp_pkt; __le32 length; - __le32 data[0]; + __le32 data[]; }; struct cpucp_array_data_packet { struct cpucp_packet cpucp_pkt; __le32 length; - __le32 data[0]; + __le32 data[]; }; enum cpucp_packet_rc { diff --git a/drivers/misc/habanalabs/include/gaudi/gaudi_packets.h b/drivers/misc/habanalabs/include/gaudi/gaudi_packets.h index 6e097ace2e96..66fc083a7c6a 100644 --- a/drivers/misc/habanalabs/include/gaudi/gaudi_packets.h +++ b/drivers/misc/habanalabs/include/gaudi/gaudi_packets.h @@ -54,7 +54,7 @@ struct gaudi_packet { /* The rest of the packet data follows. Use the corresponding * packet_XXX struct to deference the data, based on packet type */ - u8 contents[0]; + u8 contents[]; }; struct packet_nop { @@ -75,7 +75,7 @@ struct packet_wreg32 { struct packet_wreg_bulk { __le32 size64; __le32 ctl; - __le64 values[0]; /* data starts here */ + __le64 values[]; /* data starts here */ }; #define GAUDI_PKT_LONG_CTL_OP_SHIFT 20 diff --git a/drivers/misc/habanalabs/include/goya/goya_packets.h b/drivers/misc/habanalabs/include/goya/goya_packets.h index ef54bad20509..50ce5175b63a 100644 --- a/drivers/misc/habanalabs/include/goya/goya_packets.h +++ b/drivers/misc/habanalabs/include/goya/goya_packets.h @@ -62,7 +62,7 @@ struct goya_packet { /* The rest of the packet data follows. Use the corresponding * packet_XXX struct to deference the data, based on packet type */ - u8 contents[0]; + u8 contents[]; }; struct packet_nop { @@ -86,7 +86,7 @@ struct packet_wreg32 { struct packet_wreg_bulk { __le32 size64; __le32 ctl; - __le64 values[0]; /* data starts here */ + __le64 values[]; /* data starts here */ }; struct packet_msg_long { diff --git a/drivers/net/ethernet/freescale/enetc/enetc_hw.h b/drivers/net/ethernet/freescale/enetc/enetc_hw.h index 1514e6a4a3ff..ce5b677e8c2f 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc_hw.h +++ b/drivers/net/ethernet/freescale/enetc/enetc_hw.h @@ -881,7 +881,7 @@ struct sgcl_data { u32 bth; u32 ct; u32 cte; - struct sgce sgcl[0]; + struct sgce sgcl[]; }; #define ENETC_CBDR_FMI_MR BIT(0) diff --git a/drivers/net/ethernet/i825xx/sun3_82586.h b/drivers/net/ethernet/i825xx/sun3_82586.h index 79aef681ac85..451cb3d26cb5 100644 --- a/drivers/net/ethernet/i825xx/sun3_82586.h +++ b/drivers/net/ethernet/i825xx/sun3_82586.h @@ -250,7 +250,7 @@ struct mcsetup_cmd_struct unsigned short cmd_cmd; unsigned short cmd_link; unsigned short mc_cnt; /* number of bytes in the MC-List */ - unsigned char mc_list[0][6]; /* pointer to 6 bytes entries */ + unsigned char mc_list[][6]; /* pointer to 6 bytes entries */ }; /* diff --git a/drivers/net/ethernet/marvell/octeontx2/af/npc.h b/drivers/net/ethernet/marvell/octeontx2/af/npc.h index 77fd39e2c8db..9b6e587e78b4 100644 --- a/drivers/net/ethernet/marvell/octeontx2/af/npc.h +++ b/drivers/net/ethernet/marvell/octeontx2/af/npc.h @@ -455,7 +455,7 @@ struct npc_coalesced_kpu_prfl { u8 name[NPC_NAME_LEN]; /* KPU Profile name */ u64 version; /* KPU firmware/profile version */ u8 num_prfl; /* No of NPC profiles. */ - u16 prfl_sz[0]; + u16 prfl_sz[]; }; struct npc_mcam_kex { @@ -482,7 +482,7 @@ struct npc_kpu_fwdata { * struct npc_kpu_profile_cam[entries]; * struct npc_kpu_profile_action[entries]; */ - u8 data[0]; + u8 data[]; } __packed; struct npc_lt_def { @@ -572,7 +572,7 @@ struct npc_kpu_profile_fwdata { * Custom KPU CAM and ACTION configuration entries. * struct npc_kpu_fwdata kpu[kpus]; */ - u8 data[0]; + u8 data[]; } __packed; struct rvu_npc_mcam_rule { diff --git a/drivers/net/ethernet/qlogic/qed/qed_mfw_hsi.h b/drivers/net/ethernet/qlogic/qed/qed_mfw_hsi.h index b70ee8200e15..6459dd3feb37 100644 --- a/drivers/net/ethernet/qlogic/qed/qed_mfw_hsi.h +++ b/drivers/net/ethernet/qlogic/qed/qed_mfw_hsi.h @@ -2470,6 +2470,6 @@ struct nvm_meta_bin_t { u32 version; #define NVM_META_BIN_VERSION 1 u32 num_options; - u32 options[0]; + u32 options[]; }; #endif diff --git a/drivers/net/ethernet/ti/davinci_mdio.c b/drivers/net/ethernet/ti/davinci_mdio.c index a4efd5e35158..fce2626e34fa 100644 --- a/drivers/net/ethernet/ti/davinci_mdio.c +++ b/drivers/net/ethernet/ti/davinci_mdio.c @@ -70,7 +70,7 @@ struct davinci_mdio_regs { #define USERACCESS_DATA (0xffff) u32 physel; - } user[0]; + } user[]; }; static const struct mdio_platform_data default_pdata = { diff --git a/drivers/scsi/dpt/dpti_i2o.h b/drivers/scsi/dpt/dpti_i2o.h index bf0daeeb50a9..e1fbbf55c09d 100644 --- a/drivers/scsi/dpt/dpti_i2o.h +++ b/drivers/scsi/dpt/dpti_i2o.h @@ -123,7 +123,7 @@ struct i2o_sys_tbl u32 change_ind; u32 reserved2; u32 reserved3; - struct i2o_sys_tbl_entry iops[0]; + struct i2o_sys_tbl_entry iops[]; }; /* diff --git a/drivers/scsi/elx/libefc_sli/sli4.h b/drivers/scsi/elx/libefc_sli/sli4.h index ee2a9e65a88d..38af166cc786 100644 --- a/drivers/scsi/elx/libefc_sli/sli4.h +++ b/drivers/scsi/elx/libefc_sli/sli4.h @@ -609,7 +609,7 @@ struct sli4_rqst_cmn_create_cq_v2 { __le16 cqe_count; __le16 rsvd30; __le32 rsvd32; - struct sli4_dmaaddr page_phys_addr[0]; + struct sli4_dmaaddr page_phys_addr[]; }; enum sli4_create_cqset_e { @@ -634,7 +634,7 @@ struct sli4_rqst_cmn_create_cq_set_v0 { __le16 num_cq_req; __le16 dw6w1_flags; __le16 eq_id[16]; - struct sli4_dmaaddr page_phys_addr[0]; + struct sli4_dmaaddr page_phys_addr[]; }; /* CQE count */ @@ -764,7 +764,7 @@ struct sli4_rqst_cmn_create_mq_ext { __le32 dw7_val; __le32 dw8_flags; __le32 rsvd36; - struct sli4_dmaaddr page_phys_addr[0]; + struct sli4_dmaaddr page_phys_addr[]; }; struct sli4_rsp_cmn_create_mq_ext { @@ -802,7 +802,7 @@ struct sli4_rqst_cmn_create_cq_v0 { __le32 dw6_flags; __le32 rsvd28; __le32 rsvd32; - struct sli4_dmaaddr page_phys_addr[0]; + struct sli4_dmaaddr page_phys_addr[]; }; enum sli4_create_rq_e { @@ -887,7 +887,7 @@ struct sli4_rqst_rq_create_v2 { __le16 base_cq_id; __le16 rsvd26; __le32 rsvd42; - struct sli4_dmaaddr page_phys_addr[0]; + struct sli4_dmaaddr page_phys_addr[]; }; struct sli4_rsp_rq_create_v2 { @@ -3168,7 +3168,7 @@ struct sli4_rqst_cmn_read_object { __le32 read_offset; u8 object_name[104]; __le32 host_buffer_descriptor_count; - struct sli4_bde host_buffer_descriptor[0]; + struct sli4_bde host_buffer_descriptor[]; }; #define RSP_COM_READ_OBJ_EOF 0x80000000 @@ -3191,7 +3191,7 @@ struct sli4_rqst_cmn_write_object { __le32 write_offset; u8 object_name[104]; __le32 host_buffer_descriptor_count; - struct sli4_bde host_buffer_descriptor[0]; + struct sli4_bde host_buffer_descriptor[]; }; #define RSP_CHANGE_STATUS 0xff @@ -3217,7 +3217,7 @@ struct sli4_rqst_cmn_read_object_list { __le32 read_offset; u8 object_name[104]; __le32 host_buffer_descriptor_count; - struct sli4_bde host_buffer_descriptor[0]; + struct sli4_bde host_buffer_descriptor[]; }; enum sli4_rqst_set_dump_flags { @@ -3342,7 +3342,7 @@ struct sli4_rspource_descriptor_v1 { u8 descriptor_type; u8 descriptor_length; __le16 rsvd16; - __le32 type_specific[0]; + __le32 type_specific[]; }; enum sli4_pcie_desc_flags { @@ -3474,7 +3474,7 @@ struct sli4_rqst_post_hdr_templates { struct sli4_rqst_hdr hdr; __le16 rpi_offset; __le16 page_count; - struct sli4_dmaaddr page_descriptor[0]; + struct sli4_dmaaddr page_descriptor[]; }; #define SLI4_HDR_TEMPLATE_SIZE 64 diff --git a/drivers/scsi/mpi3mr/mpi3mr.h b/drivers/scsi/mpi3mr/mpi3mr.h index fc4eaf6d1e47..fb7d8775c9f7 100644 --- a/drivers/scsi/mpi3mr/mpi3mr.h +++ b/drivers/scsi/mpi3mr/mpi3mr.h @@ -878,7 +878,7 @@ struct mpi3mr_fwevt { bool process_evt; u32 evt_ctx; struct kref ref_count; - char event_data[0] __aligned(4); + char event_data[] __aligned(4); }; diff --git a/drivers/scsi/qla2xxx/qla_bsg.h b/drivers/scsi/qla2xxx/qla_bsg.h index 0f8a4c7e52a2..6d2b0a7436c1 100644 --- a/drivers/scsi/qla2xxx/qla_bsg.h +++ b/drivers/scsi/qla2xxx/qla_bsg.h @@ -157,7 +157,7 @@ struct qla84_msg_mgmt { uint16_t rsrvd; struct qla84_mgmt_param mgmtp;/* parameters for cmd */ uint32_t len; /* bytes in payload following this struct */ - uint8_t payload[0]; /* payload for cmd */ + uint8_t payload[]; /* payload for cmd */ }; struct qla_bsg_a84_mgmt { @@ -216,7 +216,7 @@ struct qla_image_version { struct qla_image_version_list { uint32_t count; - struct qla_image_version version[0]; + struct qla_image_version version[]; } __packed; struct qla_status_reg { diff --git a/drivers/scsi/qla2xxx/qla_def.h b/drivers/scsi/qla2xxx/qla_def.h index 9ebf4a234d9a..b6434c72dee3 100644 --- a/drivers/scsi/qla2xxx/qla_def.h +++ b/drivers/scsi/qla2xxx/qla_def.h @@ -5410,7 +5410,7 @@ struct ql_vnd_stat_entry { struct ql_vnd_stats { u64 entry_count; /* Num of entries */ u64 rservd; - struct ql_vnd_stat_entry entry[0]; /* Place holder of entries */ + struct ql_vnd_stat_entry entry[]; /* Place holder of entries */ } __packed; struct ql_vnd_host_stats_resp { diff --git a/drivers/scsi/qla2xxx/qla_edif_bsg.h b/drivers/scsi/qla2xxx/qla_edif_bsg.h index 53026d82ebff..5a26c77157da 100644 --- a/drivers/scsi/qla2xxx/qla_edif_bsg.h +++ b/drivers/scsi/qla2xxx/qla_edif_bsg.h @@ -121,7 +121,7 @@ struct app_pinfo { struct app_pinfo_reply { uint8_t port_count; uint8_t reserved[VND_CMD_APP_RESERVED_SIZE]; - struct app_pinfo ports[0]; + struct app_pinfo ports[]; } __packed; struct app_sinfo_req { @@ -140,7 +140,7 @@ struct app_sinfo { struct app_stats_reply { uint8_t elem_count; - struct app_sinfo elem[0]; + struct app_sinfo elem[]; } __packed; struct qla_sa_update_frame { diff --git a/drivers/scsi/qla2xxx/qla_fw.h b/drivers/scsi/qla2xxx/qla_fw.h index 073d06e88c58..0bb1d562f0bf 100644 --- a/drivers/scsi/qla2xxx/qla_fw.h +++ b/drivers/scsi/qla2xxx/qla_fw.h @@ -1706,7 +1706,7 @@ struct qla_flt_header { __le16 length; __le16 checksum; __le16 unused; - struct qla_flt_region region[0]; + struct qla_flt_region region[]; }; #define FLT_REGION_SIZE 16 diff --git a/drivers/scsi/qla4xxx/ql4_fw.h b/drivers/scsi/qla4xxx/ql4_fw.h index 4e1764df0a73..860ec61b51b9 100644 --- a/drivers/scsi/qla4xxx/ql4_fw.h +++ b/drivers/scsi/qla4xxx/ql4_fw.h @@ -1028,7 +1028,7 @@ struct crash_record { uint8_t out_RISC_reg_dump[256]; /* 80 -17F */ uint8_t in_RISC_reg_dump[256]; /*180 -27F */ - uint8_t in_out_RISC_stack_dump[0]; /*280 - ??? */ + uint8_t in_out_RISC_stack_dump[]; /*280 - ??? */ }; struct conn_event_log_entry { diff --git a/drivers/staging/r8188eu/include/ieee80211.h b/drivers/staging/r8188eu/include/ieee80211.h index 3a23d5299314..5e7de631b8ef 100644 --- a/drivers/staging/r8188eu/include/ieee80211.h +++ b/drivers/staging/r8188eu/include/ieee80211.h @@ -185,7 +185,7 @@ struct ieee_param { struct ieee_param_ex { u32 cmd; u8 sta_addr[ETH_ALEN]; - u8 data[0]; + u8 data[]; }; struct sta_data { @@ -713,7 +713,7 @@ struct ieee80211_info_element_hdr { struct ieee80211_info_element { u8 id; u8 len; - u8 data[0]; + u8 data[]; } __packed; /* @@ -776,7 +776,7 @@ struct ieee80211_txb { u16 reserved; u16 frag_size; u16 payload_size; - struct sk_buff *fragments[0]; + struct sk_buff *fragments[]; }; /* SWEEP TABLE ENTRIES NUMBER*/ diff --git a/drivers/staging/r8188eu/include/rtw_cmd.h b/drivers/staging/r8188eu/include/rtw_cmd.h index cf0945ae11c1..f8991a0493d0 100644 --- a/drivers/staging/r8188eu/include/rtw_cmd.h +++ b/drivers/staging/r8188eu/include/rtw_cmd.h @@ -73,7 +73,7 @@ struct c2h_evt_hdr { u8 id:4; u8 plen:4; u8 seq; - u8 payload[0]; + u8 payload[]; }; #define c2h_evt_exist(c2h_evt) ((c2h_evt)->id || (c2h_evt)->plen) @@ -662,25 +662,25 @@ struct getcurtxpwrlevel_rspi { struct setprobereqextraie_parm { unsigned char e_id; unsigned char ie_len; - unsigned char ie[0]; + unsigned char ie[]; }; struct setassocreqextraie_parm { unsigned char e_id; unsigned char ie_len; - unsigned char ie[0]; + unsigned char ie[]; }; struct setproberspextraie_parm { unsigned char e_id; unsigned char ie_len; - unsigned char ie[0]; + unsigned char ie[]; }; struct setassocrspextraie_parm { unsigned char e_id; unsigned char ie_len; - unsigned char ie[0]; + unsigned char ie[]; }; struct addBaReq_parm { diff --git a/drivers/staging/rtl8712/rtl871x_cmd.h b/drivers/staging/rtl8712/rtl871x_cmd.h index ddd69c4ae208..95e9ea5b2d98 100644 --- a/drivers/staging/rtl8712/rtl871x_cmd.h +++ b/drivers/staging/rtl8712/rtl871x_cmd.h @@ -657,25 +657,25 @@ struct setra_parm { struct setprobereqextraie_parm { unsigned char e_id; unsigned char ie_len; - unsigned char ie[0]; + unsigned char ie[]; }; struct setassocreqextraie_parm { unsigned char e_id; unsigned char ie_len; - unsigned char ie[0]; + unsigned char ie[]; }; struct setproberspextraie_parm { unsigned char e_id; unsigned char ie_len; - unsigned char ie[0]; + unsigned char ie[]; }; struct setassocrspextraie_parm { unsigned char e_id; unsigned char ie_len; - unsigned char ie[0]; + unsigned char ie[]; }; struct addBaReq_parm { diff --git a/drivers/staging/rtl8723bs/include/ieee80211.h b/drivers/staging/rtl8723bs/include/ieee80211.h index c11d7e2d2347..1e627dc0044d 100644 --- a/drivers/staging/rtl8723bs/include/ieee80211.h +++ b/drivers/staging/rtl8723bs/include/ieee80211.h @@ -204,7 +204,7 @@ struct ieee_param { struct ieee_param_ex { u32 cmd; u8 sta_addr[ETH_ALEN]; - u8 data[0]; + u8 data[]; }; struct sta_data { diff --git a/drivers/staging/rtl8723bs/include/rtw_cmd.h b/drivers/staging/rtl8723bs/include/rtw_cmd.h index 28d2d2732374..1bf030cbbbbe 100644 --- a/drivers/staging/rtl8723bs/include/rtw_cmd.h +++ b/drivers/staging/rtl8723bs/include/rtw_cmd.h @@ -94,7 +94,7 @@ struct c2h_evt_hdr { u8 id:4; u8 plen:4; u8 seq; - u8 payload[0]; + u8 payload[]; }; struct c2h_evt_hdr_88xx { diff --git a/drivers/staging/vc04_services/include/linux/raspberrypi/vchiq.h b/drivers/staging/vc04_services/include/linux/raspberrypi/vchiq.h index 81db7fb76d6d..c93f2f3e87bb 100644 --- a/drivers/staging/vc04_services/include/linux/raspberrypi/vchiq.h +++ b/drivers/staging/vc04_services/include/linux/raspberrypi/vchiq.h @@ -45,7 +45,7 @@ struct vchiq_header { /* Size of message data. */ unsigned int size; - char data[0]; /* message */ + char data[]; /* message */ }; struct vchiq_element { diff --git a/drivers/visorbus/vbuschannel.h b/drivers/visorbus/vbuschannel.h index 4aaf6564eb9f..98711fb6d66e 100644 --- a/drivers/visorbus/vbuschannel.h +++ b/drivers/visorbus/vbuschannel.h @@ -89,7 +89,7 @@ struct visor_vbus_channel { struct visor_vbus_headerinfo hdr_info; struct visor_vbus_deviceinfo chp_info; struct visor_vbus_deviceinfo bus_info; - struct visor_vbus_deviceinfo dev_info[0]; + struct visor_vbus_deviceinfo dev_info[]; } __packed; #endif diff --git a/fs/cifs/ntlmssp.h b/fs/cifs/ntlmssp.h index 298458404252..55758b9ec877 100644 --- a/fs/cifs/ntlmssp.h +++ b/fs/cifs/ntlmssp.h @@ -107,7 +107,7 @@ struct negotiate_message { SECURITY_BUFFER WorkstationName; /* RFC 1001 and ASCII */ struct ntlmssp_version Version; /* SECURITY_BUFFER */ - char DomainString[0]; + char DomainString[]; /* followed by WorkstationString */ } __packed; diff --git a/fs/ext4/fast_commit.h b/fs/ext4/fast_commit.h index 083ad1cb705a..07e8b734c4fd 100644 --- a/fs/ext4/fast_commit.h +++ b/fs/ext4/fast_commit.h @@ -55,13 +55,13 @@ struct ext4_fc_del_range { struct ext4_fc_dentry_info { __le32 fc_parent_ino; __le32 fc_ino; - __u8 fc_dname[0]; + __u8 fc_dname[]; }; /* Value structure for EXT4_FC_TAG_INODE and EXT4_FC_TAG_INODE_PARTIAL. */ struct ext4_fc_inode { __le32 fc_ino; - __u8 fc_raw_inode[0]; + __u8 fc_raw_inode[]; }; /* Value structure for tag EXT4_FC_TAG_TAIL. */ diff --git a/fs/ksmbd/ksmbd_netlink.h b/fs/ksmbd/ksmbd_netlink.h index 71bfb7de4472..ebe6ca08467a 100644 --- a/fs/ksmbd/ksmbd_netlink.h +++ b/fs/ksmbd/ksmbd_netlink.h @@ -241,7 +241,7 @@ struct ksmbd_rpc_command { struct ksmbd_spnego_authen_request { __u32 handle; __u16 spnego_blob_len; /* the length of spnego_blob */ - __u8 spnego_blob[0]; /* + __u8 spnego_blob[]; /* * the GSS token from SecurityBuffer of * SMB2 SESSION SETUP request */ diff --git a/fs/ksmbd/ntlmssp.h b/fs/ksmbd/ntlmssp.h index adaf4c0cbe8f..f13153c18b4e 100644 --- a/fs/ksmbd/ntlmssp.h +++ b/fs/ksmbd/ntlmssp.h @@ -95,7 +95,7 @@ struct security_buffer { struct target_info { __le16 Type; __le16 Length; - __u8 Content[0]; + __u8 Content[]; } __packed; struct negotiate_message { @@ -108,7 +108,7 @@ struct negotiate_message { * struct security_buffer for version info not present since we * do not set the version is present flag */ - char DomainString[0]; + char DomainString[]; /* followed by WorkstationString */ } __packed; @@ -140,7 +140,7 @@ struct authenticate_message { * struct security_buffer for version info not present since we * do not set the version is present flag */ - char UserString[0]; + char UserString[]; } __packed; struct ntlmv2_resp { diff --git a/fs/ksmbd/smb2pdu.h b/fs/ksmbd/smb2pdu.h index 725b800c29c8..d49468426576 100644 --- a/fs/ksmbd/smb2pdu.h +++ b/fs/ksmbd/smb2pdu.h @@ -759,7 +759,7 @@ struct smb2_file_rename_info { /* encoding of request for level 10 */ __u8 Reserved[7]; __u64 RootDirectory; /* MBZ for network operations (why says spec?) */ __le32 FileNameLength; - char FileName[0]; /* New name to be assigned */ + char FileName[]; /* New name to be assigned */ } __packed; /* level 10 Set */ struct smb2_file_link_info { /* encoding of request for level 11 */ @@ -768,7 +768,7 @@ struct smb2_file_link_info { /* encoding of request for level 11 */ __u8 Reserved[7]; __u64 RootDirectory; /* MBZ for network operations (why says spec?) */ __le32 FileNameLength; - char FileName[0]; /* Name to be assigned to new link */ + char FileName[]; /* Name to be assigned to new link */ } __packed; /* level 11 Set */ /* @@ -810,7 +810,7 @@ struct smb2_file_basic_info { /* data block encoding of response to level 18 */ struct smb2_file_alt_name_info { __le32 FileNameLength; - char FileName[0]; + char FileName[]; } __packed; struct smb2_file_stream_info { @@ -818,7 +818,7 @@ struct smb2_file_stream_info { __le32 StreamNameLength; __le64 StreamSize; __le64 StreamAllocationSize; - char StreamName[0]; + char StreamName[]; } __packed; struct smb2_file_eof_info { /* encoding of request for level 10 */ diff --git a/fs/ksmbd/transport_rdma.c b/fs/ksmbd/transport_rdma.c index 3c1ec1ac0b27..9976d39c6ed8 100644 --- a/fs/ksmbd/transport_rdma.c +++ b/fs/ksmbd/transport_rdma.c @@ -211,7 +211,7 @@ struct smb_direct_rdma_rw_msg { struct completion *completion; struct rdma_rw_ctx rw_ctx; struct sg_table sgt; - struct scatterlist sg_list[0]; + struct scatterlist sg_list[]; }; static inline int get_buf_page_count(void *buf, int size) diff --git a/fs/ksmbd/xattr.h b/fs/ksmbd/xattr.h index 8857c01093d9..16499ca5c82d 100644 --- a/fs/ksmbd/xattr.h +++ b/fs/ksmbd/xattr.h @@ -76,7 +76,7 @@ struct xattr_acl_entry { struct xattr_smb_acl { int count; int next; - struct xattr_acl_entry entries[0]; + struct xattr_acl_entry entries[]; }; /* 64bytes hash in xattr_ntacl is computed with sha256 */ diff --git a/fs/xfs/scrub/attr.h b/fs/xfs/scrub/attr.h index 1719e1c4da59..3590e10e3e62 100644 --- a/fs/xfs/scrub/attr.h +++ b/fs/xfs/scrub/attr.h @@ -24,7 +24,7 @@ struct xchk_xattr_buf { * space bitmap follows immediately after; and we have a third buffer * for storing intermediate bitmap results. */ - uint8_t buf[0]; + uint8_t buf[]; }; /* A place to store attribute values. */ diff --git a/include/acpi/actbl2.h b/include/acpi/actbl2.h index 16847c8d9d5f..9ee4d1b39125 100644 --- a/include/acpi/actbl2.h +++ b/include/acpi/actbl2.h @@ -2319,7 +2319,7 @@ struct acpi_table_rgrt { u16 version; u8 image_type; u8 reserved; - u8 image[0]; + u8 image[]; }; /* image_type values */ diff --git a/include/asm-generic/tlb.h b/include/asm-generic/tlb.h index 2c68a545ffa7..fd7feb5c7894 100644 --- a/include/asm-generic/tlb.h +++ b/include/asm-generic/tlb.h @@ -180,7 +180,7 @@ struct mmu_table_batch { struct rcu_head rcu; #endif unsigned int nr; - void *tables[0]; + void *tables[]; }; #define MAX_TABLE_BATCH \ @@ -227,7 +227,7 @@ struct mmu_gather_batch { struct mmu_gather_batch *next; unsigned int nr; unsigned int max; - struct page *pages[0]; + struct page *pages[]; }; #define MAX_GATHER_BATCH \ diff --git a/include/linux/greybus/greybus_manifest.h b/include/linux/greybus/greybus_manifest.h index 6e62fe478712..bef9eb2093e9 100644 --- a/include/linux/greybus/greybus_manifest.h +++ b/include/linux/greybus/greybus_manifest.h @@ -100,7 +100,7 @@ enum { struct greybus_descriptor_string { __u8 length; __u8 id; - __u8 string[0]; + __u8 string[]; } __packed; /* @@ -175,7 +175,7 @@ struct greybus_manifest_header { struct greybus_manifest { struct greybus_manifest_header header; - struct greybus_descriptor descriptors[0]; + struct greybus_descriptor descriptors[]; } __packed; #endif /* __GREYBUS_MANIFEST_H */ diff --git a/include/linux/greybus/hd.h b/include/linux/greybus/hd.h index d3faf0c1a569..718e2857054e 100644 --- a/include/linux/greybus/hd.h +++ b/include/linux/greybus/hd.h @@ -58,7 +58,7 @@ struct gb_host_device { struct gb_svc *svc; /* Private data for the host driver */ - unsigned long hd_priv[0] __aligned(sizeof(s64)); + unsigned long hd_priv[] __aligned(sizeof(s64)); }; #define to_gb_host_device(d) container_of(d, struct gb_host_device, dev) diff --git a/include/linux/greybus/module.h b/include/linux/greybus/module.h index 47b839af145d..3efe2133acfd 100644 --- a/include/linux/greybus/module.h +++ b/include/linux/greybus/module.h @@ -23,7 +23,7 @@ struct gb_module { bool disconnected; - struct gb_interface *interfaces[0]; + struct gb_interface *interfaces[]; }; #define to_gb_module(d) container_of(d, struct gb_module, dev) diff --git a/include/linux/i3c/ccc.h b/include/linux/i3c/ccc.h index 73b0982cc519..ad59a4ae60d1 100644 --- a/include/linux/i3c/ccc.h +++ b/include/linux/i3c/ccc.h @@ -132,7 +132,7 @@ struct i3c_ccc_dev_desc { struct i3c_ccc_defslvs { u8 count; struct i3c_ccc_dev_desc master; - struct i3c_ccc_dev_desc slaves[0]; + struct i3c_ccc_dev_desc slaves[]; } __packed; /** @@ -240,7 +240,7 @@ struct i3c_ccc_bridged_slave_desc { */ struct i3c_ccc_setbrgtgt { u8 count; - struct i3c_ccc_bridged_slave_desc bslaves[0]; + struct i3c_ccc_bridged_slave_desc bslaves[]; } __packed; /** @@ -318,7 +318,7 @@ enum i3c_ccc_setxtime_subcmd { */ struct i3c_ccc_setxtime { u8 subcmd; - u8 data[0]; + u8 data[]; } __packed; #define I3C_CCC_GETXTIME_SYNC_MODE BIT(0) diff --git a/include/linux/mlx5/mlx5_ifc_fpga.h b/include/linux/mlx5/mlx5_ifc_fpga.h index 07d77323f78a..cac4e94abd3a 100644 --- a/include/linux/mlx5/mlx5_ifc_fpga.h +++ b/include/linux/mlx5/mlx5_ifc_fpga.h @@ -185,7 +185,7 @@ struct mlx5_ifc_fpga_access_reg_bits { u8 address[0x40]; - u8 data[0][0x8]; + u8 data[][0x8]; }; enum mlx5_ifc_fpga_qp_state { diff --git a/include/linux/platform_data/brcmfmac.h b/include/linux/platform_data/brcmfmac.h index 2b5676ff35be..f922a192fe58 100644 --- a/include/linux/platform_data/brcmfmac.h +++ b/include/linux/platform_data/brcmfmac.h @@ -178,7 +178,7 @@ struct brcmfmac_platform_data { void (*power_off)(void); char *fw_alternative_path; int device_count; - struct brcmfmac_pd_device devices[0]; + struct brcmfmac_pd_device devices[]; }; diff --git a/include/linux/platform_data/cros_ec_commands.h b/include/linux/platform_data/cros_ec_commands.h index 271bd87bff0a..728735aed980 100644 --- a/include/linux/platform_data/cros_ec_commands.h +++ b/include/linux/platform_data/cros_ec_commands.h @@ -5644,7 +5644,7 @@ struct ec_response_typec_discovery { uint8_t svid_count; /* Number of SVIDs partner sent */ uint16_t reserved; uint32_t discovery_vdo[6]; /* Max VDOs allowed after VDM header is 6 */ - struct svid_mode_info svids[0]; + struct svid_mode_info svids[]; } __ec_align1; /* USB Type-C commands for AP-controlled device policy. */ diff --git a/include/net/bluetooth/mgmt.h b/include/net/bluetooth/mgmt.h index 107b25deae68..9607ec289fd0 100644 --- a/include/net/bluetooth/mgmt.h +++ b/include/net/bluetooth/mgmt.h @@ -696,7 +696,7 @@ struct mgmt_cp_set_blocked_keys { #define MGMT_READ_CONTROLLER_CAP_SIZE 0 struct mgmt_rp_read_controller_cap { __le16 cap_len; - __u8 cap[0]; + __u8 cap[]; } __packed; #define MGMT_OP_READ_EXP_FEATURES_INFO 0x0049 diff --git a/include/net/ioam6.h b/include/net/ioam6.h index 3f45ba37a2c6..781d2d8b2f29 100644 --- a/include/net/ioam6.h +++ b/include/net/ioam6.h @@ -35,7 +35,7 @@ struct ioam6_schema { int len; __be32 hdr; - u8 data[0]; + u8 data[]; }; struct ioam6_pernet_data { diff --git a/include/sound/sof/channel_map.h b/include/sound/sof/channel_map.h index fd3a30fcf756..d363f0ca6979 100644 --- a/include/sound/sof/channel_map.h +++ b/include/sound/sof/channel_map.h @@ -39,7 +39,7 @@ struct sof_ipc_channel_map { uint32_t ext_id; uint32_t ch_mask; uint32_t reserved; - int32_t ch_coeffs[0]; + int32_t ch_coeffs[]; } __packed; /** @@ -55,7 +55,7 @@ struct sof_ipc_stream_map { struct sof_ipc_cmd_hdr hdr; uint32_t num_ch_map; uint32_t reserved[3]; - struct sof_ipc_channel_map ch_map[0]; + struct sof_ipc_channel_map ch_map[]; } __packed; #endif /* __IPC_CHANNEL_MAP_H__ */ diff --git a/scripts/dtc/libfdt/fdt.h b/scripts/dtc/libfdt/fdt.h index f2e68807f277..0c91aa7f67b5 100644 --- a/scripts/dtc/libfdt/fdt.h +++ b/scripts/dtc/libfdt/fdt.h @@ -35,14 +35,14 @@ struct fdt_reserve_entry { struct fdt_node_header { fdt32_t tag; - char name[0]; + char name[]; }; struct fdt_property { fdt32_t tag; fdt32_t len; fdt32_t nameoff; - char data[0]; + char data[]; }; #endif /* !__ASSEMBLY */ diff --git a/sound/soc/intel/atom/sst-mfld-dsp.h b/sound/soc/intel/atom/sst-mfld-dsp.h index 8d9e29b16e57..c8f0816edb53 100644 --- a/sound/soc/intel/atom/sst-mfld-dsp.h +++ b/sound/soc/intel/atom/sst-mfld-dsp.h @@ -427,7 +427,7 @@ struct snd_sst_drop_response { struct snd_sst_async_msg { u32 msg_id; /* Async msg id */ - u32 payload[0]; + u32 payload[]; }; struct snd_sst_async_err_msg { @@ -514,7 +514,7 @@ struct snd_sst_bytes_v2 { u8 pipe_id; u8 rsvd; u16 len; - char bytes[0]; + char bytes[]; }; #define MAX_VTSV_FILES 2 diff --git a/sound/soc/intel/skylake/skl-topology.h b/sound/soc/intel/skylake/skl-topology.h index 22963634fbea..a5bccf2fcd88 100644 --- a/sound/soc/intel/skylake/skl-topology.h +++ b/sound/soc/intel/skylake/skl-topology.h @@ -164,7 +164,7 @@ struct skl_base_cfg_ext { u8 reserved[8]; u32 priv_param_length; /* Input pin formats followed by output ones. */ - struct skl_pin_format pins_fmt[0]; + struct skl_pin_format pins_fmt[]; } __packed; struct skl_algo_cfg { diff --git a/tools/lib/perf/include/perf/event.h b/tools/lib/perf/include/perf/event.h index 75ee385fb078..e7758707cadd 100644 --- a/tools/lib/perf/include/perf/event.h +++ b/tools/lib/perf/include/perf/event.h @@ -240,7 +240,7 @@ struct id_index_entry { struct perf_record_id_index { struct perf_event_header header; __u64 nr; - struct id_index_entry entries[0]; + struct id_index_entry entries[]; }; struct perf_record_auxtrace_info { -- 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 85574C433F5 for ; Tue, 15 Feb 2022 17:40:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-ID:Subject:To:From :Date:Reply-To:Cc:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=xFhgLsJTGyViozVTgZbC7mWqx3wXyD3mrObB41Tc5JE=; b=EC3b6JgXk3+GWh 97vQv2H5sv9ud0vQCo4INDEZ/41esjfGxyr7vjqIbS4a4jZcfMG5suSZZeJ8QIoHQZjGp+TsjE1C2 kU+E0WYwhJCL27ds14Eu30zCChC+AJ5xzRvLXOP/m8RON6X+9ttm/NdpqAdcxcUAKSAuZT4jOupUW TR67Y55xUOBAG8fyiC2+EyXFpGwaWRBKAWzZxkO9xeBfba7whIdbJexwe4oSB/81DxJOzUEesEyxc PCgg4zSwM6FH35Gqw7TFics8bEg673XNH+AhMCDpn9y9yI7hflOejflpgsOV4wUYWnLPOYbX2Gyqr OycunimPmUazC2ZZLQdQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nK1oW-003wrw-Qn; Tue, 15 Feb 2022 17:40:32 +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 1nK1oB-003wmD-F5; Tue, 15 Feb 2022 17:40:16 +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 95BA5615F7; Tue, 15 Feb 2022 17:40:09 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id C6721C340EB; Tue, 15 Feb 2022 17:40:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1644946809; bh=DMett6vVXSj8wlqJaPBVitbC+1b/pFrWBdbwXSCqmvY=; h=Date:From:To:Subject:From; b=YHAhsK9b4ceo93O7cGMZkhAJtHRB9CQ+4MLg6VhoAXIqUZPNOt2f2z/RHYaJLxO76 o1sCxEuNmr5hKqcrqdfi+pE1eKIsCJw9V851Cjnm9cHc2sRZx45hzEu6vQLDXrkmcu xKf2+PXhFhb8dbpeFBN+6vQWXHxPvhHISBgL9Fxux6eGzM+9JCAXaTGT3/3xrwLv7i m8KqkuUbReSbhvZRqSxYfdGT/EXjyAq6yFXtOj0CnyhrPV5rigOkg2Pp92zsFyGVAh 1grvtuR4WfTMHEo/CBi7F8KvXPKqUpdwIOcsL3Pbwr2lQCgLUtbCpkZ3x6BdjDlhc3 zFo6AQd/J/DOQ== Date: Tue, 15 Feb 2022 11:47:43 -0600 From: "Gustavo A. R. Silva" To: GR-QLogic-Storage-Upstream@marvell.com, linux-alpha@vger.kernel.org, linux-kernel@vger.kernel.org, linux-ia64@vger.kernel.org, linux-s390@vger.kernel.org, linux-sh@vger.kernel.org, sparclinux@vger.kernel.org, linux-um@lists.infradead.org, linux-xtensa@linux-xtensa.org, linux-crypto@vger.kernel.org, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, nouveau@lists.freedesktop.org, coresight@lists.linaro.org, linux-arm-kernel@lists.infradead.org, bcm-kernel-feedback-list@broadcom.com, netdev@vger.kernel.org, linux-omap@vger.kernel.org, linux-scsi@vger.kernel.org, target-devel@vger.kernel.org, mpi3mr-linuxdrv.pdl@broadcom.com, linux-staging@lists.linux.dev, linux-rpi-kernel@lists.infradead.org, sparmaintainer@unisys.com, linux-cifs@vger.kernel.org, samba-technical@lists.samba.org, linux-ext4@vger.kernel.org, linux-acpi@vger.kernel.org, devel@acpica.org, linux-arch@vger.kernel.org, linux-mm@kvack.org, greybus-dev@lists.linaro.org, linux-i3c@lists.infradead.org, linux-rdma@vger.kernel.org, linux-bluetooth@vger.kernel.org, alsa-devel@alsa-project.org, devicetree@vger.kernel.org, linux-perf-users@vger.kernel.org, "Gustavo A. R. Silva" , linux-hardening@vger.kernel.org Subject: [PATCH][next] treewide: Replace zero-length arrays with flexible-array members Message-ID: <20220215174743.GA878920@embeddedor> MIME-Version: 1.0 Content-Disposition: inline X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220215_094011_716974_5A7891BA X-CRM114-Status: GOOD ( 21.35 ) X-BeenThere: linux-i3c@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-i3c" Errors-To: linux-i3c-bounces+linux-i3c=archiver.kernel.org@lists.infradead.org VGhlcmUgaXMgYSByZWd1bGFyIG5lZWQgaW4gdGhlIGtlcm5lbCB0byBwcm92aWRlIGEgd2F5IHRv IGRlY2xhcmUKaGF2aW5nIGEgZHluYW1pY2FsbHkgc2l6ZWQgc2V0IG9mIHRyYWlsaW5nIGVsZW1l bnRzIGluIGEgc3RydWN0dXJlLgpLZXJuZWwgY29kZSBzaG91bGQgYWx3YXlzIHVzZSDigJxmbGV4 aWJsZSBhcnJheSBtZW1iZXJz4oCdWzFdIGZvciB0aGVzZQpjYXNlcy4gVGhlIG9sZGVyIHN0eWxl IG9mIG9uZS1lbGVtZW50IG9yIHplcm8tbGVuZ3RoIGFycmF5cyBzaG91bGQKbm8gbG9uZ2VyIGJl IHVzZWRbMl0uCgpUaGlzIGNvZGUgd2FzIHRyYW5zZm9ybWVkIHdpdGggdGhlIGhlbHAgb2YgQ29j Y2luZWxsZToKKG5leHQtMjAyMjAyMTQkIHNwYXRjaCAtLWpvYnMgJChnZXRjb25mIF9OUFJPQ0VT U09SU19PTkxOKSAtLXNwLWZpbGUgc2NyaXB0LmNvY2NpIC0taW5jbHVkZS1oZWFkZXJzIC0tZGly IC4gPiBvdXRwdXQucGF0Y2gpCgpAQAppZGVudGlmaWVyIFMsIG1lbWJlciwgYXJyYXk7CnR5cGUg VDEsIFQyOwpAQAoKc3RydWN0IFMgewogIC4uLgogIFQxIG1lbWJlcjsKICBUMiBhcnJheVsKLSAw CiAgXTsKfTsKClVBUEkgYW5kIHdpcmVsZXNzIGNoYW5nZXMgd2VyZSBpbnRlbnRpb25hbGx5IGV4 Y2x1ZGVkIGZyb20gdGhpcyBwYXRjaAphbmQgd2lsbCBiZSBzZW50IG91dCBzZXBhcmF0ZWx5LgoK WzFdIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0ZsZXhpYmxlX2FycmF5X21lbWJlcgpb Ml0gaHR0cHM6Ly93d3cua2VybmVsLm9yZy9kb2MvaHRtbC92NS4xNi9wcm9jZXNzL2RlcHJlY2F0 ZWQuaHRtbCN6ZXJvLWxlbmd0aC1hbmQtb25lLWVsZW1lbnQtYXJyYXlzCgpMaW5rOiBodHRwczov L2dpdGh1Yi5jb20vS1NQUC9saW51eC9pc3N1ZXMvNzgKU2lnbmVkLW9mZi1ieTogR3VzdGF2byBB LiBSLiBTaWx2YSA8Z3VzdGF2b2Fyc0BrZXJuZWwub3JnPgotLS0KSGkgYWxsLAoKSSdtIGV4cGVj dGluZyB0byBjYXJyeSB0aGlzIHBhdGNoIGluIG15IHRyZWUsIHNvIGl0J2QgYmUgZ3JlYXQgdG8K Z2V0IHNvbWUgQWNrcy4gQW5kIGdpdmVuIHRoZSBzaXplIG9mIHRoZSBwYXRjaCwgSSdtIG9ubHkg c2VuZGluZwp0aGlzIHRvIG1haWxpbmcgbGlzdHMuCgpUaGFua3MhCgogYXJjaC9hbHBoYS9pbmNs dWRlL2FzbS9od3JwYi5oICAgICAgICAgICAgICAgIHwgIDIgKy0KIGFyY2gvaWE2NC9pbmNsdWRl L2FzbS9zYWwuaCAgICAgICAgICAgICAgICAgICB8ICAyICstCiBhcmNoL3MzOTAvaW5jbHVkZS9h c20vY2N3Z3JvdXAuaCAgICAgICAgICAgICAgfCAgMiArLQogYXJjaC9zMzkwL2luY2x1ZGUvYXNt L2Noc2MuaCAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGFyY2gvczM5MC9pbmNsdWRlL2FzbS9l YWRtLmggICAgICAgICAgICAgICAgICB8ICAyICstCiBhcmNoL3MzOTAvaW5jbHVkZS9hc20vZmN4 LmggICAgICAgICAgICAgICAgICAgfCAgNCArKy0tCiBhcmNoL3MzOTAvaW5jbHVkZS9hc20vaWRh bHMuaCAgICAgICAgICAgICAgICAgfCAgMiArLQogYXJjaC9zMzkwL2luY2x1ZGUvYXNtL3NjbHAu aCAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGFyY2gvczM5MC9pbmNsdWRlL2FzbS9zeXNpbmZv LmggICAgICAgICAgICAgICB8ICA2ICsrKy0tLQogYXJjaC9zaC9pbmNsdWRlL2FzbS90aHJlYWRf aW5mby5oICAgICAgICAgICAgIHwgIDIgKy0KIGFyY2gvc3BhcmMvaW5jbHVkZS9hc20vdmlvLmgg ICAgICAgICAgICAgICAgICB8IDEwICsrKysrLS0tLS0KIGFyY2gvdW0vaW5jbHVkZS9zaGFyZWQv bmV0X2tlcm4uaCAgICAgICAgICAgICB8ICAyICstCiBhcmNoL3g4Ni9pbmNsdWRlL2FzbS9taWNy b2NvZGVfYW1kLmggICAgICAgICAgfCAgMiArLQogYXJjaC94ODYvaW5jbHVkZS9hc20vbWljcm9j b2RlX2ludGVsLmggICAgICAgIHwgIDQgKystLQogYXJjaC94ODYvaW5jbHVkZS9hc20vcGNpLmgg ICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGFyY2gveDg2L2luY2x1ZGUvYXNtL3BjaV94ODYu aCAgICAgICAgICAgICAgICB8ICAyICstCiBhcmNoL3h0ZW5zYS9pbmNsdWRlL2FzbS9ib290cGFy YW0uaCAgICAgICAgICAgfCAgMiArLQogZHJpdmVycy9jcnlwdG8vY2FhbS9wZGIuaCAgICAgICAg ICAgICAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1 Y19hZHMuYyAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9pbmNsdWRlL252Zncv aHMuaCAgICAgfCAgMiArLQogLi4uL2h3dHJhY2luZy9jb3Jlc2lnaHQvY29yZXNpZ2h0LWNvbmZp Zy5oICAgIHwgIDIgKy0KIGRyaXZlcnMvbWlzYy9iY20tdmsvYmNtX3ZrLmggICAgICAgICAgICAg ICAgICB8ICAyICstCiAuLi4vbWlzYy9oYWJhbmFsYWJzL2luY2x1ZGUvY29tbW9uL2NwdWNwX2lm LmggfCAgNiArKystLS0KIC4uLi9oYWJhbmFsYWJzL2luY2x1ZGUvZ2F1ZGkvZ2F1ZGlfcGFja2V0 cy5oICB8ICA0ICsrLS0KIC4uLi9oYWJhbmFsYWJzL2luY2x1ZGUvZ295YS9nb3lhX3BhY2tldHMu aCAgICB8ICA0ICsrLS0KIC4uLi9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2VuZXRjL2VuZXRjX2h3 LmggICB8ICAyICstCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9pODI1eHgvc3VuM184MjU4Ni5oICAg ICAgfCAgMiArLQogLi4uL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ucGMuaCAg IHwgIDYgKysrLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9xbG9naWMvcWVkL3FlZF9tZndfaHNp LmggfCAgMiArLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvdGkvZGF2aW5jaV9tZGlvLmMgICAgICAg IHwgIDIgKy0KIGRyaXZlcnMvc2NzaS9kcHQvZHB0aV9pMm8uaCAgICAgICAgICAgICAgICAgICB8 ICAyICstCiBkcml2ZXJzL3Njc2kvZWx4L2xpYmVmY19zbGkvc2xpNC5oICAgICAgICAgICAgfCAy MCArKysrKysrKystLS0tLS0tLS0tCiBkcml2ZXJzL3Njc2kvbXBpM21yL21waTNtci5oICAgICAg ICAgICAgICAgICAgfCAgMiArLQogZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2JzZy5oICAgICAg ICAgICAgICAgIHwgIDQgKystLQogZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2RlZi5oICAgICAg ICAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9lZGlmX2JzZy5oICAg ICAgICAgICB8ICA0ICsrLS0KIGRyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9mdy5oICAgICAgICAg ICAgICAgICB8ICAyICstCiBkcml2ZXJzL3Njc2kvcWxhNHh4eC9xbDRfZncuaCAgICAgICAgICAg ICAgICAgfCAgMiArLQogZHJpdmVycy9zdGFnaW5nL3I4MTg4ZXUvaW5jbHVkZS9pZWVlODAyMTEu aCAgIHwgIDYgKysrLS0tCiBkcml2ZXJzL3N0YWdpbmcvcjgxODhldS9pbmNsdWRlL3J0d19jbWQu aCAgICAgfCAxMCArKysrKy0tLS0tCiBkcml2ZXJzL3N0YWdpbmcvcnRsODcxMi9ydGw4NzF4X2Nt ZC5oICAgICAgICAgfCAgOCArKysrLS0tLQogZHJpdmVycy9zdGFnaW5nL3J0bDg3MjNicy9pbmNs dWRlL2llZWU4MDIxMS5oIHwgIDIgKy0KIGRyaXZlcnMvc3RhZ2luZy9ydGw4NzIzYnMvaW5jbHVk ZS9ydHdfY21kLmggICB8ICAyICstCiAuLi4vaW5jbHVkZS9saW51eC9yYXNwYmVycnlwaS92Y2hp cS5oICAgICAgICAgfCAgMiArLQogZHJpdmVycy92aXNvcmJ1cy92YnVzY2hhbm5lbC5oICAgICAg ICAgICAgICAgIHwgIDIgKy0KIGZzL2NpZnMvbnRsbXNzcC5oICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAyICstCiBmcy9leHQ0L2Zhc3RfY29tbWl0LmggICAgICAgICAgICAgICAgICAg ICAgICAgfCAgNCArKy0tCiBmcy9rc21iZC9rc21iZF9uZXRsaW5rLmggICAgICAgICAgICAgICAg ICAgICAgfCAgMiArLQogZnMva3NtYmQvbnRsbXNzcC5oICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgIDYgKysrLS0tCiBmcy9rc21iZC9zbWIycGR1LmggICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgOCArKysrLS0tLQogZnMva3NtYmQvdHJhbnNwb3J0X3JkbWEuYyAgICAgICAgICAg ICAgICAgICAgIHwgIDIgKy0KIGZzL2tzbWJkL3hhdHRyLmggICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAyICstCiBmcy94ZnMvc2NydWIvYXR0ci5oICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgMiArLQogaW5jbHVkZS9hY3BpL2FjdGJsMi5oICAgICAgICAgICAgICAgICAgICAg ICAgIHwgIDIgKy0KIGluY2x1ZGUvYXNtLWdlbmVyaWMvdGxiLmggICAgICAgICAgICAgICAgICAg ICB8ICA0ICsrLS0KIGluY2x1ZGUvbGludXgvZ3JleWJ1cy9ncmV5YnVzX21hbmlmZXN0LmggICAg ICB8ICA0ICsrLS0KIGluY2x1ZGUvbGludXgvZ3JleWJ1cy9oZC5oICAgICAgICAgICAgICAgICAg ICB8ICAyICstCiBpbmNsdWRlL2xpbnV4L2dyZXlidXMvbW9kdWxlLmggICAgICAgICAgICAgICAg fCAgMiArLQogaW5jbHVkZS9saW51eC9pM2MvY2NjLmggICAgICAgICAgICAgICAgICAgICAgIHwg IDYgKysrLS0tCiBpbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmNfZnBnYS5oICAgICAgICAgICAg fCAgMiArLQogaW5jbHVkZS9saW51eC9wbGF0Zm9ybV9kYXRhL2JyY21mbWFjLmggICAgICAgIHwg IDIgKy0KIC4uLi9saW51eC9wbGF0Zm9ybV9kYXRhL2Nyb3NfZWNfY29tbWFuZHMuaCAgICB8ICAy ICstCiBpbmNsdWRlL25ldC9ibHVldG9vdGgvbWdtdC5oICAgICAgICAgICAgICAgICAgfCAgMiAr LQogaW5jbHVkZS9uZXQvaW9hbTYuaCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0K IGluY2x1ZGUvc291bmQvc29mL2NoYW5uZWxfbWFwLmggICAgICAgICAgICAgICB8ICA0ICsrLS0K IHNjcmlwdHMvZHRjL2xpYmZkdC9mZHQuaCAgICAgICAgICAgICAgICAgICAgICB8ICA0ICsrLS0K IHNvdW5kL3NvYy9pbnRlbC9hdG9tL3NzdC1tZmxkLWRzcC5oICAgICAgICAgICB8ICA0ICsrLS0K IHNvdW5kL3NvYy9pbnRlbC9za3lsYWtlL3NrbC10b3BvbG9neS5oICAgICAgICB8ICAyICstCiB0 b29scy9saWIvcGVyZi9pbmNsdWRlL3BlcmYvZXZlbnQuaCAgICAgICAgICAgfCAgMiArLQogNjkg ZmlsZXMgY2hhbmdlZCwgMTE2IGluc2VydGlvbnMoKyksIDExNiBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9hcmNoL2FscGhhL2luY2x1ZGUvYXNtL2h3cnBiLmggYi9hcmNoL2FscGhhL2luY2x1 ZGUvYXNtL2h3cnBiLmgKaW5kZXggZDgxODBlNTI3YTFlLi5mYzc2ZjM2MjY1YWQgMTAwNjQ0Ci0t LSBhL2FyY2gvYWxwaGEvaW5jbHVkZS9hc20vaHdycGIuaAorKysgYi9hcmNoL2FscGhhL2luY2x1 ZGUvYXNtL2h3cnBiLmgKQEAgLTE1Miw3ICsxNTIsNyBAQCBzdHJ1Y3QgbWVtZGVzY19zdHJ1Y3Qg ewogCXVuc2lnbmVkIGxvbmcgY2hrc3VtOwogCXVuc2lnbmVkIGxvbmcgb3B0aW9uYWxfcGE7CiAJ dW5zaWduZWQgbG9uZyBudW1jbHVzdGVyczsKLQlzdHJ1Y3QgbWVtY2x1c3Rfc3RydWN0IGNsdXN0 ZXJbMF07CisJc3RydWN0IG1lbWNsdXN0X3N0cnVjdCBjbHVzdGVyW107CiB9OwogCiBzdHJ1Y3Qg ZHNyX3N0cnVjdCB7CmRpZmYgLS1naXQgYS9hcmNoL2lhNjQvaW5jbHVkZS9hc20vc2FsLmggYi9h cmNoL2lhNjQvaW5jbHVkZS9hc20vc2FsLmgKaW5kZXggNzhmNGY3YjQwNDM1Li4yMjc0OWEyMDFl OTIgMTAwNjQ0Ci0tLSBhL2FyY2gvaWE2NC9pbmNsdWRlL2FzbS9zYWwuaAorKysgYi9hcmNoL2lh NjQvaW5jbHVkZS9hc20vc2FsLmgKQEAgLTQyMCw3ICs0MjAsNyBAQCB0eXBlZGVmIHN0cnVjdCBz YWxfbG9nX3Byb2Nlc3Nvcl9pbmZvIHsKIAkgKiBUaGUgcmVzdCBvZiB0aGlzIHN0cnVjdHVyZSBj b25zaXN0cyBvZiB2YXJpYWJsZS1sZW5ndGggYXJyYXlzLCB3aGljaCBjYW4ndCBiZQogCSAqIGV4 cHJlc3NlZCBpbiBDLgogCSAqLwotCXNhbF9sb2dfbW9kX2Vycm9yX2luZm9fdCBpbmZvWzBdOwor CXNhbF9sb2dfbW9kX2Vycm9yX2luZm9fdCBpbmZvW107CiAJLyoKIAkgKiBUaGlzIGlzIHdoYXQg dGhlIHJlc3QgbG9va2VkIGxpa2UgaWYgQyBzdXBwb3J0ZWQgdmFyaWFibGUtbGVuZ3RoIGFycmF5 czoKIAkgKgpkaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL2Njd2dyb3VwLmggYi9h cmNoL3MzOTAvaW5jbHVkZS9hc20vY2N3Z3JvdXAuaAppbmRleCBhYTk5NWQ5MWNkMWQuLjExZDJm YjNkZTRmNSAxMDA2NDQKLS0tIGEvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL2Njd2dyb3VwLmgKKysr IGIvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL2Njd2dyb3VwLmgKQEAgLTI1LDcgKzI1LDcgQEAgc3Ry dWN0IGNjd2dyb3VwX2RldmljZSB7CiAJdW5zaWduZWQgaW50IGNvdW50OwogCXN0cnVjdCBkZXZp Y2UJZGV2OwogCXN0cnVjdCB3b3JrX3N0cnVjdCB1bmdyb3VwX3dvcms7Ci0Jc3RydWN0IGNjd19k ZXZpY2UgKmNkZXZbMF07CisJc3RydWN0IGNjd19kZXZpY2UgKmNkZXZbXTsKIH07CiAKIC8qKgpk aWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL2Noc2MuaCBiL2FyY2gvczM5MC9pbmNs dWRlL2FzbS9jaHNjLmgKaW5kZXggYWU0ZDI1NDljZDY3Li5iYjQ4ZWEzODBjMGQgMTAwNjQ0Ci0t LSBhL2FyY2gvczM5MC9pbmNsdWRlL2FzbS9jaHNjLmgKKysrIGIvYXJjaC9zMzkwL2luY2x1ZGUv YXNtL2Noc2MuaApAQCAtNjMsNyArNjMsNyBAQCBzdHJ1Y3QgY2hzY19wbnNvX2FyZWEgewogCXN0 cnVjdCBjaHNjX2hlYWRlciByZXNwb25zZTsKIAl1MzI6MzI7CiAJc3RydWN0IGNoc2NfcG5zb19u YWloZHIgbmFpaGRyOwotCXN0cnVjdCBjaHNjX3Buc29fbmFpZF9sMiBlbnRyaWVzWzBdOworCXN0 cnVjdCBjaHNjX3Buc29fbmFpZF9sMiBlbnRyaWVzW107CiB9IF9fcGFja2VkIF9fYWxpZ25lZChQ QUdFX1NJWkUpOwogCiAjZW5kaWYgLyogX0FTTV9TMzkwX0NIU0NfSCAqLwpkaWZmIC0tZ2l0IGEv YXJjaC9zMzkwL2luY2x1ZGUvYXNtL2VhZG0uaCBiL2FyY2gvczM5MC9pbmNsdWRlL2FzbS9lYWRt LmgKaW5kZXggNDQ1ZmU0YzgxODRhLi4wNmY3OTU4NTVhZjcgMTAwNjQ0Ci0tLSBhL2FyY2gvczM5 MC9pbmNsdWRlL2FzbS9lYWRtLmgKKysrIGIvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL2VhZG0uaApA QCAtNzgsNyArNzgsNyBAQCBzdHJ1Y3QgYW9iIHsKIAogc3RydWN0IGFvYl9ycV9oZWFkZXIgewog CXN0cnVjdCBzY21fZGV2aWNlICpzY21kZXY7Ci0JY2hhciBkYXRhWzBdOworCWNoYXIgZGF0YVtd OwogfTsKIAogc3RydWN0IHNjbV9kZXZpY2UgewpkaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2luY2x1 ZGUvYXNtL2ZjeC5oIGIvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL2ZjeC5oCmluZGV4IGNmZjA3NDll OTY1Ny4uYjhhMDI4YTM2MTczIDEwMDY0NAotLS0gYS9hcmNoL3MzOTAvaW5jbHVkZS9hc20vZmN4 LmgKKysrIGIvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL2ZjeC5oCkBAIC0yMTQsNyArMjE0LDcgQEAg c3RydWN0IGRjd19pbnRyZ19kYXRhIHsKIAl1MzIgOjMyOwogCXU2NCB0aW1lOwogCXU2NCBwcm9n X2lkOwotCXU4ICBwcm9nX2RhdGFbMF07CisJdTggIHByb2dfZGF0YVtdOwogfSBfX2F0dHJpYnV0 ZV9fICgocGFja2VkKSk7CiAKICNkZWZpbmUgRENXX0ZMQUdTX0NDCQkoMSA8PCAoNyAtIDEpKQpA QCAtMjQxLDcgKzI0MSw3IEBAIHN0cnVjdCBkY3cgewogCXUzMiA6ODsKIAl1MzIgY2RfY291bnQ6 ODsKIAl1MzIgY291bnQ7Ci0JdTggY2RbMF07CisJdTggY2RbXTsKIH0gX19hdHRyaWJ1dGVfXyAo KHBhY2tlZCkpOwogCiAjZGVmaW5lIFRDQ0JfRk9STUFUX0RFRkFVTFQJMHg3ZgpkaWZmIC0tZ2l0 IGEvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL2lkYWxzLmggYi9hcmNoL3MzOTAvaW5jbHVkZS9hc20v aWRhbHMuaAppbmRleCA2ZmI3YWNlZDEwNGEuLjQwZWFlMmMwOGQ2MSAxMDA2NDQKLS0tIGEvYXJj aC9zMzkwL2luY2x1ZGUvYXNtL2lkYWxzLmgKKysrIGIvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL2lk YWxzLmgKQEAgLTEwOCw3ICsxMDgsNyBAQCBjbGVhcl9ub3JtYWxpemVkX2NkYShzdHJ1Y3QgY2N3 MSAqIGNjdykKIHN0cnVjdCBpZGFsX2J1ZmZlciB7CiAJc2l6ZV90IHNpemU7CiAJc2l6ZV90IHBh Z2Vfb3JkZXI7Ci0Jdm9pZCAqZGF0YVswXTsKKwl2b2lkICpkYXRhW107CiB9OwogCiAvKgpkaWZm IC0tZ2l0IGEvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL3NjbHAuaCBiL2FyY2gvczM5MC9pbmNsdWRl L2FzbS9zY2xwLmgKaW5kZXggYzY4ZWEzNWRlNDk4Li4yMmIzMjEzYzZjOWQgMTAwNjQ0Ci0tLSBh L2FyY2gvczM5MC9pbmNsdWRlL2FzbS9zY2xwLmgKKysrIGIvYXJjaC9zMzkwL2luY2x1ZGUvYXNt L3NjbHAuaApAQCAtMTEyLDcgKzExMiw3IEBAIHN0cnVjdCB6cGNpX3JlcG9ydF9lcnJvcl9oZWFk ZXIgewogCQkJICoJKE9wZW5DcnlwdG8gU3VjY2Vzc2Z1bCBEaWFnbm9zdGljcyBFeGVjdXRpb24p CiAJCQkgKi8KIAl1MTYgbGVuZ3RoOwkvKiBMZW5ndGggb2YgU3Vic2VxdWVudCBEYXRhICh1cCB0 byA0SyDigJMgU0NMUCBoZWFkZXIgKi8KLQl1OCBkYXRhWzBdOwkvKiBTdWJzZXF1ZW50IERhdGEg cGFzc2VkIHZlcmJhdGltIHRvIFNDTFAgRVQgMjQgKi8KKwl1OCBkYXRhW107CS8qIFN1YnNlcXVl bnQgRGF0YSBwYXNzZWQgdmVyYmF0aW0gdG8gU0NMUCBFVCAyNCAqLwogfSBfX3BhY2tlZDsKIAog ZXh0ZXJuIGNoYXIgKnNjbHBfZWFybHlfc2NjYjsKZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9pbmNs dWRlL2FzbS9zeXNpbmZvLmggYi9hcmNoL3MzOTAvaW5jbHVkZS9hc20vc3lzaW5mby5oCmluZGV4 IGZlN2IzZjhmMDc5MS4uYWIxYzYzMTYwNTVjIDEwMDY0NAotLS0gYS9hcmNoL3MzOTAvaW5jbHVk ZS9hc20vc3lzaW5mby5oCisrKyBiL2FyY2gvczM5MC9pbmNsdWRlL2FzbS9zeXNpbmZvLmgKQEAg LTY3LDEyICs2NywxMiBAQCBzdHJ1Y3Qgc3lzaW5mb18xXzJfMiB7CiAJdW5zaWduZWQgc2hvcnQg Y3B1c19jb25maWd1cmVkOwogCXVuc2lnbmVkIHNob3J0IGNwdXNfc3RhbmRieTsKIAl1bnNpZ25l ZCBzaG9ydCBjcHVzX3Jlc2VydmVkOwotCXVuc2lnbmVkIHNob3J0IGFkanVzdG1lbnRbMF07CisJ dW5zaWduZWQgc2hvcnQgYWRqdXN0bWVudFtdOwogfTsKIAogc3RydWN0IHN5c2luZm9fMV8yXzJf ZXh0ZW5zaW9uIHsKIAl1bnNpZ25lZCBpbnQgYWx0X2NhcGFiaWxpdHk7Ci0JdW5zaWduZWQgc2hv cnQgYWx0X2FkanVzdG1lbnRbMF07CisJdW5zaWduZWQgc2hvcnQgYWx0X2FkanVzdG1lbnRbXTsK IH07CiAKIHN0cnVjdCBzeXNpbmZvXzJfMl8xIHsKQEAgLTE4MSw3ICsxODEsNyBAQCBzdHJ1Y3Qg c3lzaW5mb18xNV8xX3ggewogCXVuc2lnbmVkIGNoYXIgcmVzZXJ2ZWQxOwogCXVuc2lnbmVkIGNo YXIgbW5lc3Q7CiAJdW5zaWduZWQgY2hhciByZXNlcnZlZDJbNF07Ci0JdW5pb24gdG9wb2xvZ3lf ZW50cnkgdGxlWzBdOworCXVuaW9uIHRvcG9sb2d5X2VudHJ5IHRsZVtdOwogfTsKIAogaW50IHN0 c2kodm9pZCAqc3lzaW5mbywgaW50IGZjLCBpbnQgc2VsMSwgaW50IHNlbDIpOwpkaWZmIC0tZ2l0 IGEvYXJjaC9zaC9pbmNsdWRlL2FzbS90aHJlYWRfaW5mby5oIGIvYXJjaC9zaC9pbmNsdWRlL2Fz bS90aHJlYWRfaW5mby5oCmluZGV4IDU5OGQwMTg0ZmZlYS4uM2EyZDUwZDYxZmM5IDEwMDY0NAot LS0gYS9hcmNoL3NoL2luY2x1ZGUvYXNtL3RocmVhZF9pbmZvLmgKKysrIGIvYXJjaC9zaC9pbmNs dWRlL2FzbS90aHJlYWRfaW5mby5oCkBAIC0zMyw3ICszMyw3IEBAIHN0cnVjdCB0aHJlYWRfaW5m byB7CiAJbW1fc2VnbWVudF90CQlhZGRyX2xpbWl0OwkvKiB0aHJlYWQgYWRkcmVzcyBzcGFjZSAq LwogCXVuc2lnbmVkIGxvbmcJCXByZXZpb3VzX3NwOwkvKiBzcCBvZiBwcmV2aW91cyBzdGFjayBp biBjYXNlCiAJCQkJCQkgICBvZiBuZXN0ZWQgSVJRIHN0YWNrcyAqLwotCV9fdTgJCQlzdXBlcnZp c29yX3N0YWNrWzBdOworCV9fdTgJCQlzdXBlcnZpc29yX3N0YWNrW107CiB9OwogCiAjZW5kaWYK ZGlmZiAtLWdpdCBhL2FyY2gvc3BhcmMvaW5jbHVkZS9hc20vdmlvLmggYi9hcmNoL3NwYXJjL2lu Y2x1ZGUvYXNtL3Zpby5oCmluZGV4IDhhMWE4M2JiYjZkNS4uMmQ3YmRmNjY1ZmQzIDEwMDY0NAot LS0gYS9hcmNoL3NwYXJjL2luY2x1ZGUvYXNtL3Zpby5oCisrKyBiL2FyY2gvc3BhcmMvaW5jbHVk ZS9hc20vdmlvLmgKQEAgLTcwLDcgKzcwLDcgQEAgc3RydWN0IHZpb19kcmluZ19yZWdpc3RlciB7 CiAjZGVmaW5lIFZJT19SWF9EUklOR19EQVRBCTB4MDAwNAogCXUxNgkJCXJlc3Y7CiAJdTMyCQkJ bnVtX2Nvb2tpZXM7Ci0Jc3RydWN0IGxkY190cmFuc19jb29raWUJY29va2llc1swXTsKKwlzdHJ1 Y3QgbGRjX3RyYW5zX2Nvb2tpZQljb29raWVzW107CiB9OwogCiBzdHJ1Y3QgdmlvX2RyaW5nX3Vu cmVnaXN0ZXIgewpAQCAtMTYxLDcgKzE2MSw3IEBAIHN0cnVjdCB2aW9fZGlza19kZXNjIHsKIAl1 NjQJCQlzaXplOwogCXUzMgkJCW5jb29raWVzOwogCXUzMgkJCXJlc3YyOwotCXN0cnVjdCBsZGNf dHJhbnNfY29va2llCWNvb2tpZXNbMF07CisJc3RydWN0IGxkY190cmFuc19jb29raWUJY29va2ll c1tdOwogfTsKIAogI2RlZmluZSBWSU9fRElTS19WTkFNRV9MRU4JOApAQCAtMjAwLDEzICsyMDAs MTMgQEAgc3RydWN0IHZpb19kaXNrX2RldmlkIHsKIAl1MTYJCQlyZXN2OwogCXUxNgkJCXR5cGU7 CiAJdTMyCQkJbGVuOwotCWNoYXIJCQlpZFswXTsKKwljaGFyCQkJaWRbXTsKIH07CiAKIHN0cnVj dCB2aW9fZGlza19lZmkgewogCXU2NAkJCWxiYTsKIAl1NjQJCQlsZW47Ci0JY2hhcgkJCWRhdGFb MF07CisJY2hhcgkJCWRhdGFbXTsKIH07CiAKIC8qIFZJTyBuZXQgc3BlY2lmaWMgc3RydWN0dXJl cyBhbmQgZGVmaW5lcyAqLwpAQCAtMjQ2LDcgKzI0Niw3IEBAIHN0cnVjdCB2aW9fbmV0X2Rlc2Mg ewogCXN0cnVjdCB2aW9fZHJpbmdfaGRyCWhkcjsKIAl1MzIJCQlzaXplOwogCXUzMgkJCW5jb29r aWVzOwotCXN0cnVjdCBsZGNfdHJhbnNfY29va2llCWNvb2tpZXNbMF07CisJc3RydWN0IGxkY190 cmFuc19jb29raWUJY29va2llc1tdOwogfTsKIAogc3RydWN0IHZpb19uZXRfZGV4dCB7CmRpZmYg LS1naXQgYS9hcmNoL3VtL2luY2x1ZGUvc2hhcmVkL25ldF9rZXJuLmggYi9hcmNoL3VtL2luY2x1 ZGUvc2hhcmVkL25ldF9rZXJuLmgKaW5kZXggNDQxYThhMzA5MzI5Li42N2IyZTlhMWYyZTUgMTAw NjQ0Ci0tLSBhL2FyY2gvdW0vaW5jbHVkZS9zaGFyZWQvbmV0X2tlcm4uaAorKysgYi9hcmNoL3Vt L2luY2x1ZGUvc2hhcmVkL25ldF9rZXJuLmgKQEAgLTM5LDcgKzM5LDcgQEAgc3RydWN0IHVtbF9u ZXRfcHJpdmF0ZSB7CiAKIAl2b2lkICgqYWRkX2FkZHJlc3MpKHVuc2lnbmVkIGNoYXIgKiwgdW5z aWduZWQgY2hhciAqLCB2b2lkICopOwogCXZvaWQgKCpkZWxldGVfYWRkcmVzcykodW5zaWduZWQg Y2hhciAqLCB1bnNpZ25lZCBjaGFyICosIHZvaWQgKik7Ci0JY2hhciB1c2VyWzBdOworCWNoYXIg dXNlcltdOwogfTsKIAogc3RydWN0IG5ldF9rZXJuX2luZm8gewpkaWZmIC0tZ2l0IGEvYXJjaC94 ODYvaW5jbHVkZS9hc20vbWljcm9jb2RlX2FtZC5oIGIvYXJjaC94ODYvaW5jbHVkZS9hc20vbWlj cm9jb2RlX2FtZC5oCmluZGV4IDcwNjNiNWE0MzIyMC4uYWMzMWY5MTQwZDA3IDEwMDY0NAotLS0g YS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9taWNyb2NvZGVfYW1kLmgKKysrIGIvYXJjaC94ODYvaW5j bHVkZS9hc20vbWljcm9jb2RlX2FtZC5oCkBAIC0zOCw3ICszOCw3IEBAIHN0cnVjdCBtaWNyb2Nv ZGVfaGVhZGVyX2FtZCB7CiAKIHN0cnVjdCBtaWNyb2NvZGVfYW1kIHsKIAlzdHJ1Y3QgbWljcm9j b2RlX2hlYWRlcl9hbWQJaGRyOwotCXVuc2lnbmVkIGludAkJCW1wYlswXTsKKwl1bnNpZ25lZCBp bnQJCQltcGJbXTsKIH07CiAKICNkZWZpbmUgUEFUQ0hfTUFYX1NJWkUgKDMgKiBQQUdFX1NJWkUp CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9taWNyb2NvZGVfaW50ZWwuaCBiL2Fy Y2gveDg2L2luY2x1ZGUvYXNtL21pY3JvY29kZV9pbnRlbC5oCmluZGV4IGQ4NWEwN2Q3MTU0Zi4u NGM5MmNlYTdlNGI1IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9taWNyb2NvZGVf aW50ZWwuaAorKysgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9taWNyb2NvZGVfaW50ZWwuaApAQCAt MTksNyArMTksNyBAQCBzdHJ1Y3QgbWljcm9jb2RlX2hlYWRlcl9pbnRlbCB7CiAKIHN0cnVjdCBt aWNyb2NvZGVfaW50ZWwgewogCXN0cnVjdCBtaWNyb2NvZGVfaGVhZGVyX2ludGVsIGhkcjsKLQl1 bnNpZ25lZCBpbnQgICAgICAgICAgICBiaXRzWzBdOworCXVuc2lnbmVkIGludCAgICAgICAgICAg IGJpdHNbXTsKIH07CiAKIC8qIG1pY3JvY29kZSBmb3JtYXQgaXMgZXh0ZW5kZWQgZnJvbSBwcmVz Y290dCBwcm9jZXNzb3JzICovCkBAIC0zMyw3ICszMyw3IEBAIHN0cnVjdCBleHRlbmRlZF9zaWd0 YWJsZSB7CiAJdW5zaWduZWQgaW50ICAgICAgICAgICAgY291bnQ7CiAJdW5zaWduZWQgaW50ICAg ICAgICAgICAgY2tzdW07CiAJdW5zaWduZWQgaW50ICAgICAgICAgICAgcmVzZXJ2ZWRbM107Ci0J c3RydWN0IGV4dGVuZGVkX3NpZ25hdHVyZSBzaWdzWzBdOworCXN0cnVjdCBleHRlbmRlZF9zaWdu YXR1cmUgc2lnc1tdOwogfTsKIAogI2RlZmluZSBERUZBVUxUX1VDT0RFX0RBVEFTSVpFCSgyMDAw KQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVkZS9hc20vcGNpLmggYi9hcmNoL3g4Ni9pbmNs dWRlL2FzbS9wY2kuaAppbmRleCBkMmM3NmM4ZDhjZmQuLmYzZmQ1OTI4YmNiYiAxMDA2NDQKLS0t IGEvYXJjaC94ODYvaW5jbHVkZS9hc20vcGNpLmgKKysrIGIvYXJjaC94ODYvaW5jbHVkZS9hc20v cGNpLmgKQEAgLTEzNSw3ICsxMzUsNyBAQCBzdHJ1Y3QgcGNpX3NldHVwX3JvbSB7CiAJdW5zaWdu ZWQgbG9uZyBidXM7CiAJdW5zaWduZWQgbG9uZyBkZXZpY2U7CiAJdW5zaWduZWQgbG9uZyBmdW5j dGlvbjsKLQl1aW50OF90IHJvbWRhdGFbMF07CisJdWludDhfdCByb21kYXRhW107CiB9OwogCiAj ZW5kaWYgLyogX0FTTV9YODZfUENJX0ggKi8KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUv YXNtL3BjaV94ODYuaCBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BjaV94ODYuaAppbmRleCA0OTA0 MTFkYmE0MzguLjNmYjZmYzU5NjA5NSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9hc20v cGNpX3g4Ni5oCisrKyBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BjaV94ODYuaApAQCAtODcsNyAr ODcsNyBAQCBzdHJ1Y3QgaXJxX3JvdXRpbmdfdGFibGUgewogCXUzMiBtaW5pcG9ydF9kYXRhOwkJ LyogQ3JhcCAqLwogCXU4IHJmdVsxMV07CiAJdTggY2hlY2tzdW07CQkJLyogTW9kdWxvIDI1NiBj aGVja3N1bSBtdXN0IGdpdmUgMCAqLwotCXN0cnVjdCBpcnFfaW5mbyBzbG90c1swXTsKKwlzdHJ1 Y3QgaXJxX2luZm8gc2xvdHNbXTsKIH0gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CiAKIGV4dGVy biB1bnNpZ25lZCBpbnQgcGNpYmlvc19pcnFfbWFzazsKZGlmZiAtLWdpdCBhL2FyY2gveHRlbnNh L2luY2x1ZGUvYXNtL2Jvb3RwYXJhbS5oIGIvYXJjaC94dGVuc2EvaW5jbHVkZS9hc20vYm9vdHBh cmFtLmgKaW5kZXggODkyYWFiMzk5YWM4Li42MzMzYmQxZWI5ZDIgMTAwNjQ0Ci0tLSBhL2FyY2gv eHRlbnNhL2luY2x1ZGUvYXNtL2Jvb3RwYXJhbS5oCisrKyBiL2FyY2gveHRlbnNhL2luY2x1ZGUv YXNtL2Jvb3RwYXJhbS5oCkBAIC0zNCw3ICszNCw3IEBACiB0eXBlZGVmIHN0cnVjdCBicF90YWcg ewogCXVuc2lnbmVkIHNob3J0IGlkOwkvKiB0YWcgaWQgKi8KIAl1bnNpZ25lZCBzaG9ydCBzaXpl OwkvKiBzaXplIG9mIHRoaXMgcmVjb3JkIGV4Y2x1ZGluZyB0aGUgc3RydWN0dXJlKi8KLQl1bnNp Z25lZCBsb25nIGRhdGFbMF07CS8qIGRhdGEgKi8KKwl1bnNpZ25lZCBsb25nIGRhdGFbXTsJLyog ZGF0YSAqLwogfSBicF90YWdfdDsKIAogc3RydWN0IGJwX21lbWluZm8gewpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9jcnlwdG8vY2FhbS9wZGIuaCBiL2RyaXZlcnMvY3J5cHRvL2NhYW0vcGRiLmgKaW5k ZXggOGNjYzIyMDc1MDQzLi40YjFiY2Y1M2Y3YWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY3J5cHRv L2NhYW0vcGRiLmgKKysrIGIvZHJpdmVycy9jcnlwdG8vY2FhbS9wZGIuaApAQCAtMTQ0LDcgKzE0 NCw3IEBAIHN0cnVjdCBpcHNlY19lbmNhcF9wZGIgewogCX07CiAJdTMyIHNwaTsKIAl1MzIgaXBf aGRyX2xlbjsKLQl1MzIgaXBfaGRyWzBdOworCXUzMiBpcF9oZHJbXTsKIH07CiAKIC8qKgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX2Fkcy5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX2Fkcy5jCmluZGV4IDFhMWVkYWU2N2U0 ZS4uM2FjZWUwMDYwZTIzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9p bnRlbF9ndWNfYWRzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3Vj X2Fkcy5jCkBAIC01MSw3ICs1MSw3IEBAIHN0cnVjdCBfX2d1Y19hZHNfYmxvYiB7CiAJc3RydWN0 IGd1Y19ndF9zeXN0ZW1faW5mbyBzeXN0ZW1faW5mbzsKIAlzdHJ1Y3QgZ3VjX2VuZ2luZV91c2Fn ZSBlbmdpbmVfdXNhZ2U7CiAJLyogRnJvbSBoZXJlIG9uLCBsb2NhdGlvbiBpcyBkeW5hbWljISBS ZWZlciB0byBhYm92ZSBkaWFncmFtLiAqLwotCXN0cnVjdCBndWNfbW1pb19yZWcgcmVnc2V0WzBd OworCXN0cnVjdCBndWNfbW1pb19yZWcgcmVnc2V0W107CiB9IF9fcGFja2VkOwogCiBzdGF0aWMg dTMyIGd1Y19hZHNfcmVnc2V0X3NpemUoc3RydWN0IGludGVsX2d1YyAqZ3VjKQpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvaW5jbHVkZS9udmZ3L2hzLmggYi9kcml2ZXJzL2dw dS9kcm0vbm91dmVhdS9pbmNsdWRlL252ZncvaHMuaAppbmRleCA2NGQwZDMyMjAwYzIuLmI1M2Ji YzRjZDEzMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvaW5jbHVkZS9udmZ3 L2hzLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvaW5jbHVkZS9udmZ3L2hzLmgKQEAg LTIzLDcgKzIzLDcgQEAgc3RydWN0IG52ZndfaHNfbG9hZF9oZWFkZXIgewogCXUzMiBkYXRhX2Rt YV9iYXNlOwogCXUzMiBkYXRhX3NpemU7CiAJdTMyIG51bV9hcHBzOwotCXUzMiBhcHBzWzBdOwor CXUzMiBhcHBzW107CiB9OwogCiBjb25zdCBzdHJ1Y3QgbnZmd19oc19sb2FkX2hlYWRlciAqCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2h3dHJhY2luZy9jb3Jlc2lnaHQvY29yZXNpZ2h0LWNvbmZpZy5o IGIvZHJpdmVycy9od3RyYWNpbmcvY29yZXNpZ2h0L2NvcmVzaWdodC1jb25maWcuaAppbmRleCA5 YmQ0NGI5NDBhZGQuLjJlMTY3MDUyMzQ2MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9od3RyYWNpbmcv Y29yZXNpZ2h0L2NvcmVzaWdodC1jb25maWcuaAorKysgYi9kcml2ZXJzL2h3dHJhY2luZy9jb3Jl c2lnaHQvY29yZXNpZ2h0LWNvbmZpZy5oCkBAIC0yMzEsNyArMjMxLDcgQEAgc3RydWN0IGNzY2Zn X2NvbmZpZ19jc2RldiB7CiAJYm9vbCBlbmFibGVkOwogCXN0cnVjdCBsaXN0X2hlYWQgbm9kZTsK IAlpbnQgbnJfZmVhdDsKLQlzdHJ1Y3QgY3NjZmdfZmVhdHVyZV9jc2RldiAqZmVhdHNfY3NkZXZb MF07CisJc3RydWN0IGNzY2ZnX2ZlYXR1cmVfY3NkZXYgKmZlYXRzX2NzZGV2W107CiB9OwogCiAv KioKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWlzYy9iY20tdmsvYmNtX3ZrLmggYi9kcml2ZXJzL21p c2MvYmNtLXZrL2JjbV92ay5oCmluZGV4IGExMzM4ZjM3NTU4OS4uMjVkNTEyMjJlZWRmIDEwMDY0 NAotLS0gYS9kcml2ZXJzL21pc2MvYmNtLXZrL2JjbV92ay5oCisrKyBiL2RyaXZlcnMvbWlzYy9i Y20tdmsvYmNtX3ZrLmgKQEAgLTMxMSw3ICszMTEsNyBAQCBzdHJ1Y3QgYmNtX3ZrX3BlZXJfbG9n IHsKIAl1MzIgd3JfaWR4OwogCXUzMiBidWZfc2l6ZTsKIAl1MzIgbWFzazsKLQljaGFyIGRhdGFb MF07CisJY2hhciBkYXRhW107CiB9OwogCiAvKiBtYXggYnVmIHNpemUgYWxsb3dlZCAqLwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9taXNjL2hhYmFuYWxhYnMvaW5jbHVkZS9jb21tb24vY3B1Y3BfaWYu aCBiL2RyaXZlcnMvbWlzYy9oYWJhbmFsYWJzL2luY2x1ZGUvY29tbW9uL2NwdWNwX2lmLmgKaW5k ZXggNzM3YzM5ZjMzZjA1Li5mOWM0YWNjOWJmNWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWlzYy9o YWJhbmFsYWJzL2luY2x1ZGUvY29tbW9uL2NwdWNwX2lmLmgKKysrIGIvZHJpdmVycy9taXNjL2hh YmFuYWxhYnMvaW5jbHVkZS9jb21tb24vY3B1Y3BfaWYuaApAQCAtNTQwLDE5ICs1NDAsMTkgQEAg c3RydWN0IGNwdWNwX3BhY2tldCB7CiBzdHJ1Y3QgY3B1Y3BfdW5tYXNrX2lycV9hcnJfcGFja2V0 IHsKIAlzdHJ1Y3QgY3B1Y3BfcGFja2V0IGNwdWNwX3BrdDsKIAlfX2xlMzIgbGVuZ3RoOwotCV9f bGUzMiBpcnFzWzBdOworCV9fbGUzMiBpcnFzW107CiB9OwogCiBzdHJ1Y3QgY3B1Y3BfbmljX3N0 YXR1c19wYWNrZXQgewogCXN0cnVjdCBjcHVjcF9wYWNrZXQgY3B1Y3BfcGt0OwogCV9fbGUzMiBs ZW5ndGg7Ci0JX19sZTMyIGRhdGFbMF07CisJX19sZTMyIGRhdGFbXTsKIH07CiAKIHN0cnVjdCBj cHVjcF9hcnJheV9kYXRhX3BhY2tldCB7CiAJc3RydWN0IGNwdWNwX3BhY2tldCBjcHVjcF9wa3Q7 CiAJX19sZTMyIGxlbmd0aDsKLQlfX2xlMzIgZGF0YVswXTsKKwlfX2xlMzIgZGF0YVtdOwogfTsK IAogZW51bSBjcHVjcF9wYWNrZXRfcmMgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9taXNjL2hhYmFu YWxhYnMvaW5jbHVkZS9nYXVkaS9nYXVkaV9wYWNrZXRzLmggYi9kcml2ZXJzL21pc2MvaGFiYW5h bGFicy9pbmNsdWRlL2dhdWRpL2dhdWRpX3BhY2tldHMuaAppbmRleCA2ZTA5N2FjZTJlOTYuLjY2 ZmMwODNhN2M2YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9taXNjL2hhYmFuYWxhYnMvaW5jbHVkZS9n YXVkaS9nYXVkaV9wYWNrZXRzLmgKKysrIGIvZHJpdmVycy9taXNjL2hhYmFuYWxhYnMvaW5jbHVk ZS9nYXVkaS9nYXVkaV9wYWNrZXRzLmgKQEAgLTU0LDcgKzU0LDcgQEAgc3RydWN0IGdhdWRpX3Bh Y2tldCB7CiAJLyogVGhlIHJlc3Qgb2YgdGhlIHBhY2tldCBkYXRhIGZvbGxvd3MuIFVzZSB0aGUg Y29ycmVzcG9uZGluZwogCSAqIHBhY2tldF9YWFggc3RydWN0IHRvIGRlZmVyZW5jZSB0aGUgZGF0 YSwgYmFzZWQgb24gcGFja2V0IHR5cGUKIAkgKi8KLQl1OCBjb250ZW50c1swXTsKKwl1OCBjb250 ZW50c1tdOwogfTsKIAogc3RydWN0IHBhY2tldF9ub3AgewpAQCAtNzUsNyArNzUsNyBAQCBzdHJ1 Y3QgcGFja2V0X3dyZWczMiB7CiBzdHJ1Y3QgcGFja2V0X3dyZWdfYnVsayB7CiAJX19sZTMyIHNp emU2NDsKIAlfX2xlMzIgY3RsOwotCV9fbGU2NCB2YWx1ZXNbMF07IC8qIGRhdGEgc3RhcnRzIGhl cmUgKi8KKwlfX2xlNjQgdmFsdWVzW107IC8qIGRhdGEgc3RhcnRzIGhlcmUgKi8KIH07CiAKICNk ZWZpbmUgR0FVRElfUEtUX0xPTkdfQ1RMX09QX1NISUZUCQkyMApkaWZmIC0tZ2l0IGEvZHJpdmVy cy9taXNjL2hhYmFuYWxhYnMvaW5jbHVkZS9nb3lhL2dveWFfcGFja2V0cy5oIGIvZHJpdmVycy9t aXNjL2hhYmFuYWxhYnMvaW5jbHVkZS9nb3lhL2dveWFfcGFja2V0cy5oCmluZGV4IGVmNTRiYWQy MDUwOS4uNTBjZTUxNzViNjNhIDEwMDY0NAotLS0gYS9kcml2ZXJzL21pc2MvaGFiYW5hbGFicy9p bmNsdWRlL2dveWEvZ295YV9wYWNrZXRzLmgKKysrIGIvZHJpdmVycy9taXNjL2hhYmFuYWxhYnMv aW5jbHVkZS9nb3lhL2dveWFfcGFja2V0cy5oCkBAIC02Miw3ICs2Miw3IEBAIHN0cnVjdCBnb3lh X3BhY2tldCB7CiAJLyogVGhlIHJlc3Qgb2YgdGhlIHBhY2tldCBkYXRhIGZvbGxvd3MuIFVzZSB0 aGUgY29ycmVzcG9uZGluZwogCSAqIHBhY2tldF9YWFggc3RydWN0IHRvIGRlZmVyZW5jZSB0aGUg ZGF0YSwgYmFzZWQgb24gcGFja2V0IHR5cGUKIAkgKi8KLQl1OCBjb250ZW50c1swXTsKKwl1OCBj b250ZW50c1tdOwogfTsKIAogc3RydWN0IHBhY2tldF9ub3AgewpAQCAtODYsNyArODYsNyBAQCBz dHJ1Y3QgcGFja2V0X3dyZWczMiB7CiBzdHJ1Y3QgcGFja2V0X3dyZWdfYnVsayB7CiAJX19sZTMy IHNpemU2NDsKIAlfX2xlMzIgY3RsOwotCV9fbGU2NCB2YWx1ZXNbMF07IC8qIGRhdGEgc3RhcnRz IGhlcmUgKi8KKwlfX2xlNjQgdmFsdWVzW107IC8qIGRhdGEgc3RhcnRzIGhlcmUgKi8KIH07CiAK IHN0cnVjdCBwYWNrZXRfbXNnX2xvbmcgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJu ZXQvZnJlZXNjYWxlL2VuZXRjL2VuZXRjX2h3LmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVl c2NhbGUvZW5ldGMvZW5ldGNfaHcuaAppbmRleCAxNTE0ZTZhNGEzZmYuLmNlNWI2NzdlOGMyZiAx MDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2VuZXRjL2VuZXRjX2h3 LmgKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2VuZXRjL2VuZXRjX2h3LmgK QEAgLTg4MSw3ICs4ODEsNyBAQCBzdHJ1Y3Qgc2djbF9kYXRhIHsKIAl1MzIJCWJ0aDsKIAl1MzIJ CWN0OwogCXUzMgkJY3RlOwotCXN0cnVjdCBzZ2NlCXNnY2xbMF07CisJc3RydWN0IHNnY2UJc2dj bFtdOwogfTsKIAogI2RlZmluZSBFTkVUQ19DQkRSX0ZNSV9NUglCSVQoMCkKZGlmZiAtLWdpdCBh L2RyaXZlcnMvbmV0L2V0aGVybmV0L2k4MjV4eC9zdW4zXzgyNTg2LmggYi9kcml2ZXJzL25ldC9l dGhlcm5ldC9pODI1eHgvc3VuM184MjU4Ni5oCmluZGV4IDc5YWVmNjgxYWM4NS4uNDUxY2IzZDI2 Y2I1IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pODI1eHgvc3VuM184MjU4Ni5o CisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2k4MjV4eC9zdW4zXzgyNTg2LmgKQEAgLTI1MCw3 ICsyNTAsNyBAQCBzdHJ1Y3QgbWNzZXR1cF9jbWRfc3RydWN0CiAgIHVuc2lnbmVkIHNob3J0IGNt ZF9jbWQ7CiAgIHVuc2lnbmVkIHNob3J0IGNtZF9saW5rOwogICB1bnNpZ25lZCBzaG9ydCBtY19j bnQ7CQkvKiBudW1iZXIgb2YgYnl0ZXMgaW4gdGhlIE1DLUxpc3QgKi8KLSAgdW5zaWduZWQgY2hh ciAgbWNfbGlzdFswXVs2XTsgIAkvKiBwb2ludGVyIHRvIDYgYnl0ZXMgZW50cmllcyAqLworICB1 bnNpZ25lZCBjaGFyICBtY19saXN0W11bNl07ICAJLyogcG9pbnRlciB0byA2IGJ5dGVzIGVudHJp ZXMgKi8KIH07CiAKIC8qCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxs L29jdGVvbnR4Mi9hZi9ucGMuaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9u dHgyL2FmL25wYy5oCmluZGV4IDc3ZmQzOWUyYzhkYi4uOWI2ZTU4N2U3OGI0IDEwMDY0NAotLS0g YS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ucGMuaAorKysgYi9k cml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ucGMuaApAQCAtNDU1LDcg KzQ1NSw3IEBAIHN0cnVjdCBucGNfY29hbGVzY2VkX2twdV9wcmZsIHsKIAl1OCBuYW1lW05QQ19O QU1FX0xFTl07IC8qIEtQVSBQcm9maWxlIG5hbWUgKi8KIAl1NjQgdmVyc2lvbjsgLyogS1BVIGZp cm13YXJlL3Byb2ZpbGUgdmVyc2lvbiAqLwogCXU4IG51bV9wcmZsOyAvKiBObyBvZiBOUEMgcHJv ZmlsZXMuICovCi0JdTE2IHByZmxfc3pbMF07CisJdTE2IHByZmxfc3pbXTsKIH07CiAKIHN0cnVj dCBucGNfbWNhbV9rZXggewpAQCAtNDgyLDcgKzQ4Miw3IEBAIHN0cnVjdCBucGNfa3B1X2Z3ZGF0 YSB7CiAJICogc3RydWN0IG5wY19rcHVfcHJvZmlsZV9jYW1bZW50cmllc107CiAJICogc3RydWN0 IG5wY19rcHVfcHJvZmlsZV9hY3Rpb25bZW50cmllc107CiAJICovCi0JdTgJZGF0YVswXTsKKwl1 OAlkYXRhW107CiB9IF9fcGFja2VkOwogCiBzdHJ1Y3QgbnBjX2x0X2RlZiB7CkBAIC01NzIsNyAr NTcyLDcgQEAgc3RydWN0IG5wY19rcHVfcHJvZmlsZV9md2RhdGEgewogCSAqICBDdXN0b20gS1BV IENBTSBhbmQgQUNUSU9OIGNvbmZpZ3VyYXRpb24gZW50cmllcy4KIAkgKiBzdHJ1Y3QgbnBjX2tw dV9md2RhdGEga3B1W2twdXNdOwogCSAqLwotCXU4CWRhdGFbMF07CisJdTgJZGF0YVtdOwogfSBf X3BhY2tlZDsKIAogc3RydWN0IHJ2dV9ucGNfbWNhbV9ydWxlIHsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L2V0aGVybmV0L3Fsb2dpYy9xZWQvcWVkX21md19oc2kuaCBiL2RyaXZlcnMvbmV0L2V0 aGVybmV0L3Fsb2dpYy9xZWQvcWVkX21md19oc2kuaAppbmRleCBiNzBlZTgyMDBlMTUuLjY0NTlk ZDNmZWIzNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvcWxvZ2ljL3FlZC9xZWRf bWZ3X2hzaS5oCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3Fsb2dpYy9xZWQvcWVkX21md19o c2kuaApAQCAtMjQ3MCw2ICsyNDcwLDYgQEAgc3RydWN0IG52bV9tZXRhX2Jpbl90IHsKIAl1MzIg dmVyc2lvbjsKICNkZWZpbmUgTlZNX01FVEFfQklOX1ZFUlNJT04gMQogCXUzMiBudW1fb3B0aW9u czsKLQl1MzIgb3B0aW9uc1swXTsKKwl1MzIgb3B0aW9uc1tdOwogfTsKICNlbmRpZgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvdGkvZGF2aW5jaV9tZGlvLmMgYi9kcml2ZXJzL25l dC9ldGhlcm5ldC90aS9kYXZpbmNpX21kaW8uYwppbmRleCBhNGVmZDVlMzUxNTguLmZjZTI2MjZl MzRmYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvdGkvZGF2aW5jaV9tZGlvLmMK KysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvdGkvZGF2aW5jaV9tZGlvLmMKQEAgLTcwLDcgKzcw LDcgQEAgc3RydWN0IGRhdmluY2lfbWRpb19yZWdzIHsKICNkZWZpbmUgVVNFUkFDQ0VTU19EQVRB CQkoMHhmZmZmKQogCiAJCXUzMglwaHlzZWw7Ci0JfQl1c2VyWzBdOworCX0JdXNlcltdOwogfTsK IAogc3RhdGljIGNvbnN0IHN0cnVjdCBtZGlvX3BsYXRmb3JtX2RhdGEgZGVmYXVsdF9wZGF0YSA9 IHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9kcHQvZHB0aV9pMm8uaCBiL2RyaXZlcnMvc2Nz aS9kcHQvZHB0aV9pMm8uaAppbmRleCBiZjBkYWVlYjUwYTkuLmUxZmJiZjU1YzA5ZCAxMDA2NDQK LS0tIGEvZHJpdmVycy9zY3NpL2RwdC9kcHRpX2kyby5oCisrKyBiL2RyaXZlcnMvc2NzaS9kcHQv ZHB0aV9pMm8uaApAQCAtMTIzLDcgKzEyMyw3IEBAIHN0cnVjdCBpMm9fc3lzX3RibAogCXUzMglj aGFuZ2VfaW5kOwogCXUzMglyZXNlcnZlZDI7CiAJdTMyCXJlc2VydmVkMzsKLQlzdHJ1Y3QgaTJv X3N5c190YmxfZW50cnkgaW9wc1swXTsKKwlzdHJ1Y3QgaTJvX3N5c190YmxfZW50cnkgaW9wc1td OwogfTsKIAogLyoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9lbHgvbGliZWZjX3NsaS9zbGk0 LmggYi9kcml2ZXJzL3Njc2kvZWx4L2xpYmVmY19zbGkvc2xpNC5oCmluZGV4IGVlMmE5ZTY1YTg4 ZC4uMzhhZjE2NmNjNzg2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvZWx4L2xpYmVmY19zbGkv c2xpNC5oCisrKyBiL2RyaXZlcnMvc2NzaS9lbHgvbGliZWZjX3NsaS9zbGk0LmgKQEAgLTYwOSw3 ICs2MDksNyBAQCBzdHJ1Y3Qgc2xpNF9ycXN0X2Ntbl9jcmVhdGVfY3FfdjIgewogCV9fbGUxNgkJ CWNxZV9jb3VudDsKIAlfX2xlMTYJCQlyc3ZkMzA7CiAJX19sZTMyCQkJcnN2ZDMyOwotCXN0cnVj dCBzbGk0X2RtYWFkZHIJcGFnZV9waHlzX2FkZHJbMF07CisJc3RydWN0IHNsaTRfZG1hYWRkcglw YWdlX3BoeXNfYWRkcltdOwogfTsKIAogZW51bSBzbGk0X2NyZWF0ZV9jcXNldF9lIHsKQEAgLTYz NCw3ICs2MzQsNyBAQCBzdHJ1Y3Qgc2xpNF9ycXN0X2Ntbl9jcmVhdGVfY3Ffc2V0X3YwIHsKIAlf X2xlMTYJCQludW1fY3FfcmVxOwogCV9fbGUxNgkJCWR3NncxX2ZsYWdzOwogCV9fbGUxNgkJCWVx X2lkWzE2XTsKLQlzdHJ1Y3Qgc2xpNF9kbWFhZGRyCXBhZ2VfcGh5c19hZGRyWzBdOworCXN0cnVj dCBzbGk0X2RtYWFkZHIJcGFnZV9waHlzX2FkZHJbXTsKIH07CiAKIC8qIENRRSBjb3VudCAqLwpA QCAtNzY0LDcgKzc2NCw3IEBAIHN0cnVjdCBzbGk0X3Jxc3RfY21uX2NyZWF0ZV9tcV9leHQgewog CV9fbGUzMgkJCWR3N192YWw7CiAJX19sZTMyCQkJZHc4X2ZsYWdzOwogCV9fbGUzMgkJCXJzdmQz NjsKLQlzdHJ1Y3Qgc2xpNF9kbWFhZGRyCXBhZ2VfcGh5c19hZGRyWzBdOworCXN0cnVjdCBzbGk0 X2RtYWFkZHIJcGFnZV9waHlzX2FkZHJbXTsKIH07CiAKIHN0cnVjdCBzbGk0X3JzcF9jbW5fY3Jl YXRlX21xX2V4dCB7CkBAIC04MDIsNyArODAyLDcgQEAgc3RydWN0IHNsaTRfcnFzdF9jbW5fY3Jl YXRlX2NxX3YwIHsKIAlfX2xlMzIJCQlkdzZfZmxhZ3M7CiAJX19sZTMyCQkJcnN2ZDI4OwogCV9f bGUzMgkJCXJzdmQzMjsKLQlzdHJ1Y3Qgc2xpNF9kbWFhZGRyCXBhZ2VfcGh5c19hZGRyWzBdOwor CXN0cnVjdCBzbGk0X2RtYWFkZHIJcGFnZV9waHlzX2FkZHJbXTsKIH07CiAKIGVudW0gc2xpNF9j cmVhdGVfcnFfZSB7CkBAIC04ODcsNyArODg3LDcgQEAgc3RydWN0IHNsaTRfcnFzdF9ycV9jcmVh dGVfdjIgewogCV9fbGUxNgkJCWJhc2VfY3FfaWQ7CiAJX19sZTE2CQkJcnN2ZDI2OwogCV9fbGUz MgkJCXJzdmQ0MjsKLQlzdHJ1Y3Qgc2xpNF9kbWFhZGRyCXBhZ2VfcGh5c19hZGRyWzBdOworCXN0 cnVjdCBzbGk0X2RtYWFkZHIJcGFnZV9waHlzX2FkZHJbXTsKIH07CiAKIHN0cnVjdCBzbGk0X3Jz cF9ycV9jcmVhdGVfdjIgewpAQCAtMzE2OCw3ICszMTY4LDcgQEAgc3RydWN0IHNsaTRfcnFzdF9j bW5fcmVhZF9vYmplY3QgewogCV9fbGUzMgkJCXJlYWRfb2Zmc2V0OwogCXU4CQkJb2JqZWN0X25h bWVbMTA0XTsKIAlfX2xlMzIJCQlob3N0X2J1ZmZlcl9kZXNjcmlwdG9yX2NvdW50OwotCXN0cnVj dCBzbGk0X2JkZQkJaG9zdF9idWZmZXJfZGVzY3JpcHRvclswXTsKKwlzdHJ1Y3Qgc2xpNF9iZGUJ CWhvc3RfYnVmZmVyX2Rlc2NyaXB0b3JbXTsKIH07CiAKICNkZWZpbmUgUlNQX0NPTV9SRUFEX09C Sl9FT0YJCTB4ODAwMDAwMDAKQEAgLTMxOTEsNyArMzE5MSw3IEBAIHN0cnVjdCBzbGk0X3Jxc3Rf Y21uX3dyaXRlX29iamVjdCB7CiAJX19sZTMyCQkJd3JpdGVfb2Zmc2V0OwogCXU4CQkJb2JqZWN0 X25hbWVbMTA0XTsKIAlfX2xlMzIJCQlob3N0X2J1ZmZlcl9kZXNjcmlwdG9yX2NvdW50OwotCXN0 cnVjdCBzbGk0X2JkZQkJaG9zdF9idWZmZXJfZGVzY3JpcHRvclswXTsKKwlzdHJ1Y3Qgc2xpNF9i ZGUJCWhvc3RfYnVmZmVyX2Rlc2NyaXB0b3JbXTsKIH07CiAKICNkZWZpbmUJUlNQX0NIQU5HRV9T VEFUVVMJCTB4ZmYKQEAgLTMyMTcsNyArMzIxNyw3IEBAIHN0cnVjdCBzbGk0X3Jxc3RfY21uX3Jl YWRfb2JqZWN0X2xpc3QgewogCV9fbGUzMgkJCXJlYWRfb2Zmc2V0OwogCXU4CQkJb2JqZWN0X25h bWVbMTA0XTsKIAlfX2xlMzIJCQlob3N0X2J1ZmZlcl9kZXNjcmlwdG9yX2NvdW50OwotCXN0cnVj dCBzbGk0X2JkZQkJaG9zdF9idWZmZXJfZGVzY3JpcHRvclswXTsKKwlzdHJ1Y3Qgc2xpNF9iZGUJ CWhvc3RfYnVmZmVyX2Rlc2NyaXB0b3JbXTsKIH07CiAKIGVudW0gc2xpNF9ycXN0X3NldF9kdW1w X2ZsYWdzIHsKQEAgLTMzNDIsNyArMzM0Miw3IEBAIHN0cnVjdCBzbGk0X3JzcG91cmNlX2Rlc2Ny aXB0b3JfdjEgewogCXU4CQlkZXNjcmlwdG9yX3R5cGU7CiAJdTgJCWRlc2NyaXB0b3JfbGVuZ3Ro OwogCV9fbGUxNgkJcnN2ZDE2OwotCV9fbGUzMgkJdHlwZV9zcGVjaWZpY1swXTsKKwlfX2xlMzIJ CXR5cGVfc3BlY2lmaWNbXTsKIH07CiAKIGVudW0gc2xpNF9wY2llX2Rlc2NfZmxhZ3MgewpAQCAt MzQ3NCw3ICszNDc0LDcgQEAgc3RydWN0IHNsaTRfcnFzdF9wb3N0X2hkcl90ZW1wbGF0ZXMgewog CXN0cnVjdCBzbGk0X3Jxc3RfaGRyCWhkcjsKIAlfX2xlMTYJCQlycGlfb2Zmc2V0OwogCV9fbGUx NgkJCXBhZ2VfY291bnQ7Ci0Jc3RydWN0IHNsaTRfZG1hYWRkcglwYWdlX2Rlc2NyaXB0b3JbMF07 CisJc3RydWN0IHNsaTRfZG1hYWRkcglwYWdlX2Rlc2NyaXB0b3JbXTsKIH07CiAKICNkZWZpbmUg U0xJNF9IRFJfVEVNUExBVEVfU0laRQkJNjQKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9tcGkz bXIvbXBpM21yLmggYi9kcml2ZXJzL3Njc2kvbXBpM21yL21waTNtci5oCmluZGV4IGZjNGVhZjZk MWU0Ny4uZmI3ZDg3NzVjOWY3IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvbXBpM21yL21waTNt ci5oCisrKyBiL2RyaXZlcnMvc2NzaS9tcGkzbXIvbXBpM21yLmgKQEAgLTg3OCw3ICs4NzgsNyBA QCBzdHJ1Y3QgbXBpM21yX2Z3ZXZ0IHsKIAlib29sIHByb2Nlc3NfZXZ0OwogCXUzMiBldnRfY3R4 OwogCXN0cnVjdCBrcmVmIHJlZl9jb3VudDsKLQljaGFyIGV2ZW50X2RhdGFbMF0gX19hbGlnbmVk KDQpOworCWNoYXIgZXZlbnRfZGF0YVtdIF9fYWxpZ25lZCg0KTsKIH07CiAKIApkaWZmIC0tZ2l0 IGEvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2JzZy5oIGIvZHJpdmVycy9zY3NpL3FsYTJ4eHgv cWxhX2JzZy5oCmluZGV4IDBmOGE0YzdlNTJhMi4uNmQyYjBhNzQzNmMxIDEwMDY0NAotLS0gYS9k cml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfYnNnLmgKKysrIGIvZHJpdmVycy9zY3NpL3FsYTJ4eHgv cWxhX2JzZy5oCkBAIC0xNTcsNyArMTU3LDcgQEAgc3RydWN0IHFsYTg0X21zZ19tZ210IHsKIAl1 aW50MTZfdCByc3J2ZDsKIAlzdHJ1Y3QgcWxhODRfbWdtdF9wYXJhbSBtZ210cDsvKiBwYXJhbWV0 ZXJzIGZvciBjbWQgKi8KIAl1aW50MzJfdCBsZW47IC8qIGJ5dGVzIGluIHBheWxvYWQgZm9sbG93 aW5nIHRoaXMgc3RydWN0ICovCi0JdWludDhfdCBwYXlsb2FkWzBdOyAvKiBwYXlsb2FkIGZvciBj bWQgKi8KKwl1aW50OF90IHBheWxvYWRbXTsgLyogcGF5bG9hZCBmb3IgY21kICovCiB9OwogCiBz dHJ1Y3QgcWxhX2JzZ19hODRfbWdtdCB7CkBAIC0yMTYsNyArMjE2LDcgQEAgc3RydWN0IHFsYV9p bWFnZV92ZXJzaW9uIHsKIAogc3RydWN0IHFsYV9pbWFnZV92ZXJzaW9uX2xpc3QgewogCXVpbnQz Ml90IGNvdW50OwotCXN0cnVjdCBxbGFfaW1hZ2VfdmVyc2lvbiB2ZXJzaW9uWzBdOworCXN0cnVj dCBxbGFfaW1hZ2VfdmVyc2lvbiB2ZXJzaW9uW107CiB9IF9fcGFja2VkOwogCiBzdHJ1Y3QgcWxh X3N0YXR1c19yZWcgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2RlZi5o IGIvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2RlZi5oCmluZGV4IDllYmY0YTIzNGQ5YS4uYjY0 MzRjNzJkZWUzIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfZGVmLmgKKysr IGIvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2RlZi5oCkBAIC01NDEwLDcgKzU0MTAsNyBAQCBz dHJ1Y3QgcWxfdm5kX3N0YXRfZW50cnkgewogc3RydWN0IHFsX3ZuZF9zdGF0cyB7CiAJdTY0IGVu dHJ5X2NvdW50OyAvKiBOdW0gb2YgZW50cmllcyAqLwogCXU2NCByc2VydmQ7Ci0Jc3RydWN0IHFs X3ZuZF9zdGF0X2VudHJ5IGVudHJ5WzBdOyAvKiBQbGFjZSBob2xkZXIgb2YgZW50cmllcyAqLwor CXN0cnVjdCBxbF92bmRfc3RhdF9lbnRyeSBlbnRyeVtdOyAvKiBQbGFjZSBob2xkZXIgb2YgZW50 cmllcyAqLwogfSBfX3BhY2tlZDsKIAogc3RydWN0IHFsX3ZuZF9ob3N0X3N0YXRzX3Jlc3Agewpk aWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2VkaWZfYnNnLmggYi9kcml2ZXJz L3Njc2kvcWxhMnh4eC9xbGFfZWRpZl9ic2cuaAppbmRleCA1MzAyNmQ4MmViZmYuLjVhMjZjNzcx NTdkYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2VkaWZfYnNnLmgKKysr IGIvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2VkaWZfYnNnLmgKQEAgLTEyMSw3ICsxMjEsNyBA QCBzdHJ1Y3QgYXBwX3BpbmZvIHsKIHN0cnVjdCBhcHBfcGluZm9fcmVwbHkgewogCXVpbnQ4X3QJ CXBvcnRfY291bnQ7CiAJdWludDhfdAkJcmVzZXJ2ZWRbVk5EX0NNRF9BUFBfUkVTRVJWRURfU0la RV07Ci0Jc3RydWN0IGFwcF9waW5mbyBwb3J0c1swXTsKKwlzdHJ1Y3QgYXBwX3BpbmZvIHBvcnRz W107CiB9IF9fcGFja2VkOwogCiBzdHJ1Y3QgYXBwX3NpbmZvX3JlcSB7CkBAIC0xNDAsNyArMTQw LDcgQEAgc3RydWN0IGFwcF9zaW5mbyB7CiAKIHN0cnVjdCBhcHBfc3RhdHNfcmVwbHkgewogCXVp bnQ4X3QJCWVsZW1fY291bnQ7Ci0Jc3RydWN0IGFwcF9zaW5mbyBlbGVtWzBdOworCXN0cnVjdCBh cHBfc2luZm8gZWxlbVtdOwogfSBfX3BhY2tlZDsKIAogc3RydWN0IHFsYV9zYV91cGRhdGVfZnJh bWUgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2Z3LmggYi9kcml2ZXJz L3Njc2kvcWxhMnh4eC9xbGFfZncuaAppbmRleCAwNzNkMDZlODhjNTguLjBiYjFkNTYyZjBiZiAx MDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2Z3LmgKKysrIGIvZHJpdmVycy9z Y3NpL3FsYTJ4eHgvcWxhX2Z3LmgKQEAgLTE3MDYsNyArMTcwNiw3IEBAIHN0cnVjdCBxbGFfZmx0 X2hlYWRlciB7CiAJX19sZTE2CWxlbmd0aDsKIAlfX2xlMTYJY2hlY2tzdW07CiAJX19sZTE2CXVu dXNlZDsKLQlzdHJ1Y3QgcWxhX2ZsdF9yZWdpb24gcmVnaW9uWzBdOworCXN0cnVjdCBxbGFfZmx0 X3JlZ2lvbiByZWdpb25bXTsKIH07CiAKICNkZWZpbmUgRkxUX1JFR0lPTl9TSVpFCQkxNgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9zY3NpL3FsYTR4eHgvcWw0X2Z3LmggYi9kcml2ZXJzL3Njc2kvcWxh NHh4eC9xbDRfZncuaAppbmRleCA0ZTE3NjRkZjBhNzMuLjg2MGVjNjFiNTFiOSAxMDA2NDQKLS0t IGEvZHJpdmVycy9zY3NpL3FsYTR4eHgvcWw0X2Z3LmgKKysrIGIvZHJpdmVycy9zY3NpL3FsYTR4 eHgvcWw0X2Z3LmgKQEAgLTEwMjgsNyArMTAyOCw3IEBAIHN0cnVjdCBjcmFzaF9yZWNvcmQgewog CiAJdWludDhfdCBvdXRfUklTQ19yZWdfZHVtcFsyNTZdOyAvKiA4MCAtMTdGICovCiAJdWludDhf dCBpbl9SSVNDX3JlZ19kdW1wWzI1Nl07CS8qMTgwIC0yN0YgKi8KLQl1aW50OF90IGluX291dF9S SVNDX3N0YWNrX2R1bXBbMF07CS8qMjgwIC0gPz8/ICovCisJdWludDhfdCBpbl9vdXRfUklTQ19z dGFja19kdW1wW107CS8qMjgwIC0gPz8/ICovCiB9OwogCiBzdHJ1Y3QgY29ubl9ldmVudF9sb2df ZW50cnkgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL3I4MTg4ZXUvaW5jbHVkZS9pZWVl ODAyMTEuaCBiL2RyaXZlcnMvc3RhZ2luZy9yODE4OGV1L2luY2x1ZGUvaWVlZTgwMjExLmgKaW5k ZXggM2EyM2Q1Mjk5MzE0Li41ZTdkZTYzMWI4ZWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3RhZ2lu Zy9yODE4OGV1L2luY2x1ZGUvaWVlZTgwMjExLmgKKysrIGIvZHJpdmVycy9zdGFnaW5nL3I4MTg4 ZXUvaW5jbHVkZS9pZWVlODAyMTEuaApAQCAtMTg1LDcgKzE4NSw3IEBAIHN0cnVjdCBpZWVlX3Bh cmFtIHsKIHN0cnVjdCBpZWVlX3BhcmFtX2V4IHsKIAl1MzIgY21kOwogCXU4IHN0YV9hZGRyW0VU SF9BTEVOXTsKLQl1OCBkYXRhWzBdOworCXU4IGRhdGFbXTsKIH07CiAKIHN0cnVjdCBzdGFfZGF0 YSB7CkBAIC03MTMsNyArNzEzLDcgQEAgc3RydWN0IGllZWU4MDIxMV9pbmZvX2VsZW1lbnRfaGRy IHsKIHN0cnVjdCBpZWVlODAyMTFfaW5mb19lbGVtZW50IHsKIAl1OCBpZDsKIAl1OCBsZW47Ci0J dTggZGF0YVswXTsKKwl1OCBkYXRhW107CiB9IF9fcGFja2VkOwogCiAvKgpAQCAtNzc2LDcgKzc3 Niw3IEBAIHN0cnVjdCBpZWVlODAyMTFfdHhiIHsKIAl1MTYgcmVzZXJ2ZWQ7CiAJdTE2IGZyYWdf c2l6ZTsKIAl1MTYgcGF5bG9hZF9zaXplOwotCXN0cnVjdCBza19idWZmICpmcmFnbWVudHNbMF07 CisJc3RydWN0IHNrX2J1ZmYgKmZyYWdtZW50c1tdOwogfTsKIAogLyogU1dFRVAgVEFCTEUgRU5U UklFUyBOVU1CRVIqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL3I4MTg4ZXUvaW5jbHVk ZS9ydHdfY21kLmggYi9kcml2ZXJzL3N0YWdpbmcvcjgxODhldS9pbmNsdWRlL3J0d19jbWQuaApp bmRleCBjZjA5NDVhZTExYzEuLmY4OTkxYTA0OTNkMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zdGFn aW5nL3I4MTg4ZXUvaW5jbHVkZS9ydHdfY21kLmgKKysrIGIvZHJpdmVycy9zdGFnaW5nL3I4MTg4 ZXUvaW5jbHVkZS9ydHdfY21kLmgKQEAgLTczLDcgKzczLDcgQEAgc3RydWN0IGMyaF9ldnRfaGRy IHsKIAl1OCBpZDo0OwogCXU4IHBsZW46NDsKIAl1OCBzZXE7Ci0JdTggcGF5bG9hZFswXTsKKwl1 OCBwYXlsb2FkW107CiB9OwogCiAjZGVmaW5lIGMyaF9ldnRfZXhpc3QoYzJoX2V2dCkgKChjMmhf ZXZ0KS0+aWQgfHwgKGMyaF9ldnQpLT5wbGVuKQpAQCAtNjYyLDI1ICs2NjIsMjUgQEAgc3RydWN0 IGdldGN1cnR4cHdybGV2ZWxfcnNwaSB7CiBzdHJ1Y3Qgc2V0cHJvYmVyZXFleHRyYWllX3Bhcm0g ewogCXVuc2lnbmVkIGNoYXIgZV9pZDsKIAl1bnNpZ25lZCBjaGFyIGllX2xlbjsKLQl1bnNpZ25l ZCBjaGFyIGllWzBdOworCXVuc2lnbmVkIGNoYXIgaWVbXTsKIH07CiAKIHN0cnVjdCBzZXRhc3Nv Y3JlcWV4dHJhaWVfcGFybSB7CiAJdW5zaWduZWQgY2hhciBlX2lkOwogCXVuc2lnbmVkIGNoYXIg aWVfbGVuOwotCXVuc2lnbmVkIGNoYXIgaWVbMF07CisJdW5zaWduZWQgY2hhciBpZVtdOwogfTsK IAogc3RydWN0IHNldHByb2JlcnNwZXh0cmFpZV9wYXJtIHsKIAl1bnNpZ25lZCBjaGFyIGVfaWQ7 CiAJdW5zaWduZWQgY2hhciBpZV9sZW47Ci0JdW5zaWduZWQgY2hhciBpZVswXTsKKwl1bnNpZ25l ZCBjaGFyIGllW107CiB9OwogCiBzdHJ1Y3Qgc2V0YXNzb2Nyc3BleHRyYWllX3Bhcm0gewogCXVu c2lnbmVkIGNoYXIgZV9pZDsKIAl1bnNpZ25lZCBjaGFyIGllX2xlbjsKLQl1bnNpZ25lZCBjaGFy IGllWzBdOworCXVuc2lnbmVkIGNoYXIgaWVbXTsKIH07CiAKIHN0cnVjdCBhZGRCYVJlcV9wYXJt IHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy9ydGw4NzEyL3J0bDg3MXhfY21kLmggYi9k cml2ZXJzL3N0YWdpbmcvcnRsODcxMi9ydGw4NzF4X2NtZC5oCmluZGV4IGRkZDY5YzRhZTIwOC4u OTVlOWVhNWIyZDk4IDEwMDY0NAotLS0gYS9kcml2ZXJzL3N0YWdpbmcvcnRsODcxMi9ydGw4NzF4 X2NtZC5oCisrKyBiL2RyaXZlcnMvc3RhZ2luZy9ydGw4NzEyL3J0bDg3MXhfY21kLmgKQEAgLTY1 NywyNSArNjU3LDI1IEBAIHN0cnVjdCBzZXRyYV9wYXJtIHsKIHN0cnVjdCBzZXRwcm9iZXJlcWV4 dHJhaWVfcGFybSB7CiAJdW5zaWduZWQgY2hhciBlX2lkOwogCXVuc2lnbmVkIGNoYXIgaWVfbGVu OwotCXVuc2lnbmVkIGNoYXIgaWVbMF07CisJdW5zaWduZWQgY2hhciBpZVtdOwogfTsKIAogc3Ry dWN0IHNldGFzc29jcmVxZXh0cmFpZV9wYXJtIHsKIAl1bnNpZ25lZCBjaGFyIGVfaWQ7CiAJdW5z aWduZWQgY2hhciBpZV9sZW47Ci0JdW5zaWduZWQgY2hhciBpZVswXTsKKwl1bnNpZ25lZCBjaGFy IGllW107CiB9OwogCiBzdHJ1Y3Qgc2V0cHJvYmVyc3BleHRyYWllX3Bhcm0gewogCXVuc2lnbmVk IGNoYXIgZV9pZDsKIAl1bnNpZ25lZCBjaGFyIGllX2xlbjsKLQl1bnNpZ25lZCBjaGFyIGllWzBd OworCXVuc2lnbmVkIGNoYXIgaWVbXTsKIH07CiAKIHN0cnVjdCBzZXRhc3NvY3JzcGV4dHJhaWVf cGFybSB7CiAJdW5zaWduZWQgY2hhciBlX2lkOwogCXVuc2lnbmVkIGNoYXIgaWVfbGVuOwotCXVu c2lnbmVkIGNoYXIgaWVbMF07CisJdW5zaWduZWQgY2hhciBpZVtdOwogfTsKIAogc3RydWN0IGFk ZEJhUmVxX3Bhcm0gewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL3J0bDg3MjNicy9pbmNs dWRlL2llZWU4MDIxMS5oIGIvZHJpdmVycy9zdGFnaW5nL3J0bDg3MjNicy9pbmNsdWRlL2llZWU4 MDIxMS5oCmluZGV4IGMxMWQ3ZTJkMjM0Ny4uMWU2MjdkYzAwNDRkIDEwMDY0NAotLS0gYS9kcml2 ZXJzL3N0YWdpbmcvcnRsODcyM2JzL2luY2x1ZGUvaWVlZTgwMjExLmgKKysrIGIvZHJpdmVycy9z dGFnaW5nL3J0bDg3MjNicy9pbmNsdWRlL2llZWU4MDIxMS5oCkBAIC0yMDQsNyArMjA0LDcgQEAg c3RydWN0IGllZWVfcGFyYW0gewogc3RydWN0IGllZWVfcGFyYW1fZXggewogCXUzMiBjbWQ7CiAJ dTggc3RhX2FkZHJbRVRIX0FMRU5dOwotCXU4IGRhdGFbMF07CisJdTggZGF0YVtdOwogfTsKIAog c3RydWN0IHN0YV9kYXRhIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy9ydGw4NzIzYnMv aW5jbHVkZS9ydHdfY21kLmggYi9kcml2ZXJzL3N0YWdpbmcvcnRsODcyM2JzL2luY2x1ZGUvcnR3 X2NtZC5oCmluZGV4IDI4ZDJkMjczMjM3NC4uMWJmMDMwY2JiYmJlIDEwMDY0NAotLS0gYS9kcml2 ZXJzL3N0YWdpbmcvcnRsODcyM2JzL2luY2x1ZGUvcnR3X2NtZC5oCisrKyBiL2RyaXZlcnMvc3Rh Z2luZy9ydGw4NzIzYnMvaW5jbHVkZS9ydHdfY21kLmgKQEAgLTk0LDcgKzk0LDcgQEAgc3RydWN0 IGMyaF9ldnRfaGRyIHsKIAl1OCBpZDo0OwogCXU4IHBsZW46NDsKIAl1OCBzZXE7Ci0JdTggcGF5 bG9hZFswXTsKKwl1OCBwYXlsb2FkW107CiB9OwogCiBzdHJ1Y3QgYzJoX2V2dF9oZHJfODh4eCB7 CmRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvdmMwNF9zZXJ2aWNlcy9pbmNsdWRlL2xpbnV4 L3Jhc3BiZXJyeXBpL3ZjaGlxLmggYi9kcml2ZXJzL3N0YWdpbmcvdmMwNF9zZXJ2aWNlcy9pbmNs dWRlL2xpbnV4L3Jhc3BiZXJyeXBpL3ZjaGlxLmgKaW5kZXggODFkYjdmYjc2ZDZkLi5jOTNmMmYz ZTg3YmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3RhZ2luZy92YzA0X3NlcnZpY2VzL2luY2x1ZGUv bGludXgvcmFzcGJlcnJ5cGkvdmNoaXEuaAorKysgYi9kcml2ZXJzL3N0YWdpbmcvdmMwNF9zZXJ2 aWNlcy9pbmNsdWRlL2xpbnV4L3Jhc3BiZXJyeXBpL3ZjaGlxLmgKQEAgLTQ1LDcgKzQ1LDcgQEAg c3RydWN0IHZjaGlxX2hlYWRlciB7CiAJLyogU2l6ZSBvZiBtZXNzYWdlIGRhdGEuICovCiAJdW5z aWduZWQgaW50IHNpemU7CiAKLQljaGFyIGRhdGFbMF07ICAgICAgICAgICAvKiBtZXNzYWdlICov CisJY2hhciBkYXRhW107ICAgICAgICAgICAvKiBtZXNzYWdlICovCiB9OwogCiBzdHJ1Y3QgdmNo aXFfZWxlbWVudCB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Zpc29yYnVzL3ZidXNjaGFubmVsLmgg Yi9kcml2ZXJzL3Zpc29yYnVzL3ZidXNjaGFubmVsLmgKaW5kZXggNGFhZjY1NjRlYjlmLi45ODcx MWZiNmQ2NmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlzb3JidXMvdmJ1c2NoYW5uZWwuaAorKysg Yi9kcml2ZXJzL3Zpc29yYnVzL3ZidXNjaGFubmVsLmgKQEAgLTg5LDcgKzg5LDcgQEAgc3RydWN0 IHZpc29yX3ZidXNfY2hhbm5lbCB7CiAJc3RydWN0IHZpc29yX3ZidXNfaGVhZGVyaW5mbyBoZHJf aW5mbzsKIAlzdHJ1Y3Qgdmlzb3JfdmJ1c19kZXZpY2VpbmZvIGNocF9pbmZvOwogCXN0cnVjdCB2 aXNvcl92YnVzX2RldmljZWluZm8gYnVzX2luZm87Ci0Jc3RydWN0IHZpc29yX3ZidXNfZGV2aWNl aW5mbyBkZXZfaW5mb1swXTsKKwlzdHJ1Y3Qgdmlzb3JfdmJ1c19kZXZpY2VpbmZvIGRldl9pbmZv W107CiB9IF9fcGFja2VkOwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2ZzL2NpZnMvbnRsbXNzcC5o IGIvZnMvY2lmcy9udGxtc3NwLmgKaW5kZXggMjk4NDU4NDA0MjUyLi41NTc1OGI5ZWM4NzcgMTAw NjQ0Ci0tLSBhL2ZzL2NpZnMvbnRsbXNzcC5oCisrKyBiL2ZzL2NpZnMvbnRsbXNzcC5oCkBAIC0x MDcsNyArMTA3LDcgQEAgc3RydWN0IG5lZ290aWF0ZV9tZXNzYWdlIHsKIAlTRUNVUklUWV9CVUZG RVIgV29ya3N0YXRpb25OYW1lOwkvKiBSRkMgMTAwMSBhbmQgQVNDSUkgKi8KIAlzdHJ1Y3QJbnRs bXNzcF92ZXJzaW9uIFZlcnNpb247CiAJLyogU0VDVVJJVFlfQlVGRkVSICovCi0JY2hhciBEb21h aW5TdHJpbmdbMF07CisJY2hhciBEb21haW5TdHJpbmdbXTsKIAkvKiBmb2xsb3dlZCBieSBXb3Jr c3RhdGlvblN0cmluZyAqLwogfSBfX3BhY2tlZDsKIApkaWZmIC0tZ2l0IGEvZnMvZXh0NC9mYXN0 X2NvbW1pdC5oIGIvZnMvZXh0NC9mYXN0X2NvbW1pdC5oCmluZGV4IDA4M2FkMWNiNzA1YS4uMDdl OGI3MzRjNGZkIDEwMDY0NAotLS0gYS9mcy9leHQ0L2Zhc3RfY29tbWl0LmgKKysrIGIvZnMvZXh0 NC9mYXN0X2NvbW1pdC5oCkBAIC01NSwxMyArNTUsMTMgQEAgc3RydWN0IGV4dDRfZmNfZGVsX3Jh bmdlIHsKIHN0cnVjdCBleHQ0X2ZjX2RlbnRyeV9pbmZvIHsKIAlfX2xlMzIgZmNfcGFyZW50X2lu bzsKIAlfX2xlMzIgZmNfaW5vOwotCV9fdTggZmNfZG5hbWVbMF07CisJX191OCBmY19kbmFtZVtd OwogfTsKIAogLyogVmFsdWUgc3RydWN0dXJlIGZvciBFWFQ0X0ZDX1RBR19JTk9ERSBhbmQgRVhU NF9GQ19UQUdfSU5PREVfUEFSVElBTC4gKi8KIHN0cnVjdCBleHQ0X2ZjX2lub2RlIHsKIAlfX2xl MzIgZmNfaW5vOwotCV9fdTggZmNfcmF3X2lub2RlWzBdOworCV9fdTggZmNfcmF3X2lub2RlW107 CiB9OwogCiAvKiBWYWx1ZSBzdHJ1Y3R1cmUgZm9yIHRhZyBFWFQ0X0ZDX1RBR19UQUlMLiAqLwpk aWZmIC0tZ2l0IGEvZnMva3NtYmQva3NtYmRfbmV0bGluay5oIGIvZnMva3NtYmQva3NtYmRfbmV0 bGluay5oCmluZGV4IDcxYmZiN2RlNDQ3Mi4uZWJlNmNhMDg0NjdhIDEwMDY0NAotLS0gYS9mcy9r c21iZC9rc21iZF9uZXRsaW5rLmgKKysrIGIvZnMva3NtYmQva3NtYmRfbmV0bGluay5oCkBAIC0y NDEsNyArMjQxLDcgQEAgc3RydWN0IGtzbWJkX3JwY19jb21tYW5kIHsKIHN0cnVjdCBrc21iZF9z cG5lZ29fYXV0aGVuX3JlcXVlc3QgewogCV9fdTMyCWhhbmRsZTsKIAlfX3UxNglzcG5lZ29fYmxv Yl9sZW47CS8qIHRoZSBsZW5ndGggb2Ygc3BuZWdvX2Jsb2IgKi8KLQlfX3U4CXNwbmVnb19ibG9i WzBdOwkJLyoKKwlfX3U4CXNwbmVnb19ibG9iW107CQkvKgogCQkJCQkgKiB0aGUgR1NTIHRva2Vu IGZyb20gU2VjdXJpdHlCdWZmZXIgb2YKIAkJCQkJICogU01CMiBTRVNTSU9OIFNFVFVQIHJlcXVl c3QKIAkJCQkJICovCmRpZmYgLS1naXQgYS9mcy9rc21iZC9udGxtc3NwLmggYi9mcy9rc21iZC9u dGxtc3NwLmgKaW5kZXggYWRhZjRjMGNiZThmLi5mMTMxNTNjMThiNGUgMTAwNjQ0Ci0tLSBhL2Zz L2tzbWJkL250bG1zc3AuaAorKysgYi9mcy9rc21iZC9udGxtc3NwLmgKQEAgLTk1LDcgKzk1LDcg QEAgc3RydWN0IHNlY3VyaXR5X2J1ZmZlciB7CiBzdHJ1Y3QgdGFyZ2V0X2luZm8gewogCV9fbGUx NiBUeXBlOwogCV9fbGUxNiBMZW5ndGg7Ci0JX191OCBDb250ZW50WzBdOworCV9fdTggQ29udGVu dFtdOwogfSBfX3BhY2tlZDsKIAogc3RydWN0IG5lZ290aWF0ZV9tZXNzYWdlIHsKQEAgLTEwOCw3 ICsxMDgsNyBAQCBzdHJ1Y3QgbmVnb3RpYXRlX21lc3NhZ2UgewogCSAqIHN0cnVjdCBzZWN1cml0 eV9idWZmZXIgZm9yIHZlcnNpb24gaW5mbyBub3QgcHJlc2VudCBzaW5jZSB3ZQogCSAqIGRvIG5v dCBzZXQgdGhlIHZlcnNpb24gaXMgcHJlc2VudCBmbGFnCiAJICovCi0JY2hhciBEb21haW5TdHJp bmdbMF07CisJY2hhciBEb21haW5TdHJpbmdbXTsKIAkvKiBmb2xsb3dlZCBieSBXb3Jrc3RhdGlv blN0cmluZyAqLwogfSBfX3BhY2tlZDsKIApAQCAtMTQwLDcgKzE0MCw3IEBAIHN0cnVjdCBhdXRo ZW50aWNhdGVfbWVzc2FnZSB7CiAJICogc3RydWN0IHNlY3VyaXR5X2J1ZmZlciBmb3IgdmVyc2lv biBpbmZvIG5vdCBwcmVzZW50IHNpbmNlIHdlCiAJICogZG8gbm90IHNldCB0aGUgdmVyc2lvbiBp cyBwcmVzZW50IGZsYWcKIAkgKi8KLQljaGFyIFVzZXJTdHJpbmdbMF07CisJY2hhciBVc2VyU3Ry aW5nW107CiB9IF9fcGFja2VkOwogCiBzdHJ1Y3QgbnRsbXYyX3Jlc3AgewpkaWZmIC0tZ2l0IGEv ZnMva3NtYmQvc21iMnBkdS5oIGIvZnMva3NtYmQvc21iMnBkdS5oCmluZGV4IDcyNWI4MDBjMjlj OC4uZDQ5NDY4NDI2NTc2IDEwMDY0NAotLS0gYS9mcy9rc21iZC9zbWIycGR1LmgKKysrIGIvZnMv a3NtYmQvc21iMnBkdS5oCkBAIC03NTksNyArNzU5LDcgQEAgc3RydWN0IHNtYjJfZmlsZV9yZW5h bWVfaW5mbyB7IC8qIGVuY29kaW5nIG9mIHJlcXVlc3QgZm9yIGxldmVsIDEwICovCiAJX191OCAg IFJlc2VydmVkWzddOwogCV9fdTY0ICBSb290RGlyZWN0b3J5OyAgLyogTUJaIGZvciBuZXR3b3Jr IG9wZXJhdGlvbnMgKHdoeSBzYXlzIHNwZWM/KSAqLwogCV9fbGUzMiBGaWxlTmFtZUxlbmd0aDsK LQljaGFyICAgRmlsZU5hbWVbMF07ICAgICAvKiBOZXcgbmFtZSB0byBiZSBhc3NpZ25lZCAqLwor CWNoYXIgICBGaWxlTmFtZVtdOyAgICAgLyogTmV3IG5hbWUgdG8gYmUgYXNzaWduZWQgKi8KIH0g X19wYWNrZWQ7IC8qIGxldmVsIDEwIFNldCAqLwogCiBzdHJ1Y3Qgc21iMl9maWxlX2xpbmtfaW5m byB7IC8qIGVuY29kaW5nIG9mIHJlcXVlc3QgZm9yIGxldmVsIDExICovCkBAIC03NjgsNyArNzY4 LDcgQEAgc3RydWN0IHNtYjJfZmlsZV9saW5rX2luZm8geyAvKiBlbmNvZGluZyBvZiByZXF1ZXN0 IGZvciBsZXZlbCAxMSAqLwogCV9fdTggICBSZXNlcnZlZFs3XTsKIAlfX3U2NCAgUm9vdERpcmVj dG9yeTsgIC8qIE1CWiBmb3IgbmV0d29yayBvcGVyYXRpb25zICh3aHkgc2F5cyBzcGVjPykgKi8K IAlfX2xlMzIgRmlsZU5hbWVMZW5ndGg7Ci0JY2hhciAgIEZpbGVOYW1lWzBdOyAgICAgLyogTmFt ZSB0byBiZSBhc3NpZ25lZCB0byBuZXcgbGluayAqLworCWNoYXIgICBGaWxlTmFtZVtdOyAgICAg LyogTmFtZSB0byBiZSBhc3NpZ25lZCB0byBuZXcgbGluayAqLwogfSBfX3BhY2tlZDsgLyogbGV2 ZWwgMTEgU2V0ICovCiAKIC8qCkBAIC04MTAsNyArODEwLDcgQEAgc3RydWN0IHNtYjJfZmlsZV9i YXNpY19pbmZvIHsgLyogZGF0YSBibG9jayBlbmNvZGluZyBvZiByZXNwb25zZSB0byBsZXZlbCAx OCAqLwogCiBzdHJ1Y3Qgc21iMl9maWxlX2FsdF9uYW1lX2luZm8gewogCV9fbGUzMiBGaWxlTmFt ZUxlbmd0aDsKLQljaGFyIEZpbGVOYW1lWzBdOworCWNoYXIgRmlsZU5hbWVbXTsKIH0gX19wYWNr ZWQ7CiAKIHN0cnVjdCBzbWIyX2ZpbGVfc3RyZWFtX2luZm8gewpAQCAtODE4LDcgKzgxOCw3IEBA IHN0cnVjdCBzbWIyX2ZpbGVfc3RyZWFtX2luZm8gewogCV9fbGUzMiAgU3RyZWFtTmFtZUxlbmd0 aDsKIAlfX2xlNjQgU3RyZWFtU2l6ZTsKIAlfX2xlNjQgU3RyZWFtQWxsb2NhdGlvblNpemU7Ci0J Y2hhciAgIFN0cmVhbU5hbWVbMF07CisJY2hhciAgIFN0cmVhbU5hbWVbXTsKIH0gX19wYWNrZWQ7 CiAKIHN0cnVjdCBzbWIyX2ZpbGVfZW9mX2luZm8geyAvKiBlbmNvZGluZyBvZiByZXF1ZXN0IGZv ciBsZXZlbCAxMCAqLwpkaWZmIC0tZ2l0IGEvZnMva3NtYmQvdHJhbnNwb3J0X3JkbWEuYyBiL2Zz L2tzbWJkL3RyYW5zcG9ydF9yZG1hLmMKaW5kZXggM2MxZWMxYWMwYjI3Li45OTc2ZDM5YzZlZDgg MTAwNjQ0Ci0tLSBhL2ZzL2tzbWJkL3RyYW5zcG9ydF9yZG1hLmMKKysrIGIvZnMva3NtYmQvdHJh bnNwb3J0X3JkbWEuYwpAQCAtMjExLDcgKzIxMSw3IEBAIHN0cnVjdCBzbWJfZGlyZWN0X3JkbWFf cndfbXNnIHsKIAlzdHJ1Y3QgY29tcGxldGlvbgkqY29tcGxldGlvbjsKIAlzdHJ1Y3QgcmRtYV9y d19jdHgJcndfY3R4OwogCXN0cnVjdCBzZ190YWJsZQkJc2d0OwotCXN0cnVjdCBzY2F0dGVybGlz dAlzZ19saXN0WzBdOworCXN0cnVjdCBzY2F0dGVybGlzdAlzZ19saXN0W107CiB9OwogCiBzdGF0 aWMgaW5saW5lIGludCBnZXRfYnVmX3BhZ2VfY291bnQodm9pZCAqYnVmLCBpbnQgc2l6ZSkKZGlm ZiAtLWdpdCBhL2ZzL2tzbWJkL3hhdHRyLmggYi9mcy9rc21iZC94YXR0ci5oCmluZGV4IDg4NTdj MDEwOTNkOS4uMTY0OTljYTVjODJkIDEwMDY0NAotLS0gYS9mcy9rc21iZC94YXR0ci5oCisrKyBi L2ZzL2tzbWJkL3hhdHRyLmgKQEAgLTc2LDcgKzc2LDcgQEAgc3RydWN0IHhhdHRyX2FjbF9lbnRy eSB7CiBzdHJ1Y3QgeGF0dHJfc21iX2FjbCB7CiAJaW50IGNvdW50OwogCWludCBuZXh0OwotCXN0 cnVjdCB4YXR0cl9hY2xfZW50cnkgZW50cmllc1swXTsKKwlzdHJ1Y3QgeGF0dHJfYWNsX2VudHJ5 IGVudHJpZXNbXTsKIH07CiAKIC8qIDY0Ynl0ZXMgaGFzaCBpbiB4YXR0cl9udGFjbCBpcyBjb21w dXRlZCB3aXRoIHNoYTI1NiAqLwpkaWZmIC0tZ2l0IGEvZnMveGZzL3NjcnViL2F0dHIuaCBiL2Zz L3hmcy9zY3J1Yi9hdHRyLmgKaW5kZXggMTcxOWUxYzRkYTU5Li4zNTkwZTEwZTNlNjIgMTAwNjQ0 Ci0tLSBhL2ZzL3hmcy9zY3J1Yi9hdHRyLmgKKysrIGIvZnMveGZzL3NjcnViL2F0dHIuaApAQCAt MjQsNyArMjQsNyBAQCBzdHJ1Y3QgeGNoa194YXR0cl9idWYgewogCSAqIHNwYWNlIGJpdG1hcCBm b2xsb3dzIGltbWVkaWF0ZWx5IGFmdGVyOyBhbmQgd2UgaGF2ZSBhIHRoaXJkIGJ1ZmZlcgogCSAq IGZvciBzdG9yaW5nIGludGVybWVkaWF0ZSBiaXRtYXAgcmVzdWx0cy4KIAkgKi8KLQl1aW50OF90 CQkJYnVmWzBdOworCXVpbnQ4X3QJCQlidWZbXTsKIH07CiAKIC8qIEEgcGxhY2UgdG8gc3RvcmUg YXR0cmlidXRlIHZhbHVlcy4gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYWNwaS9hY3RibDIuaCBi L2luY2x1ZGUvYWNwaS9hY3RibDIuaAppbmRleCAxNjg0N2M4ZDlkNWYuLjllZTRkMWIzOTEyNSAx MDA2NDQKLS0tIGEvaW5jbHVkZS9hY3BpL2FjdGJsMi5oCisrKyBiL2luY2x1ZGUvYWNwaS9hY3Ri bDIuaApAQCAtMjMxOSw3ICsyMzE5LDcgQEAgc3RydWN0IGFjcGlfdGFibGVfcmdydCB7CiAJdTE2 IHZlcnNpb247CiAJdTggaW1hZ2VfdHlwZTsKIAl1OCByZXNlcnZlZDsKLQl1OCBpbWFnZVswXTsK Kwl1OCBpbWFnZVtdOwogfTsKIAogLyogaW1hZ2VfdHlwZSB2YWx1ZXMgKi8KZGlmZiAtLWdpdCBh L2luY2x1ZGUvYXNtLWdlbmVyaWMvdGxiLmggYi9pbmNsdWRlL2FzbS1nZW5lcmljL3RsYi5oCmlu ZGV4IDJjNjhhNTQ1ZmZhNy4uZmQ3ZmViNWM3ODk0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1n ZW5lcmljL3RsYi5oCisrKyBiL2luY2x1ZGUvYXNtLWdlbmVyaWMvdGxiLmgKQEAgLTE4MCw3ICsx ODAsNyBAQCBzdHJ1Y3QgbW11X3RhYmxlX2JhdGNoIHsKIAlzdHJ1Y3QgcmN1X2hlYWQJCXJjdTsK ICNlbmRpZgogCXVuc2lnbmVkIGludAkJbnI7Ci0Jdm9pZAkJCSp0YWJsZXNbMF07CisJdm9pZAkJ CSp0YWJsZXNbXTsKIH07CiAKICNkZWZpbmUgTUFYX1RBQkxFX0JBVENICQlcCkBAIC0yMjcsNyAr MjI3LDcgQEAgc3RydWN0IG1tdV9nYXRoZXJfYmF0Y2ggewogCXN0cnVjdCBtbXVfZ2F0aGVyX2Jh dGNoCSpuZXh0OwogCXVuc2lnbmVkIGludAkJbnI7CiAJdW5zaWduZWQgaW50CQltYXg7Ci0Jc3Ry dWN0IHBhZ2UJCSpwYWdlc1swXTsKKwlzdHJ1Y3QgcGFnZQkJKnBhZ2VzW107CiB9OwogCiAjZGVm aW5lIE1BWF9HQVRIRVJfQkFUQ0gJXApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9ncmV5YnVz L2dyZXlidXNfbWFuaWZlc3QuaCBiL2luY2x1ZGUvbGludXgvZ3JleWJ1cy9ncmV5YnVzX21hbmlm ZXN0LmgKaW5kZXggNmU2MmZlNDc4NzEyLi5iZWY5ZWIyMDkzZTkgMTAwNjQ0Ci0tLSBhL2luY2x1 ZGUvbGludXgvZ3JleWJ1cy9ncmV5YnVzX21hbmlmZXN0LmgKKysrIGIvaW5jbHVkZS9saW51eC9n cmV5YnVzL2dyZXlidXNfbWFuaWZlc3QuaApAQCAtMTAwLDcgKzEwMCw3IEBAIGVudW0gewogc3Ry dWN0IGdyZXlidXNfZGVzY3JpcHRvcl9zdHJpbmcgewogCV9fdTgJbGVuZ3RoOwogCV9fdTgJaWQ7 Ci0JX191OAlzdHJpbmdbMF07CisJX191OAlzdHJpbmdbXTsKIH0gX19wYWNrZWQ7CiAKIC8qCkBA IC0xNzUsNyArMTc1LDcgQEAgc3RydWN0IGdyZXlidXNfbWFuaWZlc3RfaGVhZGVyIHsKIAogc3Ry dWN0IGdyZXlidXNfbWFuaWZlc3QgewogCXN0cnVjdCBncmV5YnVzX21hbmlmZXN0X2hlYWRlcgkJ aGVhZGVyOwotCXN0cnVjdCBncmV5YnVzX2Rlc2NyaXB0b3IJCWRlc2NyaXB0b3JzWzBdOworCXN0 cnVjdCBncmV5YnVzX2Rlc2NyaXB0b3IJCWRlc2NyaXB0b3JzW107CiB9IF9fcGFja2VkOwogCiAj ZW5kaWYgLyogX19HUkVZQlVTX01BTklGRVNUX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGlu dXgvZ3JleWJ1cy9oZC5oIGIvaW5jbHVkZS9saW51eC9ncmV5YnVzL2hkLmgKaW5kZXggZDNmYWYw YzFhNTY5Li43MThlMjg1NzA1NGUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvZ3JleWJ1cy9o ZC5oCisrKyBiL2luY2x1ZGUvbGludXgvZ3JleWJ1cy9oZC5oCkBAIC01OCw3ICs1OCw3IEBAIHN0 cnVjdCBnYl9ob3N0X2RldmljZSB7CiAKIAlzdHJ1Y3QgZ2Jfc3ZjICpzdmM7CiAJLyogUHJpdmF0 ZSBkYXRhIGZvciB0aGUgaG9zdCBkcml2ZXIgKi8KLQl1bnNpZ25lZCBsb25nIGhkX3ByaXZbMF0g X19hbGlnbmVkKHNpemVvZihzNjQpKTsKKwl1bnNpZ25lZCBsb25nIGhkX3ByaXZbXSBfX2FsaWdu ZWQoc2l6ZW9mKHM2NCkpOwogfTsKICNkZWZpbmUgdG9fZ2JfaG9zdF9kZXZpY2UoZCkgY29udGFp bmVyX29mKGQsIHN0cnVjdCBnYl9ob3N0X2RldmljZSwgZGV2KQogCmRpZmYgLS1naXQgYS9pbmNs dWRlL2xpbnV4L2dyZXlidXMvbW9kdWxlLmggYi9pbmNsdWRlL2xpbnV4L2dyZXlidXMvbW9kdWxl LmgKaW5kZXggNDdiODM5YWYxNDVkLi4zZWZlMjEzM2FjZmQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUv bGludXgvZ3JleWJ1cy9tb2R1bGUuaAorKysgYi9pbmNsdWRlL2xpbnV4L2dyZXlidXMvbW9kdWxl LmgKQEAgLTIzLDcgKzIzLDcgQEAgc3RydWN0IGdiX21vZHVsZSB7CiAKIAlib29sIGRpc2Nvbm5l Y3RlZDsKIAotCXN0cnVjdCBnYl9pbnRlcmZhY2UgKmludGVyZmFjZXNbMF07CisJc3RydWN0IGdi X2ludGVyZmFjZSAqaW50ZXJmYWNlc1tdOwogfTsKICNkZWZpbmUgdG9fZ2JfbW9kdWxlKGQpIGNv bnRhaW5lcl9vZihkLCBzdHJ1Y3QgZ2JfbW9kdWxlLCBkZXYpCiAKZGlmZiAtLWdpdCBhL2luY2x1 ZGUvbGludXgvaTNjL2NjYy5oIGIvaW5jbHVkZS9saW51eC9pM2MvY2NjLmgKaW5kZXggNzNiMDk4 MmNjNTE5Li5hZDU5YTRhZTYwZDEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvaTNjL2NjYy5o CisrKyBiL2luY2x1ZGUvbGludXgvaTNjL2NjYy5oCkBAIC0xMzIsNyArMTMyLDcgQEAgc3RydWN0 IGkzY19jY2NfZGV2X2Rlc2Mgewogc3RydWN0IGkzY19jY2NfZGVmc2x2cyB7CiAJdTggY291bnQ7 CiAJc3RydWN0IGkzY19jY2NfZGV2X2Rlc2MgbWFzdGVyOwotCXN0cnVjdCBpM2NfY2NjX2Rldl9k ZXNjIHNsYXZlc1swXTsKKwlzdHJ1Y3QgaTNjX2NjY19kZXZfZGVzYyBzbGF2ZXNbXTsKIH0gX19w YWNrZWQ7CiAKIC8qKgpAQCAtMjQwLDcgKzI0MCw3IEBAIHN0cnVjdCBpM2NfY2NjX2JyaWRnZWRf c2xhdmVfZGVzYyB7CiAgKi8KIHN0cnVjdCBpM2NfY2NjX3NldGJyZ3RndCB7CiAJdTggY291bnQ7 Ci0Jc3RydWN0IGkzY19jY2NfYnJpZGdlZF9zbGF2ZV9kZXNjIGJzbGF2ZXNbMF07CisJc3RydWN0 IGkzY19jY2NfYnJpZGdlZF9zbGF2ZV9kZXNjIGJzbGF2ZXNbXTsKIH0gX19wYWNrZWQ7CiAKIC8q KgpAQCAtMzE4LDcgKzMxOCw3IEBAIGVudW0gaTNjX2NjY19zZXR4dGltZV9zdWJjbWQgewogICov CiBzdHJ1Y3QgaTNjX2NjY19zZXR4dGltZSB7CiAJdTggc3ViY21kOwotCXU4IGRhdGFbMF07CisJ dTggZGF0YVtdOwogfSBfX3BhY2tlZDsKIAogI2RlZmluZSBJM0NfQ0NDX0dFVFhUSU1FX1NZTkNf TU9ERQlCSVQoMCkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbWx4NS9tbHg1X2lmY19mcGdh LmggYi9pbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmNfZnBnYS5oCmluZGV4IDA3ZDc3MzIzZjc4 YS4uY2FjNGU5NGFiZDNhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmNf ZnBnYS5oCisrKyBiL2luY2x1ZGUvbGludXgvbWx4NS9tbHg1X2lmY19mcGdhLmgKQEAgLTE4NSw3 ICsxODUsNyBAQCBzdHJ1Y3QgbWx4NV9pZmNfZnBnYV9hY2Nlc3NfcmVnX2JpdHMgewogCiAJdTgg ICAgICAgICBhZGRyZXNzWzB4NDBdOwogCi0JdTggICAgICAgICBkYXRhWzBdWzB4OF07CisJdTgg ICAgICAgICBkYXRhW11bMHg4XTsKIH07CiAKIGVudW0gbWx4NV9pZmNfZnBnYV9xcF9zdGF0ZSB7 CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3BsYXRmb3JtX2RhdGEvYnJjbWZtYWMuaCBiL2lu Y2x1ZGUvbGludXgvcGxhdGZvcm1fZGF0YS9icmNtZm1hYy5oCmluZGV4IDJiNTY3NmZmMzViZS4u ZjkyMmExOTJmZTU4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3BsYXRmb3JtX2RhdGEvYnJj bWZtYWMuaAorKysgYi9pbmNsdWRlL2xpbnV4L3BsYXRmb3JtX2RhdGEvYnJjbWZtYWMuaApAQCAt MTc4LDcgKzE3OCw3IEBAIHN0cnVjdCBicmNtZm1hY19wbGF0Zm9ybV9kYXRhIHsKIAl2b2lkCSgq cG93ZXJfb2ZmKSh2b2lkKTsKIAljaGFyCSpmd19hbHRlcm5hdGl2ZV9wYXRoOwogCWludAlkZXZp Y2VfY291bnQ7Ci0Jc3RydWN0IGJyY21mbWFjX3BkX2RldmljZSBkZXZpY2VzWzBdOworCXN0cnVj dCBicmNtZm1hY19wZF9kZXZpY2UgZGV2aWNlc1tdOwogfTsKIAogCmRpZmYgLS1naXQgYS9pbmNs dWRlL2xpbnV4L3BsYXRmb3JtX2RhdGEvY3Jvc19lY19jb21tYW5kcy5oIGIvaW5jbHVkZS9saW51 eC9wbGF0Zm9ybV9kYXRhL2Nyb3NfZWNfY29tbWFuZHMuaAppbmRleCAyNzFiZDg3YmZmMGEuLjcy ODczNWFlZDk4MCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9wbGF0Zm9ybV9kYXRhL2Nyb3Nf ZWNfY29tbWFuZHMuaAorKysgYi9pbmNsdWRlL2xpbnV4L3BsYXRmb3JtX2RhdGEvY3Jvc19lY19j b21tYW5kcy5oCkBAIC01NjQ0LDcgKzU2NDQsNyBAQCBzdHJ1Y3QgZWNfcmVzcG9uc2VfdHlwZWNf ZGlzY292ZXJ5IHsKIAl1aW50OF90IHN2aWRfY291bnQ7CSAgIC8qIE51bWJlciBvZiBTVklEcyBw YXJ0bmVyIHNlbnQgKi8KIAl1aW50MTZfdCByZXNlcnZlZDsKIAl1aW50MzJfdCBkaXNjb3Zlcnlf dmRvWzZdOyAvKiBNYXggVkRPcyBhbGxvd2VkIGFmdGVyIFZETSBoZWFkZXIgaXMgNiAqLwotCXN0 cnVjdCBzdmlkX21vZGVfaW5mbyBzdmlkc1swXTsKKwlzdHJ1Y3Qgc3ZpZF9tb2RlX2luZm8gc3Zp ZHNbXTsKIH0gX19lY19hbGlnbjE7CiAKIC8qIFVTQiBUeXBlLUMgY29tbWFuZHMgZm9yIEFQLWNv bnRyb2xsZWQgZGV2aWNlIHBvbGljeS4gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L2JsdWV0 b290aC9tZ210LmggYi9pbmNsdWRlL25ldC9ibHVldG9vdGgvbWdtdC5oCmluZGV4IDEwN2IyNWRl YWU2OC4uOTYwN2VjMjg5ZmQwIDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC9ibHVldG9vdGgvbWdt dC5oCisrKyBiL2luY2x1ZGUvbmV0L2JsdWV0b290aC9tZ210LmgKQEAgLTY5Niw3ICs2OTYsNyBA QCBzdHJ1Y3QgbWdtdF9jcF9zZXRfYmxvY2tlZF9rZXlzIHsKICNkZWZpbmUgTUdNVF9SRUFEX0NP TlRST0xMRVJfQ0FQX1NJWkUJMAogc3RydWN0IG1nbXRfcnBfcmVhZF9jb250cm9sbGVyX2NhcCB7 CiAJX19sZTE2ICAgY2FwX2xlbjsKLQlfX3U4ICAgICBjYXBbMF07CisJX191OCAgICAgY2FwW107 CiB9IF9fcGFja2VkOwogCiAjZGVmaW5lIE1HTVRfT1BfUkVBRF9FWFBfRkVBVFVSRVNfSU5GTwkw eDAwNDkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L2lvYW02LmggYi9pbmNsdWRlL25ldC9pb2Ft Ni5oCmluZGV4IDNmNDViYTM3YTJjNi4uNzgxZDJkOGIyZjI5IDEwMDY0NAotLS0gYS9pbmNsdWRl L25ldC9pb2FtNi5oCisrKyBiL2luY2x1ZGUvbmV0L2lvYW02LmgKQEAgLTM1LDcgKzM1LDcgQEAg c3RydWN0IGlvYW02X3NjaGVtYSB7CiAJaW50IGxlbjsKIAlfX2JlMzIgaGRyOwogCi0JdTggZGF0 YVswXTsKKwl1OCBkYXRhW107CiB9OwogCiBzdHJ1Y3QgaW9hbTZfcGVybmV0X2RhdGEgewpkaWZm IC0tZ2l0IGEvaW5jbHVkZS9zb3VuZC9zb2YvY2hhbm5lbF9tYXAuaCBiL2luY2x1ZGUvc291bmQv c29mL2NoYW5uZWxfbWFwLmgKaW5kZXggZmQzYTMwZmNmNzU2Li5kMzYzZjBjYTY5NzkgMTAwNjQ0 Ci0tLSBhL2luY2x1ZGUvc291bmQvc29mL2NoYW5uZWxfbWFwLmgKKysrIGIvaW5jbHVkZS9zb3Vu ZC9zb2YvY2hhbm5lbF9tYXAuaApAQCAtMzksNyArMzksNyBAQCBzdHJ1Y3Qgc29mX2lwY19jaGFu bmVsX21hcCB7CiAJdWludDMyX3QgZXh0X2lkOwogCXVpbnQzMl90IGNoX21hc2s7CiAJdWludDMy X3QgcmVzZXJ2ZWQ7Ci0JaW50MzJfdCBjaF9jb2VmZnNbMF07CisJaW50MzJfdCBjaF9jb2VmZnNb XTsKIH0gX19wYWNrZWQ7CiAKIC8qKgpAQCAtNTUsNyArNTUsNyBAQCBzdHJ1Y3Qgc29mX2lwY19z dHJlYW1fbWFwIHsKIAlzdHJ1Y3Qgc29mX2lwY19jbWRfaGRyIGhkcjsKIAl1aW50MzJfdCBudW1f Y2hfbWFwOwogCXVpbnQzMl90IHJlc2VydmVkWzNdOwotCXN0cnVjdCBzb2ZfaXBjX2NoYW5uZWxf bWFwIGNoX21hcFswXTsKKwlzdHJ1Y3Qgc29mX2lwY19jaGFubmVsX21hcCBjaF9tYXBbXTsKIH0g X19wYWNrZWQ7CiAKICNlbmRpZiAvKiBfX0lQQ19DSEFOTkVMX01BUF9IX18gKi8KZGlmZiAtLWdp dCBhL3NjcmlwdHMvZHRjL2xpYmZkdC9mZHQuaCBiL3NjcmlwdHMvZHRjL2xpYmZkdC9mZHQuaApp bmRleCBmMmU2ODgwN2YyNzcuLjBjOTFhYTdmNjdiNSAxMDA2NDQKLS0tIGEvc2NyaXB0cy9kdGMv bGliZmR0L2ZkdC5oCisrKyBiL3NjcmlwdHMvZHRjL2xpYmZkdC9mZHQuaApAQCAtMzUsMTQgKzM1 LDE0IEBAIHN0cnVjdCBmZHRfcmVzZXJ2ZV9lbnRyeSB7CiAKIHN0cnVjdCBmZHRfbm9kZV9oZWFk ZXIgewogCWZkdDMyX3QgdGFnOwotCWNoYXIgbmFtZVswXTsKKwljaGFyIG5hbWVbXTsKIH07CiAK IHN0cnVjdCBmZHRfcHJvcGVydHkgewogCWZkdDMyX3QgdGFnOwogCWZkdDMyX3QgbGVuOwogCWZk dDMyX3QgbmFtZW9mZjsKLQljaGFyIGRhdGFbMF07CisJY2hhciBkYXRhW107CiB9OwogCiAjZW5k aWYgLyogIV9fQVNTRU1CTFkgKi8KZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9pbnRlbC9hdG9tL3Nz dC1tZmxkLWRzcC5oIGIvc291bmQvc29jL2ludGVsL2F0b20vc3N0LW1mbGQtZHNwLmgKaW5kZXgg OGQ5ZTI5YjE2ZTU3Li5jOGYwODE2ZWRiNTMgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9pbnRlbC9h dG9tL3NzdC1tZmxkLWRzcC5oCisrKyBiL3NvdW5kL3NvYy9pbnRlbC9hdG9tL3NzdC1tZmxkLWRz cC5oCkBAIC00MjcsNyArNDI3LDcgQEAgc3RydWN0IHNuZF9zc3RfZHJvcF9yZXNwb25zZSB7CiAK IHN0cnVjdCBzbmRfc3N0X2FzeW5jX21zZyB7CiAJdTMyIG1zZ19pZDsgLyogQXN5bmMgbXNnIGlk ICovCi0JdTMyIHBheWxvYWRbMF07CisJdTMyIHBheWxvYWRbXTsKIH07CiAKIHN0cnVjdCBzbmRf c3N0X2FzeW5jX2Vycl9tc2cgewpAQCAtNTE0LDcgKzUxNCw3IEBAIHN0cnVjdCBzbmRfc3N0X2J5 dGVzX3YyIHsKIAl1OCBwaXBlX2lkOwogCXU4IHJzdmQ7CiAJdTE2IGxlbjsKLQljaGFyIGJ5dGVz WzBdOworCWNoYXIgYnl0ZXNbXTsKIH07CiAKICNkZWZpbmUgTUFYX1ZUU1ZfRklMRVMgMgpkaWZm IC0tZ2l0IGEvc291bmQvc29jL2ludGVsL3NreWxha2Uvc2tsLXRvcG9sb2d5LmggYi9zb3VuZC9z b2MvaW50ZWwvc2t5bGFrZS9za2wtdG9wb2xvZ3kuaAppbmRleCAyMjk2MzYzNGZiZWEuLmE1YmNj ZjJmY2Q4OCAxMDA2NDQKLS0tIGEvc291bmQvc29jL2ludGVsL3NreWxha2Uvc2tsLXRvcG9sb2d5 LmgKKysrIGIvc291bmQvc29jL2ludGVsL3NreWxha2Uvc2tsLXRvcG9sb2d5LmgKQEAgLTE2NCw3 ICsxNjQsNyBAQCBzdHJ1Y3Qgc2tsX2Jhc2VfY2ZnX2V4dCB7CiAJdTggcmVzZXJ2ZWRbOF07CiAJ dTMyIHByaXZfcGFyYW1fbGVuZ3RoOwogCS8qIElucHV0IHBpbiBmb3JtYXRzIGZvbGxvd2VkIGJ5 IG91dHB1dCBvbmVzLiAqLwotCXN0cnVjdCBza2xfcGluX2Zvcm1hdCBwaW5zX2ZtdFswXTsKKwlz dHJ1Y3Qgc2tsX3Bpbl9mb3JtYXQgcGluc19mbXRbXTsKIH0gX19wYWNrZWQ7CiAKIHN0cnVjdCBz a2xfYWxnb19jZmcgewpkaWZmIC0tZ2l0IGEvdG9vbHMvbGliL3BlcmYvaW5jbHVkZS9wZXJmL2V2 ZW50LmggYi90b29scy9saWIvcGVyZi9pbmNsdWRlL3BlcmYvZXZlbnQuaAppbmRleCA3NWVlMzg1 ZmIwNzguLmU3NzU4NzA3Y2FkZCAxMDA2NDQKLS0tIGEvdG9vbHMvbGliL3BlcmYvaW5jbHVkZS9w ZXJmL2V2ZW50LmgKKysrIGIvdG9vbHMvbGliL3BlcmYvaW5jbHVkZS9wZXJmL2V2ZW50LmgKQEAg LTI0MCw3ICsyNDAsNyBAQCBzdHJ1Y3QgaWRfaW5kZXhfZW50cnkgewogc3RydWN0IHBlcmZfcmVj b3JkX2lkX2luZGV4IHsKIAlzdHJ1Y3QgcGVyZl9ldmVudF9oZWFkZXIgaGVhZGVyOwogCV9fdTY0 CQkJIG5yOwotCXN0cnVjdCBpZF9pbmRleF9lbnRyeQkgZW50cmllc1swXTsKKwlzdHJ1Y3QgaWRf aW5kZXhfZW50cnkJIGVudHJpZXNbXTsKIH07CiAKIHN0cnVjdCBwZXJmX3JlY29yZF9hdXh0cmFj ZV9pbmZvIHsKLS0gCjIuMjcuMAoKCi0tIApsaW51eC1pM2MgbWFpbGluZyBsaXN0CmxpbnV4LWkz Y0BsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4v bGlzdGluZm8vbGludXgtaTNjCg== From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Gustavo A. R. Silva" Date: Tue, 15 Feb 2022 17:47:43 +0000 Subject: [PATCH][next] treewide: Replace zero-length arrays with flexible-array members Message-Id: <20220215174743.GA878920@embeddedor> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit To: GR-QLogic-Storage-Upstream@marvell.com, linux-alpha@vger.kernel.org, linux-kernel@vger.kernel.org, linux-ia64@vger.kernel.org, linux-s390@vger.kernel.org, linux-sh@vger.kernel.org, sparclinux@vger.kernel.org, linux-um@lists.infradead.org, linux-xtensa@linux-xtensa.org, linux-crypto@vger.kernel.org, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, nouveau@lists.freedesktop.org, coresight@lists.linaro.org, linux-arm-kernel@lists.infradead.org, bcm-kernel-feedback-list@broadcom.com, netdev@vger.kernel.org, linux-omap@vger.kernel.org, linux-scsi@vger.kernel.org, target-devel@vger.kernel.org, mpi3mr-linuxdrv.pdl@broadcom.com, linux-staging@lists.linux.dev, linux-rpi-kernel@lists.infradead.org, sparmaintainer@unisys.com, linux-cifs@vger.kernel.org, samba-technical@lists.samba.org, linux-ext4@vger.kernel.org, linux-acpi@vger.kernel.org, devel@acpica.org, linux-arch@vger.kernel.org, linux-mm@kvack.org, greybus-dev@lists.linaro.org, linux-i3c@lists.infradead.org, linux-rdma@vger.kernel.org, linux-bluetooth@vger.kernel.org, alsa-devel@alsa-project.org, devicetree@vger.kernel.org, linux-perf-users@vger.kernel.org, "Gustavo A. R. Silva" , linux-hardening@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: (next-20220214$ 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 ]; }; UAPI and wireless changes were intentionally excluded from this patch and will be sent out separately. [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 Signed-off-by: Gustavo A. R. Silva --- Hi all, I'm expecting to carry this patch in my tree, so it'd be great to get some Acks. And given the size of the patch, I'm only sending this to mailing lists. Thanks! arch/alpha/include/asm/hwrpb.h | 2 +- arch/ia64/include/asm/sal.h | 2 +- arch/s390/include/asm/ccwgroup.h | 2 +- arch/s390/include/asm/chsc.h | 2 +- arch/s390/include/asm/eadm.h | 2 +- arch/s390/include/asm/fcx.h | 4 ++-- arch/s390/include/asm/idals.h | 2 +- arch/s390/include/asm/sclp.h | 2 +- arch/s390/include/asm/sysinfo.h | 6 +++--- arch/sh/include/asm/thread_info.h | 2 +- arch/sparc/include/asm/vio.h | 10 +++++----- arch/um/include/shared/net_kern.h | 2 +- arch/x86/include/asm/microcode_amd.h | 2 +- arch/x86/include/asm/microcode_intel.h | 4 ++-- arch/x86/include/asm/pci.h | 2 +- arch/x86/include/asm/pci_x86.h | 2 +- arch/xtensa/include/asm/bootparam.h | 2 +- drivers/crypto/caam/pdb.h | 2 +- drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c | 2 +- drivers/gpu/drm/nouveau/include/nvfw/hs.h | 2 +- .../hwtracing/coresight/coresight-config.h | 2 +- drivers/misc/bcm-vk/bcm_vk.h | 2 +- .../misc/habanalabs/include/common/cpucp_if.h | 6 +++--- .../habanalabs/include/gaudi/gaudi_packets.h | 4 ++-- .../habanalabs/include/goya/goya_packets.h | 4 ++-- .../net/ethernet/freescale/enetc/enetc_hw.h | 2 +- drivers/net/ethernet/i825xx/sun3_82586.h | 2 +- .../net/ethernet/marvell/octeontx2/af/npc.h | 6 +++--- drivers/net/ethernet/qlogic/qed/qed_mfw_hsi.h | 2 +- drivers/net/ethernet/ti/davinci_mdio.c | 2 +- drivers/scsi/dpt/dpti_i2o.h | 2 +- drivers/scsi/elx/libefc_sli/sli4.h | 20 +++++++++---------- drivers/scsi/mpi3mr/mpi3mr.h | 2 +- drivers/scsi/qla2xxx/qla_bsg.h | 4 ++-- drivers/scsi/qla2xxx/qla_def.h | 2 +- drivers/scsi/qla2xxx/qla_edif_bsg.h | 4 ++-- drivers/scsi/qla2xxx/qla_fw.h | 2 +- drivers/scsi/qla4xxx/ql4_fw.h | 2 +- drivers/staging/r8188eu/include/ieee80211.h | 6 +++--- drivers/staging/r8188eu/include/rtw_cmd.h | 10 +++++----- drivers/staging/rtl8712/rtl871x_cmd.h | 8 ++++---- drivers/staging/rtl8723bs/include/ieee80211.h | 2 +- drivers/staging/rtl8723bs/include/rtw_cmd.h | 2 +- .../include/linux/raspberrypi/vchiq.h | 2 +- drivers/visorbus/vbuschannel.h | 2 +- fs/cifs/ntlmssp.h | 2 +- fs/ext4/fast_commit.h | 4 ++-- fs/ksmbd/ksmbd_netlink.h | 2 +- fs/ksmbd/ntlmssp.h | 6 +++--- fs/ksmbd/smb2pdu.h | 8 ++++---- fs/ksmbd/transport_rdma.c | 2 +- fs/ksmbd/xattr.h | 2 +- fs/xfs/scrub/attr.h | 2 +- include/acpi/actbl2.h | 2 +- include/asm-generic/tlb.h | 4 ++-- include/linux/greybus/greybus_manifest.h | 4 ++-- include/linux/greybus/hd.h | 2 +- include/linux/greybus/module.h | 2 +- include/linux/i3c/ccc.h | 6 +++--- include/linux/mlx5/mlx5_ifc_fpga.h | 2 +- include/linux/platform_data/brcmfmac.h | 2 +- .../linux/platform_data/cros_ec_commands.h | 2 +- include/net/bluetooth/mgmt.h | 2 +- include/net/ioam6.h | 2 +- include/sound/sof/channel_map.h | 4 ++-- scripts/dtc/libfdt/fdt.h | 4 ++-- sound/soc/intel/atom/sst-mfld-dsp.h | 4 ++-- sound/soc/intel/skylake/skl-topology.h | 2 +- tools/lib/perf/include/perf/event.h | 2 +- 69 files changed, 116 insertions(+), 116 deletions(-) diff --git a/arch/alpha/include/asm/hwrpb.h b/arch/alpha/include/asm/hwrpb.h index d8180e527a1e..fc76f36265ad 100644 --- a/arch/alpha/include/asm/hwrpb.h +++ b/arch/alpha/include/asm/hwrpb.h @@ -152,7 +152,7 @@ struct memdesc_struct { unsigned long chksum; unsigned long optional_pa; unsigned long numclusters; - struct memclust_struct cluster[0]; + struct memclust_struct cluster[]; }; struct dsr_struct { diff --git a/arch/ia64/include/asm/sal.h b/arch/ia64/include/asm/sal.h index 78f4f7b40435..22749a201e92 100644 --- a/arch/ia64/include/asm/sal.h +++ b/arch/ia64/include/asm/sal.h @@ -420,7 +420,7 @@ typedef struct sal_log_processor_info { * The rest of this structure consists of variable-length arrays, which can't be * expressed in C. */ - sal_log_mod_error_info_t info[0]; + sal_log_mod_error_info_t info[]; /* * This is what the rest looked like if C supported variable-length arrays: * diff --git a/arch/s390/include/asm/ccwgroup.h b/arch/s390/include/asm/ccwgroup.h index aa995d91cd1d..11d2fb3de4f5 100644 --- a/arch/s390/include/asm/ccwgroup.h +++ b/arch/s390/include/asm/ccwgroup.h @@ -25,7 +25,7 @@ struct ccwgroup_device { unsigned int count; struct device dev; struct work_struct ungroup_work; - struct ccw_device *cdev[0]; + struct ccw_device *cdev[]; }; /** diff --git a/arch/s390/include/asm/chsc.h b/arch/s390/include/asm/chsc.h index ae4d2549cd67..bb48ea380c0d 100644 --- a/arch/s390/include/asm/chsc.h +++ b/arch/s390/include/asm/chsc.h @@ -63,7 +63,7 @@ struct chsc_pnso_area { struct chsc_header response; u32:32; struct chsc_pnso_naihdr naihdr; - struct chsc_pnso_naid_l2 entries[0]; + struct chsc_pnso_naid_l2 entries[]; } __packed __aligned(PAGE_SIZE); #endif /* _ASM_S390_CHSC_H */ diff --git a/arch/s390/include/asm/eadm.h b/arch/s390/include/asm/eadm.h index 445fe4c8184a..06f795855af7 100644 --- a/arch/s390/include/asm/eadm.h +++ b/arch/s390/include/asm/eadm.h @@ -78,7 +78,7 @@ struct aob { struct aob_rq_header { struct scm_device *scmdev; - char data[0]; + char data[]; }; struct scm_device { diff --git a/arch/s390/include/asm/fcx.h b/arch/s390/include/asm/fcx.h index cff0749e9657..b8a028a36173 100644 --- a/arch/s390/include/asm/fcx.h +++ b/arch/s390/include/asm/fcx.h @@ -214,7 +214,7 @@ struct dcw_intrg_data { u32 :32; u64 time; u64 prog_id; - u8 prog_data[0]; + u8 prog_data[]; } __attribute__ ((packed)); #define DCW_FLAGS_CC (1 << (7 - 1)) @@ -241,7 +241,7 @@ struct dcw { u32 :8; u32 cd_count:8; u32 count; - u8 cd[0]; + u8 cd[]; } __attribute__ ((packed)); #define TCCB_FORMAT_DEFAULT 0x7f diff --git a/arch/s390/include/asm/idals.h b/arch/s390/include/asm/idals.h index 6fb7aced104a..40eae2c08d61 100644 --- a/arch/s390/include/asm/idals.h +++ b/arch/s390/include/asm/idals.h @@ -108,7 +108,7 @@ clear_normalized_cda(struct ccw1 * ccw) struct idal_buffer { size_t size; size_t page_order; - void *data[0]; + void *data[]; }; /* diff --git a/arch/s390/include/asm/sclp.h b/arch/s390/include/asm/sclp.h index c68ea35de498..22b3213c6c9d 100644 --- a/arch/s390/include/asm/sclp.h +++ b/arch/s390/include/asm/sclp.h @@ -112,7 +112,7 @@ struct zpci_report_error_header { * (OpenCrypto Successful Diagnostics Execution) */ u16 length; /* Length of Subsequent Data (up to 4K – SCLP header */ - u8 data[0]; /* Subsequent Data passed verbatim to SCLP ET 24 */ + u8 data[]; /* Subsequent Data passed verbatim to SCLP ET 24 */ } __packed; extern char *sclp_early_sccb; diff --git a/arch/s390/include/asm/sysinfo.h b/arch/s390/include/asm/sysinfo.h index fe7b3f8f0791..ab1c6316055c 100644 --- a/arch/s390/include/asm/sysinfo.h +++ b/arch/s390/include/asm/sysinfo.h @@ -67,12 +67,12 @@ struct sysinfo_1_2_2 { unsigned short cpus_configured; unsigned short cpus_standby; unsigned short cpus_reserved; - unsigned short adjustment[0]; + unsigned short adjustment[]; }; struct sysinfo_1_2_2_extension { unsigned int alt_capability; - unsigned short alt_adjustment[0]; + unsigned short alt_adjustment[]; }; struct sysinfo_2_2_1 { @@ -181,7 +181,7 @@ struct sysinfo_15_1_x { unsigned char reserved1; unsigned char mnest; unsigned char reserved2[4]; - union topology_entry tle[0]; + union topology_entry tle[]; }; int stsi(void *sysinfo, int fc, int sel1, int sel2); diff --git a/arch/sh/include/asm/thread_info.h b/arch/sh/include/asm/thread_info.h index 598d0184ffea..3a2d50d61fc9 100644 --- a/arch/sh/include/asm/thread_info.h +++ b/arch/sh/include/asm/thread_info.h @@ -33,7 +33,7 @@ struct thread_info { mm_segment_t addr_limit; /* thread address space */ unsigned long previous_sp; /* sp of previous stack in case of nested IRQ stacks */ - __u8 supervisor_stack[0]; + __u8 supervisor_stack[]; }; #endif diff --git a/arch/sparc/include/asm/vio.h b/arch/sparc/include/asm/vio.h index 8a1a83bbb6d5..2d7bdf665fd3 100644 --- a/arch/sparc/include/asm/vio.h +++ b/arch/sparc/include/asm/vio.h @@ -70,7 +70,7 @@ struct vio_dring_register { #define VIO_RX_DRING_DATA 0x0004 u16 resv; u32 num_cookies; - struct ldc_trans_cookie cookies[0]; + struct ldc_trans_cookie cookies[]; }; struct vio_dring_unregister { @@ -161,7 +161,7 @@ struct vio_disk_desc { u64 size; u32 ncookies; u32 resv2; - struct ldc_trans_cookie cookies[0]; + struct ldc_trans_cookie cookies[]; }; #define VIO_DISK_VNAME_LEN 8 @@ -200,13 +200,13 @@ struct vio_disk_devid { u16 resv; u16 type; u32 len; - char id[0]; + char id[]; }; struct vio_disk_efi { u64 lba; u64 len; - char data[0]; + char data[]; }; /* VIO net specific structures and defines */ @@ -246,7 +246,7 @@ struct vio_net_desc { struct vio_dring_hdr hdr; u32 size; u32 ncookies; - struct ldc_trans_cookie cookies[0]; + struct ldc_trans_cookie cookies[]; }; struct vio_net_dext { diff --git a/arch/um/include/shared/net_kern.h b/arch/um/include/shared/net_kern.h index 441a8a309329..67b2e9a1f2e5 100644 --- a/arch/um/include/shared/net_kern.h +++ b/arch/um/include/shared/net_kern.h @@ -39,7 +39,7 @@ struct uml_net_private { void (*add_address)(unsigned char *, unsigned char *, void *); void (*delete_address)(unsigned char *, unsigned char *, void *); - char user[0]; + char user[]; }; struct net_kern_info { diff --git a/arch/x86/include/asm/microcode_amd.h b/arch/x86/include/asm/microcode_amd.h index 7063b5a43220..ac31f9140d07 100644 --- a/arch/x86/include/asm/microcode_amd.h +++ b/arch/x86/include/asm/microcode_amd.h @@ -38,7 +38,7 @@ struct microcode_header_amd { struct microcode_amd { struct microcode_header_amd hdr; - unsigned int mpb[0]; + unsigned int mpb[]; }; #define PATCH_MAX_SIZE (3 * PAGE_SIZE) diff --git a/arch/x86/include/asm/microcode_intel.h b/arch/x86/include/asm/microcode_intel.h index d85a07d7154f..4c92cea7e4b5 100644 --- a/arch/x86/include/asm/microcode_intel.h +++ b/arch/x86/include/asm/microcode_intel.h @@ -19,7 +19,7 @@ struct microcode_header_intel { struct microcode_intel { struct microcode_header_intel hdr; - unsigned int bits[0]; + unsigned int bits[]; }; /* microcode format is extended from prescott processors */ @@ -33,7 +33,7 @@ struct extended_sigtable { unsigned int count; unsigned int cksum; unsigned int reserved[3]; - struct extended_signature sigs[0]; + struct extended_signature sigs[]; }; #define DEFAULT_UCODE_DATASIZE (2000) diff --git a/arch/x86/include/asm/pci.h b/arch/x86/include/asm/pci.h index d2c76c8d8cfd..f3fd5928bcbb 100644 --- a/arch/x86/include/asm/pci.h +++ b/arch/x86/include/asm/pci.h @@ -135,7 +135,7 @@ struct pci_setup_rom { unsigned long bus; unsigned long device; unsigned long function; - uint8_t romdata[0]; + uint8_t romdata[]; }; #endif /* _ASM_X86_PCI_H */ diff --git a/arch/x86/include/asm/pci_x86.h b/arch/x86/include/asm/pci_x86.h index 490411dba438..3fb6fc596095 100644 --- a/arch/x86/include/asm/pci_x86.h +++ b/arch/x86/include/asm/pci_x86.h @@ -87,7 +87,7 @@ struct irq_routing_table { u32 miniport_data; /* Crap */ u8 rfu[11]; u8 checksum; /* Modulo 256 checksum must give 0 */ - struct irq_info slots[0]; + struct irq_info slots[]; } __attribute__((packed)); extern unsigned int pcibios_irq_mask; diff --git a/arch/xtensa/include/asm/bootparam.h b/arch/xtensa/include/asm/bootparam.h index 892aab399ac8..6333bd1eb9d2 100644 --- a/arch/xtensa/include/asm/bootparam.h +++ b/arch/xtensa/include/asm/bootparam.h @@ -34,7 +34,7 @@ typedef struct bp_tag { unsigned short id; /* tag id */ unsigned short size; /* size of this record excluding the structure*/ - unsigned long data[0]; /* data */ + unsigned long data[]; /* data */ } bp_tag_t; struct bp_meminfo { diff --git a/drivers/crypto/caam/pdb.h b/drivers/crypto/caam/pdb.h index 8ccc22075043..4b1bcf53f7ac 100644 --- a/drivers/crypto/caam/pdb.h +++ b/drivers/crypto/caam/pdb.h @@ -144,7 +144,7 @@ struct ipsec_encap_pdb { }; u32 spi; u32 ip_hdr_len; - u32 ip_hdr[0]; + u32 ip_hdr[]; }; /** diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c b/drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c index 1a1edae67e4e..3acee0060e23 100644 --- a/drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c @@ -51,7 +51,7 @@ struct __guc_ads_blob { struct guc_gt_system_info system_info; struct guc_engine_usage engine_usage; /* From here on, location is dynamic! Refer to above diagram. */ - struct guc_mmio_reg regset[0]; + struct guc_mmio_reg regset[]; } __packed; static u32 guc_ads_regset_size(struct intel_guc *guc) diff --git a/drivers/gpu/drm/nouveau/include/nvfw/hs.h b/drivers/gpu/drm/nouveau/include/nvfw/hs.h index 64d0d32200c2..b53bbc4cd130 100644 --- a/drivers/gpu/drm/nouveau/include/nvfw/hs.h +++ b/drivers/gpu/drm/nouveau/include/nvfw/hs.h @@ -23,7 +23,7 @@ struct nvfw_hs_load_header { u32 data_dma_base; u32 data_size; u32 num_apps; - u32 apps[0]; + u32 apps[]; }; const struct nvfw_hs_load_header * diff --git a/drivers/hwtracing/coresight/coresight-config.h b/drivers/hwtracing/coresight/coresight-config.h index 9bd44b940add..2e1670523461 100644 --- a/drivers/hwtracing/coresight/coresight-config.h +++ b/drivers/hwtracing/coresight/coresight-config.h @@ -231,7 +231,7 @@ struct cscfg_config_csdev { bool enabled; struct list_head node; int nr_feat; - struct cscfg_feature_csdev *feats_csdev[0]; + struct cscfg_feature_csdev *feats_csdev[]; }; /** diff --git a/drivers/misc/bcm-vk/bcm_vk.h b/drivers/misc/bcm-vk/bcm_vk.h index a1338f375589..25d51222eedf 100644 --- a/drivers/misc/bcm-vk/bcm_vk.h +++ b/drivers/misc/bcm-vk/bcm_vk.h @@ -311,7 +311,7 @@ struct bcm_vk_peer_log { u32 wr_idx; u32 buf_size; u32 mask; - char data[0]; + char data[]; }; /* max buf size allowed */ diff --git a/drivers/misc/habanalabs/include/common/cpucp_if.h b/drivers/misc/habanalabs/include/common/cpucp_if.h index 737c39f33f05..f9c4acc9bf5a 100644 --- a/drivers/misc/habanalabs/include/common/cpucp_if.h +++ b/drivers/misc/habanalabs/include/common/cpucp_if.h @@ -540,19 +540,19 @@ struct cpucp_packet { struct cpucp_unmask_irq_arr_packet { struct cpucp_packet cpucp_pkt; __le32 length; - __le32 irqs[0]; + __le32 irqs[]; }; struct cpucp_nic_status_packet { struct cpucp_packet cpucp_pkt; __le32 length; - __le32 data[0]; + __le32 data[]; }; struct cpucp_array_data_packet { struct cpucp_packet cpucp_pkt; __le32 length; - __le32 data[0]; + __le32 data[]; }; enum cpucp_packet_rc { diff --git a/drivers/misc/habanalabs/include/gaudi/gaudi_packets.h b/drivers/misc/habanalabs/include/gaudi/gaudi_packets.h index 6e097ace2e96..66fc083a7c6a 100644 --- a/drivers/misc/habanalabs/include/gaudi/gaudi_packets.h +++ b/drivers/misc/habanalabs/include/gaudi/gaudi_packets.h @@ -54,7 +54,7 @@ struct gaudi_packet { /* The rest of the packet data follows. Use the corresponding * packet_XXX struct to deference the data, based on packet type */ - u8 contents[0]; + u8 contents[]; }; struct packet_nop { @@ -75,7 +75,7 @@ struct packet_wreg32 { struct packet_wreg_bulk { __le32 size64; __le32 ctl; - __le64 values[0]; /* data starts here */ + __le64 values[]; /* data starts here */ }; #define GAUDI_PKT_LONG_CTL_OP_SHIFT 20 diff --git a/drivers/misc/habanalabs/include/goya/goya_packets.h b/drivers/misc/habanalabs/include/goya/goya_packets.h index ef54bad20509..50ce5175b63a 100644 --- a/drivers/misc/habanalabs/include/goya/goya_packets.h +++ b/drivers/misc/habanalabs/include/goya/goya_packets.h @@ -62,7 +62,7 @@ struct goya_packet { /* The rest of the packet data follows. Use the corresponding * packet_XXX struct to deference the data, based on packet type */ - u8 contents[0]; + u8 contents[]; }; struct packet_nop { @@ -86,7 +86,7 @@ struct packet_wreg32 { struct packet_wreg_bulk { __le32 size64; __le32 ctl; - __le64 values[0]; /* data starts here */ + __le64 values[]; /* data starts here */ }; struct packet_msg_long { diff --git a/drivers/net/ethernet/freescale/enetc/enetc_hw.h b/drivers/net/ethernet/freescale/enetc/enetc_hw.h index 1514e6a4a3ff..ce5b677e8c2f 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc_hw.h +++ b/drivers/net/ethernet/freescale/enetc/enetc_hw.h @@ -881,7 +881,7 @@ struct sgcl_data { u32 bth; u32 ct; u32 cte; - struct sgce sgcl[0]; + struct sgce sgcl[]; }; #define ENETC_CBDR_FMI_MR BIT(0) diff --git a/drivers/net/ethernet/i825xx/sun3_82586.h b/drivers/net/ethernet/i825xx/sun3_82586.h index 79aef681ac85..451cb3d26cb5 100644 --- a/drivers/net/ethernet/i825xx/sun3_82586.h +++ b/drivers/net/ethernet/i825xx/sun3_82586.h @@ -250,7 +250,7 @@ struct mcsetup_cmd_struct unsigned short cmd_cmd; unsigned short cmd_link; unsigned short mc_cnt; /* number of bytes in the MC-List */ - unsigned char mc_list[0][6]; /* pointer to 6 bytes entries */ + unsigned char mc_list[][6]; /* pointer to 6 bytes entries */ }; /* diff --git a/drivers/net/ethernet/marvell/octeontx2/af/npc.h b/drivers/net/ethernet/marvell/octeontx2/af/npc.h index 77fd39e2c8db..9b6e587e78b4 100644 --- a/drivers/net/ethernet/marvell/octeontx2/af/npc.h +++ b/drivers/net/ethernet/marvell/octeontx2/af/npc.h @@ -455,7 +455,7 @@ struct npc_coalesced_kpu_prfl { u8 name[NPC_NAME_LEN]; /* KPU Profile name */ u64 version; /* KPU firmware/profile version */ u8 num_prfl; /* No of NPC profiles. */ - u16 prfl_sz[0]; + u16 prfl_sz[]; }; struct npc_mcam_kex { @@ -482,7 +482,7 @@ struct npc_kpu_fwdata { * struct npc_kpu_profile_cam[entries]; * struct npc_kpu_profile_action[entries]; */ - u8 data[0]; + u8 data[]; } __packed; struct npc_lt_def { @@ -572,7 +572,7 @@ struct npc_kpu_profile_fwdata { * Custom KPU CAM and ACTION configuration entries. * struct npc_kpu_fwdata kpu[kpus]; */ - u8 data[0]; + u8 data[]; } __packed; struct rvu_npc_mcam_rule { diff --git a/drivers/net/ethernet/qlogic/qed/qed_mfw_hsi.h b/drivers/net/ethernet/qlogic/qed/qed_mfw_hsi.h index b70ee8200e15..6459dd3feb37 100644 --- a/drivers/net/ethernet/qlogic/qed/qed_mfw_hsi.h +++ b/drivers/net/ethernet/qlogic/qed/qed_mfw_hsi.h @@ -2470,6 +2470,6 @@ struct nvm_meta_bin_t { u32 version; #define NVM_META_BIN_VERSION 1 u32 num_options; - u32 options[0]; + u32 options[]; }; #endif diff --git a/drivers/net/ethernet/ti/davinci_mdio.c b/drivers/net/ethernet/ti/davinci_mdio.c index a4efd5e35158..fce2626e34fa 100644 --- a/drivers/net/ethernet/ti/davinci_mdio.c +++ b/drivers/net/ethernet/ti/davinci_mdio.c @@ -70,7 +70,7 @@ struct davinci_mdio_regs { #define USERACCESS_DATA (0xffff) u32 physel; - } user[0]; + } user[]; }; static const struct mdio_platform_data default_pdata = { diff --git a/drivers/scsi/dpt/dpti_i2o.h b/drivers/scsi/dpt/dpti_i2o.h index bf0daeeb50a9..e1fbbf55c09d 100644 --- a/drivers/scsi/dpt/dpti_i2o.h +++ b/drivers/scsi/dpt/dpti_i2o.h @@ -123,7 +123,7 @@ struct i2o_sys_tbl u32 change_ind; u32 reserved2; u32 reserved3; - struct i2o_sys_tbl_entry iops[0]; + struct i2o_sys_tbl_entry iops[]; }; /* diff --git a/drivers/scsi/elx/libefc_sli/sli4.h b/drivers/scsi/elx/libefc_sli/sli4.h index ee2a9e65a88d..38af166cc786 100644 --- a/drivers/scsi/elx/libefc_sli/sli4.h +++ b/drivers/scsi/elx/libefc_sli/sli4.h @@ -609,7 +609,7 @@ struct sli4_rqst_cmn_create_cq_v2 { __le16 cqe_count; __le16 rsvd30; __le32 rsvd32; - struct sli4_dmaaddr page_phys_addr[0]; + struct sli4_dmaaddr page_phys_addr[]; }; enum sli4_create_cqset_e { @@ -634,7 +634,7 @@ struct sli4_rqst_cmn_create_cq_set_v0 { __le16 num_cq_req; __le16 dw6w1_flags; __le16 eq_id[16]; - struct sli4_dmaaddr page_phys_addr[0]; + struct sli4_dmaaddr page_phys_addr[]; }; /* CQE count */ @@ -764,7 +764,7 @@ struct sli4_rqst_cmn_create_mq_ext { __le32 dw7_val; __le32 dw8_flags; __le32 rsvd36; - struct sli4_dmaaddr page_phys_addr[0]; + struct sli4_dmaaddr page_phys_addr[]; }; struct sli4_rsp_cmn_create_mq_ext { @@ -802,7 +802,7 @@ struct sli4_rqst_cmn_create_cq_v0 { __le32 dw6_flags; __le32 rsvd28; __le32 rsvd32; - struct sli4_dmaaddr page_phys_addr[0]; + struct sli4_dmaaddr page_phys_addr[]; }; enum sli4_create_rq_e { @@ -887,7 +887,7 @@ struct sli4_rqst_rq_create_v2 { __le16 base_cq_id; __le16 rsvd26; __le32 rsvd42; - struct sli4_dmaaddr page_phys_addr[0]; + struct sli4_dmaaddr page_phys_addr[]; }; struct sli4_rsp_rq_create_v2 { @@ -3168,7 +3168,7 @@ struct sli4_rqst_cmn_read_object { __le32 read_offset; u8 object_name[104]; __le32 host_buffer_descriptor_count; - struct sli4_bde host_buffer_descriptor[0]; + struct sli4_bde host_buffer_descriptor[]; }; #define RSP_COM_READ_OBJ_EOF 0x80000000 @@ -3191,7 +3191,7 @@ struct sli4_rqst_cmn_write_object { __le32 write_offset; u8 object_name[104]; __le32 host_buffer_descriptor_count; - struct sli4_bde host_buffer_descriptor[0]; + struct sli4_bde host_buffer_descriptor[]; }; #define RSP_CHANGE_STATUS 0xff @@ -3217,7 +3217,7 @@ struct sli4_rqst_cmn_read_object_list { __le32 read_offset; u8 object_name[104]; __le32 host_buffer_descriptor_count; - struct sli4_bde host_buffer_descriptor[0]; + struct sli4_bde host_buffer_descriptor[]; }; enum sli4_rqst_set_dump_flags { @@ -3342,7 +3342,7 @@ struct sli4_rspource_descriptor_v1 { u8 descriptor_type; u8 descriptor_length; __le16 rsvd16; - __le32 type_specific[0]; + __le32 type_specific[]; }; enum sli4_pcie_desc_flags { @@ -3474,7 +3474,7 @@ struct sli4_rqst_post_hdr_templates { struct sli4_rqst_hdr hdr; __le16 rpi_offset; __le16 page_count; - struct sli4_dmaaddr page_descriptor[0]; + struct sli4_dmaaddr page_descriptor[]; }; #define SLI4_HDR_TEMPLATE_SIZE 64 diff --git a/drivers/scsi/mpi3mr/mpi3mr.h b/drivers/scsi/mpi3mr/mpi3mr.h index fc4eaf6d1e47..fb7d8775c9f7 100644 --- a/drivers/scsi/mpi3mr/mpi3mr.h +++ b/drivers/scsi/mpi3mr/mpi3mr.h @@ -878,7 +878,7 @@ struct mpi3mr_fwevt { bool process_evt; u32 evt_ctx; struct kref ref_count; - char event_data[0] __aligned(4); + char event_data[] __aligned(4); }; diff --git a/drivers/scsi/qla2xxx/qla_bsg.h b/drivers/scsi/qla2xxx/qla_bsg.h index 0f8a4c7e52a2..6d2b0a7436c1 100644 --- a/drivers/scsi/qla2xxx/qla_bsg.h +++ b/drivers/scsi/qla2xxx/qla_bsg.h @@ -157,7 +157,7 @@ struct qla84_msg_mgmt { uint16_t rsrvd; struct qla84_mgmt_param mgmtp;/* parameters for cmd */ uint32_t len; /* bytes in payload following this struct */ - uint8_t payload[0]; /* payload for cmd */ + uint8_t payload[]; /* payload for cmd */ }; struct qla_bsg_a84_mgmt { @@ -216,7 +216,7 @@ struct qla_image_version { struct qla_image_version_list { uint32_t count; - struct qla_image_version version[0]; + struct qla_image_version version[]; } __packed; struct qla_status_reg { diff --git a/drivers/scsi/qla2xxx/qla_def.h b/drivers/scsi/qla2xxx/qla_def.h index 9ebf4a234d9a..b6434c72dee3 100644 --- a/drivers/scsi/qla2xxx/qla_def.h +++ b/drivers/scsi/qla2xxx/qla_def.h @@ -5410,7 +5410,7 @@ struct ql_vnd_stat_entry { struct ql_vnd_stats { u64 entry_count; /* Num of entries */ u64 rservd; - struct ql_vnd_stat_entry entry[0]; /* Place holder of entries */ + struct ql_vnd_stat_entry entry[]; /* Place holder of entries */ } __packed; struct ql_vnd_host_stats_resp { diff --git a/drivers/scsi/qla2xxx/qla_edif_bsg.h b/drivers/scsi/qla2xxx/qla_edif_bsg.h index 53026d82ebff..5a26c77157da 100644 --- a/drivers/scsi/qla2xxx/qla_edif_bsg.h +++ b/drivers/scsi/qla2xxx/qla_edif_bsg.h @@ -121,7 +121,7 @@ struct app_pinfo { struct app_pinfo_reply { uint8_t port_count; uint8_t reserved[VND_CMD_APP_RESERVED_SIZE]; - struct app_pinfo ports[0]; + struct app_pinfo ports[]; } __packed; struct app_sinfo_req { @@ -140,7 +140,7 @@ struct app_sinfo { struct app_stats_reply { uint8_t elem_count; - struct app_sinfo elem[0]; + struct app_sinfo elem[]; } __packed; struct qla_sa_update_frame { diff --git a/drivers/scsi/qla2xxx/qla_fw.h b/drivers/scsi/qla2xxx/qla_fw.h index 073d06e88c58..0bb1d562f0bf 100644 --- a/drivers/scsi/qla2xxx/qla_fw.h +++ b/drivers/scsi/qla2xxx/qla_fw.h @@ -1706,7 +1706,7 @@ struct qla_flt_header { __le16 length; __le16 checksum; __le16 unused; - struct qla_flt_region region[0]; + struct qla_flt_region region[]; }; #define FLT_REGION_SIZE 16 diff --git a/drivers/scsi/qla4xxx/ql4_fw.h b/drivers/scsi/qla4xxx/ql4_fw.h index 4e1764df0a73..860ec61b51b9 100644 --- a/drivers/scsi/qla4xxx/ql4_fw.h +++ b/drivers/scsi/qla4xxx/ql4_fw.h @@ -1028,7 +1028,7 @@ struct crash_record { uint8_t out_RISC_reg_dump[256]; /* 80 -17F */ uint8_t in_RISC_reg_dump[256]; /*180 -27F */ - uint8_t in_out_RISC_stack_dump[0]; /*280 - ??? */ + uint8_t in_out_RISC_stack_dump[]; /*280 - ??? */ }; struct conn_event_log_entry { diff --git a/drivers/staging/r8188eu/include/ieee80211.h b/drivers/staging/r8188eu/include/ieee80211.h index 3a23d5299314..5e7de631b8ef 100644 --- a/drivers/staging/r8188eu/include/ieee80211.h +++ b/drivers/staging/r8188eu/include/ieee80211.h @@ -185,7 +185,7 @@ struct ieee_param { struct ieee_param_ex { u32 cmd; u8 sta_addr[ETH_ALEN]; - u8 data[0]; + u8 data[]; }; struct sta_data { @@ -713,7 +713,7 @@ struct ieee80211_info_element_hdr { struct ieee80211_info_element { u8 id; u8 len; - u8 data[0]; + u8 data[]; } __packed; /* @@ -776,7 +776,7 @@ struct ieee80211_txb { u16 reserved; u16 frag_size; u16 payload_size; - struct sk_buff *fragments[0]; + struct sk_buff *fragments[]; }; /* SWEEP TABLE ENTRIES NUMBER*/ diff --git a/drivers/staging/r8188eu/include/rtw_cmd.h b/drivers/staging/r8188eu/include/rtw_cmd.h index cf0945ae11c1..f8991a0493d0 100644 --- a/drivers/staging/r8188eu/include/rtw_cmd.h +++ b/drivers/staging/r8188eu/include/rtw_cmd.h @@ -73,7 +73,7 @@ struct c2h_evt_hdr { u8 id:4; u8 plen:4; u8 seq; - u8 payload[0]; + u8 payload[]; }; #define c2h_evt_exist(c2h_evt) ((c2h_evt)->id || (c2h_evt)->plen) @@ -662,25 +662,25 @@ struct getcurtxpwrlevel_rspi { struct setprobereqextraie_parm { unsigned char e_id; unsigned char ie_len; - unsigned char ie[0]; + unsigned char ie[]; }; struct setassocreqextraie_parm { unsigned char e_id; unsigned char ie_len; - unsigned char ie[0]; + unsigned char ie[]; }; struct setproberspextraie_parm { unsigned char e_id; unsigned char ie_len; - unsigned char ie[0]; + unsigned char ie[]; }; struct setassocrspextraie_parm { unsigned char e_id; unsigned char ie_len; - unsigned char ie[0]; + unsigned char ie[]; }; struct addBaReq_parm { diff --git a/drivers/staging/rtl8712/rtl871x_cmd.h b/drivers/staging/rtl8712/rtl871x_cmd.h index ddd69c4ae208..95e9ea5b2d98 100644 --- a/drivers/staging/rtl8712/rtl871x_cmd.h +++ b/drivers/staging/rtl8712/rtl871x_cmd.h @@ -657,25 +657,25 @@ struct setra_parm { struct setprobereqextraie_parm { unsigned char e_id; unsigned char ie_len; - unsigned char ie[0]; + unsigned char ie[]; }; struct setassocreqextraie_parm { unsigned char e_id; unsigned char ie_len; - unsigned char ie[0]; + unsigned char ie[]; }; struct setproberspextraie_parm { unsigned char e_id; unsigned char ie_len; - unsigned char ie[0]; + unsigned char ie[]; }; struct setassocrspextraie_parm { unsigned char e_id; unsigned char ie_len; - unsigned char ie[0]; + unsigned char ie[]; }; struct addBaReq_parm { diff --git a/drivers/staging/rtl8723bs/include/ieee80211.h b/drivers/staging/rtl8723bs/include/ieee80211.h index c11d7e2d2347..1e627dc0044d 100644 --- a/drivers/staging/rtl8723bs/include/ieee80211.h +++ b/drivers/staging/rtl8723bs/include/ieee80211.h @@ -204,7 +204,7 @@ struct ieee_param { struct ieee_param_ex { u32 cmd; u8 sta_addr[ETH_ALEN]; - u8 data[0]; + u8 data[]; }; struct sta_data { diff --git a/drivers/staging/rtl8723bs/include/rtw_cmd.h b/drivers/staging/rtl8723bs/include/rtw_cmd.h index 28d2d2732374..1bf030cbbbbe 100644 --- a/drivers/staging/rtl8723bs/include/rtw_cmd.h +++ b/drivers/staging/rtl8723bs/include/rtw_cmd.h @@ -94,7 +94,7 @@ struct c2h_evt_hdr { u8 id:4; u8 plen:4; u8 seq; - u8 payload[0]; + u8 payload[]; }; struct c2h_evt_hdr_88xx { diff --git a/drivers/staging/vc04_services/include/linux/raspberrypi/vchiq.h b/drivers/staging/vc04_services/include/linux/raspberrypi/vchiq.h index 81db7fb76d6d..c93f2f3e87bb 100644 --- a/drivers/staging/vc04_services/include/linux/raspberrypi/vchiq.h +++ b/drivers/staging/vc04_services/include/linux/raspberrypi/vchiq.h @@ -45,7 +45,7 @@ struct vchiq_header { /* Size of message data. */ unsigned int size; - char data[0]; /* message */ + char data[]; /* message */ }; struct vchiq_element { diff --git a/drivers/visorbus/vbuschannel.h b/drivers/visorbus/vbuschannel.h index 4aaf6564eb9f..98711fb6d66e 100644 --- a/drivers/visorbus/vbuschannel.h +++ b/drivers/visorbus/vbuschannel.h @@ -89,7 +89,7 @@ struct visor_vbus_channel { struct visor_vbus_headerinfo hdr_info; struct visor_vbus_deviceinfo chp_info; struct visor_vbus_deviceinfo bus_info; - struct visor_vbus_deviceinfo dev_info[0]; + struct visor_vbus_deviceinfo dev_info[]; } __packed; #endif diff --git a/fs/cifs/ntlmssp.h b/fs/cifs/ntlmssp.h index 298458404252..55758b9ec877 100644 --- a/fs/cifs/ntlmssp.h +++ b/fs/cifs/ntlmssp.h @@ -107,7 +107,7 @@ struct negotiate_message { SECURITY_BUFFER WorkstationName; /* RFC 1001 and ASCII */ struct ntlmssp_version Version; /* SECURITY_BUFFER */ - char DomainString[0]; + char DomainString[]; /* followed by WorkstationString */ } __packed; diff --git a/fs/ext4/fast_commit.h b/fs/ext4/fast_commit.h index 083ad1cb705a..07e8b734c4fd 100644 --- a/fs/ext4/fast_commit.h +++ b/fs/ext4/fast_commit.h @@ -55,13 +55,13 @@ struct ext4_fc_del_range { struct ext4_fc_dentry_info { __le32 fc_parent_ino; __le32 fc_ino; - __u8 fc_dname[0]; + __u8 fc_dname[]; }; /* Value structure for EXT4_FC_TAG_INODE and EXT4_FC_TAG_INODE_PARTIAL. */ struct ext4_fc_inode { __le32 fc_ino; - __u8 fc_raw_inode[0]; + __u8 fc_raw_inode[]; }; /* Value structure for tag EXT4_FC_TAG_TAIL. */ diff --git a/fs/ksmbd/ksmbd_netlink.h b/fs/ksmbd/ksmbd_netlink.h index 71bfb7de4472..ebe6ca08467a 100644 --- a/fs/ksmbd/ksmbd_netlink.h +++ b/fs/ksmbd/ksmbd_netlink.h @@ -241,7 +241,7 @@ struct ksmbd_rpc_command { struct ksmbd_spnego_authen_request { __u32 handle; __u16 spnego_blob_len; /* the length of spnego_blob */ - __u8 spnego_blob[0]; /* + __u8 spnego_blob[]; /* * the GSS token from SecurityBuffer of * SMB2 SESSION SETUP request */ diff --git a/fs/ksmbd/ntlmssp.h b/fs/ksmbd/ntlmssp.h index adaf4c0cbe8f..f13153c18b4e 100644 --- a/fs/ksmbd/ntlmssp.h +++ b/fs/ksmbd/ntlmssp.h @@ -95,7 +95,7 @@ struct security_buffer { struct target_info { __le16 Type; __le16 Length; - __u8 Content[0]; + __u8 Content[]; } __packed; struct negotiate_message { @@ -108,7 +108,7 @@ struct negotiate_message { * struct security_buffer for version info not present since we * do not set the version is present flag */ - char DomainString[0]; + char DomainString[]; /* followed by WorkstationString */ } __packed; @@ -140,7 +140,7 @@ struct authenticate_message { * struct security_buffer for version info not present since we * do not set the version is present flag */ - char UserString[0]; + char UserString[]; } __packed; struct ntlmv2_resp { diff --git a/fs/ksmbd/smb2pdu.h b/fs/ksmbd/smb2pdu.h index 725b800c29c8..d49468426576 100644 --- a/fs/ksmbd/smb2pdu.h +++ b/fs/ksmbd/smb2pdu.h @@ -759,7 +759,7 @@ struct smb2_file_rename_info { /* encoding of request for level 10 */ __u8 Reserved[7]; __u64 RootDirectory; /* MBZ for network operations (why says spec?) */ __le32 FileNameLength; - char FileName[0]; /* New name to be assigned */ + char FileName[]; /* New name to be assigned */ } __packed; /* level 10 Set */ struct smb2_file_link_info { /* encoding of request for level 11 */ @@ -768,7 +768,7 @@ struct smb2_file_link_info { /* encoding of request for level 11 */ __u8 Reserved[7]; __u64 RootDirectory; /* MBZ for network operations (why says spec?) */ __le32 FileNameLength; - char FileName[0]; /* Name to be assigned to new link */ + char FileName[]; /* Name to be assigned to new link */ } __packed; /* level 11 Set */ /* @@ -810,7 +810,7 @@ struct smb2_file_basic_info { /* data block encoding of response to level 18 */ struct smb2_file_alt_name_info { __le32 FileNameLength; - char FileName[0]; + char FileName[]; } __packed; struct smb2_file_stream_info { @@ -818,7 +818,7 @@ struct smb2_file_stream_info { __le32 StreamNameLength; __le64 StreamSize; __le64 StreamAllocationSize; - char StreamName[0]; + char StreamName[]; } __packed; struct smb2_file_eof_info { /* encoding of request for level 10 */ diff --git a/fs/ksmbd/transport_rdma.c b/fs/ksmbd/transport_rdma.c index 3c1ec1ac0b27..9976d39c6ed8 100644 --- a/fs/ksmbd/transport_rdma.c +++ b/fs/ksmbd/transport_rdma.c @@ -211,7 +211,7 @@ struct smb_direct_rdma_rw_msg { struct completion *completion; struct rdma_rw_ctx rw_ctx; struct sg_table sgt; - struct scatterlist sg_list[0]; + struct scatterlist sg_list[]; }; static inline int get_buf_page_count(void *buf, int size) diff --git a/fs/ksmbd/xattr.h b/fs/ksmbd/xattr.h index 8857c01093d9..16499ca5c82d 100644 --- a/fs/ksmbd/xattr.h +++ b/fs/ksmbd/xattr.h @@ -76,7 +76,7 @@ struct xattr_acl_entry { struct xattr_smb_acl { int count; int next; - struct xattr_acl_entry entries[0]; + struct xattr_acl_entry entries[]; }; /* 64bytes hash in xattr_ntacl is computed with sha256 */ diff --git a/fs/xfs/scrub/attr.h b/fs/xfs/scrub/attr.h index 1719e1c4da59..3590e10e3e62 100644 --- a/fs/xfs/scrub/attr.h +++ b/fs/xfs/scrub/attr.h @@ -24,7 +24,7 @@ struct xchk_xattr_buf { * space bitmap follows immediately after; and we have a third buffer * for storing intermediate bitmap results. */ - uint8_t buf[0]; + uint8_t buf[]; }; /* A place to store attribute values. */ diff --git a/include/acpi/actbl2.h b/include/acpi/actbl2.h index 16847c8d9d5f..9ee4d1b39125 100644 --- a/include/acpi/actbl2.h +++ b/include/acpi/actbl2.h @@ -2319,7 +2319,7 @@ struct acpi_table_rgrt { u16 version; u8 image_type; u8 reserved; - u8 image[0]; + u8 image[]; }; /* image_type values */ diff --git a/include/asm-generic/tlb.h b/include/asm-generic/tlb.h index 2c68a545ffa7..fd7feb5c7894 100644 --- a/include/asm-generic/tlb.h +++ b/include/asm-generic/tlb.h @@ -180,7 +180,7 @@ struct mmu_table_batch { struct rcu_head rcu; #endif unsigned int nr; - void *tables[0]; + void *tables[]; }; #define MAX_TABLE_BATCH \ @@ -227,7 +227,7 @@ struct mmu_gather_batch { struct mmu_gather_batch *next; unsigned int nr; unsigned int max; - struct page *pages[0]; + struct page *pages[]; }; #define MAX_GATHER_BATCH \ diff --git a/include/linux/greybus/greybus_manifest.h b/include/linux/greybus/greybus_manifest.h index 6e62fe478712..bef9eb2093e9 100644 --- a/include/linux/greybus/greybus_manifest.h +++ b/include/linux/greybus/greybus_manifest.h @@ -100,7 +100,7 @@ enum { struct greybus_descriptor_string { __u8 length; __u8 id; - __u8 string[0]; + __u8 string[]; } __packed; /* @@ -175,7 +175,7 @@ struct greybus_manifest_header { struct greybus_manifest { struct greybus_manifest_header header; - struct greybus_descriptor descriptors[0]; + struct greybus_descriptor descriptors[]; } __packed; #endif /* __GREYBUS_MANIFEST_H */ diff --git a/include/linux/greybus/hd.h b/include/linux/greybus/hd.h index d3faf0c1a569..718e2857054e 100644 --- a/include/linux/greybus/hd.h +++ b/include/linux/greybus/hd.h @@ -58,7 +58,7 @@ struct gb_host_device { struct gb_svc *svc; /* Private data for the host driver */ - unsigned long hd_priv[0] __aligned(sizeof(s64)); + unsigned long hd_priv[] __aligned(sizeof(s64)); }; #define to_gb_host_device(d) container_of(d, struct gb_host_device, dev) diff --git a/include/linux/greybus/module.h b/include/linux/greybus/module.h index 47b839af145d..3efe2133acfd 100644 --- a/include/linux/greybus/module.h +++ b/include/linux/greybus/module.h @@ -23,7 +23,7 @@ struct gb_module { bool disconnected; - struct gb_interface *interfaces[0]; + struct gb_interface *interfaces[]; }; #define to_gb_module(d) container_of(d, struct gb_module, dev) diff --git a/include/linux/i3c/ccc.h b/include/linux/i3c/ccc.h index 73b0982cc519..ad59a4ae60d1 100644 --- a/include/linux/i3c/ccc.h +++ b/include/linux/i3c/ccc.h @@ -132,7 +132,7 @@ struct i3c_ccc_dev_desc { struct i3c_ccc_defslvs { u8 count; struct i3c_ccc_dev_desc master; - struct i3c_ccc_dev_desc slaves[0]; + struct i3c_ccc_dev_desc slaves[]; } __packed; /** @@ -240,7 +240,7 @@ struct i3c_ccc_bridged_slave_desc { */ struct i3c_ccc_setbrgtgt { u8 count; - struct i3c_ccc_bridged_slave_desc bslaves[0]; + struct i3c_ccc_bridged_slave_desc bslaves[]; } __packed; /** @@ -318,7 +318,7 @@ enum i3c_ccc_setxtime_subcmd { */ struct i3c_ccc_setxtime { u8 subcmd; - u8 data[0]; + u8 data[]; } __packed; #define I3C_CCC_GETXTIME_SYNC_MODE BIT(0) diff --git a/include/linux/mlx5/mlx5_ifc_fpga.h b/include/linux/mlx5/mlx5_ifc_fpga.h index 07d77323f78a..cac4e94abd3a 100644 --- a/include/linux/mlx5/mlx5_ifc_fpga.h +++ b/include/linux/mlx5/mlx5_ifc_fpga.h @@ -185,7 +185,7 @@ struct mlx5_ifc_fpga_access_reg_bits { u8 address[0x40]; - u8 data[0][0x8]; + u8 data[][0x8]; }; enum mlx5_ifc_fpga_qp_state { diff --git a/include/linux/platform_data/brcmfmac.h b/include/linux/platform_data/brcmfmac.h index 2b5676ff35be..f922a192fe58 100644 --- a/include/linux/platform_data/brcmfmac.h +++ b/include/linux/platform_data/brcmfmac.h @@ -178,7 +178,7 @@ struct brcmfmac_platform_data { void (*power_off)(void); char *fw_alternative_path; int device_count; - struct brcmfmac_pd_device devices[0]; + struct brcmfmac_pd_device devices[]; }; diff --git a/include/linux/platform_data/cros_ec_commands.h b/include/linux/platform_data/cros_ec_commands.h index 271bd87bff0a..728735aed980 100644 --- a/include/linux/platform_data/cros_ec_commands.h +++ b/include/linux/platform_data/cros_ec_commands.h @@ -5644,7 +5644,7 @@ struct ec_response_typec_discovery { uint8_t svid_count; /* Number of SVIDs partner sent */ uint16_t reserved; uint32_t discovery_vdo[6]; /* Max VDOs allowed after VDM header is 6 */ - struct svid_mode_info svids[0]; + struct svid_mode_info svids[]; } __ec_align1; /* USB Type-C commands for AP-controlled device policy. */ diff --git a/include/net/bluetooth/mgmt.h b/include/net/bluetooth/mgmt.h index 107b25deae68..9607ec289fd0 100644 --- a/include/net/bluetooth/mgmt.h +++ b/include/net/bluetooth/mgmt.h @@ -696,7 +696,7 @@ struct mgmt_cp_set_blocked_keys { #define MGMT_READ_CONTROLLER_CAP_SIZE 0 struct mgmt_rp_read_controller_cap { __le16 cap_len; - __u8 cap[0]; + __u8 cap[]; } __packed; #define MGMT_OP_READ_EXP_FEATURES_INFO 0x0049 diff --git a/include/net/ioam6.h b/include/net/ioam6.h index 3f45ba37a2c6..781d2d8b2f29 100644 --- a/include/net/ioam6.h +++ b/include/net/ioam6.h @@ -35,7 +35,7 @@ struct ioam6_schema { int len; __be32 hdr; - u8 data[0]; + u8 data[]; }; struct ioam6_pernet_data { diff --git a/include/sound/sof/channel_map.h b/include/sound/sof/channel_map.h index fd3a30fcf756..d363f0ca6979 100644 --- a/include/sound/sof/channel_map.h +++ b/include/sound/sof/channel_map.h @@ -39,7 +39,7 @@ struct sof_ipc_channel_map { uint32_t ext_id; uint32_t ch_mask; uint32_t reserved; - int32_t ch_coeffs[0]; + int32_t ch_coeffs[]; } __packed; /** @@ -55,7 +55,7 @@ struct sof_ipc_stream_map { struct sof_ipc_cmd_hdr hdr; uint32_t num_ch_map; uint32_t reserved[3]; - struct sof_ipc_channel_map ch_map[0]; + struct sof_ipc_channel_map ch_map[]; } __packed; #endif /* __IPC_CHANNEL_MAP_H__ */ diff --git a/scripts/dtc/libfdt/fdt.h b/scripts/dtc/libfdt/fdt.h index f2e68807f277..0c91aa7f67b5 100644 --- a/scripts/dtc/libfdt/fdt.h +++ b/scripts/dtc/libfdt/fdt.h @@ -35,14 +35,14 @@ struct fdt_reserve_entry { struct fdt_node_header { fdt32_t tag; - char name[0]; + char name[]; }; struct fdt_property { fdt32_t tag; fdt32_t len; fdt32_t nameoff; - char data[0]; + char data[]; }; #endif /* !__ASSEMBLY */ diff --git a/sound/soc/intel/atom/sst-mfld-dsp.h b/sound/soc/intel/atom/sst-mfld-dsp.h index 8d9e29b16e57..c8f0816edb53 100644 --- a/sound/soc/intel/atom/sst-mfld-dsp.h +++ b/sound/soc/intel/atom/sst-mfld-dsp.h @@ -427,7 +427,7 @@ struct snd_sst_drop_response { struct snd_sst_async_msg { u32 msg_id; /* Async msg id */ - u32 payload[0]; + u32 payload[]; }; struct snd_sst_async_err_msg { @@ -514,7 +514,7 @@ struct snd_sst_bytes_v2 { u8 pipe_id; u8 rsvd; u16 len; - char bytes[0]; + char bytes[]; }; #define MAX_VTSV_FILES 2 diff --git a/sound/soc/intel/skylake/skl-topology.h b/sound/soc/intel/skylake/skl-topology.h index 22963634fbea..a5bccf2fcd88 100644 --- a/sound/soc/intel/skylake/skl-topology.h +++ b/sound/soc/intel/skylake/skl-topology.h @@ -164,7 +164,7 @@ struct skl_base_cfg_ext { u8 reserved[8]; u32 priv_param_length; /* Input pin formats followed by output ones. */ - struct skl_pin_format pins_fmt[0]; + struct skl_pin_format pins_fmt[]; } __packed; struct skl_algo_cfg { diff --git a/tools/lib/perf/include/perf/event.h b/tools/lib/perf/include/perf/event.h index 75ee385fb078..e7758707cadd 100644 --- a/tools/lib/perf/include/perf/event.h +++ b/tools/lib/perf/include/perf/event.h @@ -240,7 +240,7 @@ struct id_index_entry { struct perf_record_id_index { struct perf_event_header header; __u64 nr; - struct id_index_entry entries[0]; + struct id_index_entry entries[]; }; struct perf_record_auxtrace_info { -- 2.27.0 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Tue, 15 Feb 2022 11:47:43 -0600 From: "Gustavo A. R. Silva" Subject: [PATCH][next] treewide: Replace zero-length arrays with flexible-array members Message-ID: <20220215174743.GA878920@embeddedor> MIME-Version: 1.0 Content-Disposition: inline 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-um" Errors-To: linux-um-bounces+geert=linux-m68k.org@lists.infradead.org To: GR-QLogic-Storage-Upstream@marvell.com, linux-alpha@vger.kernel.org, linux-kernel@vger.kernel.org, linux-ia64@vger.kernel.org, linux-s390@vger.kernel.org, linux-sh@vger.kernel.org, sparclinux@vger.kernel.org, linux-um@lists.infradead.org, linux-xtensa@linux-xtensa.org, linux-crypto@vger.kernel.org, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, nouveau@lists.freedesktop.org, coresight@lists.linaro.org, linux-arm-kernel@lists.infradead.org, bcm-kernel-feedback-list@broadcom.com, netdev@vger.kernel.org, linux-omap@vger.kernel.org, linux-scsi@vger.kernel.org, target-devel@vger.kernel.org, mpi3mr-linuxdrv.pdl@broadcom.com, linux-staging@lists.linux.dev, linux-rpi-kernel@lists.infradead.org, sparmaintainer@unisys.com, linux-cifs@vger.kernel.org, samba-technical@lists.samba.org, linux-ext4@vger.kernel.org, linux-acpi@vger.kernel.org, devel@acpica.org, linux-arch@vger.kernel.org, linux-mm@kvack.org, greybus-dev@lists.linaro.org, linux-i3c@lists.infradead.org, linux-rdma@vger.kernel.org, linux-bluetooth@vger.kernel.org, alsa-devel@alsa-project.org, devicetree@vger.kernel.org, linux-perf-users@vger.kernel.org, "Gustavo A. R. Silva" , linux-hardening@vger.kernel.org VGhlcmUgaXMgYSByZWd1bGFyIG5lZWQgaW4gdGhlIGtlcm5lbCB0byBwcm92aWRlIGEgd2F5IHRv IGRlY2xhcmUKaGF2aW5nIGEgZHluYW1pY2FsbHkgc2l6ZWQgc2V0IG9mIHRyYWlsaW5nIGVsZW1l bnRzIGluIGEgc3RydWN0dXJlLgpLZXJuZWwgY29kZSBzaG91bGQgYWx3YXlzIHVzZSDigJxmbGV4 aWJsZSBhcnJheSBtZW1iZXJz4oCdWzFdIGZvciB0aGVzZQpjYXNlcy4gVGhlIG9sZGVyIHN0eWxl IG9mIG9uZS1lbGVtZW50IG9yIHplcm8tbGVuZ3RoIGFycmF5cyBzaG91bGQKbm8gbG9uZ2VyIGJl IHVzZWRbMl0uCgpUaGlzIGNvZGUgd2FzIHRyYW5zZm9ybWVkIHdpdGggdGhlIGhlbHAgb2YgQ29j Y2luZWxsZToKKG5leHQtMjAyMjAyMTQkIHNwYXRjaCAtLWpvYnMgJChnZXRjb25mIF9OUFJPQ0VT U09SU19PTkxOKSAtLXNwLWZpbGUgc2NyaXB0LmNvY2NpIC0taW5jbHVkZS1oZWFkZXJzIC0tZGly IC4gPiBvdXRwdXQucGF0Y2gpCgpAQAppZGVudGlmaWVyIFMsIG1lbWJlciwgYXJyYXk7CnR5cGUg VDEsIFQyOwpAQAoKc3RydWN0IFMgewogIC4uLgogIFQxIG1lbWJlcjsKICBUMiBhcnJheVsKLSAw CiAgXTsKfTsKClVBUEkgYW5kIHdpcmVsZXNzIGNoYW5nZXMgd2VyZSBpbnRlbnRpb25hbGx5IGV4 Y2x1ZGVkIGZyb20gdGhpcyBwYXRjaAphbmQgd2lsbCBiZSBzZW50IG91dCBzZXBhcmF0ZWx5LgoK WzFdIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0ZsZXhpYmxlX2FycmF5X21lbWJlcgpb Ml0gaHR0cHM6Ly93d3cua2VybmVsLm9yZy9kb2MvaHRtbC92NS4xNi9wcm9jZXNzL2RlcHJlY2F0 ZWQuaHRtbCN6ZXJvLWxlbmd0aC1hbmQtb25lLWVsZW1lbnQtYXJyYXlzCgpMaW5rOiBodHRwczov L2dpdGh1Yi5jb20vS1NQUC9saW51eC9pc3N1ZXMvNzgKU2lnbmVkLW9mZi1ieTogR3VzdGF2byBB LiBSLiBTaWx2YSA8Z3VzdGF2b2Fyc0BrZXJuZWwub3JnPgotLS0KSGkgYWxsLAoKSSdtIGV4cGVj dGluZyB0byBjYXJyeSB0aGlzIHBhdGNoIGluIG15IHRyZWUsIHNvIGl0J2QgYmUgZ3JlYXQgdG8K Z2V0IHNvbWUgQWNrcy4gQW5kIGdpdmVuIHRoZSBzaXplIG9mIHRoZSBwYXRjaCwgSSdtIG9ubHkg c2VuZGluZwp0aGlzIHRvIG1haWxpbmcgbGlzdHMuCgpUaGFua3MhCgogYXJjaC9hbHBoYS9pbmNs dWRlL2FzbS9od3JwYi5oICAgICAgICAgICAgICAgIHwgIDIgKy0KIGFyY2gvaWE2NC9pbmNsdWRl L2FzbS9zYWwuaCAgICAgICAgICAgICAgICAgICB8ICAyICstCiBhcmNoL3MzOTAvaW5jbHVkZS9h c20vY2N3Z3JvdXAuaCAgICAgICAgICAgICAgfCAgMiArLQogYXJjaC9zMzkwL2luY2x1ZGUvYXNt L2Noc2MuaCAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGFyY2gvczM5MC9pbmNsdWRlL2FzbS9l YWRtLmggICAgICAgICAgICAgICAgICB8ICAyICstCiBhcmNoL3MzOTAvaW5jbHVkZS9hc20vZmN4 LmggICAgICAgICAgICAgICAgICAgfCAgNCArKy0tCiBhcmNoL3MzOTAvaW5jbHVkZS9hc20vaWRh bHMuaCAgICAgICAgICAgICAgICAgfCAgMiArLQogYXJjaC9zMzkwL2luY2x1ZGUvYXNtL3NjbHAu aCAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGFyY2gvczM5MC9pbmNsdWRlL2FzbS9zeXNpbmZv LmggICAgICAgICAgICAgICB8ICA2ICsrKy0tLQogYXJjaC9zaC9pbmNsdWRlL2FzbS90aHJlYWRf aW5mby5oICAgICAgICAgICAgIHwgIDIgKy0KIGFyY2gvc3BhcmMvaW5jbHVkZS9hc20vdmlvLmgg ICAgICAgICAgICAgICAgICB8IDEwICsrKysrLS0tLS0KIGFyY2gvdW0vaW5jbHVkZS9zaGFyZWQv bmV0X2tlcm4uaCAgICAgICAgICAgICB8ICAyICstCiBhcmNoL3g4Ni9pbmNsdWRlL2FzbS9taWNy b2NvZGVfYW1kLmggICAgICAgICAgfCAgMiArLQogYXJjaC94ODYvaW5jbHVkZS9hc20vbWljcm9j b2RlX2ludGVsLmggICAgICAgIHwgIDQgKystLQogYXJjaC94ODYvaW5jbHVkZS9hc20vcGNpLmgg ICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGFyY2gveDg2L2luY2x1ZGUvYXNtL3BjaV94ODYu aCAgICAgICAgICAgICAgICB8ICAyICstCiBhcmNoL3h0ZW5zYS9pbmNsdWRlL2FzbS9ib290cGFy YW0uaCAgICAgICAgICAgfCAgMiArLQogZHJpdmVycy9jcnlwdG8vY2FhbS9wZGIuaCAgICAgICAg ICAgICAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1 Y19hZHMuYyAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9pbmNsdWRlL252Zncv aHMuaCAgICAgfCAgMiArLQogLi4uL2h3dHJhY2luZy9jb3Jlc2lnaHQvY29yZXNpZ2h0LWNvbmZp Zy5oICAgIHwgIDIgKy0KIGRyaXZlcnMvbWlzYy9iY20tdmsvYmNtX3ZrLmggICAgICAgICAgICAg ICAgICB8ICAyICstCiAuLi4vbWlzYy9oYWJhbmFsYWJzL2luY2x1ZGUvY29tbW9uL2NwdWNwX2lm LmggfCAgNiArKystLS0KIC4uLi9oYWJhbmFsYWJzL2luY2x1ZGUvZ2F1ZGkvZ2F1ZGlfcGFja2V0 cy5oICB8ICA0ICsrLS0KIC4uLi9oYWJhbmFsYWJzL2luY2x1ZGUvZ295YS9nb3lhX3BhY2tldHMu aCAgICB8ICA0ICsrLS0KIC4uLi9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2VuZXRjL2VuZXRjX2h3 LmggICB8ICAyICstCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9pODI1eHgvc3VuM184MjU4Ni5oICAg ICAgfCAgMiArLQogLi4uL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ucGMuaCAg IHwgIDYgKysrLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9xbG9naWMvcWVkL3FlZF9tZndfaHNp LmggfCAgMiArLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvdGkvZGF2aW5jaV9tZGlvLmMgICAgICAg IHwgIDIgKy0KIGRyaXZlcnMvc2NzaS9kcHQvZHB0aV9pMm8uaCAgICAgICAgICAgICAgICAgICB8 ICAyICstCiBkcml2ZXJzL3Njc2kvZWx4L2xpYmVmY19zbGkvc2xpNC5oICAgICAgICAgICAgfCAy MCArKysrKysrKystLS0tLS0tLS0tCiBkcml2ZXJzL3Njc2kvbXBpM21yL21waTNtci5oICAgICAg ICAgICAgICAgICAgfCAgMiArLQogZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2JzZy5oICAgICAg ICAgICAgICAgIHwgIDQgKystLQogZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2RlZi5oICAgICAg ICAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9lZGlmX2JzZy5oICAg ICAgICAgICB8ICA0ICsrLS0KIGRyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9mdy5oICAgICAgICAg ICAgICAgICB8ICAyICstCiBkcml2ZXJzL3Njc2kvcWxhNHh4eC9xbDRfZncuaCAgICAgICAgICAg ICAgICAgfCAgMiArLQogZHJpdmVycy9zdGFnaW5nL3I4MTg4ZXUvaW5jbHVkZS9pZWVlODAyMTEu aCAgIHwgIDYgKysrLS0tCiBkcml2ZXJzL3N0YWdpbmcvcjgxODhldS9pbmNsdWRlL3J0d19jbWQu aCAgICAgfCAxMCArKysrKy0tLS0tCiBkcml2ZXJzL3N0YWdpbmcvcnRsODcxMi9ydGw4NzF4X2Nt ZC5oICAgICAgICAgfCAgOCArKysrLS0tLQogZHJpdmVycy9zdGFnaW5nL3J0bDg3MjNicy9pbmNs dWRlL2llZWU4MDIxMS5oIHwgIDIgKy0KIGRyaXZlcnMvc3RhZ2luZy9ydGw4NzIzYnMvaW5jbHVk ZS9ydHdfY21kLmggICB8ICAyICstCiAuLi4vaW5jbHVkZS9saW51eC9yYXNwYmVycnlwaS92Y2hp cS5oICAgICAgICAgfCAgMiArLQogZHJpdmVycy92aXNvcmJ1cy92YnVzY2hhbm5lbC5oICAgICAg ICAgICAgICAgIHwgIDIgKy0KIGZzL2NpZnMvbnRsbXNzcC5oICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAyICstCiBmcy9leHQ0L2Zhc3RfY29tbWl0LmggICAgICAgICAgICAgICAgICAg ICAgICAgfCAgNCArKy0tCiBmcy9rc21iZC9rc21iZF9uZXRsaW5rLmggICAgICAgICAgICAgICAg ICAgICAgfCAgMiArLQogZnMva3NtYmQvbnRsbXNzcC5oICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgIDYgKysrLS0tCiBmcy9rc21iZC9zbWIycGR1LmggICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgOCArKysrLS0tLQogZnMva3NtYmQvdHJhbnNwb3J0X3JkbWEuYyAgICAgICAgICAg ICAgICAgICAgIHwgIDIgKy0KIGZzL2tzbWJkL3hhdHRyLmggICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAyICstCiBmcy94ZnMvc2NydWIvYXR0ci5oICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgMiArLQogaW5jbHVkZS9hY3BpL2FjdGJsMi5oICAgICAgICAgICAgICAgICAgICAg ICAgIHwgIDIgKy0KIGluY2x1ZGUvYXNtLWdlbmVyaWMvdGxiLmggICAgICAgICAgICAgICAgICAg ICB8ICA0ICsrLS0KIGluY2x1ZGUvbGludXgvZ3JleWJ1cy9ncmV5YnVzX21hbmlmZXN0LmggICAg ICB8ICA0ICsrLS0KIGluY2x1ZGUvbGludXgvZ3JleWJ1cy9oZC5oICAgICAgICAgICAgICAgICAg ICB8ICAyICstCiBpbmNsdWRlL2xpbnV4L2dyZXlidXMvbW9kdWxlLmggICAgICAgICAgICAgICAg fCAgMiArLQogaW5jbHVkZS9saW51eC9pM2MvY2NjLmggICAgICAgICAgICAgICAgICAgICAgIHwg IDYgKysrLS0tCiBpbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmNfZnBnYS5oICAgICAgICAgICAg fCAgMiArLQogaW5jbHVkZS9saW51eC9wbGF0Zm9ybV9kYXRhL2JyY21mbWFjLmggICAgICAgIHwg IDIgKy0KIC4uLi9saW51eC9wbGF0Zm9ybV9kYXRhL2Nyb3NfZWNfY29tbWFuZHMuaCAgICB8ICAy ICstCiBpbmNsdWRlL25ldC9ibHVldG9vdGgvbWdtdC5oICAgICAgICAgICAgICAgICAgfCAgMiAr LQogaW5jbHVkZS9uZXQvaW9hbTYuaCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0K IGluY2x1ZGUvc291bmQvc29mL2NoYW5uZWxfbWFwLmggICAgICAgICAgICAgICB8ICA0ICsrLS0K IHNjcmlwdHMvZHRjL2xpYmZkdC9mZHQuaCAgICAgICAgICAgICAgICAgICAgICB8ICA0ICsrLS0K IHNvdW5kL3NvYy9pbnRlbC9hdG9tL3NzdC1tZmxkLWRzcC5oICAgICAgICAgICB8ICA0ICsrLS0K IHNvdW5kL3NvYy9pbnRlbC9za3lsYWtlL3NrbC10b3BvbG9neS5oICAgICAgICB8ICAyICstCiB0 b29scy9saWIvcGVyZi9pbmNsdWRlL3BlcmYvZXZlbnQuaCAgICAgICAgICAgfCAgMiArLQogNjkg ZmlsZXMgY2hhbmdlZCwgMTE2IGluc2VydGlvbnMoKyksIDExNiBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9hcmNoL2FscGhhL2luY2x1ZGUvYXNtL2h3cnBiLmggYi9hcmNoL2FscGhhL2luY2x1 ZGUvYXNtL2h3cnBiLmgKaW5kZXggZDgxODBlNTI3YTFlLi5mYzc2ZjM2MjY1YWQgMTAwNjQ0Ci0t LSBhL2FyY2gvYWxwaGEvaW5jbHVkZS9hc20vaHdycGIuaAorKysgYi9hcmNoL2FscGhhL2luY2x1 ZGUvYXNtL2h3cnBiLmgKQEAgLTE1Miw3ICsxNTIsNyBAQCBzdHJ1Y3QgbWVtZGVzY19zdHJ1Y3Qg ewogCXVuc2lnbmVkIGxvbmcgY2hrc3VtOwogCXVuc2lnbmVkIGxvbmcgb3B0aW9uYWxfcGE7CiAJ dW5zaWduZWQgbG9uZyBudW1jbHVzdGVyczsKLQlzdHJ1Y3QgbWVtY2x1c3Rfc3RydWN0IGNsdXN0 ZXJbMF07CisJc3RydWN0IG1lbWNsdXN0X3N0cnVjdCBjbHVzdGVyW107CiB9OwogCiBzdHJ1Y3Qg ZHNyX3N0cnVjdCB7CmRpZmYgLS1naXQgYS9hcmNoL2lhNjQvaW5jbHVkZS9hc20vc2FsLmggYi9h cmNoL2lhNjQvaW5jbHVkZS9hc20vc2FsLmgKaW5kZXggNzhmNGY3YjQwNDM1Li4yMjc0OWEyMDFl OTIgMTAwNjQ0Ci0tLSBhL2FyY2gvaWE2NC9pbmNsdWRlL2FzbS9zYWwuaAorKysgYi9hcmNoL2lh NjQvaW5jbHVkZS9hc20vc2FsLmgKQEAgLTQyMCw3ICs0MjAsNyBAQCB0eXBlZGVmIHN0cnVjdCBz YWxfbG9nX3Byb2Nlc3Nvcl9pbmZvIHsKIAkgKiBUaGUgcmVzdCBvZiB0aGlzIHN0cnVjdHVyZSBj b25zaXN0cyBvZiB2YXJpYWJsZS1sZW5ndGggYXJyYXlzLCB3aGljaCBjYW4ndCBiZQogCSAqIGV4 cHJlc3NlZCBpbiBDLgogCSAqLwotCXNhbF9sb2dfbW9kX2Vycm9yX2luZm9fdCBpbmZvWzBdOwor CXNhbF9sb2dfbW9kX2Vycm9yX2luZm9fdCBpbmZvW107CiAJLyoKIAkgKiBUaGlzIGlzIHdoYXQg dGhlIHJlc3QgbG9va2VkIGxpa2UgaWYgQyBzdXBwb3J0ZWQgdmFyaWFibGUtbGVuZ3RoIGFycmF5 czoKIAkgKgpkaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL2Njd2dyb3VwLmggYi9h cmNoL3MzOTAvaW5jbHVkZS9hc20vY2N3Z3JvdXAuaAppbmRleCBhYTk5NWQ5MWNkMWQuLjExZDJm YjNkZTRmNSAxMDA2NDQKLS0tIGEvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL2Njd2dyb3VwLmgKKysr IGIvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL2Njd2dyb3VwLmgKQEAgLTI1LDcgKzI1LDcgQEAgc3Ry dWN0IGNjd2dyb3VwX2RldmljZSB7CiAJdW5zaWduZWQgaW50IGNvdW50OwogCXN0cnVjdCBkZXZp Y2UJZGV2OwogCXN0cnVjdCB3b3JrX3N0cnVjdCB1bmdyb3VwX3dvcms7Ci0Jc3RydWN0IGNjd19k ZXZpY2UgKmNkZXZbMF07CisJc3RydWN0IGNjd19kZXZpY2UgKmNkZXZbXTsKIH07CiAKIC8qKgpk aWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL2Noc2MuaCBiL2FyY2gvczM5MC9pbmNs dWRlL2FzbS9jaHNjLmgKaW5kZXggYWU0ZDI1NDljZDY3Li5iYjQ4ZWEzODBjMGQgMTAwNjQ0Ci0t LSBhL2FyY2gvczM5MC9pbmNsdWRlL2FzbS9jaHNjLmgKKysrIGIvYXJjaC9zMzkwL2luY2x1ZGUv YXNtL2Noc2MuaApAQCAtNjMsNyArNjMsNyBAQCBzdHJ1Y3QgY2hzY19wbnNvX2FyZWEgewogCXN0 cnVjdCBjaHNjX2hlYWRlciByZXNwb25zZTsKIAl1MzI6MzI7CiAJc3RydWN0IGNoc2NfcG5zb19u YWloZHIgbmFpaGRyOwotCXN0cnVjdCBjaHNjX3Buc29fbmFpZF9sMiBlbnRyaWVzWzBdOworCXN0 cnVjdCBjaHNjX3Buc29fbmFpZF9sMiBlbnRyaWVzW107CiB9IF9fcGFja2VkIF9fYWxpZ25lZChQ QUdFX1NJWkUpOwogCiAjZW5kaWYgLyogX0FTTV9TMzkwX0NIU0NfSCAqLwpkaWZmIC0tZ2l0IGEv YXJjaC9zMzkwL2luY2x1ZGUvYXNtL2VhZG0uaCBiL2FyY2gvczM5MC9pbmNsdWRlL2FzbS9lYWRt LmgKaW5kZXggNDQ1ZmU0YzgxODRhLi4wNmY3OTU4NTVhZjcgMTAwNjQ0Ci0tLSBhL2FyY2gvczM5 MC9pbmNsdWRlL2FzbS9lYWRtLmgKKysrIGIvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL2VhZG0uaApA QCAtNzgsNyArNzgsNyBAQCBzdHJ1Y3QgYW9iIHsKIAogc3RydWN0IGFvYl9ycV9oZWFkZXIgewog CXN0cnVjdCBzY21fZGV2aWNlICpzY21kZXY7Ci0JY2hhciBkYXRhWzBdOworCWNoYXIgZGF0YVtd OwogfTsKIAogc3RydWN0IHNjbV9kZXZpY2UgewpkaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2luY2x1 ZGUvYXNtL2ZjeC5oIGIvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL2ZjeC5oCmluZGV4IGNmZjA3NDll OTY1Ny4uYjhhMDI4YTM2MTczIDEwMDY0NAotLS0gYS9hcmNoL3MzOTAvaW5jbHVkZS9hc20vZmN4 LmgKKysrIGIvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL2ZjeC5oCkBAIC0yMTQsNyArMjE0LDcgQEAg c3RydWN0IGRjd19pbnRyZ19kYXRhIHsKIAl1MzIgOjMyOwogCXU2NCB0aW1lOwogCXU2NCBwcm9n X2lkOwotCXU4ICBwcm9nX2RhdGFbMF07CisJdTggIHByb2dfZGF0YVtdOwogfSBfX2F0dHJpYnV0 ZV9fICgocGFja2VkKSk7CiAKICNkZWZpbmUgRENXX0ZMQUdTX0NDCQkoMSA8PCAoNyAtIDEpKQpA QCAtMjQxLDcgKzI0MSw3IEBAIHN0cnVjdCBkY3cgewogCXUzMiA6ODsKIAl1MzIgY2RfY291bnQ6 ODsKIAl1MzIgY291bnQ7Ci0JdTggY2RbMF07CisJdTggY2RbXTsKIH0gX19hdHRyaWJ1dGVfXyAo KHBhY2tlZCkpOwogCiAjZGVmaW5lIFRDQ0JfRk9STUFUX0RFRkFVTFQJMHg3ZgpkaWZmIC0tZ2l0 IGEvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL2lkYWxzLmggYi9hcmNoL3MzOTAvaW5jbHVkZS9hc20v aWRhbHMuaAppbmRleCA2ZmI3YWNlZDEwNGEuLjQwZWFlMmMwOGQ2MSAxMDA2NDQKLS0tIGEvYXJj aC9zMzkwL2luY2x1ZGUvYXNtL2lkYWxzLmgKKysrIGIvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL2lk YWxzLmgKQEAgLTEwOCw3ICsxMDgsNyBAQCBjbGVhcl9ub3JtYWxpemVkX2NkYShzdHJ1Y3QgY2N3 MSAqIGNjdykKIHN0cnVjdCBpZGFsX2J1ZmZlciB7CiAJc2l6ZV90IHNpemU7CiAJc2l6ZV90IHBh Z2Vfb3JkZXI7Ci0Jdm9pZCAqZGF0YVswXTsKKwl2b2lkICpkYXRhW107CiB9OwogCiAvKgpkaWZm IC0tZ2l0IGEvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL3NjbHAuaCBiL2FyY2gvczM5MC9pbmNsdWRl L2FzbS9zY2xwLmgKaW5kZXggYzY4ZWEzNWRlNDk4Li4yMmIzMjEzYzZjOWQgMTAwNjQ0Ci0tLSBh L2FyY2gvczM5MC9pbmNsdWRlL2FzbS9zY2xwLmgKKysrIGIvYXJjaC9zMzkwL2luY2x1ZGUvYXNt L3NjbHAuaApAQCAtMTEyLDcgKzExMiw3IEBAIHN0cnVjdCB6cGNpX3JlcG9ydF9lcnJvcl9oZWFk ZXIgewogCQkJICoJKE9wZW5DcnlwdG8gU3VjY2Vzc2Z1bCBEaWFnbm9zdGljcyBFeGVjdXRpb24p CiAJCQkgKi8KIAl1MTYgbGVuZ3RoOwkvKiBMZW5ndGggb2YgU3Vic2VxdWVudCBEYXRhICh1cCB0 byA0SyDigJMgU0NMUCBoZWFkZXIgKi8KLQl1OCBkYXRhWzBdOwkvKiBTdWJzZXF1ZW50IERhdGEg cGFzc2VkIHZlcmJhdGltIHRvIFNDTFAgRVQgMjQgKi8KKwl1OCBkYXRhW107CS8qIFN1YnNlcXVl bnQgRGF0YSBwYXNzZWQgdmVyYmF0aW0gdG8gU0NMUCBFVCAyNCAqLwogfSBfX3BhY2tlZDsKIAog ZXh0ZXJuIGNoYXIgKnNjbHBfZWFybHlfc2NjYjsKZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9pbmNs dWRlL2FzbS9zeXNpbmZvLmggYi9hcmNoL3MzOTAvaW5jbHVkZS9hc20vc3lzaW5mby5oCmluZGV4 IGZlN2IzZjhmMDc5MS4uYWIxYzYzMTYwNTVjIDEwMDY0NAotLS0gYS9hcmNoL3MzOTAvaW5jbHVk ZS9hc20vc3lzaW5mby5oCisrKyBiL2FyY2gvczM5MC9pbmNsdWRlL2FzbS9zeXNpbmZvLmgKQEAg LTY3LDEyICs2NywxMiBAQCBzdHJ1Y3Qgc3lzaW5mb18xXzJfMiB7CiAJdW5zaWduZWQgc2hvcnQg Y3B1c19jb25maWd1cmVkOwogCXVuc2lnbmVkIHNob3J0IGNwdXNfc3RhbmRieTsKIAl1bnNpZ25l ZCBzaG9ydCBjcHVzX3Jlc2VydmVkOwotCXVuc2lnbmVkIHNob3J0IGFkanVzdG1lbnRbMF07CisJ dW5zaWduZWQgc2hvcnQgYWRqdXN0bWVudFtdOwogfTsKIAogc3RydWN0IHN5c2luZm9fMV8yXzJf ZXh0ZW5zaW9uIHsKIAl1bnNpZ25lZCBpbnQgYWx0X2NhcGFiaWxpdHk7Ci0JdW5zaWduZWQgc2hv cnQgYWx0X2FkanVzdG1lbnRbMF07CisJdW5zaWduZWQgc2hvcnQgYWx0X2FkanVzdG1lbnRbXTsK IH07CiAKIHN0cnVjdCBzeXNpbmZvXzJfMl8xIHsKQEAgLTE4MSw3ICsxODEsNyBAQCBzdHJ1Y3Qg c3lzaW5mb18xNV8xX3ggewogCXVuc2lnbmVkIGNoYXIgcmVzZXJ2ZWQxOwogCXVuc2lnbmVkIGNo YXIgbW5lc3Q7CiAJdW5zaWduZWQgY2hhciByZXNlcnZlZDJbNF07Ci0JdW5pb24gdG9wb2xvZ3lf ZW50cnkgdGxlWzBdOworCXVuaW9uIHRvcG9sb2d5X2VudHJ5IHRsZVtdOwogfTsKIAogaW50IHN0 c2kodm9pZCAqc3lzaW5mbywgaW50IGZjLCBpbnQgc2VsMSwgaW50IHNlbDIpOwpkaWZmIC0tZ2l0 IGEvYXJjaC9zaC9pbmNsdWRlL2FzbS90aHJlYWRfaW5mby5oIGIvYXJjaC9zaC9pbmNsdWRlL2Fz bS90aHJlYWRfaW5mby5oCmluZGV4IDU5OGQwMTg0ZmZlYS4uM2EyZDUwZDYxZmM5IDEwMDY0NAot LS0gYS9hcmNoL3NoL2luY2x1ZGUvYXNtL3RocmVhZF9pbmZvLmgKKysrIGIvYXJjaC9zaC9pbmNs dWRlL2FzbS90aHJlYWRfaW5mby5oCkBAIC0zMyw3ICszMyw3IEBAIHN0cnVjdCB0aHJlYWRfaW5m byB7CiAJbW1fc2VnbWVudF90CQlhZGRyX2xpbWl0OwkvKiB0aHJlYWQgYWRkcmVzcyBzcGFjZSAq LwogCXVuc2lnbmVkIGxvbmcJCXByZXZpb3VzX3NwOwkvKiBzcCBvZiBwcmV2aW91cyBzdGFjayBp biBjYXNlCiAJCQkJCQkgICBvZiBuZXN0ZWQgSVJRIHN0YWNrcyAqLwotCV9fdTgJCQlzdXBlcnZp c29yX3N0YWNrWzBdOworCV9fdTgJCQlzdXBlcnZpc29yX3N0YWNrW107CiB9OwogCiAjZW5kaWYK ZGlmZiAtLWdpdCBhL2FyY2gvc3BhcmMvaW5jbHVkZS9hc20vdmlvLmggYi9hcmNoL3NwYXJjL2lu Y2x1ZGUvYXNtL3Zpby5oCmluZGV4IDhhMWE4M2JiYjZkNS4uMmQ3YmRmNjY1ZmQzIDEwMDY0NAot LS0gYS9hcmNoL3NwYXJjL2luY2x1ZGUvYXNtL3Zpby5oCisrKyBiL2FyY2gvc3BhcmMvaW5jbHVk ZS9hc20vdmlvLmgKQEAgLTcwLDcgKzcwLDcgQEAgc3RydWN0IHZpb19kcmluZ19yZWdpc3RlciB7 CiAjZGVmaW5lIFZJT19SWF9EUklOR19EQVRBCTB4MDAwNAogCXUxNgkJCXJlc3Y7CiAJdTMyCQkJ bnVtX2Nvb2tpZXM7Ci0Jc3RydWN0IGxkY190cmFuc19jb29raWUJY29va2llc1swXTsKKwlzdHJ1 Y3QgbGRjX3RyYW5zX2Nvb2tpZQljb29raWVzW107CiB9OwogCiBzdHJ1Y3QgdmlvX2RyaW5nX3Vu cmVnaXN0ZXIgewpAQCAtMTYxLDcgKzE2MSw3IEBAIHN0cnVjdCB2aW9fZGlza19kZXNjIHsKIAl1 NjQJCQlzaXplOwogCXUzMgkJCW5jb29raWVzOwogCXUzMgkJCXJlc3YyOwotCXN0cnVjdCBsZGNf dHJhbnNfY29va2llCWNvb2tpZXNbMF07CisJc3RydWN0IGxkY190cmFuc19jb29raWUJY29va2ll c1tdOwogfTsKIAogI2RlZmluZSBWSU9fRElTS19WTkFNRV9MRU4JOApAQCAtMjAwLDEzICsyMDAs MTMgQEAgc3RydWN0IHZpb19kaXNrX2RldmlkIHsKIAl1MTYJCQlyZXN2OwogCXUxNgkJCXR5cGU7 CiAJdTMyCQkJbGVuOwotCWNoYXIJCQlpZFswXTsKKwljaGFyCQkJaWRbXTsKIH07CiAKIHN0cnVj dCB2aW9fZGlza19lZmkgewogCXU2NAkJCWxiYTsKIAl1NjQJCQlsZW47Ci0JY2hhcgkJCWRhdGFb MF07CisJY2hhcgkJCWRhdGFbXTsKIH07CiAKIC8qIFZJTyBuZXQgc3BlY2lmaWMgc3RydWN0dXJl cyBhbmQgZGVmaW5lcyAqLwpAQCAtMjQ2LDcgKzI0Niw3IEBAIHN0cnVjdCB2aW9fbmV0X2Rlc2Mg ewogCXN0cnVjdCB2aW9fZHJpbmdfaGRyCWhkcjsKIAl1MzIJCQlzaXplOwogCXUzMgkJCW5jb29r aWVzOwotCXN0cnVjdCBsZGNfdHJhbnNfY29va2llCWNvb2tpZXNbMF07CisJc3RydWN0IGxkY190 cmFuc19jb29raWUJY29va2llc1tdOwogfTsKIAogc3RydWN0IHZpb19uZXRfZGV4dCB7CmRpZmYg LS1naXQgYS9hcmNoL3VtL2luY2x1ZGUvc2hhcmVkL25ldF9rZXJuLmggYi9hcmNoL3VtL2luY2x1 ZGUvc2hhcmVkL25ldF9rZXJuLmgKaW5kZXggNDQxYThhMzA5MzI5Li42N2IyZTlhMWYyZTUgMTAw NjQ0Ci0tLSBhL2FyY2gvdW0vaW5jbHVkZS9zaGFyZWQvbmV0X2tlcm4uaAorKysgYi9hcmNoL3Vt L2luY2x1ZGUvc2hhcmVkL25ldF9rZXJuLmgKQEAgLTM5LDcgKzM5LDcgQEAgc3RydWN0IHVtbF9u ZXRfcHJpdmF0ZSB7CiAKIAl2b2lkICgqYWRkX2FkZHJlc3MpKHVuc2lnbmVkIGNoYXIgKiwgdW5z aWduZWQgY2hhciAqLCB2b2lkICopOwogCXZvaWQgKCpkZWxldGVfYWRkcmVzcykodW5zaWduZWQg Y2hhciAqLCB1bnNpZ25lZCBjaGFyICosIHZvaWQgKik7Ci0JY2hhciB1c2VyWzBdOworCWNoYXIg dXNlcltdOwogfTsKIAogc3RydWN0IG5ldF9rZXJuX2luZm8gewpkaWZmIC0tZ2l0IGEvYXJjaC94 ODYvaW5jbHVkZS9hc20vbWljcm9jb2RlX2FtZC5oIGIvYXJjaC94ODYvaW5jbHVkZS9hc20vbWlj cm9jb2RlX2FtZC5oCmluZGV4IDcwNjNiNWE0MzIyMC4uYWMzMWY5MTQwZDA3IDEwMDY0NAotLS0g YS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9taWNyb2NvZGVfYW1kLmgKKysrIGIvYXJjaC94ODYvaW5j bHVkZS9hc20vbWljcm9jb2RlX2FtZC5oCkBAIC0zOCw3ICszOCw3IEBAIHN0cnVjdCBtaWNyb2Nv ZGVfaGVhZGVyX2FtZCB7CiAKIHN0cnVjdCBtaWNyb2NvZGVfYW1kIHsKIAlzdHJ1Y3QgbWljcm9j b2RlX2hlYWRlcl9hbWQJaGRyOwotCXVuc2lnbmVkIGludAkJCW1wYlswXTsKKwl1bnNpZ25lZCBp bnQJCQltcGJbXTsKIH07CiAKICNkZWZpbmUgUEFUQ0hfTUFYX1NJWkUgKDMgKiBQQUdFX1NJWkUp CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9taWNyb2NvZGVfaW50ZWwuaCBiL2Fy Y2gveDg2L2luY2x1ZGUvYXNtL21pY3JvY29kZV9pbnRlbC5oCmluZGV4IGQ4NWEwN2Q3MTU0Zi4u NGM5MmNlYTdlNGI1IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9taWNyb2NvZGVf aW50ZWwuaAorKysgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9taWNyb2NvZGVfaW50ZWwuaApAQCAt MTksNyArMTksNyBAQCBzdHJ1Y3QgbWljcm9jb2RlX2hlYWRlcl9pbnRlbCB7CiAKIHN0cnVjdCBt aWNyb2NvZGVfaW50ZWwgewogCXN0cnVjdCBtaWNyb2NvZGVfaGVhZGVyX2ludGVsIGhkcjsKLQl1 bnNpZ25lZCBpbnQgICAgICAgICAgICBiaXRzWzBdOworCXVuc2lnbmVkIGludCAgICAgICAgICAg IGJpdHNbXTsKIH07CiAKIC8qIG1pY3JvY29kZSBmb3JtYXQgaXMgZXh0ZW5kZWQgZnJvbSBwcmVz Y290dCBwcm9jZXNzb3JzICovCkBAIC0zMyw3ICszMyw3IEBAIHN0cnVjdCBleHRlbmRlZF9zaWd0 YWJsZSB7CiAJdW5zaWduZWQgaW50ICAgICAgICAgICAgY291bnQ7CiAJdW5zaWduZWQgaW50ICAg ICAgICAgICAgY2tzdW07CiAJdW5zaWduZWQgaW50ICAgICAgICAgICAgcmVzZXJ2ZWRbM107Ci0J c3RydWN0IGV4dGVuZGVkX3NpZ25hdHVyZSBzaWdzWzBdOworCXN0cnVjdCBleHRlbmRlZF9zaWdu YXR1cmUgc2lnc1tdOwogfTsKIAogI2RlZmluZSBERUZBVUxUX1VDT0RFX0RBVEFTSVpFCSgyMDAw KQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVkZS9hc20vcGNpLmggYi9hcmNoL3g4Ni9pbmNs dWRlL2FzbS9wY2kuaAppbmRleCBkMmM3NmM4ZDhjZmQuLmYzZmQ1OTI4YmNiYiAxMDA2NDQKLS0t IGEvYXJjaC94ODYvaW5jbHVkZS9hc20vcGNpLmgKKysrIGIvYXJjaC94ODYvaW5jbHVkZS9hc20v cGNpLmgKQEAgLTEzNSw3ICsxMzUsNyBAQCBzdHJ1Y3QgcGNpX3NldHVwX3JvbSB7CiAJdW5zaWdu ZWQgbG9uZyBidXM7CiAJdW5zaWduZWQgbG9uZyBkZXZpY2U7CiAJdW5zaWduZWQgbG9uZyBmdW5j dGlvbjsKLQl1aW50OF90IHJvbWRhdGFbMF07CisJdWludDhfdCByb21kYXRhW107CiB9OwogCiAj ZW5kaWYgLyogX0FTTV9YODZfUENJX0ggKi8KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUv YXNtL3BjaV94ODYuaCBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BjaV94ODYuaAppbmRleCA0OTA0 MTFkYmE0MzguLjNmYjZmYzU5NjA5NSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9hc20v cGNpX3g4Ni5oCisrKyBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BjaV94ODYuaApAQCAtODcsNyAr ODcsNyBAQCBzdHJ1Y3QgaXJxX3JvdXRpbmdfdGFibGUgewogCXUzMiBtaW5pcG9ydF9kYXRhOwkJ LyogQ3JhcCAqLwogCXU4IHJmdVsxMV07CiAJdTggY2hlY2tzdW07CQkJLyogTW9kdWxvIDI1NiBj aGVja3N1bSBtdXN0IGdpdmUgMCAqLwotCXN0cnVjdCBpcnFfaW5mbyBzbG90c1swXTsKKwlzdHJ1 Y3QgaXJxX2luZm8gc2xvdHNbXTsKIH0gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CiAKIGV4dGVy biB1bnNpZ25lZCBpbnQgcGNpYmlvc19pcnFfbWFzazsKZGlmZiAtLWdpdCBhL2FyY2gveHRlbnNh L2luY2x1ZGUvYXNtL2Jvb3RwYXJhbS5oIGIvYXJjaC94dGVuc2EvaW5jbHVkZS9hc20vYm9vdHBh cmFtLmgKaW5kZXggODkyYWFiMzk5YWM4Li42MzMzYmQxZWI5ZDIgMTAwNjQ0Ci0tLSBhL2FyY2gv eHRlbnNhL2luY2x1ZGUvYXNtL2Jvb3RwYXJhbS5oCisrKyBiL2FyY2gveHRlbnNhL2luY2x1ZGUv YXNtL2Jvb3RwYXJhbS5oCkBAIC0zNCw3ICszNCw3IEBACiB0eXBlZGVmIHN0cnVjdCBicF90YWcg ewogCXVuc2lnbmVkIHNob3J0IGlkOwkvKiB0YWcgaWQgKi8KIAl1bnNpZ25lZCBzaG9ydCBzaXpl OwkvKiBzaXplIG9mIHRoaXMgcmVjb3JkIGV4Y2x1ZGluZyB0aGUgc3RydWN0dXJlKi8KLQl1bnNp Z25lZCBsb25nIGRhdGFbMF07CS8qIGRhdGEgKi8KKwl1bnNpZ25lZCBsb25nIGRhdGFbXTsJLyog ZGF0YSAqLwogfSBicF90YWdfdDsKIAogc3RydWN0IGJwX21lbWluZm8gewpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9jcnlwdG8vY2FhbS9wZGIuaCBiL2RyaXZlcnMvY3J5cHRvL2NhYW0vcGRiLmgKaW5k ZXggOGNjYzIyMDc1MDQzLi40YjFiY2Y1M2Y3YWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY3J5cHRv L2NhYW0vcGRiLmgKKysrIGIvZHJpdmVycy9jcnlwdG8vY2FhbS9wZGIuaApAQCAtMTQ0LDcgKzE0 NCw3IEBAIHN0cnVjdCBpcHNlY19lbmNhcF9wZGIgewogCX07CiAJdTMyIHNwaTsKIAl1MzIgaXBf aGRyX2xlbjsKLQl1MzIgaXBfaGRyWzBdOworCXUzMiBpcF9oZHJbXTsKIH07CiAKIC8qKgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX2Fkcy5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX2Fkcy5jCmluZGV4IDFhMWVkYWU2N2U0 ZS4uM2FjZWUwMDYwZTIzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9p bnRlbF9ndWNfYWRzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3Vj X2Fkcy5jCkBAIC01MSw3ICs1MSw3IEBAIHN0cnVjdCBfX2d1Y19hZHNfYmxvYiB7CiAJc3RydWN0 IGd1Y19ndF9zeXN0ZW1faW5mbyBzeXN0ZW1faW5mbzsKIAlzdHJ1Y3QgZ3VjX2VuZ2luZV91c2Fn ZSBlbmdpbmVfdXNhZ2U7CiAJLyogRnJvbSBoZXJlIG9uLCBsb2NhdGlvbiBpcyBkeW5hbWljISBS ZWZlciB0byBhYm92ZSBkaWFncmFtLiAqLwotCXN0cnVjdCBndWNfbW1pb19yZWcgcmVnc2V0WzBd OworCXN0cnVjdCBndWNfbW1pb19yZWcgcmVnc2V0W107CiB9IF9fcGFja2VkOwogCiBzdGF0aWMg dTMyIGd1Y19hZHNfcmVnc2V0X3NpemUoc3RydWN0IGludGVsX2d1YyAqZ3VjKQpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvaW5jbHVkZS9udmZ3L2hzLmggYi9kcml2ZXJzL2dw dS9kcm0vbm91dmVhdS9pbmNsdWRlL252ZncvaHMuaAppbmRleCA2NGQwZDMyMjAwYzIuLmI1M2Ji YzRjZDEzMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvaW5jbHVkZS9udmZ3 L2hzLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvaW5jbHVkZS9udmZ3L2hzLmgKQEAg LTIzLDcgKzIzLDcgQEAgc3RydWN0IG52ZndfaHNfbG9hZF9oZWFkZXIgewogCXUzMiBkYXRhX2Rt YV9iYXNlOwogCXUzMiBkYXRhX3NpemU7CiAJdTMyIG51bV9hcHBzOwotCXUzMiBhcHBzWzBdOwor CXUzMiBhcHBzW107CiB9OwogCiBjb25zdCBzdHJ1Y3QgbnZmd19oc19sb2FkX2hlYWRlciAqCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2h3dHJhY2luZy9jb3Jlc2lnaHQvY29yZXNpZ2h0LWNvbmZpZy5o IGIvZHJpdmVycy9od3RyYWNpbmcvY29yZXNpZ2h0L2NvcmVzaWdodC1jb25maWcuaAppbmRleCA5 YmQ0NGI5NDBhZGQuLjJlMTY3MDUyMzQ2MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9od3RyYWNpbmcv Y29yZXNpZ2h0L2NvcmVzaWdodC1jb25maWcuaAorKysgYi9kcml2ZXJzL2h3dHJhY2luZy9jb3Jl c2lnaHQvY29yZXNpZ2h0LWNvbmZpZy5oCkBAIC0yMzEsNyArMjMxLDcgQEAgc3RydWN0IGNzY2Zn X2NvbmZpZ19jc2RldiB7CiAJYm9vbCBlbmFibGVkOwogCXN0cnVjdCBsaXN0X2hlYWQgbm9kZTsK IAlpbnQgbnJfZmVhdDsKLQlzdHJ1Y3QgY3NjZmdfZmVhdHVyZV9jc2RldiAqZmVhdHNfY3NkZXZb MF07CisJc3RydWN0IGNzY2ZnX2ZlYXR1cmVfY3NkZXYgKmZlYXRzX2NzZGV2W107CiB9OwogCiAv KioKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWlzYy9iY20tdmsvYmNtX3ZrLmggYi9kcml2ZXJzL21p c2MvYmNtLXZrL2JjbV92ay5oCmluZGV4IGExMzM4ZjM3NTU4OS4uMjVkNTEyMjJlZWRmIDEwMDY0 NAotLS0gYS9kcml2ZXJzL21pc2MvYmNtLXZrL2JjbV92ay5oCisrKyBiL2RyaXZlcnMvbWlzYy9i Y20tdmsvYmNtX3ZrLmgKQEAgLTMxMSw3ICszMTEsNyBAQCBzdHJ1Y3QgYmNtX3ZrX3BlZXJfbG9n IHsKIAl1MzIgd3JfaWR4OwogCXUzMiBidWZfc2l6ZTsKIAl1MzIgbWFzazsKLQljaGFyIGRhdGFb MF07CisJY2hhciBkYXRhW107CiB9OwogCiAvKiBtYXggYnVmIHNpemUgYWxsb3dlZCAqLwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9taXNjL2hhYmFuYWxhYnMvaW5jbHVkZS9jb21tb24vY3B1Y3BfaWYu aCBiL2RyaXZlcnMvbWlzYy9oYWJhbmFsYWJzL2luY2x1ZGUvY29tbW9uL2NwdWNwX2lmLmgKaW5k ZXggNzM3YzM5ZjMzZjA1Li5mOWM0YWNjOWJmNWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWlzYy9o YWJhbmFsYWJzL2luY2x1ZGUvY29tbW9uL2NwdWNwX2lmLmgKKysrIGIvZHJpdmVycy9taXNjL2hh YmFuYWxhYnMvaW5jbHVkZS9jb21tb24vY3B1Y3BfaWYuaApAQCAtNTQwLDE5ICs1NDAsMTkgQEAg c3RydWN0IGNwdWNwX3BhY2tldCB7CiBzdHJ1Y3QgY3B1Y3BfdW5tYXNrX2lycV9hcnJfcGFja2V0 IHsKIAlzdHJ1Y3QgY3B1Y3BfcGFja2V0IGNwdWNwX3BrdDsKIAlfX2xlMzIgbGVuZ3RoOwotCV9f bGUzMiBpcnFzWzBdOworCV9fbGUzMiBpcnFzW107CiB9OwogCiBzdHJ1Y3QgY3B1Y3BfbmljX3N0 YXR1c19wYWNrZXQgewogCXN0cnVjdCBjcHVjcF9wYWNrZXQgY3B1Y3BfcGt0OwogCV9fbGUzMiBs ZW5ndGg7Ci0JX19sZTMyIGRhdGFbMF07CisJX19sZTMyIGRhdGFbXTsKIH07CiAKIHN0cnVjdCBj cHVjcF9hcnJheV9kYXRhX3BhY2tldCB7CiAJc3RydWN0IGNwdWNwX3BhY2tldCBjcHVjcF9wa3Q7 CiAJX19sZTMyIGxlbmd0aDsKLQlfX2xlMzIgZGF0YVswXTsKKwlfX2xlMzIgZGF0YVtdOwogfTsK IAogZW51bSBjcHVjcF9wYWNrZXRfcmMgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9taXNjL2hhYmFu YWxhYnMvaW5jbHVkZS9nYXVkaS9nYXVkaV9wYWNrZXRzLmggYi9kcml2ZXJzL21pc2MvaGFiYW5h bGFicy9pbmNsdWRlL2dhdWRpL2dhdWRpX3BhY2tldHMuaAppbmRleCA2ZTA5N2FjZTJlOTYuLjY2 ZmMwODNhN2M2YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9taXNjL2hhYmFuYWxhYnMvaW5jbHVkZS9n YXVkaS9nYXVkaV9wYWNrZXRzLmgKKysrIGIvZHJpdmVycy9taXNjL2hhYmFuYWxhYnMvaW5jbHVk ZS9nYXVkaS9nYXVkaV9wYWNrZXRzLmgKQEAgLTU0LDcgKzU0LDcgQEAgc3RydWN0IGdhdWRpX3Bh Y2tldCB7CiAJLyogVGhlIHJlc3Qgb2YgdGhlIHBhY2tldCBkYXRhIGZvbGxvd3MuIFVzZSB0aGUg Y29ycmVzcG9uZGluZwogCSAqIHBhY2tldF9YWFggc3RydWN0IHRvIGRlZmVyZW5jZSB0aGUgZGF0 YSwgYmFzZWQgb24gcGFja2V0IHR5cGUKIAkgKi8KLQl1OCBjb250ZW50c1swXTsKKwl1OCBjb250 ZW50c1tdOwogfTsKIAogc3RydWN0IHBhY2tldF9ub3AgewpAQCAtNzUsNyArNzUsNyBAQCBzdHJ1 Y3QgcGFja2V0X3dyZWczMiB7CiBzdHJ1Y3QgcGFja2V0X3dyZWdfYnVsayB7CiAJX19sZTMyIHNp emU2NDsKIAlfX2xlMzIgY3RsOwotCV9fbGU2NCB2YWx1ZXNbMF07IC8qIGRhdGEgc3RhcnRzIGhl cmUgKi8KKwlfX2xlNjQgdmFsdWVzW107IC8qIGRhdGEgc3RhcnRzIGhlcmUgKi8KIH07CiAKICNk ZWZpbmUgR0FVRElfUEtUX0xPTkdfQ1RMX09QX1NISUZUCQkyMApkaWZmIC0tZ2l0IGEvZHJpdmVy cy9taXNjL2hhYmFuYWxhYnMvaW5jbHVkZS9nb3lhL2dveWFfcGFja2V0cy5oIGIvZHJpdmVycy9t aXNjL2hhYmFuYWxhYnMvaW5jbHVkZS9nb3lhL2dveWFfcGFja2V0cy5oCmluZGV4IGVmNTRiYWQy MDUwOS4uNTBjZTUxNzViNjNhIDEwMDY0NAotLS0gYS9kcml2ZXJzL21pc2MvaGFiYW5hbGFicy9p bmNsdWRlL2dveWEvZ295YV9wYWNrZXRzLmgKKysrIGIvZHJpdmVycy9taXNjL2hhYmFuYWxhYnMv aW5jbHVkZS9nb3lhL2dveWFfcGFja2V0cy5oCkBAIC02Miw3ICs2Miw3IEBAIHN0cnVjdCBnb3lh X3BhY2tldCB7CiAJLyogVGhlIHJlc3Qgb2YgdGhlIHBhY2tldCBkYXRhIGZvbGxvd3MuIFVzZSB0 aGUgY29ycmVzcG9uZGluZwogCSAqIHBhY2tldF9YWFggc3RydWN0IHRvIGRlZmVyZW5jZSB0aGUg ZGF0YSwgYmFzZWQgb24gcGFja2V0IHR5cGUKIAkgKi8KLQl1OCBjb250ZW50c1swXTsKKwl1OCBj b250ZW50c1tdOwogfTsKIAogc3RydWN0IHBhY2tldF9ub3AgewpAQCAtODYsNyArODYsNyBAQCBz dHJ1Y3QgcGFja2V0X3dyZWczMiB7CiBzdHJ1Y3QgcGFja2V0X3dyZWdfYnVsayB7CiAJX19sZTMy IHNpemU2NDsKIAlfX2xlMzIgY3RsOwotCV9fbGU2NCB2YWx1ZXNbMF07IC8qIGRhdGEgc3RhcnRz IGhlcmUgKi8KKwlfX2xlNjQgdmFsdWVzW107IC8qIGRhdGEgc3RhcnRzIGhlcmUgKi8KIH07CiAK IHN0cnVjdCBwYWNrZXRfbXNnX2xvbmcgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJu ZXQvZnJlZXNjYWxlL2VuZXRjL2VuZXRjX2h3LmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVl c2NhbGUvZW5ldGMvZW5ldGNfaHcuaAppbmRleCAxNTE0ZTZhNGEzZmYuLmNlNWI2NzdlOGMyZiAx MDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2VuZXRjL2VuZXRjX2h3 LmgKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2VuZXRjL2VuZXRjX2h3LmgK QEAgLTg4MSw3ICs4ODEsNyBAQCBzdHJ1Y3Qgc2djbF9kYXRhIHsKIAl1MzIJCWJ0aDsKIAl1MzIJ CWN0OwogCXUzMgkJY3RlOwotCXN0cnVjdCBzZ2NlCXNnY2xbMF07CisJc3RydWN0IHNnY2UJc2dj bFtdOwogfTsKIAogI2RlZmluZSBFTkVUQ19DQkRSX0ZNSV9NUglCSVQoMCkKZGlmZiAtLWdpdCBh L2RyaXZlcnMvbmV0L2V0aGVybmV0L2k4MjV4eC9zdW4zXzgyNTg2LmggYi9kcml2ZXJzL25ldC9l dGhlcm5ldC9pODI1eHgvc3VuM184MjU4Ni5oCmluZGV4IDc5YWVmNjgxYWM4NS4uNDUxY2IzZDI2 Y2I1IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pODI1eHgvc3VuM184MjU4Ni5o CisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2k4MjV4eC9zdW4zXzgyNTg2LmgKQEAgLTI1MCw3 ICsyNTAsNyBAQCBzdHJ1Y3QgbWNzZXR1cF9jbWRfc3RydWN0CiAgIHVuc2lnbmVkIHNob3J0IGNt ZF9jbWQ7CiAgIHVuc2lnbmVkIHNob3J0IGNtZF9saW5rOwogICB1bnNpZ25lZCBzaG9ydCBtY19j bnQ7CQkvKiBudW1iZXIgb2YgYnl0ZXMgaW4gdGhlIE1DLUxpc3QgKi8KLSAgdW5zaWduZWQgY2hh ciAgbWNfbGlzdFswXVs2XTsgIAkvKiBwb2ludGVyIHRvIDYgYnl0ZXMgZW50cmllcyAqLworICB1 bnNpZ25lZCBjaGFyICBtY19saXN0W11bNl07ICAJLyogcG9pbnRlciB0byA2IGJ5dGVzIGVudHJp ZXMgKi8KIH07CiAKIC8qCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxs L29jdGVvbnR4Mi9hZi9ucGMuaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9u dHgyL2FmL25wYy5oCmluZGV4IDc3ZmQzOWUyYzhkYi4uOWI2ZTU4N2U3OGI0IDEwMDY0NAotLS0g YS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ucGMuaAorKysgYi9k cml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ucGMuaApAQCAtNDU1LDcg KzQ1NSw3IEBAIHN0cnVjdCBucGNfY29hbGVzY2VkX2twdV9wcmZsIHsKIAl1OCBuYW1lW05QQ19O QU1FX0xFTl07IC8qIEtQVSBQcm9maWxlIG5hbWUgKi8KIAl1NjQgdmVyc2lvbjsgLyogS1BVIGZp cm13YXJlL3Byb2ZpbGUgdmVyc2lvbiAqLwogCXU4IG51bV9wcmZsOyAvKiBObyBvZiBOUEMgcHJv ZmlsZXMuICovCi0JdTE2IHByZmxfc3pbMF07CisJdTE2IHByZmxfc3pbXTsKIH07CiAKIHN0cnVj dCBucGNfbWNhbV9rZXggewpAQCAtNDgyLDcgKzQ4Miw3IEBAIHN0cnVjdCBucGNfa3B1X2Z3ZGF0 YSB7CiAJICogc3RydWN0IG5wY19rcHVfcHJvZmlsZV9jYW1bZW50cmllc107CiAJICogc3RydWN0 IG5wY19rcHVfcHJvZmlsZV9hY3Rpb25bZW50cmllc107CiAJICovCi0JdTgJZGF0YVswXTsKKwl1 OAlkYXRhW107CiB9IF9fcGFja2VkOwogCiBzdHJ1Y3QgbnBjX2x0X2RlZiB7CkBAIC01NzIsNyAr NTcyLDcgQEAgc3RydWN0IG5wY19rcHVfcHJvZmlsZV9md2RhdGEgewogCSAqICBDdXN0b20gS1BV IENBTSBhbmQgQUNUSU9OIGNvbmZpZ3VyYXRpb24gZW50cmllcy4KIAkgKiBzdHJ1Y3QgbnBjX2tw dV9md2RhdGEga3B1W2twdXNdOwogCSAqLwotCXU4CWRhdGFbMF07CisJdTgJZGF0YVtdOwogfSBf X3BhY2tlZDsKIAogc3RydWN0IHJ2dV9ucGNfbWNhbV9ydWxlIHsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L2V0aGVybmV0L3Fsb2dpYy9xZWQvcWVkX21md19oc2kuaCBiL2RyaXZlcnMvbmV0L2V0 aGVybmV0L3Fsb2dpYy9xZWQvcWVkX21md19oc2kuaAppbmRleCBiNzBlZTgyMDBlMTUuLjY0NTlk ZDNmZWIzNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvcWxvZ2ljL3FlZC9xZWRf bWZ3X2hzaS5oCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3Fsb2dpYy9xZWQvcWVkX21md19o c2kuaApAQCAtMjQ3MCw2ICsyNDcwLDYgQEAgc3RydWN0IG52bV9tZXRhX2Jpbl90IHsKIAl1MzIg dmVyc2lvbjsKICNkZWZpbmUgTlZNX01FVEFfQklOX1ZFUlNJT04gMQogCXUzMiBudW1fb3B0aW9u czsKLQl1MzIgb3B0aW9uc1swXTsKKwl1MzIgb3B0aW9uc1tdOwogfTsKICNlbmRpZgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvdGkvZGF2aW5jaV9tZGlvLmMgYi9kcml2ZXJzL25l dC9ldGhlcm5ldC90aS9kYXZpbmNpX21kaW8uYwppbmRleCBhNGVmZDVlMzUxNTguLmZjZTI2MjZl MzRmYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvdGkvZGF2aW5jaV9tZGlvLmMK KysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvdGkvZGF2aW5jaV9tZGlvLmMKQEAgLTcwLDcgKzcw LDcgQEAgc3RydWN0IGRhdmluY2lfbWRpb19yZWdzIHsKICNkZWZpbmUgVVNFUkFDQ0VTU19EQVRB CQkoMHhmZmZmKQogCiAJCXUzMglwaHlzZWw7Ci0JfQl1c2VyWzBdOworCX0JdXNlcltdOwogfTsK IAogc3RhdGljIGNvbnN0IHN0cnVjdCBtZGlvX3BsYXRmb3JtX2RhdGEgZGVmYXVsdF9wZGF0YSA9 IHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9kcHQvZHB0aV9pMm8uaCBiL2RyaXZlcnMvc2Nz aS9kcHQvZHB0aV9pMm8uaAppbmRleCBiZjBkYWVlYjUwYTkuLmUxZmJiZjU1YzA5ZCAxMDA2NDQK LS0tIGEvZHJpdmVycy9zY3NpL2RwdC9kcHRpX2kyby5oCisrKyBiL2RyaXZlcnMvc2NzaS9kcHQv ZHB0aV9pMm8uaApAQCAtMTIzLDcgKzEyMyw3IEBAIHN0cnVjdCBpMm9fc3lzX3RibAogCXUzMglj aGFuZ2VfaW5kOwogCXUzMglyZXNlcnZlZDI7CiAJdTMyCXJlc2VydmVkMzsKLQlzdHJ1Y3QgaTJv X3N5c190YmxfZW50cnkgaW9wc1swXTsKKwlzdHJ1Y3QgaTJvX3N5c190YmxfZW50cnkgaW9wc1td OwogfTsKIAogLyoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9lbHgvbGliZWZjX3NsaS9zbGk0 LmggYi9kcml2ZXJzL3Njc2kvZWx4L2xpYmVmY19zbGkvc2xpNC5oCmluZGV4IGVlMmE5ZTY1YTg4 ZC4uMzhhZjE2NmNjNzg2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvZWx4L2xpYmVmY19zbGkv c2xpNC5oCisrKyBiL2RyaXZlcnMvc2NzaS9lbHgvbGliZWZjX3NsaS9zbGk0LmgKQEAgLTYwOSw3 ICs2MDksNyBAQCBzdHJ1Y3Qgc2xpNF9ycXN0X2Ntbl9jcmVhdGVfY3FfdjIgewogCV9fbGUxNgkJ CWNxZV9jb3VudDsKIAlfX2xlMTYJCQlyc3ZkMzA7CiAJX19sZTMyCQkJcnN2ZDMyOwotCXN0cnVj dCBzbGk0X2RtYWFkZHIJcGFnZV9waHlzX2FkZHJbMF07CisJc3RydWN0IHNsaTRfZG1hYWRkcglw YWdlX3BoeXNfYWRkcltdOwogfTsKIAogZW51bSBzbGk0X2NyZWF0ZV9jcXNldF9lIHsKQEAgLTYz NCw3ICs2MzQsNyBAQCBzdHJ1Y3Qgc2xpNF9ycXN0X2Ntbl9jcmVhdGVfY3Ffc2V0X3YwIHsKIAlf X2xlMTYJCQludW1fY3FfcmVxOwogCV9fbGUxNgkJCWR3NncxX2ZsYWdzOwogCV9fbGUxNgkJCWVx X2lkWzE2XTsKLQlzdHJ1Y3Qgc2xpNF9kbWFhZGRyCXBhZ2VfcGh5c19hZGRyWzBdOworCXN0cnVj dCBzbGk0X2RtYWFkZHIJcGFnZV9waHlzX2FkZHJbXTsKIH07CiAKIC8qIENRRSBjb3VudCAqLwpA QCAtNzY0LDcgKzc2NCw3IEBAIHN0cnVjdCBzbGk0X3Jxc3RfY21uX2NyZWF0ZV9tcV9leHQgewog CV9fbGUzMgkJCWR3N192YWw7CiAJX19sZTMyCQkJZHc4X2ZsYWdzOwogCV9fbGUzMgkJCXJzdmQz NjsKLQlzdHJ1Y3Qgc2xpNF9kbWFhZGRyCXBhZ2VfcGh5c19hZGRyWzBdOworCXN0cnVjdCBzbGk0 X2RtYWFkZHIJcGFnZV9waHlzX2FkZHJbXTsKIH07CiAKIHN0cnVjdCBzbGk0X3JzcF9jbW5fY3Jl YXRlX21xX2V4dCB7CkBAIC04MDIsNyArODAyLDcgQEAgc3RydWN0IHNsaTRfcnFzdF9jbW5fY3Jl YXRlX2NxX3YwIHsKIAlfX2xlMzIJCQlkdzZfZmxhZ3M7CiAJX19sZTMyCQkJcnN2ZDI4OwogCV9f bGUzMgkJCXJzdmQzMjsKLQlzdHJ1Y3Qgc2xpNF9kbWFhZGRyCXBhZ2VfcGh5c19hZGRyWzBdOwor CXN0cnVjdCBzbGk0X2RtYWFkZHIJcGFnZV9waHlzX2FkZHJbXTsKIH07CiAKIGVudW0gc2xpNF9j cmVhdGVfcnFfZSB7CkBAIC04ODcsNyArODg3LDcgQEAgc3RydWN0IHNsaTRfcnFzdF9ycV9jcmVh dGVfdjIgewogCV9fbGUxNgkJCWJhc2VfY3FfaWQ7CiAJX19sZTE2CQkJcnN2ZDI2OwogCV9fbGUz MgkJCXJzdmQ0MjsKLQlzdHJ1Y3Qgc2xpNF9kbWFhZGRyCXBhZ2VfcGh5c19hZGRyWzBdOworCXN0 cnVjdCBzbGk0X2RtYWFkZHIJcGFnZV9waHlzX2FkZHJbXTsKIH07CiAKIHN0cnVjdCBzbGk0X3Jz cF9ycV9jcmVhdGVfdjIgewpAQCAtMzE2OCw3ICszMTY4LDcgQEAgc3RydWN0IHNsaTRfcnFzdF9j bW5fcmVhZF9vYmplY3QgewogCV9fbGUzMgkJCXJlYWRfb2Zmc2V0OwogCXU4CQkJb2JqZWN0X25h bWVbMTA0XTsKIAlfX2xlMzIJCQlob3N0X2J1ZmZlcl9kZXNjcmlwdG9yX2NvdW50OwotCXN0cnVj dCBzbGk0X2JkZQkJaG9zdF9idWZmZXJfZGVzY3JpcHRvclswXTsKKwlzdHJ1Y3Qgc2xpNF9iZGUJ CWhvc3RfYnVmZmVyX2Rlc2NyaXB0b3JbXTsKIH07CiAKICNkZWZpbmUgUlNQX0NPTV9SRUFEX09C Sl9FT0YJCTB4ODAwMDAwMDAKQEAgLTMxOTEsNyArMzE5MSw3IEBAIHN0cnVjdCBzbGk0X3Jxc3Rf Y21uX3dyaXRlX29iamVjdCB7CiAJX19sZTMyCQkJd3JpdGVfb2Zmc2V0OwogCXU4CQkJb2JqZWN0 X25hbWVbMTA0XTsKIAlfX2xlMzIJCQlob3N0X2J1ZmZlcl9kZXNjcmlwdG9yX2NvdW50OwotCXN0 cnVjdCBzbGk0X2JkZQkJaG9zdF9idWZmZXJfZGVzY3JpcHRvclswXTsKKwlzdHJ1Y3Qgc2xpNF9i ZGUJCWhvc3RfYnVmZmVyX2Rlc2NyaXB0b3JbXTsKIH07CiAKICNkZWZpbmUJUlNQX0NIQU5HRV9T VEFUVVMJCTB4ZmYKQEAgLTMyMTcsNyArMzIxNyw3IEBAIHN0cnVjdCBzbGk0X3Jxc3RfY21uX3Jl YWRfb2JqZWN0X2xpc3QgewogCV9fbGUzMgkJCXJlYWRfb2Zmc2V0OwogCXU4CQkJb2JqZWN0X25h bWVbMTA0XTsKIAlfX2xlMzIJCQlob3N0X2J1ZmZlcl9kZXNjcmlwdG9yX2NvdW50OwotCXN0cnVj dCBzbGk0X2JkZQkJaG9zdF9idWZmZXJfZGVzY3JpcHRvclswXTsKKwlzdHJ1Y3Qgc2xpNF9iZGUJ CWhvc3RfYnVmZmVyX2Rlc2NyaXB0b3JbXTsKIH07CiAKIGVudW0gc2xpNF9ycXN0X3NldF9kdW1w X2ZsYWdzIHsKQEAgLTMzNDIsNyArMzM0Miw3IEBAIHN0cnVjdCBzbGk0X3JzcG91cmNlX2Rlc2Ny aXB0b3JfdjEgewogCXU4CQlkZXNjcmlwdG9yX3R5cGU7CiAJdTgJCWRlc2NyaXB0b3JfbGVuZ3Ro OwogCV9fbGUxNgkJcnN2ZDE2OwotCV9fbGUzMgkJdHlwZV9zcGVjaWZpY1swXTsKKwlfX2xlMzIJ CXR5cGVfc3BlY2lmaWNbXTsKIH07CiAKIGVudW0gc2xpNF9wY2llX2Rlc2NfZmxhZ3MgewpAQCAt MzQ3NCw3ICszNDc0LDcgQEAgc3RydWN0IHNsaTRfcnFzdF9wb3N0X2hkcl90ZW1wbGF0ZXMgewog CXN0cnVjdCBzbGk0X3Jxc3RfaGRyCWhkcjsKIAlfX2xlMTYJCQlycGlfb2Zmc2V0OwogCV9fbGUx NgkJCXBhZ2VfY291bnQ7Ci0Jc3RydWN0IHNsaTRfZG1hYWRkcglwYWdlX2Rlc2NyaXB0b3JbMF07 CisJc3RydWN0IHNsaTRfZG1hYWRkcglwYWdlX2Rlc2NyaXB0b3JbXTsKIH07CiAKICNkZWZpbmUg U0xJNF9IRFJfVEVNUExBVEVfU0laRQkJNjQKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9tcGkz bXIvbXBpM21yLmggYi9kcml2ZXJzL3Njc2kvbXBpM21yL21waTNtci5oCmluZGV4IGZjNGVhZjZk MWU0Ny4uZmI3ZDg3NzVjOWY3IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvbXBpM21yL21waTNt ci5oCisrKyBiL2RyaXZlcnMvc2NzaS9tcGkzbXIvbXBpM21yLmgKQEAgLTg3OCw3ICs4NzgsNyBA QCBzdHJ1Y3QgbXBpM21yX2Z3ZXZ0IHsKIAlib29sIHByb2Nlc3NfZXZ0OwogCXUzMiBldnRfY3R4 OwogCXN0cnVjdCBrcmVmIHJlZl9jb3VudDsKLQljaGFyIGV2ZW50X2RhdGFbMF0gX19hbGlnbmVk KDQpOworCWNoYXIgZXZlbnRfZGF0YVtdIF9fYWxpZ25lZCg0KTsKIH07CiAKIApkaWZmIC0tZ2l0 IGEvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2JzZy5oIGIvZHJpdmVycy9zY3NpL3FsYTJ4eHgv cWxhX2JzZy5oCmluZGV4IDBmOGE0YzdlNTJhMi4uNmQyYjBhNzQzNmMxIDEwMDY0NAotLS0gYS9k cml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfYnNnLmgKKysrIGIvZHJpdmVycy9zY3NpL3FsYTJ4eHgv cWxhX2JzZy5oCkBAIC0xNTcsNyArMTU3LDcgQEAgc3RydWN0IHFsYTg0X21zZ19tZ210IHsKIAl1 aW50MTZfdCByc3J2ZDsKIAlzdHJ1Y3QgcWxhODRfbWdtdF9wYXJhbSBtZ210cDsvKiBwYXJhbWV0 ZXJzIGZvciBjbWQgKi8KIAl1aW50MzJfdCBsZW47IC8qIGJ5dGVzIGluIHBheWxvYWQgZm9sbG93 aW5nIHRoaXMgc3RydWN0ICovCi0JdWludDhfdCBwYXlsb2FkWzBdOyAvKiBwYXlsb2FkIGZvciBj bWQgKi8KKwl1aW50OF90IHBheWxvYWRbXTsgLyogcGF5bG9hZCBmb3IgY21kICovCiB9OwogCiBz dHJ1Y3QgcWxhX2JzZ19hODRfbWdtdCB7CkBAIC0yMTYsNyArMjE2LDcgQEAgc3RydWN0IHFsYV9p bWFnZV92ZXJzaW9uIHsKIAogc3RydWN0IHFsYV9pbWFnZV92ZXJzaW9uX2xpc3QgewogCXVpbnQz Ml90IGNvdW50OwotCXN0cnVjdCBxbGFfaW1hZ2VfdmVyc2lvbiB2ZXJzaW9uWzBdOworCXN0cnVj dCBxbGFfaW1hZ2VfdmVyc2lvbiB2ZXJzaW9uW107CiB9IF9fcGFja2VkOwogCiBzdHJ1Y3QgcWxh X3N0YXR1c19yZWcgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2RlZi5o IGIvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2RlZi5oCmluZGV4IDllYmY0YTIzNGQ5YS4uYjY0 MzRjNzJkZWUzIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfZGVmLmgKKysr IGIvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2RlZi5oCkBAIC01NDEwLDcgKzU0MTAsNyBAQCBz dHJ1Y3QgcWxfdm5kX3N0YXRfZW50cnkgewogc3RydWN0IHFsX3ZuZF9zdGF0cyB7CiAJdTY0IGVu dHJ5X2NvdW50OyAvKiBOdW0gb2YgZW50cmllcyAqLwogCXU2NCByc2VydmQ7Ci0Jc3RydWN0IHFs X3ZuZF9zdGF0X2VudHJ5IGVudHJ5WzBdOyAvKiBQbGFjZSBob2xkZXIgb2YgZW50cmllcyAqLwor CXN0cnVjdCBxbF92bmRfc3RhdF9lbnRyeSBlbnRyeVtdOyAvKiBQbGFjZSBob2xkZXIgb2YgZW50 cmllcyAqLwogfSBfX3BhY2tlZDsKIAogc3RydWN0IHFsX3ZuZF9ob3N0X3N0YXRzX3Jlc3Agewpk aWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2VkaWZfYnNnLmggYi9kcml2ZXJz L3Njc2kvcWxhMnh4eC9xbGFfZWRpZl9ic2cuaAppbmRleCA1MzAyNmQ4MmViZmYuLjVhMjZjNzcx NTdkYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2VkaWZfYnNnLmgKKysr IGIvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2VkaWZfYnNnLmgKQEAgLTEyMSw3ICsxMjEsNyBA QCBzdHJ1Y3QgYXBwX3BpbmZvIHsKIHN0cnVjdCBhcHBfcGluZm9fcmVwbHkgewogCXVpbnQ4X3QJ CXBvcnRfY291bnQ7CiAJdWludDhfdAkJcmVzZXJ2ZWRbVk5EX0NNRF9BUFBfUkVTRVJWRURfU0la RV07Ci0Jc3RydWN0IGFwcF9waW5mbyBwb3J0c1swXTsKKwlzdHJ1Y3QgYXBwX3BpbmZvIHBvcnRz W107CiB9IF9fcGFja2VkOwogCiBzdHJ1Y3QgYXBwX3NpbmZvX3JlcSB7CkBAIC0xNDAsNyArMTQw LDcgQEAgc3RydWN0IGFwcF9zaW5mbyB7CiAKIHN0cnVjdCBhcHBfc3RhdHNfcmVwbHkgewogCXVp bnQ4X3QJCWVsZW1fY291bnQ7Ci0Jc3RydWN0IGFwcF9zaW5mbyBlbGVtWzBdOworCXN0cnVjdCBh cHBfc2luZm8gZWxlbVtdOwogfSBfX3BhY2tlZDsKIAogc3RydWN0IHFsYV9zYV91cGRhdGVfZnJh bWUgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2Z3LmggYi9kcml2ZXJz L3Njc2kvcWxhMnh4eC9xbGFfZncuaAppbmRleCAwNzNkMDZlODhjNTguLjBiYjFkNTYyZjBiZiAx MDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2Z3LmgKKysrIGIvZHJpdmVycy9z Y3NpL3FsYTJ4eHgvcWxhX2Z3LmgKQEAgLTE3MDYsNyArMTcwNiw3IEBAIHN0cnVjdCBxbGFfZmx0 X2hlYWRlciB7CiAJX19sZTE2CWxlbmd0aDsKIAlfX2xlMTYJY2hlY2tzdW07CiAJX19sZTE2CXVu dXNlZDsKLQlzdHJ1Y3QgcWxhX2ZsdF9yZWdpb24gcmVnaW9uWzBdOworCXN0cnVjdCBxbGFfZmx0 X3JlZ2lvbiByZWdpb25bXTsKIH07CiAKICNkZWZpbmUgRkxUX1JFR0lPTl9TSVpFCQkxNgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9zY3NpL3FsYTR4eHgvcWw0X2Z3LmggYi9kcml2ZXJzL3Njc2kvcWxh NHh4eC9xbDRfZncuaAppbmRleCA0ZTE3NjRkZjBhNzMuLjg2MGVjNjFiNTFiOSAxMDA2NDQKLS0t IGEvZHJpdmVycy9zY3NpL3FsYTR4eHgvcWw0X2Z3LmgKKysrIGIvZHJpdmVycy9zY3NpL3FsYTR4 eHgvcWw0X2Z3LmgKQEAgLTEwMjgsNyArMTAyOCw3IEBAIHN0cnVjdCBjcmFzaF9yZWNvcmQgewog CiAJdWludDhfdCBvdXRfUklTQ19yZWdfZHVtcFsyNTZdOyAvKiA4MCAtMTdGICovCiAJdWludDhf dCBpbl9SSVNDX3JlZ19kdW1wWzI1Nl07CS8qMTgwIC0yN0YgKi8KLQl1aW50OF90IGluX291dF9S SVNDX3N0YWNrX2R1bXBbMF07CS8qMjgwIC0gPz8/ICovCisJdWludDhfdCBpbl9vdXRfUklTQ19z dGFja19kdW1wW107CS8qMjgwIC0gPz8/ICovCiB9OwogCiBzdHJ1Y3QgY29ubl9ldmVudF9sb2df ZW50cnkgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL3I4MTg4ZXUvaW5jbHVkZS9pZWVl ODAyMTEuaCBiL2RyaXZlcnMvc3RhZ2luZy9yODE4OGV1L2luY2x1ZGUvaWVlZTgwMjExLmgKaW5k ZXggM2EyM2Q1Mjk5MzE0Li41ZTdkZTYzMWI4ZWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3RhZ2lu Zy9yODE4OGV1L2luY2x1ZGUvaWVlZTgwMjExLmgKKysrIGIvZHJpdmVycy9zdGFnaW5nL3I4MTg4 ZXUvaW5jbHVkZS9pZWVlODAyMTEuaApAQCAtMTg1LDcgKzE4NSw3IEBAIHN0cnVjdCBpZWVlX3Bh cmFtIHsKIHN0cnVjdCBpZWVlX3BhcmFtX2V4IHsKIAl1MzIgY21kOwogCXU4IHN0YV9hZGRyW0VU SF9BTEVOXTsKLQl1OCBkYXRhWzBdOworCXU4IGRhdGFbXTsKIH07CiAKIHN0cnVjdCBzdGFfZGF0 YSB7CkBAIC03MTMsNyArNzEzLDcgQEAgc3RydWN0IGllZWU4MDIxMV9pbmZvX2VsZW1lbnRfaGRy IHsKIHN0cnVjdCBpZWVlODAyMTFfaW5mb19lbGVtZW50IHsKIAl1OCBpZDsKIAl1OCBsZW47Ci0J dTggZGF0YVswXTsKKwl1OCBkYXRhW107CiB9IF9fcGFja2VkOwogCiAvKgpAQCAtNzc2LDcgKzc3 Niw3IEBAIHN0cnVjdCBpZWVlODAyMTFfdHhiIHsKIAl1MTYgcmVzZXJ2ZWQ7CiAJdTE2IGZyYWdf c2l6ZTsKIAl1MTYgcGF5bG9hZF9zaXplOwotCXN0cnVjdCBza19idWZmICpmcmFnbWVudHNbMF07 CisJc3RydWN0IHNrX2J1ZmYgKmZyYWdtZW50c1tdOwogfTsKIAogLyogU1dFRVAgVEFCTEUgRU5U UklFUyBOVU1CRVIqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL3I4MTg4ZXUvaW5jbHVk ZS9ydHdfY21kLmggYi9kcml2ZXJzL3N0YWdpbmcvcjgxODhldS9pbmNsdWRlL3J0d19jbWQuaApp bmRleCBjZjA5NDVhZTExYzEuLmY4OTkxYTA0OTNkMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zdGFn aW5nL3I4MTg4ZXUvaW5jbHVkZS9ydHdfY21kLmgKKysrIGIvZHJpdmVycy9zdGFnaW5nL3I4MTg4 ZXUvaW5jbHVkZS9ydHdfY21kLmgKQEAgLTczLDcgKzczLDcgQEAgc3RydWN0IGMyaF9ldnRfaGRy IHsKIAl1OCBpZDo0OwogCXU4IHBsZW46NDsKIAl1OCBzZXE7Ci0JdTggcGF5bG9hZFswXTsKKwl1 OCBwYXlsb2FkW107CiB9OwogCiAjZGVmaW5lIGMyaF9ldnRfZXhpc3QoYzJoX2V2dCkgKChjMmhf ZXZ0KS0+aWQgfHwgKGMyaF9ldnQpLT5wbGVuKQpAQCAtNjYyLDI1ICs2NjIsMjUgQEAgc3RydWN0 IGdldGN1cnR4cHdybGV2ZWxfcnNwaSB7CiBzdHJ1Y3Qgc2V0cHJvYmVyZXFleHRyYWllX3Bhcm0g ewogCXVuc2lnbmVkIGNoYXIgZV9pZDsKIAl1bnNpZ25lZCBjaGFyIGllX2xlbjsKLQl1bnNpZ25l ZCBjaGFyIGllWzBdOworCXVuc2lnbmVkIGNoYXIgaWVbXTsKIH07CiAKIHN0cnVjdCBzZXRhc3Nv Y3JlcWV4dHJhaWVfcGFybSB7CiAJdW5zaWduZWQgY2hhciBlX2lkOwogCXVuc2lnbmVkIGNoYXIg aWVfbGVuOwotCXVuc2lnbmVkIGNoYXIgaWVbMF07CisJdW5zaWduZWQgY2hhciBpZVtdOwogfTsK IAogc3RydWN0IHNldHByb2JlcnNwZXh0cmFpZV9wYXJtIHsKIAl1bnNpZ25lZCBjaGFyIGVfaWQ7 CiAJdW5zaWduZWQgY2hhciBpZV9sZW47Ci0JdW5zaWduZWQgY2hhciBpZVswXTsKKwl1bnNpZ25l ZCBjaGFyIGllW107CiB9OwogCiBzdHJ1Y3Qgc2V0YXNzb2Nyc3BleHRyYWllX3Bhcm0gewogCXVu c2lnbmVkIGNoYXIgZV9pZDsKIAl1bnNpZ25lZCBjaGFyIGllX2xlbjsKLQl1bnNpZ25lZCBjaGFy IGllWzBdOworCXVuc2lnbmVkIGNoYXIgaWVbXTsKIH07CiAKIHN0cnVjdCBhZGRCYVJlcV9wYXJt IHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy9ydGw4NzEyL3J0bDg3MXhfY21kLmggYi9k cml2ZXJzL3N0YWdpbmcvcnRsODcxMi9ydGw4NzF4X2NtZC5oCmluZGV4IGRkZDY5YzRhZTIwOC4u OTVlOWVhNWIyZDk4IDEwMDY0NAotLS0gYS9kcml2ZXJzL3N0YWdpbmcvcnRsODcxMi9ydGw4NzF4 X2NtZC5oCisrKyBiL2RyaXZlcnMvc3RhZ2luZy9ydGw4NzEyL3J0bDg3MXhfY21kLmgKQEAgLTY1 NywyNSArNjU3LDI1IEBAIHN0cnVjdCBzZXRyYV9wYXJtIHsKIHN0cnVjdCBzZXRwcm9iZXJlcWV4 dHJhaWVfcGFybSB7CiAJdW5zaWduZWQgY2hhciBlX2lkOwogCXVuc2lnbmVkIGNoYXIgaWVfbGVu OwotCXVuc2lnbmVkIGNoYXIgaWVbMF07CisJdW5zaWduZWQgY2hhciBpZVtdOwogfTsKIAogc3Ry dWN0IHNldGFzc29jcmVxZXh0cmFpZV9wYXJtIHsKIAl1bnNpZ25lZCBjaGFyIGVfaWQ7CiAJdW5z aWduZWQgY2hhciBpZV9sZW47Ci0JdW5zaWduZWQgY2hhciBpZVswXTsKKwl1bnNpZ25lZCBjaGFy IGllW107CiB9OwogCiBzdHJ1Y3Qgc2V0cHJvYmVyc3BleHRyYWllX3Bhcm0gewogCXVuc2lnbmVk IGNoYXIgZV9pZDsKIAl1bnNpZ25lZCBjaGFyIGllX2xlbjsKLQl1bnNpZ25lZCBjaGFyIGllWzBd OworCXVuc2lnbmVkIGNoYXIgaWVbXTsKIH07CiAKIHN0cnVjdCBzZXRhc3NvY3JzcGV4dHJhaWVf cGFybSB7CiAJdW5zaWduZWQgY2hhciBlX2lkOwogCXVuc2lnbmVkIGNoYXIgaWVfbGVuOwotCXVu c2lnbmVkIGNoYXIgaWVbMF07CisJdW5zaWduZWQgY2hhciBpZVtdOwogfTsKIAogc3RydWN0IGFk ZEJhUmVxX3Bhcm0gewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL3J0bDg3MjNicy9pbmNs dWRlL2llZWU4MDIxMS5oIGIvZHJpdmVycy9zdGFnaW5nL3J0bDg3MjNicy9pbmNsdWRlL2llZWU4 MDIxMS5oCmluZGV4IGMxMWQ3ZTJkMjM0Ny4uMWU2MjdkYzAwNDRkIDEwMDY0NAotLS0gYS9kcml2 ZXJzL3N0YWdpbmcvcnRsODcyM2JzL2luY2x1ZGUvaWVlZTgwMjExLmgKKysrIGIvZHJpdmVycy9z dGFnaW5nL3J0bDg3MjNicy9pbmNsdWRlL2llZWU4MDIxMS5oCkBAIC0yMDQsNyArMjA0LDcgQEAg c3RydWN0IGllZWVfcGFyYW0gewogc3RydWN0IGllZWVfcGFyYW1fZXggewogCXUzMiBjbWQ7CiAJ dTggc3RhX2FkZHJbRVRIX0FMRU5dOwotCXU4IGRhdGFbMF07CisJdTggZGF0YVtdOwogfTsKIAog c3RydWN0IHN0YV9kYXRhIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy9ydGw4NzIzYnMv aW5jbHVkZS9ydHdfY21kLmggYi9kcml2ZXJzL3N0YWdpbmcvcnRsODcyM2JzL2luY2x1ZGUvcnR3 X2NtZC5oCmluZGV4IDI4ZDJkMjczMjM3NC4uMWJmMDMwY2JiYmJlIDEwMDY0NAotLS0gYS9kcml2 ZXJzL3N0YWdpbmcvcnRsODcyM2JzL2luY2x1ZGUvcnR3X2NtZC5oCisrKyBiL2RyaXZlcnMvc3Rh Z2luZy9ydGw4NzIzYnMvaW5jbHVkZS9ydHdfY21kLmgKQEAgLTk0LDcgKzk0LDcgQEAgc3RydWN0 IGMyaF9ldnRfaGRyIHsKIAl1OCBpZDo0OwogCXU4IHBsZW46NDsKIAl1OCBzZXE7Ci0JdTggcGF5 bG9hZFswXTsKKwl1OCBwYXlsb2FkW107CiB9OwogCiBzdHJ1Y3QgYzJoX2V2dF9oZHJfODh4eCB7 CmRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvdmMwNF9zZXJ2aWNlcy9pbmNsdWRlL2xpbnV4 L3Jhc3BiZXJyeXBpL3ZjaGlxLmggYi9kcml2ZXJzL3N0YWdpbmcvdmMwNF9zZXJ2aWNlcy9pbmNs dWRlL2xpbnV4L3Jhc3BiZXJyeXBpL3ZjaGlxLmgKaW5kZXggODFkYjdmYjc2ZDZkLi5jOTNmMmYz ZTg3YmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3RhZ2luZy92YzA0X3NlcnZpY2VzL2luY2x1ZGUv bGludXgvcmFzcGJlcnJ5cGkvdmNoaXEuaAorKysgYi9kcml2ZXJzL3N0YWdpbmcvdmMwNF9zZXJ2 aWNlcy9pbmNsdWRlL2xpbnV4L3Jhc3BiZXJyeXBpL3ZjaGlxLmgKQEAgLTQ1LDcgKzQ1LDcgQEAg c3RydWN0IHZjaGlxX2hlYWRlciB7CiAJLyogU2l6ZSBvZiBtZXNzYWdlIGRhdGEuICovCiAJdW5z aWduZWQgaW50IHNpemU7CiAKLQljaGFyIGRhdGFbMF07ICAgICAgICAgICAvKiBtZXNzYWdlICov CisJY2hhciBkYXRhW107ICAgICAgICAgICAvKiBtZXNzYWdlICovCiB9OwogCiBzdHJ1Y3QgdmNo aXFfZWxlbWVudCB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Zpc29yYnVzL3ZidXNjaGFubmVsLmgg Yi9kcml2ZXJzL3Zpc29yYnVzL3ZidXNjaGFubmVsLmgKaW5kZXggNGFhZjY1NjRlYjlmLi45ODcx MWZiNmQ2NmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlzb3JidXMvdmJ1c2NoYW5uZWwuaAorKysg Yi9kcml2ZXJzL3Zpc29yYnVzL3ZidXNjaGFubmVsLmgKQEAgLTg5LDcgKzg5LDcgQEAgc3RydWN0 IHZpc29yX3ZidXNfY2hhbm5lbCB7CiAJc3RydWN0IHZpc29yX3ZidXNfaGVhZGVyaW5mbyBoZHJf aW5mbzsKIAlzdHJ1Y3Qgdmlzb3JfdmJ1c19kZXZpY2VpbmZvIGNocF9pbmZvOwogCXN0cnVjdCB2 aXNvcl92YnVzX2RldmljZWluZm8gYnVzX2luZm87Ci0Jc3RydWN0IHZpc29yX3ZidXNfZGV2aWNl aW5mbyBkZXZfaW5mb1swXTsKKwlzdHJ1Y3Qgdmlzb3JfdmJ1c19kZXZpY2VpbmZvIGRldl9pbmZv W107CiB9IF9fcGFja2VkOwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2ZzL2NpZnMvbnRsbXNzcC5o IGIvZnMvY2lmcy9udGxtc3NwLmgKaW5kZXggMjk4NDU4NDA0MjUyLi41NTc1OGI5ZWM4NzcgMTAw NjQ0Ci0tLSBhL2ZzL2NpZnMvbnRsbXNzcC5oCisrKyBiL2ZzL2NpZnMvbnRsbXNzcC5oCkBAIC0x MDcsNyArMTA3LDcgQEAgc3RydWN0IG5lZ290aWF0ZV9tZXNzYWdlIHsKIAlTRUNVUklUWV9CVUZG RVIgV29ya3N0YXRpb25OYW1lOwkvKiBSRkMgMTAwMSBhbmQgQVNDSUkgKi8KIAlzdHJ1Y3QJbnRs bXNzcF92ZXJzaW9uIFZlcnNpb247CiAJLyogU0VDVVJJVFlfQlVGRkVSICovCi0JY2hhciBEb21h aW5TdHJpbmdbMF07CisJY2hhciBEb21haW5TdHJpbmdbXTsKIAkvKiBmb2xsb3dlZCBieSBXb3Jr c3RhdGlvblN0cmluZyAqLwogfSBfX3BhY2tlZDsKIApkaWZmIC0tZ2l0IGEvZnMvZXh0NC9mYXN0 X2NvbW1pdC5oIGIvZnMvZXh0NC9mYXN0X2NvbW1pdC5oCmluZGV4IDA4M2FkMWNiNzA1YS4uMDdl OGI3MzRjNGZkIDEwMDY0NAotLS0gYS9mcy9leHQ0L2Zhc3RfY29tbWl0LmgKKysrIGIvZnMvZXh0 NC9mYXN0X2NvbW1pdC5oCkBAIC01NSwxMyArNTUsMTMgQEAgc3RydWN0IGV4dDRfZmNfZGVsX3Jh bmdlIHsKIHN0cnVjdCBleHQ0X2ZjX2RlbnRyeV9pbmZvIHsKIAlfX2xlMzIgZmNfcGFyZW50X2lu bzsKIAlfX2xlMzIgZmNfaW5vOwotCV9fdTggZmNfZG5hbWVbMF07CisJX191OCBmY19kbmFtZVtd OwogfTsKIAogLyogVmFsdWUgc3RydWN0dXJlIGZvciBFWFQ0X0ZDX1RBR19JTk9ERSBhbmQgRVhU NF9GQ19UQUdfSU5PREVfUEFSVElBTC4gKi8KIHN0cnVjdCBleHQ0X2ZjX2lub2RlIHsKIAlfX2xl MzIgZmNfaW5vOwotCV9fdTggZmNfcmF3X2lub2RlWzBdOworCV9fdTggZmNfcmF3X2lub2RlW107 CiB9OwogCiAvKiBWYWx1ZSBzdHJ1Y3R1cmUgZm9yIHRhZyBFWFQ0X0ZDX1RBR19UQUlMLiAqLwpk aWZmIC0tZ2l0IGEvZnMva3NtYmQva3NtYmRfbmV0bGluay5oIGIvZnMva3NtYmQva3NtYmRfbmV0 bGluay5oCmluZGV4IDcxYmZiN2RlNDQ3Mi4uZWJlNmNhMDg0NjdhIDEwMDY0NAotLS0gYS9mcy9r c21iZC9rc21iZF9uZXRsaW5rLmgKKysrIGIvZnMva3NtYmQva3NtYmRfbmV0bGluay5oCkBAIC0y NDEsNyArMjQxLDcgQEAgc3RydWN0IGtzbWJkX3JwY19jb21tYW5kIHsKIHN0cnVjdCBrc21iZF9z cG5lZ29fYXV0aGVuX3JlcXVlc3QgewogCV9fdTMyCWhhbmRsZTsKIAlfX3UxNglzcG5lZ29fYmxv Yl9sZW47CS8qIHRoZSBsZW5ndGggb2Ygc3BuZWdvX2Jsb2IgKi8KLQlfX3U4CXNwbmVnb19ibG9i WzBdOwkJLyoKKwlfX3U4CXNwbmVnb19ibG9iW107CQkvKgogCQkJCQkgKiB0aGUgR1NTIHRva2Vu IGZyb20gU2VjdXJpdHlCdWZmZXIgb2YKIAkJCQkJICogU01CMiBTRVNTSU9OIFNFVFVQIHJlcXVl c3QKIAkJCQkJICovCmRpZmYgLS1naXQgYS9mcy9rc21iZC9udGxtc3NwLmggYi9mcy9rc21iZC9u dGxtc3NwLmgKaW5kZXggYWRhZjRjMGNiZThmLi5mMTMxNTNjMThiNGUgMTAwNjQ0Ci0tLSBhL2Zz L2tzbWJkL250bG1zc3AuaAorKysgYi9mcy9rc21iZC9udGxtc3NwLmgKQEAgLTk1LDcgKzk1LDcg QEAgc3RydWN0IHNlY3VyaXR5X2J1ZmZlciB7CiBzdHJ1Y3QgdGFyZ2V0X2luZm8gewogCV9fbGUx NiBUeXBlOwogCV9fbGUxNiBMZW5ndGg7Ci0JX191OCBDb250ZW50WzBdOworCV9fdTggQ29udGVu dFtdOwogfSBfX3BhY2tlZDsKIAogc3RydWN0IG5lZ290aWF0ZV9tZXNzYWdlIHsKQEAgLTEwOCw3 ICsxMDgsNyBAQCBzdHJ1Y3QgbmVnb3RpYXRlX21lc3NhZ2UgewogCSAqIHN0cnVjdCBzZWN1cml0 eV9idWZmZXIgZm9yIHZlcnNpb24gaW5mbyBub3QgcHJlc2VudCBzaW5jZSB3ZQogCSAqIGRvIG5v dCBzZXQgdGhlIHZlcnNpb24gaXMgcHJlc2VudCBmbGFnCiAJICovCi0JY2hhciBEb21haW5TdHJp bmdbMF07CisJY2hhciBEb21haW5TdHJpbmdbXTsKIAkvKiBmb2xsb3dlZCBieSBXb3Jrc3RhdGlv blN0cmluZyAqLwogfSBfX3BhY2tlZDsKIApAQCAtMTQwLDcgKzE0MCw3IEBAIHN0cnVjdCBhdXRo ZW50aWNhdGVfbWVzc2FnZSB7CiAJICogc3RydWN0IHNlY3VyaXR5X2J1ZmZlciBmb3IgdmVyc2lv biBpbmZvIG5vdCBwcmVzZW50IHNpbmNlIHdlCiAJICogZG8gbm90IHNldCB0aGUgdmVyc2lvbiBp cyBwcmVzZW50IGZsYWcKIAkgKi8KLQljaGFyIFVzZXJTdHJpbmdbMF07CisJY2hhciBVc2VyU3Ry aW5nW107CiB9IF9fcGFja2VkOwogCiBzdHJ1Y3QgbnRsbXYyX3Jlc3AgewpkaWZmIC0tZ2l0IGEv ZnMva3NtYmQvc21iMnBkdS5oIGIvZnMva3NtYmQvc21iMnBkdS5oCmluZGV4IDcyNWI4MDBjMjlj OC4uZDQ5NDY4NDI2NTc2IDEwMDY0NAotLS0gYS9mcy9rc21iZC9zbWIycGR1LmgKKysrIGIvZnMv a3NtYmQvc21iMnBkdS5oCkBAIC03NTksNyArNzU5LDcgQEAgc3RydWN0IHNtYjJfZmlsZV9yZW5h bWVfaW5mbyB7IC8qIGVuY29kaW5nIG9mIHJlcXVlc3QgZm9yIGxldmVsIDEwICovCiAJX191OCAg IFJlc2VydmVkWzddOwogCV9fdTY0ICBSb290RGlyZWN0b3J5OyAgLyogTUJaIGZvciBuZXR3b3Jr IG9wZXJhdGlvbnMgKHdoeSBzYXlzIHNwZWM/KSAqLwogCV9fbGUzMiBGaWxlTmFtZUxlbmd0aDsK LQljaGFyICAgRmlsZU5hbWVbMF07ICAgICAvKiBOZXcgbmFtZSB0byBiZSBhc3NpZ25lZCAqLwor CWNoYXIgICBGaWxlTmFtZVtdOyAgICAgLyogTmV3IG5hbWUgdG8gYmUgYXNzaWduZWQgKi8KIH0g X19wYWNrZWQ7IC8qIGxldmVsIDEwIFNldCAqLwogCiBzdHJ1Y3Qgc21iMl9maWxlX2xpbmtfaW5m byB7IC8qIGVuY29kaW5nIG9mIHJlcXVlc3QgZm9yIGxldmVsIDExICovCkBAIC03NjgsNyArNzY4 LDcgQEAgc3RydWN0IHNtYjJfZmlsZV9saW5rX2luZm8geyAvKiBlbmNvZGluZyBvZiByZXF1ZXN0 IGZvciBsZXZlbCAxMSAqLwogCV9fdTggICBSZXNlcnZlZFs3XTsKIAlfX3U2NCAgUm9vdERpcmVj dG9yeTsgIC8qIE1CWiBmb3IgbmV0d29yayBvcGVyYXRpb25zICh3aHkgc2F5cyBzcGVjPykgKi8K IAlfX2xlMzIgRmlsZU5hbWVMZW5ndGg7Ci0JY2hhciAgIEZpbGVOYW1lWzBdOyAgICAgLyogTmFt ZSB0byBiZSBhc3NpZ25lZCB0byBuZXcgbGluayAqLworCWNoYXIgICBGaWxlTmFtZVtdOyAgICAg LyogTmFtZSB0byBiZSBhc3NpZ25lZCB0byBuZXcgbGluayAqLwogfSBfX3BhY2tlZDsgLyogbGV2 ZWwgMTEgU2V0ICovCiAKIC8qCkBAIC04MTAsNyArODEwLDcgQEAgc3RydWN0IHNtYjJfZmlsZV9i YXNpY19pbmZvIHsgLyogZGF0YSBibG9jayBlbmNvZGluZyBvZiByZXNwb25zZSB0byBsZXZlbCAx OCAqLwogCiBzdHJ1Y3Qgc21iMl9maWxlX2FsdF9uYW1lX2luZm8gewogCV9fbGUzMiBGaWxlTmFt ZUxlbmd0aDsKLQljaGFyIEZpbGVOYW1lWzBdOworCWNoYXIgRmlsZU5hbWVbXTsKIH0gX19wYWNr ZWQ7CiAKIHN0cnVjdCBzbWIyX2ZpbGVfc3RyZWFtX2luZm8gewpAQCAtODE4LDcgKzgxOCw3IEBA IHN0cnVjdCBzbWIyX2ZpbGVfc3RyZWFtX2luZm8gewogCV9fbGUzMiAgU3RyZWFtTmFtZUxlbmd0 aDsKIAlfX2xlNjQgU3RyZWFtU2l6ZTsKIAlfX2xlNjQgU3RyZWFtQWxsb2NhdGlvblNpemU7Ci0J Y2hhciAgIFN0cmVhbU5hbWVbMF07CisJY2hhciAgIFN0cmVhbU5hbWVbXTsKIH0gX19wYWNrZWQ7 CiAKIHN0cnVjdCBzbWIyX2ZpbGVfZW9mX2luZm8geyAvKiBlbmNvZGluZyBvZiByZXF1ZXN0IGZv ciBsZXZlbCAxMCAqLwpkaWZmIC0tZ2l0IGEvZnMva3NtYmQvdHJhbnNwb3J0X3JkbWEuYyBiL2Zz L2tzbWJkL3RyYW5zcG9ydF9yZG1hLmMKaW5kZXggM2MxZWMxYWMwYjI3Li45OTc2ZDM5YzZlZDgg MTAwNjQ0Ci0tLSBhL2ZzL2tzbWJkL3RyYW5zcG9ydF9yZG1hLmMKKysrIGIvZnMva3NtYmQvdHJh bnNwb3J0X3JkbWEuYwpAQCAtMjExLDcgKzIxMSw3IEBAIHN0cnVjdCBzbWJfZGlyZWN0X3JkbWFf cndfbXNnIHsKIAlzdHJ1Y3QgY29tcGxldGlvbgkqY29tcGxldGlvbjsKIAlzdHJ1Y3QgcmRtYV9y d19jdHgJcndfY3R4OwogCXN0cnVjdCBzZ190YWJsZQkJc2d0OwotCXN0cnVjdCBzY2F0dGVybGlz dAlzZ19saXN0WzBdOworCXN0cnVjdCBzY2F0dGVybGlzdAlzZ19saXN0W107CiB9OwogCiBzdGF0 aWMgaW5saW5lIGludCBnZXRfYnVmX3BhZ2VfY291bnQodm9pZCAqYnVmLCBpbnQgc2l6ZSkKZGlm ZiAtLWdpdCBhL2ZzL2tzbWJkL3hhdHRyLmggYi9mcy9rc21iZC94YXR0ci5oCmluZGV4IDg4NTdj MDEwOTNkOS4uMTY0OTljYTVjODJkIDEwMDY0NAotLS0gYS9mcy9rc21iZC94YXR0ci5oCisrKyBi L2ZzL2tzbWJkL3hhdHRyLmgKQEAgLTc2LDcgKzc2LDcgQEAgc3RydWN0IHhhdHRyX2FjbF9lbnRy eSB7CiBzdHJ1Y3QgeGF0dHJfc21iX2FjbCB7CiAJaW50IGNvdW50OwogCWludCBuZXh0OwotCXN0 cnVjdCB4YXR0cl9hY2xfZW50cnkgZW50cmllc1swXTsKKwlzdHJ1Y3QgeGF0dHJfYWNsX2VudHJ5 IGVudHJpZXNbXTsKIH07CiAKIC8qIDY0Ynl0ZXMgaGFzaCBpbiB4YXR0cl9udGFjbCBpcyBjb21w dXRlZCB3aXRoIHNoYTI1NiAqLwpkaWZmIC0tZ2l0IGEvZnMveGZzL3NjcnViL2F0dHIuaCBiL2Zz L3hmcy9zY3J1Yi9hdHRyLmgKaW5kZXggMTcxOWUxYzRkYTU5Li4zNTkwZTEwZTNlNjIgMTAwNjQ0 Ci0tLSBhL2ZzL3hmcy9zY3J1Yi9hdHRyLmgKKysrIGIvZnMveGZzL3NjcnViL2F0dHIuaApAQCAt MjQsNyArMjQsNyBAQCBzdHJ1Y3QgeGNoa194YXR0cl9idWYgewogCSAqIHNwYWNlIGJpdG1hcCBm b2xsb3dzIGltbWVkaWF0ZWx5IGFmdGVyOyBhbmQgd2UgaGF2ZSBhIHRoaXJkIGJ1ZmZlcgogCSAq IGZvciBzdG9yaW5nIGludGVybWVkaWF0ZSBiaXRtYXAgcmVzdWx0cy4KIAkgKi8KLQl1aW50OF90 CQkJYnVmWzBdOworCXVpbnQ4X3QJCQlidWZbXTsKIH07CiAKIC8qIEEgcGxhY2UgdG8gc3RvcmUg YXR0cmlidXRlIHZhbHVlcy4gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYWNwaS9hY3RibDIuaCBi L2luY2x1ZGUvYWNwaS9hY3RibDIuaAppbmRleCAxNjg0N2M4ZDlkNWYuLjllZTRkMWIzOTEyNSAx MDA2NDQKLS0tIGEvaW5jbHVkZS9hY3BpL2FjdGJsMi5oCisrKyBiL2luY2x1ZGUvYWNwaS9hY3Ri bDIuaApAQCAtMjMxOSw3ICsyMzE5LDcgQEAgc3RydWN0IGFjcGlfdGFibGVfcmdydCB7CiAJdTE2 IHZlcnNpb247CiAJdTggaW1hZ2VfdHlwZTsKIAl1OCByZXNlcnZlZDsKLQl1OCBpbWFnZVswXTsK Kwl1OCBpbWFnZVtdOwogfTsKIAogLyogaW1hZ2VfdHlwZSB2YWx1ZXMgKi8KZGlmZiAtLWdpdCBh L2luY2x1ZGUvYXNtLWdlbmVyaWMvdGxiLmggYi9pbmNsdWRlL2FzbS1nZW5lcmljL3RsYi5oCmlu ZGV4IDJjNjhhNTQ1ZmZhNy4uZmQ3ZmViNWM3ODk0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1n ZW5lcmljL3RsYi5oCisrKyBiL2luY2x1ZGUvYXNtLWdlbmVyaWMvdGxiLmgKQEAgLTE4MCw3ICsx ODAsNyBAQCBzdHJ1Y3QgbW11X3RhYmxlX2JhdGNoIHsKIAlzdHJ1Y3QgcmN1X2hlYWQJCXJjdTsK ICNlbmRpZgogCXVuc2lnbmVkIGludAkJbnI7Ci0Jdm9pZAkJCSp0YWJsZXNbMF07CisJdm9pZAkJ CSp0YWJsZXNbXTsKIH07CiAKICNkZWZpbmUgTUFYX1RBQkxFX0JBVENICQlcCkBAIC0yMjcsNyAr MjI3LDcgQEAgc3RydWN0IG1tdV9nYXRoZXJfYmF0Y2ggewogCXN0cnVjdCBtbXVfZ2F0aGVyX2Jh dGNoCSpuZXh0OwogCXVuc2lnbmVkIGludAkJbnI7CiAJdW5zaWduZWQgaW50CQltYXg7Ci0Jc3Ry dWN0IHBhZ2UJCSpwYWdlc1swXTsKKwlzdHJ1Y3QgcGFnZQkJKnBhZ2VzW107CiB9OwogCiAjZGVm aW5lIE1BWF9HQVRIRVJfQkFUQ0gJXApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9ncmV5YnVz L2dyZXlidXNfbWFuaWZlc3QuaCBiL2luY2x1ZGUvbGludXgvZ3JleWJ1cy9ncmV5YnVzX21hbmlm ZXN0LmgKaW5kZXggNmU2MmZlNDc4NzEyLi5iZWY5ZWIyMDkzZTkgMTAwNjQ0Ci0tLSBhL2luY2x1 ZGUvbGludXgvZ3JleWJ1cy9ncmV5YnVzX21hbmlmZXN0LmgKKysrIGIvaW5jbHVkZS9saW51eC9n cmV5YnVzL2dyZXlidXNfbWFuaWZlc3QuaApAQCAtMTAwLDcgKzEwMCw3IEBAIGVudW0gewogc3Ry dWN0IGdyZXlidXNfZGVzY3JpcHRvcl9zdHJpbmcgewogCV9fdTgJbGVuZ3RoOwogCV9fdTgJaWQ7 Ci0JX191OAlzdHJpbmdbMF07CisJX191OAlzdHJpbmdbXTsKIH0gX19wYWNrZWQ7CiAKIC8qCkBA IC0xNzUsNyArMTc1LDcgQEAgc3RydWN0IGdyZXlidXNfbWFuaWZlc3RfaGVhZGVyIHsKIAogc3Ry dWN0IGdyZXlidXNfbWFuaWZlc3QgewogCXN0cnVjdCBncmV5YnVzX21hbmlmZXN0X2hlYWRlcgkJ aGVhZGVyOwotCXN0cnVjdCBncmV5YnVzX2Rlc2NyaXB0b3IJCWRlc2NyaXB0b3JzWzBdOworCXN0 cnVjdCBncmV5YnVzX2Rlc2NyaXB0b3IJCWRlc2NyaXB0b3JzW107CiB9IF9fcGFja2VkOwogCiAj ZW5kaWYgLyogX19HUkVZQlVTX01BTklGRVNUX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGlu dXgvZ3JleWJ1cy9oZC5oIGIvaW5jbHVkZS9saW51eC9ncmV5YnVzL2hkLmgKaW5kZXggZDNmYWYw YzFhNTY5Li43MThlMjg1NzA1NGUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvZ3JleWJ1cy9o ZC5oCisrKyBiL2luY2x1ZGUvbGludXgvZ3JleWJ1cy9oZC5oCkBAIC01OCw3ICs1OCw3IEBAIHN0 cnVjdCBnYl9ob3N0X2RldmljZSB7CiAKIAlzdHJ1Y3QgZ2Jfc3ZjICpzdmM7CiAJLyogUHJpdmF0 ZSBkYXRhIGZvciB0aGUgaG9zdCBkcml2ZXIgKi8KLQl1bnNpZ25lZCBsb25nIGhkX3ByaXZbMF0g X19hbGlnbmVkKHNpemVvZihzNjQpKTsKKwl1bnNpZ25lZCBsb25nIGhkX3ByaXZbXSBfX2FsaWdu ZWQoc2l6ZW9mKHM2NCkpOwogfTsKICNkZWZpbmUgdG9fZ2JfaG9zdF9kZXZpY2UoZCkgY29udGFp bmVyX29mKGQsIHN0cnVjdCBnYl9ob3N0X2RldmljZSwgZGV2KQogCmRpZmYgLS1naXQgYS9pbmNs dWRlL2xpbnV4L2dyZXlidXMvbW9kdWxlLmggYi9pbmNsdWRlL2xpbnV4L2dyZXlidXMvbW9kdWxl LmgKaW5kZXggNDdiODM5YWYxNDVkLi4zZWZlMjEzM2FjZmQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUv bGludXgvZ3JleWJ1cy9tb2R1bGUuaAorKysgYi9pbmNsdWRlL2xpbnV4L2dyZXlidXMvbW9kdWxl LmgKQEAgLTIzLDcgKzIzLDcgQEAgc3RydWN0IGdiX21vZHVsZSB7CiAKIAlib29sIGRpc2Nvbm5l Y3RlZDsKIAotCXN0cnVjdCBnYl9pbnRlcmZhY2UgKmludGVyZmFjZXNbMF07CisJc3RydWN0IGdi X2ludGVyZmFjZSAqaW50ZXJmYWNlc1tdOwogfTsKICNkZWZpbmUgdG9fZ2JfbW9kdWxlKGQpIGNv bnRhaW5lcl9vZihkLCBzdHJ1Y3QgZ2JfbW9kdWxlLCBkZXYpCiAKZGlmZiAtLWdpdCBhL2luY2x1 ZGUvbGludXgvaTNjL2NjYy5oIGIvaW5jbHVkZS9saW51eC9pM2MvY2NjLmgKaW5kZXggNzNiMDk4 MmNjNTE5Li5hZDU5YTRhZTYwZDEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvaTNjL2NjYy5o CisrKyBiL2luY2x1ZGUvbGludXgvaTNjL2NjYy5oCkBAIC0xMzIsNyArMTMyLDcgQEAgc3RydWN0 IGkzY19jY2NfZGV2X2Rlc2Mgewogc3RydWN0IGkzY19jY2NfZGVmc2x2cyB7CiAJdTggY291bnQ7 CiAJc3RydWN0IGkzY19jY2NfZGV2X2Rlc2MgbWFzdGVyOwotCXN0cnVjdCBpM2NfY2NjX2Rldl9k ZXNjIHNsYXZlc1swXTsKKwlzdHJ1Y3QgaTNjX2NjY19kZXZfZGVzYyBzbGF2ZXNbXTsKIH0gX19w YWNrZWQ7CiAKIC8qKgpAQCAtMjQwLDcgKzI0MCw3IEBAIHN0cnVjdCBpM2NfY2NjX2JyaWRnZWRf c2xhdmVfZGVzYyB7CiAgKi8KIHN0cnVjdCBpM2NfY2NjX3NldGJyZ3RndCB7CiAJdTggY291bnQ7 Ci0Jc3RydWN0IGkzY19jY2NfYnJpZGdlZF9zbGF2ZV9kZXNjIGJzbGF2ZXNbMF07CisJc3RydWN0 IGkzY19jY2NfYnJpZGdlZF9zbGF2ZV9kZXNjIGJzbGF2ZXNbXTsKIH0gX19wYWNrZWQ7CiAKIC8q KgpAQCAtMzE4LDcgKzMxOCw3IEBAIGVudW0gaTNjX2NjY19zZXR4dGltZV9zdWJjbWQgewogICov CiBzdHJ1Y3QgaTNjX2NjY19zZXR4dGltZSB7CiAJdTggc3ViY21kOwotCXU4IGRhdGFbMF07CisJ dTggZGF0YVtdOwogfSBfX3BhY2tlZDsKIAogI2RlZmluZSBJM0NfQ0NDX0dFVFhUSU1FX1NZTkNf TU9ERQlCSVQoMCkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbWx4NS9tbHg1X2lmY19mcGdh LmggYi9pbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmNfZnBnYS5oCmluZGV4IDA3ZDc3MzIzZjc4 YS4uY2FjNGU5NGFiZDNhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmNf ZnBnYS5oCisrKyBiL2luY2x1ZGUvbGludXgvbWx4NS9tbHg1X2lmY19mcGdhLmgKQEAgLTE4NSw3 ICsxODUsNyBAQCBzdHJ1Y3QgbWx4NV9pZmNfZnBnYV9hY2Nlc3NfcmVnX2JpdHMgewogCiAJdTgg ICAgICAgICBhZGRyZXNzWzB4NDBdOwogCi0JdTggICAgICAgICBkYXRhWzBdWzB4OF07CisJdTgg ICAgICAgICBkYXRhW11bMHg4XTsKIH07CiAKIGVudW0gbWx4NV9pZmNfZnBnYV9xcF9zdGF0ZSB7 CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3BsYXRmb3JtX2RhdGEvYnJjbWZtYWMuaCBiL2lu Y2x1ZGUvbGludXgvcGxhdGZvcm1fZGF0YS9icmNtZm1hYy5oCmluZGV4IDJiNTY3NmZmMzViZS4u ZjkyMmExOTJmZTU4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3BsYXRmb3JtX2RhdGEvYnJj bWZtYWMuaAorKysgYi9pbmNsdWRlL2xpbnV4L3BsYXRmb3JtX2RhdGEvYnJjbWZtYWMuaApAQCAt MTc4LDcgKzE3OCw3IEBAIHN0cnVjdCBicmNtZm1hY19wbGF0Zm9ybV9kYXRhIHsKIAl2b2lkCSgq cG93ZXJfb2ZmKSh2b2lkKTsKIAljaGFyCSpmd19hbHRlcm5hdGl2ZV9wYXRoOwogCWludAlkZXZp Y2VfY291bnQ7Ci0Jc3RydWN0IGJyY21mbWFjX3BkX2RldmljZSBkZXZpY2VzWzBdOworCXN0cnVj dCBicmNtZm1hY19wZF9kZXZpY2UgZGV2aWNlc1tdOwogfTsKIAogCmRpZmYgLS1naXQgYS9pbmNs dWRlL2xpbnV4L3BsYXRmb3JtX2RhdGEvY3Jvc19lY19jb21tYW5kcy5oIGIvaW5jbHVkZS9saW51 eC9wbGF0Zm9ybV9kYXRhL2Nyb3NfZWNfY29tbWFuZHMuaAppbmRleCAyNzFiZDg3YmZmMGEuLjcy ODczNWFlZDk4MCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9wbGF0Zm9ybV9kYXRhL2Nyb3Nf ZWNfY29tbWFuZHMuaAorKysgYi9pbmNsdWRlL2xpbnV4L3BsYXRmb3JtX2RhdGEvY3Jvc19lY19j b21tYW5kcy5oCkBAIC01NjQ0LDcgKzU2NDQsNyBAQCBzdHJ1Y3QgZWNfcmVzcG9uc2VfdHlwZWNf ZGlzY292ZXJ5IHsKIAl1aW50OF90IHN2aWRfY291bnQ7CSAgIC8qIE51bWJlciBvZiBTVklEcyBw YXJ0bmVyIHNlbnQgKi8KIAl1aW50MTZfdCByZXNlcnZlZDsKIAl1aW50MzJfdCBkaXNjb3Zlcnlf dmRvWzZdOyAvKiBNYXggVkRPcyBhbGxvd2VkIGFmdGVyIFZETSBoZWFkZXIgaXMgNiAqLwotCXN0 cnVjdCBzdmlkX21vZGVfaW5mbyBzdmlkc1swXTsKKwlzdHJ1Y3Qgc3ZpZF9tb2RlX2luZm8gc3Zp ZHNbXTsKIH0gX19lY19hbGlnbjE7CiAKIC8qIFVTQiBUeXBlLUMgY29tbWFuZHMgZm9yIEFQLWNv bnRyb2xsZWQgZGV2aWNlIHBvbGljeS4gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L2JsdWV0 b290aC9tZ210LmggYi9pbmNsdWRlL25ldC9ibHVldG9vdGgvbWdtdC5oCmluZGV4IDEwN2IyNWRl YWU2OC4uOTYwN2VjMjg5ZmQwIDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC9ibHVldG9vdGgvbWdt dC5oCisrKyBiL2luY2x1ZGUvbmV0L2JsdWV0b290aC9tZ210LmgKQEAgLTY5Niw3ICs2OTYsNyBA QCBzdHJ1Y3QgbWdtdF9jcF9zZXRfYmxvY2tlZF9rZXlzIHsKICNkZWZpbmUgTUdNVF9SRUFEX0NP TlRST0xMRVJfQ0FQX1NJWkUJMAogc3RydWN0IG1nbXRfcnBfcmVhZF9jb250cm9sbGVyX2NhcCB7 CiAJX19sZTE2ICAgY2FwX2xlbjsKLQlfX3U4ICAgICBjYXBbMF07CisJX191OCAgICAgY2FwW107 CiB9IF9fcGFja2VkOwogCiAjZGVmaW5lIE1HTVRfT1BfUkVBRF9FWFBfRkVBVFVSRVNfSU5GTwkw eDAwNDkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L2lvYW02LmggYi9pbmNsdWRlL25ldC9pb2Ft Ni5oCmluZGV4IDNmNDViYTM3YTJjNi4uNzgxZDJkOGIyZjI5IDEwMDY0NAotLS0gYS9pbmNsdWRl L25ldC9pb2FtNi5oCisrKyBiL2luY2x1ZGUvbmV0L2lvYW02LmgKQEAgLTM1LDcgKzM1LDcgQEAg c3RydWN0IGlvYW02X3NjaGVtYSB7CiAJaW50IGxlbjsKIAlfX2JlMzIgaGRyOwogCi0JdTggZGF0 YVswXTsKKwl1OCBkYXRhW107CiB9OwogCiBzdHJ1Y3QgaW9hbTZfcGVybmV0X2RhdGEgewpkaWZm IC0tZ2l0IGEvaW5jbHVkZS9zb3VuZC9zb2YvY2hhbm5lbF9tYXAuaCBiL2luY2x1ZGUvc291bmQv c29mL2NoYW5uZWxfbWFwLmgKaW5kZXggZmQzYTMwZmNmNzU2Li5kMzYzZjBjYTY5NzkgMTAwNjQ0 Ci0tLSBhL2luY2x1ZGUvc291bmQvc29mL2NoYW5uZWxfbWFwLmgKKysrIGIvaW5jbHVkZS9zb3Vu ZC9zb2YvY2hhbm5lbF9tYXAuaApAQCAtMzksNyArMzksNyBAQCBzdHJ1Y3Qgc29mX2lwY19jaGFu bmVsX21hcCB7CiAJdWludDMyX3QgZXh0X2lkOwogCXVpbnQzMl90IGNoX21hc2s7CiAJdWludDMy X3QgcmVzZXJ2ZWQ7Ci0JaW50MzJfdCBjaF9jb2VmZnNbMF07CisJaW50MzJfdCBjaF9jb2VmZnNb XTsKIH0gX19wYWNrZWQ7CiAKIC8qKgpAQCAtNTUsNyArNTUsNyBAQCBzdHJ1Y3Qgc29mX2lwY19z dHJlYW1fbWFwIHsKIAlzdHJ1Y3Qgc29mX2lwY19jbWRfaGRyIGhkcjsKIAl1aW50MzJfdCBudW1f Y2hfbWFwOwogCXVpbnQzMl90IHJlc2VydmVkWzNdOwotCXN0cnVjdCBzb2ZfaXBjX2NoYW5uZWxf bWFwIGNoX21hcFswXTsKKwlzdHJ1Y3Qgc29mX2lwY19jaGFubmVsX21hcCBjaF9tYXBbXTsKIH0g X19wYWNrZWQ7CiAKICNlbmRpZiAvKiBfX0lQQ19DSEFOTkVMX01BUF9IX18gKi8KZGlmZiAtLWdp dCBhL3NjcmlwdHMvZHRjL2xpYmZkdC9mZHQuaCBiL3NjcmlwdHMvZHRjL2xpYmZkdC9mZHQuaApp bmRleCBmMmU2ODgwN2YyNzcuLjBjOTFhYTdmNjdiNSAxMDA2NDQKLS0tIGEvc2NyaXB0cy9kdGMv bGliZmR0L2ZkdC5oCisrKyBiL3NjcmlwdHMvZHRjL2xpYmZkdC9mZHQuaApAQCAtMzUsMTQgKzM1 LDE0IEBAIHN0cnVjdCBmZHRfcmVzZXJ2ZV9lbnRyeSB7CiAKIHN0cnVjdCBmZHRfbm9kZV9oZWFk ZXIgewogCWZkdDMyX3QgdGFnOwotCWNoYXIgbmFtZVswXTsKKwljaGFyIG5hbWVbXTsKIH07CiAK IHN0cnVjdCBmZHRfcHJvcGVydHkgewogCWZkdDMyX3QgdGFnOwogCWZkdDMyX3QgbGVuOwogCWZk dDMyX3QgbmFtZW9mZjsKLQljaGFyIGRhdGFbMF07CisJY2hhciBkYXRhW107CiB9OwogCiAjZW5k aWYgLyogIV9fQVNTRU1CTFkgKi8KZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9pbnRlbC9hdG9tL3Nz dC1tZmxkLWRzcC5oIGIvc291bmQvc29jL2ludGVsL2F0b20vc3N0LW1mbGQtZHNwLmgKaW5kZXgg OGQ5ZTI5YjE2ZTU3Li5jOGYwODE2ZWRiNTMgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9pbnRlbC9h dG9tL3NzdC1tZmxkLWRzcC5oCisrKyBiL3NvdW5kL3NvYy9pbnRlbC9hdG9tL3NzdC1tZmxkLWRz cC5oCkBAIC00MjcsNyArNDI3LDcgQEAgc3RydWN0IHNuZF9zc3RfZHJvcF9yZXNwb25zZSB7CiAK IHN0cnVjdCBzbmRfc3N0X2FzeW5jX21zZyB7CiAJdTMyIG1zZ19pZDsgLyogQXN5bmMgbXNnIGlk ICovCi0JdTMyIHBheWxvYWRbMF07CisJdTMyIHBheWxvYWRbXTsKIH07CiAKIHN0cnVjdCBzbmRf c3N0X2FzeW5jX2Vycl9tc2cgewpAQCAtNTE0LDcgKzUxNCw3IEBAIHN0cnVjdCBzbmRfc3N0X2J5 dGVzX3YyIHsKIAl1OCBwaXBlX2lkOwogCXU4IHJzdmQ7CiAJdTE2IGxlbjsKLQljaGFyIGJ5dGVz WzBdOworCWNoYXIgYnl0ZXNbXTsKIH07CiAKICNkZWZpbmUgTUFYX1ZUU1ZfRklMRVMgMgpkaWZm IC0tZ2l0IGEvc291bmQvc29jL2ludGVsL3NreWxha2Uvc2tsLXRvcG9sb2d5LmggYi9zb3VuZC9z b2MvaW50ZWwvc2t5bGFrZS9za2wtdG9wb2xvZ3kuaAppbmRleCAyMjk2MzYzNGZiZWEuLmE1YmNj ZjJmY2Q4OCAxMDA2NDQKLS0tIGEvc291bmQvc29jL2ludGVsL3NreWxha2Uvc2tsLXRvcG9sb2d5 LmgKKysrIGIvc291bmQvc29jL2ludGVsL3NreWxha2Uvc2tsLXRvcG9sb2d5LmgKQEAgLTE2NCw3 ICsxNjQsNyBAQCBzdHJ1Y3Qgc2tsX2Jhc2VfY2ZnX2V4dCB7CiAJdTggcmVzZXJ2ZWRbOF07CiAJ dTMyIHByaXZfcGFyYW1fbGVuZ3RoOwogCS8qIElucHV0IHBpbiBmb3JtYXRzIGZvbGxvd2VkIGJ5 IG91dHB1dCBvbmVzLiAqLwotCXN0cnVjdCBza2xfcGluX2Zvcm1hdCBwaW5zX2ZtdFswXTsKKwlz dHJ1Y3Qgc2tsX3Bpbl9mb3JtYXQgcGluc19mbXRbXTsKIH0gX19wYWNrZWQ7CiAKIHN0cnVjdCBz a2xfYWxnb19jZmcgewpkaWZmIC0tZ2l0IGEvdG9vbHMvbGliL3BlcmYvaW5jbHVkZS9wZXJmL2V2 ZW50LmggYi90b29scy9saWIvcGVyZi9pbmNsdWRlL3BlcmYvZXZlbnQuaAppbmRleCA3NWVlMzg1 ZmIwNzguLmU3NzU4NzA3Y2FkZCAxMDA2NDQKLS0tIGEvdG9vbHMvbGliL3BlcmYvaW5jbHVkZS9w ZXJmL2V2ZW50LmgKKysrIGIvdG9vbHMvbGliL3BlcmYvaW5jbHVkZS9wZXJmL2V2ZW50LmgKQEAg LTI0MCw3ICsyNDAsNyBAQCBzdHJ1Y3QgaWRfaW5kZXhfZW50cnkgewogc3RydWN0IHBlcmZfcmVj b3JkX2lkX2luZGV4IHsKIAlzdHJ1Y3QgcGVyZl9ldmVudF9oZWFkZXIgaGVhZGVyOwogCV9fdTY0 CQkJIG5yOwotCXN0cnVjdCBpZF9pbmRleF9lbnRyeQkgZW50cmllc1swXTsKKwlzdHJ1Y3QgaWRf aW5kZXhfZW50cnkJIGVudHJpZXNbXTsKIH07CiAKIHN0cnVjdCBwZXJmX3JlY29yZF9hdXh0cmFj ZV9pbmZvIHsKLS0gCjIuMjcuMAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCmxpbnV4LXVtIG1haWxpbmcgbGlzdApsaW51eC11bUBsaXN0cy5pbmZyYWRl YWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgt dW0K 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 C420FC433EF for ; Mon, 21 Feb 2022 01:12:56 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 31CF010E2B7; Mon, 21 Feb 2022 01:12:37 +0000 (UTC) Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4FE4710E46D; Tue, 15 Feb 2022 17:40:10 +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 95BA5615F7; Tue, 15 Feb 2022 17:40:09 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id C6721C340EB; Tue, 15 Feb 2022 17:40:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1644946809; bh=DMett6vVXSj8wlqJaPBVitbC+1b/pFrWBdbwXSCqmvY=; h=Date:From:To:Subject:From; b=YHAhsK9b4ceo93O7cGMZkhAJtHRB9CQ+4MLg6VhoAXIqUZPNOt2f2z/RHYaJLxO76 o1sCxEuNmr5hKqcrqdfi+pE1eKIsCJw9V851Cjnm9cHc2sRZx45hzEu6vQLDXrkmcu xKf2+PXhFhb8dbpeFBN+6vQWXHxPvhHISBgL9Fxux6eGzM+9JCAXaTGT3/3xrwLv7i m8KqkuUbReSbhvZRqSxYfdGT/EXjyAq6yFXtOj0CnyhrPV5rigOkg2Pp92zsFyGVAh 1grvtuR4WfTMHEo/CBi7F8KvXPKqUpdwIOcsL3Pbwr2lQCgLUtbCpkZ3x6BdjDlhc3 zFo6AQd/J/DOQ== Date: Tue, 15 Feb 2022 11:47:43 -0600 From: "Gustavo A. R. Silva" To: GR-QLogic-Storage-Upstream@marvell.com, linux-alpha@vger.kernel.org, linux-kernel@vger.kernel.org, linux-ia64@vger.kernel.org, linux-s390@vger.kernel.org, linux-sh@vger.kernel.org, sparclinux@vger.kernel.org, linux-um@lists.infradead.org, linux-xtensa@linux-xtensa.org, linux-crypto@vger.kernel.org, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, nouveau@lists.freedesktop.org, coresight@lists.linaro.org, linux-arm-kernel@lists.infradead.org, bcm-kernel-feedback-list@broadcom.com, netdev@vger.kernel.org, linux-omap@vger.kernel.org, linux-scsi@vger.kernel.org, target-devel@vger.kernel.org, mpi3mr-linuxdrv.pdl@broadcom.com, linux-staging@lists.linux.dev, linux-rpi-kernel@lists.infradead.org, sparmaintainer@unisys.com, linux-cifs@vger.kernel.org, samba-technical@lists.samba.org, linux-ext4@vger.kernel.org, linux-acpi@vger.kernel.org, devel@acpica.org, linux-arch@vger.kernel.org, linux-mm@kvack.org, greybus-dev@lists.linaro.org, linux-i3c@lists.infradead.org, linux-rdma@vger.kernel.org, linux-bluetooth@vger.kernel.org, alsa-devel@alsa-project.org, devicetree@vger.kernel.org, linux-perf-users@vger.kernel.org, "Gustavo A. R. Silva" , linux-hardening@vger.kernel.org Message-ID: <20220215174743.GA878920@embeddedor> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit X-Mailman-Approved-At: Mon, 21 Feb 2022 01:12:29 +0000 Subject: [Nouveau] [PATCH][next] treewide: Replace zero-length arrays with flexible-array members X-BeenThere: nouveau@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Nouveau development list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: nouveau-bounces@lists.freedesktop.org Sender: "Nouveau" 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: (next-20220214$ 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 ]; }; UAPI and wireless changes were intentionally excluded from this patch and will be sent out separately. [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 Signed-off-by: Gustavo A. R. Silva --- Hi all, I'm expecting to carry this patch in my tree, so it'd be great to get some Acks. And given the size of the patch, I'm only sending this to mailing lists. Thanks! arch/alpha/include/asm/hwrpb.h | 2 +- arch/ia64/include/asm/sal.h | 2 +- arch/s390/include/asm/ccwgroup.h | 2 +- arch/s390/include/asm/chsc.h | 2 +- arch/s390/include/asm/eadm.h | 2 +- arch/s390/include/asm/fcx.h | 4 ++-- arch/s390/include/asm/idals.h | 2 +- arch/s390/include/asm/sclp.h | 2 +- arch/s390/include/asm/sysinfo.h | 6 +++--- arch/sh/include/asm/thread_info.h | 2 +- arch/sparc/include/asm/vio.h | 10 +++++----- arch/um/include/shared/net_kern.h | 2 +- arch/x86/include/asm/microcode_amd.h | 2 +- arch/x86/include/asm/microcode_intel.h | 4 ++-- arch/x86/include/asm/pci.h | 2 +- arch/x86/include/asm/pci_x86.h | 2 +- arch/xtensa/include/asm/bootparam.h | 2 +- drivers/crypto/caam/pdb.h | 2 +- drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c | 2 +- drivers/gpu/drm/nouveau/include/nvfw/hs.h | 2 +- .../hwtracing/coresight/coresight-config.h | 2 +- drivers/misc/bcm-vk/bcm_vk.h | 2 +- .../misc/habanalabs/include/common/cpucp_if.h | 6 +++--- .../habanalabs/include/gaudi/gaudi_packets.h | 4 ++-- .../habanalabs/include/goya/goya_packets.h | 4 ++-- .../net/ethernet/freescale/enetc/enetc_hw.h | 2 +- drivers/net/ethernet/i825xx/sun3_82586.h | 2 +- .../net/ethernet/marvell/octeontx2/af/npc.h | 6 +++--- drivers/net/ethernet/qlogic/qed/qed_mfw_hsi.h | 2 +- drivers/net/ethernet/ti/davinci_mdio.c | 2 +- drivers/scsi/dpt/dpti_i2o.h | 2 +- drivers/scsi/elx/libefc_sli/sli4.h | 20 +++++++++---------- drivers/scsi/mpi3mr/mpi3mr.h | 2 +- drivers/scsi/qla2xxx/qla_bsg.h | 4 ++-- drivers/scsi/qla2xxx/qla_def.h | 2 +- drivers/scsi/qla2xxx/qla_edif_bsg.h | 4 ++-- drivers/scsi/qla2xxx/qla_fw.h | 2 +- drivers/scsi/qla4xxx/ql4_fw.h | 2 +- drivers/staging/r8188eu/include/ieee80211.h | 6 +++--- drivers/staging/r8188eu/include/rtw_cmd.h | 10 +++++----- drivers/staging/rtl8712/rtl871x_cmd.h | 8 ++++---- drivers/staging/rtl8723bs/include/ieee80211.h | 2 +- drivers/staging/rtl8723bs/include/rtw_cmd.h | 2 +- .../include/linux/raspberrypi/vchiq.h | 2 +- drivers/visorbus/vbuschannel.h | 2 +- fs/cifs/ntlmssp.h | 2 +- fs/ext4/fast_commit.h | 4 ++-- fs/ksmbd/ksmbd_netlink.h | 2 +- fs/ksmbd/ntlmssp.h | 6 +++--- fs/ksmbd/smb2pdu.h | 8 ++++---- fs/ksmbd/transport_rdma.c | 2 +- fs/ksmbd/xattr.h | 2 +- fs/xfs/scrub/attr.h | 2 +- include/acpi/actbl2.h | 2 +- include/asm-generic/tlb.h | 4 ++-- include/linux/greybus/greybus_manifest.h | 4 ++-- include/linux/greybus/hd.h | 2 +- include/linux/greybus/module.h | 2 +- include/linux/i3c/ccc.h | 6 +++--- include/linux/mlx5/mlx5_ifc_fpga.h | 2 +- include/linux/platform_data/brcmfmac.h | 2 +- .../linux/platform_data/cros_ec_commands.h | 2 +- include/net/bluetooth/mgmt.h | 2 +- include/net/ioam6.h | 2 +- include/sound/sof/channel_map.h | 4 ++-- scripts/dtc/libfdt/fdt.h | 4 ++-- sound/soc/intel/atom/sst-mfld-dsp.h | 4 ++-- sound/soc/intel/skylake/skl-topology.h | 2 +- tools/lib/perf/include/perf/event.h | 2 +- 69 files changed, 116 insertions(+), 116 deletions(-) diff --git a/arch/alpha/include/asm/hwrpb.h b/arch/alpha/include/asm/hwrpb.h index d8180e527a1e..fc76f36265ad 100644 --- a/arch/alpha/include/asm/hwrpb.h +++ b/arch/alpha/include/asm/hwrpb.h @@ -152,7 +152,7 @@ struct memdesc_struct { unsigned long chksum; unsigned long optional_pa; unsigned long numclusters; - struct memclust_struct cluster[0]; + struct memclust_struct cluster[]; }; struct dsr_struct { diff --git a/arch/ia64/include/asm/sal.h b/arch/ia64/include/asm/sal.h index 78f4f7b40435..22749a201e92 100644 --- a/arch/ia64/include/asm/sal.h +++ b/arch/ia64/include/asm/sal.h @@ -420,7 +420,7 @@ typedef struct sal_log_processor_info { * The rest of this structure consists of variable-length arrays, which can't be * expressed in C. */ - sal_log_mod_error_info_t info[0]; + sal_log_mod_error_info_t info[]; /* * This is what the rest looked like if C supported variable-length arrays: * diff --git a/arch/s390/include/asm/ccwgroup.h b/arch/s390/include/asm/ccwgroup.h index aa995d91cd1d..11d2fb3de4f5 100644 --- a/arch/s390/include/asm/ccwgroup.h +++ b/arch/s390/include/asm/ccwgroup.h @@ -25,7 +25,7 @@ struct ccwgroup_device { unsigned int count; struct device dev; struct work_struct ungroup_work; - struct ccw_device *cdev[0]; + struct ccw_device *cdev[]; }; /** diff --git a/arch/s390/include/asm/chsc.h b/arch/s390/include/asm/chsc.h index ae4d2549cd67..bb48ea380c0d 100644 --- a/arch/s390/include/asm/chsc.h +++ b/arch/s390/include/asm/chsc.h @@ -63,7 +63,7 @@ struct chsc_pnso_area { struct chsc_header response; u32:32; struct chsc_pnso_naihdr naihdr; - struct chsc_pnso_naid_l2 entries[0]; + struct chsc_pnso_naid_l2 entries[]; } __packed __aligned(PAGE_SIZE); #endif /* _ASM_S390_CHSC_H */ diff --git a/arch/s390/include/asm/eadm.h b/arch/s390/include/asm/eadm.h index 445fe4c8184a..06f795855af7 100644 --- a/arch/s390/include/asm/eadm.h +++ b/arch/s390/include/asm/eadm.h @@ -78,7 +78,7 @@ struct aob { struct aob_rq_header { struct scm_device *scmdev; - char data[0]; + char data[]; }; struct scm_device { diff --git a/arch/s390/include/asm/fcx.h b/arch/s390/include/asm/fcx.h index cff0749e9657..b8a028a36173 100644 --- a/arch/s390/include/asm/fcx.h +++ b/arch/s390/include/asm/fcx.h @@ -214,7 +214,7 @@ struct dcw_intrg_data { u32 :32; u64 time; u64 prog_id; - u8 prog_data[0]; + u8 prog_data[]; } __attribute__ ((packed)); #define DCW_FLAGS_CC (1 << (7 - 1)) @@ -241,7 +241,7 @@ struct dcw { u32 :8; u32 cd_count:8; u32 count; - u8 cd[0]; + u8 cd[]; } __attribute__ ((packed)); #define TCCB_FORMAT_DEFAULT 0x7f diff --git a/arch/s390/include/asm/idals.h b/arch/s390/include/asm/idals.h index 6fb7aced104a..40eae2c08d61 100644 --- a/arch/s390/include/asm/idals.h +++ b/arch/s390/include/asm/idals.h @@ -108,7 +108,7 @@ clear_normalized_cda(struct ccw1 * ccw) struct idal_buffer { size_t size; size_t page_order; - void *data[0]; + void *data[]; }; /* diff --git a/arch/s390/include/asm/sclp.h b/arch/s390/include/asm/sclp.h index c68ea35de498..22b3213c6c9d 100644 --- a/arch/s390/include/asm/sclp.h +++ b/arch/s390/include/asm/sclp.h @@ -112,7 +112,7 @@ struct zpci_report_error_header { * (OpenCrypto Successful Diagnostics Execution) */ u16 length; /* Length of Subsequent Data (up to 4K – SCLP header */ - u8 data[0]; /* Subsequent Data passed verbatim to SCLP ET 24 */ + u8 data[]; /* Subsequent Data passed verbatim to SCLP ET 24 */ } __packed; extern char *sclp_early_sccb; diff --git a/arch/s390/include/asm/sysinfo.h b/arch/s390/include/asm/sysinfo.h index fe7b3f8f0791..ab1c6316055c 100644 --- a/arch/s390/include/asm/sysinfo.h +++ b/arch/s390/include/asm/sysinfo.h @@ -67,12 +67,12 @@ struct sysinfo_1_2_2 { unsigned short cpus_configured; unsigned short cpus_standby; unsigned short cpus_reserved; - unsigned short adjustment[0]; + unsigned short adjustment[]; }; struct sysinfo_1_2_2_extension { unsigned int alt_capability; - unsigned short alt_adjustment[0]; + unsigned short alt_adjustment[]; }; struct sysinfo_2_2_1 { @@ -181,7 +181,7 @@ struct sysinfo_15_1_x { unsigned char reserved1; unsigned char mnest; unsigned char reserved2[4]; - union topology_entry tle[0]; + union topology_entry tle[]; }; int stsi(void *sysinfo, int fc, int sel1, int sel2); diff --git a/arch/sh/include/asm/thread_info.h b/arch/sh/include/asm/thread_info.h index 598d0184ffea..3a2d50d61fc9 100644 --- a/arch/sh/include/asm/thread_info.h +++ b/arch/sh/include/asm/thread_info.h @@ -33,7 +33,7 @@ struct thread_info { mm_segment_t addr_limit; /* thread address space */ unsigned long previous_sp; /* sp of previous stack in case of nested IRQ stacks */ - __u8 supervisor_stack[0]; + __u8 supervisor_stack[]; }; #endif diff --git a/arch/sparc/include/asm/vio.h b/arch/sparc/include/asm/vio.h index 8a1a83bbb6d5..2d7bdf665fd3 100644 --- a/arch/sparc/include/asm/vio.h +++ b/arch/sparc/include/asm/vio.h @@ -70,7 +70,7 @@ struct vio_dring_register { #define VIO_RX_DRING_DATA 0x0004 u16 resv; u32 num_cookies; - struct ldc_trans_cookie cookies[0]; + struct ldc_trans_cookie cookies[]; }; struct vio_dring_unregister { @@ -161,7 +161,7 @@ struct vio_disk_desc { u64 size; u32 ncookies; u32 resv2; - struct ldc_trans_cookie cookies[0]; + struct ldc_trans_cookie cookies[]; }; #define VIO_DISK_VNAME_LEN 8 @@ -200,13 +200,13 @@ struct vio_disk_devid { u16 resv; u16 type; u32 len; - char id[0]; + char id[]; }; struct vio_disk_efi { u64 lba; u64 len; - char data[0]; + char data[]; }; /* VIO net specific structures and defines */ @@ -246,7 +246,7 @@ struct vio_net_desc { struct vio_dring_hdr hdr; u32 size; u32 ncookies; - struct ldc_trans_cookie cookies[0]; + struct ldc_trans_cookie cookies[]; }; struct vio_net_dext { diff --git a/arch/um/include/shared/net_kern.h b/arch/um/include/shared/net_kern.h index 441a8a309329..67b2e9a1f2e5 100644 --- a/arch/um/include/shared/net_kern.h +++ b/arch/um/include/shared/net_kern.h @@ -39,7 +39,7 @@ struct uml_net_private { void (*add_address)(unsigned char *, unsigned char *, void *); void (*delete_address)(unsigned char *, unsigned char *, void *); - char user[0]; + char user[]; }; struct net_kern_info { diff --git a/arch/x86/include/asm/microcode_amd.h b/arch/x86/include/asm/microcode_amd.h index 7063b5a43220..ac31f9140d07 100644 --- a/arch/x86/include/asm/microcode_amd.h +++ b/arch/x86/include/asm/microcode_amd.h @@ -38,7 +38,7 @@ struct microcode_header_amd { struct microcode_amd { struct microcode_header_amd hdr; - unsigned int mpb[0]; + unsigned int mpb[]; }; #define PATCH_MAX_SIZE (3 * PAGE_SIZE) diff --git a/arch/x86/include/asm/microcode_intel.h b/arch/x86/include/asm/microcode_intel.h index d85a07d7154f..4c92cea7e4b5 100644 --- a/arch/x86/include/asm/microcode_intel.h +++ b/arch/x86/include/asm/microcode_intel.h @@ -19,7 +19,7 @@ struct microcode_header_intel { struct microcode_intel { struct microcode_header_intel hdr; - unsigned int bits[0]; + unsigned int bits[]; }; /* microcode format is extended from prescott processors */ @@ -33,7 +33,7 @@ struct extended_sigtable { unsigned int count; unsigned int cksum; unsigned int reserved[3]; - struct extended_signature sigs[0]; + struct extended_signature sigs[]; }; #define DEFAULT_UCODE_DATASIZE (2000) diff --git a/arch/x86/include/asm/pci.h b/arch/x86/include/asm/pci.h index d2c76c8d8cfd..f3fd5928bcbb 100644 --- a/arch/x86/include/asm/pci.h +++ b/arch/x86/include/asm/pci.h @@ -135,7 +135,7 @@ struct pci_setup_rom { unsigned long bus; unsigned long device; unsigned long function; - uint8_t romdata[0]; + uint8_t romdata[]; }; #endif /* _ASM_X86_PCI_H */ diff --git a/arch/x86/include/asm/pci_x86.h b/arch/x86/include/asm/pci_x86.h index 490411dba438..3fb6fc596095 100644 --- a/arch/x86/include/asm/pci_x86.h +++ b/arch/x86/include/asm/pci_x86.h @@ -87,7 +87,7 @@ struct irq_routing_table { u32 miniport_data; /* Crap */ u8 rfu[11]; u8 checksum; /* Modulo 256 checksum must give 0 */ - struct irq_info slots[0]; + struct irq_info slots[]; } __attribute__((packed)); extern unsigned int pcibios_irq_mask; diff --git a/arch/xtensa/include/asm/bootparam.h b/arch/xtensa/include/asm/bootparam.h index 892aab399ac8..6333bd1eb9d2 100644 --- a/arch/xtensa/include/asm/bootparam.h +++ b/arch/xtensa/include/asm/bootparam.h @@ -34,7 +34,7 @@ typedef struct bp_tag { unsigned short id; /* tag id */ unsigned short size; /* size of this record excluding the structure*/ - unsigned long data[0]; /* data */ + unsigned long data[]; /* data */ } bp_tag_t; struct bp_meminfo { diff --git a/drivers/crypto/caam/pdb.h b/drivers/crypto/caam/pdb.h index 8ccc22075043..4b1bcf53f7ac 100644 --- a/drivers/crypto/caam/pdb.h +++ b/drivers/crypto/caam/pdb.h @@ -144,7 +144,7 @@ struct ipsec_encap_pdb { }; u32 spi; u32 ip_hdr_len; - u32 ip_hdr[0]; + u32 ip_hdr[]; }; /** diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c b/drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c index 1a1edae67e4e..3acee0060e23 100644 --- a/drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c @@ -51,7 +51,7 @@ struct __guc_ads_blob { struct guc_gt_system_info system_info; struct guc_engine_usage engine_usage; /* From here on, location is dynamic! Refer to above diagram. */ - struct guc_mmio_reg regset[0]; + struct guc_mmio_reg regset[]; } __packed; static u32 guc_ads_regset_size(struct intel_guc *guc) diff --git a/drivers/gpu/drm/nouveau/include/nvfw/hs.h b/drivers/gpu/drm/nouveau/include/nvfw/hs.h index 64d0d32200c2..b53bbc4cd130 100644 --- a/drivers/gpu/drm/nouveau/include/nvfw/hs.h +++ b/drivers/gpu/drm/nouveau/include/nvfw/hs.h @@ -23,7 +23,7 @@ struct nvfw_hs_load_header { u32 data_dma_base; u32 data_size; u32 num_apps; - u32 apps[0]; + u32 apps[]; }; const struct nvfw_hs_load_header * diff --git a/drivers/hwtracing/coresight/coresight-config.h b/drivers/hwtracing/coresight/coresight-config.h index 9bd44b940add..2e1670523461 100644 --- a/drivers/hwtracing/coresight/coresight-config.h +++ b/drivers/hwtracing/coresight/coresight-config.h @@ -231,7 +231,7 @@ struct cscfg_config_csdev { bool enabled; struct list_head node; int nr_feat; - struct cscfg_feature_csdev *feats_csdev[0]; + struct cscfg_feature_csdev *feats_csdev[]; }; /** diff --git a/drivers/misc/bcm-vk/bcm_vk.h b/drivers/misc/bcm-vk/bcm_vk.h index a1338f375589..25d51222eedf 100644 --- a/drivers/misc/bcm-vk/bcm_vk.h +++ b/drivers/misc/bcm-vk/bcm_vk.h @@ -311,7 +311,7 @@ struct bcm_vk_peer_log { u32 wr_idx; u32 buf_size; u32 mask; - char data[0]; + char data[]; }; /* max buf size allowed */ diff --git a/drivers/misc/habanalabs/include/common/cpucp_if.h b/drivers/misc/habanalabs/include/common/cpucp_if.h index 737c39f33f05..f9c4acc9bf5a 100644 --- a/drivers/misc/habanalabs/include/common/cpucp_if.h +++ b/drivers/misc/habanalabs/include/common/cpucp_if.h @@ -540,19 +540,19 @@ struct cpucp_packet { struct cpucp_unmask_irq_arr_packet { struct cpucp_packet cpucp_pkt; __le32 length; - __le32 irqs[0]; + __le32 irqs[]; }; struct cpucp_nic_status_packet { struct cpucp_packet cpucp_pkt; __le32 length; - __le32 data[0]; + __le32 data[]; }; struct cpucp_array_data_packet { struct cpucp_packet cpucp_pkt; __le32 length; - __le32 data[0]; + __le32 data[]; }; enum cpucp_packet_rc { diff --git a/drivers/misc/habanalabs/include/gaudi/gaudi_packets.h b/drivers/misc/habanalabs/include/gaudi/gaudi_packets.h index 6e097ace2e96..66fc083a7c6a 100644 --- a/drivers/misc/habanalabs/include/gaudi/gaudi_packets.h +++ b/drivers/misc/habanalabs/include/gaudi/gaudi_packets.h @@ -54,7 +54,7 @@ struct gaudi_packet { /* The rest of the packet data follows. Use the corresponding * packet_XXX struct to deference the data, based on packet type */ - u8 contents[0]; + u8 contents[]; }; struct packet_nop { @@ -75,7 +75,7 @@ struct packet_wreg32 { struct packet_wreg_bulk { __le32 size64; __le32 ctl; - __le64 values[0]; /* data starts here */ + __le64 values[]; /* data starts here */ }; #define GAUDI_PKT_LONG_CTL_OP_SHIFT 20 diff --git a/drivers/misc/habanalabs/include/goya/goya_packets.h b/drivers/misc/habanalabs/include/goya/goya_packets.h index ef54bad20509..50ce5175b63a 100644 --- a/drivers/misc/habanalabs/include/goya/goya_packets.h +++ b/drivers/misc/habanalabs/include/goya/goya_packets.h @@ -62,7 +62,7 @@ struct goya_packet { /* The rest of the packet data follows. Use the corresponding * packet_XXX struct to deference the data, based on packet type */ - u8 contents[0]; + u8 contents[]; }; struct packet_nop { @@ -86,7 +86,7 @@ struct packet_wreg32 { struct packet_wreg_bulk { __le32 size64; __le32 ctl; - __le64 values[0]; /* data starts here */ + __le64 values[]; /* data starts here */ }; struct packet_msg_long { diff --git a/drivers/net/ethernet/freescale/enetc/enetc_hw.h b/drivers/net/ethernet/freescale/enetc/enetc_hw.h index 1514e6a4a3ff..ce5b677e8c2f 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc_hw.h +++ b/drivers/net/ethernet/freescale/enetc/enetc_hw.h @@ -881,7 +881,7 @@ struct sgcl_data { u32 bth; u32 ct; u32 cte; - struct sgce sgcl[0]; + struct sgce sgcl[]; }; #define ENETC_CBDR_FMI_MR BIT(0) diff --git a/drivers/net/ethernet/i825xx/sun3_82586.h b/drivers/net/ethernet/i825xx/sun3_82586.h index 79aef681ac85..451cb3d26cb5 100644 --- a/drivers/net/ethernet/i825xx/sun3_82586.h +++ b/drivers/net/ethernet/i825xx/sun3_82586.h @@ -250,7 +250,7 @@ struct mcsetup_cmd_struct unsigned short cmd_cmd; unsigned short cmd_link; unsigned short mc_cnt; /* number of bytes in the MC-List */ - unsigned char mc_list[0][6]; /* pointer to 6 bytes entries */ + unsigned char mc_list[][6]; /* pointer to 6 bytes entries */ }; /* diff --git a/drivers/net/ethernet/marvell/octeontx2/af/npc.h b/drivers/net/ethernet/marvell/octeontx2/af/npc.h index 77fd39e2c8db..9b6e587e78b4 100644 --- a/drivers/net/ethernet/marvell/octeontx2/af/npc.h +++ b/drivers/net/ethernet/marvell/octeontx2/af/npc.h @@ -455,7 +455,7 @@ struct npc_coalesced_kpu_prfl { u8 name[NPC_NAME_LEN]; /* KPU Profile name */ u64 version; /* KPU firmware/profile version */ u8 num_prfl; /* No of NPC profiles. */ - u16 prfl_sz[0]; + u16 prfl_sz[]; }; struct npc_mcam_kex { @@ -482,7 +482,7 @@ struct npc_kpu_fwdata { * struct npc_kpu_profile_cam[entries]; * struct npc_kpu_profile_action[entries]; */ - u8 data[0]; + u8 data[]; } __packed; struct npc_lt_def { @@ -572,7 +572,7 @@ struct npc_kpu_profile_fwdata { * Custom KPU CAM and ACTION configuration entries. * struct npc_kpu_fwdata kpu[kpus]; */ - u8 data[0]; + u8 data[]; } __packed; struct rvu_npc_mcam_rule { diff --git a/drivers/net/ethernet/qlogic/qed/qed_mfw_hsi.h b/drivers/net/ethernet/qlogic/qed/qed_mfw_hsi.h index b70ee8200e15..6459dd3feb37 100644 --- a/drivers/net/ethernet/qlogic/qed/qed_mfw_hsi.h +++ b/drivers/net/ethernet/qlogic/qed/qed_mfw_hsi.h @@ -2470,6 +2470,6 @@ struct nvm_meta_bin_t { u32 version; #define NVM_META_BIN_VERSION 1 u32 num_options; - u32 options[0]; + u32 options[]; }; #endif diff --git a/drivers/net/ethernet/ti/davinci_mdio.c b/drivers/net/ethernet/ti/davinci_mdio.c index a4efd5e35158..fce2626e34fa 100644 --- a/drivers/net/ethernet/ti/davinci_mdio.c +++ b/drivers/net/ethernet/ti/davinci_mdio.c @@ -70,7 +70,7 @@ struct davinci_mdio_regs { #define USERACCESS_DATA (0xffff) u32 physel; - } user[0]; + } user[]; }; static const struct mdio_platform_data default_pdata = { diff --git a/drivers/scsi/dpt/dpti_i2o.h b/drivers/scsi/dpt/dpti_i2o.h index bf0daeeb50a9..e1fbbf55c09d 100644 --- a/drivers/scsi/dpt/dpti_i2o.h +++ b/drivers/scsi/dpt/dpti_i2o.h @@ -123,7 +123,7 @@ struct i2o_sys_tbl u32 change_ind; u32 reserved2; u32 reserved3; - struct i2o_sys_tbl_entry iops[0]; + struct i2o_sys_tbl_entry iops[]; }; /* diff --git a/drivers/scsi/elx/libefc_sli/sli4.h b/drivers/scsi/elx/libefc_sli/sli4.h index ee2a9e65a88d..38af166cc786 100644 --- a/drivers/scsi/elx/libefc_sli/sli4.h +++ b/drivers/scsi/elx/libefc_sli/sli4.h @@ -609,7 +609,7 @@ struct sli4_rqst_cmn_create_cq_v2 { __le16 cqe_count; __le16 rsvd30; __le32 rsvd32; - struct sli4_dmaaddr page_phys_addr[0]; + struct sli4_dmaaddr page_phys_addr[]; }; enum sli4_create_cqset_e { @@ -634,7 +634,7 @@ struct sli4_rqst_cmn_create_cq_set_v0 { __le16 num_cq_req; __le16 dw6w1_flags; __le16 eq_id[16]; - struct sli4_dmaaddr page_phys_addr[0]; + struct sli4_dmaaddr page_phys_addr[]; }; /* CQE count */ @@ -764,7 +764,7 @@ struct sli4_rqst_cmn_create_mq_ext { __le32 dw7_val; __le32 dw8_flags; __le32 rsvd36; - struct sli4_dmaaddr page_phys_addr[0]; + struct sli4_dmaaddr page_phys_addr[]; }; struct sli4_rsp_cmn_create_mq_ext { @@ -802,7 +802,7 @@ struct sli4_rqst_cmn_create_cq_v0 { __le32 dw6_flags; __le32 rsvd28; __le32 rsvd32; - struct sli4_dmaaddr page_phys_addr[0]; + struct sli4_dmaaddr page_phys_addr[]; }; enum sli4_create_rq_e { @@ -887,7 +887,7 @@ struct sli4_rqst_rq_create_v2 { __le16 base_cq_id; __le16 rsvd26; __le32 rsvd42; - struct sli4_dmaaddr page_phys_addr[0]; + struct sli4_dmaaddr page_phys_addr[]; }; struct sli4_rsp_rq_create_v2 { @@ -3168,7 +3168,7 @@ struct sli4_rqst_cmn_read_object { __le32 read_offset; u8 object_name[104]; __le32 host_buffer_descriptor_count; - struct sli4_bde host_buffer_descriptor[0]; + struct sli4_bde host_buffer_descriptor[]; }; #define RSP_COM_READ_OBJ_EOF 0x80000000 @@ -3191,7 +3191,7 @@ struct sli4_rqst_cmn_write_object { __le32 write_offset; u8 object_name[104]; __le32 host_buffer_descriptor_count; - struct sli4_bde host_buffer_descriptor[0]; + struct sli4_bde host_buffer_descriptor[]; }; #define RSP_CHANGE_STATUS 0xff @@ -3217,7 +3217,7 @@ struct sli4_rqst_cmn_read_object_list { __le32 read_offset; u8 object_name[104]; __le32 host_buffer_descriptor_count; - struct sli4_bde host_buffer_descriptor[0]; + struct sli4_bde host_buffer_descriptor[]; }; enum sli4_rqst_set_dump_flags { @@ -3342,7 +3342,7 @@ struct sli4_rspource_descriptor_v1 { u8 descriptor_type; u8 descriptor_length; __le16 rsvd16; - __le32 type_specific[0]; + __le32 type_specific[]; }; enum sli4_pcie_desc_flags { @@ -3474,7 +3474,7 @@ struct sli4_rqst_post_hdr_templates { struct sli4_rqst_hdr hdr; __le16 rpi_offset; __le16 page_count; - struct sli4_dmaaddr page_descriptor[0]; + struct sli4_dmaaddr page_descriptor[]; }; #define SLI4_HDR_TEMPLATE_SIZE 64 diff --git a/drivers/scsi/mpi3mr/mpi3mr.h b/drivers/scsi/mpi3mr/mpi3mr.h index fc4eaf6d1e47..fb7d8775c9f7 100644 --- a/drivers/scsi/mpi3mr/mpi3mr.h +++ b/drivers/scsi/mpi3mr/mpi3mr.h @@ -878,7 +878,7 @@ struct mpi3mr_fwevt { bool process_evt; u32 evt_ctx; struct kref ref_count; - char event_data[0] __aligned(4); + char event_data[] __aligned(4); }; diff --git a/drivers/scsi/qla2xxx/qla_bsg.h b/drivers/scsi/qla2xxx/qla_bsg.h index 0f8a4c7e52a2..6d2b0a7436c1 100644 --- a/drivers/scsi/qla2xxx/qla_bsg.h +++ b/drivers/scsi/qla2xxx/qla_bsg.h @@ -157,7 +157,7 @@ struct qla84_msg_mgmt { uint16_t rsrvd; struct qla84_mgmt_param mgmtp;/* parameters for cmd */ uint32_t len; /* bytes in payload following this struct */ - uint8_t payload[0]; /* payload for cmd */ + uint8_t payload[]; /* payload for cmd */ }; struct qla_bsg_a84_mgmt { @@ -216,7 +216,7 @@ struct qla_image_version { struct qla_image_version_list { uint32_t count; - struct qla_image_version version[0]; + struct qla_image_version version[]; } __packed; struct qla_status_reg { diff --git a/drivers/scsi/qla2xxx/qla_def.h b/drivers/scsi/qla2xxx/qla_def.h index 9ebf4a234d9a..b6434c72dee3 100644 --- a/drivers/scsi/qla2xxx/qla_def.h +++ b/drivers/scsi/qla2xxx/qla_def.h @@ -5410,7 +5410,7 @@ struct ql_vnd_stat_entry { struct ql_vnd_stats { u64 entry_count; /* Num of entries */ u64 rservd; - struct ql_vnd_stat_entry entry[0]; /* Place holder of entries */ + struct ql_vnd_stat_entry entry[]; /* Place holder of entries */ } __packed; struct ql_vnd_host_stats_resp { diff --git a/drivers/scsi/qla2xxx/qla_edif_bsg.h b/drivers/scsi/qla2xxx/qla_edif_bsg.h index 53026d82ebff..5a26c77157da 100644 --- a/drivers/scsi/qla2xxx/qla_edif_bsg.h +++ b/drivers/scsi/qla2xxx/qla_edif_bsg.h @@ -121,7 +121,7 @@ struct app_pinfo { struct app_pinfo_reply { uint8_t port_count; uint8_t reserved[VND_CMD_APP_RESERVED_SIZE]; - struct app_pinfo ports[0]; + struct app_pinfo ports[]; } __packed; struct app_sinfo_req { @@ -140,7 +140,7 @@ struct app_sinfo { struct app_stats_reply { uint8_t elem_count; - struct app_sinfo elem[0]; + struct app_sinfo elem[]; } __packed; struct qla_sa_update_frame { diff --git a/drivers/scsi/qla2xxx/qla_fw.h b/drivers/scsi/qla2xxx/qla_fw.h index 073d06e88c58..0bb1d562f0bf 100644 --- a/drivers/scsi/qla2xxx/qla_fw.h +++ b/drivers/scsi/qla2xxx/qla_fw.h @@ -1706,7 +1706,7 @@ struct qla_flt_header { __le16 length; __le16 checksum; __le16 unused; - struct qla_flt_region region[0]; + struct qla_flt_region region[]; }; #define FLT_REGION_SIZE 16 diff --git a/drivers/scsi/qla4xxx/ql4_fw.h b/drivers/scsi/qla4xxx/ql4_fw.h index 4e1764df0a73..860ec61b51b9 100644 --- a/drivers/scsi/qla4xxx/ql4_fw.h +++ b/drivers/scsi/qla4xxx/ql4_fw.h @@ -1028,7 +1028,7 @@ struct crash_record { uint8_t out_RISC_reg_dump[256]; /* 80 -17F */ uint8_t in_RISC_reg_dump[256]; /*180 -27F */ - uint8_t in_out_RISC_stack_dump[0]; /*280 - ??? */ + uint8_t in_out_RISC_stack_dump[]; /*280 - ??? */ }; struct conn_event_log_entry { diff --git a/drivers/staging/r8188eu/include/ieee80211.h b/drivers/staging/r8188eu/include/ieee80211.h index 3a23d5299314..5e7de631b8ef 100644 --- a/drivers/staging/r8188eu/include/ieee80211.h +++ b/drivers/staging/r8188eu/include/ieee80211.h @@ -185,7 +185,7 @@ struct ieee_param { struct ieee_param_ex { u32 cmd; u8 sta_addr[ETH_ALEN]; - u8 data[0]; + u8 data[]; }; struct sta_data { @@ -713,7 +713,7 @@ struct ieee80211_info_element_hdr { struct ieee80211_info_element { u8 id; u8 len; - u8 data[0]; + u8 data[]; } __packed; /* @@ -776,7 +776,7 @@ struct ieee80211_txb { u16 reserved; u16 frag_size; u16 payload_size; - struct sk_buff *fragments[0]; + struct sk_buff *fragments[]; }; /* SWEEP TABLE ENTRIES NUMBER*/ diff --git a/drivers/staging/r8188eu/include/rtw_cmd.h b/drivers/staging/r8188eu/include/rtw_cmd.h index cf0945ae11c1..f8991a0493d0 100644 --- a/drivers/staging/r8188eu/include/rtw_cmd.h +++ b/drivers/staging/r8188eu/include/rtw_cmd.h @@ -73,7 +73,7 @@ struct c2h_evt_hdr { u8 id:4; u8 plen:4; u8 seq; - u8 payload[0]; + u8 payload[]; }; #define c2h_evt_exist(c2h_evt) ((c2h_evt)->id || (c2h_evt)->plen) @@ -662,25 +662,25 @@ struct getcurtxpwrlevel_rspi { struct setprobereqextraie_parm { unsigned char e_id; unsigned char ie_len; - unsigned char ie[0]; + unsigned char ie[]; }; struct setassocreqextraie_parm { unsigned char e_id; unsigned char ie_len; - unsigned char ie[0]; + unsigned char ie[]; }; struct setproberspextraie_parm { unsigned char e_id; unsigned char ie_len; - unsigned char ie[0]; + unsigned char ie[]; }; struct setassocrspextraie_parm { unsigned char e_id; unsigned char ie_len; - unsigned char ie[0]; + unsigned char ie[]; }; struct addBaReq_parm { diff --git a/drivers/staging/rtl8712/rtl871x_cmd.h b/drivers/staging/rtl8712/rtl871x_cmd.h index ddd69c4ae208..95e9ea5b2d98 100644 --- a/drivers/staging/rtl8712/rtl871x_cmd.h +++ b/drivers/staging/rtl8712/rtl871x_cmd.h @@ -657,25 +657,25 @@ struct setra_parm { struct setprobereqextraie_parm { unsigned char e_id; unsigned char ie_len; - unsigned char ie[0]; + unsigned char ie[]; }; struct setassocreqextraie_parm { unsigned char e_id; unsigned char ie_len; - unsigned char ie[0]; + unsigned char ie[]; }; struct setproberspextraie_parm { unsigned char e_id; unsigned char ie_len; - unsigned char ie[0]; + unsigned char ie[]; }; struct setassocrspextraie_parm { unsigned char e_id; unsigned char ie_len; - unsigned char ie[0]; + unsigned char ie[]; }; struct addBaReq_parm { diff --git a/drivers/staging/rtl8723bs/include/ieee80211.h b/drivers/staging/rtl8723bs/include/ieee80211.h index c11d7e2d2347..1e627dc0044d 100644 --- a/drivers/staging/rtl8723bs/include/ieee80211.h +++ b/drivers/staging/rtl8723bs/include/ieee80211.h @@ -204,7 +204,7 @@ struct ieee_param { struct ieee_param_ex { u32 cmd; u8 sta_addr[ETH_ALEN]; - u8 data[0]; + u8 data[]; }; struct sta_data { diff --git a/drivers/staging/rtl8723bs/include/rtw_cmd.h b/drivers/staging/rtl8723bs/include/rtw_cmd.h index 28d2d2732374..1bf030cbbbbe 100644 --- a/drivers/staging/rtl8723bs/include/rtw_cmd.h +++ b/drivers/staging/rtl8723bs/include/rtw_cmd.h @@ -94,7 +94,7 @@ struct c2h_evt_hdr { u8 id:4; u8 plen:4; u8 seq; - u8 payload[0]; + u8 payload[]; }; struct c2h_evt_hdr_88xx { diff --git a/drivers/staging/vc04_services/include/linux/raspberrypi/vchiq.h b/drivers/staging/vc04_services/include/linux/raspberrypi/vchiq.h index 81db7fb76d6d..c93f2f3e87bb 100644 --- a/drivers/staging/vc04_services/include/linux/raspberrypi/vchiq.h +++ b/drivers/staging/vc04_services/include/linux/raspberrypi/vchiq.h @@ -45,7 +45,7 @@ struct vchiq_header { /* Size of message data. */ unsigned int size; - char data[0]; /* message */ + char data[]; /* message */ }; struct vchiq_element { diff --git a/drivers/visorbus/vbuschannel.h b/drivers/visorbus/vbuschannel.h index 4aaf6564eb9f..98711fb6d66e 100644 --- a/drivers/visorbus/vbuschannel.h +++ b/drivers/visorbus/vbuschannel.h @@ -89,7 +89,7 @@ struct visor_vbus_channel { struct visor_vbus_headerinfo hdr_info; struct visor_vbus_deviceinfo chp_info; struct visor_vbus_deviceinfo bus_info; - struct visor_vbus_deviceinfo dev_info[0]; + struct visor_vbus_deviceinfo dev_info[]; } __packed; #endif diff --git a/fs/cifs/ntlmssp.h b/fs/cifs/ntlmssp.h index 298458404252..55758b9ec877 100644 --- a/fs/cifs/ntlmssp.h +++ b/fs/cifs/ntlmssp.h @@ -107,7 +107,7 @@ struct negotiate_message { SECURITY_BUFFER WorkstationName; /* RFC 1001 and ASCII */ struct ntlmssp_version Version; /* SECURITY_BUFFER */ - char DomainString[0]; + char DomainString[]; /* followed by WorkstationString */ } __packed; diff --git a/fs/ext4/fast_commit.h b/fs/ext4/fast_commit.h index 083ad1cb705a..07e8b734c4fd 100644 --- a/fs/ext4/fast_commit.h +++ b/fs/ext4/fast_commit.h @@ -55,13 +55,13 @@ struct ext4_fc_del_range { struct ext4_fc_dentry_info { __le32 fc_parent_ino; __le32 fc_ino; - __u8 fc_dname[0]; + __u8 fc_dname[]; }; /* Value structure for EXT4_FC_TAG_INODE and EXT4_FC_TAG_INODE_PARTIAL. */ struct ext4_fc_inode { __le32 fc_ino; - __u8 fc_raw_inode[0]; + __u8 fc_raw_inode[]; }; /* Value structure for tag EXT4_FC_TAG_TAIL. */ diff --git a/fs/ksmbd/ksmbd_netlink.h b/fs/ksmbd/ksmbd_netlink.h index 71bfb7de4472..ebe6ca08467a 100644 --- a/fs/ksmbd/ksmbd_netlink.h +++ b/fs/ksmbd/ksmbd_netlink.h @@ -241,7 +241,7 @@ struct ksmbd_rpc_command { struct ksmbd_spnego_authen_request { __u32 handle; __u16 spnego_blob_len; /* the length of spnego_blob */ - __u8 spnego_blob[0]; /* + __u8 spnego_blob[]; /* * the GSS token from SecurityBuffer of * SMB2 SESSION SETUP request */ diff --git a/fs/ksmbd/ntlmssp.h b/fs/ksmbd/ntlmssp.h index adaf4c0cbe8f..f13153c18b4e 100644 --- a/fs/ksmbd/ntlmssp.h +++ b/fs/ksmbd/ntlmssp.h @@ -95,7 +95,7 @@ struct security_buffer { struct target_info { __le16 Type; __le16 Length; - __u8 Content[0]; + __u8 Content[]; } __packed; struct negotiate_message { @@ -108,7 +108,7 @@ struct negotiate_message { * struct security_buffer for version info not present since we * do not set the version is present flag */ - char DomainString[0]; + char DomainString[]; /* followed by WorkstationString */ } __packed; @@ -140,7 +140,7 @@ struct authenticate_message { * struct security_buffer for version info not present since we * do not set the version is present flag */ - char UserString[0]; + char UserString[]; } __packed; struct ntlmv2_resp { diff --git a/fs/ksmbd/smb2pdu.h b/fs/ksmbd/smb2pdu.h index 725b800c29c8..d49468426576 100644 --- a/fs/ksmbd/smb2pdu.h +++ b/fs/ksmbd/smb2pdu.h @@ -759,7 +759,7 @@ struct smb2_file_rename_info { /* encoding of request for level 10 */ __u8 Reserved[7]; __u64 RootDirectory; /* MBZ for network operations (why says spec?) */ __le32 FileNameLength; - char FileName[0]; /* New name to be assigned */ + char FileName[]; /* New name to be assigned */ } __packed; /* level 10 Set */ struct smb2_file_link_info { /* encoding of request for level 11 */ @@ -768,7 +768,7 @@ struct smb2_file_link_info { /* encoding of request for level 11 */ __u8 Reserved[7]; __u64 RootDirectory; /* MBZ for network operations (why says spec?) */ __le32 FileNameLength; - char FileName[0]; /* Name to be assigned to new link */ + char FileName[]; /* Name to be assigned to new link */ } __packed; /* level 11 Set */ /* @@ -810,7 +810,7 @@ struct smb2_file_basic_info { /* data block encoding of response to level 18 */ struct smb2_file_alt_name_info { __le32 FileNameLength; - char FileName[0]; + char FileName[]; } __packed; struct smb2_file_stream_info { @@ -818,7 +818,7 @@ struct smb2_file_stream_info { __le32 StreamNameLength; __le64 StreamSize; __le64 StreamAllocationSize; - char StreamName[0]; + char StreamName[]; } __packed; struct smb2_file_eof_info { /* encoding of request for level 10 */ diff --git a/fs/ksmbd/transport_rdma.c b/fs/ksmbd/transport_rdma.c index 3c1ec1ac0b27..9976d39c6ed8 100644 --- a/fs/ksmbd/transport_rdma.c +++ b/fs/ksmbd/transport_rdma.c @@ -211,7 +211,7 @@ struct smb_direct_rdma_rw_msg { struct completion *completion; struct rdma_rw_ctx rw_ctx; struct sg_table sgt; - struct scatterlist sg_list[0]; + struct scatterlist sg_list[]; }; static inline int get_buf_page_count(void *buf, int size) diff --git a/fs/ksmbd/xattr.h b/fs/ksmbd/xattr.h index 8857c01093d9..16499ca5c82d 100644 --- a/fs/ksmbd/xattr.h +++ b/fs/ksmbd/xattr.h @@ -76,7 +76,7 @@ struct xattr_acl_entry { struct xattr_smb_acl { int count; int next; - struct xattr_acl_entry entries[0]; + struct xattr_acl_entry entries[]; }; /* 64bytes hash in xattr_ntacl is computed with sha256 */ diff --git a/fs/xfs/scrub/attr.h b/fs/xfs/scrub/attr.h index 1719e1c4da59..3590e10e3e62 100644 --- a/fs/xfs/scrub/attr.h +++ b/fs/xfs/scrub/attr.h @@ -24,7 +24,7 @@ struct xchk_xattr_buf { * space bitmap follows immediately after; and we have a third buffer * for storing intermediate bitmap results. */ - uint8_t buf[0]; + uint8_t buf[]; }; /* A place to store attribute values. */ diff --git a/include/acpi/actbl2.h b/include/acpi/actbl2.h index 16847c8d9d5f..9ee4d1b39125 100644 --- a/include/acpi/actbl2.h +++ b/include/acpi/actbl2.h @@ -2319,7 +2319,7 @@ struct acpi_table_rgrt { u16 version; u8 image_type; u8 reserved; - u8 image[0]; + u8 image[]; }; /* image_type values */ diff --git a/include/asm-generic/tlb.h b/include/asm-generic/tlb.h index 2c68a545ffa7..fd7feb5c7894 100644 --- a/include/asm-generic/tlb.h +++ b/include/asm-generic/tlb.h @@ -180,7 +180,7 @@ struct mmu_table_batch { struct rcu_head rcu; #endif unsigned int nr; - void *tables[0]; + void *tables[]; }; #define MAX_TABLE_BATCH \ @@ -227,7 +227,7 @@ struct mmu_gather_batch { struct mmu_gather_batch *next; unsigned int nr; unsigned int max; - struct page *pages[0]; + struct page *pages[]; }; #define MAX_GATHER_BATCH \ diff --git a/include/linux/greybus/greybus_manifest.h b/include/linux/greybus/greybus_manifest.h index 6e62fe478712..bef9eb2093e9 100644 --- a/include/linux/greybus/greybus_manifest.h +++ b/include/linux/greybus/greybus_manifest.h @@ -100,7 +100,7 @@ enum { struct greybus_descriptor_string { __u8 length; __u8 id; - __u8 string[0]; + __u8 string[]; } __packed; /* @@ -175,7 +175,7 @@ struct greybus_manifest_header { struct greybus_manifest { struct greybus_manifest_header header; - struct greybus_descriptor descriptors[0]; + struct greybus_descriptor descriptors[]; } __packed; #endif /* __GREYBUS_MANIFEST_H */ diff --git a/include/linux/greybus/hd.h b/include/linux/greybus/hd.h index d3faf0c1a569..718e2857054e 100644 --- a/include/linux/greybus/hd.h +++ b/include/linux/greybus/hd.h @@ -58,7 +58,7 @@ struct gb_host_device { struct gb_svc *svc; /* Private data for the host driver */ - unsigned long hd_priv[0] __aligned(sizeof(s64)); + unsigned long hd_priv[] __aligned(sizeof(s64)); }; #define to_gb_host_device(d) container_of(d, struct gb_host_device, dev) diff --git a/include/linux/greybus/module.h b/include/linux/greybus/module.h index 47b839af145d..3efe2133acfd 100644 --- a/include/linux/greybus/module.h +++ b/include/linux/greybus/module.h @@ -23,7 +23,7 @@ struct gb_module { bool disconnected; - struct gb_interface *interfaces[0]; + struct gb_interface *interfaces[]; }; #define to_gb_module(d) container_of(d, struct gb_module, dev) diff --git a/include/linux/i3c/ccc.h b/include/linux/i3c/ccc.h index 73b0982cc519..ad59a4ae60d1 100644 --- a/include/linux/i3c/ccc.h +++ b/include/linux/i3c/ccc.h @@ -132,7 +132,7 @@ struct i3c_ccc_dev_desc { struct i3c_ccc_defslvs { u8 count; struct i3c_ccc_dev_desc master; - struct i3c_ccc_dev_desc slaves[0]; + struct i3c_ccc_dev_desc slaves[]; } __packed; /** @@ -240,7 +240,7 @@ struct i3c_ccc_bridged_slave_desc { */ struct i3c_ccc_setbrgtgt { u8 count; - struct i3c_ccc_bridged_slave_desc bslaves[0]; + struct i3c_ccc_bridged_slave_desc bslaves[]; } __packed; /** @@ -318,7 +318,7 @@ enum i3c_ccc_setxtime_subcmd { */ struct i3c_ccc_setxtime { u8 subcmd; - u8 data[0]; + u8 data[]; } __packed; #define I3C_CCC_GETXTIME_SYNC_MODE BIT(0) diff --git a/include/linux/mlx5/mlx5_ifc_fpga.h b/include/linux/mlx5/mlx5_ifc_fpga.h index 07d77323f78a..cac4e94abd3a 100644 --- a/include/linux/mlx5/mlx5_ifc_fpga.h +++ b/include/linux/mlx5/mlx5_ifc_fpga.h @@ -185,7 +185,7 @@ struct mlx5_ifc_fpga_access_reg_bits { u8 address[0x40]; - u8 data[0][0x8]; + u8 data[][0x8]; }; enum mlx5_ifc_fpga_qp_state { diff --git a/include/linux/platform_data/brcmfmac.h b/include/linux/platform_data/brcmfmac.h index 2b5676ff35be..f922a192fe58 100644 --- a/include/linux/platform_data/brcmfmac.h +++ b/include/linux/platform_data/brcmfmac.h @@ -178,7 +178,7 @@ struct brcmfmac_platform_data { void (*power_off)(void); char *fw_alternative_path; int device_count; - struct brcmfmac_pd_device devices[0]; + struct brcmfmac_pd_device devices[]; }; diff --git a/include/linux/platform_data/cros_ec_commands.h b/include/linux/platform_data/cros_ec_commands.h index 271bd87bff0a..728735aed980 100644 --- a/include/linux/platform_data/cros_ec_commands.h +++ b/include/linux/platform_data/cros_ec_commands.h @@ -5644,7 +5644,7 @@ struct ec_response_typec_discovery { uint8_t svid_count; /* Number of SVIDs partner sent */ uint16_t reserved; uint32_t discovery_vdo[6]; /* Max VDOs allowed after VDM header is 6 */ - struct svid_mode_info svids[0]; + struct svid_mode_info svids[]; } __ec_align1; /* USB Type-C commands for AP-controlled device policy. */ diff --git a/include/net/bluetooth/mgmt.h b/include/net/bluetooth/mgmt.h index 107b25deae68..9607ec289fd0 100644 --- a/include/net/bluetooth/mgmt.h +++ b/include/net/bluetooth/mgmt.h @@ -696,7 +696,7 @@ struct mgmt_cp_set_blocked_keys { #define MGMT_READ_CONTROLLER_CAP_SIZE 0 struct mgmt_rp_read_controller_cap { __le16 cap_len; - __u8 cap[0]; + __u8 cap[]; } __packed; #define MGMT_OP_READ_EXP_FEATURES_INFO 0x0049 diff --git a/include/net/ioam6.h b/include/net/ioam6.h index 3f45ba37a2c6..781d2d8b2f29 100644 --- a/include/net/ioam6.h +++ b/include/net/ioam6.h @@ -35,7 +35,7 @@ struct ioam6_schema { int len; __be32 hdr; - u8 data[0]; + u8 data[]; }; struct ioam6_pernet_data { diff --git a/include/sound/sof/channel_map.h b/include/sound/sof/channel_map.h index fd3a30fcf756..d363f0ca6979 100644 --- a/include/sound/sof/channel_map.h +++ b/include/sound/sof/channel_map.h @@ -39,7 +39,7 @@ struct sof_ipc_channel_map { uint32_t ext_id; uint32_t ch_mask; uint32_t reserved; - int32_t ch_coeffs[0]; + int32_t ch_coeffs[]; } __packed; /** @@ -55,7 +55,7 @@ struct sof_ipc_stream_map { struct sof_ipc_cmd_hdr hdr; uint32_t num_ch_map; uint32_t reserved[3]; - struct sof_ipc_channel_map ch_map[0]; + struct sof_ipc_channel_map ch_map[]; } __packed; #endif /* __IPC_CHANNEL_MAP_H__ */ diff --git a/scripts/dtc/libfdt/fdt.h b/scripts/dtc/libfdt/fdt.h index f2e68807f277..0c91aa7f67b5 100644 --- a/scripts/dtc/libfdt/fdt.h +++ b/scripts/dtc/libfdt/fdt.h @@ -35,14 +35,14 @@ struct fdt_reserve_entry { struct fdt_node_header { fdt32_t tag; - char name[0]; + char name[]; }; struct fdt_property { fdt32_t tag; fdt32_t len; fdt32_t nameoff; - char data[0]; + char data[]; }; #endif /* !__ASSEMBLY */ diff --git a/sound/soc/intel/atom/sst-mfld-dsp.h b/sound/soc/intel/atom/sst-mfld-dsp.h index 8d9e29b16e57..c8f0816edb53 100644 --- a/sound/soc/intel/atom/sst-mfld-dsp.h +++ b/sound/soc/intel/atom/sst-mfld-dsp.h @@ -427,7 +427,7 @@ struct snd_sst_drop_response { struct snd_sst_async_msg { u32 msg_id; /* Async msg id */ - u32 payload[0]; + u32 payload[]; }; struct snd_sst_async_err_msg { @@ -514,7 +514,7 @@ struct snd_sst_bytes_v2 { u8 pipe_id; u8 rsvd; u16 len; - char bytes[0]; + char bytes[]; }; #define MAX_VTSV_FILES 2 diff --git a/sound/soc/intel/skylake/skl-topology.h b/sound/soc/intel/skylake/skl-topology.h index 22963634fbea..a5bccf2fcd88 100644 --- a/sound/soc/intel/skylake/skl-topology.h +++ b/sound/soc/intel/skylake/skl-topology.h @@ -164,7 +164,7 @@ struct skl_base_cfg_ext { u8 reserved[8]; u32 priv_param_length; /* Input pin formats followed by output ones. */ - struct skl_pin_format pins_fmt[0]; + struct skl_pin_format pins_fmt[]; } __packed; struct skl_algo_cfg { diff --git a/tools/lib/perf/include/perf/event.h b/tools/lib/perf/include/perf/event.h index 75ee385fb078..e7758707cadd 100644 --- a/tools/lib/perf/include/perf/event.h +++ b/tools/lib/perf/include/perf/event.h @@ -240,7 +240,7 @@ struct id_index_entry { struct perf_record_id_index { struct perf_event_header header; __u64 nr; - struct id_index_entry entries[0]; + struct id_index_entry entries[]; }; struct perf_record_auxtrace_info { -- 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 1FF7AC433F5 for ; Tue, 15 Feb 2022 17:41:48 +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:To:From :Date:Reply-To:Cc:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=LFO/OyZRn2rMiWnEGI0kJ06PfSIVNk076Y2Ty297wpo=; b=yw0X6PjOZumYIq YVLwehgdDWw/iaPJ/KsLqANS5bY5bQS4t2hlm3UvSfLBUXYnMpI29BblhRoo7+G30AouacEJuaYWB buRcKHtxYbqqrSgT7kRY3Oye0o0aLZiFo8xMatxssoXDMm9+1p3Lpdnzg5J4CX6SKSXf9yXOK2tpd qJzKgLvvwke/hM3phrk+Q4ZllFxiRN0u9pEy62+8qznZ4T60bcYibmj+JwedLqbvjhgEBkZ9g7rjx TvICLvkSDWJ2FRGoOfaBfv2lzPTpdjbULAMS1KFkI2Tg3iQKpMnoxq5cT9UIfWS9WiMmF4Cywejlf 72yE7H0OBT+Yvz1jC0/w==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nK1oK-003woV-5s; Tue, 15 Feb 2022 17:40:20 +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 1nK1oB-003wmD-F5; Tue, 15 Feb 2022 17:40:16 +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 95BA5615F7; Tue, 15 Feb 2022 17:40:09 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id C6721C340EB; Tue, 15 Feb 2022 17:40:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1644946809; bh=DMett6vVXSj8wlqJaPBVitbC+1b/pFrWBdbwXSCqmvY=; h=Date:From:To:Subject:From; b=YHAhsK9b4ceo93O7cGMZkhAJtHRB9CQ+4MLg6VhoAXIqUZPNOt2f2z/RHYaJLxO76 o1sCxEuNmr5hKqcrqdfi+pE1eKIsCJw9V851Cjnm9cHc2sRZx45hzEu6vQLDXrkmcu xKf2+PXhFhb8dbpeFBN+6vQWXHxPvhHISBgL9Fxux6eGzM+9JCAXaTGT3/3xrwLv7i m8KqkuUbReSbhvZRqSxYfdGT/EXjyAq6yFXtOj0CnyhrPV5rigOkg2Pp92zsFyGVAh 1grvtuR4WfTMHEo/CBi7F8KvXPKqUpdwIOcsL3Pbwr2lQCgLUtbCpkZ3x6BdjDlhc3 zFo6AQd/J/DOQ== Date: Tue, 15 Feb 2022 11:47:43 -0600 From: "Gustavo A. R. Silva" To: GR-QLogic-Storage-Upstream@marvell.com, linux-alpha@vger.kernel.org, linux-kernel@vger.kernel.org, linux-ia64@vger.kernel.org, linux-s390@vger.kernel.org, linux-sh@vger.kernel.org, sparclinux@vger.kernel.org, linux-um@lists.infradead.org, linux-xtensa@linux-xtensa.org, linux-crypto@vger.kernel.org, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, nouveau@lists.freedesktop.org, coresight@lists.linaro.org, linux-arm-kernel@lists.infradead.org, bcm-kernel-feedback-list@broadcom.com, netdev@vger.kernel.org, linux-omap@vger.kernel.org, linux-scsi@vger.kernel.org, target-devel@vger.kernel.org, mpi3mr-linuxdrv.pdl@broadcom.com, linux-staging@lists.linux.dev, linux-rpi-kernel@lists.infradead.org, sparmaintainer@unisys.com, linux-cifs@vger.kernel.org, samba-technical@lists.samba.org, linux-ext4@vger.kernel.org, linux-acpi@vger.kernel.org, devel@acpica.org, linux-arch@vger.kernel.org, linux-mm@kvack.org, greybus-dev@lists.linaro.org, linux-i3c@lists.infradead.org, linux-rdma@vger.kernel.org, linux-bluetooth@vger.kernel.org, alsa-devel@alsa-project.org, devicetree@vger.kernel.org, linux-perf-users@vger.kernel.org, "Gustavo A. R. Silva" , linux-hardening@vger.kernel.org Subject: [PATCH][next] treewide: Replace zero-length arrays with flexible-array members Message-ID: <20220215174743.GA878920@embeddedor> MIME-Version: 1.0 Content-Disposition: inline X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220215_094011_716974_5A7891BA X-CRM114-Status: GOOD ( 21.35 ) 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 Y2luZWxsZToKKG5leHQtMjAyMjAyMTQkIHNwYXRjaCAtLWpvYnMgJChnZXRjb25mIF9OUFJPQ0VT U09SU19PTkxOKSAtLXNwLWZpbGUgc2NyaXB0LmNvY2NpIC0taW5jbHVkZS1oZWFkZXJzIC0tZGly IC4gPiBvdXRwdXQucGF0Y2gpCgpAQAppZGVudGlmaWVyIFMsIG1lbWJlciwgYXJyYXk7CnR5cGUg VDEsIFQyOwpAQAoKc3RydWN0IFMgewogIC4uLgogIFQxIG1lbWJlcjsKICBUMiBhcnJheVsKLSAw CiAgXTsKfTsKClVBUEkgYW5kIHdpcmVsZXNzIGNoYW5nZXMgd2VyZSBpbnRlbnRpb25hbGx5IGV4 Y2x1ZGVkIGZyb20gdGhpcyBwYXRjaAphbmQgd2lsbCBiZSBzZW50IG91dCBzZXBhcmF0ZWx5LgoK WzFdIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0ZsZXhpYmxlX2FycmF5X21lbWJlcgpb Ml0gaHR0cHM6Ly93d3cua2VybmVsLm9yZy9kb2MvaHRtbC92NS4xNi9wcm9jZXNzL2RlcHJlY2F0 ZWQuaHRtbCN6ZXJvLWxlbmd0aC1hbmQtb25lLWVsZW1lbnQtYXJyYXlzCgpMaW5rOiBodHRwczov L2dpdGh1Yi5jb20vS1NQUC9saW51eC9pc3N1ZXMvNzgKU2lnbmVkLW9mZi1ieTogR3VzdGF2byBB LiBSLiBTaWx2YSA8Z3VzdGF2b2Fyc0BrZXJuZWwub3JnPgotLS0KSGkgYWxsLAoKSSdtIGV4cGVj dGluZyB0byBjYXJyeSB0aGlzIHBhdGNoIGluIG15IHRyZWUsIHNvIGl0J2QgYmUgZ3JlYXQgdG8K Z2V0IHNvbWUgQWNrcy4gQW5kIGdpdmVuIHRoZSBzaXplIG9mIHRoZSBwYXRjaCwgSSdtIG9ubHkg c2VuZGluZwp0aGlzIHRvIG1haWxpbmcgbGlzdHMuCgpUaGFua3MhCgogYXJjaC9hbHBoYS9pbmNs dWRlL2FzbS9od3JwYi5oICAgICAgICAgICAgICAgIHwgIDIgKy0KIGFyY2gvaWE2NC9pbmNsdWRl L2FzbS9zYWwuaCAgICAgICAgICAgICAgICAgICB8ICAyICstCiBhcmNoL3MzOTAvaW5jbHVkZS9h c20vY2N3Z3JvdXAuaCAgICAgICAgICAgICAgfCAgMiArLQogYXJjaC9zMzkwL2luY2x1ZGUvYXNt L2Noc2MuaCAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGFyY2gvczM5MC9pbmNsdWRlL2FzbS9l YWRtLmggICAgICAgICAgICAgICAgICB8ICAyICstCiBhcmNoL3MzOTAvaW5jbHVkZS9hc20vZmN4 LmggICAgICAgICAgICAgICAgICAgfCAgNCArKy0tCiBhcmNoL3MzOTAvaW5jbHVkZS9hc20vaWRh bHMuaCAgICAgICAgICAgICAgICAgfCAgMiArLQogYXJjaC9zMzkwL2luY2x1ZGUvYXNtL3NjbHAu aCAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGFyY2gvczM5MC9pbmNsdWRlL2FzbS9zeXNpbmZv LmggICAgICAgICAgICAgICB8ICA2ICsrKy0tLQogYXJjaC9zaC9pbmNsdWRlL2FzbS90aHJlYWRf aW5mby5oICAgICAgICAgICAgIHwgIDIgKy0KIGFyY2gvc3BhcmMvaW5jbHVkZS9hc20vdmlvLmgg ICAgICAgICAgICAgICAgICB8IDEwICsrKysrLS0tLS0KIGFyY2gvdW0vaW5jbHVkZS9zaGFyZWQv bmV0X2tlcm4uaCAgICAgICAgICAgICB8ICAyICstCiBhcmNoL3g4Ni9pbmNsdWRlL2FzbS9taWNy b2NvZGVfYW1kLmggICAgICAgICAgfCAgMiArLQogYXJjaC94ODYvaW5jbHVkZS9hc20vbWljcm9j b2RlX2ludGVsLmggICAgICAgIHwgIDQgKystLQogYXJjaC94ODYvaW5jbHVkZS9hc20vcGNpLmgg ICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGFyY2gveDg2L2luY2x1ZGUvYXNtL3BjaV94ODYu aCAgICAgICAgICAgICAgICB8ICAyICstCiBhcmNoL3h0ZW5zYS9pbmNsdWRlL2FzbS9ib290cGFy YW0uaCAgICAgICAgICAgfCAgMiArLQogZHJpdmVycy9jcnlwdG8vY2FhbS9wZGIuaCAgICAgICAg ICAgICAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1 Y19hZHMuYyAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9pbmNsdWRlL252Zncv aHMuaCAgICAgfCAgMiArLQogLi4uL2h3dHJhY2luZy9jb3Jlc2lnaHQvY29yZXNpZ2h0LWNvbmZp Zy5oICAgIHwgIDIgKy0KIGRyaXZlcnMvbWlzYy9iY20tdmsvYmNtX3ZrLmggICAgICAgICAgICAg ICAgICB8ICAyICstCiAuLi4vbWlzYy9oYWJhbmFsYWJzL2luY2x1ZGUvY29tbW9uL2NwdWNwX2lm LmggfCAgNiArKystLS0KIC4uLi9oYWJhbmFsYWJzL2luY2x1ZGUvZ2F1ZGkvZ2F1ZGlfcGFja2V0 cy5oICB8ICA0ICsrLS0KIC4uLi9oYWJhbmFsYWJzL2luY2x1ZGUvZ295YS9nb3lhX3BhY2tldHMu aCAgICB8ICA0ICsrLS0KIC4uLi9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2VuZXRjL2VuZXRjX2h3 LmggICB8ICAyICstCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9pODI1eHgvc3VuM184MjU4Ni5oICAg ICAgfCAgMiArLQogLi4uL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ucGMuaCAg IHwgIDYgKysrLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9xbG9naWMvcWVkL3FlZF9tZndfaHNp LmggfCAgMiArLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvdGkvZGF2aW5jaV9tZGlvLmMgICAgICAg IHwgIDIgKy0KIGRyaXZlcnMvc2NzaS9kcHQvZHB0aV9pMm8uaCAgICAgICAgICAgICAgICAgICB8 ICAyICstCiBkcml2ZXJzL3Njc2kvZWx4L2xpYmVmY19zbGkvc2xpNC5oICAgICAgICAgICAgfCAy MCArKysrKysrKystLS0tLS0tLS0tCiBkcml2ZXJzL3Njc2kvbXBpM21yL21waTNtci5oICAgICAg ICAgICAgICAgICAgfCAgMiArLQogZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2JzZy5oICAgICAg ICAgICAgICAgIHwgIDQgKystLQogZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2RlZi5oICAgICAg ICAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9lZGlmX2JzZy5oICAg ICAgICAgICB8ICA0ICsrLS0KIGRyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9mdy5oICAgICAgICAg ICAgICAgICB8ICAyICstCiBkcml2ZXJzL3Njc2kvcWxhNHh4eC9xbDRfZncuaCAgICAgICAgICAg ICAgICAgfCAgMiArLQogZHJpdmVycy9zdGFnaW5nL3I4MTg4ZXUvaW5jbHVkZS9pZWVlODAyMTEu aCAgIHwgIDYgKysrLS0tCiBkcml2ZXJzL3N0YWdpbmcvcjgxODhldS9pbmNsdWRlL3J0d19jbWQu aCAgICAgfCAxMCArKysrKy0tLS0tCiBkcml2ZXJzL3N0YWdpbmcvcnRsODcxMi9ydGw4NzF4X2Nt ZC5oICAgICAgICAgfCAgOCArKysrLS0tLQogZHJpdmVycy9zdGFnaW5nL3J0bDg3MjNicy9pbmNs dWRlL2llZWU4MDIxMS5oIHwgIDIgKy0KIGRyaXZlcnMvc3RhZ2luZy9ydGw4NzIzYnMvaW5jbHVk ZS9ydHdfY21kLmggICB8ICAyICstCiAuLi4vaW5jbHVkZS9saW51eC9yYXNwYmVycnlwaS92Y2hp cS5oICAgICAgICAgfCAgMiArLQogZHJpdmVycy92aXNvcmJ1cy92YnVzY2hhbm5lbC5oICAgICAg ICAgICAgICAgIHwgIDIgKy0KIGZzL2NpZnMvbnRsbXNzcC5oICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAyICstCiBmcy9leHQ0L2Zhc3RfY29tbWl0LmggICAgICAgICAgICAgICAgICAg ICAgICAgfCAgNCArKy0tCiBmcy9rc21iZC9rc21iZF9uZXRsaW5rLmggICAgICAgICAgICAgICAg ICAgICAgfCAgMiArLQogZnMva3NtYmQvbnRsbXNzcC5oICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgIDYgKysrLS0tCiBmcy9rc21iZC9zbWIycGR1LmggICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgOCArKysrLS0tLQogZnMva3NtYmQvdHJhbnNwb3J0X3JkbWEuYyAgICAgICAgICAg ICAgICAgICAgIHwgIDIgKy0KIGZzL2tzbWJkL3hhdHRyLmggICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAyICstCiBmcy94ZnMvc2NydWIvYXR0ci5oICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgMiArLQogaW5jbHVkZS9hY3BpL2FjdGJsMi5oICAgICAgICAgICAgICAgICAgICAg ICAgIHwgIDIgKy0KIGluY2x1ZGUvYXNtLWdlbmVyaWMvdGxiLmggICAgICAgICAgICAgICAgICAg ICB8ICA0ICsrLS0KIGluY2x1ZGUvbGludXgvZ3JleWJ1cy9ncmV5YnVzX21hbmlmZXN0LmggICAg ICB8ICA0ICsrLS0KIGluY2x1ZGUvbGludXgvZ3JleWJ1cy9oZC5oICAgICAgICAgICAgICAgICAg ICB8ICAyICstCiBpbmNsdWRlL2xpbnV4L2dyZXlidXMvbW9kdWxlLmggICAgICAgICAgICAgICAg fCAgMiArLQogaW5jbHVkZS9saW51eC9pM2MvY2NjLmggICAgICAgICAgICAgICAgICAgICAgIHwg IDYgKysrLS0tCiBpbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmNfZnBnYS5oICAgICAgICAgICAg fCAgMiArLQogaW5jbHVkZS9saW51eC9wbGF0Zm9ybV9kYXRhL2JyY21mbWFjLmggICAgICAgIHwg IDIgKy0KIC4uLi9saW51eC9wbGF0Zm9ybV9kYXRhL2Nyb3NfZWNfY29tbWFuZHMuaCAgICB8ICAy ICstCiBpbmNsdWRlL25ldC9ibHVldG9vdGgvbWdtdC5oICAgICAgICAgICAgICAgICAgfCAgMiAr LQogaW5jbHVkZS9uZXQvaW9hbTYuaCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0K IGluY2x1ZGUvc291bmQvc29mL2NoYW5uZWxfbWFwLmggICAgICAgICAgICAgICB8ICA0ICsrLS0K IHNjcmlwdHMvZHRjL2xpYmZkdC9mZHQuaCAgICAgICAgICAgICAgICAgICAgICB8ICA0ICsrLS0K IHNvdW5kL3NvYy9pbnRlbC9hdG9tL3NzdC1tZmxkLWRzcC5oICAgICAgICAgICB8ICA0ICsrLS0K IHNvdW5kL3NvYy9pbnRlbC9za3lsYWtlL3NrbC10b3BvbG9neS5oICAgICAgICB8ICAyICstCiB0 b29scy9saWIvcGVyZi9pbmNsdWRlL3BlcmYvZXZlbnQuaCAgICAgICAgICAgfCAgMiArLQogNjkg ZmlsZXMgY2hhbmdlZCwgMTE2IGluc2VydGlvbnMoKyksIDExNiBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9hcmNoL2FscGhhL2luY2x1ZGUvYXNtL2h3cnBiLmggYi9hcmNoL2FscGhhL2luY2x1 ZGUvYXNtL2h3cnBiLmgKaW5kZXggZDgxODBlNTI3YTFlLi5mYzc2ZjM2MjY1YWQgMTAwNjQ0Ci0t LSBhL2FyY2gvYWxwaGEvaW5jbHVkZS9hc20vaHdycGIuaAorKysgYi9hcmNoL2FscGhhL2luY2x1 ZGUvYXNtL2h3cnBiLmgKQEAgLTE1Miw3ICsxNTIsNyBAQCBzdHJ1Y3QgbWVtZGVzY19zdHJ1Y3Qg ewogCXVuc2lnbmVkIGxvbmcgY2hrc3VtOwogCXVuc2lnbmVkIGxvbmcgb3B0aW9uYWxfcGE7CiAJ dW5zaWduZWQgbG9uZyBudW1jbHVzdGVyczsKLQlzdHJ1Y3QgbWVtY2x1c3Rfc3RydWN0IGNsdXN0 ZXJbMF07CisJc3RydWN0IG1lbWNsdXN0X3N0cnVjdCBjbHVzdGVyW107CiB9OwogCiBzdHJ1Y3Qg ZHNyX3N0cnVjdCB7CmRpZmYgLS1naXQgYS9hcmNoL2lhNjQvaW5jbHVkZS9hc20vc2FsLmggYi9h cmNoL2lhNjQvaW5jbHVkZS9hc20vc2FsLmgKaW5kZXggNzhmNGY3YjQwNDM1Li4yMjc0OWEyMDFl OTIgMTAwNjQ0Ci0tLSBhL2FyY2gvaWE2NC9pbmNsdWRlL2FzbS9zYWwuaAorKysgYi9hcmNoL2lh NjQvaW5jbHVkZS9hc20vc2FsLmgKQEAgLTQyMCw3ICs0MjAsNyBAQCB0eXBlZGVmIHN0cnVjdCBz YWxfbG9nX3Byb2Nlc3Nvcl9pbmZvIHsKIAkgKiBUaGUgcmVzdCBvZiB0aGlzIHN0cnVjdHVyZSBj b25zaXN0cyBvZiB2YXJpYWJsZS1sZW5ndGggYXJyYXlzLCB3aGljaCBjYW4ndCBiZQogCSAqIGV4 cHJlc3NlZCBpbiBDLgogCSAqLwotCXNhbF9sb2dfbW9kX2Vycm9yX2luZm9fdCBpbmZvWzBdOwor CXNhbF9sb2dfbW9kX2Vycm9yX2luZm9fdCBpbmZvW107CiAJLyoKIAkgKiBUaGlzIGlzIHdoYXQg dGhlIHJlc3QgbG9va2VkIGxpa2UgaWYgQyBzdXBwb3J0ZWQgdmFyaWFibGUtbGVuZ3RoIGFycmF5 czoKIAkgKgpkaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL2Njd2dyb3VwLmggYi9h cmNoL3MzOTAvaW5jbHVkZS9hc20vY2N3Z3JvdXAuaAppbmRleCBhYTk5NWQ5MWNkMWQuLjExZDJm YjNkZTRmNSAxMDA2NDQKLS0tIGEvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL2Njd2dyb3VwLmgKKysr IGIvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL2Njd2dyb3VwLmgKQEAgLTI1LDcgKzI1LDcgQEAgc3Ry dWN0IGNjd2dyb3VwX2RldmljZSB7CiAJdW5zaWduZWQgaW50IGNvdW50OwogCXN0cnVjdCBkZXZp Y2UJZGV2OwogCXN0cnVjdCB3b3JrX3N0cnVjdCB1bmdyb3VwX3dvcms7Ci0Jc3RydWN0IGNjd19k ZXZpY2UgKmNkZXZbMF07CisJc3RydWN0IGNjd19kZXZpY2UgKmNkZXZbXTsKIH07CiAKIC8qKgpk aWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL2Noc2MuaCBiL2FyY2gvczM5MC9pbmNs dWRlL2FzbS9jaHNjLmgKaW5kZXggYWU0ZDI1NDljZDY3Li5iYjQ4ZWEzODBjMGQgMTAwNjQ0Ci0t LSBhL2FyY2gvczM5MC9pbmNsdWRlL2FzbS9jaHNjLmgKKysrIGIvYXJjaC9zMzkwL2luY2x1ZGUv YXNtL2Noc2MuaApAQCAtNjMsNyArNjMsNyBAQCBzdHJ1Y3QgY2hzY19wbnNvX2FyZWEgewogCXN0 cnVjdCBjaHNjX2hlYWRlciByZXNwb25zZTsKIAl1MzI6MzI7CiAJc3RydWN0IGNoc2NfcG5zb19u YWloZHIgbmFpaGRyOwotCXN0cnVjdCBjaHNjX3Buc29fbmFpZF9sMiBlbnRyaWVzWzBdOworCXN0 cnVjdCBjaHNjX3Buc29fbmFpZF9sMiBlbnRyaWVzW107CiB9IF9fcGFja2VkIF9fYWxpZ25lZChQ QUdFX1NJWkUpOwogCiAjZW5kaWYgLyogX0FTTV9TMzkwX0NIU0NfSCAqLwpkaWZmIC0tZ2l0IGEv YXJjaC9zMzkwL2luY2x1ZGUvYXNtL2VhZG0uaCBiL2FyY2gvczM5MC9pbmNsdWRlL2FzbS9lYWRt LmgKaW5kZXggNDQ1ZmU0YzgxODRhLi4wNmY3OTU4NTVhZjcgMTAwNjQ0Ci0tLSBhL2FyY2gvczM5 MC9pbmNsdWRlL2FzbS9lYWRtLmgKKysrIGIvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL2VhZG0uaApA QCAtNzgsNyArNzgsNyBAQCBzdHJ1Y3QgYW9iIHsKIAogc3RydWN0IGFvYl9ycV9oZWFkZXIgewog CXN0cnVjdCBzY21fZGV2aWNlICpzY21kZXY7Ci0JY2hhciBkYXRhWzBdOworCWNoYXIgZGF0YVtd OwogfTsKIAogc3RydWN0IHNjbV9kZXZpY2UgewpkaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2luY2x1 ZGUvYXNtL2ZjeC5oIGIvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL2ZjeC5oCmluZGV4IGNmZjA3NDll OTY1Ny4uYjhhMDI4YTM2MTczIDEwMDY0NAotLS0gYS9hcmNoL3MzOTAvaW5jbHVkZS9hc20vZmN4 LmgKKysrIGIvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL2ZjeC5oCkBAIC0yMTQsNyArMjE0LDcgQEAg c3RydWN0IGRjd19pbnRyZ19kYXRhIHsKIAl1MzIgOjMyOwogCXU2NCB0aW1lOwogCXU2NCBwcm9n X2lkOwotCXU4ICBwcm9nX2RhdGFbMF07CisJdTggIHByb2dfZGF0YVtdOwogfSBfX2F0dHJpYnV0 ZV9fICgocGFja2VkKSk7CiAKICNkZWZpbmUgRENXX0ZMQUdTX0NDCQkoMSA8PCAoNyAtIDEpKQpA QCAtMjQxLDcgKzI0MSw3IEBAIHN0cnVjdCBkY3cgewogCXUzMiA6ODsKIAl1MzIgY2RfY291bnQ6 ODsKIAl1MzIgY291bnQ7Ci0JdTggY2RbMF07CisJdTggY2RbXTsKIH0gX19hdHRyaWJ1dGVfXyAo KHBhY2tlZCkpOwogCiAjZGVmaW5lIFRDQ0JfRk9STUFUX0RFRkFVTFQJMHg3ZgpkaWZmIC0tZ2l0 IGEvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL2lkYWxzLmggYi9hcmNoL3MzOTAvaW5jbHVkZS9hc20v aWRhbHMuaAppbmRleCA2ZmI3YWNlZDEwNGEuLjQwZWFlMmMwOGQ2MSAxMDA2NDQKLS0tIGEvYXJj aC9zMzkwL2luY2x1ZGUvYXNtL2lkYWxzLmgKKysrIGIvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL2lk YWxzLmgKQEAgLTEwOCw3ICsxMDgsNyBAQCBjbGVhcl9ub3JtYWxpemVkX2NkYShzdHJ1Y3QgY2N3 MSAqIGNjdykKIHN0cnVjdCBpZGFsX2J1ZmZlciB7CiAJc2l6ZV90IHNpemU7CiAJc2l6ZV90IHBh Z2Vfb3JkZXI7Ci0Jdm9pZCAqZGF0YVswXTsKKwl2b2lkICpkYXRhW107CiB9OwogCiAvKgpkaWZm IC0tZ2l0IGEvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL3NjbHAuaCBiL2FyY2gvczM5MC9pbmNsdWRl L2FzbS9zY2xwLmgKaW5kZXggYzY4ZWEzNWRlNDk4Li4yMmIzMjEzYzZjOWQgMTAwNjQ0Ci0tLSBh L2FyY2gvczM5MC9pbmNsdWRlL2FzbS9zY2xwLmgKKysrIGIvYXJjaC9zMzkwL2luY2x1ZGUvYXNt L3NjbHAuaApAQCAtMTEyLDcgKzExMiw3IEBAIHN0cnVjdCB6cGNpX3JlcG9ydF9lcnJvcl9oZWFk ZXIgewogCQkJICoJKE9wZW5DcnlwdG8gU3VjY2Vzc2Z1bCBEaWFnbm9zdGljcyBFeGVjdXRpb24p CiAJCQkgKi8KIAl1MTYgbGVuZ3RoOwkvKiBMZW5ndGggb2YgU3Vic2VxdWVudCBEYXRhICh1cCB0 byA0SyDigJMgU0NMUCBoZWFkZXIgKi8KLQl1OCBkYXRhWzBdOwkvKiBTdWJzZXF1ZW50IERhdGEg cGFzc2VkIHZlcmJhdGltIHRvIFNDTFAgRVQgMjQgKi8KKwl1OCBkYXRhW107CS8qIFN1YnNlcXVl bnQgRGF0YSBwYXNzZWQgdmVyYmF0aW0gdG8gU0NMUCBFVCAyNCAqLwogfSBfX3BhY2tlZDsKIAog ZXh0ZXJuIGNoYXIgKnNjbHBfZWFybHlfc2NjYjsKZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9pbmNs dWRlL2FzbS9zeXNpbmZvLmggYi9hcmNoL3MzOTAvaW5jbHVkZS9hc20vc3lzaW5mby5oCmluZGV4 IGZlN2IzZjhmMDc5MS4uYWIxYzYzMTYwNTVjIDEwMDY0NAotLS0gYS9hcmNoL3MzOTAvaW5jbHVk ZS9hc20vc3lzaW5mby5oCisrKyBiL2FyY2gvczM5MC9pbmNsdWRlL2FzbS9zeXNpbmZvLmgKQEAg LTY3LDEyICs2NywxMiBAQCBzdHJ1Y3Qgc3lzaW5mb18xXzJfMiB7CiAJdW5zaWduZWQgc2hvcnQg Y3B1c19jb25maWd1cmVkOwogCXVuc2lnbmVkIHNob3J0IGNwdXNfc3RhbmRieTsKIAl1bnNpZ25l ZCBzaG9ydCBjcHVzX3Jlc2VydmVkOwotCXVuc2lnbmVkIHNob3J0IGFkanVzdG1lbnRbMF07CisJ dW5zaWduZWQgc2hvcnQgYWRqdXN0bWVudFtdOwogfTsKIAogc3RydWN0IHN5c2luZm9fMV8yXzJf ZXh0ZW5zaW9uIHsKIAl1bnNpZ25lZCBpbnQgYWx0X2NhcGFiaWxpdHk7Ci0JdW5zaWduZWQgc2hv cnQgYWx0X2FkanVzdG1lbnRbMF07CisJdW5zaWduZWQgc2hvcnQgYWx0X2FkanVzdG1lbnRbXTsK IH07CiAKIHN0cnVjdCBzeXNpbmZvXzJfMl8xIHsKQEAgLTE4MSw3ICsxODEsNyBAQCBzdHJ1Y3Qg c3lzaW5mb18xNV8xX3ggewogCXVuc2lnbmVkIGNoYXIgcmVzZXJ2ZWQxOwogCXVuc2lnbmVkIGNo YXIgbW5lc3Q7CiAJdW5zaWduZWQgY2hhciByZXNlcnZlZDJbNF07Ci0JdW5pb24gdG9wb2xvZ3lf ZW50cnkgdGxlWzBdOworCXVuaW9uIHRvcG9sb2d5X2VudHJ5IHRsZVtdOwogfTsKIAogaW50IHN0 c2kodm9pZCAqc3lzaW5mbywgaW50IGZjLCBpbnQgc2VsMSwgaW50IHNlbDIpOwpkaWZmIC0tZ2l0 IGEvYXJjaC9zaC9pbmNsdWRlL2FzbS90aHJlYWRfaW5mby5oIGIvYXJjaC9zaC9pbmNsdWRlL2Fz bS90aHJlYWRfaW5mby5oCmluZGV4IDU5OGQwMTg0ZmZlYS4uM2EyZDUwZDYxZmM5IDEwMDY0NAot LS0gYS9hcmNoL3NoL2luY2x1ZGUvYXNtL3RocmVhZF9pbmZvLmgKKysrIGIvYXJjaC9zaC9pbmNs dWRlL2FzbS90aHJlYWRfaW5mby5oCkBAIC0zMyw3ICszMyw3IEBAIHN0cnVjdCB0aHJlYWRfaW5m byB7CiAJbW1fc2VnbWVudF90CQlhZGRyX2xpbWl0OwkvKiB0aHJlYWQgYWRkcmVzcyBzcGFjZSAq LwogCXVuc2lnbmVkIGxvbmcJCXByZXZpb3VzX3NwOwkvKiBzcCBvZiBwcmV2aW91cyBzdGFjayBp biBjYXNlCiAJCQkJCQkgICBvZiBuZXN0ZWQgSVJRIHN0YWNrcyAqLwotCV9fdTgJCQlzdXBlcnZp c29yX3N0YWNrWzBdOworCV9fdTgJCQlzdXBlcnZpc29yX3N0YWNrW107CiB9OwogCiAjZW5kaWYK ZGlmZiAtLWdpdCBhL2FyY2gvc3BhcmMvaW5jbHVkZS9hc20vdmlvLmggYi9hcmNoL3NwYXJjL2lu Y2x1ZGUvYXNtL3Zpby5oCmluZGV4IDhhMWE4M2JiYjZkNS4uMmQ3YmRmNjY1ZmQzIDEwMDY0NAot LS0gYS9hcmNoL3NwYXJjL2luY2x1ZGUvYXNtL3Zpby5oCisrKyBiL2FyY2gvc3BhcmMvaW5jbHVk ZS9hc20vdmlvLmgKQEAgLTcwLDcgKzcwLDcgQEAgc3RydWN0IHZpb19kcmluZ19yZWdpc3RlciB7 CiAjZGVmaW5lIFZJT19SWF9EUklOR19EQVRBCTB4MDAwNAogCXUxNgkJCXJlc3Y7CiAJdTMyCQkJ bnVtX2Nvb2tpZXM7Ci0Jc3RydWN0IGxkY190cmFuc19jb29raWUJY29va2llc1swXTsKKwlzdHJ1 Y3QgbGRjX3RyYW5zX2Nvb2tpZQljb29raWVzW107CiB9OwogCiBzdHJ1Y3QgdmlvX2RyaW5nX3Vu cmVnaXN0ZXIgewpAQCAtMTYxLDcgKzE2MSw3IEBAIHN0cnVjdCB2aW9fZGlza19kZXNjIHsKIAl1 NjQJCQlzaXplOwogCXUzMgkJCW5jb29raWVzOwogCXUzMgkJCXJlc3YyOwotCXN0cnVjdCBsZGNf dHJhbnNfY29va2llCWNvb2tpZXNbMF07CisJc3RydWN0IGxkY190cmFuc19jb29raWUJY29va2ll c1tdOwogfTsKIAogI2RlZmluZSBWSU9fRElTS19WTkFNRV9MRU4JOApAQCAtMjAwLDEzICsyMDAs MTMgQEAgc3RydWN0IHZpb19kaXNrX2RldmlkIHsKIAl1MTYJCQlyZXN2OwogCXUxNgkJCXR5cGU7 CiAJdTMyCQkJbGVuOwotCWNoYXIJCQlpZFswXTsKKwljaGFyCQkJaWRbXTsKIH07CiAKIHN0cnVj dCB2aW9fZGlza19lZmkgewogCXU2NAkJCWxiYTsKIAl1NjQJCQlsZW47Ci0JY2hhcgkJCWRhdGFb MF07CisJY2hhcgkJCWRhdGFbXTsKIH07CiAKIC8qIFZJTyBuZXQgc3BlY2lmaWMgc3RydWN0dXJl cyBhbmQgZGVmaW5lcyAqLwpAQCAtMjQ2LDcgKzI0Niw3IEBAIHN0cnVjdCB2aW9fbmV0X2Rlc2Mg ewogCXN0cnVjdCB2aW9fZHJpbmdfaGRyCWhkcjsKIAl1MzIJCQlzaXplOwogCXUzMgkJCW5jb29r aWVzOwotCXN0cnVjdCBsZGNfdHJhbnNfY29va2llCWNvb2tpZXNbMF07CisJc3RydWN0IGxkY190 cmFuc19jb29raWUJY29va2llc1tdOwogfTsKIAogc3RydWN0IHZpb19uZXRfZGV4dCB7CmRpZmYg LS1naXQgYS9hcmNoL3VtL2luY2x1ZGUvc2hhcmVkL25ldF9rZXJuLmggYi9hcmNoL3VtL2luY2x1 ZGUvc2hhcmVkL25ldF9rZXJuLmgKaW5kZXggNDQxYThhMzA5MzI5Li42N2IyZTlhMWYyZTUgMTAw NjQ0Ci0tLSBhL2FyY2gvdW0vaW5jbHVkZS9zaGFyZWQvbmV0X2tlcm4uaAorKysgYi9hcmNoL3Vt L2luY2x1ZGUvc2hhcmVkL25ldF9rZXJuLmgKQEAgLTM5LDcgKzM5LDcgQEAgc3RydWN0IHVtbF9u ZXRfcHJpdmF0ZSB7CiAKIAl2b2lkICgqYWRkX2FkZHJlc3MpKHVuc2lnbmVkIGNoYXIgKiwgdW5z aWduZWQgY2hhciAqLCB2b2lkICopOwogCXZvaWQgKCpkZWxldGVfYWRkcmVzcykodW5zaWduZWQg Y2hhciAqLCB1bnNpZ25lZCBjaGFyICosIHZvaWQgKik7Ci0JY2hhciB1c2VyWzBdOworCWNoYXIg dXNlcltdOwogfTsKIAogc3RydWN0IG5ldF9rZXJuX2luZm8gewpkaWZmIC0tZ2l0IGEvYXJjaC94 ODYvaW5jbHVkZS9hc20vbWljcm9jb2RlX2FtZC5oIGIvYXJjaC94ODYvaW5jbHVkZS9hc20vbWlj cm9jb2RlX2FtZC5oCmluZGV4IDcwNjNiNWE0MzIyMC4uYWMzMWY5MTQwZDA3IDEwMDY0NAotLS0g YS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9taWNyb2NvZGVfYW1kLmgKKysrIGIvYXJjaC94ODYvaW5j bHVkZS9hc20vbWljcm9jb2RlX2FtZC5oCkBAIC0zOCw3ICszOCw3IEBAIHN0cnVjdCBtaWNyb2Nv ZGVfaGVhZGVyX2FtZCB7CiAKIHN0cnVjdCBtaWNyb2NvZGVfYW1kIHsKIAlzdHJ1Y3QgbWljcm9j b2RlX2hlYWRlcl9hbWQJaGRyOwotCXVuc2lnbmVkIGludAkJCW1wYlswXTsKKwl1bnNpZ25lZCBp bnQJCQltcGJbXTsKIH07CiAKICNkZWZpbmUgUEFUQ0hfTUFYX1NJWkUgKDMgKiBQQUdFX1NJWkUp CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9taWNyb2NvZGVfaW50ZWwuaCBiL2Fy Y2gveDg2L2luY2x1ZGUvYXNtL21pY3JvY29kZV9pbnRlbC5oCmluZGV4IGQ4NWEwN2Q3MTU0Zi4u NGM5MmNlYTdlNGI1IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9taWNyb2NvZGVf aW50ZWwuaAorKysgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9taWNyb2NvZGVfaW50ZWwuaApAQCAt MTksNyArMTksNyBAQCBzdHJ1Y3QgbWljcm9jb2RlX2hlYWRlcl9pbnRlbCB7CiAKIHN0cnVjdCBt aWNyb2NvZGVfaW50ZWwgewogCXN0cnVjdCBtaWNyb2NvZGVfaGVhZGVyX2ludGVsIGhkcjsKLQl1 bnNpZ25lZCBpbnQgICAgICAgICAgICBiaXRzWzBdOworCXVuc2lnbmVkIGludCAgICAgICAgICAg IGJpdHNbXTsKIH07CiAKIC8qIG1pY3JvY29kZSBmb3JtYXQgaXMgZXh0ZW5kZWQgZnJvbSBwcmVz Y290dCBwcm9jZXNzb3JzICovCkBAIC0zMyw3ICszMyw3IEBAIHN0cnVjdCBleHRlbmRlZF9zaWd0 YWJsZSB7CiAJdW5zaWduZWQgaW50ICAgICAgICAgICAgY291bnQ7CiAJdW5zaWduZWQgaW50ICAg ICAgICAgICAgY2tzdW07CiAJdW5zaWduZWQgaW50ICAgICAgICAgICAgcmVzZXJ2ZWRbM107Ci0J c3RydWN0IGV4dGVuZGVkX3NpZ25hdHVyZSBzaWdzWzBdOworCXN0cnVjdCBleHRlbmRlZF9zaWdu YXR1cmUgc2lnc1tdOwogfTsKIAogI2RlZmluZSBERUZBVUxUX1VDT0RFX0RBVEFTSVpFCSgyMDAw KQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVkZS9hc20vcGNpLmggYi9hcmNoL3g4Ni9pbmNs dWRlL2FzbS9wY2kuaAppbmRleCBkMmM3NmM4ZDhjZmQuLmYzZmQ1OTI4YmNiYiAxMDA2NDQKLS0t IGEvYXJjaC94ODYvaW5jbHVkZS9hc20vcGNpLmgKKysrIGIvYXJjaC94ODYvaW5jbHVkZS9hc20v cGNpLmgKQEAgLTEzNSw3ICsxMzUsNyBAQCBzdHJ1Y3QgcGNpX3NldHVwX3JvbSB7CiAJdW5zaWdu ZWQgbG9uZyBidXM7CiAJdW5zaWduZWQgbG9uZyBkZXZpY2U7CiAJdW5zaWduZWQgbG9uZyBmdW5j dGlvbjsKLQl1aW50OF90IHJvbWRhdGFbMF07CisJdWludDhfdCByb21kYXRhW107CiB9OwogCiAj ZW5kaWYgLyogX0FTTV9YODZfUENJX0ggKi8KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUv YXNtL3BjaV94ODYuaCBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BjaV94ODYuaAppbmRleCA0OTA0 MTFkYmE0MzguLjNmYjZmYzU5NjA5NSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9hc20v cGNpX3g4Ni5oCisrKyBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BjaV94ODYuaApAQCAtODcsNyAr ODcsNyBAQCBzdHJ1Y3QgaXJxX3JvdXRpbmdfdGFibGUgewogCXUzMiBtaW5pcG9ydF9kYXRhOwkJ LyogQ3JhcCAqLwogCXU4IHJmdVsxMV07CiAJdTggY2hlY2tzdW07CQkJLyogTW9kdWxvIDI1NiBj aGVja3N1bSBtdXN0IGdpdmUgMCAqLwotCXN0cnVjdCBpcnFfaW5mbyBzbG90c1swXTsKKwlzdHJ1 Y3QgaXJxX2luZm8gc2xvdHNbXTsKIH0gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CiAKIGV4dGVy biB1bnNpZ25lZCBpbnQgcGNpYmlvc19pcnFfbWFzazsKZGlmZiAtLWdpdCBhL2FyY2gveHRlbnNh L2luY2x1ZGUvYXNtL2Jvb3RwYXJhbS5oIGIvYXJjaC94dGVuc2EvaW5jbHVkZS9hc20vYm9vdHBh cmFtLmgKaW5kZXggODkyYWFiMzk5YWM4Li42MzMzYmQxZWI5ZDIgMTAwNjQ0Ci0tLSBhL2FyY2gv eHRlbnNhL2luY2x1ZGUvYXNtL2Jvb3RwYXJhbS5oCisrKyBiL2FyY2gveHRlbnNhL2luY2x1ZGUv YXNtL2Jvb3RwYXJhbS5oCkBAIC0zNCw3ICszNCw3IEBACiB0eXBlZGVmIHN0cnVjdCBicF90YWcg ewogCXVuc2lnbmVkIHNob3J0IGlkOwkvKiB0YWcgaWQgKi8KIAl1bnNpZ25lZCBzaG9ydCBzaXpl OwkvKiBzaXplIG9mIHRoaXMgcmVjb3JkIGV4Y2x1ZGluZyB0aGUgc3RydWN0dXJlKi8KLQl1bnNp Z25lZCBsb25nIGRhdGFbMF07CS8qIGRhdGEgKi8KKwl1bnNpZ25lZCBsb25nIGRhdGFbXTsJLyog ZGF0YSAqLwogfSBicF90YWdfdDsKIAogc3RydWN0IGJwX21lbWluZm8gewpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9jcnlwdG8vY2FhbS9wZGIuaCBiL2RyaXZlcnMvY3J5cHRvL2NhYW0vcGRiLmgKaW5k ZXggOGNjYzIyMDc1MDQzLi40YjFiY2Y1M2Y3YWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY3J5cHRv L2NhYW0vcGRiLmgKKysrIGIvZHJpdmVycy9jcnlwdG8vY2FhbS9wZGIuaApAQCAtMTQ0LDcgKzE0 NCw3IEBAIHN0cnVjdCBpcHNlY19lbmNhcF9wZGIgewogCX07CiAJdTMyIHNwaTsKIAl1MzIgaXBf aGRyX2xlbjsKLQl1MzIgaXBfaGRyWzBdOworCXUzMiBpcF9oZHJbXTsKIH07CiAKIC8qKgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX2Fkcy5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX2Fkcy5jCmluZGV4IDFhMWVkYWU2N2U0 ZS4uM2FjZWUwMDYwZTIzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9p bnRlbF9ndWNfYWRzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3Vj X2Fkcy5jCkBAIC01MSw3ICs1MSw3IEBAIHN0cnVjdCBfX2d1Y19hZHNfYmxvYiB7CiAJc3RydWN0 IGd1Y19ndF9zeXN0ZW1faW5mbyBzeXN0ZW1faW5mbzsKIAlzdHJ1Y3QgZ3VjX2VuZ2luZV91c2Fn ZSBlbmdpbmVfdXNhZ2U7CiAJLyogRnJvbSBoZXJlIG9uLCBsb2NhdGlvbiBpcyBkeW5hbWljISBS ZWZlciB0byBhYm92ZSBkaWFncmFtLiAqLwotCXN0cnVjdCBndWNfbW1pb19yZWcgcmVnc2V0WzBd OworCXN0cnVjdCBndWNfbW1pb19yZWcgcmVnc2V0W107CiB9IF9fcGFja2VkOwogCiBzdGF0aWMg dTMyIGd1Y19hZHNfcmVnc2V0X3NpemUoc3RydWN0IGludGVsX2d1YyAqZ3VjKQpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvaW5jbHVkZS9udmZ3L2hzLmggYi9kcml2ZXJzL2dw dS9kcm0vbm91dmVhdS9pbmNsdWRlL252ZncvaHMuaAppbmRleCA2NGQwZDMyMjAwYzIuLmI1M2Ji YzRjZDEzMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvaW5jbHVkZS9udmZ3 L2hzLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvaW5jbHVkZS9udmZ3L2hzLmgKQEAg LTIzLDcgKzIzLDcgQEAgc3RydWN0IG52ZndfaHNfbG9hZF9oZWFkZXIgewogCXUzMiBkYXRhX2Rt YV9iYXNlOwogCXUzMiBkYXRhX3NpemU7CiAJdTMyIG51bV9hcHBzOwotCXUzMiBhcHBzWzBdOwor CXUzMiBhcHBzW107CiB9OwogCiBjb25zdCBzdHJ1Y3QgbnZmd19oc19sb2FkX2hlYWRlciAqCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2h3dHJhY2luZy9jb3Jlc2lnaHQvY29yZXNpZ2h0LWNvbmZpZy5o IGIvZHJpdmVycy9od3RyYWNpbmcvY29yZXNpZ2h0L2NvcmVzaWdodC1jb25maWcuaAppbmRleCA5 YmQ0NGI5NDBhZGQuLjJlMTY3MDUyMzQ2MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9od3RyYWNpbmcv Y29yZXNpZ2h0L2NvcmVzaWdodC1jb25maWcuaAorKysgYi9kcml2ZXJzL2h3dHJhY2luZy9jb3Jl c2lnaHQvY29yZXNpZ2h0LWNvbmZpZy5oCkBAIC0yMzEsNyArMjMxLDcgQEAgc3RydWN0IGNzY2Zn X2NvbmZpZ19jc2RldiB7CiAJYm9vbCBlbmFibGVkOwogCXN0cnVjdCBsaXN0X2hlYWQgbm9kZTsK IAlpbnQgbnJfZmVhdDsKLQlzdHJ1Y3QgY3NjZmdfZmVhdHVyZV9jc2RldiAqZmVhdHNfY3NkZXZb MF07CisJc3RydWN0IGNzY2ZnX2ZlYXR1cmVfY3NkZXYgKmZlYXRzX2NzZGV2W107CiB9OwogCiAv KioKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWlzYy9iY20tdmsvYmNtX3ZrLmggYi9kcml2ZXJzL21p c2MvYmNtLXZrL2JjbV92ay5oCmluZGV4IGExMzM4ZjM3NTU4OS4uMjVkNTEyMjJlZWRmIDEwMDY0 NAotLS0gYS9kcml2ZXJzL21pc2MvYmNtLXZrL2JjbV92ay5oCisrKyBiL2RyaXZlcnMvbWlzYy9i Y20tdmsvYmNtX3ZrLmgKQEAgLTMxMSw3ICszMTEsNyBAQCBzdHJ1Y3QgYmNtX3ZrX3BlZXJfbG9n IHsKIAl1MzIgd3JfaWR4OwogCXUzMiBidWZfc2l6ZTsKIAl1MzIgbWFzazsKLQljaGFyIGRhdGFb MF07CisJY2hhciBkYXRhW107CiB9OwogCiAvKiBtYXggYnVmIHNpemUgYWxsb3dlZCAqLwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9taXNjL2hhYmFuYWxhYnMvaW5jbHVkZS9jb21tb24vY3B1Y3BfaWYu aCBiL2RyaXZlcnMvbWlzYy9oYWJhbmFsYWJzL2luY2x1ZGUvY29tbW9uL2NwdWNwX2lmLmgKaW5k ZXggNzM3YzM5ZjMzZjA1Li5mOWM0YWNjOWJmNWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWlzYy9o YWJhbmFsYWJzL2luY2x1ZGUvY29tbW9uL2NwdWNwX2lmLmgKKysrIGIvZHJpdmVycy9taXNjL2hh YmFuYWxhYnMvaW5jbHVkZS9jb21tb24vY3B1Y3BfaWYuaApAQCAtNTQwLDE5ICs1NDAsMTkgQEAg c3RydWN0IGNwdWNwX3BhY2tldCB7CiBzdHJ1Y3QgY3B1Y3BfdW5tYXNrX2lycV9hcnJfcGFja2V0 IHsKIAlzdHJ1Y3QgY3B1Y3BfcGFja2V0IGNwdWNwX3BrdDsKIAlfX2xlMzIgbGVuZ3RoOwotCV9f bGUzMiBpcnFzWzBdOworCV9fbGUzMiBpcnFzW107CiB9OwogCiBzdHJ1Y3QgY3B1Y3BfbmljX3N0 YXR1c19wYWNrZXQgewogCXN0cnVjdCBjcHVjcF9wYWNrZXQgY3B1Y3BfcGt0OwogCV9fbGUzMiBs ZW5ndGg7Ci0JX19sZTMyIGRhdGFbMF07CisJX19sZTMyIGRhdGFbXTsKIH07CiAKIHN0cnVjdCBj cHVjcF9hcnJheV9kYXRhX3BhY2tldCB7CiAJc3RydWN0IGNwdWNwX3BhY2tldCBjcHVjcF9wa3Q7 CiAJX19sZTMyIGxlbmd0aDsKLQlfX2xlMzIgZGF0YVswXTsKKwlfX2xlMzIgZGF0YVtdOwogfTsK IAogZW51bSBjcHVjcF9wYWNrZXRfcmMgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9taXNjL2hhYmFu YWxhYnMvaW5jbHVkZS9nYXVkaS9nYXVkaV9wYWNrZXRzLmggYi9kcml2ZXJzL21pc2MvaGFiYW5h bGFicy9pbmNsdWRlL2dhdWRpL2dhdWRpX3BhY2tldHMuaAppbmRleCA2ZTA5N2FjZTJlOTYuLjY2 ZmMwODNhN2M2YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9taXNjL2hhYmFuYWxhYnMvaW5jbHVkZS9n YXVkaS9nYXVkaV9wYWNrZXRzLmgKKysrIGIvZHJpdmVycy9taXNjL2hhYmFuYWxhYnMvaW5jbHVk ZS9nYXVkaS9nYXVkaV9wYWNrZXRzLmgKQEAgLTU0LDcgKzU0LDcgQEAgc3RydWN0IGdhdWRpX3Bh Y2tldCB7CiAJLyogVGhlIHJlc3Qgb2YgdGhlIHBhY2tldCBkYXRhIGZvbGxvd3MuIFVzZSB0aGUg Y29ycmVzcG9uZGluZwogCSAqIHBhY2tldF9YWFggc3RydWN0IHRvIGRlZmVyZW5jZSB0aGUgZGF0 YSwgYmFzZWQgb24gcGFja2V0IHR5cGUKIAkgKi8KLQl1OCBjb250ZW50c1swXTsKKwl1OCBjb250 ZW50c1tdOwogfTsKIAogc3RydWN0IHBhY2tldF9ub3AgewpAQCAtNzUsNyArNzUsNyBAQCBzdHJ1 Y3QgcGFja2V0X3dyZWczMiB7CiBzdHJ1Y3QgcGFja2V0X3dyZWdfYnVsayB7CiAJX19sZTMyIHNp emU2NDsKIAlfX2xlMzIgY3RsOwotCV9fbGU2NCB2YWx1ZXNbMF07IC8qIGRhdGEgc3RhcnRzIGhl cmUgKi8KKwlfX2xlNjQgdmFsdWVzW107IC8qIGRhdGEgc3RhcnRzIGhlcmUgKi8KIH07CiAKICNk ZWZpbmUgR0FVRElfUEtUX0xPTkdfQ1RMX09QX1NISUZUCQkyMApkaWZmIC0tZ2l0IGEvZHJpdmVy cy9taXNjL2hhYmFuYWxhYnMvaW5jbHVkZS9nb3lhL2dveWFfcGFja2V0cy5oIGIvZHJpdmVycy9t aXNjL2hhYmFuYWxhYnMvaW5jbHVkZS9nb3lhL2dveWFfcGFja2V0cy5oCmluZGV4IGVmNTRiYWQy MDUwOS4uNTBjZTUxNzViNjNhIDEwMDY0NAotLS0gYS9kcml2ZXJzL21pc2MvaGFiYW5hbGFicy9p bmNsdWRlL2dveWEvZ295YV9wYWNrZXRzLmgKKysrIGIvZHJpdmVycy9taXNjL2hhYmFuYWxhYnMv aW5jbHVkZS9nb3lhL2dveWFfcGFja2V0cy5oCkBAIC02Miw3ICs2Miw3IEBAIHN0cnVjdCBnb3lh X3BhY2tldCB7CiAJLyogVGhlIHJlc3Qgb2YgdGhlIHBhY2tldCBkYXRhIGZvbGxvd3MuIFVzZSB0 aGUgY29ycmVzcG9uZGluZwogCSAqIHBhY2tldF9YWFggc3RydWN0IHRvIGRlZmVyZW5jZSB0aGUg ZGF0YSwgYmFzZWQgb24gcGFja2V0IHR5cGUKIAkgKi8KLQl1OCBjb250ZW50c1swXTsKKwl1OCBj b250ZW50c1tdOwogfTsKIAogc3RydWN0IHBhY2tldF9ub3AgewpAQCAtODYsNyArODYsNyBAQCBz dHJ1Y3QgcGFja2V0X3dyZWczMiB7CiBzdHJ1Y3QgcGFja2V0X3dyZWdfYnVsayB7CiAJX19sZTMy IHNpemU2NDsKIAlfX2xlMzIgY3RsOwotCV9fbGU2NCB2YWx1ZXNbMF07IC8qIGRhdGEgc3RhcnRz IGhlcmUgKi8KKwlfX2xlNjQgdmFsdWVzW107IC8qIGRhdGEgc3RhcnRzIGhlcmUgKi8KIH07CiAK IHN0cnVjdCBwYWNrZXRfbXNnX2xvbmcgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJu ZXQvZnJlZXNjYWxlL2VuZXRjL2VuZXRjX2h3LmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVl c2NhbGUvZW5ldGMvZW5ldGNfaHcuaAppbmRleCAxNTE0ZTZhNGEzZmYuLmNlNWI2NzdlOGMyZiAx MDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2VuZXRjL2VuZXRjX2h3 LmgKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2VuZXRjL2VuZXRjX2h3LmgK QEAgLTg4MSw3ICs4ODEsNyBAQCBzdHJ1Y3Qgc2djbF9kYXRhIHsKIAl1MzIJCWJ0aDsKIAl1MzIJ CWN0OwogCXUzMgkJY3RlOwotCXN0cnVjdCBzZ2NlCXNnY2xbMF07CisJc3RydWN0IHNnY2UJc2dj bFtdOwogfTsKIAogI2RlZmluZSBFTkVUQ19DQkRSX0ZNSV9NUglCSVQoMCkKZGlmZiAtLWdpdCBh L2RyaXZlcnMvbmV0L2V0aGVybmV0L2k4MjV4eC9zdW4zXzgyNTg2LmggYi9kcml2ZXJzL25ldC9l dGhlcm5ldC9pODI1eHgvc3VuM184MjU4Ni5oCmluZGV4IDc5YWVmNjgxYWM4NS4uNDUxY2IzZDI2 Y2I1IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pODI1eHgvc3VuM184MjU4Ni5o CisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2k4MjV4eC9zdW4zXzgyNTg2LmgKQEAgLTI1MCw3 ICsyNTAsNyBAQCBzdHJ1Y3QgbWNzZXR1cF9jbWRfc3RydWN0CiAgIHVuc2lnbmVkIHNob3J0IGNt ZF9jbWQ7CiAgIHVuc2lnbmVkIHNob3J0IGNtZF9saW5rOwogICB1bnNpZ25lZCBzaG9ydCBtY19j bnQ7CQkvKiBudW1iZXIgb2YgYnl0ZXMgaW4gdGhlIE1DLUxpc3QgKi8KLSAgdW5zaWduZWQgY2hh ciAgbWNfbGlzdFswXVs2XTsgIAkvKiBwb2ludGVyIHRvIDYgYnl0ZXMgZW50cmllcyAqLworICB1 bnNpZ25lZCBjaGFyICBtY19saXN0W11bNl07ICAJLyogcG9pbnRlciB0byA2IGJ5dGVzIGVudHJp ZXMgKi8KIH07CiAKIC8qCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxs L29jdGVvbnR4Mi9hZi9ucGMuaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9u dHgyL2FmL25wYy5oCmluZGV4IDc3ZmQzOWUyYzhkYi4uOWI2ZTU4N2U3OGI0IDEwMDY0NAotLS0g YS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ucGMuaAorKysgYi9k cml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ucGMuaApAQCAtNDU1LDcg KzQ1NSw3IEBAIHN0cnVjdCBucGNfY29hbGVzY2VkX2twdV9wcmZsIHsKIAl1OCBuYW1lW05QQ19O QU1FX0xFTl07IC8qIEtQVSBQcm9maWxlIG5hbWUgKi8KIAl1NjQgdmVyc2lvbjsgLyogS1BVIGZp cm13YXJlL3Byb2ZpbGUgdmVyc2lvbiAqLwogCXU4IG51bV9wcmZsOyAvKiBObyBvZiBOUEMgcHJv ZmlsZXMuICovCi0JdTE2IHByZmxfc3pbMF07CisJdTE2IHByZmxfc3pbXTsKIH07CiAKIHN0cnVj dCBucGNfbWNhbV9rZXggewpAQCAtNDgyLDcgKzQ4Miw3IEBAIHN0cnVjdCBucGNfa3B1X2Z3ZGF0 YSB7CiAJICogc3RydWN0IG5wY19rcHVfcHJvZmlsZV9jYW1bZW50cmllc107CiAJICogc3RydWN0 IG5wY19rcHVfcHJvZmlsZV9hY3Rpb25bZW50cmllc107CiAJICovCi0JdTgJZGF0YVswXTsKKwl1 OAlkYXRhW107CiB9IF9fcGFja2VkOwogCiBzdHJ1Y3QgbnBjX2x0X2RlZiB7CkBAIC01NzIsNyAr NTcyLDcgQEAgc3RydWN0IG5wY19rcHVfcHJvZmlsZV9md2RhdGEgewogCSAqICBDdXN0b20gS1BV IENBTSBhbmQgQUNUSU9OIGNvbmZpZ3VyYXRpb24gZW50cmllcy4KIAkgKiBzdHJ1Y3QgbnBjX2tw dV9md2RhdGEga3B1W2twdXNdOwogCSAqLwotCXU4CWRhdGFbMF07CisJdTgJZGF0YVtdOwogfSBf X3BhY2tlZDsKIAogc3RydWN0IHJ2dV9ucGNfbWNhbV9ydWxlIHsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L2V0aGVybmV0L3Fsb2dpYy9xZWQvcWVkX21md19oc2kuaCBiL2RyaXZlcnMvbmV0L2V0 aGVybmV0L3Fsb2dpYy9xZWQvcWVkX21md19oc2kuaAppbmRleCBiNzBlZTgyMDBlMTUuLjY0NTlk ZDNmZWIzNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvcWxvZ2ljL3FlZC9xZWRf bWZ3X2hzaS5oCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3Fsb2dpYy9xZWQvcWVkX21md19o c2kuaApAQCAtMjQ3MCw2ICsyNDcwLDYgQEAgc3RydWN0IG52bV9tZXRhX2Jpbl90IHsKIAl1MzIg dmVyc2lvbjsKICNkZWZpbmUgTlZNX01FVEFfQklOX1ZFUlNJT04gMQogCXUzMiBudW1fb3B0aW9u czsKLQl1MzIgb3B0aW9uc1swXTsKKwl1MzIgb3B0aW9uc1tdOwogfTsKICNlbmRpZgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvdGkvZGF2aW5jaV9tZGlvLmMgYi9kcml2ZXJzL25l dC9ldGhlcm5ldC90aS9kYXZpbmNpX21kaW8uYwppbmRleCBhNGVmZDVlMzUxNTguLmZjZTI2MjZl MzRmYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvdGkvZGF2aW5jaV9tZGlvLmMK KysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvdGkvZGF2aW5jaV9tZGlvLmMKQEAgLTcwLDcgKzcw LDcgQEAgc3RydWN0IGRhdmluY2lfbWRpb19yZWdzIHsKICNkZWZpbmUgVVNFUkFDQ0VTU19EQVRB CQkoMHhmZmZmKQogCiAJCXUzMglwaHlzZWw7Ci0JfQl1c2VyWzBdOworCX0JdXNlcltdOwogfTsK IAogc3RhdGljIGNvbnN0IHN0cnVjdCBtZGlvX3BsYXRmb3JtX2RhdGEgZGVmYXVsdF9wZGF0YSA9 IHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9kcHQvZHB0aV9pMm8uaCBiL2RyaXZlcnMvc2Nz aS9kcHQvZHB0aV9pMm8uaAppbmRleCBiZjBkYWVlYjUwYTkuLmUxZmJiZjU1YzA5ZCAxMDA2NDQK LS0tIGEvZHJpdmVycy9zY3NpL2RwdC9kcHRpX2kyby5oCisrKyBiL2RyaXZlcnMvc2NzaS9kcHQv ZHB0aV9pMm8uaApAQCAtMTIzLDcgKzEyMyw3IEBAIHN0cnVjdCBpMm9fc3lzX3RibAogCXUzMglj aGFuZ2VfaW5kOwogCXUzMglyZXNlcnZlZDI7CiAJdTMyCXJlc2VydmVkMzsKLQlzdHJ1Y3QgaTJv X3N5c190YmxfZW50cnkgaW9wc1swXTsKKwlzdHJ1Y3QgaTJvX3N5c190YmxfZW50cnkgaW9wc1td OwogfTsKIAogLyoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9lbHgvbGliZWZjX3NsaS9zbGk0 LmggYi9kcml2ZXJzL3Njc2kvZWx4L2xpYmVmY19zbGkvc2xpNC5oCmluZGV4IGVlMmE5ZTY1YTg4 ZC4uMzhhZjE2NmNjNzg2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvZWx4L2xpYmVmY19zbGkv c2xpNC5oCisrKyBiL2RyaXZlcnMvc2NzaS9lbHgvbGliZWZjX3NsaS9zbGk0LmgKQEAgLTYwOSw3 ICs2MDksNyBAQCBzdHJ1Y3Qgc2xpNF9ycXN0X2Ntbl9jcmVhdGVfY3FfdjIgewogCV9fbGUxNgkJ CWNxZV9jb3VudDsKIAlfX2xlMTYJCQlyc3ZkMzA7CiAJX19sZTMyCQkJcnN2ZDMyOwotCXN0cnVj dCBzbGk0X2RtYWFkZHIJcGFnZV9waHlzX2FkZHJbMF07CisJc3RydWN0IHNsaTRfZG1hYWRkcglw YWdlX3BoeXNfYWRkcltdOwogfTsKIAogZW51bSBzbGk0X2NyZWF0ZV9jcXNldF9lIHsKQEAgLTYz NCw3ICs2MzQsNyBAQCBzdHJ1Y3Qgc2xpNF9ycXN0X2Ntbl9jcmVhdGVfY3Ffc2V0X3YwIHsKIAlf X2xlMTYJCQludW1fY3FfcmVxOwogCV9fbGUxNgkJCWR3NncxX2ZsYWdzOwogCV9fbGUxNgkJCWVx X2lkWzE2XTsKLQlzdHJ1Y3Qgc2xpNF9kbWFhZGRyCXBhZ2VfcGh5c19hZGRyWzBdOworCXN0cnVj dCBzbGk0X2RtYWFkZHIJcGFnZV9waHlzX2FkZHJbXTsKIH07CiAKIC8qIENRRSBjb3VudCAqLwpA QCAtNzY0LDcgKzc2NCw3IEBAIHN0cnVjdCBzbGk0X3Jxc3RfY21uX2NyZWF0ZV9tcV9leHQgewog CV9fbGUzMgkJCWR3N192YWw7CiAJX19sZTMyCQkJZHc4X2ZsYWdzOwogCV9fbGUzMgkJCXJzdmQz NjsKLQlzdHJ1Y3Qgc2xpNF9kbWFhZGRyCXBhZ2VfcGh5c19hZGRyWzBdOworCXN0cnVjdCBzbGk0 X2RtYWFkZHIJcGFnZV9waHlzX2FkZHJbXTsKIH07CiAKIHN0cnVjdCBzbGk0X3JzcF9jbW5fY3Jl YXRlX21xX2V4dCB7CkBAIC04MDIsNyArODAyLDcgQEAgc3RydWN0IHNsaTRfcnFzdF9jbW5fY3Jl YXRlX2NxX3YwIHsKIAlfX2xlMzIJCQlkdzZfZmxhZ3M7CiAJX19sZTMyCQkJcnN2ZDI4OwogCV9f bGUzMgkJCXJzdmQzMjsKLQlzdHJ1Y3Qgc2xpNF9kbWFhZGRyCXBhZ2VfcGh5c19hZGRyWzBdOwor CXN0cnVjdCBzbGk0X2RtYWFkZHIJcGFnZV9waHlzX2FkZHJbXTsKIH07CiAKIGVudW0gc2xpNF9j cmVhdGVfcnFfZSB7CkBAIC04ODcsNyArODg3LDcgQEAgc3RydWN0IHNsaTRfcnFzdF9ycV9jcmVh dGVfdjIgewogCV9fbGUxNgkJCWJhc2VfY3FfaWQ7CiAJX19sZTE2CQkJcnN2ZDI2OwogCV9fbGUz MgkJCXJzdmQ0MjsKLQlzdHJ1Y3Qgc2xpNF9kbWFhZGRyCXBhZ2VfcGh5c19hZGRyWzBdOworCXN0 cnVjdCBzbGk0X2RtYWFkZHIJcGFnZV9waHlzX2FkZHJbXTsKIH07CiAKIHN0cnVjdCBzbGk0X3Jz cF9ycV9jcmVhdGVfdjIgewpAQCAtMzE2OCw3ICszMTY4LDcgQEAgc3RydWN0IHNsaTRfcnFzdF9j bW5fcmVhZF9vYmplY3QgewogCV9fbGUzMgkJCXJlYWRfb2Zmc2V0OwogCXU4CQkJb2JqZWN0X25h bWVbMTA0XTsKIAlfX2xlMzIJCQlob3N0X2J1ZmZlcl9kZXNjcmlwdG9yX2NvdW50OwotCXN0cnVj dCBzbGk0X2JkZQkJaG9zdF9idWZmZXJfZGVzY3JpcHRvclswXTsKKwlzdHJ1Y3Qgc2xpNF9iZGUJ CWhvc3RfYnVmZmVyX2Rlc2NyaXB0b3JbXTsKIH07CiAKICNkZWZpbmUgUlNQX0NPTV9SRUFEX09C Sl9FT0YJCTB4ODAwMDAwMDAKQEAgLTMxOTEsNyArMzE5MSw3IEBAIHN0cnVjdCBzbGk0X3Jxc3Rf Y21uX3dyaXRlX29iamVjdCB7CiAJX19sZTMyCQkJd3JpdGVfb2Zmc2V0OwogCXU4CQkJb2JqZWN0 X25hbWVbMTA0XTsKIAlfX2xlMzIJCQlob3N0X2J1ZmZlcl9kZXNjcmlwdG9yX2NvdW50OwotCXN0 cnVjdCBzbGk0X2JkZQkJaG9zdF9idWZmZXJfZGVzY3JpcHRvclswXTsKKwlzdHJ1Y3Qgc2xpNF9i ZGUJCWhvc3RfYnVmZmVyX2Rlc2NyaXB0b3JbXTsKIH07CiAKICNkZWZpbmUJUlNQX0NIQU5HRV9T VEFUVVMJCTB4ZmYKQEAgLTMyMTcsNyArMzIxNyw3IEBAIHN0cnVjdCBzbGk0X3Jxc3RfY21uX3Jl YWRfb2JqZWN0X2xpc3QgewogCV9fbGUzMgkJCXJlYWRfb2Zmc2V0OwogCXU4CQkJb2JqZWN0X25h bWVbMTA0XTsKIAlfX2xlMzIJCQlob3N0X2J1ZmZlcl9kZXNjcmlwdG9yX2NvdW50OwotCXN0cnVj dCBzbGk0X2JkZQkJaG9zdF9idWZmZXJfZGVzY3JpcHRvclswXTsKKwlzdHJ1Y3Qgc2xpNF9iZGUJ CWhvc3RfYnVmZmVyX2Rlc2NyaXB0b3JbXTsKIH07CiAKIGVudW0gc2xpNF9ycXN0X3NldF9kdW1w X2ZsYWdzIHsKQEAgLTMzNDIsNyArMzM0Miw3IEBAIHN0cnVjdCBzbGk0X3JzcG91cmNlX2Rlc2Ny aXB0b3JfdjEgewogCXU4CQlkZXNjcmlwdG9yX3R5cGU7CiAJdTgJCWRlc2NyaXB0b3JfbGVuZ3Ro OwogCV9fbGUxNgkJcnN2ZDE2OwotCV9fbGUzMgkJdHlwZV9zcGVjaWZpY1swXTsKKwlfX2xlMzIJ CXR5cGVfc3BlY2lmaWNbXTsKIH07CiAKIGVudW0gc2xpNF9wY2llX2Rlc2NfZmxhZ3MgewpAQCAt MzQ3NCw3ICszNDc0LDcgQEAgc3RydWN0IHNsaTRfcnFzdF9wb3N0X2hkcl90ZW1wbGF0ZXMgewog CXN0cnVjdCBzbGk0X3Jxc3RfaGRyCWhkcjsKIAlfX2xlMTYJCQlycGlfb2Zmc2V0OwogCV9fbGUx NgkJCXBhZ2VfY291bnQ7Ci0Jc3RydWN0IHNsaTRfZG1hYWRkcglwYWdlX2Rlc2NyaXB0b3JbMF07 CisJc3RydWN0IHNsaTRfZG1hYWRkcglwYWdlX2Rlc2NyaXB0b3JbXTsKIH07CiAKICNkZWZpbmUg U0xJNF9IRFJfVEVNUExBVEVfU0laRQkJNjQKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9tcGkz bXIvbXBpM21yLmggYi9kcml2ZXJzL3Njc2kvbXBpM21yL21waTNtci5oCmluZGV4IGZjNGVhZjZk MWU0Ny4uZmI3ZDg3NzVjOWY3IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvbXBpM21yL21waTNt ci5oCisrKyBiL2RyaXZlcnMvc2NzaS9tcGkzbXIvbXBpM21yLmgKQEAgLTg3OCw3ICs4NzgsNyBA QCBzdHJ1Y3QgbXBpM21yX2Z3ZXZ0IHsKIAlib29sIHByb2Nlc3NfZXZ0OwogCXUzMiBldnRfY3R4 OwogCXN0cnVjdCBrcmVmIHJlZl9jb3VudDsKLQljaGFyIGV2ZW50X2RhdGFbMF0gX19hbGlnbmVk KDQpOworCWNoYXIgZXZlbnRfZGF0YVtdIF9fYWxpZ25lZCg0KTsKIH07CiAKIApkaWZmIC0tZ2l0 IGEvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2JzZy5oIGIvZHJpdmVycy9zY3NpL3FsYTJ4eHgv cWxhX2JzZy5oCmluZGV4IDBmOGE0YzdlNTJhMi4uNmQyYjBhNzQzNmMxIDEwMDY0NAotLS0gYS9k cml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfYnNnLmgKKysrIGIvZHJpdmVycy9zY3NpL3FsYTJ4eHgv cWxhX2JzZy5oCkBAIC0xNTcsNyArMTU3LDcgQEAgc3RydWN0IHFsYTg0X21zZ19tZ210IHsKIAl1 aW50MTZfdCByc3J2ZDsKIAlzdHJ1Y3QgcWxhODRfbWdtdF9wYXJhbSBtZ210cDsvKiBwYXJhbWV0 ZXJzIGZvciBjbWQgKi8KIAl1aW50MzJfdCBsZW47IC8qIGJ5dGVzIGluIHBheWxvYWQgZm9sbG93 aW5nIHRoaXMgc3RydWN0ICovCi0JdWludDhfdCBwYXlsb2FkWzBdOyAvKiBwYXlsb2FkIGZvciBj bWQgKi8KKwl1aW50OF90IHBheWxvYWRbXTsgLyogcGF5bG9hZCBmb3IgY21kICovCiB9OwogCiBz dHJ1Y3QgcWxhX2JzZ19hODRfbWdtdCB7CkBAIC0yMTYsNyArMjE2LDcgQEAgc3RydWN0IHFsYV9p bWFnZV92ZXJzaW9uIHsKIAogc3RydWN0IHFsYV9pbWFnZV92ZXJzaW9uX2xpc3QgewogCXVpbnQz Ml90IGNvdW50OwotCXN0cnVjdCBxbGFfaW1hZ2VfdmVyc2lvbiB2ZXJzaW9uWzBdOworCXN0cnVj dCBxbGFfaW1hZ2VfdmVyc2lvbiB2ZXJzaW9uW107CiB9IF9fcGFja2VkOwogCiBzdHJ1Y3QgcWxh X3N0YXR1c19yZWcgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2RlZi5o IGIvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2RlZi5oCmluZGV4IDllYmY0YTIzNGQ5YS4uYjY0 MzRjNzJkZWUzIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfZGVmLmgKKysr IGIvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2RlZi5oCkBAIC01NDEwLDcgKzU0MTAsNyBAQCBz dHJ1Y3QgcWxfdm5kX3N0YXRfZW50cnkgewogc3RydWN0IHFsX3ZuZF9zdGF0cyB7CiAJdTY0IGVu dHJ5X2NvdW50OyAvKiBOdW0gb2YgZW50cmllcyAqLwogCXU2NCByc2VydmQ7Ci0Jc3RydWN0IHFs X3ZuZF9zdGF0X2VudHJ5IGVudHJ5WzBdOyAvKiBQbGFjZSBob2xkZXIgb2YgZW50cmllcyAqLwor CXN0cnVjdCBxbF92bmRfc3RhdF9lbnRyeSBlbnRyeVtdOyAvKiBQbGFjZSBob2xkZXIgb2YgZW50 cmllcyAqLwogfSBfX3BhY2tlZDsKIAogc3RydWN0IHFsX3ZuZF9ob3N0X3N0YXRzX3Jlc3Agewpk aWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2VkaWZfYnNnLmggYi9kcml2ZXJz L3Njc2kvcWxhMnh4eC9xbGFfZWRpZl9ic2cuaAppbmRleCA1MzAyNmQ4MmViZmYuLjVhMjZjNzcx NTdkYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2VkaWZfYnNnLmgKKysr IGIvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2VkaWZfYnNnLmgKQEAgLTEyMSw3ICsxMjEsNyBA QCBzdHJ1Y3QgYXBwX3BpbmZvIHsKIHN0cnVjdCBhcHBfcGluZm9fcmVwbHkgewogCXVpbnQ4X3QJ CXBvcnRfY291bnQ7CiAJdWludDhfdAkJcmVzZXJ2ZWRbVk5EX0NNRF9BUFBfUkVTRVJWRURfU0la RV07Ci0Jc3RydWN0IGFwcF9waW5mbyBwb3J0c1swXTsKKwlzdHJ1Y3QgYXBwX3BpbmZvIHBvcnRz W107CiB9IF9fcGFja2VkOwogCiBzdHJ1Y3QgYXBwX3NpbmZvX3JlcSB7CkBAIC0xNDAsNyArMTQw LDcgQEAgc3RydWN0IGFwcF9zaW5mbyB7CiAKIHN0cnVjdCBhcHBfc3RhdHNfcmVwbHkgewogCXVp bnQ4X3QJCWVsZW1fY291bnQ7Ci0Jc3RydWN0IGFwcF9zaW5mbyBlbGVtWzBdOworCXN0cnVjdCBh cHBfc2luZm8gZWxlbVtdOwogfSBfX3BhY2tlZDsKIAogc3RydWN0IHFsYV9zYV91cGRhdGVfZnJh bWUgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2Z3LmggYi9kcml2ZXJz L3Njc2kvcWxhMnh4eC9xbGFfZncuaAppbmRleCAwNzNkMDZlODhjNTguLjBiYjFkNTYyZjBiZiAx MDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2Z3LmgKKysrIGIvZHJpdmVycy9z Y3NpL3FsYTJ4eHgvcWxhX2Z3LmgKQEAgLTE3MDYsNyArMTcwNiw3IEBAIHN0cnVjdCBxbGFfZmx0 X2hlYWRlciB7CiAJX19sZTE2CWxlbmd0aDsKIAlfX2xlMTYJY2hlY2tzdW07CiAJX19sZTE2CXVu dXNlZDsKLQlzdHJ1Y3QgcWxhX2ZsdF9yZWdpb24gcmVnaW9uWzBdOworCXN0cnVjdCBxbGFfZmx0 X3JlZ2lvbiByZWdpb25bXTsKIH07CiAKICNkZWZpbmUgRkxUX1JFR0lPTl9TSVpFCQkxNgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9zY3NpL3FsYTR4eHgvcWw0X2Z3LmggYi9kcml2ZXJzL3Njc2kvcWxh NHh4eC9xbDRfZncuaAppbmRleCA0ZTE3NjRkZjBhNzMuLjg2MGVjNjFiNTFiOSAxMDA2NDQKLS0t IGEvZHJpdmVycy9zY3NpL3FsYTR4eHgvcWw0X2Z3LmgKKysrIGIvZHJpdmVycy9zY3NpL3FsYTR4 eHgvcWw0X2Z3LmgKQEAgLTEwMjgsNyArMTAyOCw3IEBAIHN0cnVjdCBjcmFzaF9yZWNvcmQgewog CiAJdWludDhfdCBvdXRfUklTQ19yZWdfZHVtcFsyNTZdOyAvKiA4MCAtMTdGICovCiAJdWludDhf dCBpbl9SSVNDX3JlZ19kdW1wWzI1Nl07CS8qMTgwIC0yN0YgKi8KLQl1aW50OF90IGluX291dF9S SVNDX3N0YWNrX2R1bXBbMF07CS8qMjgwIC0gPz8/ICovCisJdWludDhfdCBpbl9vdXRfUklTQ19z dGFja19kdW1wW107CS8qMjgwIC0gPz8/ICovCiB9OwogCiBzdHJ1Y3QgY29ubl9ldmVudF9sb2df ZW50cnkgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL3I4MTg4ZXUvaW5jbHVkZS9pZWVl ODAyMTEuaCBiL2RyaXZlcnMvc3RhZ2luZy9yODE4OGV1L2luY2x1ZGUvaWVlZTgwMjExLmgKaW5k ZXggM2EyM2Q1Mjk5MzE0Li41ZTdkZTYzMWI4ZWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3RhZ2lu Zy9yODE4OGV1L2luY2x1ZGUvaWVlZTgwMjExLmgKKysrIGIvZHJpdmVycy9zdGFnaW5nL3I4MTg4 ZXUvaW5jbHVkZS9pZWVlODAyMTEuaApAQCAtMTg1LDcgKzE4NSw3IEBAIHN0cnVjdCBpZWVlX3Bh cmFtIHsKIHN0cnVjdCBpZWVlX3BhcmFtX2V4IHsKIAl1MzIgY21kOwogCXU4IHN0YV9hZGRyW0VU SF9BTEVOXTsKLQl1OCBkYXRhWzBdOworCXU4IGRhdGFbXTsKIH07CiAKIHN0cnVjdCBzdGFfZGF0 YSB7CkBAIC03MTMsNyArNzEzLDcgQEAgc3RydWN0IGllZWU4MDIxMV9pbmZvX2VsZW1lbnRfaGRy IHsKIHN0cnVjdCBpZWVlODAyMTFfaW5mb19lbGVtZW50IHsKIAl1OCBpZDsKIAl1OCBsZW47Ci0J dTggZGF0YVswXTsKKwl1OCBkYXRhW107CiB9IF9fcGFja2VkOwogCiAvKgpAQCAtNzc2LDcgKzc3 Niw3IEBAIHN0cnVjdCBpZWVlODAyMTFfdHhiIHsKIAl1MTYgcmVzZXJ2ZWQ7CiAJdTE2IGZyYWdf c2l6ZTsKIAl1MTYgcGF5bG9hZF9zaXplOwotCXN0cnVjdCBza19idWZmICpmcmFnbWVudHNbMF07 CisJc3RydWN0IHNrX2J1ZmYgKmZyYWdtZW50c1tdOwogfTsKIAogLyogU1dFRVAgVEFCTEUgRU5U UklFUyBOVU1CRVIqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL3I4MTg4ZXUvaW5jbHVk ZS9ydHdfY21kLmggYi9kcml2ZXJzL3N0YWdpbmcvcjgxODhldS9pbmNsdWRlL3J0d19jbWQuaApp bmRleCBjZjA5NDVhZTExYzEuLmY4OTkxYTA0OTNkMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zdGFn aW5nL3I4MTg4ZXUvaW5jbHVkZS9ydHdfY21kLmgKKysrIGIvZHJpdmVycy9zdGFnaW5nL3I4MTg4 ZXUvaW5jbHVkZS9ydHdfY21kLmgKQEAgLTczLDcgKzczLDcgQEAgc3RydWN0IGMyaF9ldnRfaGRy IHsKIAl1OCBpZDo0OwogCXU4IHBsZW46NDsKIAl1OCBzZXE7Ci0JdTggcGF5bG9hZFswXTsKKwl1 OCBwYXlsb2FkW107CiB9OwogCiAjZGVmaW5lIGMyaF9ldnRfZXhpc3QoYzJoX2V2dCkgKChjMmhf ZXZ0KS0+aWQgfHwgKGMyaF9ldnQpLT5wbGVuKQpAQCAtNjYyLDI1ICs2NjIsMjUgQEAgc3RydWN0 IGdldGN1cnR4cHdybGV2ZWxfcnNwaSB7CiBzdHJ1Y3Qgc2V0cHJvYmVyZXFleHRyYWllX3Bhcm0g ewogCXVuc2lnbmVkIGNoYXIgZV9pZDsKIAl1bnNpZ25lZCBjaGFyIGllX2xlbjsKLQl1bnNpZ25l ZCBjaGFyIGllWzBdOworCXVuc2lnbmVkIGNoYXIgaWVbXTsKIH07CiAKIHN0cnVjdCBzZXRhc3Nv Y3JlcWV4dHJhaWVfcGFybSB7CiAJdW5zaWduZWQgY2hhciBlX2lkOwogCXVuc2lnbmVkIGNoYXIg aWVfbGVuOwotCXVuc2lnbmVkIGNoYXIgaWVbMF07CisJdW5zaWduZWQgY2hhciBpZVtdOwogfTsK IAogc3RydWN0IHNldHByb2JlcnNwZXh0cmFpZV9wYXJtIHsKIAl1bnNpZ25lZCBjaGFyIGVfaWQ7 CiAJdW5zaWduZWQgY2hhciBpZV9sZW47Ci0JdW5zaWduZWQgY2hhciBpZVswXTsKKwl1bnNpZ25l ZCBjaGFyIGllW107CiB9OwogCiBzdHJ1Y3Qgc2V0YXNzb2Nyc3BleHRyYWllX3Bhcm0gewogCXVu c2lnbmVkIGNoYXIgZV9pZDsKIAl1bnNpZ25lZCBjaGFyIGllX2xlbjsKLQl1bnNpZ25lZCBjaGFy IGllWzBdOworCXVuc2lnbmVkIGNoYXIgaWVbXTsKIH07CiAKIHN0cnVjdCBhZGRCYVJlcV9wYXJt IHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy9ydGw4NzEyL3J0bDg3MXhfY21kLmggYi9k cml2ZXJzL3N0YWdpbmcvcnRsODcxMi9ydGw4NzF4X2NtZC5oCmluZGV4IGRkZDY5YzRhZTIwOC4u OTVlOWVhNWIyZDk4IDEwMDY0NAotLS0gYS9kcml2ZXJzL3N0YWdpbmcvcnRsODcxMi9ydGw4NzF4 X2NtZC5oCisrKyBiL2RyaXZlcnMvc3RhZ2luZy9ydGw4NzEyL3J0bDg3MXhfY21kLmgKQEAgLTY1 NywyNSArNjU3LDI1IEBAIHN0cnVjdCBzZXRyYV9wYXJtIHsKIHN0cnVjdCBzZXRwcm9iZXJlcWV4 dHJhaWVfcGFybSB7CiAJdW5zaWduZWQgY2hhciBlX2lkOwogCXVuc2lnbmVkIGNoYXIgaWVfbGVu OwotCXVuc2lnbmVkIGNoYXIgaWVbMF07CisJdW5zaWduZWQgY2hhciBpZVtdOwogfTsKIAogc3Ry dWN0IHNldGFzc29jcmVxZXh0cmFpZV9wYXJtIHsKIAl1bnNpZ25lZCBjaGFyIGVfaWQ7CiAJdW5z aWduZWQgY2hhciBpZV9sZW47Ci0JdW5zaWduZWQgY2hhciBpZVswXTsKKwl1bnNpZ25lZCBjaGFy IGllW107CiB9OwogCiBzdHJ1Y3Qgc2V0cHJvYmVyc3BleHRyYWllX3Bhcm0gewogCXVuc2lnbmVk IGNoYXIgZV9pZDsKIAl1bnNpZ25lZCBjaGFyIGllX2xlbjsKLQl1bnNpZ25lZCBjaGFyIGllWzBd OworCXVuc2lnbmVkIGNoYXIgaWVbXTsKIH07CiAKIHN0cnVjdCBzZXRhc3NvY3JzcGV4dHJhaWVf cGFybSB7CiAJdW5zaWduZWQgY2hhciBlX2lkOwogCXVuc2lnbmVkIGNoYXIgaWVfbGVuOwotCXVu c2lnbmVkIGNoYXIgaWVbMF07CisJdW5zaWduZWQgY2hhciBpZVtdOwogfTsKIAogc3RydWN0IGFk ZEJhUmVxX3Bhcm0gewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL3J0bDg3MjNicy9pbmNs dWRlL2llZWU4MDIxMS5oIGIvZHJpdmVycy9zdGFnaW5nL3J0bDg3MjNicy9pbmNsdWRlL2llZWU4 MDIxMS5oCmluZGV4IGMxMWQ3ZTJkMjM0Ny4uMWU2MjdkYzAwNDRkIDEwMDY0NAotLS0gYS9kcml2 ZXJzL3N0YWdpbmcvcnRsODcyM2JzL2luY2x1ZGUvaWVlZTgwMjExLmgKKysrIGIvZHJpdmVycy9z dGFnaW5nL3J0bDg3MjNicy9pbmNsdWRlL2llZWU4MDIxMS5oCkBAIC0yMDQsNyArMjA0LDcgQEAg c3RydWN0IGllZWVfcGFyYW0gewogc3RydWN0IGllZWVfcGFyYW1fZXggewogCXUzMiBjbWQ7CiAJ dTggc3RhX2FkZHJbRVRIX0FMRU5dOwotCXU4IGRhdGFbMF07CisJdTggZGF0YVtdOwogfTsKIAog c3RydWN0IHN0YV9kYXRhIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy9ydGw4NzIzYnMv aW5jbHVkZS9ydHdfY21kLmggYi9kcml2ZXJzL3N0YWdpbmcvcnRsODcyM2JzL2luY2x1ZGUvcnR3 X2NtZC5oCmluZGV4IDI4ZDJkMjczMjM3NC4uMWJmMDMwY2JiYmJlIDEwMDY0NAotLS0gYS9kcml2 ZXJzL3N0YWdpbmcvcnRsODcyM2JzL2luY2x1ZGUvcnR3X2NtZC5oCisrKyBiL2RyaXZlcnMvc3Rh Z2luZy9ydGw4NzIzYnMvaW5jbHVkZS9ydHdfY21kLmgKQEAgLTk0LDcgKzk0LDcgQEAgc3RydWN0 IGMyaF9ldnRfaGRyIHsKIAl1OCBpZDo0OwogCXU4IHBsZW46NDsKIAl1OCBzZXE7Ci0JdTggcGF5 bG9hZFswXTsKKwl1OCBwYXlsb2FkW107CiB9OwogCiBzdHJ1Y3QgYzJoX2V2dF9oZHJfODh4eCB7 CmRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvdmMwNF9zZXJ2aWNlcy9pbmNsdWRlL2xpbnV4 L3Jhc3BiZXJyeXBpL3ZjaGlxLmggYi9kcml2ZXJzL3N0YWdpbmcvdmMwNF9zZXJ2aWNlcy9pbmNs dWRlL2xpbnV4L3Jhc3BiZXJyeXBpL3ZjaGlxLmgKaW5kZXggODFkYjdmYjc2ZDZkLi5jOTNmMmYz ZTg3YmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3RhZ2luZy92YzA0X3NlcnZpY2VzL2luY2x1ZGUv bGludXgvcmFzcGJlcnJ5cGkvdmNoaXEuaAorKysgYi9kcml2ZXJzL3N0YWdpbmcvdmMwNF9zZXJ2 aWNlcy9pbmNsdWRlL2xpbnV4L3Jhc3BiZXJyeXBpL3ZjaGlxLmgKQEAgLTQ1LDcgKzQ1LDcgQEAg c3RydWN0IHZjaGlxX2hlYWRlciB7CiAJLyogU2l6ZSBvZiBtZXNzYWdlIGRhdGEuICovCiAJdW5z aWduZWQgaW50IHNpemU7CiAKLQljaGFyIGRhdGFbMF07ICAgICAgICAgICAvKiBtZXNzYWdlICov CisJY2hhciBkYXRhW107ICAgICAgICAgICAvKiBtZXNzYWdlICovCiB9OwogCiBzdHJ1Y3QgdmNo aXFfZWxlbWVudCB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Zpc29yYnVzL3ZidXNjaGFubmVsLmgg Yi9kcml2ZXJzL3Zpc29yYnVzL3ZidXNjaGFubmVsLmgKaW5kZXggNGFhZjY1NjRlYjlmLi45ODcx MWZiNmQ2NmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlzb3JidXMvdmJ1c2NoYW5uZWwuaAorKysg Yi9kcml2ZXJzL3Zpc29yYnVzL3ZidXNjaGFubmVsLmgKQEAgLTg5LDcgKzg5LDcgQEAgc3RydWN0 IHZpc29yX3ZidXNfY2hhbm5lbCB7CiAJc3RydWN0IHZpc29yX3ZidXNfaGVhZGVyaW5mbyBoZHJf aW5mbzsKIAlzdHJ1Y3Qgdmlzb3JfdmJ1c19kZXZpY2VpbmZvIGNocF9pbmZvOwogCXN0cnVjdCB2 aXNvcl92YnVzX2RldmljZWluZm8gYnVzX2luZm87Ci0Jc3RydWN0IHZpc29yX3ZidXNfZGV2aWNl aW5mbyBkZXZfaW5mb1swXTsKKwlzdHJ1Y3Qgdmlzb3JfdmJ1c19kZXZpY2VpbmZvIGRldl9pbmZv W107CiB9IF9fcGFja2VkOwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2ZzL2NpZnMvbnRsbXNzcC5o IGIvZnMvY2lmcy9udGxtc3NwLmgKaW5kZXggMjk4NDU4NDA0MjUyLi41NTc1OGI5ZWM4NzcgMTAw NjQ0Ci0tLSBhL2ZzL2NpZnMvbnRsbXNzcC5oCisrKyBiL2ZzL2NpZnMvbnRsbXNzcC5oCkBAIC0x MDcsNyArMTA3LDcgQEAgc3RydWN0IG5lZ290aWF0ZV9tZXNzYWdlIHsKIAlTRUNVUklUWV9CVUZG RVIgV29ya3N0YXRpb25OYW1lOwkvKiBSRkMgMTAwMSBhbmQgQVNDSUkgKi8KIAlzdHJ1Y3QJbnRs bXNzcF92ZXJzaW9uIFZlcnNpb247CiAJLyogU0VDVVJJVFlfQlVGRkVSICovCi0JY2hhciBEb21h aW5TdHJpbmdbMF07CisJY2hhciBEb21haW5TdHJpbmdbXTsKIAkvKiBmb2xsb3dlZCBieSBXb3Jr c3RhdGlvblN0cmluZyAqLwogfSBfX3BhY2tlZDsKIApkaWZmIC0tZ2l0IGEvZnMvZXh0NC9mYXN0 X2NvbW1pdC5oIGIvZnMvZXh0NC9mYXN0X2NvbW1pdC5oCmluZGV4IDA4M2FkMWNiNzA1YS4uMDdl OGI3MzRjNGZkIDEwMDY0NAotLS0gYS9mcy9leHQ0L2Zhc3RfY29tbWl0LmgKKysrIGIvZnMvZXh0 NC9mYXN0X2NvbW1pdC5oCkBAIC01NSwxMyArNTUsMTMgQEAgc3RydWN0IGV4dDRfZmNfZGVsX3Jh bmdlIHsKIHN0cnVjdCBleHQ0X2ZjX2RlbnRyeV9pbmZvIHsKIAlfX2xlMzIgZmNfcGFyZW50X2lu bzsKIAlfX2xlMzIgZmNfaW5vOwotCV9fdTggZmNfZG5hbWVbMF07CisJX191OCBmY19kbmFtZVtd OwogfTsKIAogLyogVmFsdWUgc3RydWN0dXJlIGZvciBFWFQ0X0ZDX1RBR19JTk9ERSBhbmQgRVhU NF9GQ19UQUdfSU5PREVfUEFSVElBTC4gKi8KIHN0cnVjdCBleHQ0X2ZjX2lub2RlIHsKIAlfX2xl MzIgZmNfaW5vOwotCV9fdTggZmNfcmF3X2lub2RlWzBdOworCV9fdTggZmNfcmF3X2lub2RlW107 CiB9OwogCiAvKiBWYWx1ZSBzdHJ1Y3R1cmUgZm9yIHRhZyBFWFQ0X0ZDX1RBR19UQUlMLiAqLwpk aWZmIC0tZ2l0IGEvZnMva3NtYmQva3NtYmRfbmV0bGluay5oIGIvZnMva3NtYmQva3NtYmRfbmV0 bGluay5oCmluZGV4IDcxYmZiN2RlNDQ3Mi4uZWJlNmNhMDg0NjdhIDEwMDY0NAotLS0gYS9mcy9r c21iZC9rc21iZF9uZXRsaW5rLmgKKysrIGIvZnMva3NtYmQva3NtYmRfbmV0bGluay5oCkBAIC0y NDEsNyArMjQxLDcgQEAgc3RydWN0IGtzbWJkX3JwY19jb21tYW5kIHsKIHN0cnVjdCBrc21iZF9z cG5lZ29fYXV0aGVuX3JlcXVlc3QgewogCV9fdTMyCWhhbmRsZTsKIAlfX3UxNglzcG5lZ29fYmxv Yl9sZW47CS8qIHRoZSBsZW5ndGggb2Ygc3BuZWdvX2Jsb2IgKi8KLQlfX3U4CXNwbmVnb19ibG9i WzBdOwkJLyoKKwlfX3U4CXNwbmVnb19ibG9iW107CQkvKgogCQkJCQkgKiB0aGUgR1NTIHRva2Vu IGZyb20gU2VjdXJpdHlCdWZmZXIgb2YKIAkJCQkJICogU01CMiBTRVNTSU9OIFNFVFVQIHJlcXVl c3QKIAkJCQkJICovCmRpZmYgLS1naXQgYS9mcy9rc21iZC9udGxtc3NwLmggYi9mcy9rc21iZC9u dGxtc3NwLmgKaW5kZXggYWRhZjRjMGNiZThmLi5mMTMxNTNjMThiNGUgMTAwNjQ0Ci0tLSBhL2Zz L2tzbWJkL250bG1zc3AuaAorKysgYi9mcy9rc21iZC9udGxtc3NwLmgKQEAgLTk1LDcgKzk1LDcg QEAgc3RydWN0IHNlY3VyaXR5X2J1ZmZlciB7CiBzdHJ1Y3QgdGFyZ2V0X2luZm8gewogCV9fbGUx NiBUeXBlOwogCV9fbGUxNiBMZW5ndGg7Ci0JX191OCBDb250ZW50WzBdOworCV9fdTggQ29udGVu dFtdOwogfSBfX3BhY2tlZDsKIAogc3RydWN0IG5lZ290aWF0ZV9tZXNzYWdlIHsKQEAgLTEwOCw3 ICsxMDgsNyBAQCBzdHJ1Y3QgbmVnb3RpYXRlX21lc3NhZ2UgewogCSAqIHN0cnVjdCBzZWN1cml0 eV9idWZmZXIgZm9yIHZlcnNpb24gaW5mbyBub3QgcHJlc2VudCBzaW5jZSB3ZQogCSAqIGRvIG5v dCBzZXQgdGhlIHZlcnNpb24gaXMgcHJlc2VudCBmbGFnCiAJICovCi0JY2hhciBEb21haW5TdHJp bmdbMF07CisJY2hhciBEb21haW5TdHJpbmdbXTsKIAkvKiBmb2xsb3dlZCBieSBXb3Jrc3RhdGlv blN0cmluZyAqLwogfSBfX3BhY2tlZDsKIApAQCAtMTQwLDcgKzE0MCw3IEBAIHN0cnVjdCBhdXRo ZW50aWNhdGVfbWVzc2FnZSB7CiAJICogc3RydWN0IHNlY3VyaXR5X2J1ZmZlciBmb3IgdmVyc2lv biBpbmZvIG5vdCBwcmVzZW50IHNpbmNlIHdlCiAJICogZG8gbm90IHNldCB0aGUgdmVyc2lvbiBp cyBwcmVzZW50IGZsYWcKIAkgKi8KLQljaGFyIFVzZXJTdHJpbmdbMF07CisJY2hhciBVc2VyU3Ry aW5nW107CiB9IF9fcGFja2VkOwogCiBzdHJ1Y3QgbnRsbXYyX3Jlc3AgewpkaWZmIC0tZ2l0IGEv ZnMva3NtYmQvc21iMnBkdS5oIGIvZnMva3NtYmQvc21iMnBkdS5oCmluZGV4IDcyNWI4MDBjMjlj OC4uZDQ5NDY4NDI2NTc2IDEwMDY0NAotLS0gYS9mcy9rc21iZC9zbWIycGR1LmgKKysrIGIvZnMv a3NtYmQvc21iMnBkdS5oCkBAIC03NTksNyArNzU5LDcgQEAgc3RydWN0IHNtYjJfZmlsZV9yZW5h bWVfaW5mbyB7IC8qIGVuY29kaW5nIG9mIHJlcXVlc3QgZm9yIGxldmVsIDEwICovCiAJX191OCAg IFJlc2VydmVkWzddOwogCV9fdTY0ICBSb290RGlyZWN0b3J5OyAgLyogTUJaIGZvciBuZXR3b3Jr IG9wZXJhdGlvbnMgKHdoeSBzYXlzIHNwZWM/KSAqLwogCV9fbGUzMiBGaWxlTmFtZUxlbmd0aDsK LQljaGFyICAgRmlsZU5hbWVbMF07ICAgICAvKiBOZXcgbmFtZSB0byBiZSBhc3NpZ25lZCAqLwor CWNoYXIgICBGaWxlTmFtZVtdOyAgICAgLyogTmV3IG5hbWUgdG8gYmUgYXNzaWduZWQgKi8KIH0g X19wYWNrZWQ7IC8qIGxldmVsIDEwIFNldCAqLwogCiBzdHJ1Y3Qgc21iMl9maWxlX2xpbmtfaW5m byB7IC8qIGVuY29kaW5nIG9mIHJlcXVlc3QgZm9yIGxldmVsIDExICovCkBAIC03NjgsNyArNzY4 LDcgQEAgc3RydWN0IHNtYjJfZmlsZV9saW5rX2luZm8geyAvKiBlbmNvZGluZyBvZiByZXF1ZXN0 IGZvciBsZXZlbCAxMSAqLwogCV9fdTggICBSZXNlcnZlZFs3XTsKIAlfX3U2NCAgUm9vdERpcmVj dG9yeTsgIC8qIE1CWiBmb3IgbmV0d29yayBvcGVyYXRpb25zICh3aHkgc2F5cyBzcGVjPykgKi8K IAlfX2xlMzIgRmlsZU5hbWVMZW5ndGg7Ci0JY2hhciAgIEZpbGVOYW1lWzBdOyAgICAgLyogTmFt ZSB0byBiZSBhc3NpZ25lZCB0byBuZXcgbGluayAqLworCWNoYXIgICBGaWxlTmFtZVtdOyAgICAg LyogTmFtZSB0byBiZSBhc3NpZ25lZCB0byBuZXcgbGluayAqLwogfSBfX3BhY2tlZDsgLyogbGV2 ZWwgMTEgU2V0ICovCiAKIC8qCkBAIC04MTAsNyArODEwLDcgQEAgc3RydWN0IHNtYjJfZmlsZV9i YXNpY19pbmZvIHsgLyogZGF0YSBibG9jayBlbmNvZGluZyBvZiByZXNwb25zZSB0byBsZXZlbCAx OCAqLwogCiBzdHJ1Y3Qgc21iMl9maWxlX2FsdF9uYW1lX2luZm8gewogCV9fbGUzMiBGaWxlTmFt ZUxlbmd0aDsKLQljaGFyIEZpbGVOYW1lWzBdOworCWNoYXIgRmlsZU5hbWVbXTsKIH0gX19wYWNr ZWQ7CiAKIHN0cnVjdCBzbWIyX2ZpbGVfc3RyZWFtX2luZm8gewpAQCAtODE4LDcgKzgxOCw3IEBA IHN0cnVjdCBzbWIyX2ZpbGVfc3RyZWFtX2luZm8gewogCV9fbGUzMiAgU3RyZWFtTmFtZUxlbmd0 aDsKIAlfX2xlNjQgU3RyZWFtU2l6ZTsKIAlfX2xlNjQgU3RyZWFtQWxsb2NhdGlvblNpemU7Ci0J Y2hhciAgIFN0cmVhbU5hbWVbMF07CisJY2hhciAgIFN0cmVhbU5hbWVbXTsKIH0gX19wYWNrZWQ7 CiAKIHN0cnVjdCBzbWIyX2ZpbGVfZW9mX2luZm8geyAvKiBlbmNvZGluZyBvZiByZXF1ZXN0IGZv ciBsZXZlbCAxMCAqLwpkaWZmIC0tZ2l0IGEvZnMva3NtYmQvdHJhbnNwb3J0X3JkbWEuYyBiL2Zz L2tzbWJkL3RyYW5zcG9ydF9yZG1hLmMKaW5kZXggM2MxZWMxYWMwYjI3Li45OTc2ZDM5YzZlZDgg MTAwNjQ0Ci0tLSBhL2ZzL2tzbWJkL3RyYW5zcG9ydF9yZG1hLmMKKysrIGIvZnMva3NtYmQvdHJh bnNwb3J0X3JkbWEuYwpAQCAtMjExLDcgKzIxMSw3IEBAIHN0cnVjdCBzbWJfZGlyZWN0X3JkbWFf cndfbXNnIHsKIAlzdHJ1Y3QgY29tcGxldGlvbgkqY29tcGxldGlvbjsKIAlzdHJ1Y3QgcmRtYV9y d19jdHgJcndfY3R4OwogCXN0cnVjdCBzZ190YWJsZQkJc2d0OwotCXN0cnVjdCBzY2F0dGVybGlz dAlzZ19saXN0WzBdOworCXN0cnVjdCBzY2F0dGVybGlzdAlzZ19saXN0W107CiB9OwogCiBzdGF0 aWMgaW5saW5lIGludCBnZXRfYnVmX3BhZ2VfY291bnQodm9pZCAqYnVmLCBpbnQgc2l6ZSkKZGlm ZiAtLWdpdCBhL2ZzL2tzbWJkL3hhdHRyLmggYi9mcy9rc21iZC94YXR0ci5oCmluZGV4IDg4NTdj MDEwOTNkOS4uMTY0OTljYTVjODJkIDEwMDY0NAotLS0gYS9mcy9rc21iZC94YXR0ci5oCisrKyBi L2ZzL2tzbWJkL3hhdHRyLmgKQEAgLTc2LDcgKzc2LDcgQEAgc3RydWN0IHhhdHRyX2FjbF9lbnRy eSB7CiBzdHJ1Y3QgeGF0dHJfc21iX2FjbCB7CiAJaW50IGNvdW50OwogCWludCBuZXh0OwotCXN0 cnVjdCB4YXR0cl9hY2xfZW50cnkgZW50cmllc1swXTsKKwlzdHJ1Y3QgeGF0dHJfYWNsX2VudHJ5 IGVudHJpZXNbXTsKIH07CiAKIC8qIDY0Ynl0ZXMgaGFzaCBpbiB4YXR0cl9udGFjbCBpcyBjb21w dXRlZCB3aXRoIHNoYTI1NiAqLwpkaWZmIC0tZ2l0IGEvZnMveGZzL3NjcnViL2F0dHIuaCBiL2Zz L3hmcy9zY3J1Yi9hdHRyLmgKaW5kZXggMTcxOWUxYzRkYTU5Li4zNTkwZTEwZTNlNjIgMTAwNjQ0 Ci0tLSBhL2ZzL3hmcy9zY3J1Yi9hdHRyLmgKKysrIGIvZnMveGZzL3NjcnViL2F0dHIuaApAQCAt MjQsNyArMjQsNyBAQCBzdHJ1Y3QgeGNoa194YXR0cl9idWYgewogCSAqIHNwYWNlIGJpdG1hcCBm b2xsb3dzIGltbWVkaWF0ZWx5IGFmdGVyOyBhbmQgd2UgaGF2ZSBhIHRoaXJkIGJ1ZmZlcgogCSAq IGZvciBzdG9yaW5nIGludGVybWVkaWF0ZSBiaXRtYXAgcmVzdWx0cy4KIAkgKi8KLQl1aW50OF90 CQkJYnVmWzBdOworCXVpbnQ4X3QJCQlidWZbXTsKIH07CiAKIC8qIEEgcGxhY2UgdG8gc3RvcmUg YXR0cmlidXRlIHZhbHVlcy4gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYWNwaS9hY3RibDIuaCBi L2luY2x1ZGUvYWNwaS9hY3RibDIuaAppbmRleCAxNjg0N2M4ZDlkNWYuLjllZTRkMWIzOTEyNSAx MDA2NDQKLS0tIGEvaW5jbHVkZS9hY3BpL2FjdGJsMi5oCisrKyBiL2luY2x1ZGUvYWNwaS9hY3Ri bDIuaApAQCAtMjMxOSw3ICsyMzE5LDcgQEAgc3RydWN0IGFjcGlfdGFibGVfcmdydCB7CiAJdTE2 IHZlcnNpb247CiAJdTggaW1hZ2VfdHlwZTsKIAl1OCByZXNlcnZlZDsKLQl1OCBpbWFnZVswXTsK Kwl1OCBpbWFnZVtdOwogfTsKIAogLyogaW1hZ2VfdHlwZSB2YWx1ZXMgKi8KZGlmZiAtLWdpdCBh L2luY2x1ZGUvYXNtLWdlbmVyaWMvdGxiLmggYi9pbmNsdWRlL2FzbS1nZW5lcmljL3RsYi5oCmlu ZGV4IDJjNjhhNTQ1ZmZhNy4uZmQ3ZmViNWM3ODk0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1n ZW5lcmljL3RsYi5oCisrKyBiL2luY2x1ZGUvYXNtLWdlbmVyaWMvdGxiLmgKQEAgLTE4MCw3ICsx ODAsNyBAQCBzdHJ1Y3QgbW11X3RhYmxlX2JhdGNoIHsKIAlzdHJ1Y3QgcmN1X2hlYWQJCXJjdTsK ICNlbmRpZgogCXVuc2lnbmVkIGludAkJbnI7Ci0Jdm9pZAkJCSp0YWJsZXNbMF07CisJdm9pZAkJ CSp0YWJsZXNbXTsKIH07CiAKICNkZWZpbmUgTUFYX1RBQkxFX0JBVENICQlcCkBAIC0yMjcsNyAr MjI3LDcgQEAgc3RydWN0IG1tdV9nYXRoZXJfYmF0Y2ggewogCXN0cnVjdCBtbXVfZ2F0aGVyX2Jh dGNoCSpuZXh0OwogCXVuc2lnbmVkIGludAkJbnI7CiAJdW5zaWduZWQgaW50CQltYXg7Ci0Jc3Ry dWN0IHBhZ2UJCSpwYWdlc1swXTsKKwlzdHJ1Y3QgcGFnZQkJKnBhZ2VzW107CiB9OwogCiAjZGVm aW5lIE1BWF9HQVRIRVJfQkFUQ0gJXApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9ncmV5YnVz L2dyZXlidXNfbWFuaWZlc3QuaCBiL2luY2x1ZGUvbGludXgvZ3JleWJ1cy9ncmV5YnVzX21hbmlm ZXN0LmgKaW5kZXggNmU2MmZlNDc4NzEyLi5iZWY5ZWIyMDkzZTkgMTAwNjQ0Ci0tLSBhL2luY2x1 ZGUvbGludXgvZ3JleWJ1cy9ncmV5YnVzX21hbmlmZXN0LmgKKysrIGIvaW5jbHVkZS9saW51eC9n cmV5YnVzL2dyZXlidXNfbWFuaWZlc3QuaApAQCAtMTAwLDcgKzEwMCw3IEBAIGVudW0gewogc3Ry dWN0IGdyZXlidXNfZGVzY3JpcHRvcl9zdHJpbmcgewogCV9fdTgJbGVuZ3RoOwogCV9fdTgJaWQ7 Ci0JX191OAlzdHJpbmdbMF07CisJX191OAlzdHJpbmdbXTsKIH0gX19wYWNrZWQ7CiAKIC8qCkBA IC0xNzUsNyArMTc1LDcgQEAgc3RydWN0IGdyZXlidXNfbWFuaWZlc3RfaGVhZGVyIHsKIAogc3Ry dWN0IGdyZXlidXNfbWFuaWZlc3QgewogCXN0cnVjdCBncmV5YnVzX21hbmlmZXN0X2hlYWRlcgkJ aGVhZGVyOwotCXN0cnVjdCBncmV5YnVzX2Rlc2NyaXB0b3IJCWRlc2NyaXB0b3JzWzBdOworCXN0 cnVjdCBncmV5YnVzX2Rlc2NyaXB0b3IJCWRlc2NyaXB0b3JzW107CiB9IF9fcGFja2VkOwogCiAj ZW5kaWYgLyogX19HUkVZQlVTX01BTklGRVNUX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGlu dXgvZ3JleWJ1cy9oZC5oIGIvaW5jbHVkZS9saW51eC9ncmV5YnVzL2hkLmgKaW5kZXggZDNmYWYw YzFhNTY5Li43MThlMjg1NzA1NGUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvZ3JleWJ1cy9o ZC5oCisrKyBiL2luY2x1ZGUvbGludXgvZ3JleWJ1cy9oZC5oCkBAIC01OCw3ICs1OCw3IEBAIHN0 cnVjdCBnYl9ob3N0X2RldmljZSB7CiAKIAlzdHJ1Y3QgZ2Jfc3ZjICpzdmM7CiAJLyogUHJpdmF0 ZSBkYXRhIGZvciB0aGUgaG9zdCBkcml2ZXIgKi8KLQl1bnNpZ25lZCBsb25nIGhkX3ByaXZbMF0g X19hbGlnbmVkKHNpemVvZihzNjQpKTsKKwl1bnNpZ25lZCBsb25nIGhkX3ByaXZbXSBfX2FsaWdu ZWQoc2l6ZW9mKHM2NCkpOwogfTsKICNkZWZpbmUgdG9fZ2JfaG9zdF9kZXZpY2UoZCkgY29udGFp bmVyX29mKGQsIHN0cnVjdCBnYl9ob3N0X2RldmljZSwgZGV2KQogCmRpZmYgLS1naXQgYS9pbmNs dWRlL2xpbnV4L2dyZXlidXMvbW9kdWxlLmggYi9pbmNsdWRlL2xpbnV4L2dyZXlidXMvbW9kdWxl LmgKaW5kZXggNDdiODM5YWYxNDVkLi4zZWZlMjEzM2FjZmQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUv bGludXgvZ3JleWJ1cy9tb2R1bGUuaAorKysgYi9pbmNsdWRlL2xpbnV4L2dyZXlidXMvbW9kdWxl LmgKQEAgLTIzLDcgKzIzLDcgQEAgc3RydWN0IGdiX21vZHVsZSB7CiAKIAlib29sIGRpc2Nvbm5l Y3RlZDsKIAotCXN0cnVjdCBnYl9pbnRlcmZhY2UgKmludGVyZmFjZXNbMF07CisJc3RydWN0IGdi X2ludGVyZmFjZSAqaW50ZXJmYWNlc1tdOwogfTsKICNkZWZpbmUgdG9fZ2JfbW9kdWxlKGQpIGNv bnRhaW5lcl9vZihkLCBzdHJ1Y3QgZ2JfbW9kdWxlLCBkZXYpCiAKZGlmZiAtLWdpdCBhL2luY2x1 ZGUvbGludXgvaTNjL2NjYy5oIGIvaW5jbHVkZS9saW51eC9pM2MvY2NjLmgKaW5kZXggNzNiMDk4 MmNjNTE5Li5hZDU5YTRhZTYwZDEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvaTNjL2NjYy5o CisrKyBiL2luY2x1ZGUvbGludXgvaTNjL2NjYy5oCkBAIC0xMzIsNyArMTMyLDcgQEAgc3RydWN0 IGkzY19jY2NfZGV2X2Rlc2Mgewogc3RydWN0IGkzY19jY2NfZGVmc2x2cyB7CiAJdTggY291bnQ7 CiAJc3RydWN0IGkzY19jY2NfZGV2X2Rlc2MgbWFzdGVyOwotCXN0cnVjdCBpM2NfY2NjX2Rldl9k ZXNjIHNsYXZlc1swXTsKKwlzdHJ1Y3QgaTNjX2NjY19kZXZfZGVzYyBzbGF2ZXNbXTsKIH0gX19w YWNrZWQ7CiAKIC8qKgpAQCAtMjQwLDcgKzI0MCw3IEBAIHN0cnVjdCBpM2NfY2NjX2JyaWRnZWRf c2xhdmVfZGVzYyB7CiAgKi8KIHN0cnVjdCBpM2NfY2NjX3NldGJyZ3RndCB7CiAJdTggY291bnQ7 Ci0Jc3RydWN0IGkzY19jY2NfYnJpZGdlZF9zbGF2ZV9kZXNjIGJzbGF2ZXNbMF07CisJc3RydWN0 IGkzY19jY2NfYnJpZGdlZF9zbGF2ZV9kZXNjIGJzbGF2ZXNbXTsKIH0gX19wYWNrZWQ7CiAKIC8q KgpAQCAtMzE4LDcgKzMxOCw3IEBAIGVudW0gaTNjX2NjY19zZXR4dGltZV9zdWJjbWQgewogICov CiBzdHJ1Y3QgaTNjX2NjY19zZXR4dGltZSB7CiAJdTggc3ViY21kOwotCXU4IGRhdGFbMF07CisJ dTggZGF0YVtdOwogfSBfX3BhY2tlZDsKIAogI2RlZmluZSBJM0NfQ0NDX0dFVFhUSU1FX1NZTkNf TU9ERQlCSVQoMCkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbWx4NS9tbHg1X2lmY19mcGdh LmggYi9pbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmNfZnBnYS5oCmluZGV4IDA3ZDc3MzIzZjc4 YS4uY2FjNGU5NGFiZDNhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmNf ZnBnYS5oCisrKyBiL2luY2x1ZGUvbGludXgvbWx4NS9tbHg1X2lmY19mcGdhLmgKQEAgLTE4NSw3 ICsxODUsNyBAQCBzdHJ1Y3QgbWx4NV9pZmNfZnBnYV9hY2Nlc3NfcmVnX2JpdHMgewogCiAJdTgg ICAgICAgICBhZGRyZXNzWzB4NDBdOwogCi0JdTggICAgICAgICBkYXRhWzBdWzB4OF07CisJdTgg ICAgICAgICBkYXRhW11bMHg4XTsKIH07CiAKIGVudW0gbWx4NV9pZmNfZnBnYV9xcF9zdGF0ZSB7 CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3BsYXRmb3JtX2RhdGEvYnJjbWZtYWMuaCBiL2lu Y2x1ZGUvbGludXgvcGxhdGZvcm1fZGF0YS9icmNtZm1hYy5oCmluZGV4IDJiNTY3NmZmMzViZS4u ZjkyMmExOTJmZTU4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3BsYXRmb3JtX2RhdGEvYnJj bWZtYWMuaAorKysgYi9pbmNsdWRlL2xpbnV4L3BsYXRmb3JtX2RhdGEvYnJjbWZtYWMuaApAQCAt MTc4LDcgKzE3OCw3IEBAIHN0cnVjdCBicmNtZm1hY19wbGF0Zm9ybV9kYXRhIHsKIAl2b2lkCSgq cG93ZXJfb2ZmKSh2b2lkKTsKIAljaGFyCSpmd19hbHRlcm5hdGl2ZV9wYXRoOwogCWludAlkZXZp Y2VfY291bnQ7Ci0Jc3RydWN0IGJyY21mbWFjX3BkX2RldmljZSBkZXZpY2VzWzBdOworCXN0cnVj dCBicmNtZm1hY19wZF9kZXZpY2UgZGV2aWNlc1tdOwogfTsKIAogCmRpZmYgLS1naXQgYS9pbmNs dWRlL2xpbnV4L3BsYXRmb3JtX2RhdGEvY3Jvc19lY19jb21tYW5kcy5oIGIvaW5jbHVkZS9saW51 eC9wbGF0Zm9ybV9kYXRhL2Nyb3NfZWNfY29tbWFuZHMuaAppbmRleCAyNzFiZDg3YmZmMGEuLjcy ODczNWFlZDk4MCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9wbGF0Zm9ybV9kYXRhL2Nyb3Nf ZWNfY29tbWFuZHMuaAorKysgYi9pbmNsdWRlL2xpbnV4L3BsYXRmb3JtX2RhdGEvY3Jvc19lY19j b21tYW5kcy5oCkBAIC01NjQ0LDcgKzU2NDQsNyBAQCBzdHJ1Y3QgZWNfcmVzcG9uc2VfdHlwZWNf ZGlzY292ZXJ5IHsKIAl1aW50OF90IHN2aWRfY291bnQ7CSAgIC8qIE51bWJlciBvZiBTVklEcyBw YXJ0bmVyIHNlbnQgKi8KIAl1aW50MTZfdCByZXNlcnZlZDsKIAl1aW50MzJfdCBkaXNjb3Zlcnlf dmRvWzZdOyAvKiBNYXggVkRPcyBhbGxvd2VkIGFmdGVyIFZETSBoZWFkZXIgaXMgNiAqLwotCXN0 cnVjdCBzdmlkX21vZGVfaW5mbyBzdmlkc1swXTsKKwlzdHJ1Y3Qgc3ZpZF9tb2RlX2luZm8gc3Zp ZHNbXTsKIH0gX19lY19hbGlnbjE7CiAKIC8qIFVTQiBUeXBlLUMgY29tbWFuZHMgZm9yIEFQLWNv bnRyb2xsZWQgZGV2aWNlIHBvbGljeS4gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L2JsdWV0 b290aC9tZ210LmggYi9pbmNsdWRlL25ldC9ibHVldG9vdGgvbWdtdC5oCmluZGV4IDEwN2IyNWRl YWU2OC4uOTYwN2VjMjg5ZmQwIDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC9ibHVldG9vdGgvbWdt dC5oCisrKyBiL2luY2x1ZGUvbmV0L2JsdWV0b290aC9tZ210LmgKQEAgLTY5Niw3ICs2OTYsNyBA QCBzdHJ1Y3QgbWdtdF9jcF9zZXRfYmxvY2tlZF9rZXlzIHsKICNkZWZpbmUgTUdNVF9SRUFEX0NP TlRST0xMRVJfQ0FQX1NJWkUJMAogc3RydWN0IG1nbXRfcnBfcmVhZF9jb250cm9sbGVyX2NhcCB7 CiAJX19sZTE2ICAgY2FwX2xlbjsKLQlfX3U4ICAgICBjYXBbMF07CisJX191OCAgICAgY2FwW107 CiB9IF9fcGFja2VkOwogCiAjZGVmaW5lIE1HTVRfT1BfUkVBRF9FWFBfRkVBVFVSRVNfSU5GTwkw eDAwNDkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L2lvYW02LmggYi9pbmNsdWRlL25ldC9pb2Ft Ni5oCmluZGV4IDNmNDViYTM3YTJjNi4uNzgxZDJkOGIyZjI5IDEwMDY0NAotLS0gYS9pbmNsdWRl L25ldC9pb2FtNi5oCisrKyBiL2luY2x1ZGUvbmV0L2lvYW02LmgKQEAgLTM1LDcgKzM1LDcgQEAg c3RydWN0IGlvYW02X3NjaGVtYSB7CiAJaW50IGxlbjsKIAlfX2JlMzIgaGRyOwogCi0JdTggZGF0 YVswXTsKKwl1OCBkYXRhW107CiB9OwogCiBzdHJ1Y3QgaW9hbTZfcGVybmV0X2RhdGEgewpkaWZm IC0tZ2l0IGEvaW5jbHVkZS9zb3VuZC9zb2YvY2hhbm5lbF9tYXAuaCBiL2luY2x1ZGUvc291bmQv c29mL2NoYW5uZWxfbWFwLmgKaW5kZXggZmQzYTMwZmNmNzU2Li5kMzYzZjBjYTY5NzkgMTAwNjQ0 Ci0tLSBhL2luY2x1ZGUvc291bmQvc29mL2NoYW5uZWxfbWFwLmgKKysrIGIvaW5jbHVkZS9zb3Vu ZC9zb2YvY2hhbm5lbF9tYXAuaApAQCAtMzksNyArMzksNyBAQCBzdHJ1Y3Qgc29mX2lwY19jaGFu bmVsX21hcCB7CiAJdWludDMyX3QgZXh0X2lkOwogCXVpbnQzMl90IGNoX21hc2s7CiAJdWludDMy X3QgcmVzZXJ2ZWQ7Ci0JaW50MzJfdCBjaF9jb2VmZnNbMF07CisJaW50MzJfdCBjaF9jb2VmZnNb XTsKIH0gX19wYWNrZWQ7CiAKIC8qKgpAQCAtNTUsNyArNTUsNyBAQCBzdHJ1Y3Qgc29mX2lwY19z dHJlYW1fbWFwIHsKIAlzdHJ1Y3Qgc29mX2lwY19jbWRfaGRyIGhkcjsKIAl1aW50MzJfdCBudW1f Y2hfbWFwOwogCXVpbnQzMl90IHJlc2VydmVkWzNdOwotCXN0cnVjdCBzb2ZfaXBjX2NoYW5uZWxf bWFwIGNoX21hcFswXTsKKwlzdHJ1Y3Qgc29mX2lwY19jaGFubmVsX21hcCBjaF9tYXBbXTsKIH0g X19wYWNrZWQ7CiAKICNlbmRpZiAvKiBfX0lQQ19DSEFOTkVMX01BUF9IX18gKi8KZGlmZiAtLWdp dCBhL3NjcmlwdHMvZHRjL2xpYmZkdC9mZHQuaCBiL3NjcmlwdHMvZHRjL2xpYmZkdC9mZHQuaApp bmRleCBmMmU2ODgwN2YyNzcuLjBjOTFhYTdmNjdiNSAxMDA2NDQKLS0tIGEvc2NyaXB0cy9kdGMv bGliZmR0L2ZkdC5oCisrKyBiL3NjcmlwdHMvZHRjL2xpYmZkdC9mZHQuaApAQCAtMzUsMTQgKzM1 LDE0IEBAIHN0cnVjdCBmZHRfcmVzZXJ2ZV9lbnRyeSB7CiAKIHN0cnVjdCBmZHRfbm9kZV9oZWFk ZXIgewogCWZkdDMyX3QgdGFnOwotCWNoYXIgbmFtZVswXTsKKwljaGFyIG5hbWVbXTsKIH07CiAK IHN0cnVjdCBmZHRfcHJvcGVydHkgewogCWZkdDMyX3QgdGFnOwogCWZkdDMyX3QgbGVuOwogCWZk dDMyX3QgbmFtZW9mZjsKLQljaGFyIGRhdGFbMF07CisJY2hhciBkYXRhW107CiB9OwogCiAjZW5k aWYgLyogIV9fQVNTRU1CTFkgKi8KZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9pbnRlbC9hdG9tL3Nz dC1tZmxkLWRzcC5oIGIvc291bmQvc29jL2ludGVsL2F0b20vc3N0LW1mbGQtZHNwLmgKaW5kZXgg OGQ5ZTI5YjE2ZTU3Li5jOGYwODE2ZWRiNTMgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9pbnRlbC9h dG9tL3NzdC1tZmxkLWRzcC5oCisrKyBiL3NvdW5kL3NvYy9pbnRlbC9hdG9tL3NzdC1tZmxkLWRz cC5oCkBAIC00MjcsNyArNDI3LDcgQEAgc3RydWN0IHNuZF9zc3RfZHJvcF9yZXNwb25zZSB7CiAK IHN0cnVjdCBzbmRfc3N0X2FzeW5jX21zZyB7CiAJdTMyIG1zZ19pZDsgLyogQXN5bmMgbXNnIGlk ICovCi0JdTMyIHBheWxvYWRbMF07CisJdTMyIHBheWxvYWRbXTsKIH07CiAKIHN0cnVjdCBzbmRf c3N0X2FzeW5jX2Vycl9tc2cgewpAQCAtNTE0LDcgKzUxNCw3IEBAIHN0cnVjdCBzbmRfc3N0X2J5 dGVzX3YyIHsKIAl1OCBwaXBlX2lkOwogCXU4IHJzdmQ7CiAJdTE2IGxlbjsKLQljaGFyIGJ5dGVz WzBdOworCWNoYXIgYnl0ZXNbXTsKIH07CiAKICNkZWZpbmUgTUFYX1ZUU1ZfRklMRVMgMgpkaWZm IC0tZ2l0IGEvc291bmQvc29jL2ludGVsL3NreWxha2Uvc2tsLXRvcG9sb2d5LmggYi9zb3VuZC9z b2MvaW50ZWwvc2t5bGFrZS9za2wtdG9wb2xvZ3kuaAppbmRleCAyMjk2MzYzNGZiZWEuLmE1YmNj ZjJmY2Q4OCAxMDA2NDQKLS0tIGEvc291bmQvc29jL2ludGVsL3NreWxha2Uvc2tsLXRvcG9sb2d5 LmgKKysrIGIvc291bmQvc29jL2ludGVsL3NreWxha2Uvc2tsLXRvcG9sb2d5LmgKQEAgLTE2NCw3 ICsxNjQsNyBAQCBzdHJ1Y3Qgc2tsX2Jhc2VfY2ZnX2V4dCB7CiAJdTggcmVzZXJ2ZWRbOF07CiAJ dTMyIHByaXZfcGFyYW1fbGVuZ3RoOwogCS8qIElucHV0IHBpbiBmb3JtYXRzIGZvbGxvd2VkIGJ5 IG91dHB1dCBvbmVzLiAqLwotCXN0cnVjdCBza2xfcGluX2Zvcm1hdCBwaW5zX2ZtdFswXTsKKwlz dHJ1Y3Qgc2tsX3Bpbl9mb3JtYXQgcGluc19mbXRbXTsKIH0gX19wYWNrZWQ7CiAKIHN0cnVjdCBz a2xfYWxnb19jZmcgewpkaWZmIC0tZ2l0IGEvdG9vbHMvbGliL3BlcmYvaW5jbHVkZS9wZXJmL2V2 ZW50LmggYi90b29scy9saWIvcGVyZi9pbmNsdWRlL3BlcmYvZXZlbnQuaAppbmRleCA3NWVlMzg1 ZmIwNzguLmU3NzU4NzA3Y2FkZCAxMDA2NDQKLS0tIGEvdG9vbHMvbGliL3BlcmYvaW5jbHVkZS9w ZXJmL2V2ZW50LmgKKysrIGIvdG9vbHMvbGliL3BlcmYvaW5jbHVkZS9wZXJmL2V2ZW50LmgKQEAg LTI0MCw3ICsyNDAsNyBAQCBzdHJ1Y3QgaWRfaW5kZXhfZW50cnkgewogc3RydWN0IHBlcmZfcmVj b3JkX2lkX2luZGV4IHsKIAlzdHJ1Y3QgcGVyZl9ldmVudF9oZWFkZXIgaGVhZGVyOwogCV9fdTY0 CQkJIG5yOwotCXN0cnVjdCBpZF9pbmRleF9lbnRyeQkgZW50cmllc1swXTsKKwlzdHJ1Y3QgaWRf aW5kZXhfZW50cnkJIGVudHJpZXNbXTsKIH07CiAKIHN0cnVjdCBwZXJmX3JlY29yZF9hdXh0cmFj ZV9pbmZvIHsKLS0gCjIuMjcuMAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJu ZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK