1. 16 Dec, 2020 1 commit
  2. 19 Nov, 2020 1 commit
    • Qinglang Miao's avatar
      ipmi: msghandler: Suppress suspicious RCU usage warning · 368ffd9a
      Qinglang Miao authored
      while running ipmi, ipmi_smi_watcher_register() caused
      a suspicious RCU usage warning.
      
      -----
      
      =============================
      WARNING: suspicious RCU usage
      5.10.0-rc3+ #1 Not tainted
      -----------------------------
      drivers/char/ipmi/ipmi_msghandler.c:750 RCU-list traversed in non-reader section!!
      other info that might help us debug this:
      rcu_scheduler_active = 2, debug_locks = 1
      2 locks held by syz-executor.0/4254:
      stack backtrace:
      CPU: 0 PID: 4254 Comm: syz-executor.0 Not tainted 5.10.0-rc3+ #1
      Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.13.0-1ubuntu1 04/ 01/2014
      Call Trace:
      dump_stack+0x19d/0x200
      ipmi_smi_watcher_register+0x2d3/0x340 [ipmi_msghandler]
      acpi_ipmi_init+0xb1/0x1000 [acpi_ipmi]
      do_one_initcall+0x149/0x7e0
      do_init_module+0x1ef/0x700
      load_module+0x3467/0x4140
      __do_sys_finit_module+0x10d/0x1a0
      do_syscall_64+0x34/0x80
      entry_SYSCALL_64_after_hwframe+0x44/0xa9
      RIP: 0033:0x468ded
      
      -----
      
      It is safe because smi_watchers_mutex is locked and srcu_read_lock
      has been used, so simply pass lockdep_is_held() to the
      list_for_each_entry_rcu() to suppress this warning.
      Reported-by: default avatarHulk Robot <hulkci@huawei.com>
      Signed-off-by: default avatarQinglang Miao <miaoqinglang@huawei.com>
      Message-Id: <20201119070839.381-1-miaoqinglang@huawei.com>
      Signed-off-by: default avatarCorey Minyard <cminyard@mvista.com>
      368ffd9a
  3. 17 Nov, 2020 1 commit
  4. 27 Oct, 2020 1 commit
  5. 16 Oct, 2020 1 commit
    • Linus Torvalds's avatar
      Merge tag 'net-next-5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next · 9ff9b0d3
      Linus Torvalds authored
      Pull networking updates from Jakub Kicinski:
      
       - Add redirect_neigh() BPF packet redirect helper, allowing to limit
         stack traversal in common container configs and improving TCP
         back-pressure.
      
         Daniel reports ~10Gbps => ~15Gbps single stream TCP performance gain.
      
       - Expand netlink policy support and improve policy export to user
         space. (Ge)netlink core performs request validation according to
         declared policies. Expand the expressiveness of those policies
         (min/max length and bitmasks). Allow dumping policies for particular
         commands. This is used for feature discovery by user space (instead
         of kernel version parsing or trial and error).
      
       - Support IGMPv3/MLDv2 multicast listener discovery protocols in
         bridge.
      
       - Allow more than 255 IPv4 multicast interfaces.
      
       - Add support for Type of Service (ToS) reflection in SYN/SYN-ACK
         packets of TCPv6.
      
       - In Multi-patch TCP (MPTCP) support concurrent transmission of data on
         multiple subflows in a load balancing scenario. Enhance advertising
         addresses via the RM_ADDR/ADD_ADDR options.
      
       - Support SMC-Dv2 version of SMC, which enables multi-subnet
         deployments.
      
       - Allow more calls to same peer in RxRPC.
      
       - Support two new Controller Area Network (CAN) protocols - CAN-FD and
         ISO 15765-2:2016.
      
       - Add xfrm/IPsec compat layer, solving the 32bit user space on 64bit
         kernel problem.
      
       - Add TC actions for implementing MPLS L2 VPNs.
      
       - Improve nexthop code - e.g. handle various corner cases when nexthop
         objects are removed from groups better, skip unnecessary
         notifications and make it easier to offload nexthops into HW by
         converting to a blocking notifier.
      
       - Support adding and consuming TCP header options by BPF programs,
         opening the doors for easy experimental and deployment-specific TCP
         option use.
      
       - Reorganize TCP congestion control (CC) initialization to simplify
         life of TCP CC implemented in BPF.
      
       - Add support for shipping BPF programs with the kernel and loading
         them early on boot via the User Mode Driver mechanism, hence reusing
         all the user space infra we have.
      
       - Support sleepable BPF programs, initially targeting LSM and tracing.
      
       - Add bpf_d_path() helper for returning full path for given 'struct
         path'.
      
       - Make bpf_tail_call compatible with bpf-to-bpf calls.
      
       - Allow BPF programs to call map_update_elem on sockmaps.
      
       - Add BPF Type Format (BTF) support for type and enum discovery, as
         well as support for using BTF within the kernel itself (current use
         is for pretty printing structures).
      
       - Support listing and getting information about bpf_links via the bpf
         syscall.
      
       - Enhance kernel interfaces around NIC firmware update. Allow
         specifying overwrite mask to control if settings etc. are reset
         during update; report expected max time operation may take to users;
         support firmware activation without machine reboot incl. limits of
         how much impact reset may have (e.g. dropping link or not).
      
       - Extend ethtool configuration interface to report IEEE-standard
         counters, to limit the need for per-vendor logic in user space.
      
       - Adopt or extend devlink use for debug, monitoring, fw update in many
         drivers (dsa loop, ice, ionic, sja1105, qed, mlxsw, mv88e6xxx,
         dpaa2-eth).
      
       - In mlxsw expose critical and emergency SFP module temperature alarms.
         Refactor port buffer handling to make the defaults more suitable and
         support setting these values explicitly via the DCBNL interface.
      
       - Add XDP support for Intel's igb driver.
      
       - Support offloading TC flower classification and filtering rules to
         mscc_ocelot switches.
      
       - Add PTP support for Marvell Octeontx2 and PP2.2 hardware, as well as
         fixed interval period pulse generator and one-step timestamping in
         dpaa-eth.
      
       - Add support for various auth offloads in WiFi APs, e.g. SAE (WPA3)
         offload.
      
       - Add Lynx PHY/PCS MDIO module, and convert various drivers which have
         this HW to use it. Convert mvpp2 to split PCS.
      
       - Support Marvell Prestera 98DX3255 24-port switch ASICs, as well as
         7-port Mediatek MT7531 IP.
      
       - Add initial support for QCA6390 and IPQ6018 in ath11k WiFi driver,
         and wcn3680 support in wcn36xx.
      
       - Improve performance for packets which don't require much offloads on
         recent Mellanox NICs by 20% by making multiple packets share a
         descriptor entry.
      
       - Move chelsio inline crypto drivers (for TLS and IPsec) from the
         crypto subtree to drivers/net. Move MDIO drivers out of the phy
         directory.
      
       - Clean up a lot of W=1 warnings, reportedly the actively developed
         subsections of networking drivers should now build W=1 warning free.
      
       - Make sure drivers don't use in_interrupt() to dynamically adapt their
         code. Convert tasklets to use new tasklet_setup API (sadly this
         conversion is not yet complete).
      
      * tag 'net-next-5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next: (2583 commits)
        Revert "bpfilter: Fix build error with CONFIG_BPFILTER_UMH"
        net, sockmap: Don't call bpf_prog_put() on NULL pointer
        bpf, selftest: Fix flaky tcp_hdr_options test when adding addr to lo
        bpf, sockmap: Add locking annotations to iterator
        netfilter: nftables: allow re-computing sctp CRC-32C in 'payload' statements
        net: fix pos incrementment in ipv6_route_seq_next
        net/smc: fix invalid return code in smcd_new_buf_create()
        net/smc: fix valid DMBE buffer sizes
        net/smc: fix use-after-free of delayed events
        bpfilter: Fix build error with CONFIG_BPFILTER_UMH
        cxgb4/ch_ipsec: Replace the module name to ch_ipsec from chcr
        net: sched: Fix suspicious RCU usage while accessing tcf_tunnel_info
        bpf: Fix register equivalence tracking.
        rxrpc: Fix loss of final ack on shutdown
        rxrpc: Fix bundle counting for exclusive connections
        netfilter: restore NF_INET_NUMHOOKS
        ibmveth: Identify ingress large send packets.
        ibmveth: Switch order of ibmveth_helper calls.
        cxgb4: handle 4-tuple PEDIT to NAT mode translation
        selftests: Add VRF route leaking tests
        ...
      9ff9b0d3
  6. 15 Oct, 2020 35 commits
    • Linus Torvalds's avatar
      Merge tag 'integrity-v5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/zohar/linux-integrity · 840e5bb3
      Linus Torvalds authored
      Pull integrity updates from Mimi Zohar:
       "Continuing IMA policy rule cleanup and validation in particular for
        measuring keys, adding/removing/updating informational and error
        messages (e.g. "ima_appraise" boot command line option), and other bug
        fixes (e.g. minimal data size validation before use, return code and
        NULL pointer checking)"
      
      * tag 'integrity-v5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/zohar/linux-integrity:
        ima: Fix NULL pointer dereference in ima_file_hash
        evm: Check size of security.evm before using it
        ima: Remove semicolon at the end of ima_get_binary_runtime_size()
        ima: Don't ignore errors from crypto_shash_update()
        ima: Use kmemdup rather than kmalloc+memcpy
        integrity: include keyring name for unknown key request
        ima: limit secure boot feedback scope for appraise
        integrity: invalid kernel parameters feedback
        ima: add check for enforced appraise option
        integrity: Use current_uid() in integrity_audit_message()
        ima: Fail rule parsing when asymmetric key measurement isn't supportable
        ima: Pre-parse the list of keyrings in a KEY_CHECK rule
      840e5bb3
    • Linus Torvalds's avatar
      Merge tag 'trace-v5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace · fefa636d
      Linus Torvalds authored
      Pull tracing updates from Steven Rostedt:
       "Updates for tracing and bootconfig:
      
         - Add support for "bool" type in synthetic events
      
         - Add per instance tracing for bootconfig
      
         - Support perf-style return probe ("SYMBOL%return") in kprobes and
           uprobes
      
         - Allow for kprobes to be enabled earlier in boot up
      
         - Added tracepoint helper function to allow testing if tracepoints
           are enabled in headers
      
         - Synthetic events can now have dynamic strings (variable length)
      
         - Various fixes and cleanups"
      
      * tag 'trace-v5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: (58 commits)
        tracing: support "bool" type in synthetic trace events
        selftests/ftrace: Add test case for synthetic event syntax errors
        tracing: Handle synthetic event array field type checking correctly
        selftests/ftrace: Change synthetic event name for inter-event-combined test
        tracing: Add synthetic event error logging
        tracing: Check that the synthetic event and field names are legal
        tracing: Move is_good_name() from trace_probe.h to trace.h
        tracing: Don't show dynamic string internals in synthetic event description
        tracing: Fix some typos in comments
        tracing/boot: Add ftrace.instance.*.alloc_snapshot option
        tracing: Fix race in trace_open and buffer resize call
        tracing: Check return value of __create_val_fields() before using its result
        tracing: Fix synthetic print fmt check for use of __get_str()
        tracing: Remove a pointless assignment
        ftrace: ftrace_global_list is renamed to ftrace_ops_list
        ftrace: Format variable declarations of ftrace_allocate_records
        ftrace: Simplify the calculation of page number for ftrace_page->records
        ftrace: Simplify the dyn_ftrace->flags macro
        ftrace: Simplify the hash calculation
        ftrace: Use fls() to get the bits for dup_hash()
        ...
      fefa636d
    • Linus Torvalds's avatar
      Merge tag 'hyperv-next-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux · 2d0f6b0a
      Linus Torvalds authored
      Pull another Hyper-V update from Wei Liu:
       "One patch from Michael to get VMbus interrupt from ACPI DSDT"
      
      * tag 'hyperv-next-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux:
        Drivers: hv: vmbus: Add parsing of VMbus interrupt in ACPI DSDT
      2d0f6b0a
    • Linus Torvalds's avatar
      Merge branch 'parisc-5.10-1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux · 7286d2a3
      Linus Torvalds authored
      Pull parisc updates from Helge Deller:
      
       - Added fw_cfg support for parisc on qemu
      
       - Added font support in sti text console driver for byte- and word-mode
         ROMs
      
       - Switch to more fine grained lws locks and improve spinlock handling
      
       - Add ioread64_hi_lo() and iowrite64_hi_lo() to avoid 0-day linking
         errors
      
       - Mark pointers volatile in __xchg8(), __xchg32() and __xchg64() to
         help compiler
      
       - Header file cleanups, mostly removal of unused HP-UX compat defines
      
       - Drop one bit from our O_NONBLOCK define to become now 000200000
      
       - Add MAP_UNINITIALIZED define to avoid userspace compile errors
      
       - Drop CONFIG_IDE from defconfigs
      
       - Speed up synchronize_caches() on UP machines
      
       - Rewrite tlb flush threshold calculation
      
       - Comment fixes and cleanups
      
      * 'parisc-5.10-1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
        parisc/sticon: Add user font support
        parisc/sticon: Always register sticon console driver
        parisc: Add MAP_UNINITIALIZED define
        parisc: Improve spinlock handling
        parisc: Install vmlinuz instead of zImage file
        parisc: Rewrite tlb flush threshold calculation
        parisc: Switch to more fine grained lws locks
        parisc: Mark pointers volatile in __xchg8(), __xchg32() and __xchg64()
        parisc: Fix comments and enable interrupts later
        parisc: Add alternative patching to synchronize_caches define
        parisc: Add ioread64_hi_lo() and iowrite64_hi_lo()
        parisc: disable CONFIG_IDE in defconfigs
        parisc: Drop useless comments in uapi/asm/signal.h
        parisc: Define O_NONBLOCK to become 000200000
        parisc: Drop HP-UX specific fcntl and signal flags
        parisc: Avoid external interrupts when IPI finishes
        parisc: Add qemu fw_cfg interface
        fw_cfg: Add support for parisc architecture
      7286d2a3
    • Linus Torvalds's avatar
      Merge tag 'linux-kselftest-kunit-fixes-5.10-rc1' of... · 578a7155
      Linus Torvalds authored
      Merge tag 'linux-kselftest-kunit-fixes-5.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
      
      Pull Kunit updates from Shuah Khan:
       "Several kunit tool bug fixes in flag handling, run outside kernel
        tree, make errors, and generating results"
      
      * tag 'linux-kselftest-kunit-fixes-5.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
        kunit: tool: fix display of make errors
        kunit: tool: handle when .kunit exists but .kunitconfig does not
        kunit: tool: fix --alltests flag
        kunit: tool: allow generating test results in JSON
        kunit: tool: fix running kunit_tool from outside kernel tree
      578a7155
    • Linus Torvalds's avatar
      Merge tag 'linux-kselftest-next-5.10-rc1' of... · 0674324b
      Linus Torvalds authored
      Merge tag 'linux-kselftest-next-5.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
      
      Pull kselftest updates from Shuah Khan:
      
       - speed up headers_install done during selftest build
      
       - add generic make nesting support
      
       - add support to select individual tests:
      
         Selftests build/install generates run_kselftest.sh script to run
         selftests on a target system. Currently the script doesn't have
         support for selecting individual tests. Add support for it.
      
         With this enhancement, user can select test collections (or tests)
         individually. e.g:
      
            run_kselftest.sh -c seccomp -t timers:posix_timers -t timers:nanosleep
      
         Additionally adds a way to list all known tests with "-l", usage with
         "-h", and perform a dry run without running tests with "-n".
      
      * tag 'linux-kselftest-next-5.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
        doc: dev-tools: kselftest.rst: Update examples and paths
        selftests/run_kselftest.sh: Make each test individually selectable
        selftests: Extract run_kselftest.sh and generate stand-alone test list
        selftests: Add missing gitignore entries
        selftests: more general make nesting support
        selftests: use "$(MAKE)" instead of "make" for headers_install
      0674324b
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial · bbf62599
      Linus Torvalds authored
      Pull trivial updates from Jiri Kosina:
       "The latest advances in computer science from the trivial queue"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial:
        xtensa: fix Kconfig typo
        spelling.txt: Remove some duplicate entries
        mtd: rawnand: oxnas: cleanup/simplify code
        selftests: vm: add fragment CONFIG_GUP_BENCHMARK
        perf: Fix opt help text for --no-bpf-event
        HID: logitech-dj: Fix spelling in comment
        bootconfig: Fix kernel message mentioning CONFIG_BOOT_CONFIG
        MAINTAINERS: rectify MMP SUPPORT after moving cputype.h
        scif: Fix spelling of EACCES
        printk: fix global comment
        lib/bitmap.c: fix spello
        fs: Fix missing 'bit' in comment
      bbf62599
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid · bf36c6b9
      Linus Torvalds authored
      Pull HID updates from Jiri Kosina:
      
       - Lenovo X1 Tablet support improvements from Mikael Wikström
      
       - "heartbeat" report fix for several Wacom devices from Jason Gerecke
      
       - bounds checking fix in hid-roccat from Dan Carpenter
      
       - stylus battery reporting fix from Dmitry Torokhov
      
       - i2c-hid support for wakeup from suspend-to-idle from Kai-Heng Feng
      
       - new driver for Vivaldi devices from Sean O'Brien
      
       - other assorted small fixes and device ID additions
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid:
        HID: i2c-hid: Enable wakeup capability from Suspend-to-Idle
        HID: add vivaldi HID driver
        HID: hid-input: fix stylus battery reporting
        HID: wacom: Avoid entering wacom_wac_pen_report for pad / battery
        HID: i2c-hid: fix kerneldoc warnings in i2c-hid-core.c
        HID: core: fix kerneldoc warnings in hid-core.c
        HID: multitouch: Lenovo X1 Tablet Gen2 trackpoint and buttons
        HID: multitouch: Lenovo X1 Tablet Gen3 trackpoint and buttons
        HID: alps: clean up indentation issue
        HID: intel-ish-hid: simplify the return expression of ishtp_bus_remove_device()
        HID: hid-debug: fix nonblocking read semantics wrt EIO/ERESTARTSYS
        HID: i2c-hid: Prefer asynchronous probe
        HID: ite: Add USB id match for Acer One S1003 keyboard dock
        HID: roccat: add bounds checking in kone_sysfs_write_settings()
        HID: wiimote: narrow spinlock range in wiimote_hid_event()
        HID: wiimote: make handlers[] const
        HID: apple: Add support for Matias wireless keyboard
        HID: cp2112: Use irqchip template
      bf36c6b9
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/livepatching/livepatching · 0cd7d979
      Linus Torvalds authored
      Pull livepatching update from Jiri Kosina:
       "livepatching kselftest output fix from Miroslav Benes"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/livepatching/livepatching:
        selftests/livepatch: Do not check order when using "comm" for dmesg checking
      0cd7d979
    • Linus Torvalds's avatar
      Merge tag 'dio_for_v5.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs · 4a165feb
      Linus Torvalds authored
      Pull direct-io fix from Jan Kara:
       "Fix for unaligned direct IO read past EOF in legacy DIO code"
      
      * tag 'dio_for_v5.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
        direct-io: defer alignment check until after the EOF check
        direct-io: don't force writeback for reads beyond EOF
        direct-io: clean up error paths of do_blockdev_direct_IO
      4a165feb
    • Linus Torvalds's avatar
      Merge tag 'fs_for_v5.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs · b77a69b8
      Linus Torvalds authored
      Pull UDF, reiserfs, ext2, quota fixes from Jan Kara:
      
       - a couple of UDF fixes for issues found by syzbot fuzzing
      
       - a couple of reiserfs fixes for issues found by syzbot fuzzing
      
       - some minor ext2 cleanups
      
       - quota patches to support grace times beyond year 2038 for XFS quota
         APIs
      
      * tag 'fs_for_v5.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
        reiserfs: Fix oops during mount
        udf: Limit sparing table size
        udf: Remove pointless union in udf_inode_info
        udf: Avoid accessing uninitialized data on failed inode read
        quota: clear padding in v2r1_mem2diskdqb()
        reiserfs: Initialize inode keys properly
        udf: Fix memory leak when mounting
        udf: Remove redundant initialization of variable ret
        reiserfs: only call unlock_new_inode() if I_NEW
        ext2: Fix some kernel-doc warnings in balloc.c
        quota: Expand comment describing d_itimer
        quota: widen timestamps for the fs_disk_quota structure
        reiserfs: Fix memory leak in reiserfs_parse_options()
        udf: Use kvzalloc() in udf_sb_alloc_bitmap()
        ext2: remove duplicate include
      b77a69b8
    • Linus Torvalds's avatar
      Merge tag 'configfs-5.10' of git://git.infradead.org/users/hch/configfs · ca5387e4
      Linus Torvalds authored
      Pull configfs updates from Christoph Hellwig:
       "Various cleanups for the configfs samples (Bartosz Golaszewski)"
      
      * tag 'configfs-5.10' of git://git.infradead.org/users/hch/configfs:
        samples: configfs: prefer pr_err() over bare printk(KERN_ERR
        samples: configfs: don't use spaces before tabs
        samples: configfs: consolidate local variables of the same type
        samples: configfs: don't reinitialize variables which are already zeroed
        samples: configfs: replace simple_strtoul() with kstrtoint()
        samples: configfs: fix alignment in item struct
        samples: configfs: drop unnecessary ternary operators
        samples: configfs: remove redundant newlines
        MAINTAINERS: add the sample directory to the configfs entry
      ca5387e4
    • Linus Torvalds's avatar
      Merge tag 'dma-mapping-5.10' of git://git.infradead.org/users/hch/dma-mapping · 5a32c341
      Linus Torvalds authored
      Pull dma-mapping updates from Christoph Hellwig:
      
       - rework the non-coherent DMA allocator
      
       - move private definitions out of <linux/dma-mapping.h>
      
       - lower CMA_ALIGNMENT (Paul Cercueil)
      
       - remove the omap1 dma address translation in favor of the common code
      
       - make dma-direct aware of multiple dma offset ranges (Jim Quinlan)
      
       - support per-node DMA CMA areas (Barry Song)
      
       - increase the default seg boundary limit (Nicolin Chen)
      
       - misc fixes (Robin Murphy, Thomas Tai, Xu Wang)
      
       - various cleanups
      
      * tag 'dma-mapping-5.10' of git://git.infradead.org/users/hch/dma-mapping: (63 commits)
        ARM/ixp4xx: add a missing include of dma-map-ops.h
        dma-direct: simplify the DMA_ATTR_NO_KERNEL_MAPPING handling
        dma-direct: factor out a dma_direct_alloc_from_pool helper
        dma-direct check for highmem pages in dma_direct_alloc_pages
        dma-mapping: merge <linux/dma-noncoherent.h> into <linux/dma-map-ops.h>
        dma-mapping: move large parts of <linux/dma-direct.h> to kernel/dma
        dma-mapping: move dma-debug.h to kernel/dma/
        dma-mapping: remove <asm/dma-contiguous.h>
        dma-mapping: merge <linux/dma-contiguous.h> into <linux/dma-map-ops.h>
        dma-contiguous: remove dma_contiguous_set_default
        dma-contiguous: remove dev_set_cma_area
        dma-contiguous: remove dma_declare_contiguous
        dma-mapping: split <linux/dma-mapping.h>
        cma: decrease CMA_ALIGNMENT lower limit to 2
        firewire-ohci: use dma_alloc_pages
        dma-iommu: implement ->alloc_noncoherent
        dma-mapping: add new {alloc,free}_noncoherent dma_map_ops methods
        dma-mapping: add a new dma_alloc_pages API
        dma-mapping: remove dma_cache_sync
        53c700: convert to dma_alloc_noncoherent
        ...
      5a32c341
    • Linus Torvalds's avatar
      Merge tag 'dmaengine-5.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine · f065199d
      Linus Torvalds authored
      Pull dmaengine updates from Vinod Koul:
       "Core:
      
         - Mark dma_request_slave_channel() deprecated in favour of
           dma_request_chan()
      
         - subsystem conversion for tasklet_setup() API
      
         - subsystem removal of local dma_parms for arm drivers
      
        Also updates to bunch of driver notably TI, DW and AXI-DMAC"
      
      * tag 'dmaengine-5.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine: (104 commits)
        dmaengine: owl-dma: fix kernel-doc style for enum
        dmaengine: zynqmp_dma: fix kernel-doc style for tasklet
        dmaengine: xilinx_dma: fix kernel-doc style for tasklet
        dmaengine: qcom: bam_dma: fix kernel-doc style for tasklet
        dmaengine: altera-msgdma: fix kernel-doc style for tasklet
        dmaengine: xilinx: dpdma: convert tasklets to use new tasklet_setup() API
        dmaengine: sf-pdma: convert tasklets to use new tasklet_setup() API
        dt-bindings: Fix 'reg' size issues in zynqmp examples
        dmaengine: rcar-dmac: drop double zeroing
        dmaengine: sh: drop double zeroing
        dmaengine: ioat: Allocate correct size for descriptor chunk
        dmaengine: ti: k3-udma: use devm_platform_ioremap_resource_byname
        dmaengine: fsl: remove bad channel update
        dmaengine: dma-jz4780: Fix race in jz4780_dma_tx_status
        dmaengine: pl330: fix argument for tasklet
        dmaengine: dmatest: Return boolean result directly in filter()
        dmaengine: dmatest: Check list for emptiness before access its last entry
        dmaengine: ti: k3-udma-glue: fix channel enable functions
        dmaengine: iop-adma: Fix pointer cast warnings
        dmaengine: dw-edma: Fix Using plain integer as NULL pointer in dw-edma-v0-debugfs.c
        ...
      f065199d
    • Jakub Kicinski's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next · 105faa87
      Jakub Kicinski authored
      Daniel Borkmann says:
      
      ====================
      pull-request: bpf-next 2020-10-15
      
      The main changes are:
      
      1) Fix register equivalence tracking in verifier, from Alexei Starovoitov.
      
      2) Fix sockmap error path to not call bpf_prog_put() with NULL, from Alex Dewar.
      
      3) Fix sockmap to add locking annotations to iterator, from Lorenz Bauer.
      
      4) Fix tcp_hdr_options test to use loopback address, from Martin KaFai Lau.
      ====================
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      105faa87
    • Jakub Kicinski's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net · 2295cddf
      Jakub Kicinski authored
      Minor conflicts in net/mptcp/protocol.h and
      tools/testing/selftests/net/Makefile.
      
      In both cases code was added on both sides in the same place
      so just keep both.
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      2295cddf
    • Jakub Kicinski's avatar
      Revert "bpfilter: Fix build error with CONFIG_BPFILTER_UMH" · 2ecbc1f6
      Jakub Kicinski authored
      This reverts commit 1d273fcc.
      
      Alexei points out there's nothing implying headers will be built
      and therefore exist under usr/include, so this fix doesn't make
      much sense.
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      2ecbc1f6
    • Alex Dewar's avatar
      net, sockmap: Don't call bpf_prog_put() on NULL pointer · 83c11c17
      Alex Dewar authored
      If bpf_prog_inc_not_zero() fails for skb_parser, then bpf_prog_put() is
      called unconditionally on skb_verdict, even though it may be NULL. Fix
      and tidy up error path.
      
      Fixes: 743df8b7 ("bpf, sockmap: Check skb_verdict and skb_parser programs explicitly")
      Addresses-Coverity-ID: 1497799: Null pointer dereferences (FORWARD_NULL)
      Signed-off-by: default avatarAlex Dewar <alex.dewar90@gmail.com>
      Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
      Acked-by: default avatarJakub Sitnicki <jakub@cloudflare.com>
      Acked-by: default avatarJohn Fastabend <john.fastabend@gmail.com>
      Link: https://lore.kernel.org/bpf/20201012170952.60750-1-alex.dewar90@gmail.com
      83c11c17
    • Martin KaFai Lau's avatar
      bpf, selftest: Fix flaky tcp_hdr_options test when adding addr to lo · 8a3feed9
      Martin KaFai Lau authored
      The tcp_hdr_options test adds a "::eB9F" addr to the lo dev.
      However, this non loopback address will have a race on ipv6 dad
      which may lead to EADDRNOTAVAIL error from time to time.
      
      Even nodad is used in the iproute2 command, there is still a race in
      when the route will be added.  This will then lead to ENETUNREACH from
      time to time.
      
      To avoid the above, this patch uses the default loopback address "::1"
      to do the test.
      
      Fixes: ad2f8eb0 ("bpf: selftests: Tcp header options")
      Reported-by: default avatarAndrii Nakryiko <andriin@fb.com>
      Signed-off-by: default avatarMartin KaFai Lau <kafai@fb.com>
      Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
      Acked-by: default avatarAndrii Nakryiko <andrii@kernel.org>
      Link: https://lore.kernel.org/bpf/20201012234940.1707941-1-kafai@fb.com
      8a3feed9
    • Lorenz Bauer's avatar
      bpf, sockmap: Add locking annotations to iterator · f58423ae
      Lorenz Bauer authored
      The sparse checker currently outputs the following warnings:
      
          include/linux/rcupdate.h:632:9: sparse: sparse: context imbalance in 'sock_hash_seq_start' - wrong count at exit
          include/linux/rcupdate.h:632:9: sparse: sparse: context imbalance in 'sock_map_seq_start' - wrong count at exit
      
      Add the necessary __acquires and __release annotations to make the
      iterator locking schema palatable to sparse. Also add __must_hold
      for good measure.
      
      The kernel codebase uses both __acquires(rcu) and __acquires(RCU).
      I couldn't find any guidance which one is preferred, so I used
      what is easier to type out.
      
      Fixes: 03653515 ("net: Allow iterating sockmap and sockhash")
      Reported-by: default avatarkernel test robot <lkp@intel.com>
      Signed-off-by: default avatarLorenz Bauer <lmb@cloudflare.com>
      Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
      Acked-by: default avatarJohn Fastabend <john.fastabend@gmail.com>
      Acked-by: default avatarJakub Sitnicki <jakub@cloudflare.com>
      Link: https://lore.kernel.org/bpf/20201012091850.67452-1-lmb@cloudflare.com
      f58423ae
    • Jiri Kosina's avatar
      Merge branch 'for-5.10/i2c-hid' into for-linus · 3504e85c
      Jiri Kosina authored
      - i2c-hid support for wakeup from suspend-to-idle
      3504e85c
    • Kai-Heng Feng's avatar
      HID: i2c-hid: Enable wakeup capability from Suspend-to-Idle · 203c38fb
      Kai-Heng Feng authored
      Many laptops can be woken up from Suspend-to-Idle by touchpad. This is
      also the default behavior on other OSes.
      
      However, if touchpad and touchscreen contact to each other when lid is
      closed, wakeup events can be triggered inadventertly.
      
      So let's disable the wakeup by default, but enable the wakeup capability
      so users can enable it at their own discretion.
      Signed-off-by: default avatarKai-Heng Feng <kai.heng.feng@canonical.com>
      Reviewed-by: default avatarHans de Goede <hdegoede@redhat.com>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      203c38fb
    • Davide Caratti's avatar
      netfilter: nftables: allow re-computing sctp CRC-32C in 'payload' statements · 346e320c
      Davide Caratti authored
      nftables payload statements are used to mangle SCTP headers, but they can
      only replace the Internet Checksum. As a consequence, nftables rules that
      mangle sport/dport/vtag in SCTP headers potentially generate packets that
      are discarded by the receiver, unless the CRC-32C is "offloaded" (e.g the
      rule mangles a skb having 'ip_summed' equal to 'CHECKSUM_PARTIAL'.
      
      Fix this extending uAPI definitions and L4 checksum update function, in a
      way that userspace programs (e.g. nft) can instruct the kernel to compute
      CRC-32C in SCTP headers. Also ensure that LIBCRC32C is built if NF_TABLES
      is 'y' or 'm' in the kernel build configuration.
      Signed-off-by: default avatarDavide Caratti <dcaratti@redhat.com>
      Signed-off-by: default avatarFlorian Westphal <fw@strlen.de>
      Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      346e320c
    • Jiri Kosina's avatar
      Merge branch 'for-5.9/upstream-fixes' into for-linus · 9b14b066
      Jiri Kosina authored
      - "heartbeat" report fix for several Wacom devices
      - Lenovo X1 Tablet support improvements
      - new device IDs
      - bounds checking fix in hid-roccat
      - stylus battery reporting fix
      9b14b066
    • Jiri Kosina's avatar
      Merge branch 'for-5.10/wiimote' into for-linus · 146f9d91
      Jiri Kosina authored
      - code cleanups for hid-wiimote
      146f9d91
    • Jiri Kosina's avatar
      Merge branch 'for-5.10/vivaldi' into for-linus · df975502
      Jiri Kosina authored
      - driver for Vivaldi devices (keyboards which provide vendor-defined (Google)
        usages in their descriptor)
      df975502
    • Jiri Kosina's avatar
      Merge branch 'for-5.10/intel-ish-hid' into for-linus · d61a5d63
      Jiri Kosina authored
      - intel-ish-hid code cleanup
      d61a5d63
    • Jiri Kosina's avatar
      Merge branch 'for-5.10/i2c-hid' into for-linus · 1341c586
      Jiri Kosina authored
      - prefer async probing in i2c-hid even if built-in
      1341c586
    • Jiri Kosina's avatar
      Merge branch 'for-5.10/cp2112' into for-linus · 1142a12c
      Jiri Kosina authored
      - make cp2112 driver use irqchip template properly
      1142a12c
    • Jiri Kosina's avatar
      Merge branch 'for-5.10/core' into for-linus · 62b31a04
      Jiri Kosina authored
      - nonblocking read semantics fix for hid-debug
      62b31a04
    • Jiri Kosina's avatar
      Merge branch 'for-5.10/apple' into for-linus · cc51d171
      Jiri Kosina authored
      - support for Matias wireless (identifies itself as ISO RevB Alu)
      cc51d171
    • Jakub Kicinski's avatar
      Merge tag 'rxrpc-next-20201015' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs · 54086c5a
      Jakub Kicinski authored
      David Howells says:
      
      ====================
      rxrpc fixes
      
      Here are a couple of fixes that need to be applied on top of rxrpc patches
      in net-next:
      
       (1) Fix a bug in the connection bundle changes in the net-next tree.
      
       (2) Fix the loss of final ACK on socket shutdown.
      ====================
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      54086c5a
    • Linus Torvalds's avatar
      Merge tag 'sound-5.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · c48b75b7
      Linus Torvalds authored
      Pull sound updates from Takashi Iwai:
       "The amount of changes is smaller at this round (what a surprise), but
        lots of activity is seen. Most of changes are about ASoC driver
        development, especially Intel platforms. Here are some highlights:
      
        General:
         - Replace all tasklet usages with other alternatives
         - Cleanup of the ASoC error unwinding code
         - Fixes for trivial issues caught by static checker
         - Spell fixes allover the places
      
        ALSA Core:
         - Lockdep fix for control devices
         - Fix for potential OSS sequencer mutex stalls
      
        HD-audio and USB-audio:
         - SoundBlaster AE-7 support
         - Changes in quirk table for the rename handling
         - Quirks for HP and ASUS machines, Pioneer DJ DJM-250MK2.
      
        ASoC:
         - Lots of updates for Intel SOF and SoundWire enablement
         - Replacement of the DSP driver for some older x86 systems; the new
           code was written from scratch, better maintenance expected
         - Helpers for parsing auxiluary devices from the device tree
         - New support for AllWinner A64, Cirrus Logic CS4234, Mediatek MT6359
           Microchip S/PDIF TX and RX controllers, Realtek RT1015P, and Texas
           Instruments J721E, TAS2110, TAS2564 and TAS2764"
      
      * tag 'sound-5.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (498 commits)
        ALSA: hda/hdmi: fix incorrect locking in hdmi_pcm_close
        ALSA: hda: fix jack detection with Realtek codecs when in D3
        ALSA: fireworks: use semicolons rather than commas to separate statements
        ALSA: hda: use semicolons rather than commas to separate statements
        ALSA: hda/i915 - fix list corruption with concurrent probes
        ASoC: dmaengine: Document support for TX only or RX only streams
        ASoC: mchp-spdiftx: remove 'TX' from playback stream name
        ASoC: ti: davinci-mcasp: Use &pdev->dev for early dev_warn
        ASoC: tas2764: Add the driver for the TAS2764
        dt-bindings: tas2764: Add the TAS2764 binding doc
        ASoC: Intel: catpt: Add explicit DMADEVICES kconfig dependency
        ASoC: Intel: catpt: Fix compilation when CONFIG_MODULES is disabled
        ASoC: stm32: dfsdm: add actual resolution trace
        ASoC: stm32: dfsdm: change rate limits
        ASoC: qcom: sc7180: Add support for audio over DP
        Asoc: qcom: lpass-platform : Increase buffer size
        ASoC: qcom: Add support for lpass hdmi driver
        Asoc: qcom: lpass:Update lpaif_dmactl members order
        Asoc:qcom:lpass-cpu:Update dts property read API
        ASoC: dt-bindings: Add dt binding for lpass hdmi
        ...
      c48b75b7
    • Linus Torvalds's avatar
      Merge tag 'drm-next-2020-10-15' of git://anongit.freedesktop.org/drm/drm · 93b694d0
      Linus Torvalds authored
      Pull drm updates from Dave Airlie:
       "Not a major amount of change, the i915 trees got split into display
        and gt trees to better facilitate higher level review, and there's a
        major refactoring of i915 GEM locking to use more core kernel concepts
        (like ww-mutexes). msm gets per-process pagetables, older AMD SI cards
        get DC support, nouveau got a bump in displayport support with common
        code extraction from i915.
      
        Outside of drm this contains a couple of patches for hexint
        moduleparams which you've acked, and a virtio common code tree that
        you should also get via it's regular path.
      
        New driver:
         - Cadence MHDP8546 DisplayPort bridge driver
      
        core:
         - cross-driver scatterlist cleanups
         - devm_drm conversions
         - remove drm_dev_init
         - devm_drm_dev_alloc conversion
      
        ttm:
         - lots of refactoring and cleanups
      
        bridges:
         - chained bridge support in more drivers
      
        panel:
         - misc new panels
      
        scheduler:
         - cleanup priority levels
      
        displayport:
         - refactor i915 code into helpers for nouveau
      
        i915:
         - split into display and GT trees
         - WW locking refactoring in GEM
         - execbuf2 extension mechanism
         - syncobj timeline support
         - GEN 12 HOBL display powersaving
         - Rocket Lake display additions
         - Disable FBC on Tigerlake
         - Tigerlake Type-C + DP improvements
         - Hotplug interrupt refactoring
      
        amdgpu:
         - Sienna Cichlid updates
         - Navy Flounder updates
         - DCE6 (SI) support for DC
         - Plane rotation enabled
         - TMZ state info ioctl
         - PCIe DPC recovery support
         - DC interrupt handling refactor
         - OLED panel fixes
      
        amdkfd:
         - add SMI events for thermal throttling
         - SMI interface events ioctl update
         - process eviction counters
      
        radeon:
         - move to dma_ for allocations
         - expose sclk via sysfs
      
        msm:
         - DSI support for sm8150/sm8250
         - per-process GPU pagetable support
         - Displayport support
      
        mediatek:
         - move HDMI phy driver to PHY
         - convert mtk-dpi to bridge API
         - disable mt2701 tmds
      
        tegra:
         - bridge support
      
        exynos:
         - misc cleanups
      
        vc4:
         - dual display cleanups
      
        ast:
         - cleanups
      
        gma500:
         - conversion to GPIOd API
      
        hisilicon:
         - misc reworks
      
        ingenic:
         - clock handling and format improvements
      
        mcde:
         - DSI support
      
        mgag200:
         - desktop g200 support
      
        mxsfb:
         - i.MX7 + i.MX8M
         - alpha plane support
      
        panfrost:
         - devfreq support
         - amlogic SoC support
      
        ps8640:
         - EDID from eDP retrieval
      
        tidss:
         - AM65xx YUV workaround
      
        virtio:
         - virtio-gpu exported resources
      
        rcar-du:
         - R8A7742, R8A774E1 and R8A77961 support
         - YUV planar format fixes
         - non-visible plane handling
         - VSP device reference count fix
         - Kconfig fix to avoid displaying disabled options in .config"
      
      * tag 'drm-next-2020-10-15' of git://anongit.freedesktop.org/drm/drm: (1494 commits)
        drm/ingenic: Fix bad revert
        drm/amdgpu: Fix invalid number of character '{' in amdgpu_acpi_init
        drm/amdgpu: Remove warning for virtual_display
        drm/amdgpu: kfd_initialized can be static
        drm/amd/pm: setup APU dpm clock table in SMU HW initialization
        drm/amdgpu: prevent spurious warning
        drm/amdgpu/swsmu: fix ARC build errors
        drm/amd/display: Fix OPTC_DATA_FORMAT programming
        drm/amd/display: Don't allow pstate if no support in blank
        drm/panfrost: increase readl_relaxed_poll_timeout values
        MAINTAINERS: Update entry for st7703 driver after the rename
        Revert "gpu/drm: ingenic: Add option to mmap GEM buffers cached"
        drm/amd/display: HDMI remote sink need mode validation for Linux
        drm/amd/display: Change to correct unit on audio rate
        drm/amd/display: Avoid set zero in the requested clk
        drm/amdgpu: align frag_end to covered address space
        drm/amdgpu: fix NULL pointer dereference for Renoir
        drm/vmwgfx: fix regression in thp code due to ttm init refactor.
        drm/amdgpu/swsmu: add interrupt work handler for smu11 parts
        drm/amdgpu/swsmu: add interrupt work function
        ...
      93b694d0
    • Yonghong Song's avatar
      net: fix pos incrementment in ipv6_route_seq_next · 6617dfd4
      Yonghong Song authored
      Commit 4fc427e0 ("ipv6_route_seq_next should increase position index")
      tried to fix the issue where seq_file pos is not increased
      if a NULL element is returned with seq_ops->next(). See bug
        https://bugzilla.kernel.org/show_bug.cgi?id=206283
      The commit effectively does:
        - increase pos for all seq_ops->start()
        - increase pos for all seq_ops->next()
      
      For ipv6_route, increasing pos for all seq_ops->next() is correct.
      But increasing pos for seq_ops->start() is not correct
      since pos is used to determine how many items to skip during
      seq_ops->start():
        iter->skip = *pos;
      seq_ops->start() just fetches the *current* pos item.
      The item can be skipped only after seq_ops->show() which essentially
      is the beginning of seq_ops->next().
      
      For example, I have 7 ipv6 route entries,
        root@arch-fb-vm1:~/net-next dd if=/proc/net/ipv6_route bs=4096
        00000000000000000000000000000000 40 00000000000000000000000000000000 00 00000000000000000000000000000000 00000400 00000001 00000000 00000001     eth0
        fe800000000000000000000000000000 40 00000000000000000000000000000000 00 00000000000000000000000000000000 00000100 00000001 00000000 00000001     eth0
        00000000000000000000000000000000 00 00000000000000000000000000000000 00 00000000000000000000000000000000 ffffffff 00000001 00000000 00200200       lo
        00000000000000000000000000000001 80 00000000000000000000000000000000 00 00000000000000000000000000000000 00000000 00000003 00000000 80200001       lo
        fe800000000000002050e3fffebd3be8 80 00000000000000000000000000000000 00 00000000000000000000000000000000 00000000 00000002 00000000 80200001     eth0
        ff000000000000000000000000000000 08 00000000000000000000000000000000 00 00000000000000000000000000000000 00000100 00000004 00000000 00000001     eth0
        00000000000000000000000000000000 00 00000000000000000000000000000000 00 00000000000000000000000000000000 ffffffff 00000001 00000000 00200200       lo
        0+1 records in
        0+1 records out
        1050 bytes (1.0 kB, 1.0 KiB) copied, 0.00707908 s, 148 kB/s
        root@arch-fb-vm1:~/net-next
      
      In the above, I specify buffer size 4096, so all records can be returned
      to user space with a single trip to the kernel.
      
      If I use buffer size 128, since each record size is 149, internally
      kernel seq_read() will read 149 into its internal buffer and return the data
      to user space in two read() syscalls. Then user read() syscall will trigger
      next seq_ops->start(). Since the current implementation increased pos even
      for seq_ops->start(), it will skip record #2, #4 and #6, assuming the first
      record is #1.
      
        root@arch-fb-vm1:~/net-next dd if=/proc/net/ipv6_route bs=128
        00000000000000000000000000000000 40 00000000000000000000000000000000 00 00000000000000000000000000000000 00000400 00000001 00000000 00000001     eth0
        00000000000000000000000000000000 00 00000000000000000000000000000000 00 00000000000000000000000000000000 ffffffff 00000001 00000000 00200200       lo
        fe800000000000002050e3fffebd3be8 80 00000000000000000000000000000000 00 00000000000000000000000000000000 00000000 00000002 00000000 80200001     eth0
        00000000000000000000000000000000 00 00000000000000000000000000000000 00 00000000000000000000000000000000 ffffffff 00000001 00000000 00200200       lo
      4+1 records in
      4+1 records out
      600 bytes copied, 0.00127758 s, 470 kB/s
      
      To fix the problem, create a fake pos pointer so seq_ops->start()
      won't actually increase seq_file pos. With this fix, the
      above `dd` command with `bs=128` will show correct result.
      
      Fixes: 4fc427e0 ("ipv6_route_seq_next should increase position index")
      Cc: Alexei Starovoitov <ast@kernel.org>
      Suggested-by: default avatarVasily Averin <vvs@virtuozzo.com>
      Reviewed-by: default avatarVasily Averin <vvs@virtuozzo.com>
      Signed-off-by: default avatarYonghong Song <yhs@fb.com>
      Acked-by: default avatarMartin KaFai Lau <kafai@fb.com>
      Acked-by: default avatarAndrii Nakryiko <andrii@kernel.org>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      6617dfd4