Received: by 2002:a05:6a10:6d10:0:0:0:0 with SMTP id gq16csp2918411pxb; Mon, 18 Apr 2022 11:02:00 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwncW4cntQW9NoHvqZd8fqlTO4xAnqgZYV+/hNxXfn6qVsEmCv18zkc5D4Vxa2Z46+eogCe X-Received: by 2002:a50:c3c6:0:b0:416:293f:1f42 with SMTP id i6-20020a50c3c6000000b00416293f1f42mr13376838edf.187.1650304920602; Mon, 18 Apr 2022 11:02:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1650304920; cv=none; d=google.com; s=arc-20160816; b=T89s0EPJuyVDOGEMz6Zfgh4nk14rKFS1THfqTbFBU6KySXrlLwn4xBHGGSopCDcY41 sLg+qBzQGoAPopWFXAbJaPeqEaQ7tcSOkMrYQmLtlqJubXOuyRZzhn8uxOiP3x92ijgX ecSnCZXaURlrNt7afNXVsPtGnc46YMKyRGnWL2gWaMJcC24vCflRqMBgrXa1uXAjgQJr vrsO8AHaC6I615+fSNioBL6BO35PlYgHCB2GYFglKpqXmeOLUExBkA2dG4k9My+nZdRu yJqk/Q8y4w2djRoZ9LbRBrIZ27yPsprcCu42+mg9zWfr/4y9htOcBtYErgX2mWBXZjtp Q4mQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:user-agent :mime-version:message-id:date:subject:cc:to:from:dkim-signature; bh=aKL9WNheSxpxVaxo2RAwW716ftikncFX1cW/8HpLAy8=; b=Q8nSE9iyDXEqA/bfkkms/OCAkzpWz9AOF3yzWObxgyDAl8WS8PZRmXy+HMcX9nY4Rq qhH6HqCvgH5lgSgKYugVn6w2nJknzdz/9NFHn+VD6FtZMag88vE8cHzXTCrSwwWXwWkw akdkvlCo6yAHJYxrRQpEAoM7PWIm7aZsmAhesxWZzb6HwmWzzMMHjoMkE1xhMMM5faKA Gba9Qzza/+Ri2fF/iCDNfCQsjWRGKfYkGSHY3QfowMisyD2u3iyu+RsirjeOqDLomJ80 z4/xoyaoD8EDTlZAk773oN+Teq1FqKMsAz6ok+QZ0240ZoBoGwyJpa8HFzJq/KeMYkF8 xjyw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b="hBkIbR/V"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id w26-20020a50fa9a000000b0041d8e4d5cc9si6303584edr.73.2022.04.18.11.01.35; Mon, 18 Apr 2022 11:02:00 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b="hBkIbR/V"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S241256AbiDRNHS (ORCPT + 99 others); Mon, 18 Apr 2022 09:07:18 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43308 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240165AbiDRMzW (ORCPT ); Mon, 18 Apr 2022 08:55:22 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E8F31CC; Mon, 18 Apr 2022 05:36:50 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 76B1E6118A; Mon, 18 Apr 2022 12:36:50 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 33061C385A1; Mon, 18 Apr 2022 12:36:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1650285409; bh=LOcZixqltZKuZWcFx6aUbnx+cyWeJEJHFk3JEh623cY=; h=From:To:Cc:Subject:Date:From; b=hBkIbR/VYjsi5vJbA5EIlLrUPprCV9xUsfnLsYl5n2DQDv4mK6NAbhipTCXsL+eW7 Obxexmq6aI/vu+6TfWPHL1ZEqQv1aHd/ABLRS8luVZye4om/zhd9jF19Ce/qy7Si+L T+g7zGEiKBWxgrrZNOvctTYqPgaCwkaMV/yDcGSQ= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, torvalds@linux-foundation.org, akpm@linux-foundation.org, linux@roeck-us.net, shuah@kernel.org, patches@kernelci.org, lkft-triage@lists.linaro.org, pavel@denx.de, jonathanh@nvidia.com, f.fainelli@gmail.com, sudipm.mukherjee@gmail.com, slade@sladewatkins.com Subject: [PATCH 5.10 000/105] 5.10.112-rc1 review Date: Mon, 18 Apr 2022 14:12:02 +0200 Message-Id: <20220418121145.140991388@linuxfoundation.org> X-Mailer: git-send-email 2.35.3 MIME-Version: 1.0 User-Agent: quilt/0.66 X-stable: review X-Patchwork-Hint: ignore X-KernelTest-Patch: http://kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.10.112-rc1.gz X-KernelTest-Tree: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git X-KernelTest-Branch: linux-5.10.y X-KernelTest-Patches: git://git.kernel.org/pub/scm/linux/kernel/git/stable/stable-queue.git X-KernelTest-Version: 5.10.112-rc1 X-KernelTest-Deadline: 2022-04-20T12:11+00:00 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-7.7 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This is the start of the stable review cycle for the 5.10.112 release. There are 105 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know. Responses should be made by Wed, 20 Apr 2022 12:11:14 +0000. Anything received after that time might be too late. The whole patch series can be found in one patch at: https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.10.112-rc1.gz or in the git tree and branch at: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.10.y and the diffstat can be found below. thanks, greg k-h ------------- Pseudo-Shortlog of commits: Greg Kroah-Hartman Linux 5.10.112-rc1 Duoming Zhou ax25: Fix UAF bugs in ax25 timers Duoming Zhou ax25: Fix NULL pointer dereferences in ax25 timers Duoming Zhou ax25: fix NPD bug in ax25_disconnect Duoming Zhou ax25: fix UAF bug in ax25_send_control() Duoming Zhou ax25: Fix refcount leaks caused by ax25_cb_del() Duoming Zhou ax25: fix UAF bugs of net_device caused by rebinding operation Duoming Zhou ax25: fix reference count leaks of ax25_dev Duoming Zhou ax25: add refcount in ax25_dev to avoid UAF bugs Mike Christie scsi: iscsi: Fix unbound endpoint error handling Mike Christie scsi: iscsi: Fix endpoint reuse regression Chao Gao dma-direct: avoid redundant memory sync for swiotlb Anna-Maria Behnsen timers: Fix warning condition in __run_timers() Martin Povišer i2c: pasemi: Wait for write xfers to finish Nadav Amit smp: Fix offline cpu check in flush_smp_call_function_queue() Mikulas Patocka dm integrity: fix memory corruption when tag_size is less than digest size Nathan Chancellor ARM: davinci: da850-evm: Avoid NULL pointer dereference Paul Gortmaker tick/nohz: Use WARN_ON_ONCE() to prevent console saturation Rei Yamamoto genirq/affinity: Consider that CPUs on nodes can be unbalanced Tomasz Moń drm/amdgpu: Enable gfxoff quirk on MacBook Pro Melissa Wen drm/amd/display: don't ignore alpha property on pre-multiplied mode Nicolas Dichtel ipv6: fix panic when forwarding a pkt with no in6 dev Johannes Berg nl80211: correctly check NL80211_ATTR_REG_ALPHA2 size Fabio M. De Francesco ALSA: pcm: Test for "silence" field in struct "pcm_format_data" Tao Jin ALSA: hda/realtek: add quirk for Lenovo Thinkpad X12 speakers Tim Crawford ALSA: hda/realtek: Add quirk for Clevo PD50PNT Naohiro Aota btrfs: mark resumed async balance as writing Jia-Ju Bai btrfs: fix root ref counts in error handling in btrfs_get_root_ref Toke Høiland-Jørgensen ath9k: Fix usage of driver-private space in tx_info Toke Høiland-Jørgensen ath9k: Properly clear TX status area before reporting to mac80211 Jason A. Donenfeld gcc-plugins: latent_entropy: use /dev/urandom Johan Hovold memory: renesas-rpc-if: fix platform-device leak in error path Oliver Upton KVM: Don't create VM debugfs files outside of the VM directory Sean Christopherson KVM: x86/mmu: Resolve nx_huge_pages when kvm.ko is loaded Patrick Wang mm: kmemleak: take a full lowmem check in kmemleak_*_phys() Minchan Kim mm: fix unexpected zeroed page mapping with zram swap Juergen Gross mm, page_alloc: fix build_zonerefs_node() Borislav Petkov perf/imx_ddr: Fix undefined behavior due to shift overflowing the constant Duoming Zhou drivers: net: slip: fix NPD bug in sl_tx_timeout() Chandrakanth patil scsi: megaraid_sas: Target with invalid LUN ID is deleted during scan Alexey Galakhov scsi: mvsas: Add PCI ID of RocketRaid 2640 Roman Li drm/amd/display: Fix allocate_mst_payload assert on resume Martin Leung drm/amd/display: Revert FEC check in validation Xiaomeng Tong myri10ge: fix an incorrect free for skb in myri10ge_sw_tso Marcin Kozlowski net: usb: aqc111: Fix out-of-bounds accesses in RX fixup Andy Chiu net: axienet: setup mdio unconditionally Steve Capper tlb: hugetlb: Add more sizes to tlb_remove_huge_tlb_entry Joey Gouly arm64: alternatives: mark patch_alternative() as `noinstr` Jonathan Bakker regulator: wm8994: Add an off-on delay for WM8994 variant Leo Ruan gpu: ipu-v3: Fix dev_dbg frequency output Christian Lamparter ata: libata-core: Disable READ LOG DMA EXT for Samsung 840 EVOs Randy Dunlap net: micrel: fix KS8851_MLL Kconfig Tyrel Datwyler scsi: ibmvscsis: Increase INITIAL_SRP_LIMIT to 1024 James Smart scsi: lpfc: Fix queue failures when recovering from PCI parity error Xiaoguang Wang scsi: target: tcmu: Fix possible page UAF Michael Kelley Drivers: hv: vmbus: Prevent load re-ordering when reading ring buffer QintaoShen drm/amdkfd: Check for potential null return of kmalloc_array() Tianci Yin drm/amdgpu/vcn: improve vcn dpg stop procedure Tushar Patel drm/amdkfd: Fix Incorrect VMIDs passed to HWS Leo (Hanghong) Ma drm/amd/display: Update VTEM Infopacket definition Chiawen Huang drm/amd/display: FEC check in timing validation Charlene Liu drm/amd/display: fix audio format not updated after edid updated Josef Bacik btrfs: do not warn for free space inode in cow_file_range Darrick J. Wong btrfs: fix fallocate to use file_modified to update permissions consistently Aurabindo Pillai drm/amd: Add USBC connector ID Jeremy Linton net: bcmgenet: Revert "Use stronger register read/writes to assure ordering" Khazhismel Kumykov dm mpath: only use ktime_get_ns() in historical selector Harshit Mogalapalli cifs: potential buffer overflow in handling symlinks Lin Ma nfc: nci: add flush_workqueue to prevent uaf Adrian Hunter perf tools: Fix misleading add event PMU debug message Athira Rajeev testing/selftests/mqueue: Fix mq_perf_tests to free the allocated cpu set Petr Malat sctp: Initialize daddr on peeled off socket Mike Christie scsi: iscsi: Fix conn cleanup and stop race during iscsid restart Mike Christie scsi: iscsi: Fix offload conn cleanup when iscsid restarts Mike Christie scsi: iscsi: Move iscsi_ep_disconnect() Mike Christie scsi: iscsi: Fix in-kernel conn failure handling Mike Christie scsi: iscsi: Rel ref after iscsi_lookup_endpoint() Mike Christie scsi: iscsi: Use system_unbound_wq for destroy_work Mike Christie scsi: iscsi: Force immediate failure during shutdown Mike Christie scsi: iscsi: Stop queueing during ep_disconnect Ajish Koshy scsi: pm80xx: Enable upper inbound, outbound queues Ajish Koshy scsi: pm80xx: Mask and unmask upper interrupt vectors 32-63 Karsten Graul net/smc: Fix NULL pointer dereference in smc_pnet_find_ib() Stephen Boyd drm/msm/dsi: Use connector directly in msm_dsi_manager_connector_init() Rob Clark drm/msm: Fix range size vs end confusion Rameshkumar Sundaram cfg80211: hold bss_lock while updating nontrans_list Benedikt Spranger net/sched: taprio: Check if socket flags are valid Dinh Nguyen net: ethernet: stmmac: fix altr_tse_pcs function when using a fixed-link Michael Walle net: dsa: felix: suppress -EPROBE_DEFER errors Marcelo Ricardo Leitner net/sched: fix initialization order when updating chain 0 head Vadim Pasternak mlxsw: i2c: Fix initialization error flow Calvin Johnson net: mdio: Alphabetically sort header inclusion Linus Torvalds gpiolib: acpi: use correct format characters Guillaume Nault veth: Ensure eth header is in skb's linear part Vlad Buslov net/sched: flower: fix parsing of ethertype following VLAN header Chuck Lever SUNRPC: Fix the svc_deferred_event trace class Kyle Copperfield media: rockchip/rga: do proper error checking in probe Cristian Marussi firmware: arm_scmi: Fix sorting of retrieved clock rates Miaoqian Lin memory: atmel-ebi: Fix missing of_node_put in atmel_ebi_probe Rob Clark drm/msm: Add missing put_task_struct() in debugfs path Nathan Chancellor btrfs: remove unused variable in btrfs_{start,write}_dirty_block_groups() Mario Limonciello ACPI: processor idle: Check for architectural support for LPI Mario Limonciello cpuidle: PSCI: Move the `has_lpi` check to the beginning of the function Lin Ma hamradio: remove needs_free_netdev to avoid UAF Lin Ma hamradio: defer 6pack kfree after unregister_netdev Felix Kuehling drm/amdkfd: Use drm_priv to pass VM from KFD to amdgpu ------------- Diffstat: Makefile | 4 +- arch/arm/mach-davinci/board-da850-evm.c | 4 +- arch/arm64/kernel/alternative.c | 6 +- arch/arm64/kernel/cpuidle.c | 6 +- arch/x86/include/asm/kvm_host.h | 5 +- arch/x86/kvm/mmu/mmu.c | 20 +- arch/x86/kvm/x86.c | 20 +- drivers/acpi/processor_idle.c | 15 +- drivers/ata/libata-core.c | 3 + drivers/firmware/arm_scmi/clock.c | 3 +- drivers/gpio/gpiolib-acpi.c | 4 +- drivers/gpu/drm/amd/amdgpu/ObjectID.h | 1 + drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 10 +- drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 2 +- drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c | 2 + drivers/gpu/drm/amd/amdgpu/vcn_v3_0.c | 3 + drivers/gpu/drm/amd/amdkfd/kfd_device.c | 11 +- drivers/gpu/drm/amd/amdkfd/kfd_events.c | 2 + drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 3 +- drivers/gpu/drm/amd/display/dc/core/dc_resource.c | 4 +- .../drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c | 14 +- drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c | 14 +- .../amd/display/modules/info_packet/info_packet.c | 5 +- drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 2 +- drivers/gpu/drm/msm/dsi/dsi_manager.c | 2 +- drivers/gpu/drm/msm/msm_gem.c | 1 + drivers/gpu/ipu-v3/ipu-di.c | 5 +- drivers/hv/ring_buffer.c | 11 +- drivers/i2c/busses/i2c-pasemi.c | 6 + drivers/infiniband/ulp/iser/iscsi_iser.c | 2 + drivers/md/dm-historical-service-time.c | 10 +- drivers/md/dm-integrity.c | 7 +- drivers/media/platform/rockchip/rga/rga.c | 2 +- drivers/memory/atmel-ebi.c | 23 +- drivers/memory/renesas-rpc-if.c | 10 +- drivers/net/dsa/ocelot/felix_vsc9959.c | 2 +- drivers/net/ethernet/broadcom/genet/bcmgenet.c | 4 +- drivers/net/ethernet/mellanox/mlxsw/i2c.c | 1 + drivers/net/ethernet/micrel/Kconfig | 1 + drivers/net/ethernet/myricom/myri10ge/myri10ge.c | 6 +- drivers/net/ethernet/stmicro/stmmac/altr_tse_pcs.c | 8 - drivers/net/ethernet/stmicro/stmmac/altr_tse_pcs.h | 4 + .../net/ethernet/stmicro/stmmac/dwmac-socfpga.c | 13 +- drivers/net/ethernet/xilinx/xilinx_axienet_main.c | 13 +- drivers/net/hamradio/6pack.c | 5 +- drivers/net/mdio/mdio-bcm-unimac.c | 16 +- drivers/net/mdio/mdio-bitbang.c | 4 +- drivers/net/mdio/mdio-cavium.c | 2 +- drivers/net/mdio/mdio-gpio.c | 10 +- drivers/net/mdio/mdio-ipq4019.c | 4 +- drivers/net/mdio/mdio-ipq8064.c | 4 +- drivers/net/mdio/mdio-mscc-miim.c | 8 +- drivers/net/mdio/mdio-mux-bcm-iproc.c | 10 +- drivers/net/mdio/mdio-mux-gpio.c | 8 +- drivers/net/mdio/mdio-mux-mmioreg.c | 6 +- drivers/net/mdio/mdio-mux-multiplexer.c | 2 +- drivers/net/mdio/mdio-mux.c | 6 +- drivers/net/mdio/mdio-octeon.c | 8 +- drivers/net/mdio/mdio-thunder.c | 10 +- drivers/net/mdio/mdio-xgene.c | 6 +- drivers/net/mdio/of_mdio.c | 10 +- drivers/net/slip/slip.c | 2 +- drivers/net/usb/aqc111.c | 9 +- drivers/net/veth.c | 2 +- drivers/net/wireless/ath/ath9k/main.c | 2 +- drivers/net/wireless/ath/ath9k/xmit.c | 33 +- drivers/perf/fsl_imx8_ddr_perf.c | 2 +- drivers/regulator/wm8994-regulator.c | 42 +- drivers/scsi/be2iscsi/be_iscsi.c | 19 +- drivers/scsi/be2iscsi/be_main.c | 1 + drivers/scsi/bnx2i/bnx2i_iscsi.c | 24 +- drivers/scsi/cxgbi/cxgb3i/cxgb3i.c | 1 + drivers/scsi/cxgbi/cxgb4i/cxgb4i.c | 1 + drivers/scsi/cxgbi/libcxgbi.c | 12 +- drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c | 2 +- drivers/scsi/libiscsi.c | 70 ++- drivers/scsi/lpfc/lpfc_init.c | 2 + drivers/scsi/megaraid/megaraid_sas.h | 3 + drivers/scsi/megaraid/megaraid_sas_base.c | 7 + drivers/scsi/mvsas/mv_init.c | 1 + drivers/scsi/pm8001/pm80xx_hwi.c | 33 +- drivers/scsi/qedi/qedi_iscsi.c | 26 +- drivers/scsi/qla4xxx/ql4_os.c | 2 + drivers/scsi/scsi_transport_iscsi.c | 541 +++++++++++++-------- drivers/target/target_core_user.c | 3 +- fs/btrfs/block-group.c | 4 - fs/btrfs/disk-io.c | 5 +- fs/btrfs/file.c | 13 +- fs/btrfs/inode.c | 1 - fs/btrfs/volumes.c | 2 + fs/cifs/link.c | 3 + include/asm-generic/tlb.h | 10 +- include/net/ax25.h | 12 + include/net/flow_dissector.h | 2 + include/scsi/libiscsi.h | 1 + include/scsi/scsi_transport_iscsi.h | 14 +- include/trace/events/sunrpc.h | 7 +- kernel/dma/direct.h | 3 +- kernel/irq/affinity.c | 5 +- kernel/smp.c | 2 +- kernel/time/tick-sched.c | 2 +- kernel/time/timer.c | 11 +- mm/kmemleak.c | 8 +- mm/page_alloc.c | 2 +- mm/page_io.c | 54 -- net/ax25/af_ax25.c | 38 +- net/ax25/ax25_dev.c | 28 +- net/ax25/ax25_route.c | 13 +- net/ax25/ax25_subr.c | 20 +- net/core/flow_dissector.c | 1 + net/ipv6/ip6_output.c | 2 +- net/nfc/nci/core.c | 4 + net/sched/cls_api.c | 2 +- net/sched/cls_flower.c | 18 +- net/sched/sch_taprio.c | 3 +- net/sctp/socket.c | 2 +- net/smc/smc_pnet.c | 5 +- net/wireless/nl80211.c | 3 +- net/wireless/scan.c | 2 + scripts/gcc-plugins/latent_entropy_plugin.c | 44 +- sound/core/pcm_misc.c | 2 +- sound/pci/hda/patch_realtek.c | 2 + tools/perf/util/parse-events.c | 5 +- tools/testing/selftests/mqueue/mq_perf_tests.c | 25 +- virt/kvm/kvm_main.c | 10 +- 125 files changed, 1062 insertions(+), 581 deletions(-)