1. 06 Aug, 2019 1 commit
    • Hillf Danton's avatar
      HID: hiddev: avoid opening a disconnected device · 9c09b214
      Hillf Danton authored
      syzbot found the following crash on:
      
      HEAD commit:    e96407b4 usb-fuzzer: main usb gadget fuzzer driver
      git tree:       https://github.com/google/kasan.git usb-fuzzer
      console output: https://syzkaller.appspot.com/x/log.txt?x=147ac20c600000
      kernel config:  https://syzkaller.appspot.com/x/.config?x=792eb47789f57810
      dashboard link: https://syzkaller.appspot.com/bug?extid=62a1e04fd3ec2abf099e
      compiler:       gcc (GCC) 9.0.0 20181231 (experimental)
      
      ==================================================================
      BUG: KASAN: use-after-free in __lock_acquire+0x302a/0x3b50
      kernel/locking/lockdep.c:3753
      Read of size 8 at addr ffff8881cf591a08 by task syz-executor.1/26260
      
      CPU: 1 PID: 26260 Comm: syz-executor.1 Not tainted 5.3.0-rc2+ #24
      Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
      Google 01/01/2011
      Call Trace:
        __dump_stack lib/dump_stack.c:77 [inline]
        dump_stack+0xca/0x13e lib/dump_stack.c:113
        print_address_description+0x6a/0x32c mm/kasan/report.c:351
        __kasan_report.cold+0x1a/0x33 mm/kasan/report.c:482
        kasan_report+0xe/0x12 mm/kasan/common.c:612
        __lock_acquire+0x302a/0x3b50 kernel/locking/lockdep.c:3753
        lock_acquire+0x127/0x320 kernel/locking/lockdep.c:4412
        __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline]
        _raw_spin_lock_irqsave+0x32/0x50 kernel/locking/spinlock.c:159
        hiddev_release+0x82/0x520 drivers/hid/usbhid/hiddev.c:221
        __fput+0x2d7/0x840 fs/file_table.c:280
        task_work_run+0x13f/0x1c0 kernel/task_work.c:113
        exit_task_work include/linux/task_work.h:22 [inline]
        do_exit+0x8ef/0x2c50 kernel/exit.c:878
        do_group_exit+0x125/0x340 kernel/exit.c:982
        get_signal+0x466/0x23d0 kernel/signal.c:2728
        do_signal+0x88/0x14e0 arch/x86/kernel/signal.c:815
        exit_to_usermode_loop+0x1a2/0x200 arch/x86/entry/common.c:159
        prepare_exit_to_usermode arch/x86/entry/common.c:194 [inline]
        syscall_return_slowpath arch/x86/entry/common.c:274 [inline]
        do_syscall_64+0x45f/0x580 arch/x86/entry/common.c:299
        entry_SYSCALL_64_after_hwframe+0x49/0xbe
      RIP: 0033:0x459829
      Code: fd b7 fb ff c3 66 2e 0f 1f 84 00 00 00 00 00 66 90 48 89 f8 48 89 f7
      48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff
      ff 0f 83 cb b7 fb ff c3 66 2e 0f 1f 84 00 00 00 00
      RSP: 002b:00007f75b2a6ccf8 EFLAGS: 00000246 ORIG_RAX: 00000000000000ca
      RAX: fffffffffffffe00 RBX: 000000000075c078 RCX: 0000000000459829
      RDX: 0000000000000000 RSI: 0000000000000080 RDI: 000000000075c078
      RBP: 000000000075c070 R08: 0000000000000000 R09: 0000000000000000
      R10: 0000000000000000 R11: 0000000000000246 R12: 000000000075c07c
      R13: 00007ffcdfe1023f R14: 00007f75b2a6d9c0 R15: 000000000075c07c
      
      Allocated by task 104:
        save_stack+0x1b/0x80 mm/kasan/common.c:69
        set_track mm/kasan/common.c:77 [inline]
        __kasan_kmalloc mm/kasan/common.c:487 [inline]
        __kasan_kmalloc.constprop.0+0xbf/0xd0 mm/kasan/common.c:460
        kmalloc include/linux/slab.h:552 [inline]
        kzalloc include/linux/slab.h:748 [inline]
        hiddev_connect+0x242/0x5b0 drivers/hid/usbhid/hiddev.c:900
        hid_connect+0x239/0xbb0 drivers/hid/hid-core.c:1882
        hid_hw_start drivers/hid/hid-core.c:1981 [inline]
        hid_hw_start+0xa2/0x130 drivers/hid/hid-core.c:1972
        appleir_probe+0x13e/0x1a0 drivers/hid/hid-appleir.c:308
        hid_device_probe+0x2be/0x3f0 drivers/hid/hid-core.c:2209
        really_probe+0x281/0x650 drivers/base/dd.c:548
        driver_probe_device+0x101/0x1b0 drivers/base/dd.c:709
        __device_attach_driver+0x1c2/0x220 drivers/base/dd.c:816
        bus_for_each_drv+0x15c/0x1e0 drivers/base/bus.c:454
        __device_attach+0x217/0x360 drivers/base/dd.c:882
        bus_probe_device+0x1e4/0x290 drivers/base/bus.c:514
        device_add+0xae6/0x16f0 drivers/base/core.c:2114
        hid_add_device+0x33c/0x990 drivers/hid/hid-core.c:2365
        usbhid_probe+0xa81/0xfa0 drivers/hid/usbhid/hid-core.c:1386
        usb_probe_interface+0x305/0x7a0 drivers/usb/core/driver.c:361
        really_probe+0x281/0x650 drivers/base/dd.c:548
        driver_probe_device+0x101/0x1b0 drivers/base/dd.c:709
        __device_attach_driver+0x1c2/0x220 drivers/base/dd.c:816
        bus_for_each_drv+0x15c/0x1e0 drivers/base/bus.c:454
        __device_attach+0x217/0x360 drivers/base/dd.c:882
        bus_probe_device+0x1e4/0x290 drivers/base/bus.c:514
        device_add+0xae6/0x16f0 drivers/base/core.c:2114
        usb_set_configuration+0xdf6/0x1670 drivers/usb/core/message.c:2023
        generic_probe+0x9d/0xd5 drivers/usb/core/generic.c:210
        usb_probe_device+0x99/0x100 drivers/usb/core/driver.c:266
        really_probe+0x281/0x650 drivers/base/dd.c:548
        driver_probe_device+0x101/0x1b0 drivers/base/dd.c:709
        __device_attach_driver+0x1c2/0x220 drivers/base/dd.c:816
        bus_for_each_drv+0x15c/0x1e0 drivers/base/bus.c:454
        __device_attach+0x217/0x360 drivers/base/dd.c:882
        bus_probe_device+0x1e4/0x290 drivers/base/bus.c:514
        device_add+0xae6/0x16f0 drivers/base/core.c:2114
        usb_new_device.cold+0x6a4/0xe79 drivers/usb/core/hub.c:2536
        hub_port_connect drivers/usb/core/hub.c:5098 [inline]
        hub_port_connect_change drivers/usb/core/hub.c:5213 [inline]
        port_event drivers/usb/core/hub.c:5359 [inline]
        hub_event+0x1b5c/0x3640 drivers/usb/core/hub.c:5441
        process_one_work+0x92b/0x1530 kernel/workqueue.c:2269
        worker_thread+0x96/0xe20 kernel/workqueue.c:2415
        kthread+0x318/0x420 kernel/kthread.c:255
        ret_from_fork+0x24/0x30 arch/x86/entry/entry_64.S:352
      
      Freed by task 104:
        save_stack+0x1b/0x80 mm/kasan/common.c:69
        set_track mm/kasan/common.c:77 [inline]
        __kasan_slab_free+0x130/0x180 mm/kasan/common.c:449
        slab_free_hook mm/slub.c:1423 [inline]
        slab_free_freelist_hook mm/slub.c:1470 [inline]
        slab_free mm/slub.c:3012 [inline]
        kfree+0xe4/0x2f0 mm/slub.c:3953
        hiddev_connect.cold+0x45/0x5c drivers/hid/usbhid/hiddev.c:914
        hid_connect+0x239/0xbb0 drivers/hid/hid-core.c:1882
        hid_hw_start drivers/hid/hid-core.c:1981 [inline]
        hid_hw_start+0xa2/0x130 drivers/hid/hid-core.c:1972
        appleir_probe+0x13e/0x1a0 drivers/hid/hid-appleir.c:308
        hid_device_probe+0x2be/0x3f0 drivers/hid/hid-core.c:2209
        really_probe+0x281/0x650 drivers/base/dd.c:548
        driver_probe_device+0x101/0x1b0 drivers/base/dd.c:709
        __device_attach_driver+0x1c2/0x220 drivers/base/dd.c:816
        bus_for_each_drv+0x15c/0x1e0 drivers/base/bus.c:454
        __device_attach+0x217/0x360 drivers/base/dd.c:882
        bus_probe_device+0x1e4/0x290 drivers/base/bus.c:514
        device_add+0xae6/0x16f0 drivers/base/core.c:2114
        hid_add_device+0x33c/0x990 drivers/hid/hid-core.c:2365
        usbhid_probe+0xa81/0xfa0 drivers/hid/usbhid/hid-core.c:1386
        usb_probe_interface+0x305/0x7a0 drivers/usb/core/driver.c:361
        really_probe+0x281/0x650 drivers/base/dd.c:548
        driver_probe_device+0x101/0x1b0 drivers/base/dd.c:709
        __device_attach_driver+0x1c2/0x220 drivers/base/dd.c:816
        bus_for_each_drv+0x15c/0x1e0 drivers/base/bus.c:454
        __device_attach+0x217/0x360 drivers/base/dd.c:882
        bus_probe_device+0x1e4/0x290 drivers/base/bus.c:514
        device_add+0xae6/0x16f0 drivers/base/core.c:2114
        usb_set_configuration+0xdf6/0x1670 drivers/usb/core/message.c:2023
        generic_probe+0x9d/0xd5 drivers/usb/core/generic.c:210
        usb_probe_device+0x99/0x100 drivers/usb/core/driver.c:266
        really_probe+0x281/0x650 drivers/base/dd.c:548
        driver_probe_device+0x101/0x1b0 drivers/base/dd.c:709
        __device_attach_driver+0x1c2/0x220 drivers/base/dd.c:816
        bus_for_each_drv+0x15c/0x1e0 drivers/base/bus.c:454
        __device_attach+0x217/0x360 drivers/base/dd.c:882
        bus_probe_device+0x1e4/0x290 drivers/base/bus.c:514
        device_add+0xae6/0x16f0 drivers/base/core.c:2114
        usb_new_device.cold+0x6a4/0xe79 drivers/usb/core/hub.c:2536
        hub_port_connect drivers/usb/core/hub.c:5098 [inline]
        hub_port_connect_change drivers/usb/core/hub.c:5213 [inline]
        port_event drivers/usb/core/hub.c:5359 [inline]
        hub_event+0x1b5c/0x3640 drivers/usb/core/hub.c:5441
        process_one_work+0x92b/0x1530 kernel/workqueue.c:2269
        worker_thread+0x96/0xe20 kernel/workqueue.c:2415
        kthread+0x318/0x420 kernel/kthread.c:255
        ret_from_fork+0x24/0x30 arch/x86/entry/entry_64.S:352
      
      The buggy address belongs to the object at ffff8881cf591900
        which belongs to the cache kmalloc-512 of size 512
      The buggy address is located 264 bytes inside of
        512-byte region [ffff8881cf591900, ffff8881cf591b00)
      The buggy address belongs to the page:
      page:ffffea00073d6400 refcount:1 mapcount:0 mapping:ffff8881da002500
      index:0x0 compound_mapcount: 0
      flags: 0x200000000010200(slab|head)
      raw: 0200000000010200 0000000000000000 0000000100000001 ffff8881da002500
      raw: 0000000000000000 00000000000c000c 00000001ffffffff 0000000000000000
      page dumped because: kasan: bad access detected
      
      Memory state around the buggy address:
        ffff8881cf591900: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
        ffff8881cf591980: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
      > ffff8881cf591a00: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
                             ^
        ffff8881cf591a80: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
        ffff8881cf591b00: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
      ==================================================================
      
      In order to avoid opening a disconnected device, we need to check exist
      again after acquiring the existance lock, and bail out if necessary.
      Reported-by: default avatarsyzbot <syzbot+62a1e04fd3ec2abf099e@syzkaller.appspotmail.com>
      Cc: Andrey Konovalov <andreyknvl@google.com>
      Signed-off-by: default avatarHillf Danton <hdanton@sina.com>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      9c09b214
  2. 05 Aug, 2019 6 commits
  3. 17 Jul, 2019 4 commits
  4. 11 Jul, 2019 29 commits
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid · 4832a4da
      Linus Torvalds authored
      Pull HID updates from Jiri Kosina:
      
       - Documentation conversion to ReST, from Mauro Carvalho Chehab
      
       - Wacom MobileStudio Pro support, from Ping Cheng
      
       - Wacom 2nd Gen Intuos Pro Small support, from Aaron Armstrong Skomra
      
       - assorted small fixes and device ID additions
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid:
        HID: Add another Primax PIXART OEM mouse quirk
        HID: wacom: generic: add touchring adjustment for 2nd Gen Pro Small
        docs: hid: convert to ReST
        HID: remove NO_D3 flag when remove driver
        HID: wacom: add new MobileStudio Pro support
        HID: wacom: generic: read the number of expected touches on a per collection basis
        HID: wacom: generic: support the 'report valid' usage for touch
        HID: wacom: generic: read HID_DG_CONTACTMAX from any feature report
        HID: wacom: Add 2nd gen Intuos Pro Small support
        HID: uclogic: Add support for Ugee Rainbow CV720
        HID: logitech-dj: fix return value of logi_dj_recv_query_hidpp_devices
        HID: logitech-hidpp: HID: make const array consumer_rdesc_start static
        HID: logitech-dj: make const array template static
        HID: wacom: correct touch resolution x/y typo
        HID: wacom: generic: Correct pad syncing
        HID: wacom: generic: only switch the mode on devices with LEDs
        HID: logitech-dj: Add usb-id for the 27MHz MX3000 receiver
      4832a4da
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/livepatching/livepatching · db045733
      Linus Torvalds authored
      Pull livepatching updates from Jiri Kosina:
      
       - stacktrace handling improvements from Miroslav benes
      
       - debug output improvements from Petr Mladek
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/livepatching/livepatching:
        livepatch: Remove duplicate warning about missing reliable stacktrace support
        Revert "livepatch: Remove reliable stacktrace check in klp_try_switch_task()"
        stacktrace: Remove weak version of save_stack_trace_tsk_reliable()
        livepatch: Use static buffer for debugging messages under rq lock
        livepatch: Remove stale kobj_added entries from kernel-doc descriptions
      db045733
    • Linus Torvalds's avatar
      Merge tag 'scsi-sg' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 1f7563f7
      Linus Torvalds authored
      Pull SCSI scatter-gather list updates from James Bottomley:
       "This topic branch covers a fundamental change in how our sg lists are
        allocated to make mq more efficient by reducing the size of the
        preallocated sg list.
      
        This necessitates a large number of driver changes because the
        previous guarantee that if a driver specified SG_ALL as the size of
        its scatter list, it would get a non-chained list and didn't need to
        bother with scatterlist iterators is now broken and every driver
        *must* use scatterlist iterators.
      
        This was broken out as a separate topic because we need to convert all
        the drivers before pulling the trigger and unconverted drivers kept
        being found, necessitating a rebase"
      
      * tag 'scsi-sg' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (21 commits)
        scsi: core: don't preallocate small SGL in case of NO_SG_CHAIN
        scsi: lib/sg_pool.c: clear 'first_chunk' in case of no preallocation
        scsi: core: avoid preallocating big SGL for data
        scsi: core: avoid preallocating big SGL for protection information
        scsi: lib/sg_pool.c: improve APIs for allocating sg pool
        scsi: esp: use sg helper to iterate over scatterlist
        scsi: NCR5380: use sg helper to iterate over scatterlist
        scsi: wd33c93: use sg helper to iterate over scatterlist
        scsi: ppa: use sg helper to iterate over scatterlist
        scsi: pcmcia: nsp_cs: use sg helper to iterate over scatterlist
        scsi: imm: use sg helper to iterate over scatterlist
        scsi: aha152x: use sg helper to iterate over scatterlist
        scsi: s390: zfcp_fc: use sg helper to iterate over scatterlist
        scsi: staging: unisys: visorhba: use sg helper to iterate over scatterlist
        scsi: usb: image: microtek: use sg helper to iterate over scatterlist
        scsi: pmcraid: use sg helper to iterate over scatterlist
        scsi: ipr: use sg helper to iterate over scatterlist
        scsi: mvumi: use sg helper to iterate over scatterlist
        scsi: lpfc: use sg helper to iterate over scatterlist
        scsi: advansys: use sg helper to iterate over scatterlist
        ...
      1f7563f7
    • Linus Torvalds's avatar
      Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · ba6d10ab
      Linus Torvalds authored
      Pull SCSI updates from James Bottomley:
       "This is mostly update of the usual drivers: qla2xxx, hpsa, lpfc, ufs,
        mpt3sas, ibmvscsi, megaraid_sas, bnx2fc and hisi_sas as well as the
        removal of the osst driver (I heard from Willem privately that he
        would like the driver removed because all his test hardware has
        failed). Plus number of minor changes, spelling fixes and other
        trivia.
      
        The big merge conflict this time around is the SPDX licence tags.
        Following discussion on linux-next, we believe our version to be more
        accurate than the one in the tree, so the resolution is to take our
        version for all the SPDX conflicts"
      
      Note on the SPDX license tag conversion conflicts: the SCSI tree had
      done its own SPDX conversion, which in some cases conflicted with the
      treewide ones done by Thomas & co.
      
      In almost all cases, the conflicts were purely syntactic: the SCSI tree
      used the old-style SPDX tags ("GPL-2.0" and "GPL-2.0+") while the
      treewide conversion had used the new-style ones ("GPL-2.0-only" and
      "GPL-2.0-or-later").
      
      In these cases I picked the new-style one.
      
      In a few cases, the SPDX conversion was actually different, though.  As
      explained by James above, and in more detail in a pre-pull-request
      thread:
      
       "The other problem is actually substantive: In the libsas code Luben
        Tuikov originally specified gpl 2.0 only by dint of stating:
      
        * This file is licensed under GPLv2.
      
        In all the libsas files, but then muddied the water by quoting GPLv2
        verbatim (which includes the or later than language). So for these
        files Christoph did the conversion to v2 only SPDX tags and Thomas
        converted to v2 or later tags"
      
      So in those cases, where the spdx tag substantially mattered, I took the
      SCSI tree conversion of it, but then also took the opportunity to turn
      the old-style "GPL-2.0" into a new-style "GPL-2.0-only" tag.
      
      Similarly, when there were whitespace differences or other differences
      to the comments around the copyright notices, I took the version from
      the SCSI tree as being the more specific conversion.
      
      Finally, in the spdx conversions that had no conflicts (because the
      treewide ones hadn't been done for those files), I just took the SCSI
      tree version as-is, even if it was old-style.  The old-style conversions
      are perfectly valid, even if the "-only" and "-or-later" versions are
      perhaps more descriptive.
      
      * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (185 commits)
        scsi: qla2xxx: move IO flush to the front of NVME rport unregistration
        scsi: qla2xxx: Fix NVME cmd and LS cmd timeout race condition
        scsi: qla2xxx: on session delete, return nvme cmd
        scsi: qla2xxx: Fix kernel crash after disconnecting NVMe devices
        scsi: megaraid_sas: Update driver version to 07.710.06.00-rc1
        scsi: megaraid_sas: Introduce various Aero performance modes
        scsi: megaraid_sas: Use high IOPS queues based on IO workload
        scsi: megaraid_sas: Set affinity for high IOPS reply queues
        scsi: megaraid_sas: Enable coalescing for high IOPS queues
        scsi: megaraid_sas: Add support for High IOPS queues
        scsi: megaraid_sas: Add support for MPI toolbox commands
        scsi: megaraid_sas: Offload Aero RAID5/6 division calculations to driver
        scsi: megaraid_sas: RAID1 PCI bandwidth limit algorithm is applicable for only Ventura
        scsi: megaraid_sas: megaraid_sas: Add check for count returned by HOST_DEVICE_LIST DCMD
        scsi: megaraid_sas: Handle sequence JBOD map failure at driver level
        scsi: megaraid_sas: Don't send FPIO to RL Bypass queue
        scsi: megaraid_sas: In probe context, retry IOC INIT once if firmware is in fault
        scsi: megaraid_sas: Release Mutex lock before OCR in case of DCMD timeout
        scsi: megaraid_sas: Call disable_irq from process IRQ poll
        scsi: megaraid_sas: Remove few debug counters from IO path
        ...
      ba6d10ab
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-v5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging · 64b08df4
      Linus Torvalds authored
      Pull hwmon updates from Guenter Roeck:
      
       - New drivers for Infineon PXE1610 and IRPS5401
      
       - Minor improvements, cleanup, and fixes in several drivers
      
      * tag 'hwmon-for-v5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: (33 commits)
        hwmon: (ina3221) Add of_node_put() before return
        hwmon: (gpio-fan) fix sysfs notifications and udev events for gpio-fan alarms
        hwmon: (gpio-fan) move fan_alarm_init after devm_hwmon_device_register_with_groups
        hwmon: (lm90) Introduce function to update configuration register
        hwmon: (lm90) Cache configuration register value
        hwmon: (lm90) Fix max6658 sporadic wrong temperature reading
        hwmon: (nct7904) Changes comments in probe function.
        hwmon: (nct7904) Add error handling in probe function.
        hwmon: Convert remaining drivers to use SPDX identifier
        hwmon: (max6650) Fix unused variable warning
        hwmon: (pmbus/adm1275) Fix power sampling support
        hwmon: (lm90) simplify getting the adapter of a client
        hwmon: (asus_atk0110) no need to check return value of debugfs_create functions
        hwmon: (max6650) Fix minor formatting issues
        hwmon: (max6650) Improve error handling in max6650_update_device
        hwmon: (max6650) Read non-volatile registers only once
        hwmon: (max6650) Convert to use devm_hwmon_device_register_with_info
        hwmon: (max6650) Simplify alarm handling
        hwmon: (max6650) Cache alarm_en register
        hwmon: (max6650) Declare valid as boolean
        ...
      64b08df4
    • Linus Torvalds's avatar
      Merge tag 'loadpin-v5.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · c079512a
      Linus Torvalds authored
      Pull security/loadpin updates from Kees Cook:
      
       - Allow exclusion of specific file types (Ke Wu)
      
      * tag 'loadpin-v5.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        security/loadpin: Allow to exclude specific file types
      c079512a
    • Linus Torvalds's avatar
      Merge tag 'pstore-v5.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · 6b44fccd
      Linus Torvalds authored
      Pull pstore updates from Kees Cook:
      
       - Improve backward compatibility with older Chromebooks (Douglas
         Anderson)
      
       - Refactor debugfs initialization (Greg KH)
      
       - Fix double-free in pstore_mkfile() failure path (Norbert Manthey)
      
      * tag 'pstore-v5.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        pstore: Fix double-free in pstore_mkfile() failure path
        pstore: no need to check return value of debugfs_create functions
        pstore/ram: Improve backward compatibility with older Chromebooks
      6b44fccd
    • Linus Torvalds's avatar
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 753c8d9b
      Linus Torvalds authored
      Pull x86 fixes from Thomas Gleixner:
       "A collection of assorted fixes:
      
         - Fix for the pinned cr0/4 fallout which escaped all testing efforts
           because the kvm-intel module was never loaded when the kernel was
           compiled with CONFIG_PARAVIRT=n. The cr0/4 accessors are moved out
           of line and static key is now solely used in the core code and
           therefore can stay in the RO after init section. So the kvm-intel
           and other modules do not longer reference the (read only) static
           key which the module loader tried to update.
      
         - Prevent an infinite loop in arch_stack_walk_user() by breaking out
           of the loop once the return address is detected to be 0.
      
         - Prevent the int3_emulate_call() selftest from corrupting the stack
           when KASAN is enabled. KASASN clobbers more registers than covered
           by the emulated call implementation. Convert the int3_magic()
           selftest to a ASM function so the compiler cannot KASANify it.
      
         - Unbreak the build with old GCC versions and with the Gold linker by
           reverting the 'Move of _etext to the actual end of .text'. In both
           cases the build fails with 'Invalid absolute R_X86_64_32S
           relocation: _etext'
      
         - Initialize the context lock for init_mm, which was never an issue
           until the alternatives code started to use a temporary mm for
           patching.
      
         - Fix a build warning vs. the LOWMEM_PAGES constant where clang
           complains rightfully about a signed integer overflow in the shift
           operation by converting the operand to an ULL.
      
         - Adjust the misnamed ENDPROC() of common_spurious in the 32bit entry
           code"
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/stacktrace: Prevent infinite loop in arch_stack_walk_user()
        x86/asm: Move native_write_cr0/4() out of line
        x86/pgtable/32: Fix LOWMEM_PAGES constant
        x86/alternatives: Fix int3_emulate_call() selftest stack corruption
        x86/entry/32: Fix ENDPROC of common_spurious
        Revert "x86/build: Move _etext to actual end of .text"
        x86/ldt: Initialize the context lock for init_mm
      753c8d9b
    • Linus Torvalds's avatar
      Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · d7fe42a6
      Linus Torvalds authored
      Pull timer fixes from Thomas Gleixner:
       "Two small fixes from the timer departement:
      
         - Prevent the compiler from converting the nanoseconds adjustment
           loop in the VDSO update function to a division (__udivdi3) by using
           the __iter_div_u64_rem() inline function which exists to prevent
           exactly that problem.
      
         - Fix the wrong argument order of the GENMASK macro in the NPCM timer
           driver"
      
      * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        timekeeping/vsyscall: Use __iter_div_u64_rem()
        clocksource/drivers/npcm: Fix misuse of GENMASK macro
      d7fe42a6
    • Linus Torvalds's avatar
      Merge branch 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 02150fab
      Linus Torvalds authored
      Pull stacktrace fix from Thomas Gleixner:
       "Fix yet another instance of kernel thread check which ignores that
        kernel threads can call use_mm()"
      
      * 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        stacktrace: Use PF_KTHREAD to check for kernel threads
      02150fab
    • Linus Torvalds's avatar
      Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 3a83f575
      Linus Torvalds authored
      Pull irq fixes from Thomas Gleixner:
       "Two small fixes for interrupt chip drivers:
      
         - Prevent UAF in the new RZA1 chip driver
      
         - Fix the wrong argument order of the GENMASK macro in the GIC code"
      
      * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        irqchip/gic-v3-its: Fix misuse of GENMASK macro
        irqchip/renesas-rza1: Prevent use-after-free in rza1_irqc_probe()
      3a83f575
    • Linus Torvalds's avatar
      Merge tag 'acpi-5.3-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · a131c2bf
      Linus Torvalds authored
      Pull ACPI fix from Rafael Wysocki:
       "Revert a recent ACPICA commit causing systems to hang at boot time"
      
      * tag 'acpi-5.3-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        Revert "ACPICA: Update table load object initialization"
      a131c2bf
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next · 237f83df
      Linus Torvalds authored
      Pull networking updates from David Miller:
       "Some highlights from this development cycle:
      
         1) Big refactoring of ipv6 route and neigh handling to support
            nexthop objects configurable as units from userspace. From David
            Ahern.
      
         2) Convert explored_states in BPF verifier into a hash table,
            significantly decreased state held for programs with bpf2bpf
            calls, from Alexei Starovoitov.
      
         3) Implement bpf_send_signal() helper, from Yonghong Song.
      
         4) Various classifier enhancements to mvpp2 driver, from Maxime
            Chevallier.
      
         5) Add aRFS support to hns3 driver, from Jian Shen.
      
         6) Fix use after free in inet frags by allocating fqdirs dynamically
            and reworking how rhashtable dismantle occurs, from Eric Dumazet.
      
         7) Add act_ctinfo packet classifier action, from Kevin
            Darbyshire-Bryant.
      
         8) Add TFO key backup infrastructure, from Jason Baron.
      
         9) Remove several old and unused ISDN drivers, from Arnd Bergmann.
      
        10) Add devlink notifications for flash update status to mlxsw driver,
            from Jiri Pirko.
      
        11) Lots of kTLS offload infrastructure fixes, from Jakub Kicinski.
      
        12) Add support for mv88e6250 DSA chips, from Rasmus Villemoes.
      
        13) Various enhancements to ipv6 flow label handling, from Eric
            Dumazet and Willem de Bruijn.
      
        14) Support TLS offload in nfp driver, from Jakub Kicinski, Dirk van
            der Merwe, and others.
      
        15) Various improvements to axienet driver including converting it to
            phylink, from Robert Hancock.
      
        16) Add PTP support to sja1105 DSA driver, from Vladimir Oltean.
      
        17) Add mqprio qdisc offload support to dpaa2-eth, from Ioana
            Radulescu.
      
        18) Add devlink health reporting to mlx5, from Moshe Shemesh.
      
        19) Convert stmmac over to phylink, from Jose Abreu.
      
        20) Add PTP PHC (Physical Hardware Clock) support to mlxsw, from
            Shalom Toledo.
      
        21) Add nftables SYNPROXY support, from Fernando Fernandez Mancera.
      
        22) Convert tcp_fastopen over to use SipHash, from Ard Biesheuvel.
      
        23) Track spill/fill of constants in BPF verifier, from Alexei
            Starovoitov.
      
        24) Support bounded loops in BPF, from Alexei Starovoitov.
      
        25) Various page_pool API fixes and improvements, from Jesper Dangaard
            Brouer.
      
        26) Just like ipv4, support ref-countless ipv6 route handling. From
            Wei Wang.
      
        27) Support VLAN offloading in aquantia driver, from Igor Russkikh.
      
        28) Add AF_XDP zero-copy support to mlx5, from Maxim Mikityanskiy.
      
        29) Add flower GRE encap/decap support to nfp driver, from Pieter
            Jansen van Vuuren.
      
        30) Protect against stack overflow when using act_mirred, from John
            Hurley.
      
        31) Allow devmap map lookups from eBPF, from Toke Høiland-Jørgensen.
      
        32) Use page_pool API in netsec driver, Ilias Apalodimas.
      
        33) Add Google gve network driver, from Catherine Sullivan.
      
        34) More indirect call avoidance, from Paolo Abeni.
      
        35) Add kTLS TX HW offload support to mlx5, from Tariq Toukan.
      
        36) Add XDP_REDIRECT support to bnxt_en, from Andy Gospodarek.
      
        37) Add MPLS manipulation actions to TC, from John Hurley.
      
        38) Add sending a packet to connection tracking from TC actions, and
            then allow flower classifier matching on conntrack state. From
            Paul Blakey.
      
        39) Netfilter hw offload support, from Pablo Neira Ayuso"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (2080 commits)
        net/mlx5e: Return in default case statement in tx_post_resync_params
        mlx5: Return -EINVAL when WARN_ON_ONCE triggers in mlx5e_tls_resync().
        net: dsa: add support for BRIDGE_MROUTER attribute
        pkt_sched: Include const.h
        net: netsec: remove static declaration for netsec_set_tx_de()
        net: netsec: remove superfluous if statement
        netfilter: nf_tables: add hardware offload support
        net: flow_offload: rename tc_cls_flower_offload to flow_cls_offload
        net: flow_offload: add flow_block_cb_is_busy() and use it
        net: sched: remove tcf block API
        drivers: net: use flow block API
        net: sched: use flow block API
        net: flow_offload: add flow_block_cb_{priv, incref, decref}()
        net: flow_offload: add list handling functions
        net: flow_offload: add flow_block_cb_alloc() and flow_block_cb_free()
        net: flow_offload: rename TCF_BLOCK_BINDER_TYPE_* to FLOW_BLOCK_BINDER_TYPE_*
        net: flow_offload: rename TC_BLOCK_{UN}BIND to FLOW_BLOCK_{UN}BIND
        net: flow_offload: add flow_block_cb_setup_simple()
        net: hisilicon: Add an tx_desc to adapt HI13X1_GMAC
        net: hisilicon: Add an rx_desc to adapt HI13X1_GMAC
        ...
      237f83df
    • Linus Torvalds's avatar
      Merge tag 'clone3-v5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux · 8f6ccf61
      Linus Torvalds authored
      Pull clone3 system call from Christian Brauner:
       "This adds the clone3 syscall which is an extensible successor to clone
        after we snagged the last flag with CLONE_PIDFD during the 5.2 merge
        window for clone(). It cleanly supports all of the flags from clone()
        and thus all legacy workloads.
      
        There are few user visible differences between clone3 and clone.
        First, CLONE_DETACHED will cause EINVAL with clone3 so we can reuse
        this flag. Second, the CSIGNAL flag is deprecated and will cause
        EINVAL to be reported. It is superseeded by a dedicated "exit_signal"
        argument in struct clone_args thus freeing up even more flags. And
        third, clone3 gives CLONE_PIDFD a dedicated return argument in struct
        clone_args instead of abusing CLONE_PARENT_SETTID's parent_tidptr
        argument.
      
        The clone3 uapi is designed to be easy to handle on 32- and 64 bit:
      
          /* uapi */
          struct clone_args {
                  __aligned_u64 flags;
                  __aligned_u64 pidfd;
                  __aligned_u64 child_tid;
                  __aligned_u64 parent_tid;
                  __aligned_u64 exit_signal;
                  __aligned_u64 stack;
                  __aligned_u64 stack_size;
                  __aligned_u64 tls;
          };
      
        and a separate kernel struct is used that uses proper kernel typing:
      
          /* kernel internal */
          struct kernel_clone_args {
                  u64 flags;
                  int __user *pidfd;
                  int __user *child_tid;
                  int __user *parent_tid;
                  int exit_signal;
                  unsigned long stack;
                  unsigned long stack_size;
                  unsigned long tls;
          };
      
        The system call comes with a size argument which enables the kernel to
        detect what version of clone_args userspace is passing in. clone3
        validates that any additional bytes a given kernel does not know about
        are set to zero and that the size never exceeds a page.
      
        A nice feature is that this patchset allowed us to cleanup and
        simplify various core kernel codepaths in kernel/fork.c by making the
        internal _do_fork() function take struct kernel_clone_args even for
        legacy clone().
      
        This patch also unblocks the time namespace patchset which wants to
        introduce a new CLONE_TIMENS flag.
      
        Note, that clone3 has only been wired up for x86{_32,64}, arm{64}, and
        xtensa. These were the architectures that did not require special
        massaging.
      
        Other architectures treat fork-like system calls individually and
        after some back and forth neither Arnd nor I felt confident that we
        dared to add clone3 unconditionally to all architectures. We agreed to
        leave this up to individual architecture maintainers. This is why
        there's an additional patch that introduces __ARCH_WANT_SYS_CLONE3
        which any architecture can set once it has implemented support for
        clone3. The patch also adds a cond_syscall(clone3) for architectures
        such as nios2 or h8300 that generate their syscall table by simply
        including asm-generic/unistd.h. The hope is to get rid of
        __ARCH_WANT_SYS_CLONE3 and cond_syscall() rather soon"
      
      * tag 'clone3-v5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux:
        arch: handle arches who do not yet define clone3
        arch: wire-up clone3() syscall
        fork: add clone3
      8f6ccf61
    • Eiichi Tsukata's avatar
      x86/stacktrace: Prevent infinite loop in arch_stack_walk_user() · cbf5b73d
      Eiichi Tsukata authored
      arch_stack_walk_user() checks `if (fp == frame.next_fp)` to prevent a
      infinite loop by self reference but it's not enogh for circular reference.
      
      Once a lack of return address is found, there is no point to continue the
      loop, so break out.
      
      Fixes: 02b67518 ("tracing: add support for userspace stacktraces in tracing/iter_ctrl")
      Signed-off-by: default avatarEiichi Tsukata <devel@etsukata.com>
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Acked-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Link: https://lkml.kernel.org/r/20190711023501.963-1-devel@etsukata.com
      cbf5b73d
    • Linus Torvalds's avatar
      Merge tag 'pidfd-updates-v5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux · 5450e8a3
      Linus Torvalds authored
      Pull pidfd updates from Christian Brauner:
       "This adds two main features.
      
         - First, it adds polling support for pidfds. This allows process
           managers to know when a (non-parent) process dies in a race-free
           way.
      
           The notification mechanism used follows the same logic that is
           currently used when the parent of a task is notified of a child's
           death. With this patchset it is possible to put pidfds in an
           {e}poll loop and get reliable notifications for process (i.e.
           thread-group) exit.
      
         - The second feature compliments the first one by making it possible
           to retrieve pollable pidfds for processes that were not created
           using CLONE_PIDFD.
      
           A lot of processes get created with traditional PID-based calls
           such as fork() or clone() (without CLONE_PIDFD). For these
           processes a caller can currently not create a pollable pidfd. This
           is a problem for Android's low memory killer (LMK) and service
           managers such as systemd.
      
        Both patchsets are accompanied by selftests.
      
        It's perhaps worth noting that the work done so far and the work done
        in this branch for pidfd_open() and polling support do already see
        some adoption:
      
         - Android is in the process of backporting this work to all their LTS
           kernels [1]
      
         - Service managers make use of pidfd_send_signal but will need to
           wait until we enable waiting on pidfds for full adoption.
      
         - And projects I maintain make use of both pidfd_send_signal and
           CLONE_PIDFD [2] and will use polling support and pidfd_open() too"
      
      [1] https://android-review.googlesource.com/q/topic:%22pidfd+polling+support+4.9+backport%22
          https://android-review.googlesource.com/q/topic:%22pidfd+polling+support+4.14+backport%22
          https://android-review.googlesource.com/q/topic:%22pidfd+polling+support+4.19+backport%22
      
      [2] https://github.com/lxc/lxc/blob/aab6e3eb73c343231cdde775db938994fc6f2803/src/lxc/start.c#L1753
      
      * tag 'pidfd-updates-v5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux:
        tests: add pidfd_open() tests
        arch: wire-up pidfd_open()
        pid: add pidfd_open()
        pidfd: add polling selftests
        pidfd: add polling support
      5450e8a3
    • Linus Torvalds's avatar
      Merge tag 'm68k-for-v5.3-tag2' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k · 29cd581b
      Linus Torvalds authored
      Pull m68k fix from Geert Uytterhoeven:
       "Don't select ARCH_HAS_DMA_PREP_COHERENT for nommu or coldfire.
      
        This is a fix for an issue detected in next, to avoid introducing
        build failures when merging Christoph's dma-mapping tree later"
      
      * tag 'm68k-for-v5.3-tag2' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
        m68k: Don't select ARCH_HAS_DMA_PREP_COHERENT for nommu or coldfire
      29cd581b
    • Linus Torvalds's avatar
      Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu · 398364a3
      Linus Torvalds authored
      Pull m68nommu updates from Greg Ungerer:
       "A series of cleanups for the FLAT format binary loader, binfmt_flat,
        from Christoph.
      
        The end goal is to support no-MMU on RISC-V, and the last patch
        enables that"
      
      * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu:
        riscv: add binfmt_flat support
        binfmt_flat: don't offset the data start
        binfmt_flat: move the MAX_SHARED_LIBS definition to binfmt_flat.c
        binfmt_flat: remove the persistent argument from flat_get_addr_from_rp
        binfmt_flat: provide an asm-generic/flat.h
        binfmt_flat: make support for old format binaries optional
        binfmt_flat: add a ARCH_HAS_BINFMT_FLAT option
        binfmt_flat: add endianess annotations
        binfmt_flat: use fixed size type for the on-disk format
        binfmt_flat: consolidate two version of flat_v2_reloc_t
        binfmt_flat: remove the unused OLD_FLAT_FLAG_RAM definition
        binfmt_flat: remove the uapi <linux/flat.h> header
        binfmt_flat: replace flat_argvp_envp_on_stack with a Kconfig variable
        binfmt_flat: remove flat_old_ram_flag
        binfmt_flat: provide a default version of flat_get_relocate_addr
        binfmt_flat: remove flat_set_persistent
        binfmt_flat: remove flat_reloc_valid
      398364a3
    • Linus Torvalds's avatar
      Merge tag 'nfsd-5.3' of git://linux-nfs.org/~bfields/linux · d2b6b4c8
      Linus Torvalds authored
      Pull nfsd updates from Bruce Fields:
       "Highlights:
      
         - Add a new /proc/fs/nfsd/clients/ directory which exposes some
           long-requested information about NFSv4 clients (like open files)
           and allows forced revocation of client state.
      
         - Replace the global duplicate reply cache by a cache per network
           namespace; previously, a request in one network namespace could
           incorrectly match an entry from another, though we haven't seen
           this in production. This is the last remaining container bug that
           I'm aware of; at this point you should be able to run separate
           nfsd's in each network namespace, each with their own set of
           exports, and everything should work.
      
         - Cleanup and modify lock code to show the pid of lockd as the owner
           of NLM locks. This is the correct version of the bugfix originally
           attempted in b8eee0e9 ("lockd: Show pid of lockd for remote
           locks")"
      
      * tag 'nfsd-5.3' of git://linux-nfs.org/~bfields/linux: (34 commits)
        nfsd: Make __get_nfsdfs_client() static
        nfsd: Make two functions static
        nfsd: Fix misuse of strlcpy
        sunrpc/cache: remove the exporting of cache_seq_next
        nfsd: decode implementation id
        nfsd: create xdr_netobj_dup helper
        nfsd: allow forced expiration of NFSv4 clients
        nfsd: create get_nfsdfs_clp helper
        nfsd4: show layout stateids
        nfsd: show lock and deleg stateids
        nfsd4: add file to display list of client's opens
        nfsd: add more information to client info file
        nfsd: escape high characters in binary data
        nfsd: copy client's address including port number to cl_addr
        nfsd4: add a client info file
        nfsd: make client/ directory names small ints
        nfsd: add nfsd/clients directory
        nfsd4: use reference count to free client
        nfsd: rename cl_refcount
        nfsd: persist nfsd filesystem across mounts
        ...
      d2b6b4c8
    • Linus Torvalds's avatar
      Merge tag 'gfs2-for-5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2 · 0248a8be
      Linus Torvalds authored
      Pull gfs2 updates from Andreas Gruenbacher:
       "Some relatively minor changes for gfs2:
      
         - An initial batch of obvious cleanups and fixes from Bob's recovery
           patch queue.
      
         - Two iomap conversion patches and some cleanups from Christoph
           Hellwig.
      
         - A cosmetic cleanup from Kefeng Wang (Huawei).
      
         - Another minor fix and cleanup by me"
      
      * tag 'gfs2-for-5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2:
        gfs2: Remove unused gfs2_iomap_alloc argument
        gfs2: don't use buffer_heads in gfs2_allocate_page_backing
        gfs2: use iomap_bmap instead of generic_block_bmap
        gfs2: mark stuffed_readpage static
        gfs2: merge gfs2_writepage_common into gfs2_writepage
        gfs2: merge gfs2_writeback_aops and gfs2_ordered_aops
        gfs2: remove the unused gfs2_stuffed_write_end function
        gfs2: use page_offset in gfs2_page_mkwrite
        gfs2: replace more printk with calls to fs_info and friends
        gfs2: dump fsid when dumping glock problems
        gfs2: simplify gfs2_freeze by removing case
        gfs2: Rename SDF_SHUTDOWN to SDF_WITHDRAWN
        gfs2: Warn when a journal replay overwrites a rgrp with buffers
        gfs2: log which portion of the journal is replayed
        gfs2: eliminate tr_num_revoke_rm
        gfs2: kthread and remount improvements
        gfs2: Use IS_ERR_OR_NULL
        gfs2: Clean up freeing struct gfs2_sbd
      0248a8be
    • Linus Torvalds's avatar
      Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 · 2e756758
      Linus Torvalds authored
      Pull ext4 updates from Ted Ts'o:
       "Many bug fixes and cleanups, and an optimization for case-insensitive
        lookups"
      
      * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
        ext4: fix coverity warning on error path of filename setup
        ext4: replace ktype default_attrs with default_groups
        ext4: rename htree_inline_dir_to_tree() to ext4_inlinedir_to_tree()
        ext4: refactor initialize_dirent_tail()
        ext4: rename "dirent_csum" functions to use "dirblock"
        ext4: allow directory holes
        jbd2: drop declaration of journal_sync_buffer()
        ext4: use jbd2_inode dirty range scoping
        jbd2: introduce jbd2_inode dirty range scoping
        mm: add filemap_fdatawait_range_keep_errors()
        ext4: remove redundant assignment to node
        ext4: optimize case-insensitive lookups
        ext4: make __ext4_get_inode_loc plug
        ext4: clean up kerneldoc warnigns when building with W=1
        ext4: only set project inherit bit for directory
        ext4: enforce the immutable flag on open files
        ext4: don't allow any modifications to an immutable file
        jbd2: fix typo in comment of journal_submit_inode_data_buffers
        jbd2: fix some print format mistakes
        ext4: gracefully handle ext4_break_layouts() failure during truncate
      2e756758
    • Linus Torvalds's avatar
      Merge tag 'afs-next-20190628' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs · 8dda9957
      Linus Torvalds authored
      Pull afs updates from David Howells:
       "A set of minor changes for AFS:
      
         - Remove an unnecessary check in afs_unlink()
      
         - Add a tracepoint for tracking callback management
      
         - Add a tracepoint for afs_server object usage
      
         - Use struct_size()
      
         - Add mappings for AFS UAE abort codes to Linux error codes, using
           symbolic names rather than hex numbers in the .c file"
      
      * tag 'afs-next-20190628' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs:
        afs: Add support for the UAE error table
        fs/afs: use struct_size() in kzalloc()
        afs: Trace afs_server usage
        afs: Add some callback management tracepoints
        afs: afs_unlink() doesn't need to check dentry->d_inode
      8dda9957
    • Linus Torvalds's avatar
      Merge tag 'fscrypt-for-linus' of git://git.kernel.org/pub/scm/fs/fscrypt/fscrypt · 25cd6f35
      Linus Torvalds authored
      Pull fscrypt updates from Eric Biggers:
      
       - Preparations for supporting encryption on ext4 filesystems where the
         filesystem block size is smaller than PAGE_SIZE.
      
       - Don't allow setting encryption policies on dead directories.
      
       - Various cleanups.
      
      * tag 'fscrypt-for-linus' of git://git.kernel.org/pub/scm/fs/fscrypt/fscrypt:
        fscrypt: document testing with xfstests
        fscrypt: remove selection of CONFIG_CRYPTO_SHA256
        fscrypt: remove unnecessary includes of ratelimit.h
        fscrypt: don't set policy for a dead directory
        ext4: encrypt only up to last block in ext4_bio_write_page()
        ext4: decrypt only the needed block in __ext4_block_zero_page_range()
        ext4: decrypt only the needed blocks in ext4_block_write_begin()
        ext4: clear BH_Uptodate flag on decryption error
        fscrypt: decrypt only the needed blocks in __fscrypt_decrypt_bio()
        fscrypt: support decrypting multiple filesystem blocks per page
        fscrypt: introduce fscrypt_decrypt_block_inplace()
        fscrypt: handle blocksize < PAGE_SIZE in fscrypt_zeroout_range()
        fscrypt: support encrypting multiple filesystem blocks per page
        fscrypt: introduce fscrypt_encrypt_block_inplace()
        fscrypt: clean up some BUG_ON()s in block encryption/decryption
        fscrypt: rename fscrypt_do_page_crypto() to fscrypt_crypt_block()
        fscrypt: remove the "write" part of struct fscrypt_ctx
        fscrypt: simplify bounce page handling
      25cd6f35
    • Linus Torvalds's avatar
      Merge tag 'copy-file-range-fixes-1' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · 40f06c79
      Linus Torvalds authored
      Pull copy_file_range updates from Darrick Wong:
       "This fixes numerous parameter checking problems and inconsistent
        behaviors in the new(ish) copy_file_range system call.
      
        Now the system call will actually check its range parameters
        correctly; refuse to copy into files for which the caller does not
        have sufficient privileges; update mtime and strip setuid like file
        writes are supposed to do; and allows copying up to the EOF of the
        source file instead of failing the call like we used to.
      
        Summary:
      
         - Create a generic copy_file_range handler and make individual
           filesystems responsible for calling it (i.e. no more assuming that
           do_splice_direct will work or is appropriate)
      
         - Refactor copy_file_range and remap_range parameter checking where
           they are the same
      
         - Install missing copy_file_range parameter checking(!)
      
         - Remove suid/sgid and update mtime like any other file write
      
         - Change the behavior so that a copy range crossing the source file's
           eof will result in a short copy to the source file's eof instead of
           EINVAL
      
         - Permit filesystems to decide if they want to handle
           cross-superblock copy_file_range in their local handlers"
      
      * tag 'copy-file-range-fixes-1' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux:
        fuse: copy_file_range needs to strip setuid bits and update timestamps
        vfs: allow copy_file_range to copy across devices
        xfs: use file_modified() helper
        vfs: introduce file_modified() helper
        vfs: add missing checks to copy_file_range
        vfs: remove redundant checks from generic_remap_checks()
        vfs: introduce generic_file_rw_checks()
        vfs: no fallback for ->copy_file_range
        vfs: introduce generic_copy_file_range()
      40f06c79
    • Linus Torvalds's avatar
      Merge tag 'iomap-5.3-merge-1' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · a47f5c56
      Linus Torvalds authored
      Pull iomap updates from Darrick Wong:
       "There are a few fixes for gfs2 but otherwise it's pretty quiet so far.
      
         - Only mark inode dirty at the end of writing to a file (instead of
           once for every page written).
      
         - Fix for an accounting error in the page_done callback"
      
      * tag 'iomap-5.3-merge-1' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux:
        iomap: fix page_done callback for short writes
        fs: fold __generic_write_end back into generic_write_end
        iomap: don't mark the inode dirty in iomap_write_end
      a47f5c56
    • Linus Torvalds's avatar
      Merge tag 'for_v5.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs · 682f7c5c
      Linus Torvalds authored
      Pull ext2, udf and quota updates from Jan Kara:
      
       - some ext2 fixes and cleanups
      
       - a fix of udf bug when extending files
      
       - a fix of quota Q_XGETQSTAT[V] handling
      
      * tag 'for_v5.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
        udf: Fix incorrect final NOT_ALLOCATED (hole) extent length
        ext2: Use kmemdup rather than duplicating its implementation
        quota: honor quota type in Q_XGETQSTAT[V] calls
        ext2: Always brelse bh on failure in ext2_iget()
        ext2: add missing brelse() in ext2_iget()
        ext2: Fix a typo in ext2_getattr argument
        ext2: fix a typo in comment
        ext2: add missing brelse() in ext2_new_inode()
        ext2: optimize ext2_xattr_get()
        ext2: introduce new helper for xattr entry comparison
        ext2: merge xattr next entry check to ext2_xattr_entry_valid()
        ext2: code cleanup for ext2_preread_inode()
        ext2: code cleanup by using test_opt() and clear_opt()
        doc: ext2: update description of quota options for ext2
        ext2: Strengthen xattr block checks
        ext2: Merge loops in ext2_xattr_set()
        ext2: introduce helper for xattr entry validation
        ext2: introduce helper for xattr header validation
        quota: add dqi_dirty_list description to comment of Dquot List Management
      682f7c5c
    • Linus Torvalds's avatar
      Merge tag 'fsnotify_for_v5.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs · e6983afd
      Linus Torvalds authored
      Pull fsnotify updates from Jan Kara:
       "This contains cleanups of the fsnotify name removal hook and also a
        patch to disable fanotify permission events for 'proc' filesystem"
      
      * tag 'fsnotify_for_v5.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
        fsnotify: get rid of fsnotify_nameremove()
        fsnotify: move fsnotify_nameremove() hook out of d_delete()
        configfs: call fsnotify_rmdir() hook
        debugfs: call fsnotify_{unlink,rmdir}() hooks
        debugfs: simplify __debugfs_remove_file()
        devpts: call fsnotify_unlink() hook
        tracefs: call fsnotify_{unlink,rmdir}() hooks
        rpc_pipefs: call fsnotify_{unlink,rmdir}() hooks
        btrfs: call fsnotify_rmdir() hook
        fsnotify: add empty fsnotify_{unlink,rmdir}() hooks
        fanotify: Disallow permission events for proc filesystem
      e6983afd
    • Linus Torvalds's avatar
      Merge tag 'locks-v5.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/jlayton/linux · 988052f4
      Linus Torvalds authored
      Pull file locking updates from Jeff Layton:
       "Just a couple of small lease-related patches this cycle.
      
        One from Ira to add a new tracepoint that fires during lease conflict
        checks, and another patch from Amir to reduce false positives when
        checking for lease conflicts"
      
      * tag 'locks-v5.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/jlayton/linux:
        locks: eliminate false positive conflicts for write lease
        locks: Add trace_leases_conflict
      988052f4
    • Linus Torvalds's avatar
      Revert "Merge tag 'keys-acl-20190703' of... · 028db3e2
      Linus Torvalds authored
      Revert "Merge tag 'keys-acl-20190703' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs"
      
      This reverts merge 0f75ef6a (and thus
      effectively commits
      
         7a1ade84 ("keys: Provide KEYCTL_GRANT_PERMISSION")
         2e12256b ("keys: Replace uid/gid/perm permissions checking with an ACL")
      
      that the merge brought in).
      
      It turns out that it breaks booting with an encrypted volume, and Eric
      biggers reports that it also breaks the fscrypt tests [1] and loading of
      in-kernel X.509 certificates [2].
      
      The root cause of all the breakage is likely the same, but David Howells
      is off email so rather than try to work it out it's getting reverted in
      order to not impact the rest of the merge window.
      
       [1] https://lore.kernel.org/lkml/20190710011559.GA7973@sol.localdomain/
       [2] https://lore.kernel.org/lkml/20190710013225.GB7973@sol.localdomain/
      
      Link: https://lore.kernel.org/lkml/CAHk-=wjxoeMJfeBahnWH=9zShKp2bsVy527vo3_y8HfOdhwAAw@mail.gmail.com/Reported-by: default avatarEric Biggers <ebiggers@kernel.org>
      Cc: David Howells <dhowells@redhat.com>
      Cc: James Morris <jmorris@namei.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      028db3e2