1. 21 Aug, 2019 12 commits
    • Eduardo Barretto's avatar
      staging: kpc2000: kpc2000_i2c: Fix different address spaces warnings · 1327d35a
      Eduardo Barretto authored
      This patch fixes the following sparse warnings:
      
      kpc2000_i2c.c:137: warning: incorrect type in argument 1
                                         (different address spaces)
      kpc2000_i2c.c:137:    expected void const volatile [noderef] <asn:2> *addr
      kpc2000_i2c.c:137:    got void *
      kpc2000_i2c.c:146: warning: incorrect type in argument 2
                                         (different address spaces)
      kpc2000_i2c.c:146:    expected void volatile [noderef] <asn:2> *addr
      kpc2000_i2c.c:146:    got void *
      kpc2000_i2c.c:147: warning: incorrect type in argument 1
                                         (different address spaces)
      kpc2000_i2c.c:147:    expected void const volatile [noderef] <asn:2> *addr
      kpc2000_i2c.c:147:    got void *
      kpc2000_i2c.c:166: warning: incorrect type in argument 1
                                         (different address spaces)
      kpc2000_i2c.c:166:    expected void const volatile [noderef] <asn:2> *addr
      kpc2000_i2c.c:166:    got void *
      kpc2000_i2c.c:166: warning: incorrect type in argument 2
                                        (different address spaces)
      kpc2000_i2c.c:166:    expected void volatile [noderef] <asn:2> *addr
      kpc2000_i2c.c:166:    got void *
      kpc2000_i2c.c:168: warning: incorrect type in argument 1
                                         (different address spaces)
      kpc2000_i2c.c:168:    expected void const volatile [noderef] <asn:2> *addr
      kpc2000_i2c.c:168:    got void *
      kpc2000_i2c.c:168: warning: incorrect type in argument 2
                                         (different address spaces)
      kpc2000_i2c.c:168:    expected void volatile [noderef] <asn:2> *addr
      kpc2000_i2c.c:168:    got void *
      kpc2000_i2c.c:171: warning: incorrect type in argument 1
                                         (different address spaces)
      kpc2000_i2c.c:171:    expected void const volatile [noderef] <asn:2> *addr
      kpc2000_i2c.c:171:    got void *
      kpc2000_i2c.c:174: warning: incorrect type in argument 2
                                         (different address spaces)
      kpc2000_i2c.c:174:    expected void volatile [noderef] <asn:2> *addr
      kpc2000_i2c.c:174:    got void *
      kpc2000_i2c.c:193: warning: incorrect type in argument 2
                                         (different address spaces)
      kpc2000_i2c.c:193:    expected void volatile [noderef] <asn:2> *addr
      kpc2000_i2c.c:193:    got void *
      kpc2000_i2c.c:194: warning: incorrect type in argument 1
                                         (different address spaces)
      kpc2000_i2c.c:194:    expected void const volatile [noderef] <asn:2> *addr
      kpc2000_i2c.c:194:    got void *
      kpc2000_i2c.c:214: warning: incorrect type in argument 2
                                        (different address spaces)
      kpc2000_i2c.c:214:    expected void volatile [noderef] <asn:2> *addr
      kpc2000_i2c.c:214:    got void *
      kpc2000_i2c.c:219: warning: incorrect type in argument 1
                                        (different address spaces)
      kpc2000_i2c.c:219:    expected void const volatile [noderef] <asn:2> *addr
      kpc2000_i2c.c:219:    got void *
      kpc2000_i2c.c:226: warning: incorrect type in argument 2
                                        (different address spaces)
      kpc2000_i2c.c:226:    expected void volatile [noderef] <asn:2> *addr
      kpc2000_i2c.c:226:    got void *
      kpc2000_i2c.c:238: warning: incorrect type in argument 1
                                         (different address spaces)
      kpc2000_i2c.c:238:    expected void const volatile [noderef] <asn:2> *addr
      kpc2000_i2c.c:238:    got void *
      kpc2000_i2c.c:244: warning: incorrect type in argument 2
                                        (different address spaces)
      kpc2000_i2c.c:244:    expected void volatile [noderef] <asn:2> *addr
      kpc2000_i2c.c:244:    got void *
      kpc2000_i2c.c:252: warning: incorrect type in argument 1
                                        (different address spaces)
      kpc2000_i2c.c:252:    expected void const volatile [noderef] <asn:2> *addr
      kpc2000_i2c.c:252:    got void *
      kpc2000_i2c.c:257: warning: incorrect type in argument 2
                                        (different address spaces)
      kpc2000_i2c.c:257:    expected void volatile [noderef] <asn:2> *addr
      kpc2000_i2c.c:257:    got void *
      kpc2000_i2c.c:259: warning: incorrect type in argument 2
      				   (different address spaces)
      kpc2000_i2c.c:259:    expected void volatile [noderef] <asn:2> *addr
      kpc2000_i2c.c:259:    got void *
      kpc2000_i2c.c:267: warning: incorrect type in argument 1
                                         (different address spaces)
      kpc2000_i2c.c:267:    expected void const volatile [noderef] <asn:2> *addr
      kpc2000_i2c.c:267:    got void *
      kpc2000_i2c.c:273: warning: incorrect type in argument 1
                                         (different address spaces)
      kpc2000_i2c.c:273:    expected void const volatile [noderef] <asn:2> *addr
      kpc2000_i2c.c:273:    got void *
      kpc2000_i2c.c:293: warning: incorrect type in argument 2
                                         (different address spaces)
      kpc2000_i2c.c:293:    expected void volatile [noderef] <asn:2> *addr
      kpc2000_i2c.c:293:    got void *
      kpc2000_i2c.c:294: warning: incorrect type in argument 2
                                         (different address spaces)
      kpc2000_i2c.c:294:    expected void volatile [noderef] <asn:2> *addr
      kpc2000_i2c.c:294:    got void *
      kpc2000_i2c.c:309: warning: incorrect type in argument 2
                                         (different address spaces)
      kpc2000_i2c.c:309:    expected void volatile [noderef] <asn:2> *addr
      kpc2000_i2c.c:309:    got void *
      kpc2000_i2c.c:312: warning: incorrect type in argument 2
                                         (different address spaces)
      kpc2000_i2c.c:312:    expected void volatile [noderef] <asn:2> *addr
      kpc2000_i2c.c:312:    got void *
      kpc2000_i2c.c:317: warning: incorrect type in argument 1
                                         (different address spaces)
      kpc2000_i2c.c:317:    expected void const volatile [noderef] <asn:2> *addr
      kpc2000_i2c.c:317:    got void *
      kpc2000_i2c.c:324: warning: incorrect type in argument 1
                                         (different address spaces)
      kpc2000_i2c.c:324:    expected void const volatile [noderef] <asn:2> *addr
      kpc2000_i2c.c:324:    got void *
      kpc2000_i2c.c:328: warning: incorrect type in argument 1
                                         (different address spaces)
      kpc2000_i2c.c:328:    expected void const volatile [noderef] <asn:2> *addr
      kpc2000_i2c.c:328:    got void *
      kpc2000_i2c.c:329: warning: incorrect type in argument 2
                                         (different address spaces)
      kpc2000_i2c.c:329:    expected void volatile [noderef] <asn:2> *addr
      kpc2000_i2c.c:329:    got void *
      kpc2000_i2c.c:330: warning: incorrect type in argument 2
                                         (different address spaces)
      kpc2000_i2c.c:330:    expected void volatile [noderef] <asn:2> *addr
      kpc2000_i2c.c:330:    got void *
      kpc2000_i2c.c:338: warning: incorrect type in argument 1
                                         (different address spaces)
      kpc2000_i2c.c:338:    expected void const volatile [noderef] <asn:2> *addr
      kpc2000_i2c.c:338:    got void *
      kpc2000_i2c.c:340: warning: incorrect type in argument 2
                                         (different address spaces)
      kpc2000_i2c.c:340:    expected void volatile [noderef] <asn:2> *addr
      kpc2000_i2c.c:340:    got void *
      kpc2000_i2c.c:342: warning: incorrect type in argument 2
                                         (different address spaces)
      kpc2000_i2c.c:342:    expected void volatile [noderef] <asn:2> *addr
      kpc2000_i2c.c:342:    got void *
      kpc2000_i2c.c:350: warning: incorrect type in argument 1
                                        (different address spaces)
      kpc2000_i2c.c:350:    expected void const volatile [noderef] <asn:2> *addr
      kpc2000_i2c.c:350:    got void *
      kpc2000_i2c.c:350: warning: incorrect type in argument 2
                                        (different address spaces)
      kpc2000_i2c.c:350:    expected void volatile [noderef] <asn:2> *addr
      kpc2000_i2c.c:350:    got void *
      kpc2000_i2c.c:351: warning: incorrect type in argument 1
                                         (different address spaces)
      kpc2000_i2c.c:351:    expected void const volatile [noderef] <asn:2> *addr
      kpc2000_i2c.c:351:    got void *
      kpc2000_i2c.c:414: warning: incorrect type in argument 2
                                         (different address spaces)
      kpc2000_i2c.c:414:    expected void volatile [noderef] <asn:2> *addr
      kpc2000_i2c.c:414:    got void *
      kpc2000_i2c.c:420: warning: incorrect type in argument 2
                                         (different address spaces)
      kpc2000_i2c.c:420:    expected void volatile [noderef] <asn:2> *addr
      kpc2000_i2c.c:420:    got void *
      kpc2000_i2c.c:422: warning: incorrect type in argument 2
                                         (different address spaces)
      kpc2000_i2c.c:422:    expected void volatile [noderef] <asn:2> *addr
      kpc2000_i2c.c:422:    got void *
      kpc2000_i2c.c:427: warning: incorrect type in argument 2
                                         (different address spaces)
      kpc2000_i2c.c:427:    expected void volatile [noderef] <asn:2> *addr
      kpc2000_i2c.c:427:    got void *
      kpc2000_i2c.c:428: warning: incorrect type in argument 2
                                         (different address spaces)
      kpc2000_i2c.c:428:    expected void volatile [noderef] <asn:2> *addr
      kpc2000_i2c.c:428:    got void *
      kpc2000_i2c.c:430: warning: incorrect type in argument 2
                                         (different address spaces)
      kpc2000_i2c.c:430:    expected void volatile [noderef] <asn:2> *addr
      kpc2000_i2c.c:430:    got void *
      kpc2000_i2c.c:435: warning: incorrect type in argument 2
                                         (different address spaces)
      kpc2000_i2c.c:435:    expected void volatile [noderef] <asn:2> *addr
      kpc2000_i2c.c:435:    got void *
      kpc2000_i2c.c:436: warning: incorrect type in argument 2
                                         (different address spaces)
      kpc2000_i2c.c:436:    expected void volatile [noderef] <asn:2> *addr
      kpc2000_i2c.c:436:    got void *
      kpc2000_i2c.c:438: warning: incorrect type in argument 2
                                         (different address spaces)
      kpc2000_i2c.c:438:    expected void volatile [noderef] <asn:2> *addr
      kpc2000_i2c.c:438:    got void *
      kpc2000_i2c.c:439: warning: incorrect type in argument 2
                                         (different address spaces)
      kpc2000_i2c.c:439:    expected void volatile [noderef] <asn:2> *addr
      kpc2000_i2c.c:439:    got void *
      kpc2000_i2c.c:445: warning: incorrect type in argument 2
                                         (different address spaces)
      kpc2000_i2c.c:445:    expected void volatile [noderef] <asn:2> *addr
      kpc2000_i2c.c:445:    got void *
      kpc2000_i2c.c:446: warning: incorrect type in argument 2
                                         (different address spaces)
      kpc2000_i2c.c:446:    expected void volatile [noderef] <asn:2> *addr
      kpc2000_i2c.c:446:    got void *
      kpc2000_i2c.c:454: warning: incorrect type in argument 2
                                         (different address spaces)
      kpc2000_i2c.c:454:    expected void volatile [noderef] <asn:2> *addr
      kpc2000_i2c.c:454:    got void *
      kpc2000_i2c.c:459: warning: incorrect type in argument 2
                                         (different address spaces)
      kpc2000_i2c.c:459:    expected void volatile [noderef] <asn:2> *addr
      kpc2000_i2c.c:459:    got void *
      kpc2000_i2c.c:461: warning: incorrect type in argument 2
                                         (different address spaces)
      kpc2000_i2c.c:461:    expected void volatile [noderef] <asn:2> *addr
      kpc2000_i2c.c:461:    got void *
      kpc2000_i2c.c:472: warning: incorrect type in argument 1
                                         (different address spaces)
      kpc2000_i2c.c:472:    expected void const volatile [noderef] <asn:2> *addr
      kpc2000_i2c.c:472:    got void *
      kpc2000_i2c.c:472: warning: incorrect type in argument 2
                                         (different address spaces)
      kpc2000_i2c.c:472:    expected void volatile [noderef] <asn:2> *addr
      kpc2000_i2c.c:472:    got void *
      kpc2000_i2c.c:475: warning: incorrect type in argument 1
                                         (different address spaces)
      kpc2000_i2c.c:475:    expected void const volatile [noderef] <asn:2> *addr
      kpc2000_i2c.c:475:    got void *
      kpc2000_i2c.c:475: warning: incorrect type in argument 2
                                         (different address spaces)
      kpc2000_i2c.c:475:    expected void volatile [noderef] <asn:2> *addr
      kpc2000_i2c.c:475:    got void *
      kpc2000_i2c.c:493: warning: incorrect type in argument 1
                                         (different address spaces)
      kpc2000_i2c.c:493:    expected void const volatile [noderef] <asn:2> *addr
      kpc2000_i2c.c:493:    got void *
      kpc2000_i2c.c:493: warning: incorrect type in argument 2
                                         (different address spaces)
      kpc2000_i2c.c:493:    expected void volatile [noderef] <asn:2> *addr
      kpc2000_i2c.c:493:    got void *
      kpc2000_i2c.c:512: warning: incorrect type in argument 1
                                         (different address spaces)
      kpc2000_i2c.c:512:    expected void const volatile [noderef] <asn:2> *addr
      kpc2000_i2c.c:512:    got void *
      kpc2000_i2c.c:516: warning: incorrect type in argument 1
                                         (different address spaces)
      kpc2000_i2c.c:516:    expected void const volatile [noderef] <asn:2> *addr
      kpc2000_i2c.c:516:    got void *
      kpc2000_i2c.c:516: warning: incorrect type in argument 1
                                         (different address spaces)
      kpc2000_i2c.c:516:    expected void const volatile [noderef] <asn:2> *addr
      kpc2000_i2c.c:516:    got void *
      Signed-off-by: default avatarEduardo Barretto <edusbarretto@gmail.com>
      Link: https://lore.kernel.org/r/20190818183555.7167-1-edusbarretto@gmail.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      1327d35a
    • Donald Yandt's avatar
      staging: android: Remove ion device tree bindings from the TODO · be237202
      Donald Yandt authored
      Commit 23a4388f ("staging: android: ion: Remove file ion_chunk_heap.c")
      and eadbf7a3 ("staging: android: ion: Remove file ion_carveout_heap.c")
      removed the chunk and carveout heaps from ion but left behind the device
      tree bindings for them in the TODO, this patch removes it.
      Signed-off-by: default avatarDonald Yandt <donald.yandt@gmail.com>
      Link: https://lore.kernel.org/r/20190818152023.891-1-donald.yandt@gmail.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      be237202
    • Christophe JAILLET's avatar
      staging: rtl8712: Improve naming of include hearder guards · f55ef00e
      Christophe JAILLET authored
      Choose a better name for the include hearder guard used in rtl871x_io.h.
      '_IO_H_' is to generic and does not match the comment after the #endif.
      Use '_RTL871X_IO_H_' instead.
      
      Also make the comments in the #endif /* XXX */ match the name used in
      #ifndef.
      Signed-off-by: default avatarChristophe JAILLET <christophe.jaillet@wanadoo.fr>
      Link: https://lore.kernel.org/r/20190818150609.3376-1-christophe.jaillet@wanadoo.frSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      f55ef00e
    • Gao Xiang's avatar
      staging: erofs: avoid loop in submit chains · bfc4ccb1
      Gao Xiang authored
      As reported by erofs-utils fuzzer, 2 conditions
      can happen in corrupted images, which can cause
      unexpected behaviors.
       - access the same pcluster one more time;
       - access the tail end pcluster again, e.g.
                  _ access again (will trigger tail merging)
                 |
           1 2 3 1 2             ->   1 2 3 1
           |_ tail end of the chain    \___/ (unexpected behavior)
      Let's detect and avoid them now.
      Reviewed-by: default avatarChao Yu <yuchao0@huawei.com>
      Signed-off-by: default avatarGao Xiang <gaoxiang25@huawei.com>
      Link: https://lore.kernel.org/r/20190821030908.40282-1-gaoxiang25@huawei.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      bfc4ccb1
    • Hariprasad Kelam's avatar
    • Masanari Iida's avatar
    • Gao Xiang's avatar
      staging: erofs: avoid endless loop of invalid lookback distance 0 · 598bb891
      Gao Xiang authored
      As reported by erofs-utils fuzzer, Lookback distance should
      be a positive number, so it should be actually looked back
      rather than spinning.
      
      Fixes: 02827e17 ("staging: erofs: add erofs_map_blocks_iter")
      Cc: <stable@vger.kernel.org> # 4.19+
      Signed-off-by: default avatarGao Xiang <gaoxiang25@huawei.com>
      Reviewed-by: default avatarChao Yu <yuchao0@huawei.com>
      Link: https://lore.kernel.org/r/20190819103426.87579-7-gaoxiang25@huawei.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      598bb891
    • Gao Xiang's avatar
      staging: erofs: add two missing erofs_workgroup_put for corrupted images · 138e1a09
      Gao Xiang authored
      As reported by erofs-utils fuzzer, these error handling
      path will be entered to handle corrupted images.
      
      Lack of erofs_workgroup_puts will cause unmounting
      unsuccessfully.
      
      Fix these return values to EFSCORRUPTED as well.
      
      Fixes: 3883a79a ("staging: erofs: introduce VLE decompression support")
      Cc: <stable@vger.kernel.org> # 4.19+
      Signed-off-by: default avatarGao Xiang <gaoxiang25@huawei.com>
      Reviewed-by: default avatarChao Yu <yuchao0@huawei.com>
      Link: https://lore.kernel.org/r/20190819103426.87579-4-gaoxiang25@huawei.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      138e1a09
    • Gao Xiang's avatar
      staging: erofs: cannot set EROFS_V_Z_INITED_BIT if fill_inode_lazy fails · 3407a419
      Gao Xiang authored
      As reported by erofs-utils fuzzer, unsupported compressed
      clustersize will make fill_inode_lazy fail, for such case
      we cannot set EROFS_V_Z_INITED_BIT since we need return
      failure for each z_erofs_map_blocks_iter().
      
      Fixes: 152a333a ("staging: erofs: add compacted compression indexes support")
      Cc: <stable@vger.kernel.org> # 5.3+
      Signed-off-by: default avatarGao Xiang <gaoxiang25@huawei.com>
      Reviewed-by: default avatarChao Yu <yuchao0@huawei.com>
      Link: https://lore.kernel.org/r/20190819103426.87579-3-gaoxiang25@huawei.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      3407a419
    • Gao Xiang's avatar
      staging: erofs: some compressed cluster should be submitted for corrupted images · ee45197c
      Gao Xiang authored
      As reported by erofs_utils fuzzer, a logical page can belong
      to at most 2 compressed clusters, if one compressed cluster
      is corrupted, but the other has been ready in submitting chain.
      
      The chain needs to submit anyway in order to keep the page
      working properly (page unlocked with PG_error set, PG_uptodate
      not set).
      
      Let's fix it now.
      
      Fixes: 3883a79a ("staging: erofs: introduce VLE decompression support")
      Cc: <stable@vger.kernel.org> # 4.19+
      Signed-off-by: default avatarGao Xiang <gaoxiang25@huawei.com>
      Reviewed-by: default avatarChao Yu <yuchao0@huawei.com>
      Link: https://lore.kernel.org/r/20190819103426.87579-2-gaoxiang25@huawei.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      ee45197c
    • Gao Xiang's avatar
      staging: erofs: fix an error handling in erofs_readdir() · acb383f1
      Gao Xiang authored
      Richard observed a forever loop of erofs_read_raw_page() [1]
      which can be generated by forcely setting ->u.i_blkaddr
      to 0xdeadbeef (as my understanding block layer can
      handle access beyond end of device correctly).
      
      After digging into that, it seems the problem is highly
      related with directories and then I found the root cause
      is an improper error handling in erofs_readdir().
      
      Let's fix it now.
      
      [1] https://lore.kernel.org/r/1163995781.68824.1566084358245.JavaMail.zimbra@nod.at/Reported-by: default avatarRichard Weinberger <richard@nod.at>
      Fixes: 3aa8ec71 ("staging: erofs: add directory operations")
      Cc: <stable@vger.kernel.org> # 4.19+
      Reviewed-by: default avatarChao Yu <yuchao0@huawei.com>
      Signed-off-by: default avatarGao Xiang <gaoxiang25@huawei.com>
      Link: https://lore.kernel.org/r/20190818125457.25906-1-hsiangkao@aol.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      acb383f1
    • Gao Xiang's avatar
      staging: erofs: refuse to mount images with malformed volume name · a64d9493
      Gao Xiang authored
      As Richard reminder [1], A valid volume name should be
      ended in NIL terminator within the length of volume_name.
      
      Since this field currently isn't really used, let's fix
      it to avoid potential bugs in the future.
      
      [1] https://lore.kernel.org/r/1133002215.69049.1566119033047.JavaMail.zimbra@nod.at/Reported-by: default avatarRichard Weinberger <richard@nod.at>
      Signed-off-by: default avatarGao Xiang <gaoxiang25@huawei.com>
      Reviewed-by: default avatarChao Yu <yuchao0@huawei.com>
      Link: https://lore.kernel.org/r/20190818102824.22330-1-hsiangkao@aol.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      a64d9493
  2. 19 Aug, 2019 1 commit
  3. 18 Aug, 2019 15 commits
  4. 17 Aug, 2019 9 commits
  5. 16 Aug, 2019 3 commits
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · b7e7c85d
      Linus Torvalds authored
      Pull arm64 fixes from Catalin Marinas:
      
       - Don't taint the kernel if CPUs have different sets of page sizes
         supported (other than the one in use).
      
       - Issue I-cache maintenance for module ftrace trampoline.
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64: ftrace: Ensure module ftrace trampoline is coherent with I-side
        arm64: cpufeature: Don't treat granule sizes as strict
      b7e7c85d
    • Will Deacon's avatar
      arm64: ftrace: Ensure module ftrace trampoline is coherent with I-side · b6143d10
      Will Deacon authored
      The initial support for dynamic ftrace trampolines in modules made use
      of an indirect branch which loaded its target from the beginning of
      a special section (e71a4e1b ("arm64: ftrace: add support for far
      branches to dynamic ftrace")). Since no instructions were being patched,
      no cache maintenance was needed. However, later in be0f272b ("arm64:
      ftrace: emit ftrace-mod.o contents through code") this code was reworked
      to output the trampoline instructions directly into the PLT entry but,
      unfortunately, the necessary cache maintenance was overlooked.
      
      Add a call to __flush_icache_range() after writing the new trampoline
      instructions but before patching in the branch to the trampoline.
      
      Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
      Cc: James Morse <james.morse@arm.com>
      Cc: <stable@vger.kernel.org>
      Fixes: be0f272b ("arm64: ftrace: emit ftrace-mod.o contents through code")
      Signed-off-by: default avatarWill Deacon <will@kernel.org>
      Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      b6143d10
    • Linus Torvalds's avatar
      Merge tag 'pm-5.3-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 2d63ba3e
      Linus Torvalds authored
      Pull power management fixes from Rafael Wysocki:
       "These add a check to avoid recent suspend-to-idle power regression on
        systems with NVMe drives where the PCIe ASPM policy is "performance"
        (or when the kernel is built without ASPM support), fix an issue
        related to frequency limits in the schedutil cpufreq governor and fix
        a mistake related to the PM QoS usage in the cpufreq core introduced
        recently.
      
        Specifics:
      
         - Disable NVMe power optimization related to suspend-to-idle added
           recently on systems where PCIe ASPM is not able to put PCIe links
           into low-power states to prevent excess power from being drawn by
           the system while suspended (Rafael Wysocki).
      
         - Make the schedutil governor handle frequency limits changes
           properly in all cases (Viresh Kumar).
      
         - Prevent the cpufreq core from treating positive values returned by
           dev_pm_qos_update_request() as errors (Viresh Kumar)"
      
      * tag 'pm-5.3-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        nvme-pci: Allow PCI bus-level PM to be used if ASPM is disabled
        PCI/ASPM: Add pcie_aspm_enabled()
        cpufreq: schedutil: Don't skip freq update when limits change
        cpufreq: dev_pm_qos_update_request() can return 1 on success
      2d63ba3e