All of lore.kernel.org
 help / color / mirror / Atom feed
* drivers/gpu/host1x/intr.c:29:2: warning: Attempt to free released memory [clang-analyzer-unix.Malloc]
@ 2022-04-18 11:55 kernel test robot
  0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2022-04-18 11:55 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 26409 bytes --]

CC: llvm(a)lists.linux.dev
CC: kbuild-all(a)lists.01.org
BCC: lkp(a)intel.com
CC: linux-kernel(a)vger.kernel.org
TO: Thierry Reding <treding@nvidia.com>
CC: Dave Airlie <airlied@redhat.com>

Hi Dave,

First bad commit (maybe != root cause):

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   b2d229d4ddb17db541098b83524d901257e93845
commit: 12fc11bce6f29a73eb3d61ab4e76a9ece3da1f1d Merge tag 'drm/tegra/for-5.13-rc1' of ssh://git.freedesktop.org/git/tegra/linux into drm-next
date:   12 months ago
:::::: branch date: 15 hours ago
:::::: commit date: 12 months ago
config: arm-randconfig-c002-20220418 (https://download.01.org/0day-ci/archive/20220418/202204181914.BwtVKdyD-lkp(a)intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project ef94609d6ebe981767788e6877b0b3b731d425af)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # install arm cross compiling tool for clang build
        # apt-get install binutils-arm-linux-gnueabi
        # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=12fc11bce6f29a73eb3d61ab4e76a9ece3da1f1d
        git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout 12fc11bce6f29a73eb3d61ab4e76a9ece3da1f1d
        # save the config file to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm clang-analyzer 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>


clang-analyzer warnings: (new ones prefixed by >>)
           ^
   include/linux/compiler_types.h:308:2: note: expanded from macro '_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
           ^
   include/linux/compiler_types.h:298:2: note: expanded from macro '__compiletime_assert'
           do {                                                            \
           ^
   kernel/locking/rtmutex.c:299:30: note: Passing null pointer value via 1st parameter 'left'
           return rt_mutex_waiter_less(__node_2_pi_waiter(a), __node_2_pi_waiter(b));
                                       ^
   kernel/locking/rtmutex.c:295:2: note: expanded from macro '__node_2_pi_waiter'
           rb_entry((node), struct rt_mutex_waiter, pi_tree_entry)
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/rbtree.h:38:37: note: expanded from macro 'rb_entry'
   #define rb_entry(ptr, type, member) container_of(ptr, type, member)
                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/kernel.h:707:41: note: expanded from macro 'container_of'
   #define container_of(ptr, type, member) ({                              \
                                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   kernel/locking/rtmutex.c:299:9: note: Calling 'rt_mutex_waiter_less'
           return rt_mutex_waiter_less(__node_2_pi_waiter(a), __node_2_pi_waiter(b));
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   kernel/locking/rtmutex.c:236:6: note: Access to field 'prio' results in a dereference of a null pointer (loaded from variable 'left')
           if (left->prio < right->prio)
               ^~~~
   kernel/locking/rtmutex.c:287:6: warning: Access to field '__rb_parent_color' results in a dereference of a null pointer [clang-analyzer-core.NullDereference]
           if (RB_EMPTY_NODE(&waiter->tree_entry))
               ^
   include/linux/rbtree.h:44:3: note: expanded from macro 'RB_EMPTY_NODE'
           ((node)->__rb_parent_color == (unsigned long)(node))
            ^
   kernel/locking/rtmutex.c:1894:6: note: Assuming the condition is true
           if (rt_mutex_owner(lock) != current) {
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   kernel/locking/rtmutex.c:1894:2: note: Taking true branch
           if (rt_mutex_owner(lock) != current) {
           ^
   kernel/locking/rtmutex.c:1895:23: note: Passing value via 2nd parameter 'waiter'
                   remove_waiter(lock, waiter);
                                       ^~~~~~
   kernel/locking/rtmutex.c:1895:3: note: Calling 'remove_waiter'
                   remove_waiter(lock, waiter);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   kernel/locking/rtmutex.c:1050:24: note: Assuming pointer value is null
           bool is_top_waiter = (waiter == rt_mutex_top_waiter(lock));
                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   kernel/locking/rtmutex.c:1054:2: note: Assuming 'debug_locks' is 0
           lockdep_assert_held(&lock->wait_lock);
           ^
   include/linux/lockdep.h:305:11: note: expanded from macro 'lockdep_assert_held'
                   WARN_ON(debug_locks && !lockdep_is_held(l));    \
                           ^~~~~~~~~~~
   include/asm-generic/bug.h:119:25: note: expanded from macro 'WARN_ON'
           int __ret_warn_on = !!(condition);                              \
                                  ^~~~~~~~~
   kernel/locking/rtmutex.c:1054:2: note: Left side of '&&' is false
           lockdep_assert_held(&lock->wait_lock);
           ^
   include/linux/lockdep.h:305:23: note: expanded from macro 'lockdep_assert_held'
                   WARN_ON(debug_locks && !lockdep_is_held(l));    \
                                       ^
   kernel/locking/rtmutex.c:1054:2: note: Taking false branch
           lockdep_assert_held(&lock->wait_lock);
           ^
   include/linux/lockdep.h:305:3: note: expanded from macro 'lockdep_assert_held'
                   WARN_ON(debug_locks && !lockdep_is_held(l));    \
                   ^
   include/asm-generic/bug.h:120:2: note: expanded from macro 'WARN_ON'
           if (unlikely(__ret_warn_on))                                    \
           ^
   kernel/locking/rtmutex.c:1054:2: note: Loop condition is false.  Exiting loop
           lockdep_assert_held(&lock->wait_lock);
           ^
   include/linux/lockdep.h:304:32: note: expanded from macro 'lockdep_assert_held'
   #define lockdep_assert_held(l)  do {                            \
                                   ^
   kernel/locking/rtmutex.c:1057:25: note: Passing null pointer value via 2nd parameter 'waiter'
           rt_mutex_dequeue(lock, waiter);
                                  ^~~~~~
   kernel/locking/rtmutex.c:1057:2: note: Calling 'rt_mutex_dequeue'
           rt_mutex_dequeue(lock, waiter);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   kernel/locking/rtmutex.c:287:6: note: Access to field '__rb_parent_color' results in a dereference of a null pointer
           if (RB_EMPTY_NODE(&waiter->tree_entry))
               ^
   include/linux/rbtree.h:44:3: note: expanded from macro 'RB_EMPTY_NODE'
           ((node)->__rb_parent_color == (unsigned long)(node))
            ^~~~~~~~~~~~~~~~~~~~~~~~~
   Suppressed 3 warnings (2 in non-user code, 1 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   10 warnings generated.
   Suppressed 10 warnings (9 in non-user code, 1 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   Suppressed 9 warnings (9 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   Suppressed 9 warnings (9 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   11 warnings generated.
>> drivers/gpu/host1x/intr.c:29:2: warning: Attempt to free released memory [clang-analyzer-unix.Malloc]
           kfree(container_of(kref, struct host1x_waitlist, refcount));
           ^
   drivers/gpu/host1x/intr.c:257:6: note: Assuming the condition is true
           if (atomic_cmpxchg(&waiter->state, WLS_CANCELLED, WLS_HANDLED) ==
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/host1x/intr.c:257:2: note: Taking true branch
           if (atomic_cmpxchg(&waiter->state, WLS_CANCELLED, WLS_HANDLED) ==
           ^
   drivers/gpu/host1x/intr.c:260:3: note: Calling 'kref_put'
                   kref_put(&waiter->refcount, waiter_release);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/kref.h:64:6: note: Assuming the condition is true
           if (refcount_dec_and_test(&kref->refcount)) {
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/kref.h:64:2: note: Taking true branch
           if (refcount_dec_and_test(&kref->refcount)) {
           ^
   include/linux/kref.h:65:3: note: Calling 'waiter_release'
                   release(kref);
                   ^~~~~~~~~~~~~
   drivers/gpu/host1x/intr.c:29:8: note: Left side of '&&' is false
           kfree(container_of(kref, struct host1x_waitlist, refcount));
                 ^
   include/linux/kernel.h:709:61: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
                                                                      ^
   drivers/gpu/host1x/intr.c:29:8: note: Taking false branch
           kfree(container_of(kref, struct host1x_waitlist, refcount));
                 ^
   include/linux/kernel.h:709:2: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
           ^
   include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
   #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
                                       ^
   include/linux/compiler_types.h:320:2: note: expanded from macro 'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
           ^
   include/linux/compiler_types.h:308:2: note: expanded from macro '_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
           ^
   include/linux/compiler_types.h:300:3: note: expanded from macro '__compiletime_assert'
                   if (!(condition))                                       \
                   ^
   drivers/gpu/host1x/intr.c:29:8: note: Loop condition is false.  Exiting loop
           kfree(container_of(kref, struct host1x_waitlist, refcount));
                 ^
   include/linux/kernel.h:709:2: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
           ^
   include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
   #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
                                       ^
   include/linux/compiler_types.h:320:2: note: expanded from macro 'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
           ^
   include/linux/compiler_types.h:308:2: note: expanded from macro '_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
           ^
   include/linux/compiler_types.h:298:2: note: expanded from macro '__compiletime_assert'
           do {                                                            \
           ^
   drivers/gpu/host1x/intr.c:29:2: note: Memory is released
           kfree(container_of(kref, struct host1x_waitlist, refcount));
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/kref.h:65:3: note: Returning; memory was released
                   release(kref);
                   ^~~~~~~~~~~~~
   drivers/gpu/host1x/intr.c:260:3: note: Returning; memory was released
                   kref_put(&waiter->refcount, waiter_release);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/host1x/intr.c:264:6: note: Assuming 'flush' is false
           if (flush) {
               ^~~~~
   drivers/gpu/host1x/intr.c:264:2: note: Taking false branch
           if (flush) {
           ^
   drivers/gpu/host1x/intr.c:270:2: note: Calling 'kref_put'
           kref_put(&waiter->refcount, waiter_release);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/kref.h:64:6: note: Assuming the condition is true
           if (refcount_dec_and_test(&kref->refcount)) {
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/kref.h:64:2: note: Taking true branch
           if (refcount_dec_and_test(&kref->refcount)) {
           ^
   include/linux/kref.h:65:3: note: Calling 'waiter_release'
                   release(kref);
                   ^~~~~~~~~~~~~
   drivers/gpu/host1x/intr.c:29:8: note: Left side of '&&' is false
           kfree(container_of(kref, struct host1x_waitlist, refcount));
                 ^
   include/linux/kernel.h:709:61: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
                                                                      ^
   drivers/gpu/host1x/intr.c:29:8: note: Taking false branch
           kfree(container_of(kref, struct host1x_waitlist, refcount));
                 ^
   include/linux/kernel.h:709:2: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
--
   9 warnings generated.
   Suppressed 9 warnings (9 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   Suppressed 9 warnings (9 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   Suppressed 9 warnings (9 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   Suppressed 9 warnings (9 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   Suppressed 9 warnings (9 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   Suppressed 9 warnings (8 in non-user code, 1 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   10 warnings generated.
   Suppressed 10 warnings (10 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   drivers/crypto/keembay/ocs-aes.c:1154:3: warning: 1st function call argument is an uninitialized value [clang-analyzer-core.CallAndMessage]
                   iowrite8(enc_a[i],
                   ^
   include/asm-generic/io.h:743:18: note: expanded from macro 'iowrite8'
   #define iowrite8 iowrite8
                    ^
   drivers/crypto/keembay/ocs-aes.c:1327:6: note: 'rc' is 0
           if (rc)
               ^~
   drivers/crypto/keembay/ocs-aes.c:1327:2: note: Taking false branch
           if (rc)
           ^
   drivers/crypto/keembay/ocs-aes.c:1369:6: note: Assuming 'rc' is 0
           if (rc)
               ^~
   drivers/crypto/keembay/ocs-aes.c:1369:2: note: Taking false branch
           if (rc)
           ^
   drivers/crypto/keembay/ocs-aes.c:1379:2: note: Calling 'ocs_aes_ccm_do_adata'
           ocs_aes_ccm_do_adata(aes_dev, adata_dma_list, adata_size);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/crypto/keembay/ocs-aes.c:1164:6: note: Assuming 'adata_size' is not equal to 0
           if (!adata_size) {
               ^~~~~~~~~~~
   drivers/crypto/keembay/ocs-aes.c:1164:2: note: Taking false branch
           if (!adata_size) {
           ^
   drivers/crypto/keembay/ocs-aes.c:1176:2: note: Calling 'ocs_aes_ccm_write_adata_len'
           ocs_aes_ccm_write_adata_len(aes_dev, adata_size);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/crypto/keembay/ocs-aes.c:1141:6: note: Assuming 'adata_len' is < 65280
           if (adata_len < 65280) {
               ^~~~~~~~~~~~~~~~~
   drivers/crypto/keembay/ocs-aes.c:1141:2: note: Taking true branch
           if (adata_len < 65280) {
           ^
   drivers/crypto/keembay/ocs-aes.c:1153:2: note: Loop condition is true.  Entering loop body
           for (i = 0; i < len; i++)
           ^
   drivers/crypto/keembay/ocs-aes.c:1153:23: note: The value 1 is assigned to 'i'
           for (i = 0; i < len; i++)
                                ^~~
   drivers/crypto/keembay/ocs-aes.c:1153:2: note: Loop condition is true.  Entering loop body
           for (i = 0; i < len; i++)
           ^
   drivers/crypto/keembay/ocs-aes.c:1154:3: note: 1st function call argument is an uninitialized value
                   iowrite8(enc_a[i],
                   ^        ~~~~~~~~
   include/asm-generic/io.h:743:18: note: expanded from macro 'iowrite8'
   #define iowrite8 iowrite8
                    ^
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   10 warnings generated.
   Suppressed 10 warnings (10 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   Suppressed 9 warnings (9 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   17 warnings generated.
   Suppressed 17 warnings (17 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   Suppressed 9 warnings (9 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   Suppressed 9 warnings (9 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   11 warnings generated.
>> drivers/gpu/host1x/intr.c:29:2: warning: Attempt to free released memory [clang-analyzer-unix.Malloc]
           kfree(container_of(kref, struct host1x_waitlist, refcount));
           ^
   drivers/gpu/host1x/intr.c:257:6: note: Assuming the condition is true
           if (atomic_cmpxchg(&waiter->state, WLS_CANCELLED, WLS_HANDLED) ==
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/host1x/intr.c:257:2: note: Taking true branch
           if (atomic_cmpxchg(&waiter->state, WLS_CANCELLED, WLS_HANDLED) ==
           ^
   drivers/gpu/host1x/intr.c:260:3: note: Calling 'kref_put'
                   kref_put(&waiter->refcount, waiter_release);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/kref.h:64:6: note: Assuming the condition is true
           if (refcount_dec_and_test(&kref->refcount)) {
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/kref.h:64:2: note: Taking true branch
           if (refcount_dec_and_test(&kref->refcount)) {
           ^
   include/linux/kref.h:65:3: note: Calling 'waiter_release'
                   release(kref);
                   ^~~~~~~~~~~~~
   drivers/gpu/host1x/intr.c:29:8: note: Left side of '&&' is false
           kfree(container_of(kref, struct host1x_waitlist, refcount));
                 ^
   include/linux/kernel.h:709:61: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
                                                                      ^
   drivers/gpu/host1x/intr.c:29:8: note: Taking false branch
           kfree(container_of(kref, struct host1x_waitlist, refcount));
                 ^
   include/linux/kernel.h:709:2: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
           ^
   include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
   #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
                                       ^
   include/linux/compiler_types.h:320:2: note: expanded from macro 'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
           ^
   include/linux/compiler_types.h:308:2: note: expanded from macro '_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
           ^
   include/linux/compiler_types.h:300:3: note: expanded from macro '__compiletime_assert'
                   if (!(condition))                                       \
                   ^
   drivers/gpu/host1x/intr.c:29:8: note: Loop condition is false.  Exiting loop
           kfree(container_of(kref, struct host1x_waitlist, refcount));
                 ^
   include/linux/kernel.h:709:2: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
           ^
   include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
   #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
                                       ^
   include/linux/compiler_types.h:320:2: note: expanded from macro 'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
           ^
   include/linux/compiler_types.h:308:2: note: expanded from macro '_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
           ^
   include/linux/compiler_types.h:298:2: note: expanded from macro '__compiletime_assert'
           do {                                                            \
           ^
   drivers/gpu/host1x/intr.c:29:2: note: Memory is released
           kfree(container_of(kref, struct host1x_waitlist, refcount));
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/kref.h:65:3: note: Returning; memory was released
                   release(kref);
                   ^~~~~~~~~~~~~
   drivers/gpu/host1x/intr.c:260:3: note: Returning; memory was released
                   kref_put(&waiter->refcount, waiter_release);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/host1x/intr.c:264:6: note: Assuming 'flush' is false
           if (flush) {
               ^~~~~
   drivers/gpu/host1x/intr.c:264:2: note: Taking false branch
           if (flush) {
           ^
   drivers/gpu/host1x/intr.c:270:2: note: Calling 'kref_put'
           kref_put(&waiter->refcount, waiter_release);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/kref.h:64:6: note: Assuming the condition is true
           if (refcount_dec_and_test(&kref->refcount)) {
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/kref.h:64:2: note: Taking true branch
           if (refcount_dec_and_test(&kref->refcount)) {
           ^
   include/linux/kref.h:65:3: note: Calling 'waiter_release'
                   release(kref);
                   ^~~~~~~~~~~~~
   drivers/gpu/host1x/intr.c:29:8: note: Left side of '&&' is false
           kfree(container_of(kref, struct host1x_waitlist, refcount));
                 ^
   include/linux/kernel.h:709:61: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
                                                                      ^
   drivers/gpu/host1x/intr.c:29:8: note: Taking false branch
           kfree(container_of(kref, struct host1x_waitlist, refcount));
                 ^
   include/linux/kernel.h:709:2: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \

vim +29 drivers/gpu/host1x/intr.c

7ede0b0bf3e259 Terje Bergstrom 2013-03-22  26  
7ede0b0bf3e259 Terje Bergstrom 2013-03-22  27  static void waiter_release(struct kref *kref)
7ede0b0bf3e259 Terje Bergstrom 2013-03-22  28  {
7ede0b0bf3e259 Terje Bergstrom 2013-03-22 @29  	kfree(container_of(kref, struct host1x_waitlist, refcount));
7ede0b0bf3e259 Terje Bergstrom 2013-03-22  30  }
7ede0b0bf3e259 Terje Bergstrom 2013-03-22  31  

:::::: The code at line 29 was first introduced by commit
:::::: 7ede0b0bf3e2595d40d6195b6fe4c4dcef438830 gpu: host1x: Add syncpoint wait and interrupts

:::::: TO: Terje Bergstrom <tbergstrom@nvidia.com>
:::::: CC: Thierry Reding <thierry.reding@avionic-design.de>

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

^ permalink raw reply	[flat|nested] 2+ messages in thread

* drivers/gpu/host1x/intr.c:29:2: warning: Attempt to free released memory [clang-analyzer-unix.Malloc]
@ 2021-11-19  1:56 kernel test robot
  0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2021-11-19  1:56 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 316449 bytes --]

CC: llvm(a)lists.linux.dev
CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Nick Desaulniers <ndesaulniers@google.com>
CC: Masahiro Yamada <masahiroy@kernel.org>
CC: Nathan Chancellor <nathan@kernel.org>

Hi Nick,

First bad commit (maybe != root cause):

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   8d0112ac6fd001f95aabb084ec2ccaa3637bc344
commit: f12b034afeb3a977bbb1c6584dedc0f3dc666f14 scripts/Makefile.clang: default to LLVM_IAS=1
date:   3 months ago
:::::: branch date: 5 hours ago
:::::: commit date: 3 months ago
config: arm-randconfig-c002-20211118 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project c46becf500df2a7fb4b4fce16178a036c344315a)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # install arm cross compiling tool for clang build
        # apt-get install binutils-arm-linux-gnueabi
        # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f12b034afeb3a977bbb1c6584dedc0f3dc666f14
        git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout f12b034afeb3a977bbb1c6584dedc0f3dc666f14
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm clang-analyzer 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>


clang-analyzer warnings: (new ones prefixed by >>)
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   kernel/locking/rtmutex.c:235:6: note: Access to field 'prio' results in a dereference of a null pointer (loaded from variable 'left')
           if (left->prio < right->prio)
               ^~~~
   kernel/locking/rtmutex.c:285:6: warning: Access to field '__rb_parent_color' results in a dereference of a null pointer [clang-analyzer-core.NullDereference]
           if (RB_EMPTY_NODE(&waiter->tree_entry))
               ^
   include/linux/rbtree.h:44:3: note: expanded from macro 'RB_EMPTY_NODE'
           ((node)->__rb_parent_color == (unsigned long)(node))
            ^
   kernel/locking/rtmutex.c:1764:6: note: Assuming the condition is true
           if (rt_mutex_owner(lock) != current) {
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   kernel/locking/rtmutex.c:1764:2: note: Taking true branch
           if (rt_mutex_owner(lock) != current) {
           ^
   kernel/locking/rtmutex.c:1765:23: note: Passing value via 2nd parameter 'waiter'
                   remove_waiter(lock, waiter);
                                       ^~~~~~
   kernel/locking/rtmutex.c:1765:3: note: Calling 'remove_waiter'
                   remove_waiter(lock, waiter);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   kernel/locking/rtmutex.c:1042:24: note: Assuming pointer value is null
           bool is_top_waiter = (waiter == rt_mutex_top_waiter(lock));
                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   kernel/locking/rtmutex.c:1046:2: note: 'debug_locks' is 0
           lockdep_assert_held(&lock->wait_lock);
           ^
   include/linux/lockdep.h:310:11: note: expanded from macro 'lockdep_assert_held'
                   WARN_ON(debug_locks &&                                  \
                           ^~~~~~~~~~~
   include/asm-generic/bug.h:121:25: note: expanded from macro 'WARN_ON'
           int __ret_warn_on = !!(condition);                              \
                                  ^~~~~~~~~
   kernel/locking/rtmutex.c:1046:2: note: Left side of '&&' is false
           lockdep_assert_held(&lock->wait_lock);
           ^
   include/linux/lockdep.h:310:23: note: expanded from macro 'lockdep_assert_held'
                   WARN_ON(debug_locks &&                                  \
                                       ^
   kernel/locking/rtmutex.c:1046:2: note: Taking false branch
           lockdep_assert_held(&lock->wait_lock);
           ^
   include/linux/lockdep.h:310:3: note: expanded from macro 'lockdep_assert_held'
                   WARN_ON(debug_locks &&                                  \
                   ^
   include/asm-generic/bug.h:122:2: note: expanded from macro 'WARN_ON'
           if (unlikely(__ret_warn_on))                                    \
           ^
   kernel/locking/rtmutex.c:1046:2: note: Loop condition is false.  Exiting loop
           lockdep_assert_held(&lock->wait_lock);
           ^
   include/linux/lockdep.h:309:32: note: expanded from macro 'lockdep_assert_held'
   #define lockdep_assert_held(l)  do {                                    \
                                   ^
   kernel/locking/rtmutex.c:1049:25: note: Passing null pointer value via 2nd parameter 'waiter'
           rt_mutex_dequeue(lock, waiter);
                                  ^~~~~~
   kernel/locking/rtmutex.c:1049:2: note: Calling 'rt_mutex_dequeue'
           rt_mutex_dequeue(lock, waiter);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   kernel/locking/rtmutex.c:285:6: note: Access to field '__rb_parent_color' results in a dereference of a null pointer
           if (RB_EMPTY_NODE(&waiter->tree_entry))
               ^
   include/linux/rbtree.h:44:3: note: expanded from macro 'RB_EMPTY_NODE'
           ((node)->__rb_parent_color == (unsigned long)(node))
            ^~~~~~~~~~~~~~~~~~~~~~~~~
   Suppressed 5 warnings (4 in non-user code, 1 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   5 warnings generated.
   Suppressed 5 warnings (5 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   11 warnings generated.
>> drivers/gpu/host1x/intr.c:29:2: warning: Attempt to free released memory [clang-analyzer-unix.Malloc]
           kfree(container_of(kref, struct host1x_waitlist, refcount));
           ^
   drivers/gpu/host1x/intr.c:257:6: note: Assuming the condition is true
           if (atomic_cmpxchg(&waiter->state, WLS_CANCELLED, WLS_HANDLED) ==
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/host1x/intr.c:257:2: note: Taking true branch
           if (atomic_cmpxchg(&waiter->state, WLS_CANCELLED, WLS_HANDLED) ==
           ^
   drivers/gpu/host1x/intr.c:260:3: note: Calling 'kref_put'
                   kref_put(&waiter->refcount, waiter_release);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/kref.h:64:2: note: Taking true branch
           if (refcount_dec_and_test(&kref->refcount)) {
           ^
   include/linux/kref.h:65:3: note: Calling 'waiter_release'
                   release(kref);
                   ^~~~~~~~~~~~~
   drivers/gpu/host1x/intr.c:29:8: note: Left side of '&&' is false
           kfree(container_of(kref, struct host1x_waitlist, refcount));
                 ^
   include/linux/kernel.h:495:61: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
                                                                      ^
   drivers/gpu/host1x/intr.c:29:8: note: Taking false branch
           kfree(container_of(kref, struct host1x_waitlist, refcount));
                 ^
   include/linux/kernel.h:495:2: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
           ^
   include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
   #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
                                       ^
   include/linux/compiler_types.h:328:2: note: expanded from macro 'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
           ^
   include/linux/compiler_types.h:316:2: note: expanded from macro '_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
           ^
   include/linux/compiler_types.h:308:3: note: expanded from macro '__compiletime_assert'
                   if (!(condition))                                       \
                   ^
   drivers/gpu/host1x/intr.c:29:8: note: Loop condition is false.  Exiting loop
           kfree(container_of(kref, struct host1x_waitlist, refcount));
                 ^
   include/linux/kernel.h:495:2: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
           ^
   include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
   #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
                                       ^
   include/linux/compiler_types.h:328:2: note: expanded from macro 'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
           ^
   include/linux/compiler_types.h:316:2: note: expanded from macro '_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
           ^
   include/linux/compiler_types.h:306:2: note: expanded from macro '__compiletime_assert'
           do {                                                            \
           ^
   drivers/gpu/host1x/intr.c:29:2: note: Memory is released
           kfree(container_of(kref, struct host1x_waitlist, refcount));
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/kref.h:65:3: note: Returning; memory was released
                   release(kref);
                   ^~~~~~~~~~~~~
   drivers/gpu/host1x/intr.c:260:3: note: Returning; memory was released
                   kref_put(&waiter->refcount, waiter_release);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/host1x/intr.c:264:6: note: Assuming 'flush' is false
           if (flush) {
               ^~~~~
   drivers/gpu/host1x/intr.c:264:2: note: Taking false branch
           if (flush) {
           ^
   drivers/gpu/host1x/intr.c:270:2: note: Calling 'kref_put'
           kref_put(&waiter->refcount, waiter_release);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/kref.h:64:2: note: Taking true branch
           if (refcount_dec_and_test(&kref->refcount)) {
           ^
   include/linux/kref.h:65:3: note: Calling 'waiter_release'
                   release(kref);
                   ^~~~~~~~~~~~~
   drivers/gpu/host1x/intr.c:29:8: note: Left side of '&&' is false
           kfree(container_of(kref, struct host1x_waitlist, refcount));
                 ^
   include/linux/kernel.h:495:61: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
                                                                      ^
   drivers/gpu/host1x/intr.c:29:8: note: Taking false branch
           kfree(container_of(kref, struct host1x_waitlist, refcount));
                 ^
   include/linux/kernel.h:495:2: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
           ^
   include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
   #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
                                       ^
   include/linux/compiler_types.h:328:2: note: expanded from macro 'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
--
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/spi/spi-stm32.c:444:7: note: Assuming 'div' is >= 'min_div'
           if ((div < min_div) || (div > max_div))
                ^~~~~~~~~~~~~
   drivers/spi/spi-stm32.c:444:6: note: Left side of '||' is false
           if ((div < min_div) || (div > max_div))
               ^
   drivers/spi/spi-stm32.c:444:26: note: Assuming 'div' is <= 'max_div'
           if ((div < min_div) || (div > max_div))
                                   ^~~~~~~~~~~~~
   drivers/spi/spi-stm32.c:444:2: note: Taking false branch
           if ((div < min_div) || (div > max_div))
           ^
   drivers/spi/spi-stm32.c:448:6: note: Assuming the condition is false
           if (div & (div - 1))
               ^~~~~~~~~~~~~~~
   drivers/spi/spi-stm32.c:448:2: note: Taking false branch
           if (div & (div - 1))
           ^
   drivers/spi/spi-stm32.c:451:3: note: The value 4294967295 is assigned to 'mbrdiv'
                   mbrdiv = fls(div) - 1;
                   ^~~~~~~~~~~~~~~~~~~~~
   drivers/spi/spi-stm32.c:453:38: note: The result of the left shift is undefined due to shifting by '4294967295', which is greater or equal to the width of type 'int'
           spi->cur_speed = spi->clk_rate / (1 << mbrdiv);
                                               ^  ~~~~~~
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   13 warnings generated.
   drivers/misc/kgdbts.c:709:2: warning: Call to function 'strcat' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcat'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
           strcat(get_buf, buf);
           ^~~~~~
   drivers/misc/kgdbts.c:709:2: note: Call to function 'strcat' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcat'. CWE-119
           strcat(get_buf, buf);
           ^~~~~~
   drivers/misc/kgdbts.c:714:2: warning: Call to function 'strcat' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcat'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
           strcat(get_buf, "#");
           ^~~~~~
   drivers/misc/kgdbts.c:714:2: note: Call to function 'strcat' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcat'. CWE-119
           strcat(get_buf, "#");
           ^~~~~~
   drivers/misc/kgdbts.c:1075:2: warning: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
           strcpy(config, opt);
           ^~~~~~
   drivers/misc/kgdbts.c:1075:2: note: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119
           strcpy(config, opt);
           ^~~~~~
   drivers/misc/kgdbts.c:1146:3: warning: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
                   strcpy(config, kmessage);
                   ^~~~~~
   drivers/misc/kgdbts.c:1146:3: note: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119
                   strcpy(config, kmessage);
                   ^~~~~~
   drivers/misc/kgdbts.c:1155:2: warning: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
           strcpy(config, kmessage);
           ^~~~~~
   drivers/misc/kgdbts.c:1155:2: note: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119
           strcpy(config, kmessage);
           ^~~~~~
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   5 warnings generated.
   lib/asn1_encoder.c:167:2: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]
           ret = 0;
           ^     ~
   lib/asn1_encoder.c:167:2: note: Value stored to 'ret' is never read
           ret = 0;
           ^     ~
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   5 warnings generated.
   lib/oid_registry.c:149:3: warning: Value stored to 'num' is never read [clang-analyzer-deadcode.DeadStores]
                   num = 0;
                   ^     ~
   lib/oid_registry.c:149:3: note: Value stored to 'num' is never read
                   num = 0;
                   ^     ~
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   5 warnings generated.
   Suppressed 5 warnings (4 in non-user code, 1 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   10 warnings generated.
>> drivers/soc/ixp4xx/ixp4xx-npe.c:684:22: warning: Value stored to 'np' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct device_node *np = dev->of_node;
                               ^~   ~~~~~~~~~~~~
   drivers/soc/ixp4xx/ixp4xx-npe.c:684:22: note: Value stored to 'np' during its initialization is never read
           struct device_node *np = dev->of_node;
                               ^~   ~~~~~~~~~~~~
   Suppressed 9 warnings (8 in non-user code, 1 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   Suppressed 9 warnings (9 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   10 warnings generated.
   drivers/regulator/qcom_spmi-regulator.c:401:8: warning: Excessive padding in 'struct spmi_regulator_data' (4 padding bytes, where 0 is optimal). 
   Optimal fields order: 
   name, 
   supply, 
   ocp, 
   base, 
   force_type, 
   consider reordering the fields or adding explicit padding members [clang-analyzer-optin.performance.Padding]
   struct spmi_regulator_data {
   ~~~~~~~^~~~~~~~~~~~~~~~~~~~~
   drivers/regulator/qcom_spmi-regulator.c:401:8: note: Excessive padding in 'struct spmi_regulator_data' (4 padding bytes, where 0 is optimal). Optimal fields order: name, supply, ocp, base, force_type, consider reordering the fields or adding explicit padding members
   struct spmi_regulator_data {
   ~~~~~~~^~~~~~~~~~~~~~~~~~~~~
   drivers/regulator/qcom_spmi-regulator.c:1159:2: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]
           ret = spmi_vreg_update_bits(vreg, SPMI_COMMON_REG_ENABLE,
           ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/regulator/qcom_spmi-regulator.c:1159:2: note: Value stored to 'ret' is never read
           ret = spmi_vreg_update_bits(vreg, SPMI_COMMON_REG_ENABLE,
           ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   Suppressed 9 warnings (8 in non-user code, 1 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   Suppressed 9 warnings (9 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   Suppressed 9 warnings (9 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   10 warnings generated.
   include/linux/log2.h:57:13: warning: The result of the left shift is undefined due to shifting by '32', which is greater or equal to the width of type 'unsigned long' [clang-analyzer-core.UndefinedBinaryOperatorResult]
           return 1UL << fls_long(n - 1);
                      ^
   lib/rhashtable.c:1090:8: note: Calling 'rhashtable_init'
           err = rhashtable_init(&hlt->ht, params);
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   lib/rhashtable.c:1021:7: note: Assuming field 'key_len' is not equal to 0
           if ((!params->key_len && !params->obj_hashfn) ||
                ^~~~~~~~~~~~~~~~
   lib/rhashtable.c:1021:24: note: Left side of '&&' is false
           if ((!params->key_len && !params->obj_hashfn) ||
                                 ^
   lib/rhashtable.c:1022:7: note: Assuming field 'obj_hashfn' is null
--
                                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/irqflags.h:176:3: note: expanded from macro 'raw_local_irq_restore'
                   raw_check_bogus_irq_restore();          \
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/irqflags.h:156:16: note: expanded from macro 'raw_check_bogus_irq_restore'
                   if (unlikely(!arch_irqs_disabled()))    \
                                ^~~~~~~~~~~~~~~~~~~~~
   include/linux/compiler.h:78:42: note: expanded from macro 'unlikely'
   # define unlikely(x)    __builtin_expect(!!(x), 0)
                                               ^
   drivers/input/joystick/cobra.c:72:2: note: Taking false branch
           local_irq_restore(flags);
           ^
   include/linux/irqflags.h:238:39: note: expanded from macro 'local_irq_restore'
   #define local_irq_restore(flags) do { raw_local_irq_restore(flags); } while (0)
                                         ^
   include/linux/irqflags.h:176:3: note: expanded from macro 'raw_local_irq_restore'
                   raw_check_bogus_irq_restore();          \
                   ^
   include/linux/irqflags.h:156:3: note: expanded from macro 'raw_check_bogus_irq_restore'
                   if (unlikely(!arch_irqs_disabled()))    \
                   ^
   drivers/input/joystick/cobra.c:72:2: note: Loop condition is false.  Exiting loop
           local_irq_restore(flags);
           ^
   include/linux/irqflags.h:238:39: note: expanded from macro 'local_irq_restore'
   #define local_irq_restore(flags) do { raw_local_irq_restore(flags); } while (0)
                                         ^
   include/linux/irqflags.h:176:3: note: expanded from macro 'raw_local_irq_restore'
                   raw_check_bogus_irq_restore();          \
                   ^
   include/linux/irqflags.h:155:2: note: expanded from macro 'raw_check_bogus_irq_restore'
           do {                                            \
           ^
   drivers/input/joystick/cobra.c:72:2: note: Loop condition is false.  Exiting loop
           local_irq_restore(flags);
           ^
   include/linux/irqflags.h:238:39: note: expanded from macro 'local_irq_restore'
   #define local_irq_restore(flags) do { raw_local_irq_restore(flags); } while (0)
                                         ^
   include/linux/irqflags.h:174:2: note: expanded from macro 'raw_local_irq_restore'
           do {                                            \
           ^
   drivers/input/joystick/cobra.c:72:2: note: Loop condition is false.  Exiting loop
           local_irq_restore(flags);
           ^
   include/linux/irqflags.h:238:34: note: expanded from macro 'local_irq_restore'
   #define local_irq_restore(flags) do { raw_local_irq_restore(flags); } while (0)
                                    ^
   drivers/input/joystick/cobra.c:76:2: note: Loop condition is true.  Entering loop body
           for (i = 0; i < 2; i++) {
           ^
   drivers/input/joystick/cobra.c:78:3: note: Taking true branch
                   if (r[i] != COBRA_LENGTH) continue;
                   ^
   drivers/input/joystick/cobra.c:78:29: note:  Execution continues on line 76
                   if (r[i] != COBRA_LENGTH) continue;
                                             ^
   drivers/input/joystick/cobra.c:76:2: note: Loop condition is true.  Entering loop body
           for (i = 0; i < 2; i++) {
           ^
   drivers/input/joystick/cobra.c:78:3: note: Taking true branch
                   if (r[i] != COBRA_LENGTH) continue;
                   ^
   drivers/input/joystick/cobra.c:78:29: note:  Execution continues on line 76
                   if (r[i] != COBRA_LENGTH) continue;
                                             ^
   drivers/input/joystick/cobra.c:76:2: note: Loop condition is false. Execution continues on line 91
           for (i = 0; i < 2; i++) {
           ^
   drivers/input/joystick/cobra.c:91:2: note: Returning without writing to '*data'
           return ret;
           ^
   drivers/input/joystick/cobra.c:159:18: note: Returning from 'cobra_read_packet'
           cobra->exists = cobra_read_packet(gameport, data);
                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/input/joystick/cobra.c:161:7: note: The value 0 is assigned to 'i'
           for (i = 0; i < 2; i++)
                ^~~~~
   drivers/input/joystick/cobra.c:161:2: note: Loop condition is true.  Entering loop body
           for (i = 0; i < 2; i++)
           ^
   drivers/input/joystick/cobra.c:162:28: note: The right operand of '&' is a garbage value
                   if ((cobra->exists >> i) & data[i] & 1) {
                                            ^ ~~~~~~~
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   5 warnings generated.
   Suppressed 5 warnings (5 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   Suppressed 9 warnings (9 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   5 warnings generated.
   Suppressed 5 warnings (5 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   12 warnings generated.
>> arch/arm/mach-rpc/ecard.c:640:5: warning: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
                                   strcpy((char *)ec->card_desc, incd.d.string);
                                   ^~~~~~
   arch/arm/mach-rpc/ecard.c:640:5: note: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119
                                   strcpy((char *)ec->card_desc, incd.d.string);
                                   ^~~~~~
   Suppressed 11 warnings (8 in non-user code, 3 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   6 warnings generated.
   arch/arm/include/asm/atomic.h:224:1: warning: Use of memory after it is freed [clang-analyzer-unix.Malloc]
   ATOMIC_OPS(sub, -=, sub)
   ^
   arch/arm/include/asm/atomic.h:221:2: note: expanded from macro 'ATOMIC_OPS'
           ATOMIC_FETCH_OP(op, c_op, asm_op)
           ^
   arch/arm/include/asm/atomic.h:193:8: note: expanded from macro 'ATOMIC_FETCH_OP'
           val = v->counter;                                               \
                 ^
   drivers/usb/class/usbtmc.c:2479:2: note: Loop condition is false. Execution continues on line 2488
           list_for_each(elem, &data->file_list) {
           ^
   include/linux/list.h:571:2: note: expanded from macro 'list_for_each'
           for (pos = (head)->next; pos != (head); pos = pos->next)
           ^
   drivers/usb/class/usbtmc.c:2489:2: note: Calling 'usbtmc_free_int'
           usbtmc_free_int(data);
           ^~~~~~~~~~~~~~~~~~~~~
   drivers/usb/class/usbtmc.c:2340:6: note: Assuming field 'iin_ep_present' is not equal to 0
           if (!data->iin_ep_present || !data->iin_urb)
               ^~~~~~~~~~~~~~~~~~~~~
   drivers/usb/class/usbtmc.c:2340:6: note: Left side of '||' is false
   drivers/usb/class/usbtmc.c:2340:31: note: Assuming field 'iin_urb' is non-null
           if (!data->iin_ep_present || !data->iin_urb)
                                        ^~~~~~~~~~~~~~
   drivers/usb/class/usbtmc.c:2340:2: note: Taking false branch
           if (!data->iin_ep_present || !data->iin_urb)
           ^
   drivers/usb/class/usbtmc.c:2347:2: note: Calling 'kref_put'
           kref_put(&data->kref, usbtmc_delete);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/kref.h:64:2: note: Taking true branch
           if (refcount_dec_and_test(&kref->refcount)) {
           ^
   include/linux/kref.h:65:3: note: Calling 'usbtmc_delete'
                   release(kref);
                   ^~~~~~~~~~~~~
   drivers/usb/class/usbtmc.c:157:36: note: Left side of '&&' is false
           struct usbtmc_device_data *data = to_usbtmc_data(kref);
                                             ^
   drivers/usb/class/usbtmc.c:114:27: note: expanded from macro 'to_usbtmc_data'
   #define to_usbtmc_data(d) container_of(d, struct usbtmc_device_data, kref)
                             ^
   include/linux/kernel.h:495:61: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
                                                                      ^
   drivers/usb/class/usbtmc.c:157:36: note: Taking false branch
           struct usbtmc_device_data *data = to_usbtmc_data(kref);
                                             ^
   drivers/usb/class/usbtmc.c:114:27: note: expanded from macro 'to_usbtmc_data'
   #define to_usbtmc_data(d) container_of(d, struct usbtmc_device_data, kref)
                             ^
   include/linux/kernel.h:495:2: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
           ^
   include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
   #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
                                       ^
   include/linux/compiler_types.h:328:2: note: expanded from macro 'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
           ^
   include/linux/compiler_types.h:316:2: note: expanded from macro '_compiletime_assert'
--
           ^
   include/linux/compiler_types.h:316:2: note: expanded from macro '_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
           ^
   include/linux/compiler_types.h:306:2: note: expanded from macro '__compiletime_assert'
           do {                                                            \
           ^
   drivers/usb/gadget/configfs.c:890:2: note: 'gi' initialized to a null pointer value
           struct gadget_info *gi = container_of(to_config_group(os_desc_ci),
           ^~~~~~~~~~~~~~~~~~~~~~
   drivers/usb/gadget/configfs.c:892:2: note: 'cdev' initialized to a null pointer value
           struct usb_composite_dev *cdev = &gi->cdev;
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/usb/gadget/configfs.c:894:3: note: Left side of '&&' is false
                   container_of(to_config_group(usb_cfg_ci),
                   ^
   include/linux/kernel.h:495:61: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
                                                                      ^
   drivers/usb/gadget/configfs.c:894:3: note: Taking false branch
                   container_of(to_config_group(usb_cfg_ci),
                   ^
   include/linux/kernel.h:495:2: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
           ^
   include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
   #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
                                       ^
   include/linux/compiler_types.h:328:2: note: expanded from macro 'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
           ^
   include/linux/compiler_types.h:316:2: note: expanded from macro '_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
           ^
   include/linux/compiler_types.h:308:3: note: expanded from macro '__compiletime_assert'
                   if (!(condition))                                       \
                   ^
   drivers/usb/gadget/configfs.c:894:3: note: Loop condition is false.  Exiting loop
                   container_of(to_config_group(usb_cfg_ci),
                   ^
   include/linux/kernel.h:495:2: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
           ^
   include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
   #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
                                       ^
   include/linux/compiler_types.h:328:2: note: expanded from macro 'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
           ^
   include/linux/compiler_types.h:316:2: note: expanded from macro '_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
           ^
   include/linux/compiler_types.h:306:2: note: expanded from macro '__compiletime_assert'
           do {                                                            \
           ^
   drivers/usb/gadget/configfs.c:900:2: note: Access to field 'next' results in a dereference of a null pointer
           list_for_each_entry(c, &cdev->configs, list) {
           ^
   include/linux/list.h:628:13: note: expanded from macro 'list_for_each_entry'
           for (pos = list_first_entry(head, typeof(*pos), member);        \
                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/list.h:522:2: note: expanded from macro 'list_first_entry'
           list_entry((ptr)->next, type, member)
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/list.h:511:2: note: expanded from macro 'list_entry'
           container_of(ptr, type, member)
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/kernel.h:494:25: note: expanded from macro 'container_of'
           void *__mptr = (void *)(ptr);                                   \
                                  ^~~~~
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   5 warnings generated.
   arch/arm/kernel/atags_compat.c:200:2: warning: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
           strcpy(tag->u.cmdline.cmdline, params->commandline);
           ^~~~~~
   arch/arm/kernel/atags_compat.c:200:2: note: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119
           strcpy(tag->u.cmdline.cmdline, params->commandline);
           ^~~~~~
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   2 warnings generated.
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   6 warnings generated.
>> drivers/gpio/gpiolib.c:550:8: warning: Null pointer passed as 1st argument to string comparison function [clang-analyzer-unix.cstring.NullArg]
                   if (!strcmp(gc->label, hog->chip_label))
                        ^
   drivers/gpio/gpiolib.c:574:33: note: Assuming field 'parent' is null
           struct fwnode_handle *fwnode = gc->parent ? dev_fwnode(gc->parent) : NULL;
                                          ^~~~~~~~~~
   drivers/gpio/gpiolib.c:574:33: note: '?' condition is false
   drivers/gpio/gpiolib.c:586:6: note: Assuming 'gdev' is non-null
           if (!gdev)
               ^~~~~
   drivers/gpio/gpiolib.c:586:2: note: Taking false branch
           if (!gdev)
           ^
   drivers/gpio/gpiolib.c:593:2: note: Calling 'of_gpio_dev_init'
           of_gpio_dev_init(gc, gdev);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpio/gpiolib-of.h:40:1: note: Returning without writing to 'gc->label'
   }
   ^
   drivers/gpio/gpiolib.c:593:2: note: Returning from 'of_gpio_dev_init'
           of_gpio_dev_init(gc, gdev);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpio/gpiolib.c:594:2: note: Calling 'acpi_gpio_dev_init'
           acpi_gpio_dev_init(gc, gdev);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpio/gpiolib-acpi.h:63:89: note: Returning without writing to 'gc->label'
   static inline void acpi_gpio_dev_init(struct gpio_chip *gc, struct gpio_device *gdev) { }
                                                                                           ^
   drivers/gpio/gpiolib.c:594:2: note: Returning from 'acpi_gpio_dev_init'
           acpi_gpio_dev_init(gc, gdev);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpio/gpiolib.c:600:21: note: Value assigned to field 'label'
           gdev->dev.fwnode = dev_fwnode(&gdev->dev) ?: fwnode;
                              ^~~~~~~~~~~~~~~~~~~~~~
   drivers/gpio/gpiolib.c:600:21: note: '?' condition is true
   drivers/gpio/gpiolib.c:603:6: note: Assuming field 'id' is >= 0
           if (gdev->id < 0) {
               ^~~~~~~~~~~~
   drivers/gpio/gpiolib.c:603:2: note: Taking false branch
           if (gdev->id < 0) {
           ^
   drivers/gpio/gpiolib.c:609:6: note: Assuming 'ret' is 0
           if (ret)
               ^~~
   drivers/gpio/gpiolib.c:609:2: note: Taking false branch
           if (ret)
           ^
   drivers/gpio/gpiolib.c:613:6: note: Assuming field 'parent' is null
           if (gc->parent && gc->parent->driver)
               ^~~~~~~~~~
   drivers/gpio/gpiolib.c:613:17: note: Left side of '&&' is false
           if (gc->parent && gc->parent->driver)
                          ^
   drivers/gpio/gpiolib.c:615:11: note: Assuming field 'owner' is null
           else if (gc->owner)
                    ^~~~~~~~~
   drivers/gpio/gpiolib.c:615:7: note: Taking false branch
           else if (gc->owner)
                ^
   drivers/gpio/gpiolib.c:622:6: note: Assuming field 'descs' is non-null
           if (!gdev->descs) {
               ^~~~~~~~~~~~
   drivers/gpio/gpiolib.c:622:2: note: Taking false branch
           if (!gdev->descs) {
           ^
   drivers/gpio/gpiolib.c:627:6: note: Assuming field 'ngpio' is not equal to 0
           if (gc->ngpio == 0) {
               ^~~~~~~~~~~~~~
   drivers/gpio/gpiolib.c:627:2: note: Taking false branch
           if (gc->ngpio == 0) {
           ^
   drivers/gpio/gpiolib.c:633:6: note: Assuming field 'ngpio' is <= FASTPATH_NGPIO
           if (gc->ngpio > FASTPATH_NGPIO)
               ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpio/gpiolib.c:633:2: note: Taking false branch
           if (gc->ngpio > FASTPATH_NGPIO)
           ^
   drivers/gpio/gpiolib.c:637:30: note: Assuming pointer value is null
           gdev->label = kstrdup_const(gc->label ?: "unknown", GFP_KERNEL);
                                       ^~~~~~~~~
   drivers/gpio/gpiolib.c:637:30: note: '?' condition is false
   drivers/gpio/gpiolib.c:638:6: note: Assuming field 'label' is non-null
           if (!gdev->label) {
               ^~~~~~~~~~~~
   drivers/gpio/gpiolib.c:638:2: note: Taking false branch
           if (!gdev->label) {
           ^
   drivers/gpio/gpiolib.c:646:2: note: Loop condition is false.  Exiting loop
           spin_lock_irqsave(&gpio_lock, flags);
           ^
   include/linux/spinlock.h:384:2: note: expanded from macro 'spin_lock_irqsave'
           raw_spin_lock_irqsave(spinlock_check(lock), flags);     \
           ^
   include/linux/spinlock.h:250:2: note: expanded from macro 'raw_spin_lock_irqsave'
           do {                                            \
           ^
   drivers/gpio/gpiolib.c:646:2: note: Loop condition is false.  Exiting loop
           spin_lock_irqsave(&gpio_lock, flags);
           ^
   include/linux/spinlock.h:382:43: note: expanded from macro 'spin_lock_irqsave'
   #define spin_lock_irqsave(lock, flags)                          \
--
           ^
   include/linux/dynamic_debug.h:152:2: note: expanded from macro '_dynamic_func_call'
           __dynamic_func_call(__UNIQUE_ID(ddebug), fmt, func, ##__VA_ARGS__)
           ^
   include/linux/dynamic_debug.h:131:49: note: expanded from macro '__dynamic_func_call'
   #define __dynamic_func_call(id, fmt, func, ...) do {    \
                                                   ^
   drivers/spi/spi-bcm-qspi.c:727:2: note: Loop condition is false. Execution continues on line 749
           for (slot = 0; slot < slots; slot++) {
           ^
   drivers/spi/spi-bcm-qspi.c:749:2: note: The value of 'tp' is assigned to field 'trans_pos'
           qspi->trans_pos = tp;
           ^~~~~~~~~~~~~~~~~~~~
   drivers/spi/spi-bcm-qspi.c:970:3: note: Returning from 'read_from_hw'
                   read_from_hw(qspi, slots);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/spi/spi-bcm-qspi.c:961:9: note: Assuming field 'byte' is < field 'len'
           while (qspi->trans_pos.byte < trans->len) {
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/spi/spi-bcm-qspi.c:961:2: note: Loop condition is true.  Entering loop body
           while (qspi->trans_pos.byte < trans->len) {
           ^
   drivers/spi/spi-bcm-qspi.c:964:11: note: Calling 'write_to_hw'
                   slots = write_to_hw(qspi, spi);
                           ^~~~~~~~~~~~~~~~~~~~~~
   drivers/spi/spi-bcm-qspi.c:790:2: note: Null pointer value stored to 'tp.trans'
           tp = qspi->trans_pos;
           ^~~~~~~~~~~~~~~~~~~~
   drivers/spi/spi-bcm-qspi.c:791:35: note: Passing null pointer value via 3rd parameter 'trans'
           bcm_qspi_update_parms(qspi, spi, tp.trans);
                                            ^~~~~~~~
   drivers/spi/spi-bcm-qspi.c:791:2: note: Calling 'bcm_qspi_update_parms'
           bcm_qspi_update_parms(qspi, spi, tp.trans);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/spi/spi-bcm-qspi.c:618:16: note: Access to field 'speed_hz' results in a dereference of a null pointer (loaded from variable 'trans')
           xp.speed_hz = trans->speed_hz;
                         ^~~~~
   Suppressed 9 warnings (8 in non-user code, 1 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   5 warnings generated.
   Suppressed 5 warnings (4 in non-user code, 1 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   5 warnings generated.
   Suppressed 5 warnings (4 in non-user code, 1 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   5 warnings generated.
   Suppressed 5 warnings (5 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   drivers/usb/serial/oti6858.c:410:2: warning: Value stored to 'divisor' is never read [clang-analyzer-deadcode.DeadStores]
           divisor = priv->pending_setup.divisor;
           ^         ~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/usb/serial/oti6858.c:410:2: note: Value stored to 'divisor' is never read
           divisor = priv->pending_setup.divisor;
           ^         ~~~~~~~~~~~~~~~~~~~~~~~~~~~
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   drivers/gpu/host1x/cdma.c:558:15: warning: Value stored to 'space' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           unsigned int space = cdma->slots_free;
                        ^~~~~   ~~~~~~~~~~~~~~~~
   drivers/gpu/host1x/cdma.c:558:15: note: Value stored to 'space' during its initialization is never read
           unsigned int space = cdma->slots_free;
                        ^~~~~   ~~~~~~~~~~~~~~~~
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   10 warnings generated.
>> drivers/gpu/host1x/job.c:185:35: warning: Assigned value is garbage or undefined [clang-analyzer-core.uninitialized.Assign]
                   job->addr_phys[job->num_unpins] = phys_addr;
                                                   ^
   drivers/gpu/host1x/job.c:599:8: note: Calling 'pin_job'
           err = pin_job(host, job);
                 ^~~~~~~~~~~~~~~~~~
   drivers/gpu/host1x/job.c:119:14: note: Assuming 'i' is < field 'num_relocs'
           for (i = 0; i < job->num_relocs; i++) {
                       ^~~~~~~~~~~~~~~~~~~
   drivers/gpu/host1x/job.c:119:2: note: Loop condition is true.  Entering loop body
           for (i = 0; i < job->num_relocs; i++) {
           ^
   drivers/gpu/host1x/job.c:121:14: note: 'phys_addr' declared without an initial value
                   dma_addr_t phys_addr, *phys;
                              ^~~~~~~~~
   drivers/gpu/host1x/job.c:125:7: note: Assuming field 'bo' is non-null
                   if (!reloc->target.bo) {
                       ^~~~~~~~~~~~~~~~~
   drivers/gpu/host1x/job.c:125:3: note: Taking false branch
                   if (!reloc->target.bo) {
                   ^
   drivers/gpu/host1x/job.c:142:7: note: Assuming 'domain' is non-null
                   if (!domain || client->group)
                       ^~~~~~~
   drivers/gpu/host1x/job.c:142:7: note: Left side of '||' is false
   drivers/gpu/host1x/job.c:142:18: note: Assuming field 'group' is null
                   if (!domain || client->group)
                                  ^~~~~~~~~~~~~
   drivers/gpu/host1x/job.c:142:3: note: Taking false branch
                   if (!domain || client->group)
                   ^
   drivers/gpu/host1x/job.c:148:7: note: Calling 'IS_ERR'
                   if (IS_ERR(sgt)) {
                       ^~~~~~~~~~~
   include/linux/err.h:36:9: note: Assuming the condition is false
           return IS_ERR_VALUE((unsigned long)ptr);
                  ^
   include/linux/err.h:22:34: note: expanded from macro 'IS_ERR_VALUE'
   #define IS_ERR_VALUE(x) unlikely((unsigned long)(void *)(x) >= (unsigned long)-MAX_ERRNO)
                           ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/compiler.h:78:42: note: expanded from macro 'unlikely'
   # define unlikely(x)    __builtin_expect(!!(x), 0)
                                               ^
   include/linux/err.h:36:2: note: Returning zero, which participates in a condition later
           return IS_ERR_VALUE((unsigned long)ptr);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/host1x/job.c:148:7: note: Returning from 'IS_ERR'
                   if (IS_ERR(sgt)) {
                       ^~~~~~~~~~~
   drivers/gpu/host1x/job.c:148:3: note: Taking false branch
                   if (IS_ERR(sgt)) {
                   ^
   drivers/gpu/host1x/job.c:153:7: note: Assuming 'sgt' is null
                   if (sgt) {
                       ^~~
   drivers/gpu/host1x/job.c:153:3: note: Taking false branch
                   if (sgt) {
                   ^
   drivers/gpu/host1x/job.c:185:35: note: Assigned value is garbage or undefined
                   job->addr_phys[job->num_unpins] = phys_addr;
                                                   ^ ~~~~~~~~~
   drivers/gpu/host1x/job.c:265:35: warning: Assigned value is garbage or undefined [clang-analyzer-core.uninitialized.Assign]
                   job->addr_phys[job->num_unpins] = phys_addr;
                                                   ^
   drivers/gpu/host1x/job.c:599:8: note: Calling 'pin_job'
           err = pin_job(host, job);
                 ^~~~~~~~~~~~~~~~~~
   drivers/gpu/host1x/job.c:119:14: note: Assuming 'i' is >= field 'num_relocs'
           for (i = 0; i < job->num_relocs; i++) {
                       ^~~~~~~~~~~~~~~~~~~
   drivers/gpu/host1x/job.c:119:2: note: Loop condition is false. Execution continues on line 195
           for (i = 0; i < job->num_relocs; i++) {
           ^
   drivers/gpu/host1x/job.c:195:2: note: Taking false branch
           if (IS_ENABLED(CONFIG_TEGRA_HOST1X_FIREWALL))
           ^
   drivers/gpu/host1x/job.c:198:14: note: Assuming 'i' is < field 'num_gathers'
           for (i = 0; i < job->num_gathers; i++) {
                       ^~~~~~~~~~~~~~~~~~~~
   drivers/gpu/host1x/job.c:198:2: note: Loop condition is true.  Entering loop body
           for (i = 0; i < job->num_gathers; i++) {
           ^
   drivers/gpu/host1x/job.c:202:3: note: 'phys_addr' declared without an initial value
                   dma_addr_t phys_addr;
                   ^~~~~~~~~~~~~~~~~~~~
   drivers/gpu/host1x/job.c:210:7: note: Assuming field 'bo' is non-null
                   if (!g->bo) {
                       ^~~~~~
   drivers/gpu/host1x/job.c:210:3: note: Taking false branch
                   if (!g->bo) {
                   ^
   drivers/gpu/host1x/job.c:220:7: note: Assuming the condition is false
                   if (!iommu_get_domain_for_dev(host->dev))
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/host1x/job.c:220:3: note: Taking false branch
                   if (!iommu_get_domain_for_dev(host->dev))
                   ^
   drivers/gpu/host1x/job.c:226:7: note: Calling 'IS_ERR'
                   if (IS_ERR(sgt)) {
                       ^~~~~~~~~~~
   include/linux/err.h:36:9: note: Assuming the condition is false
--
   fs/overlayfs/export.c:813:2: note: Taking false branch
           if (err)
           ^
   fs/overlayfs/export.c:817:12: note: Assuming the condition is false
           dentry = (flags & OVL_FH_FLAG_PATH_UPPER) ?
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   fs/overlayfs/export.c:817:11: note: '?' condition is false
           dentry = (flags & OVL_FH_FLAG_PATH_UPPER) ?
                    ^
   fs/overlayfs/export.c:819:4: note: Calling 'ovl_lower_fh_to_d'
                    ovl_lower_fh_to_d(sb, fh);
                    ^~~~~~~~~~~~~~~~~~~~~~~~~
   fs/overlayfs/export.c:708:6: note: Assuming 'err' is 0
           if (err)
               ^~~
   fs/overlayfs/export.c:708:2: note: Taking false branch
           if (err)
           ^
   fs/overlayfs/export.c:711:6: note: Left side of '||' is false
           if (!d_is_dir(origin.dentry) ||
               ^
   fs/overlayfs/export.c:712:6: note: Assuming the condition is false
               !(origin.dentry->d_flags & DCACHE_DISCONNECTED)) {
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   fs/overlayfs/export.c:711:2: note: Taking false branch
           if (!d_is_dir(origin.dentry) ||
           ^
   fs/overlayfs/export.c:726:6: note: Assuming field 'indexdir' is null
           if (ofs->indexdir) {
               ^~~~~~~~~~~~~
   fs/overlayfs/export.c:726:2: note: Taking false branch
           if (ofs->indexdir) {
           ^
   fs/overlayfs/export.c:736:6: note: 'index' is null
           if (index && d_is_dir(index)) {
               ^~~~~
   fs/overlayfs/export.c:736:12: note: Left side of '&&' is false
           if (index && d_is_dir(index)) {
                     ^
   fs/overlayfs/export.c:749:2: note: Taking true branch
           if (d_is_dir(origin.dentry)) {
           ^
   fs/overlayfs/export.c:753:7: note: Assuming 'err' is 0
                   if (err)
                       ^~~
   fs/overlayfs/export.c:753:3: note: Taking false branch
                   if (err)
                   ^
   fs/overlayfs/export.c:756:6: note: 'index' is null
           if (index) {
               ^~~~~
   fs/overlayfs/export.c:756:2: note: Taking false branch
           if (index) {
           ^
   fs/overlayfs/export.c:763:11: note: Calling 'ovl_get_dentry'
           dentry = ovl_get_dentry(sb, NULL, &origin, index);
                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   fs/overlayfs/export.c:654:34: note: 'upper' is null
           const struct ovl_layer *layer = upper ? &ofs->layers[0] : lowerpath->layer;
                                           ^~~~~
   fs/overlayfs/export.c:654:34: note: '?' condition is false
   fs/overlayfs/export.c:655:24: note: '?' condition is false
           struct dentry *real = upper ?: (index ?: lowerpath->dentry);
                                 ^
   fs/overlayfs/export.c:655:34: note: '?' condition is false
           struct dentry *real = upper ?: (index ?: lowerpath->dentry);
                                           ^
   fs/overlayfs/export.c:655:2: note: 'real' initialized to a null pointer value
           struct dentry *real = upper ?: (index ?: lowerpath->dentry);
           ^~~~~~~~~~~~~~~~~~~
   fs/overlayfs/export.c:661:16: note: Passing null pointer value via 1st parameter 'dentry'
           if (!d_is_dir(real))
                         ^~~~
   fs/overlayfs/export.c:661:7: note: Calling 'd_is_dir'
           if (!d_is_dir(real))
                ^~~~~~~~~~~~~~
   include/linux/dcache.h:420:22: note: Passing null pointer value via 1st parameter 'dentry'
           return d_can_lookup(dentry) || d_is_autodir(dentry);
                               ^~~~~~
   include/linux/dcache.h:420:9: note: Calling 'd_can_lookup'
           return d_can_lookup(dentry) || d_is_autodir(dentry);
                  ^~~~~~~~~~~~~~~~~~~~
   include/linux/dcache.h:410:24: note: Passing null pointer value via 1st parameter 'dentry'
           return __d_entry_type(dentry) == DCACHE_DIRECTORY_TYPE;
                                 ^~~~~~
   include/linux/dcache.h:410:9: note: Calling '__d_entry_type'
           return __d_entry_type(dentry) == DCACHE_DIRECTORY_TYPE;
                  ^~~~~~~~~~~~~~~~~~~~~~
   include/linux/dcache.h:395:9: note: Access to field 'd_flags' results in a dereference of a null pointer (loaded from variable 'dentry')
           return dentry->d_flags & DCACHE_ENTRY_TYPE;
                  ^~~~~~
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   17 warnings generated.
   Suppressed 17 warnings (8 in non-user code, 9 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
>> drivers/media/rc/sunxi-cir.c:143:9: warning: Division by zero [clang-analyzer-core.DivideZero]
           return DIV_ROUND_CLOSEST(USEC_PER_SEC * (ithr + 1),
                  ^
   include/linux/math.h:92:26: note: expanded from macro 'DIV_ROUND_CLOSEST'
                   (((__x) + ((__d) / 2)) / (__d)) :       \
                                          ^
   drivers/media/rc/sunxi-cir.c:246:9: note: Calling 'sunxi_ir_hw_init'
           return sunxi_ir_hw_init(dev);
                  ^~~~~~~~~~~~~~~~~~~~~
   drivers/media/rc/sunxi-cir.c:179:6: note: 'ret' is 0
           if (ret)
               ^~~
   drivers/media/rc/sunxi-cir.c:179:2: note: Taking false branch
           if (ret)
           ^
   drivers/media/rc/sunxi-cir.c:183:6: note: 'ret' is 0
           if (ret) {
               ^~~
   drivers/media/rc/sunxi-cir.c:183:2: note: Taking false branch
           if (ret) {
           ^
   drivers/media/rc/sunxi-cir.c:189:6: note: 'ret' is 0
           if (ret) {
               ^~~
   drivers/media/rc/sunxi-cir.c:189:2: note: Taking false branch
           if (ret) {
           ^
   drivers/media/rc/sunxi-cir.c:195:2: note: Loop condition is false.  Exiting loop
           writel(REG_CTL_MD, ir->base + SUNXI_IR_CTL_REG);
           ^
   arch/arm/include/asm/io.h:307:25: note: expanded from macro 'writel'
   #define writel(v,c)             ({ __iowmb(); writel_relaxed(v,c); })
                                      ^
   arch/arm/include/asm/io.h:169:20: note: expanded from macro '__iowmb'
   #define __iowmb()               do { } while (0)
                                   ^
   drivers/media/rc/sunxi-cir.c:198:2: note: Calling 'sunxi_ir_set_timeout'
           sunxi_ir_set_timeout(ir->rc, ir->rc->timeout);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/rc/sunxi-cir.c:157:26: note: Calling 'clk_get_rate'
           unsigned int base_clk = clk_get_rate(ir->clk);
                                   ^~~~~~~~~~~~~~~~~~~~~
   include/linux/clk.h:882:2: note: Returning zero
           return 0;
           ^~~~~~~~
   drivers/media/rc/sunxi-cir.c:157:26: note: Returning from 'clk_get_rate'
           unsigned int base_clk = clk_get_rate(ir->clk);
                                   ^~~~~~~~~~~~~~~~~~~~~
   drivers/media/rc/sunxi-cir.c:157:2: note: 'base_clk' initialized to 0
           unsigned int base_clk = clk_get_rate(ir->clk);
           ^~~~~~~~~~~~~~~~~~~~~
   drivers/media/rc/sunxi-cir.c:161:2: note: Taking false branch
           dev_dbg(rc_dev->dev.parent, "setting idle threshold to %u\n", ithr);
           ^
   include/linux/dev_printk.h:123:2: note: expanded from macro 'dev_dbg'
           dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__)
           ^
   include/linux/dynamic_debug.h:166:2: note: expanded from macro 'dynamic_dev_dbg'
           _dynamic_func_call(fmt,__dynamic_dev_dbg,               \
           ^
   include/linux/dynamic_debug.h:152:2: note: expanded from macro '_dynamic_func_call'
           __dynamic_func_call(__UNIQUE_ID(ddebug), fmt, func, ##__VA_ARGS__)
           ^
   include/linux/dynamic_debug.h:133:2: note: expanded from macro '__dynamic_func_call'
           if (DYNAMIC_DEBUG_BRANCH(id))                   \
           ^
   drivers/media/rc/sunxi-cir.c:161:2: note: Loop condition is false.  Exiting loop
           dev_dbg(rc_dev->dev.parent, "setting idle threshold to %u\n", ithr);
           ^
   include/linux/dev_printk.h:123:2: note: expanded from macro 'dev_dbg'
           dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__)
           ^
   include/linux/dynamic_debug.h:166:2: note: expanded from macro 'dynamic_dev_dbg'
           _dynamic_func_call(fmt,__dynamic_dev_dbg,               \
           ^
   include/linux/dynamic_debug.h:152:2: note: expanded from macro '_dynamic_func_call'
           __dynamic_func_call(__UNIQUE_ID(ddebug), fmt, func, ##__VA_ARGS__)
           ^
   include/linux/dynamic_debug.h:131:49: note: expanded from macro '__dynamic_func_call'
   #define __dynamic_func_call(id, fmt, func, ...) do {    \
                                                   ^
   drivers/media/rc/sunxi-cir.c:164:2: note: Loop condition is false.  Exiting loop
           writel(REG_CIR_NTHR(SUNXI_IR_RXNOISE) | REG_CIR_ITHR(ithr),
           ^
   arch/arm/include/asm/io.h:307:25: note: expanded from macro 'writel'
   #define writel(v,c)             ({ __iowmb(); writel_relaxed(v,c); })
                                      ^
   arch/arm/include/asm/io.h:169:20: note: expanded from macro '__iowmb'
   #define __iowmb()               do { } while (0)
                                   ^
   drivers/media/rc/sunxi-cir.c:167:39: note: Passing the value 0 via 1st parameter 'base_clk'
           rc_dev->timeout = sunxi_ithr_to_usec(base_clk, ithr);
                                                ^~~~~~~~
   drivers/media/rc/sunxi-cir.c:167:20: note: Calling 'sunxi_ithr_to_usec'
           rc_dev->timeout = sunxi_ithr_to_usec(base_clk, ithr);
                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/rc/sunxi-cir.c:143:9: note: '__d' initialized to 0
           return DIV_ROUND_CLOSEST(USEC_PER_SEC * (ithr + 1),
                  ^
   include/linux/math.h:88:2: note: expanded from macro 'DIV_ROUND_CLOSEST'
           typeof(divisor) __d = divisor;                  \
--
   drivers/spi/spi-imx.c:623:23: note: Assigned value is garbage or undefined
           spi_imx->spi_bus_clk = clk;
                                ^ ~~~
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   11 warnings generated.
   mm/mmap.c:2006:2: warning: Value stored to 'gap_end' is never read [clang-analyzer-deadcode.DeadStores]
           gap_end = ULONG_MAX;  /* Only for VM_BUG_ON below */
           ^
   mm/mmap.c:2006:2: note: Value stored to 'gap_end' is never read
   mm/mmap.c:3276:3: warning: Value stored to 'faulted_in_anon_vma' is never read [clang-analyzer-deadcode.DeadStores]
                   faulted_in_anon_vma = false;
                   ^                     ~~~~~
   mm/mmap.c:3276:3: note: Value stored to 'faulted_in_anon_vma' is never read
                   faulted_in_anon_vma = false;
                   ^                     ~~~~~
   mm/mmap.c:3718:2: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]
           ret = percpu_counter_init(&vm_committed_as, 0, GFP_KERNEL);
           ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   mm/mmap.c:3718:2: note: Value stored to 'ret' is never read
           ret = percpu_counter_init(&vm_committed_as, 0, GFP_KERNEL);
           ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   mm/mmu_gather.c:85:3: warning: Value stored to 'batch' is never read [clang-analyzer-deadcode.DeadStores]
                   batch = tlb->active;
                   ^       ~~~~~~~~~~~
   mm/mmu_gather.c:85:3: note: Value stored to 'batch' is never read
                   batch = tlb->active;
                   ^       ~~~~~~~~~~~
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   Suppressed 9 warnings (8 in non-user code, 1 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   10 warnings generated.
   drivers/iommu/iova.c:64:29: warning: The result of the left shift is undefined due to shifting by '32', which is greater or equal to the width of type 'unsigned long' [clang-analyzer-core.UndefinedBinaryOperatorResult]
           iovad->dma_32bit_pfn = 1UL << (32 - iova_shift(iovad));
                                      ^  ~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/iommu/iova.c:56:10: note: Assuming the condition is false
           BUG_ON((granule > PAGE_SIZE) || !is_power_of_2(granule));
                   ^
   include/asm-generic/bug.h:65:45: note: expanded from macro 'BUG_ON'
   #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0)
                                      ~~~~~~~~~^~~~~~~~~~
   include/linux/compiler.h:78:42: note: expanded from macro 'unlikely'
   # define unlikely(x)    __builtin_expect(!!(x), 0)
                                               ^
   drivers/iommu/iova.c:56:9: note: Left side of '||' is false
           BUG_ON((granule > PAGE_SIZE) || !is_power_of_2(granule));
                  ^
   drivers/iommu/iova.c:56:2: note: Taking false branch
           BUG_ON((granule > PAGE_SIZE) || !is_power_of_2(granule));
           ^
   include/asm-generic/bug.h:65:32: note: expanded from macro 'BUG_ON'
   #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0)
                                  ^
   drivers/iommu/iova.c:56:2: note: Loop condition is false.  Exiting loop
           BUG_ON((granule > PAGE_SIZE) || !is_power_of_2(granule));
           ^
   include/asm-generic/bug.h:65:27: note: expanded from macro 'BUG_ON'
   #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0)
                             ^
   drivers/iommu/iova.c:58:2: note: Loop condition is false.  Exiting loop
           spin_lock_init(&iovad->iova_rbtree_lock);
           ^
   include/linux/spinlock.h:334:35: note: expanded from macro 'spin_lock_init'
   # define spin_lock_init(lock)                                   \
                                                                   ^
   drivers/iommu/iova.c:64:29: note: The result of the left shift is undefined due to shifting by '32', which is greater or equal to the width of type 'unsigned long'
           iovad->dma_32bit_pfn = 1UL << (32 - iova_shift(iovad));
                                      ^  ~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/iommu/iova.c:247:14: warning: Assigned value is garbage or undefined [clang-analyzer-core.uninitialized.Assign]
                   align_mask <<= fls_long(size - 1);
                              ^
   drivers/iommu/iova.c:503:6: note: 'iova_pfn' is 0
           if (iova_pfn)
               ^~~~~~~~
   drivers/iommu/iova.c:503:2: note: Taking false branch
           if (iova_pfn)
           ^
   drivers/iommu/iova.c:507:13: note: Calling 'alloc_iova'
           new_iova = alloc_iova(iovad, size, limit_pfn, true);
                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/iommu/iova.c:379:6: note: Assuming 'new_iova' is non-null
           if (!new_iova)
               ^~~~~~~~~
   drivers/iommu/iova.c:379:2: note: Taking false branch
           if (!new_iova)
           ^
   drivers/iommu/iova.c:382:8: note: Calling '__alloc_and_insert_iova_range'
           ret = __alloc_and_insert_iova_range(iovad, size, limit_pfn + 1,
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/iommu/iova.c:246:6: note: 'size_aligned' is true
           if (size_aligned)
               ^~~~~~~~~~~~
   drivers/iommu/iova.c:246:2: note: Taking true branch
           if (size_aligned)
           ^
   drivers/iommu/iova.c:247:18: note: Calling 'fls_long'
                   align_mask <<= fls_long(size - 1);
                                  ^~~~~~~~~~~~~~~~~~
   include/linux/bitops.h:187:2: note: Taking true branch
           if (sizeof(l) == 4)
           ^
   include/linux/bitops.h:188:10: note: Calling 'fls'
                   return fls(l);
                          ^~~~~~
   include/asm-generic/bitops/fls.h:15:2: note: 'r' initialized to 32
           int r = 32;
           ^~~~~
   include/asm-generic/bitops/fls.h:17:6: note: Assuming 'x' is not equal to 0, which participates in a condition later
           if (!x)
               ^~
   include/asm-generic/bitops/fls.h:17:2: note: Taking false branch
           if (!x)
           ^
   include/asm-generic/bitops/fls.h:19:6: note: Assuming the condition is false
           if (!(x & 0xffff0000u)) {
               ^~~~~~~~~~~~~~~~~~
   include/asm-generic/bitops/fls.h:19:2: note: Taking false branch
           if (!(x & 0xffff0000u)) {
           ^
   include/asm-generic/bitops/fls.h:23:6: note: Assuming the condition is false
           if (!(x & 0xff000000u)) {
               ^~~~~~~~~~~~~~~~~~
   include/asm-generic/bitops/fls.h:23:2: note: Taking false branch
           if (!(x & 0xff000000u)) {
           ^
   include/asm-generic/bitops/fls.h:27:6: note: Assuming the condition is false
           if (!(x & 0xf0000000u)) {
               ^~~~~~~~~~~~~~~~~~
   include/asm-generic/bitops/fls.h:27:2: note: Taking false branch
           if (!(x & 0xf0000000u)) {
           ^
   include/asm-generic/bitops/fls.h:31:6: note: Assuming the condition is false
           if (!(x & 0xc0000000u)) {
               ^~~~~~~~~~~~~~~~~~
   include/asm-generic/bitops/fls.h:31:2: note: Taking false branch
           if (!(x & 0xc0000000u)) {
           ^
   include/asm-generic/bitops/fls.h:35:6: note: Assuming the condition is false
           if (!(x & 0x80000000u)) {
               ^~~~~~~~~~~~~~~~~~
   include/asm-generic/bitops/fls.h:35:2: note: Taking false branch
           if (!(x & 0x80000000u)) {
           ^
   include/asm-generic/bitops/fls.h:39:2: note: Returning the value 32 (loaded from 'r')
           return r;
           ^~~~~~~~
   include/linux/bitops.h:188:10: note: Returning from 'fls'
                   return fls(l);
                          ^~~~~~
   include/linux/bitops.h:188:3: note: Returning the value 32
                   return fls(l);
                   ^~~~~~~~~~~~~
   drivers/iommu/iova.c:247:18: note: Returning from 'fls_long'
                   align_mask <<= fls_long(size - 1);
                                  ^~~~~~~~~~~~~~~~~~
   drivers/iommu/iova.c:247:14: note: Assigned value is garbage or undefined
                   align_mask <<= fls_long(size - 1);
                              ^   ~~~~~~~~~~~~~~~~~~
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   5 warnings generated.
   drivers/base/regmap/regmap-mmio.c:52:3: warning: Value stored to 'min_stride' is never read [clang-analyzer-deadcode.DeadStores]
                   min_stride = 0;
                   ^            ~
   drivers/base/regmap/regmap-mmio.c:52:3: note: Value stored to 'min_stride' is never read
                   min_stride = 0;
--
           ^
   include/linux/dev_printk.h:123:2: note: expanded from macro 'dev_dbg'
           dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__)
           ^
   include/linux/dynamic_debug.h:166:2: note: expanded from macro 'dynamic_dev_dbg'
           _dynamic_func_call(fmt,__dynamic_dev_dbg,               \
           ^
   include/linux/dynamic_debug.h:152:2: note: expanded from macro '_dynamic_func_call'
           __dynamic_func_call(__UNIQUE_ID(ddebug), fmt, func, ##__VA_ARGS__)
           ^
   include/linux/dynamic_debug.h:133:2: note: expanded from macro '__dynamic_func_call'
           if (DYNAMIC_DEBUG_BRANCH(id))                   \
           ^
   drivers/usb/serial/garmin_gps.c:934:2: note: Loop condition is false.  Exiting loop
           dev_dbg(&port->dev, "%s - mode=%d state=%d flags=0x%X\n",
           ^
   include/linux/dev_printk.h:123:2: note: expanded from macro 'dev_dbg'
           dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__)
           ^
   include/linux/dynamic_debug.h:166:2: note: expanded from macro 'dynamic_dev_dbg'
           _dynamic_func_call(fmt,__dynamic_dev_dbg,               \
           ^
   include/linux/dynamic_debug.h:152:2: note: expanded from macro '_dynamic_func_call'
           __dynamic_func_call(__UNIQUE_ID(ddebug), fmt, func, ##__VA_ARGS__)
           ^
   include/linux/dynamic_debug.h:131:49: note: expanded from macro '__dynamic_func_call'
   #define __dynamic_func_call(id, fmt, func, ...) do {    \
                                                   ^
   drivers/usb/serial/garmin_gps.c:938:2: note: Calling 'garmin_clear'
           garmin_clear(garmin_data_p);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/usb/serial/garmin_gps.c:856:2: note: Calling 'pkt_clear'
           pkt_clear(garmin_data_p);
           ^~~~~~~~~~~~~~~~~~~~~~~~
   drivers/usb/serial/garmin_gps.c:321:2: note: Loop condition is false.  Exiting loop
           spin_lock_irqsave(&garmin_data_p->lock, flags);
           ^
   include/linux/spinlock.h:384:2: note: expanded from macro 'spin_lock_irqsave'
           raw_spin_lock_irqsave(spinlock_check(lock), flags);     \
           ^
   include/linux/spinlock.h:250:2: note: expanded from macro 'raw_spin_lock_irqsave'
           do {                                            \
           ^
   drivers/usb/serial/garmin_gps.c:321:2: note: Loop condition is false.  Exiting loop
           spin_lock_irqsave(&garmin_data_p->lock, flags);
           ^
   include/linux/spinlock.h:382:43: note: expanded from macro 'spin_lock_irqsave'
   #define spin_lock_irqsave(lock, flags)                          \
                                                                   ^
   drivers/usb/serial/garmin_gps.c:322:2: note: Loop condition is true.  Entering loop body
           while (!list_empty(&garmin_data_p->pktlist)) {
           ^
   drivers/usb/serial/garmin_gps.c:325:3: note: Memory is released
                   kfree(result);
                   ^~~~~~~~~~~~~
   drivers/usb/serial/garmin_gps.c:322:2: note: Loop condition is true.  Entering loop body
           while (!list_empty(&garmin_data_p->pktlist)) {
           ^
   drivers/usb/serial/garmin_gps.c:324:3: note: Calling 'list_del'
                   list_del(&result->list);
                   ^~~~~~~~~~~~~~~~~~~~~~~
   include/linux/list.h:147:14: note: Use of memory after it is freed
           entry->next = LIST_POISON1;
           ~~~~~~~~~~~ ^
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   16 warnings generated.
   Suppressed 16 warnings (8 in non-user code, 8 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   10 warnings generated.
   Suppressed 10 warnings (8 in non-user code, 2 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   5 warnings generated.
>> drivers/w1/masters/mxc_w1.c:117:10: warning: Division by zero [clang-analyzer-core.DivideZero]
           clkrate /= clkdiv;
           ~~~~~~~~^~~~~~~~~
   drivers/w1/masters/mxc_w1.c:100:6: note: Assuming 'mdev' is non-null
           if (!mdev)
               ^~~~~
   drivers/w1/masters/mxc_w1.c:100:2: note: Taking false branch
           if (!mdev)
           ^
   drivers/w1/masters/mxc_w1.c:104:6: note: Calling 'IS_ERR'
           if (IS_ERR(mdev->clk))
               ^~~~~~~~~~~~~~~~~
   include/linux/err.h:36:2: note: Returning zero, which participates in a condition later
           return IS_ERR_VALUE((unsigned long)ptr);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/w1/masters/mxc_w1.c:104:6: note: Returning from 'IS_ERR'
           if (IS_ERR(mdev->clk))
               ^~~~~~~~~~~~~~~~~
   drivers/w1/masters/mxc_w1.c:104:2: note: Taking false branch
           if (IS_ERR(mdev->clk))
           ^
   drivers/w1/masters/mxc_w1.c:107:8: note: Calling 'clk_prepare_enable'
           err = clk_prepare_enable(mdev->clk);
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/clk.h:950:8: note: Calling 'clk_prepare'
           ret = clk_prepare(clk);
                 ^~~~~~~~~~~~~~~~
   include/linux/clk.h:273:2: note: Loop condition is false.  Exiting loop
           might_sleep();
           ^
   include/linux/kernel.h:132:2: note: expanded from macro 'might_sleep'
           do { __might_sleep(__FILE__, __LINE__, 0); might_resched(); } while (0)
           ^
   include/linux/clk.h:274:2: note: Returning zero, which participates in a condition later
           return 0;
           ^~~~~~~~
   include/linux/clk.h:950:8: note: Returning from 'clk_prepare'
           ret = clk_prepare(clk);
                 ^~~~~~~~~~~~~~~~
   include/linux/clk.h:951:6: note: 'ret' is 0
           if (ret)
               ^~~
   include/linux/clk.h:951:2: note: Taking false branch
           if (ret)
           ^
   include/linux/clk.h:953:8: note: Calling 'clk_enable'
           ret = clk_enable(clk);
                 ^~~~~~~~~~~~~~~
   include/linux/clk.h:865:2: note: Returning zero, which participates in a condition later
           return 0;
           ^~~~~~~~
   include/linux/clk.h:953:8: note: Returning from 'clk_enable'
           ret = clk_enable(clk);
                 ^~~~~~~~~~~~~~~
   include/linux/clk.h:954:6: note: 'ret' is 0
           if (ret)
               ^~~
   include/linux/clk.h:954:2: note: Taking false branch
           if (ret)
           ^
   include/linux/clk.h:957:2: note: Returning zero (loaded from 'ret'), which participates in a condition later
           return ret;
           ^~~~~~~~~~
   drivers/w1/masters/mxc_w1.c:107:8: note: Returning from 'clk_prepare_enable'
           err = clk_prepare_enable(mdev->clk);
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/w1/masters/mxc_w1.c:108:6: note: 'err' is 0
           if (err)
               ^~~
   drivers/w1/masters/mxc_w1.c:108:2: note: Taking false branch
           if (err)
           ^
   drivers/w1/masters/mxc_w1.c:112:6: note: 'clkrate' is < 10000000
           if (clkrate < 10000000)
               ^~~~~~~
   drivers/w1/masters/mxc_w1.c:112:2: note: Taking true branch
           if (clkrate < 10000000)
           ^
   drivers/w1/masters/mxc_w1.c:116:11: note: Left side of '||' is true
           clkdiv = DIV_ROUND_CLOSEST(clkrate, 1000000);
                    ^
   include/linux/math.h:89:23: note: expanded from macro 'DIV_ROUND_CLOSEST'
           (((typeof(x))-1) > 0 ||                         \
                                ^
   drivers/w1/masters/mxc_w1.c:116:2: note: The value 0 is assigned to 'clkdiv'
           clkdiv = DIV_ROUND_CLOSEST(clkrate, 1000000);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/w1/masters/mxc_w1.c:117:10: note: Division by zero
           clkrate /= clkdiv;
           ~~~~~~~~^~~~~~~~~
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   7 warnings generated.
   Suppressed 7 warnings (4 in non-user code, 3 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
--
           ^
   drivers/usb/gadget/udc/dummy_hcd.c:2788:7: note: Assuming the condition is false
                   if (!the_hcd_pdev[i]) {
                       ^~~~~~~~~~~~~~~~
   drivers/usb/gadget/udc/dummy_hcd.c:2788:3: note: Taking false branch
                   if (!the_hcd_pdev[i]) {
                   ^
   drivers/usb/gadget/udc/dummy_hcd.c:2786:14: note: Assuming 'i' is >= field 'num'
           for (i = 0; i < mod_data.num; i++) {
                       ^~~~~~~~~~~~~~~~
   drivers/usb/gadget/udc/dummy_hcd.c:2786:2: note: Loop condition is false. Execution continues on line 2795
           for (i = 0; i < mod_data.num; i++) {
           ^
   drivers/usb/gadget/udc/dummy_hcd.c:2795:14: note: Assuming 'i' is >= field 'num'
           for (i = 0; i < mod_data.num; i++) {
                       ^~~~~~~~~~~~~~~~
   drivers/usb/gadget/udc/dummy_hcd.c:2795:2: note: Loop condition is false. Execution continues on line 2804
           for (i = 0; i < mod_data.num; i++) {
           ^
   drivers/usb/gadget/udc/dummy_hcd.c:2804:2: note: Loop condition is false. Execution continues on line 2820
           for (i = 0; i < mod_data.num; i++) {
           ^
   drivers/usb/gadget/udc/dummy_hcd.c:2821:6: note: Assuming 'retval' is >= 0
           if (retval < 0)
               ^~~~~~~~~~
   drivers/usb/gadget/udc/dummy_hcd.c:2821:2: note: Taking false branch
           if (retval < 0)
           ^
   drivers/usb/gadget/udc/dummy_hcd.c:2824:6: note: Assuming 'retval' is >= 0
           if (retval < 0)
               ^~~~~~~~~~
   drivers/usb/gadget/udc/dummy_hcd.c:2824:2: note: Taking false branch
           if (retval < 0)
           ^
   drivers/usb/gadget/udc/dummy_hcd.c:2827:14: note: Assuming 'i' is < field 'num'
           for (i = 0; i < mod_data.num; i++) {
                       ^~~~~~~~~~~~~~~~
   drivers/usb/gadget/udc/dummy_hcd.c:2827:2: note: Loop condition is true.  Entering loop body
           for (i = 0; i < mod_data.num; i++) {
           ^
   drivers/usb/gadget/udc/dummy_hcd.c:2829:7: note: Assuming 'retval' is >= 0
                   if (retval < 0) {
                       ^~~~~~~~~~
   drivers/usb/gadget/udc/dummy_hcd.c:2829:3: note: Taking false branch
                   if (retval < 0) {
                   ^
   drivers/usb/gadget/udc/dummy_hcd.c:2827:14: note: Assuming 'i' is >= field 'num'
           for (i = 0; i < mod_data.num; i++) {
                       ^~~~~~~~~~~~~~~~
   drivers/usb/gadget/udc/dummy_hcd.c:2827:2: note: Loop condition is false. Execution continues on line 2836
           for (i = 0; i < mod_data.num; i++) {
           ^
   drivers/usb/gadget/udc/dummy_hcd.c:2836:7: note: The value 0 is assigned to 'i'
           for (i = 0; i < mod_data.num; i++) {
                ^~~~~
   drivers/usb/gadget/udc/dummy_hcd.c:2836:14: note: Assuming 'i' is < field 'num'
           for (i = 0; i < mod_data.num; i++) {
                       ^~~~~~~~~~~~~~~~
   drivers/usb/gadget/udc/dummy_hcd.c:2836:2: note: Loop condition is true.  Entering loop body
           for (i = 0; i < mod_data.num; i++) {
           ^
   drivers/usb/gadget/udc/dummy_hcd.c:2837:8: note: Access to field 'hs_hcd' results in a dereference of a null pointer
                   if (!dum[i]->hs_hcd ||
                        ^~~~~~~~~~~~~~
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   5 warnings generated.
   drivers/leds/uleds.c:150:4: warning: Value stored to 'retval' is never read [clang-analyzer-deadcode.DeadStores]
                           retval = copy_to_user(buffer, &udev->brightness,
                           ^        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/leds/uleds.c:150:4: note: Value stored to 'retval' is never read
                           retval = copy_to_user(buffer, &udev->brightness,
                           ^        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   6 warnings generated.
>> drivers/firmware/arm_scpi.c:943:23: warning: Value stored to 'cl' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
                   struct mbox_client *cl = &pchan->cl;
                                       ^~   ~~~~~~~~~~
   drivers/firmware/arm_scpi.c:943:23: note: Value stored to 'cl' during its initialization is never read
                   struct mbox_client *cl = &pchan->cl;
                                       ^~   ~~~~~~~~~~
>> drivers/firmware/arm_scpi.c:944:23: warning: Value stored to 'shmem' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
                   struct device_node *shmem = of_parse_phandle(np, "shmem", idx);
                                       ^~~~~   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/firmware/arm_scpi.c:944:23: note: Value stored to 'shmem' during its initialization is never read
                   struct device_node *shmem = of_parse_phandle(np, "shmem", idx);
                                       ^~~~~   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   2 warnings generated.
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   10 warnings generated.
   drivers/hid/hid-picolcd_fb.c:152:14: warning: The left expression of the compound assignment is an uninitialized value. The computed value will also be garbage [clang-analyzer-core.uninitialized.Assign]
                                   tdata[i] <<= 1;
                                            ^
   drivers/hid/hid-picolcd_fb.c:437:2: note: Calling 'picolcd_fb_update'
           picolcd_fb_update(info);
           ^~~~~~~~~~~~~~~~~~~~~~~
   drivers/hid/hid-picolcd_fb.c:234:2: note: Loop condition is false.  Exiting loop
           spin_lock_irqsave(&fbdata->lock, flags);
           ^
   include/linux/spinlock.h:384:2: note: expanded from macro 'spin_lock_irqsave'
           raw_spin_lock_irqsave(spinlock_check(lock), flags);     \
           ^
   include/linux/spinlock.h:250:2: note: expanded from macro 'raw_spin_lock_irqsave'
           do {                                            \
           ^
   drivers/hid/hid-picolcd_fb.c:234:2: note: Loop condition is false.  Exiting loop
           spin_lock_irqsave(&fbdata->lock, flags);
           ^
   include/linux/spinlock.h:382:43: note: expanded from macro 'spin_lock_irqsave'
   #define spin_lock_irqsave(lock, flags)                          \
                                                                   ^
   drivers/hid/hid-picolcd_fb.c:235:6: note: Assuming field 'ready' is not equal to 0
           if (!fbdata->ready && fbdata->picolcd)
               ^~~~~~~~~~~~~~
   drivers/hid/hid-picolcd_fb.c:235:21: note: Left side of '&&' is false
           if (!fbdata->ready && fbdata->picolcd)
                              ^
   drivers/hid/hid-picolcd_fb.c:247:2: note: Loop condition is true.  Entering loop body
           for (chip = 0; chip < 4; chip++)
           ^
   drivers/hid/hid-picolcd_fb.c:248:3: note: Loop condition is true.  Entering loop body
                   for (tile = 0; tile < 8; tile++) {
                   ^
   drivers/hid/hid-picolcd_fb.c:249:8: note: Assuming field 'force' is 0
                           if (!fbdata->force && !picolcd_fb_update_tile(
                               ^~~~~~~~~~~~~~
   drivers/hid/hid-picolcd_fb.c:249:8: note: Left side of '&&' is true
   drivers/hid/hid-picolcd_fb.c:249:27: note: Calling 'picolcd_fb_update_tile'
                           if (!fbdata->force && !picolcd_fb_update_tile(
                                                  ^~~~~~~~~~~~~~~~~~~~~~~
   drivers/hid/hid-picolcd_fb.c:148:6: note: Assuming 'bpp' is equal to 1
           if (bpp == 1) {
               ^~~~~~~~
   drivers/hid/hid-picolcd_fb.c:148:2: note: Taking true branch
           if (bpp == 1) {
           ^
   drivers/hid/hid-picolcd_fb.c:149:3: note: Loop condition is true.  Entering loop body
                   for (b = 7; b >= 0; b--) {
                   ^
   drivers/hid/hid-picolcd_fb.c:151:9: note: The value 0 is assigned to 'i'
                           for (i = 0; i < 64; i++) {
                                ^~~~~
   drivers/hid/hid-picolcd_fb.c:151:4: note: Loop condition is true.  Entering loop body
                           for (i = 0; i < 64; i++) {
                           ^
   drivers/hid/hid-picolcd_fb.c:152:14: note: The left expression of the compound assignment is an uninitialized value. The computed value will also be garbage
                                   tdata[i] <<= 1;
                                   ~~~~~~~~ ^
   drivers/hid/hid-picolcd_fb.c:160:14: warning: The left expression of the compound assignment is an uninitialized value. The computed value will also be garbage [clang-analyzer-core.uninitialized.Assign]
                                   tdata[i] <<= 1;
                                            ^
   drivers/hid/hid-picolcd_fb.c:437:2: note: Calling 'picolcd_fb_update'
           picolcd_fb_update(info);
           ^~~~~~~~~~~~~~~~~~~~~~~
   drivers/hid/hid-picolcd_fb.c:234:2: note: Loop condition is false.  Exiting loop
           spin_lock_irqsave(&fbdata->lock, flags);
           ^
   include/linux/spinlock.h:384:2: note: expanded from macro 'spin_lock_irqsave'
           raw_spin_lock_irqsave(spinlock_check(lock), flags);     \
           ^
   include/linux/spinlock.h:250:2: note: expanded from macro 'raw_spin_lock_irqsave'
           do {                                            \
           ^
   drivers/hid/hid-picolcd_fb.c:234:2: note: Loop condition is false.  Exiting loop
           spin_lock_irqsave(&fbdata->lock, flags);
           ^
   include/linux/spinlock.h:382:43: note: expanded from macro 'spin_lock_irqsave'
   #define spin_lock_irqsave(lock, flags)                          \
                                                                   ^
   drivers/hid/hid-picolcd_fb.c:235:6: note: Assuming field 'ready' is not equal to 0
           if (!fbdata->ready && fbdata->picolcd)
               ^~~~~~~~~~~~~~
   drivers/hid/hid-picolcd_fb.c:235:21: note: Left side of '&&' is false
--
                           ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/compiler.h:78:42: note: expanded from macro 'unlikely'
   # define unlikely(x)    __builtin_expect(!!(x), 0)
                                               ^
   include/linux/err.h:36:2: note: Returning zero, which participates in a condition later
           return IS_ERR_VALUE((unsigned long)ptr);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/nvmem/core.c:1627:6: note: Returning from 'IS_ERR'
           if (IS_ERR(cell))
               ^~~~~~~~~~~~
   drivers/nvmem/core.c:1627:2: note: Taking false branch
           if (IS_ERR(cell))
           ^
   drivers/nvmem/core.c:1631:8: note: Calling 'nvmem_cell_read'
           buf = nvmem_cell_read(cell, len);
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/nvmem/core.c:1423:6: note: Assuming 'nvmem' is non-null
           if (!nvmem)
               ^~~~~~
   drivers/nvmem/core.c:1423:2: note: Taking false branch
           if (!nvmem)
           ^
   drivers/nvmem/core.c:1427:6: note: Assuming 'buf' is non-null
           if (!buf)
               ^~~~
   drivers/nvmem/core.c:1427:2: note: Taking false branch
           if (!buf)
           ^
   drivers/nvmem/core.c:1430:7: note: Calling '__nvmem_cell_read'
           rc = __nvmem_cell_read(nvmem, cell, buf, len);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/nvmem/core.c:1394:6: note: Assuming 'rc' is not equal to 0
           if (rc)
               ^~
   drivers/nvmem/core.c:1394:2: note: Taking true branch
           if (rc)
           ^
   drivers/nvmem/core.c:1430:7: note: Returning from '__nvmem_cell_read'
           rc = __nvmem_cell_read(nvmem, cell, buf, len);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/nvmem/core.c:1431:6: note: 'rc' is not equal to 0
           if (rc) {
               ^~
   drivers/nvmem/core.c:1431:2: note: Taking true branch
           if (rc) {
           ^
   drivers/nvmem/core.c:1631:8: note: Returning from 'nvmem_cell_read'
           buf = nvmem_cell_read(cell, len);
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/nvmem/core.c:1633:6: note: Calling 'IS_ERR'
           if (IS_ERR(buf))
               ^~~~~~~~~~~
   include/linux/err.h:36:9: note: Assuming the condition is false
           return IS_ERR_VALUE((unsigned long)ptr);
                  ^
   include/linux/err.h:22:34: note: expanded from macro 'IS_ERR_VALUE'
   #define IS_ERR_VALUE(x) unlikely((unsigned long)(void *)(x) >= (unsigned long)-MAX_ERRNO)
                           ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/compiler.h:78:42: note: expanded from macro 'unlikely'
   # define unlikely(x)    __builtin_expect(!!(x), 0)
                                               ^
   include/linux/err.h:36:2: note: Returning zero, which participates in a condition later
           return IS_ERR_VALUE((unsigned long)ptr);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/nvmem/core.c:1633:6: note: Returning from 'IS_ERR'
           if (IS_ERR(buf))
               ^~~~~~~~~~~
   drivers/nvmem/core.c:1633:2: note: Taking false branch
           if (IS_ERR(buf))
           ^
   drivers/nvmem/core.c:1640:6: note: Assuming 'nbits' is 0
           if (nbits)
               ^~~~~
   drivers/nvmem/core.c:1640:2: note: Taking false branch
           if (nbits)
           ^
   drivers/nvmem/core.c:1643:11: note: The left operand of '>' is a garbage value
           if (*len > max_len) {
               ~~~~ ^
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   Suppressed 9 warnings (8 in non-user code, 1 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
>> drivers/iommu/mtk_iommu_v1.c:384:3: warning: Value stored to 'fwspec' is never read [clang-analyzer-deadcode.DeadStores]
                   fwspec = dev_iommu_fwspec_get(dev);
                   ^        ~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/iommu/mtk_iommu_v1.c:384:3: note: Value stored to 'fwspec' is never read
                   fwspec = dev_iommu_fwspec_get(dev);
                   ^        ~~~~~~~~~~~~~~~~~~~~~~~~~
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   drivers/input/rmi4/rmi_f11.c:1129:2: warning: Value stored to 'query_offset' is never read [clang-analyzer-deadcode.DeadStores]
           query_offset += rc;
           ^               ~~
   drivers/input/rmi4/rmi_f11.c:1129:2: note: Value stored to 'query_offset' is never read
           query_offset += rc;
           ^               ~~
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   11 warnings generated.
   drivers/input/rmi4/rmi_f12.c:133:3: warning: Value stored to 'offset' is never read [clang-analyzer-deadcode.DeadStores]
                   offset += 1;
                   ^         ~
   drivers/input/rmi4/rmi_f12.c:133:3: note: Value stored to 'offset' is never read
                   offset += 1;
                   ^         ~
   drivers/input/rmi4/rmi_f12.c:401:2: warning: Value stored to 'query_addr' is never read [clang-analyzer-deadcode.DeadStores]
           query_addr += 3;
           ^             ~
   drivers/input/rmi4/rmi_f12.c:401:2: note: Value stored to 'query_addr' is never read
           query_addr += 3;
           ^             ~
   drivers/input/rmi4/rmi_f12.c:520:3: warning: Value stored to 'data_offset' is never read [clang-analyzer-deadcode.DeadStores]
                   data_offset += item->reg_size;
                   ^              ~~~~~~~~~~~~~~
   drivers/input/rmi4/rmi_f12.c:520:3: note: Value stored to 'data_offset' is never read
                   data_offset += item->reg_size;
                   ^              ~~~~~~~~~~~~~~
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
>> drivers/i2c/busses/i2c-riic.c:359:38: warning: Division by zero [clang-analyzer-core.DivideZero]
           brl -= t->scl_fall_ns / (1000000000 / rate);
                                    ~~~~~~~~~~~^~~~~~
   drivers/i2c/busses/i2c-riic.c:297:6: note: Assuming field 'bus_freq_hz' is <= I2C_MAX_FAST_MODE_FREQ
           if (t->bus_freq_hz > I2C_MAX_FAST_MODE_FREQ) {
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/i2c/busses/i2c-riic.c:297:2: note: Taking false branch
           if (t->bus_freq_hz > I2C_MAX_FAST_MODE_FREQ) {
           ^
   drivers/i2c/busses/i2c-riic.c:305:9: note: Calling 'clk_get_rate'
           rate = clk_get_rate(riic->clk);
                  ^~~~~~~~~~~~~~~~~~~~~~~
   include/linux/clk.h:882:2: note: Returning zero
           return 0;
           ^~~~~~~~
   drivers/i2c/busses/i2c-riic.c:305:9: note: Returning from 'clk_get_rate'
           rate = clk_get_rate(riic->clk);
                  ^~~~~~~~~~~~~~~~~~~~~~~
   drivers/i2c/busses/i2c-riic.c:305:2: note: The value 0 is assigned to 'rate'
           rate = clk_get_rate(riic->clk);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/i2c/busses/i2c-riic.c:324:2: note: Loop condition is true.  Entering loop body
           for (cks = 0; cks < 7; cks++) {
           ^
   drivers/i2c/busses/i2c-riic.c:330:7: note: Assuming the condition is true
                   if (brl <= (0x1F + 3))
                       ^~~~~~~~~~~~~~~~~
   drivers/i2c/busses/i2c-riic.c:330:3: note: Taking true branch
                   if (brl <= (0x1F + 3))
                   ^
   drivers/i2c/busses/i2c-riic.c:331:4: note:  Execution continues on line 337
                           break;
                           ^
   drivers/i2c/busses/i2c-riic.c:337:2: note: Taking false branch
           if (brl > (0x1F + 3)) {
           ^
   drivers/i2c/busses/i2c-riic.c:347:6: note: 'cks' is equal to 0
           if (cks == 0) {
               ^~~
   drivers/i2c/busses/i2c-riic.c:347:2: note: Taking true branch
           if (cks == 0) {
           ^
   drivers/i2c/busses/i2c-riic.c:359:38: note: Division by zero
           brl -= t->scl_fall_ns / (1000000000 / rate);
                                    ~~~~~~~~~~~^~~~~~
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
--
                   ^
   drivers/staging/emxx_udc/emxx_udc.c:2689:7: note: Loop condition is false.  Exiting loop
           ep = container_of(_ep, struct nbu2ss_ep, ep);
                ^
   include/linux/kernel.h:495:2: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
           ^
   include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
   #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
                                       ^
   include/linux/compiler_types.h:328:2: note: expanded from macro 'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
           ^
   include/linux/compiler_types.h:316:2: note: expanded from macro '_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
           ^
   include/linux/compiler_types.h:306:2: note: expanded from macro '__compiletime_assert'
           do {                                                            \
           ^
   drivers/staging/emxx_udc/emxx_udc.c:2692:6: note: Assuming 'udc' is null
           if (!udc) {
               ^~~~
   drivers/staging/emxx_udc/emxx_udc.c:2692:6: note: Assuming pointer value is null
           if (!udc) {
               ^~~~
   drivers/staging/emxx_udc/emxx_udc.c:2692:2: note: Taking true branch
           if (!udc) {
           ^
   drivers/staging/emxx_udc/emxx_udc.c:2693:11: note: Access to field 'dev' results in a dereference of a null pointer (loaded from field 'udc')
                   dev_err(ep->udc->dev, " *** %s, bad udc\n", __func__);
                           ^
   include/linux/dev_printk.h:112:11: note: expanded from macro 'dev_err'
           _dev_err(dev, dev_fmt(fmt), ##__VA_ARGS__)
                    ^~~
   drivers/staging/emxx_udc/emxx_udc.c:2741:11: warning: Access to field 'dev' results in a dereference of a null pointer (loaded from field 'udc') [clang-analyzer-core.NullDereference]
                   dev_err(ep->udc->dev, "%s, bad udc\n", __func__);
                           ^
   include/linux/dev_printk.h:112:11: note: expanded from macro 'dev_err'
           _dev_err(dev, dev_fmt(fmt), ##__VA_ARGS__)
                    ^~~
   drivers/staging/emxx_udc/emxx_udc.c:2732:6: note: Assuming '_ep' is non-null
           if (!_ep) {
               ^~~~
   drivers/staging/emxx_udc/emxx_udc.c:2732:2: note: Taking false branch
           if (!_ep) {
           ^
   drivers/staging/emxx_udc/emxx_udc.c:2737:7: note: Left side of '&&' is false
           ep = container_of(_ep, struct nbu2ss_ep, ep);
                ^
   include/linux/kernel.h:495:61: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
                                                                      ^
   drivers/staging/emxx_udc/emxx_udc.c:2737:7: note: Taking false branch
           ep = container_of(_ep, struct nbu2ss_ep, ep);
                ^
   include/linux/kernel.h:495:2: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
           ^
   include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
   #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
                                       ^
   include/linux/compiler_types.h:328:2: note: expanded from macro 'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
           ^
   include/linux/compiler_types.h:316:2: note: expanded from macro '_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
           ^
   include/linux/compiler_types.h:308:3: note: expanded from macro '__compiletime_assert'
                   if (!(condition))                                       \
                   ^
   drivers/staging/emxx_udc/emxx_udc.c:2737:7: note: Loop condition is false.  Exiting loop
           ep = container_of(_ep, struct nbu2ss_ep, ep);
                ^
   include/linux/kernel.h:495:2: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
           ^
   include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
   #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
                                       ^
   include/linux/compiler_types.h:328:2: note: expanded from macro 'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
           ^
   include/linux/compiler_types.h:316:2: note: expanded from macro '_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
           ^
   include/linux/compiler_types.h:306:2: note: expanded from macro '__compiletime_assert'
           do {                                                            \
           ^
   drivers/staging/emxx_udc/emxx_udc.c:2740:6: note: Assuming 'udc' is null
           if (!udc) {
               ^~~~
   drivers/staging/emxx_udc/emxx_udc.c:2740:2: note: Taking true branch
           if (!udc) {
           ^
   drivers/staging/emxx_udc/emxx_udc.c:2741:11: note: Access to field 'dev' results in a dereference of a null pointer (loaded from field 'udc')
                   dev_err(ep->udc->dev, "%s, bad udc\n", __func__);
                           ^
   include/linux/dev_printk.h:112:11: note: expanded from macro 'dev_err'
           _dev_err(dev, dev_fmt(fmt), ##__VA_ARGS__)
                    ^~~
>> drivers/staging/emxx_udc/emxx_udc.c:2754:3: warning: Value stored to 'data' is never read [clang-analyzer-deadcode.DeadStores]
                   data = _nbu2ss_readl(&preg->EP0_LENGTH) & EP0_LDATA;
                   ^      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/staging/emxx_udc/emxx_udc.c:2754:3: note: Value stored to 'data' is never read
                   data = _nbu2ss_readl(&preg->EP0_LENGTH) & EP0_LDATA;
                   ^      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/staging/emxx_udc/emxx_udc.c:2757:3: warning: Value stored to 'data' is never read [clang-analyzer-deadcode.DeadStores]
                   data = _nbu2ss_readl(&preg->EP_REGS[ep->epnum - 1].EP_LEN_DCNT)
                   ^      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/staging/emxx_udc/emxx_udc.c:2757:3: note: Value stored to 'data' is never read
                   data = _nbu2ss_readl(&preg->EP_REGS[ep->epnum - 1].EP_LEN_DCNT)
                   ^      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/staging/emxx_udc/emxx_udc.c:2783:11: warning: Access to field 'dev' results in a dereference of a null pointer (loaded from field 'udc') [clang-analyzer-core.NullDereference]
                   dev_err(ep->udc->dev, "%s, bad udc\n", __func__);
                           ^
   include/linux/dev_printk.h:112:11: note: expanded from macro 'dev_err'
           _dev_err(dev, dev_fmt(fmt), ##__VA_ARGS__)
                    ^~~
   drivers/staging/emxx_udc/emxx_udc.c:2774:6: note: Assuming '_ep' is non-null
           if (!_ep) {
               ^~~~
   drivers/staging/emxx_udc/emxx_udc.c:2774:2: note: Taking false branch
           if (!_ep) {
           ^
   drivers/staging/emxx_udc/emxx_udc.c:2779:7: note: Left side of '&&' is false
           ep = container_of(_ep, struct nbu2ss_ep, ep);
                ^
   include/linux/kernel.h:495:61: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
                                                                      ^
   drivers/staging/emxx_udc/emxx_udc.c:2779:7: note: Taking false branch
           ep = container_of(_ep, struct nbu2ss_ep, ep);
                ^
   include/linux/kernel.h:495:2: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
           ^
   include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
   #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
                                       ^
   include/linux/compiler_types.h:328:2: note: expanded from macro 'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
           ^
   include/linux/compiler_types.h:316:2: note: expanded from macro '_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
           ^
   include/linux/compiler_types.h:308:3: note: expanded from macro '__compiletime_assert'
                   if (!(condition))                                       \
                   ^
   drivers/staging/emxx_udc/emxx_udc.c:2779:7: note: Loop condition is false.  Exiting loop
           ep = container_of(_ep, struct nbu2ss_ep, ep);
                ^
   include/linux/kernel.h:495:2: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
           ^
   include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
   #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
                                       ^
   include/linux/compiler_types.h:328:2: note: expanded from macro 'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
           ^
   include/linux/compiler_types.h:316:2: note: expanded from macro '_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
           ^
   include/linux/compiler_types.h:306:2: note: expanded from macro '__compiletime_assert'
           do {                                                            \
           ^
   drivers/staging/emxx_udc/emxx_udc.c:2782:6: note: Assuming 'udc' is null
           if (!udc) {
               ^~~~
   drivers/staging/emxx_udc/emxx_udc.c:2782:2: note: Taking true branch
           if (!udc) {
           ^
   drivers/staging/emxx_udc/emxx_udc.c:2783:11: note: Access to field 'dev' results in a dereference of a null pointer (loaded from field 'udc')
                   dev_err(ep->udc->dev, "%s, bad udc\n", __func__);
                           ^
   include/linux/dev_printk.h:112:11: note: expanded from macro 'dev_err'
           _dev_err(dev, dev_fmt(fmt), ##__VA_ARGS__)
                    ^~~
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   15 warnings generated.
   lib/vsprintf.c:358:22: warning: The left operand of '==' is a garbage value [clang-analyzer-core.UndefinedBinaryOperatorResult]
           else while (buf[-1] == '0')
                               ^
   lib/vsprintf.c:379:6: note: Assuming 'num' is > 9
           if (num <= 9) {
               ^~~~~~~~
   lib/vsprintf.c:379:2: note: Taking false branch
           if (num <= 9) {
           ^
   lib/vsprintf.c:383:9: note: Calling 'put_dec'
                   len = put_dec(tmp, num) - tmp;
                         ^~~~~~~~~~~~~~~~~
   lib/vsprintf.c:335:6: note: Assuming the condition is false
           if (n < 100*1000*1000)
--
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   7 warnings generated.
   drivers/usb/misc/ftdi-elan.c:565:3: warning: Value stored to 'work_delay_in_msec' is never read [clang-analyzer-deadcode.DeadStores]
                   work_delay_in_msec = 10;
                   ^                    ~~
   drivers/usb/misc/ftdi-elan.c:565:3: note: Value stored to 'work_delay_in_msec' is never read
                   work_delay_in_msec = 10;
                   ^                    ~~
   Suppressed 6 warnings (4 in non-user code, 2 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   5 warnings generated.
   drivers/usb/misc/iowarrior.c:508:2: warning: Value stored to 'io_res' is never read [clang-analyzer-deadcode.DeadStores]
           io_res = 0;
           ^        ~
   drivers/usb/misc/iowarrior.c:508:2: note: Value stored to 'io_res' is never read
           io_res = 0;
           ^        ~
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   Suppressed 9 warnings (8 in non-user code, 1 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   12 warnings generated.
   fs/binfmt_elf_fdpic.c:333:2: warning: Value stored to 'retval' is never read [clang-analyzer-deadcode.DeadStores]
           retval = -ENOEXEC;
           ^        ~~~~~~~~
   fs/binfmt_elf_fdpic.c:333:2: note: Value stored to 'retval' is never read
           retval = -ENOEXEC;
           ^        ~~~~~~~~
>> fs/binfmt_elf_fdpic.c:335:3: warning: Value stored to 'stack_size' is never read [clang-analyzer-deadcode.DeadStores]
                   stack_size = 131072UL; /* same as exec.c's default commit */
                   ^            ~~~~~~~~
   fs/binfmt_elf_fdpic.c:335:3: note: Value stored to 'stack_size' is never read
                   stack_size = 131072UL; /* same as exec.c's default commit */
                   ^            ~~~~~~~~
   fs/binfmt_elf_fdpic.c:772:2: warning: Value stored to 'load_addr' is never read [clang-analyzer-deadcode.DeadStores]
           load_addr = params->load_addr;
           ^           ~~~~~~~~~~~~~~~~~
   fs/binfmt_elf_fdpic.c:772:2: note: Value stored to 'load_addr' is never read
           load_addr = params->load_addr;
           ^           ~~~~~~~~~~~~~~~~~
   fs/binfmt_elf_fdpic.c:773:2: warning: Value stored to 'seg' is never read [clang-analyzer-deadcode.DeadStores]
           seg = loadmap->segs;
           ^     ~~~~~~~~~~~~~
   fs/binfmt_elf_fdpic.c:773:2: note: Value stored to 'seg' is never read
           seg = loadmap->segs;
           ^     ~~~~~~~~~~~~~
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
--
   drivers/rtc/rtc-abx80x.c:534:3: warning: Value stored to 'status' is never read [clang-analyzer-deadcode.DeadStores]
                   status &= ~ABX8XX_STATUS_BLF;
                   ^         ~~~~~~~~~~~~~~~~~~
   drivers/rtc/rtc-abx80x.c:534:3: note: Value stored to 'status' is never read
                   status &= ~ABX8XX_STATUS_BLF;
                   ^         ~~~~~~~~~~~~~~~~~~
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   Suppressed 9 warnings (9 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   fs/locks.c:2589:3: warning: Value stored to 'cmd' is never read [clang-analyzer-deadcode.DeadStores]
                   cmd = F_GETLK64;
                   ^
   fs/locks.c:2589:3: note: Value stored to 'cmd' is never read
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   Suppressed 9 warnings (8 in non-user code, 1 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   drivers/mmc/host/vub300.c:1610:4: warning: Value stored to 'result' is never read [clang-analyzer-deadcode.DeadStores]
                           result = usb_reset_device(vub300->udev);
                           ^        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/mmc/host/vub300.c:1610:4: note: Value stored to 'result' is never read
                           result = usb_reset_device(vub300->udev);
                           ^        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
>> drivers/spi/spi-lantiq-ssc.c:284:17: warning: Division by zero [clang-analyzer-core.DivideZero]
                   brt = spi_clk / max_speed_hz - 1;
                                 ^
   drivers/spi/spi-lantiq-ssc.c:816:2: note: Calling 'hw_setup_transfer'
           hw_setup_transfer(spi, spidev, t);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/spi/spi-lantiq-ssc.c:433:2: note: 'speed_hz' initialized here
           unsigned int speed_hz = t->speed_hz;
           ^~~~~~~~~~~~~~~~~~~~~
   drivers/spi/spi-lantiq-ssc.c:437:6: note: Assuming 'bits_per_word' is not equal to field 'bits_per_word'
           if (bits_per_word != spi->bits_per_word ||
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/spi/spi-lantiq-ssc.c:437:42: note: Left side of '||' is true
           if (bits_per_word != spi->bits_per_word ||
                                                   ^
   drivers/spi/spi-lantiq-ssc.c:440:26: note: Passing value via 2nd parameter 'max_speed_hz'
                   hw_setup_speed_hz(spi, speed_hz);
                                          ^~~~~~~~
   drivers/spi/spi-lantiq-ssc.c:440:3: note: Calling 'hw_setup_speed_hz'
                   hw_setup_speed_hz(spi, speed_hz);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/spi/spi-lantiq-ssc.c:281:6: note: Assuming 'max_speed_hz' is <= 'spi_clk'
           if (max_speed_hz > spi_clk)
               ^~~~~~~~~~~~~~~~~~~~~~
   drivers/spi/spi-lantiq-ssc.c:281:2: note: Taking false branch
           if (max_speed_hz > spi_clk)
           ^
   drivers/spi/spi-lantiq-ssc.c:284:17: note: Division by zero
                   brt = spi_clk / max_speed_hz - 1;
                         ~~~~~~~~^~~~~~~~~~~~~~
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   5 warnings generated.
   lib/xarray.c:2029:18: warning: Value stored to 'node' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct xa_node *node = xas->xa_node;
                           ^~~~   ~~~~~~~~~~~~
   lib/xarray.c:2029:18: note: Value stored to 'node' during its initialization is never read
           struct xa_node *node = xas->xa_node;
                           ^~~~   ~~~~~~~~~~~~
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   5 warnings generated.
   drivers/hid/hid-kye.c:684:6: warning: Access to field 'maxfield' results in a dereference of an undefined pointer value (loaded from variable 'report') [clang-analyzer-core.NullDereference]
           if (report->maxfield < 1 || report->field[0]->report_count < 7) {
--
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   drivers/regulator/helpers.c:963:6: warning: Assigned value is garbage or undefined [clang-analyzer-core.uninitialized.Assign]
           sel <<= ffs(rdev->desc->ramp_mask) - 1;
               ^   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/regulator/helpers.c:951:14: note: Assuming field 'n_ramp_values' is not equal to 0
           if (WARN_ON(!rdev->desc->n_ramp_values || !rdev->desc->ramp_delay_table))
                       ^
   include/asm-generic/bug.h:121:25: note: expanded from macro 'WARN_ON'
           int __ret_warn_on = !!(condition);                              \
                                  ^~~~~~~~~
   drivers/regulator/helpers.c:951:14: note: Left side of '||' is false
           if (WARN_ON(!rdev->desc->n_ramp_values || !rdev->desc->ramp_delay_table))
                       ^
   drivers/regulator/helpers.c:951:44: note: Assuming field 'ramp_delay_table' is non-null
           if (WARN_ON(!rdev->desc->n_ramp_values || !rdev->desc->ramp_delay_table))
                                                     ^
   include/asm-generic/bug.h:121:25: note: expanded from macro 'WARN_ON'
           int __ret_warn_on = !!(condition);                              \
                                  ^~~~~~~~~
   drivers/regulator/helpers.c:951:6: note: Taking false branch
           if (WARN_ON(!rdev->desc->n_ramp_values || !rdev->desc->ramp_delay_table))
               ^
   include/asm-generic/bug.h:122:2: note: expanded from macro 'WARN_ON'
           if (unlikely(__ret_warn_on))                                    \
           ^
   drivers/regulator/helpers.c:951:2: note: Taking false branch
           if (WARN_ON(!rdev->desc->n_ramp_values || !rdev->desc->ramp_delay_table))
           ^
   drivers/regulator/helpers.c:957:6: note: 'ret' is 0
           if (ret) {
               ^~~
   drivers/regulator/helpers.c:957:2: note: Taking false branch
           if (ret) {
           ^
   drivers/regulator/helpers.c:963:6: note: Assigned value is garbage or undefined
           sel <<= ffs(rdev->desc->ramp_mask) - 1;
               ^   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   5 warnings generated.
   fs/autofs/dev-ioctl.c:519:34: warning: Although the value stored to 'devid' is used in the enclosing expression, the value is never actually read from 'devid' [clang-analyzer-deadcode.DeadStores]
           param->ismountpoint.out.devid = devid = 0;
                                           ^       ~
   fs/autofs/dev-ioctl.c:519:34: note: Although the value stored to 'devid' is used in the enclosing expression, the value is never actually read from 'devid'
           param->ismountpoint.out.devid = devid = 0;
                                           ^       ~
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   fs/overlayfs/super.c:1809:2: warning: Value stored to 'err' is never read [clang-analyzer-deadcode.DeadStores]
           err = -EINVAL;
           ^     ~~~~~~~
   fs/overlayfs/super.c:1809:2: note: Value stored to 'err' is never read
           err = -EINVAL;
           ^     ~~~~~~~
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   fs/overlayfs/namei.c:55:2: warning: Call to function 'strcat' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcat'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
           strcat(buf, post);
           ^~~~~~
   fs/overlayfs/namei.c:55:2: note: Call to function 'strcat' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcat'. CWE-119
           strcat(buf, post);
           ^~~~~~
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   5 warnings generated.
   fs/configfs/symlink.c:70:3: warning: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
                   strcpy(s,"../");
                   ^~~~~~
   fs/configfs/symlink.c:70:3: note: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119
                   strcpy(s,"../");
                   ^~~~~~
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   11 warnings generated.
>> drivers/gpu/host1x/intr.c:29:2: warning: Attempt to free released memory [clang-analyzer-unix.Malloc]
           kfree(container_of(kref, struct host1x_waitlist, refcount));
           ^
   drivers/gpu/host1x/intr.c:257:6: note: Assuming the condition is true
           if (atomic_cmpxchg(&waiter->state, WLS_CANCELLED, WLS_HANDLED) ==
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/host1x/intr.c:257:2: note: Taking true branch
           if (atomic_cmpxchg(&waiter->state, WLS_CANCELLED, WLS_HANDLED) ==
           ^
   drivers/gpu/host1x/intr.c:260:3: note: Calling 'kref_put'
                   kref_put(&waiter->refcount, waiter_release);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/kref.h:64:2: note: Taking true branch
           if (refcount_dec_and_test(&kref->refcount)) {
           ^
   include/linux/kref.h:65:3: note: Calling 'waiter_release'
                   release(kref);
                   ^~~~~~~~~~~~~
   drivers/gpu/host1x/intr.c:29:8: note: Left side of '&&' is false
           kfree(container_of(kref, struct host1x_waitlist, refcount));
                 ^
   include/linux/kernel.h:495:61: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
                                                                      ^
   drivers/gpu/host1x/intr.c:29:8: note: Taking false branch
           kfree(container_of(kref, struct host1x_waitlist, refcount));
                 ^
   include/linux/kernel.h:495:2: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
           ^
   include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
   #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
                                       ^
   include/linux/compiler_types.h:328:2: note: expanded from macro 'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
           ^
   include/linux/compiler_types.h:316:2: note: expanded from macro '_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
           ^
   include/linux/compiler_types.h:308:3: note: expanded from macro '__compiletime_assert'
                   if (!(condition))                                       \
                   ^
   drivers/gpu/host1x/intr.c:29:8: note: Loop condition is false.  Exiting loop
           kfree(container_of(kref, struct host1x_waitlist, refcount));
                 ^
   include/linux/kernel.h:495:2: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
           ^
   include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
   #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
                                       ^
   include/linux/compiler_types.h:328:2: note: expanded from macro 'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
           ^
   include/linux/compiler_types.h:316:2: note: expanded from macro '_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
           ^
   include/linux/compiler_types.h:306:2: note: expanded from macro '__compiletime_assert'
           do {                                                            \
           ^
   drivers/gpu/host1x/intr.c:29:2: note: Memory is released
           kfree(container_of(kref, struct host1x_waitlist, refcount));
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/kref.h:65:3: note: Returning; memory was released
                   release(kref);
                   ^~~~~~~~~~~~~
   drivers/gpu/host1x/intr.c:260:3: note: Returning; memory was released
                   kref_put(&waiter->refcount, waiter_release);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/host1x/intr.c:264:6: note: Assuming 'flush' is false
           if (flush) {
               ^~~~~
   drivers/gpu/host1x/intr.c:264:2: note: Taking false branch
           if (flush) {
           ^
   drivers/gpu/host1x/intr.c:270:2: note: Calling 'kref_put'
           kref_put(&waiter->refcount, waiter_release);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/kref.h:64:2: note: Taking true branch
           if (refcount_dec_and_test(&kref->refcount)) {
           ^
   include/linux/kref.h:65:3: note: Calling 'waiter_release'
                   release(kref);
                   ^~~~~~~~~~~~~
   drivers/gpu/host1x/intr.c:29:8: note: Left side of '&&' is false
           kfree(container_of(kref, struct host1x_waitlist, refcount));
                 ^
   include/linux/kernel.h:495:61: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
                                                                      ^
   drivers/gpu/host1x/intr.c:29:8: note: Taking false branch
           kfree(container_of(kref, struct host1x_waitlist, refcount));
                 ^
   include/linux/kernel.h:495:2: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
           ^
   include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
   #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
                                       ^
   include/linux/compiler_types.h:328:2: note: expanded from macro 'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
--
           if (!(x & 0x80000000u)) {
               ^~~~~~~~~~~~~~~~~~
   include/asm-generic/bitops/fls.h:35:2: note: Taking false branch
           if (!(x & 0x80000000u)) {
           ^
   include/asm-generic/bitops/fls.h:39:2: note: Returning the value 32 (loaded from 'r')
           return r;
           ^~~~~~~~
   drivers/spi/spi-stm32.c:449:12: note: Returning from 'fls'
                   mbrdiv = fls(div);
                            ^~~~~~~~
   drivers/spi/spi-stm32.c:449:3: note: The value 32 is assigned to 'mbrdiv'
                   mbrdiv = fls(div);
                   ^~~~~~~~~~~~~~~~~
   drivers/spi/spi-stm32.c:453:38: note: The result of the left shift is undefined due to shifting by '32', which is greater or equal to the width of type 'int'
           spi->cur_speed = spi->clk_rate / (1 << mbrdiv);
                                               ^  ~~~~~~
   drivers/spi/spi-stm32.c:453:38: warning: The result of the left shift is undefined due to shifting by '4294967295', which is greater or equal to the width of type 'int' [clang-analyzer-core.UndefinedBinaryOperatorResult]
           spi->cur_speed = spi->clk_rate / (1 << mbrdiv);
                                               ^
   drivers/spi/spi-stm32.c:1649:6: note: Assuming field 'len' is not equal to 0
           if (transfer->len == 0)
               ^~~~~~~~~~~~~~~~~~
   drivers/spi/spi-stm32.c:1649:2: note: Taking false branch
           if (transfer->len == 0)
           ^
   drivers/spi/spi-stm32.c:1654:16: note: Assuming field 'tx_buf' is null
           spi->tx_len = spi->tx_buf ? transfer->len : 0;
                         ^~~~~~~~~~~
   drivers/spi/spi-stm32.c:1654:16: note: '?' condition is false
   drivers/spi/spi-stm32.c:1655:16: note: Assuming field 'rx_buf' is null
           spi->rx_len = spi->rx_buf ? transfer->len : 0;
                         ^~~~~~~~~~~
   drivers/spi/spi-stm32.c:1655:16: note: '?' condition is false
   drivers/spi/spi-stm32.c:1657:21: note: Assuming field 'can_dma' is null
           spi->cur_usedma = (master->can_dma &&
                              ^~~~~~~~~~~~~~~
   drivers/spi/spi-stm32.c:1657:37: note: Left side of '&&' is false
           spi->cur_usedma = (master->can_dma &&
                                              ^
   drivers/spi/spi-stm32.c:1660:8: note: Calling 'stm32_spi_transfer_one_setup'
           ret = stm32_spi_transfer_one_setup(spi, spi_dev, transfer);
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/spi/spi-stm32.c:1573:2: note: Loop condition is false.  Exiting loop
           spin_lock_irqsave(&spi->lock, flags);
           ^
   include/linux/spinlock.h:384:2: note: expanded from macro 'spin_lock_irqsave'
           raw_spin_lock_irqsave(spinlock_check(lock), flags);     \
           ^
   include/linux/spinlock.h:250:2: note: expanded from macro 'raw_spin_lock_irqsave'
           do {                                            \
           ^
   drivers/spi/spi-stm32.c:1573:2: note: Loop condition is false.  Exiting loop
           spin_lock_irqsave(&spi->lock, flags);
           ^
   include/linux/spinlock.h:382:43: note: expanded from macro 'spin_lock_irqsave'
   #define spin_lock_irqsave(lock, flags)                          \
                                                                   ^
   drivers/spi/spi-stm32.c:1581:8: note: Calling 'stm32_spi_prepare_mbr'
           mbr = stm32_spi_prepare_mbr(spi, transfer->speed_hz,
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/spi/spi-stm32.c:444:7: note: Assuming 'div' is >= 'min_div'
           if ((div < min_div) || (div > max_div))
                ^~~~~~~~~~~~~
   drivers/spi/spi-stm32.c:444:6: note: Left side of '||' is false
           if ((div < min_div) || (div > max_div))
               ^
   drivers/spi/spi-stm32.c:444:26: note: Assuming 'div' is <= 'max_div'
           if ((div < min_div) || (div > max_div))
                                   ^~~~~~~~~~~~~
   drivers/spi/spi-stm32.c:444:2: note: Taking false branch
           if ((div < min_div) || (div > max_div))
           ^
   drivers/spi/spi-stm32.c:448:6: note: Assuming the condition is false
           if (div & (div - 1))
               ^~~~~~~~~~~~~~~
   drivers/spi/spi-stm32.c:448:2: note: Taking false branch
           if (div & (div - 1))
           ^
   drivers/spi/spi-stm32.c:451:3: note: The value 4294967295 is assigned to 'mbrdiv'
                   mbrdiv = fls(div) - 1;
                   ^~~~~~~~~~~~~~~~~~~~~
   drivers/spi/spi-stm32.c:453:38: note: The result of the left shift is undefined due to shifting by '4294967295', which is greater or equal to the width of type 'int'
           spi->cur_speed = spi->clk_rate / (1 << mbrdiv);
                                               ^  ~~~~~~
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   5 warnings generated.
   Suppressed 5 warnings (5 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   Suppressed 9 warnings (9 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   5 warnings generated.
   Suppressed 5 warnings (5 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   12 warnings generated.
>> arch/arm/mach-rpc/ecard.c:640:5: warning: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
                                   strcpy((char *)ec->card_desc, incd.d.string);
                                   ^~~~~~
   arch/arm/mach-rpc/ecard.c:640:5: note: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119
                                   strcpy((char *)ec->card_desc, incd.d.string);
                                   ^~~~~~
   Suppressed 11 warnings (8 in non-user code, 3 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   Suppressed 9 warnings (9 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   24 warnings generated.
   drivers/gpu/drm/virtio/virtgpu_vq.c:180:6: warning: Access to field 'resp_size' results in a dereference of a null pointer (loaded from variable 'vbuf') [clang-analyzer-core.NullDereference]
           if (vbuf->resp_size > MAX_INLINE_RESP_SIZE)
               ^
   drivers/gpu/drm/virtio/virtgpu_vq.c:1122:10: note: Calling 'virtio_gpu_alloc_cursor'
           cur_p = virtio_gpu_alloc_cursor(vgdev, &vbuf);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/virtio/virtgpu_vq.c:132:6: note: Calling 'IS_ERR'
           if (IS_ERR(vbuf)) {
               ^~~~~~~~~~~~
   include/linux/err.h:36:2: note: Returning the value 1, which participates in a condition later
           return IS_ERR_VALUE((unsigned long)ptr);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/virtio/virtgpu_vq.c:132:6: note: Returning from 'IS_ERR'
           if (IS_ERR(vbuf)) {
               ^~~~~~~~~~~~
   drivers/gpu/drm/virtio/virtgpu_vq.c:132:2: note: Taking true branch
           if (IS_ERR(vbuf)) {
           ^
   drivers/gpu/drm/virtio/virtgpu_vq.c:133:3: note: Null pointer value stored to 'vbuf'
                   *vbuffer_p = NULL;
                   ^~~~~~~~~~~~~~~~~
   drivers/gpu/drm/virtio/virtgpu_vq.c:1122:10: note: Returning from 'virtio_gpu_alloc_cursor'
           cur_p = virtio_gpu_alloc_cursor(vgdev, &vbuf);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/virtio/virtgpu_vq.c:1124:33: note: Passing null pointer value via 2nd parameter 'vbuf'
           virtio_gpu_queue_cursor(vgdev, vbuf);
                                          ^~~~
   drivers/gpu/drm/virtio/virtgpu_vq.c:1124:2: note: Calling 'virtio_gpu_queue_cursor'
           virtio_gpu_queue_cursor(vgdev, vbuf);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/virtio/virtgpu_vq.c:463:6: note: Assuming the condition is true
           if (!drm_dev_enter(vgdev->ddev, &idx)) {
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/virtio/virtgpu_vq.c:463:2: note: Taking true branch
           if (!drm_dev_enter(vgdev->ddev, &idx)) {
           ^
   drivers/gpu/drm/virtio/virtgpu_vq.c:464:20: note: Passing null pointer value via 2nd parameter 'vbuf'
                   free_vbuf(vgdev, vbuf);
                                    ^~~~
   drivers/gpu/drm/virtio/virtgpu_vq.c:464:3: note: Calling 'free_vbuf'
                   free_vbuf(vgdev, vbuf);
                   ^~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/virtio/virtgpu_vq.c:180:6: note: Access to field 'resp_size' results in a dereference of a null pointer (loaded from variable 'vbuf')
           if (vbuf->resp_size > MAX_INLINE_RESP_SIZE)
--
                   ^
   drivers/mfd/wm831x-irq.c:531:21: note: The result of the left shift is undefined due to shifting by '4294967295', which is greater or equal to the width of type 'int'
                           while (!(ret & 1 << (i - WM831X_IRQ_GPIO_1))) {
                                            ^  ~~~~~~~~~~~~~~~~~~~~~~~
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   Suppressed 9 warnings (9 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   5 warnings generated.
   Suppressed 5 warnings (5 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   10 warnings generated.
   drivers/video/fbdev/core/fbcvt.c:261:4: warning: Value stored to 'cnt' is never read [clang-analyzer-deadcode.DeadStores]
                           cnt -= read;
                           ^      ~~~~
   drivers/video/fbdev/core/fbcvt.c:261:4: note: Value stored to 'cnt' is never read
                           cnt -= read;
                           ^      ~~~~
   drivers/video/fbdev/core/fbcvt.c:262:4: warning: Value stored to 'offset' is never read [clang-analyzer-deadcode.DeadStores]
                           offset += read;
                           ^         ~~~~
   drivers/video/fbdev/core/fbcvt.c:262:4: note: Value stored to 'offset' is never read
                           offset += read;
                           ^         ~~~~
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   14 warnings generated.
   Suppressed 14 warnings (8 in non-user code, 6 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   6 warnings generated.
>> drivers/gpio/gpiolib.c:550:8: warning: Null pointer passed as 1st argument to string comparison function [clang-analyzer-unix.cstring.NullArg]
                   if (!strcmp(gc->label, hog->chip_label))
                        ^
   drivers/gpio/gpiolib.c:574:33: note: Assuming field 'parent' is null
           struct fwnode_handle *fwnode = gc->parent ? dev_fwnode(gc->parent) : NULL;
                                          ^~~~~~~~~~
   drivers/gpio/gpiolib.c:574:33: note: '?' condition is false
   drivers/gpio/gpiolib.c:586:6: note: Assuming 'gdev' is non-null
           if (!gdev)
               ^~~~~
   drivers/gpio/gpiolib.c:586:2: note: Taking false branch
           if (!gdev)
           ^
   drivers/gpio/gpiolib.c:593:2: note: Calling 'of_gpio_dev_init'
           of_gpio_dev_init(gc, gdev);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpio/gpiolib-of.h:40:1: note: Returning without writing to 'gc->label'
   }
   ^
   drivers/gpio/gpiolib.c:593:2: note: Returning from 'of_gpio_dev_init'
           of_gpio_dev_init(gc, gdev);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpio/gpiolib.c:594:2: note: Calling 'acpi_gpio_dev_init'
           acpi_gpio_dev_init(gc, gdev);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpio/gpiolib-acpi.h:63:89: note: Returning without writing to 'gc->label'
   static inline void acpi_gpio_dev_init(struct gpio_chip *gc, struct gpio_device *gdev) { }
                                                                                           ^
   drivers/gpio/gpiolib.c:594:2: note: Returning from 'acpi_gpio_dev_init'
           acpi_gpio_dev_init(gc, gdev);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpio/gpiolib.c:600:21: note: Value assigned to field 'label'
           gdev->dev.fwnode = dev_fwnode(&gdev->dev) ?: fwnode;
                              ^~~~~~~~~~~~~~~~~~~~~~
   drivers/gpio/gpiolib.c:600:21: note: '?' condition is true
   drivers/gpio/gpiolib.c:603:6: note: Assuming field 'id' is >= 0
           if (gdev->id < 0) {
               ^~~~~~~~~~~~
   drivers/gpio/gpiolib.c:603:2: note: Taking false branch
           if (gdev->id < 0) {
           ^
   drivers/gpio/gpiolib.c:609:6: note: Assuming 'ret' is 0
           if (ret)
               ^~~
   drivers/gpio/gpiolib.c:609:2: note: Taking false branch
           if (ret)
           ^
   drivers/gpio/gpiolib.c:613:6: note: Assuming field 'parent' is null
           if (gc->parent && gc->parent->driver)
               ^~~~~~~~~~
   drivers/gpio/gpiolib.c:613:17: note: Left side of '&&' is false
           if (gc->parent && gc->parent->driver)
                          ^
   drivers/gpio/gpiolib.c:615:11: note: Assuming field 'owner' is null
           else if (gc->owner)
                    ^~~~~~~~~
   drivers/gpio/gpiolib.c:615:7: note: Taking false branch
           else if (gc->owner)
                ^
   drivers/gpio/gpiolib.c:622:6: note: Assuming field 'descs' is non-null
           if (!gdev->descs) {
               ^~~~~~~~~~~~
   drivers/gpio/gpiolib.c:622:2: note: Taking false branch
           if (!gdev->descs) {
           ^
   drivers/gpio/gpiolib.c:627:6: note: Assuming field 'ngpio' is not equal to 0
           if (gc->ngpio == 0) {
               ^~~~~~~~~~~~~~
   drivers/gpio/gpiolib.c:627:2: note: Taking false branch
           if (gc->ngpio == 0) {
           ^
   drivers/gpio/gpiolib.c:633:6: note: Assuming field 'ngpio' is <= FASTPATH_NGPIO
           if (gc->ngpio > FASTPATH_NGPIO)
               ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpio/gpiolib.c:633:2: note: Taking false branch
           if (gc->ngpio > FASTPATH_NGPIO)
           ^
   drivers/gpio/gpiolib.c:637:30: note: Assuming pointer value is null
           gdev->label = kstrdup_const(gc->label ?: "unknown", GFP_KERNEL);
                                       ^~~~~~~~~
   drivers/gpio/gpiolib.c:637:30: note: '?' condition is false
   drivers/gpio/gpiolib.c:638:6: note: Assuming field 'label' is non-null
           if (!gdev->label) {
               ^~~~~~~~~~~~
   drivers/gpio/gpiolib.c:638:2: note: Taking false branch
           if (!gdev->label) {
           ^
   drivers/gpio/gpiolib.c:646:2: note: Loop condition is false.  Exiting loop
           spin_lock_irqsave(&gpio_lock, flags);
           ^
   include/linux/spinlock.h:384:2: note: expanded from macro 'spin_lock_irqsave'
           raw_spin_lock_irqsave(spinlock_check(lock), flags);     \
           ^
   include/linux/spinlock.h:250:2: note: expanded from macro 'raw_spin_lock_irqsave'
           do {                                            \
           ^
   drivers/gpio/gpiolib.c:646:2: note: Loop condition is false.  Exiting loop
           spin_lock_irqsave(&gpio_lock, flags);
           ^
   include/linux/spinlock.h:382:43: note: expanded from macro 'spin_lock_irqsave'
   #define spin_lock_irqsave(lock, flags)                          \
--
                         ^
   drivers/video/fbdev/smscufx.c:1112:2: note: Taking false branch
           if (dev->urbs.count > 0)
           ^
   drivers/video/fbdev/smscufx.c:1115:2: note: Taking false branch
           pr_debug("freeing ufx_data %p", dev);
           ^
   include/linux/printk.h:471:2: note: expanded from macro 'pr_debug'
           dynamic_pr_debug(fmt, ##__VA_ARGS__)
           ^
   include/linux/dynamic_debug.h:162:2: note: expanded from macro 'dynamic_pr_debug'
           _dynamic_func_call(fmt, __dynamic_pr_debug,             \
           ^
   include/linux/dynamic_debug.h:152:2: note: expanded from macro '_dynamic_func_call'
           __dynamic_func_call(__UNIQUE_ID(ddebug), fmt, func, ##__VA_ARGS__)
           ^
   include/linux/dynamic_debug.h:133:2: note: expanded from macro '__dynamic_func_call'
           if (DYNAMIC_DEBUG_BRANCH(id))                   \
           ^
   drivers/video/fbdev/smscufx.c:1115:2: note: Loop condition is false.  Exiting loop
           pr_debug("freeing ufx_data %p", dev);
           ^
   include/linux/printk.h:471:2: note: expanded from macro 'pr_debug'
           dynamic_pr_debug(fmt, ##__VA_ARGS__)
           ^
   include/linux/dynamic_debug.h:162:2: note: expanded from macro 'dynamic_pr_debug'
           _dynamic_func_call(fmt, __dynamic_pr_debug,             \
           ^
   include/linux/dynamic_debug.h:152:2: note: expanded from macro '_dynamic_func_call'
           __dynamic_func_call(__UNIQUE_ID(ddebug), fmt, func, ##__VA_ARGS__)
           ^
   include/linux/dynamic_debug.h:131:49: note: expanded from macro '__dynamic_func_call'
   #define __dynamic_func_call(id, fmt, func, ...) do {    \
                                                   ^
   drivers/video/fbdev/smscufx.c:1117:2: note: Memory is released
           kfree(dev);
           ^~~~~~~~~~
   include/linux/kref.h:65:3: note: Returning; memory was released
                   release(kref);
                   ^~~~~~~~~~~~~
   drivers/video/fbdev/smscufx.c:1731:2: note: Returning; memory was released
           kref_put(&dev->kref, ufx_free); /* ref for framebuffer */
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/video/fbdev/smscufx.c:1732:2: note: Calling 'kref_put'
           kref_put(&dev->kref, ufx_free); /* last ref from kref_init */
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/kref.h:64:6: note: Calling 'refcount_dec_and_test'
           if (refcount_dec_and_test(&kref->refcount)) {
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/refcount.h:333:9: note: Calling '__refcount_dec_and_test'
           return __refcount_dec_and_test(r, NULL);
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/refcount.h:315:9: note: Calling '__refcount_sub_and_test'
           return __refcount_sub_and_test(1, r, oldp);
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/refcount.h:272:12: note: Calling 'atomic_fetch_sub_release'
           int old = atomic_fetch_sub_release(i, &r->refs);
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/asm-generic/atomic-instrumented.h:168:9: note: Calling 'arch_atomic_fetch_sub'
           return arch_atomic_fetch_sub_release(i, v);
                  ^
   include/linux/atomic-arch-fallback.h:296:39: note: expanded from macro 'arch_atomic_fetch_sub_release'
   #define arch_atomic_fetch_sub_release arch_atomic_fetch_sub
                                         ^
   arch/arm/include/asm/atomic.h:224:1: note: Loop condition is false.  Exiting loop
   ATOMIC_OPS(sub, -=, sub)
   ^
   arch/arm/include/asm/atomic.h:221:2: note: expanded from macro 'ATOMIC_OPS'
           ATOMIC_FETCH_OP(op, c_op, asm_op)
           ^
   arch/arm/include/asm/atomic.h:192:2: note: expanded from macro 'ATOMIC_FETCH_OP'
           raw_local_irq_save(flags);                                      \
           ^
   include/linux/irqflags.h:169:2: note: expanded from macro 'raw_local_irq_save'
           do {                                            \
           ^
   arch/arm/include/asm/atomic.h:224:1: note: Use of memory after it is freed
   ATOMIC_OPS(sub, -=, sub)
   ^
   arch/arm/include/asm/atomic.h:221:2: note: expanded from macro 'ATOMIC_OPS'
           ATOMIC_FETCH_OP(op, c_op, asm_op)
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/arm/include/asm/atomic.h:193:8: note: expanded from macro 'ATOMIC_FETCH_OP'
           val = v->counter;                                               \
                 ^~~~~~~~~~
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   drivers/gpu/host1x/cdma.c:558:15: warning: Value stored to 'space' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           unsigned int space = cdma->slots_free;
                        ^~~~~   ~~~~~~~~~~~~~~~~
   drivers/gpu/host1x/cdma.c:558:15: note: Value stored to 'space' during its initialization is never read
           unsigned int space = cdma->slots_free;
                        ^~~~~   ~~~~~~~~~~~~~~~~
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   10 warnings generated.
>> drivers/gpu/host1x/job.c:185:35: warning: Assigned value is garbage or undefined [clang-analyzer-core.uninitialized.Assign]
                   job->addr_phys[job->num_unpins] = phys_addr;
                                                   ^
   drivers/gpu/host1x/job.c:599:8: note: Calling 'pin_job'
           err = pin_job(host, job);
                 ^~~~~~~~~~~~~~~~~~
   drivers/gpu/host1x/job.c:119:14: note: Assuming 'i' is < field 'num_relocs'
           for (i = 0; i < job->num_relocs; i++) {
                       ^~~~~~~~~~~~~~~~~~~
   drivers/gpu/host1x/job.c:119:2: note: Loop condition is true.  Entering loop body
           for (i = 0; i < job->num_relocs; i++) {
           ^
   drivers/gpu/host1x/job.c:121:14: note: 'phys_addr' declared without an initial value
                   dma_addr_t phys_addr, *phys;
                              ^~~~~~~~~
   drivers/gpu/host1x/job.c:125:7: note: Assuming field 'bo' is non-null
                   if (!reloc->target.bo) {
                       ^~~~~~~~~~~~~~~~~
   drivers/gpu/host1x/job.c:125:3: note: Taking false branch
                   if (!reloc->target.bo) {
                   ^
   drivers/gpu/host1x/job.c:142:7: note: Assuming 'domain' is non-null
                   if (!domain || client->group)
                       ^~~~~~~
   drivers/gpu/host1x/job.c:142:7: note: Left side of '||' is false
   drivers/gpu/host1x/job.c:142:18: note: Assuming field 'group' is null
                   if (!domain || client->group)
                                  ^~~~~~~~~~~~~
   drivers/gpu/host1x/job.c:142:3: note: Taking false branch
                   if (!domain || client->group)
                   ^
   drivers/gpu/host1x/job.c:148:7: note: Calling 'IS_ERR'
                   if (IS_ERR(sgt)) {
                       ^~~~~~~~~~~
   include/linux/err.h:36:9: note: Assuming the condition is false
           return IS_ERR_VALUE((unsigned long)ptr);
                  ^
   include/linux/err.h:22:34: note: expanded from macro 'IS_ERR_VALUE'
   #define IS_ERR_VALUE(x) unlikely((unsigned long)(void *)(x) >= (unsigned long)-MAX_ERRNO)
                           ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/compiler.h:78:42: note: expanded from macro 'unlikely'
   # define unlikely(x)    __builtin_expect(!!(x), 0)
                                               ^
   include/linux/err.h:36:2: note: Returning zero, which participates in a condition later
           return IS_ERR_VALUE((unsigned long)ptr);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/host1x/job.c:148:7: note: Returning from 'IS_ERR'
                   if (IS_ERR(sgt)) {
                       ^~~~~~~~~~~
   drivers/gpu/host1x/job.c:148:3: note: Taking false branch
                   if (IS_ERR(sgt)) {
                   ^
   drivers/gpu/host1x/job.c:153:7: note: Assuming 'sgt' is null
                   if (sgt) {
                       ^~~
   drivers/gpu/host1x/job.c:153:3: note: Taking false branch
                   if (sgt) {
                   ^
   drivers/gpu/host1x/job.c:185:35: note: Assigned value is garbage or undefined
                   job->addr_phys[job->num_unpins] = phys_addr;
                                                   ^ ~~~~~~~~~
   drivers/gpu/host1x/job.c:265:35: warning: Assigned value is garbage or undefined [clang-analyzer-core.uninitialized.Assign]
                   job->addr_phys[job->num_unpins] = phys_addr;
                                                   ^
   drivers/gpu/host1x/job.c:599:8: note: Calling 'pin_job'
           err = pin_job(host, job);
                 ^~~~~~~~~~~~~~~~~~
   drivers/gpu/host1x/job.c:119:14: note: Assuming 'i' is >= field 'num_relocs'
           for (i = 0; i < job->num_relocs; i++) {
                       ^~~~~~~~~~~~~~~~~~~
   drivers/gpu/host1x/job.c:119:2: note: Loop condition is false. Execution continues on line 195
           for (i = 0; i < job->num_relocs; i++) {
           ^
   drivers/gpu/host1x/job.c:195:2: note: Taking false branch
           if (IS_ENABLED(CONFIG_TEGRA_HOST1X_FIREWALL))
           ^
   drivers/gpu/host1x/job.c:198:14: note: Assuming 'i' is < field 'num_gathers'
           for (i = 0; i < job->num_gathers; i++) {
                       ^~~~~~~~~~~~~~~~~~~~
   drivers/gpu/host1x/job.c:198:2: note: Loop condition is true.  Entering loop body
           for (i = 0; i < job->num_gathers; i++) {
           ^
   drivers/gpu/host1x/job.c:202:3: note: 'phys_addr' declared without an initial value
                   dma_addr_t phys_addr;
                   ^~~~~~~~~~~~~~~~~~~~
   drivers/gpu/host1x/job.c:210:7: note: Assuming field 'bo' is non-null
                   if (!g->bo) {
                       ^~~~~~
   drivers/gpu/host1x/job.c:210:3: note: Taking false branch
                   if (!g->bo) {
                   ^
   drivers/gpu/host1x/job.c:220:7: note: Assuming the condition is false
                   if (!iommu_get_domain_for_dev(host->dev))
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/host1x/job.c:220:3: note: Taking false branch
                   if (!iommu_get_domain_for_dev(host->dev))
                   ^
   drivers/gpu/host1x/job.c:226:7: note: Calling 'IS_ERR'
                   if (IS_ERR(sgt)) {
                       ^~~~~~~~~~~
   include/linux/err.h:36:9: note: Assuming the condition is false
--
                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   crypto/testmgr.c:607:3: note: Loop condition is false. Execution continues on line 614
                   while (offset + partitions[i].length + TESTMGR_POISON_LEN >
                   ^
   crypto/testmgr.c:617:7: note: 'out_divs' is null
                   if (out_divs)
                       ^~~~~~~~
   crypto/testmgr.c:617:3: note: Taking false branch
                   if (out_divs)
                   ^
   crypto/testmgr.c:620:7: note: 'data' is non-null
                   if (data) {
                       ^~~~
   crypto/testmgr.c:620:3: note: Taking true branch
                   if (data) {
                   ^
   crypto/testmgr.c:623:15: note: Assuming '__UNIQUE_ID___x247' is >= '__UNIQUE_ID___y248'
                           copy_len = min(partitions[i].length, data->count);
                                      ^
   include/linux/minmax.h:45:19: note: expanded from macro 'min'
   #define min(x, y)       __careful_cmp(x, y, <)
                           ^~~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:38:3: note: expanded from macro '__careful_cmp'
                   __cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:33:3: note: expanded from macro '__cmp_once'
                   __cmp(unique_x, unique_y, op); })
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:28:26: note: expanded from macro '__cmp'
   #define __cmp(x, y, op) ((x) op (y) ? (x) : (y))
                            ^~~~~~~~~~
   crypto/testmgr.c:623:15: note: '?' condition is false
                           copy_len = min(partitions[i].length, data->count);
                                      ^
   include/linux/minmax.h:45:19: note: expanded from macro 'min'
   #define min(x, y)       __careful_cmp(x, y, <)
                           ^
   include/linux/minmax.h:38:3: note: expanded from macro '__careful_cmp'
                   __cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
                   ^
   include/linux/minmax.h:33:3: note: expanded from macro '__cmp_once'
                   __cmp(unique_x, unique_y, op); })
                   ^
   include/linux/minmax.h:28:26: note: expanded from macro '__cmp'
   #define __cmp(x, y, op) ((x) op (y) ? (x) : (y))
                            ^
   crypto/testmgr.c:625:16: note: Assuming 'copied' is equal to 'copy_len'
                           if (WARN_ON(copied != copy_len))
                                       ^
   include/asm-generic/bug.h:121:25: note: expanded from macro 'WARN_ON'
           int __ret_warn_on = !!(condition);                              \
                                  ^~~~~~~~~
   crypto/testmgr.c:625:8: note: Taking false branch
                           if (WARN_ON(copied != copy_len))
                               ^
   include/asm-generic/bug.h:122:2: note: expanded from macro 'WARN_ON'
           if (unlikely(__ret_warn_on))                                    \
           ^
   crypto/testmgr.c:625:4: note: Taking false branch
                           if (WARN_ON(copied != copy_len))
                           ^
   crypto/testmgr.c:600:14: note: Assuming 'i' is < field 'nents'
           for (i = 0; i < tsgl->nents; i++) {
                       ^~~~~~~~~~~~~~~
   crypto/testmgr.c:600:2: note: Loop condition is true.  Entering loop body
           for (i = 0; i < tsgl->nents; i++) {
           ^
   crypto/testmgr.c:601:25: note: Access to field 'offset' results in a dereference of an undefined pointer value (loaded from field 'div')
                   unsigned int offset = partitions[i].div->offset;
                                         ^             ~~~
   crypto/testmgr.c:1056:3: warning: Value stored to 'p' is never read [clang-analyzer-deadcode.DeadStores]
                   p += scnprintf(p, end - p, " key_offset=%u", cfg->key_offset);
                   ^    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   crypto/testmgr.c:1056:3: note: Value stored to 'p' is never read
                   p += scnprintf(p, end - p, " key_offset=%u", cfg->key_offset);
                   ^    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   Suppressed 9 warnings (9 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   Suppressed 9 warnings (8 in non-user code, 1 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   5 warnings generated.
   Suppressed 5 warnings (4 in non-user code, 1 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   10 warnings generated.
>> drivers/soc/ixp4xx/ixp4xx-npe.c:684:22: warning: Value stored to 'np' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct device_node *np = dev->of_node;
                               ^~   ~~~~~~~~~~~~
   drivers/soc/ixp4xx/ixp4xx-npe.c:684:22: note: Value stored to 'np' during its initialization is never read
           struct device_node *np = dev->of_node;
                               ^~   ~~~~~~~~~~~~
   Suppressed 9 warnings (8 in non-user code, 1 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   10 warnings generated.
   Suppressed 10 warnings (9 in non-user code, 1 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   Suppressed 9 warnings (9 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   drivers/regulator/bcm590xx-regulator.c:140:8: warning: Excessive padding in 'struct bcm590xx_info' (6 padding bytes, where 2 is optimal). 
   Optimal fields order: 
   name, 
   vin_name, 
   volt_table, 
   linear_ranges, 
   n_voltages, 
   n_linear_ranges, 
   consider reordering the fields or adding explicit padding members [clang-analyzer-optin.performance.Padding]
   struct bcm590xx_info {
   ~~~~~~~^~~~~~~~~~~~~~~
   drivers/regulator/bcm590xx-regulator.c:140:8: note: Excessive padding in 'struct bcm590xx_info' (6 padding bytes, where 2 is optimal). Optimal fields order: name, vin_name, volt_table, linear_ranges, n_voltages, n_linear_ranges, consider reordering the fields or adding explicit padding members
   struct bcm590xx_info {
   ~~~~~~~^~~~~~~~~~~~~~~
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   5 warnings generated.
   Suppressed 5 warnings (4 in non-user code, 1 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
--
                   async = list_first_entry_or_null(&map->async_free,
                           ^
   include/linux/list.h:546:20: note: expanded from macro 'list_first_entry_or_null'
           pos__ != head__ ? list_entry(pos__, type, member) : NULL; \
                             ^
   include/linux/list.h:511:2: note: expanded from macro 'list_entry'
           container_of(ptr, type, member)
           ^
   include/linux/kernel.h:495:61: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
                                                                      ^
   drivers/base/regmap/regmap.c:1499:11: note: Taking false branch
                   async = list_first_entry_or_null(&map->async_free,
                           ^
   include/linux/list.h:546:20: note: expanded from macro 'list_first_entry_or_null'
           pos__ != head__ ? list_entry(pos__, type, member) : NULL; \
                             ^
   include/linux/list.h:511:2: note: expanded from macro 'list_entry'
           container_of(ptr, type, member)
           ^
   include/linux/kernel.h:495:2: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
           ^
   note: (skipping 1 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
   include/linux/compiler_types.h:328:2: note: expanded from macro 'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
           ^
   include/linux/compiler_types.h:316:2: note: expanded from macro '_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
           ^
   include/linux/compiler_types.h:308:3: note: expanded from macro '__compiletime_assert'
                   if (!(condition))                                       \
                   ^
   drivers/base/regmap/regmap.c:1499:11: note: Loop condition is false.  Exiting loop
                   async = list_first_entry_or_null(&map->async_free,
                           ^
   include/linux/list.h:546:20: note: expanded from macro 'list_first_entry_or_null'
           pos__ != head__ ? list_entry(pos__, type, member) : NULL; \
                             ^
   include/linux/list.h:511:2: note: expanded from macro 'list_entry'
           container_of(ptr, type, member)
           ^
   include/linux/kernel.h:495:2: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
           ^
   note: (skipping 1 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
   include/linux/compiler_types.h:328:2: note: expanded from macro 'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
           ^
   include/linux/compiler_types.h:316:2: note: expanded from macro '_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
           ^
   include/linux/compiler_types.h:306:2: note: expanded from macro '__compiletime_assert'
           do {                                                            \
           ^
   drivers/base/regmap/regmap.c:1502:3: note: Calling 'list_del'
                   list_del(&async->list);
                   ^~~~~~~~~~~~~~~~~~~~~~
   include/linux/list.h:147:14: note: Use of memory after it is freed
           entry->next = LIST_POISON1;
           ~~~~~~~~~~~ ^
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   10 warnings generated.
   drivers/iommu/iova.c:64:29: warning: The result of the left shift is undefined due to shifting by '32', which is greater or equal to the width of type 'unsigned long' [clang-analyzer-core.UndefinedBinaryOperatorResult]
           iovad->dma_32bit_pfn = 1UL << (32 - iova_shift(iovad));
                                      ^  ~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/iommu/iova.c:56:10: note: Assuming the condition is false
           BUG_ON((granule > PAGE_SIZE) || !is_power_of_2(granule));
                   ^
   include/asm-generic/bug.h:65:45: note: expanded from macro 'BUG_ON'
   #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0)
                                      ~~~~~~~~~^~~~~~~~~~
   include/linux/compiler.h:78:42: note: expanded from macro 'unlikely'
   # define unlikely(x)    __builtin_expect(!!(x), 0)
                                               ^
   drivers/iommu/iova.c:56:9: note: Left side of '||' is false
           BUG_ON((granule > PAGE_SIZE) || !is_power_of_2(granule));
                  ^
   drivers/iommu/iova.c:56:2: note: Taking false branch
           BUG_ON((granule > PAGE_SIZE) || !is_power_of_2(granule));
           ^
   include/asm-generic/bug.h:65:32: note: expanded from macro 'BUG_ON'
   #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0)
                                  ^
   drivers/iommu/iova.c:56:2: note: Loop condition is false.  Exiting loop
           BUG_ON((granule > PAGE_SIZE) || !is_power_of_2(granule));
           ^
   include/asm-generic/bug.h:65:27: note: expanded from macro 'BUG_ON'
   #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0)
                             ^
   drivers/iommu/iova.c:58:2: note: Loop condition is false.  Exiting loop
           spin_lock_init(&iovad->iova_rbtree_lock);
           ^
   include/linux/spinlock.h:334:35: note: expanded from macro 'spin_lock_init'
   # define spin_lock_init(lock)                                   \
                                                                   ^
   drivers/iommu/iova.c:64:29: note: The result of the left shift is undefined due to shifting by '32', which is greater or equal to the width of type 'unsigned long'
           iovad->dma_32bit_pfn = 1UL << (32 - iova_shift(iovad));
                                      ^  ~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/iommu/iova.c:247:14: warning: Assigned value is garbage or undefined [clang-analyzer-core.uninitialized.Assign]
                   align_mask <<= fls_long(size - 1);
                              ^
   drivers/iommu/iova.c:503:6: note: 'iova_pfn' is 0
           if (iova_pfn)
               ^~~~~~~~
   drivers/iommu/iova.c:503:2: note: Taking false branch
           if (iova_pfn)
           ^
   drivers/iommu/iova.c:507:13: note: Calling 'alloc_iova'
           new_iova = alloc_iova(iovad, size, limit_pfn, true);
                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/iommu/iova.c:379:6: note: Assuming 'new_iova' is non-null
           if (!new_iova)
               ^~~~~~~~~
   drivers/iommu/iova.c:379:2: note: Taking false branch
           if (!new_iova)
           ^
   drivers/iommu/iova.c:382:8: note: Calling '__alloc_and_insert_iova_range'
           ret = __alloc_and_insert_iova_range(iovad, size, limit_pfn + 1,
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/iommu/iova.c:246:6: note: 'size_aligned' is true
           if (size_aligned)
               ^~~~~~~~~~~~
   drivers/iommu/iova.c:246:2: note: Taking true branch
           if (size_aligned)
           ^
   drivers/iommu/iova.c:247:18: note: Calling 'fls_long'
                   align_mask <<= fls_long(size - 1);
                                  ^~~~~~~~~~~~~~~~~~
   include/linux/bitops.h:187:2: note: Taking true branch
           if (sizeof(l) == 4)
           ^
   include/linux/bitops.h:188:10: note: Calling 'fls'
                   return fls(l);
                          ^~~~~~
   include/asm-generic/bitops/fls.h:15:2: note: 'r' initialized to 32
           int r = 32;
           ^~~~~
   include/asm-generic/bitops/fls.h:17:6: note: Assuming 'x' is not equal to 0, which participates in a condition later
           if (!x)
               ^~
   include/asm-generic/bitops/fls.h:17:2: note: Taking false branch
           if (!x)
           ^
   include/asm-generic/bitops/fls.h:19:6: note: Assuming the condition is false
           if (!(x & 0xffff0000u)) {
               ^~~~~~~~~~~~~~~~~~
   include/asm-generic/bitops/fls.h:19:2: note: Taking false branch
           if (!(x & 0xffff0000u)) {
           ^
   include/asm-generic/bitops/fls.h:23:6: note: Assuming the condition is false
           if (!(x & 0xff000000u)) {
               ^~~~~~~~~~~~~~~~~~
   include/asm-generic/bitops/fls.h:23:2: note: Taking false branch
           if (!(x & 0xff000000u)) {
           ^
   include/asm-generic/bitops/fls.h:27:6: note: Assuming the condition is false
           if (!(x & 0xf0000000u)) {
               ^~~~~~~~~~~~~~~~~~
   include/asm-generic/bitops/fls.h:27:2: note: Taking false branch
           if (!(x & 0xf0000000u)) {
           ^
   include/asm-generic/bitops/fls.h:31:6: note: Assuming the condition is false
           if (!(x & 0xc0000000u)) {
               ^~~~~~~~~~~~~~~~~~
   include/asm-generic/bitops/fls.h:31:2: note: Taking false branch
           if (!(x & 0xc0000000u)) {
           ^
   include/asm-generic/bitops/fls.h:35:6: note: Assuming the condition is false
           if (!(x & 0x80000000u)) {
               ^~~~~~~~~~~~~~~~~~
   include/asm-generic/bitops/fls.h:35:2: note: Taking false branch
           if (!(x & 0x80000000u)) {
           ^
   include/asm-generic/bitops/fls.h:39:2: note: Returning the value 32 (loaded from 'r')
           return r;
           ^~~~~~~~
   include/linux/bitops.h:188:10: note: Returning from 'fls'
                   return fls(l);
                          ^~~~~~
   include/linux/bitops.h:188:3: note: Returning the value 32
                   return fls(l);
                   ^~~~~~~~~~~~~
   drivers/iommu/iova.c:247:18: note: Returning from 'fls_long'
                   align_mask <<= fls_long(size - 1);
                                  ^~~~~~~~~~~~~~~~~~
   drivers/iommu/iova.c:247:14: note: Assigned value is garbage or undefined
                   align_mask <<= fls_long(size - 1);
                              ^   ~~~~~~~~~~~~~~~~~~
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   11 warnings generated.
   mm/memory.c:297:2: warning: Value stored to 'pud' is never read [clang-analyzer-deadcode.DeadStores]
           pud = pud_offset(p4d, start);
--
   5 warnings generated.
   drivers/tty/serial/uartlite.c:368:2: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]
           ret = uart_in32(ULITE_CONTROL, port);
           ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/tty/serial/uartlite.c:368:2: note: Value stored to 'ret' is never read
           ret = uart_in32(ULITE_CONTROL, port);
           ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   drivers/tty/serial/mxs-auart.c:1134:3: warning: Value stored to 'istat' is never read [clang-analyzer-deadcode.DeadStores]
                   istat &= ~AUART_INTR_TXIS;
                   ^        ~~~~~~~~~~~~~~~~
   drivers/tty/serial/mxs-auart.c:1134:3: note: Value stored to 'istat' is never read
                   istat &= ~AUART_INTR_TXIS;
                   ^        ~~~~~~~~~~~~~~~~
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   5 warnings generated.
   Suppressed 5 warnings (5 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
>> drivers/media/rc/sunxi-cir.c:143:9: warning: Division by zero [clang-analyzer-core.DivideZero]
           return DIV_ROUND_CLOSEST(USEC_PER_SEC * (ithr + 1),
                  ^
   include/linux/math.h:92:26: note: expanded from macro 'DIV_ROUND_CLOSEST'
                   (((__x) + ((__d) / 2)) / (__d)) :       \
                                          ^
   drivers/media/rc/sunxi-cir.c:246:9: note: Calling 'sunxi_ir_hw_init'
           return sunxi_ir_hw_init(dev);
                  ^~~~~~~~~~~~~~~~~~~~~
   drivers/media/rc/sunxi-cir.c:179:6: note: 'ret' is 0
           if (ret)
               ^~~
   drivers/media/rc/sunxi-cir.c:179:2: note: Taking false branch
           if (ret)
           ^
   drivers/media/rc/sunxi-cir.c:183:6: note: 'ret' is 0
           if (ret) {
               ^~~
   drivers/media/rc/sunxi-cir.c:183:2: note: Taking false branch
           if (ret) {
           ^
   drivers/media/rc/sunxi-cir.c:189:6: note: 'ret' is 0
           if (ret) {
               ^~~
   drivers/media/rc/sunxi-cir.c:189:2: note: Taking false branch
           if (ret) {
           ^
   drivers/media/rc/sunxi-cir.c:195:2: note: Loop condition is false.  Exiting loop
           writel(REG_CTL_MD, ir->base + SUNXI_IR_CTL_REG);
           ^
   arch/arm/include/asm/io.h:307:25: note: expanded from macro 'writel'
   #define writel(v,c)             ({ __iowmb(); writel_relaxed(v,c); })
                                      ^
   arch/arm/include/asm/io.h:169:20: note: expanded from macro '__iowmb'
   #define __iowmb()               do { } while (0)
                                   ^
   drivers/media/rc/sunxi-cir.c:198:2: note: Calling 'sunxi_ir_set_timeout'
           sunxi_ir_set_timeout(ir->rc, ir->rc->timeout);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/rc/sunxi-cir.c:157:26: note: Calling 'clk_get_rate'
           unsigned int base_clk = clk_get_rate(ir->clk);
                                   ^~~~~~~~~~~~~~~~~~~~~
   include/linux/clk.h:882:2: note: Returning zero
           return 0;
           ^~~~~~~~
   drivers/media/rc/sunxi-cir.c:157:26: note: Returning from 'clk_get_rate'
           unsigned int base_clk = clk_get_rate(ir->clk);
                                   ^~~~~~~~~~~~~~~~~~~~~
   drivers/media/rc/sunxi-cir.c:157:2: note: 'base_clk' initialized to 0
           unsigned int base_clk = clk_get_rate(ir->clk);
           ^~~~~~~~~~~~~~~~~~~~~
   drivers/media/rc/sunxi-cir.c:161:2: note: Taking false branch
           dev_dbg(rc_dev->dev.parent, "setting idle threshold to %u\n", ithr);
           ^
   include/linux/dev_printk.h:123:2: note: expanded from macro 'dev_dbg'
           dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__)
           ^
   include/linux/dynamic_debug.h:166:2: note: expanded from macro 'dynamic_dev_dbg'
           _dynamic_func_call(fmt,__dynamic_dev_dbg,               \
           ^
   include/linux/dynamic_debug.h:152:2: note: expanded from macro '_dynamic_func_call'
           __dynamic_func_call(__UNIQUE_ID(ddebug), fmt, func, ##__VA_ARGS__)
           ^
   include/linux/dynamic_debug.h:133:2: note: expanded from macro '__dynamic_func_call'
           if (DYNAMIC_DEBUG_BRANCH(id))                   \
           ^
   drivers/media/rc/sunxi-cir.c:161:2: note: Loop condition is false.  Exiting loop
           dev_dbg(rc_dev->dev.parent, "setting idle threshold to %u\n", ithr);
           ^
   include/linux/dev_printk.h:123:2: note: expanded from macro 'dev_dbg'
           dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__)
           ^
   include/linux/dynamic_debug.h:166:2: note: expanded from macro 'dynamic_dev_dbg'
           _dynamic_func_call(fmt,__dynamic_dev_dbg,               \
           ^
   include/linux/dynamic_debug.h:152:2: note: expanded from macro '_dynamic_func_call'
           __dynamic_func_call(__UNIQUE_ID(ddebug), fmt, func, ##__VA_ARGS__)
           ^
   include/linux/dynamic_debug.h:131:49: note: expanded from macro '__dynamic_func_call'
   #define __dynamic_func_call(id, fmt, func, ...) do {    \
                                                   ^
   drivers/media/rc/sunxi-cir.c:164:2: note: Loop condition is false.  Exiting loop
           writel(REG_CIR_NTHR(SUNXI_IR_RXNOISE) | REG_CIR_ITHR(ithr),
           ^
   arch/arm/include/asm/io.h:307:25: note: expanded from macro 'writel'
   #define writel(v,c)             ({ __iowmb(); writel_relaxed(v,c); })
                                      ^
   arch/arm/include/asm/io.h:169:20: note: expanded from macro '__iowmb'
   #define __iowmb()               do { } while (0)
                                   ^
   drivers/media/rc/sunxi-cir.c:167:39: note: Passing the value 0 via 1st parameter 'base_clk'
           rc_dev->timeout = sunxi_ithr_to_usec(base_clk, ithr);
                                                ^~~~~~~~
   drivers/media/rc/sunxi-cir.c:167:20: note: Calling 'sunxi_ithr_to_usec'
           rc_dev->timeout = sunxi_ithr_to_usec(base_clk, ithr);
                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/rc/sunxi-cir.c:143:9: note: '__d' initialized to 0
           return DIV_ROUND_CLOSEST(USEC_PER_SEC * (ithr + 1),
                  ^
   include/linux/math.h:88:2: note: expanded from macro 'DIV_ROUND_CLOSEST'
           typeof(divisor) __d = divisor;                  \
--
   fs/overlayfs/export.c:817:12: note: Assuming the condition is false
           dentry = (flags & OVL_FH_FLAG_PATH_UPPER) ?
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   fs/overlayfs/export.c:817:11: note: '?' condition is false
           dentry = (flags & OVL_FH_FLAG_PATH_UPPER) ?
                    ^
   fs/overlayfs/export.c:819:4: note: Calling 'ovl_lower_fh_to_d'
                    ovl_lower_fh_to_d(sb, fh);
                    ^~~~~~~~~~~~~~~~~~~~~~~~~
   fs/overlayfs/export.c:708:6: note: Assuming 'err' is 0
           if (err)
               ^~~
   fs/overlayfs/export.c:708:2: note: Taking false branch
           if (err)
           ^
   fs/overlayfs/export.c:711:6: note: Left side of '||' is false
           if (!d_is_dir(origin.dentry) ||
               ^
   fs/overlayfs/export.c:712:6: note: Assuming the condition is false
               !(origin.dentry->d_flags & DCACHE_DISCONNECTED)) {
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   fs/overlayfs/export.c:711:2: note: Taking false branch
           if (!d_is_dir(origin.dentry) ||
           ^
   fs/overlayfs/export.c:726:6: note: Assuming field 'indexdir' is null
           if (ofs->indexdir) {
               ^~~~~~~~~~~~~
   fs/overlayfs/export.c:726:2: note: Taking false branch
           if (ofs->indexdir) {
           ^
   fs/overlayfs/export.c:736:6: note: 'index' is null
           if (index && d_is_dir(index)) {
               ^~~~~
   fs/overlayfs/export.c:736:12: note: Left side of '&&' is false
           if (index && d_is_dir(index)) {
                     ^
   fs/overlayfs/export.c:749:2: note: Taking true branch
           if (d_is_dir(origin.dentry)) {
           ^
   fs/overlayfs/export.c:753:7: note: Assuming 'err' is 0
                   if (err)
                       ^~~
   fs/overlayfs/export.c:753:3: note: Taking false branch
                   if (err)
                   ^
   fs/overlayfs/export.c:756:6: note: 'index' is null
           if (index) {
               ^~~~~
   fs/overlayfs/export.c:756:2: note: Taking false branch
           if (index) {
           ^
   fs/overlayfs/export.c:763:11: note: Calling 'ovl_get_dentry'
           dentry = ovl_get_dentry(sb, NULL, &origin, index);
                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   fs/overlayfs/export.c:654:34: note: 'upper' is null
           const struct ovl_layer *layer = upper ? &ofs->layers[0] : lowerpath->layer;
                                           ^~~~~
   fs/overlayfs/export.c:654:34: note: '?' condition is false
   fs/overlayfs/export.c:655:24: note: '?' condition is false
           struct dentry *real = upper ?: (index ?: lowerpath->dentry);
                                 ^
   fs/overlayfs/export.c:655:34: note: '?' condition is false
           struct dentry *real = upper ?: (index ?: lowerpath->dentry);
                                           ^
   fs/overlayfs/export.c:655:2: note: 'real' initialized to a null pointer value
           struct dentry *real = upper ?: (index ?: lowerpath->dentry);
           ^~~~~~~~~~~~~~~~~~~
   fs/overlayfs/export.c:661:16: note: Passing null pointer value via 1st parameter 'dentry'
           if (!d_is_dir(real))
                         ^~~~
   fs/overlayfs/export.c:661:7: note: Calling 'd_is_dir'
           if (!d_is_dir(real))
                ^~~~~~~~~~~~~~
   include/linux/dcache.h:420:22: note: Passing null pointer value via 1st parameter 'dentry'
           return d_can_lookup(dentry) || d_is_autodir(dentry);
                               ^~~~~~
   include/linux/dcache.h:420:9: note: Calling 'd_can_lookup'
           return d_can_lookup(dentry) || d_is_autodir(dentry);
                  ^~~~~~~~~~~~~~~~~~~~
   include/linux/dcache.h:410:24: note: Passing null pointer value via 1st parameter 'dentry'
           return __d_entry_type(dentry) == DCACHE_DIRECTORY_TYPE;
                                 ^~~~~~
   include/linux/dcache.h:410:9: note: Calling '__d_entry_type'
           return __d_entry_type(dentry) == DCACHE_DIRECTORY_TYPE;
                  ^~~~~~~~~~~~~~~~~~~~~~
   include/linux/dcache.h:395:9: note: Access to field 'd_flags' results in a dereference of a null pointer (loaded from variable 'dentry')
           return dentry->d_flags & DCACHE_ENTRY_TYPE;
                  ^~~~~~
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   5 warnings generated.
>> drivers/w1/masters/mxc_w1.c:117:10: warning: Division by zero [clang-analyzer-core.DivideZero]
           clkrate /= clkdiv;
           ~~~~~~~~^~~~~~~~~
   drivers/w1/masters/mxc_w1.c:100:6: note: Assuming 'mdev' is non-null
           if (!mdev)
               ^~~~~
   drivers/w1/masters/mxc_w1.c:100:2: note: Taking false branch
           if (!mdev)
           ^
   drivers/w1/masters/mxc_w1.c:104:6: note: Calling 'IS_ERR'
           if (IS_ERR(mdev->clk))
               ^~~~~~~~~~~~~~~~~
   include/linux/err.h:36:2: note: Returning zero, which participates in a condition later
           return IS_ERR_VALUE((unsigned long)ptr);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/w1/masters/mxc_w1.c:104:6: note: Returning from 'IS_ERR'
           if (IS_ERR(mdev->clk))
               ^~~~~~~~~~~~~~~~~
   drivers/w1/masters/mxc_w1.c:104:2: note: Taking false branch
           if (IS_ERR(mdev->clk))
           ^
   drivers/w1/masters/mxc_w1.c:107:8: note: Calling 'clk_prepare_enable'
           err = clk_prepare_enable(mdev->clk);
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/clk.h:950:8: note: Calling 'clk_prepare'
           ret = clk_prepare(clk);
                 ^~~~~~~~~~~~~~~~
   include/linux/clk.h:273:2: note: Loop condition is false.  Exiting loop
           might_sleep();
           ^
   include/linux/kernel.h:132:2: note: expanded from macro 'might_sleep'
           do { __might_sleep(__FILE__, __LINE__, 0); might_resched(); } while (0)
           ^
   include/linux/clk.h:274:2: note: Returning zero, which participates in a condition later
           return 0;
           ^~~~~~~~
   include/linux/clk.h:950:8: note: Returning from 'clk_prepare'
           ret = clk_prepare(clk);
                 ^~~~~~~~~~~~~~~~
   include/linux/clk.h:951:6: note: 'ret' is 0
           if (ret)
               ^~~
   include/linux/clk.h:951:2: note: Taking false branch
           if (ret)
           ^
   include/linux/clk.h:953:8: note: Calling 'clk_enable'
           ret = clk_enable(clk);
                 ^~~~~~~~~~~~~~~
   include/linux/clk.h:865:2: note: Returning zero, which participates in a condition later
           return 0;
           ^~~~~~~~
   include/linux/clk.h:953:8: note: Returning from 'clk_enable'
           ret = clk_enable(clk);
                 ^~~~~~~~~~~~~~~
   include/linux/clk.h:954:6: note: 'ret' is 0
           if (ret)
               ^~~
   include/linux/clk.h:954:2: note: Taking false branch
           if (ret)
           ^
   include/linux/clk.h:957:2: note: Returning zero (loaded from 'ret'), which participates in a condition later
           return ret;
           ^~~~~~~~~~
   drivers/w1/masters/mxc_w1.c:107:8: note: Returning from 'clk_prepare_enable'
           err = clk_prepare_enable(mdev->clk);
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/w1/masters/mxc_w1.c:108:6: note: 'err' is 0
           if (err)
               ^~~
   drivers/w1/masters/mxc_w1.c:108:2: note: Taking false branch
           if (err)
           ^
   drivers/w1/masters/mxc_w1.c:112:6: note: 'clkrate' is < 10000000
           if (clkrate < 10000000)
               ^~~~~~~
   drivers/w1/masters/mxc_w1.c:112:2: note: Taking true branch
           if (clkrate < 10000000)
           ^
   drivers/w1/masters/mxc_w1.c:116:11: note: Left side of '||' is true
           clkdiv = DIV_ROUND_CLOSEST(clkrate, 1000000);
                    ^
   include/linux/math.h:89:23: note: expanded from macro 'DIV_ROUND_CLOSEST'
           (((typeof(x))-1) > 0 ||                         \
                                ^
   drivers/w1/masters/mxc_w1.c:116:2: note: The value 0 is assigned to 'clkdiv'
           clkdiv = DIV_ROUND_CLOSEST(clkrate, 1000000);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/w1/masters/mxc_w1.c:117:10: note: Division by zero
           clkrate /= clkdiv;
           ~~~~~~~~^~~~~~~~~
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
--
   drivers/hwmon/lm73.c:72:2: note: Taking false branch
           if (status < 0)
           ^
   drivers/hwmon/lm73.c:76:10: note: Assuming '__UNIQUE_ID___x278' is <= '__UNIQUE_ID___y279'
           value = clamp_val(temp / 250, LM73_TEMP_MIN, LM73_TEMP_MAX) << 5;
                   ^
   include/linux/minmax.h:137:32: note: expanded from macro 'clamp_val'
   #define clamp_val(val, lo, hi) clamp_t(typeof(val), val, lo, hi)
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:124:48: note: expanded from macro 'clamp_t'
   #define clamp_t(type, val, lo, hi) min_t(type, max_t(type, val, lo), hi)
                                      ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:112:27: note: expanded from macro 'max_t'
   #define max_t(type, x, y)       __careful_cmp((type)(x), (type)(y), >)
                                   ^
   note: (skipping 3 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
   include/linux/minmax.h:104:48: note: expanded from macro 'min_t'
   #define min_t(type, x, y)       __careful_cmp((type)(x), (type)(y), <)
                                   ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
   include/linux/minmax.h:38:14: note: expanded from macro '__careful_cmp'
                   __cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
                   ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:31:25: note: expanded from macro '__cmp_once'
                   typeof(x) unique_x = (x);               \
                                         ^
   drivers/hwmon/lm73.c:76:10: note: '?' condition is false
           value = clamp_val(temp / 250, LM73_TEMP_MIN, LM73_TEMP_MAX) << 5;
                   ^
   include/linux/minmax.h:137:32: note: expanded from macro 'clamp_val'
   #define clamp_val(val, lo, hi) clamp_t(typeof(val), val, lo, hi)
                                  ^
   include/linux/minmax.h:124:48: note: expanded from macro 'clamp_t'
   #define clamp_t(type, val, lo, hi) min_t(type, max_t(type, val, lo), hi)
                                                  ^
   include/linux/minmax.h:112:27: note: expanded from macro 'max_t'
   #define max_t(type, x, y)       __careful_cmp((type)(x), (type)(y), >)
                                   ^
   include/linux/minmax.h:38:3: note: expanded from macro '__careful_cmp'
                   __cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
                   ^
   include/linux/minmax.h:33:3: note: expanded from macro '__cmp_once'
                   __cmp(unique_x, unique_y, op); })
                   ^
   include/linux/minmax.h:28:26: note: expanded from macro '__cmp'
   #define __cmp(x, y, op) ((x) op (y) ? (x) : (y))
                            ^
   drivers/hwmon/lm73.c:76:10: note: '__UNIQUE_ID___x280' is < '__UNIQUE_ID___y281'
           value = clamp_val(temp / 250, LM73_TEMP_MIN, LM73_TEMP_MAX) << 5;
                   ^
   include/linux/minmax.h:137:32: note: expanded from macro 'clamp_val'
   #define clamp_val(val, lo, hi) clamp_t(typeof(val), val, lo, hi)
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:124:36: note: expanded from macro 'clamp_t'
   #define clamp_t(type, val, lo, hi) min_t(type, max_t(type, val, lo), hi)
                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:104:27: note: expanded from macro 'min_t'
   #define min_t(type, x, y)       __careful_cmp((type)(x), (type)(y), <)
                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:38:3: note: expanded from macro '__careful_cmp'
                   __cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:33:3: note: expanded from macro '__cmp_once'
                   __cmp(unique_x, unique_y, op); })
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:28:26: note: expanded from macro '__cmp'
   #define __cmp(x, y, op) ((x) op (y) ? (x) : (y))
                            ^~~
   drivers/hwmon/lm73.c:76:10: note: '?' condition is true
           value = clamp_val(temp / 250, LM73_TEMP_MIN, LM73_TEMP_MAX) << 5;
                   ^
   include/linux/minmax.h:137:32: note: expanded from macro 'clamp_val'
   #define clamp_val(val, lo, hi) clamp_t(typeof(val), val, lo, hi)
                                  ^
   include/linux/minmax.h:124:36: note: expanded from macro 'clamp_t'
   #define clamp_t(type, val, lo, hi) min_t(type, max_t(type, val, lo), hi)
                                      ^
   include/linux/minmax.h:104:27: note: expanded from macro 'min_t'
   #define min_t(type, x, y)       __careful_cmp((type)(x), (type)(y), <)
                                   ^
   include/linux/minmax.h:38:3: note: expanded from macro '__careful_cmp'
                   __cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
                   ^
   include/linux/minmax.h:33:3: note: expanded from macro '__cmp_once'
                   __cmp(unique_x, unique_y, op); })
                   ^
   include/linux/minmax.h:28:26: note: expanded from macro '__cmp'
   #define __cmp(x, y, op) ((x) op (y) ? (x) : (y))
                            ^
   drivers/hwmon/lm73.c:76:62: note: The result of the left shift is undefined because the left operand is negative
           value = clamp_val(temp / 250, LM73_TEMP_MIN, LM73_TEMP_MAX) << 5;
                                                                       ^
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   12 warnings generated.
   fs/binfmt_elf_fdpic.c:333:2: warning: Value stored to 'retval' is never read [clang-analyzer-deadcode.DeadStores]
           retval = -ENOEXEC;
           ^        ~~~~~~~~
   fs/binfmt_elf_fdpic.c:333:2: note: Value stored to 'retval' is never read
           retval = -ENOEXEC;
           ^        ~~~~~~~~
>> fs/binfmt_elf_fdpic.c:335:3: warning: Value stored to 'stack_size' is never read [clang-analyzer-deadcode.DeadStores]
                   stack_size = 131072UL; /* same as exec.c's default commit */
                   ^            ~~~~~~~~
   fs/binfmt_elf_fdpic.c:335:3: note: Value stored to 'stack_size' is never read
                   stack_size = 131072UL; /* same as exec.c's default commit */
                   ^            ~~~~~~~~
   fs/binfmt_elf_fdpic.c:772:2: warning: Value stored to 'load_addr' is never read [clang-analyzer-deadcode.DeadStores]
           load_addr = params->load_addr;
           ^           ~~~~~~~~~~~~~~~~~
   fs/binfmt_elf_fdpic.c:772:2: note: Value stored to 'load_addr' is never read
           load_addr = params->load_addr;
           ^           ~~~~~~~~~~~~~~~~~
   fs/binfmt_elf_fdpic.c:773:2: warning: Value stored to 'seg' is never read [clang-analyzer-deadcode.DeadStores]
           seg = loadmap->segs;
           ^     ~~~~~~~~~~~~~
   fs/binfmt_elf_fdpic.c:773:2: note: Value stored to 'seg' is never read
           seg = loadmap->segs;
           ^     ~~~~~~~~~~~~~
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   5 warnings generated.
   drivers/leds/uleds.c:150:4: warning: Value stored to 'retval' is never read [clang-analyzer-deadcode.DeadStores]
                           retval = copy_to_user(buffer, &udev->brightness,
                           ^        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/leds/uleds.c:150:4: note: Value stored to 'retval' is never read
                           retval = copy_to_user(buffer, &udev->brightness,
                           ^        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   5 warnings generated.
   include/linux/hid.h:1007:9: warning: Access to field 'name' results in a dereference of a null pointer (loaded from variable 'input') [clang-analyzer-core.NullDereference]
                                       input->name, c, type);
                                       ^
   drivers/hid/hid-cherry.c:42:6: note: Assuming the condition is false
           if ((usage->hid & HID_USAGE_PAGE) != HID_UP_CONSUMER)
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/hid/hid-cherry.c:42:2: note: Taking false branch
           if ((usage->hid & HID_USAGE_PAGE) != HID_UP_CONSUMER)
           ^
   drivers/hid/hid-cherry.c:45:2: note: Control jumps to 'case 771:'  at line 48
           switch (usage->hid & HID_USAGE) {
           ^
   drivers/hid/hid-cherry.c:48:14: note: Calling 'hid_map_usage_clear'
           case 0x303: ch_map_key_clear(KEY_PROG3);        break;
                       ^
   drivers/hid/hid-cherry.c:36:29: note: expanded from macro 'ch_map_key_clear'
   #define ch_map_key_clear(c)     hid_map_usage_clear(hi, usage, bit, max, \
                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/hid.h:1035:2: note: Calling 'hid_map_usage'
           hid_map_usage(hidinput, usage, bit, max, type, c);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/hid.h:982:2: note: 'input' initialized here
           struct input_dev *input = hidinput->input;
           ^~~~~~~~~~~~~~~~~~~~~~~
   include/linux/hid.h:986:2: note: Control jumps to 'case 1:'  at line 995
           switch (type) {
           ^
   include/linux/hid.h:998:3: note:  Execution continues on line 1005
                   break;
                   ^
   include/linux/hid.h:1005:15: note: 'c' is <= 'limit'
           if (unlikely(c > limit || !bmap)) {
                        ^
   include/linux/compiler.h:78:42: note: expanded from macro 'unlikely'
   # define unlikely(x)    __builtin_expect(!!(x), 0)
                                               ^
   include/linux/hid.h:1005:15: note: Left side of '||' is false
           if (unlikely(c > limit || !bmap)) {
                        ^
   include/linux/hid.h:1005:28: note: Assuming 'bmap' is null
           if (unlikely(c > limit || !bmap)) {
                                     ^
   include/linux/compiler.h:78:42: note: expanded from macro 'unlikely'
   # define unlikely(x)    __builtin_expect(!!(x), 0)
                                               ^
   include/linux/hid.h:1005:28: note: Assuming pointer value is null
           if (unlikely(c > limit || !bmap)) {
                                     ^
   include/linux/compiler.h:78:42: note: expanded from macro 'unlikely'
   # define unlikely(x)    __builtin_expect(!!(x), 0)
                                               ^
   include/linux/hid.h:1005:2: note: Taking true branch
           if (unlikely(c > limit || !bmap)) {
           ^
   include/linux/hid.h:1006:3: note: Assuming the condition is true
                   pr_warn_ratelimited("%s: Invalid code %d type %d\n",
--
                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/hid.h:1035:2: note: Calling 'hid_map_usage'
           hid_map_usage(hidinput, usage, bit, max, type, c);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/hid.h:982:2: note: 'input' initialized here
           struct input_dev *input = hidinput->input;
           ^~~~~~~~~~~~~~~~~~~~~~~
   include/linux/hid.h:986:2: note: Control jumps to 'case 1:'  at line 995
           switch (type) {
           ^
   include/linux/hid.h:998:3: note:  Execution continues on line 1005
                   break;
                   ^
   include/linux/hid.h:1005:15: note: 'c' is <= 'limit'
           if (unlikely(c > limit || !bmap)) {
                        ^
   include/linux/compiler.h:78:42: note: expanded from macro 'unlikely'
   # define unlikely(x)    __builtin_expect(!!(x), 0)
                                               ^
   include/linux/hid.h:1005:15: note: Left side of '||' is false
           if (unlikely(c > limit || !bmap)) {
                        ^
   include/linux/hid.h:1005:28: note: Assuming 'bmap' is null
           if (unlikely(c > limit || !bmap)) {
                                     ^
   include/linux/compiler.h:78:42: note: expanded from macro 'unlikely'
   # define unlikely(x)    __builtin_expect(!!(x), 0)
                                               ^
   include/linux/hid.h:1005:28: note: Assuming pointer value is null
           if (unlikely(c > limit || !bmap)) {
                                     ^
   include/linux/compiler.h:78:42: note: expanded from macro 'unlikely'
   # define unlikely(x)    __builtin_expect(!!(x), 0)
                                               ^
   include/linux/hid.h:1005:2: note: Taking true branch
           if (unlikely(c > limit || !bmap)) {
           ^
   include/linux/hid.h:1006:3: note: Assuming the condition is true
                   pr_warn_ratelimited("%s: Invalid code %d type %d\n",
                   ^
   include/linux/printk.h:557:2: note: expanded from macro 'pr_warn_ratelimited'
           printk_ratelimited(KERN_WARNING pr_fmt(fmt), ##__VA_ARGS__)
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/printk.h:540:6: note: expanded from macro 'printk_ratelimited'
           if (__ratelimit(&_rs))                                          \
               ^~~~~~~~~~~~~~~~~
   include/linux/ratelimit_types.h:41:28: note: expanded from macro '__ratelimit'
   #define __ratelimit(state) ___ratelimit(state, __func__)
                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/hid.h:1006:3: note: Taking true branch
                   pr_warn_ratelimited("%s: Invalid code %d type %d\n",
                   ^
   include/linux/printk.h:557:2: note: expanded from macro 'pr_warn_ratelimited'
           printk_ratelimited(KERN_WARNING pr_fmt(fmt), ##__VA_ARGS__)
           ^
   include/linux/printk.h:540:2: note: expanded from macro 'printk_ratelimited'
           if (__ratelimit(&_rs))                                          \
           ^
   include/linux/hid.h:1007:9: note: Access to field 'name' results in a dereference of a null pointer (loaded from variable 'input')
                                       input->name, c, type);
                                       ^
   include/linux/printk.h:557:49: note: expanded from macro 'pr_warn_ratelimited'
           printk_ratelimited(KERN_WARNING pr_fmt(fmt), ##__VA_ARGS__)
                                                          ^~~~~~~~~~~
   include/linux/printk.h:541:17: note: expanded from macro 'printk_ratelimited'
                   printk(fmt, ##__VA_ARGS__);                             \
                                 ^~~~~~~~~~~
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   drivers/hwmon/ltc2945.c:286:2: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]
           ret = regmap_update_bits(regmap, LTC2945_CONTROL, CONTROL_TEST_MODE,
           ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/hwmon/ltc2945.c:286:2: note: Value stored to 'ret' is never read
           ret = regmap_update_bits(regmap, LTC2945_CONTROL, CONTROL_TEST_MODE,
           ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
>> drivers/i2c/busses/i2c-riic.c:359:38: warning: Division by zero [clang-analyzer-core.DivideZero]
           brl -= t->scl_fall_ns / (1000000000 / rate);
                                    ~~~~~~~~~~~^~~~~~
   drivers/i2c/busses/i2c-riic.c:297:6: note: Assuming field 'bus_freq_hz' is <= I2C_MAX_FAST_MODE_FREQ
           if (t->bus_freq_hz > I2C_MAX_FAST_MODE_FREQ) {
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/i2c/busses/i2c-riic.c:297:2: note: Taking false branch
           if (t->bus_freq_hz > I2C_MAX_FAST_MODE_FREQ) {
           ^
   drivers/i2c/busses/i2c-riic.c:305:9: note: Calling 'clk_get_rate'
           rate = clk_get_rate(riic->clk);
                  ^~~~~~~~~~~~~~~~~~~~~~~
   include/linux/clk.h:882:2: note: Returning zero
           return 0;
           ^~~~~~~~
   drivers/i2c/busses/i2c-riic.c:305:9: note: Returning from 'clk_get_rate'
           rate = clk_get_rate(riic->clk);
                  ^~~~~~~~~~~~~~~~~~~~~~~
   drivers/i2c/busses/i2c-riic.c:305:2: note: The value 0 is assigned to 'rate'
           rate = clk_get_rate(riic->clk);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/i2c/busses/i2c-riic.c:324:2: note: Loop condition is true.  Entering loop body
           for (cks = 0; cks < 7; cks++) {
           ^
   drivers/i2c/busses/i2c-riic.c:330:7: note: Assuming the condition is true
                   if (brl <= (0x1F + 3))
                       ^~~~~~~~~~~~~~~~~
   drivers/i2c/busses/i2c-riic.c:330:3: note: Taking true branch
                   if (brl <= (0x1F + 3))
                   ^
   drivers/i2c/busses/i2c-riic.c:331:4: note:  Execution continues on line 337
                           break;
                           ^
   drivers/i2c/busses/i2c-riic.c:337:2: note: Taking false branch
           if (brl > (0x1F + 3)) {
           ^
   drivers/i2c/busses/i2c-riic.c:347:6: note: 'cks' is equal to 0
           if (cks == 0) {
               ^~~
   drivers/i2c/busses/i2c-riic.c:347:2: note: Taking true branch
           if (cks == 0) {
           ^
   drivers/i2c/busses/i2c-riic.c:359:38: note: Division by zero
           brl -= t->scl_fall_ns / (1000000000 / rate);
                                    ~~~~~~~~~~~^~~~~~
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   5 warnings generated.
   fs/autofs/root.c:562:2: warning: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
           strcpy(cp, symname);
           ^~~~~~
   fs/autofs/root.c:562:2: note: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119
           strcpy(cp, symname);
           ^~~~~~
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   Suppressed 9 warnings (8 in non-user code, 1 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
--
           ^
   drivers/hid/hid-samsung.c:105:2: note: Assuming 'hid_debug' is 0
           dbg_hid("samsung wireless keyboard/mouse input mapping event [0x%x]\n",
           ^
   include/linux/hid.h:1208:6: note: expanded from macro 'dbg_hid'
           if (hid_debug)                                                  \
               ^~~~~~~~~
   drivers/hid/hid-samsung.c:105:2: note: Taking false branch
           dbg_hid("samsung wireless keyboard/mouse input mapping event [0x%x]\n",
           ^
   include/linux/hid.h:1208:2: note: expanded from macro 'dbg_hid'
           if (hid_debug)                                                  \
           ^
   drivers/hid/hid-samsung.c:105:2: note: Loop condition is false.  Exiting loop
           dbg_hid("samsung wireless keyboard/mouse input mapping event [0x%x]\n",
           ^
   include/linux/hid.h:1206:32: note: expanded from macro 'dbg_hid'
   #define dbg_hid(fmt, ...)                                               \
                                                                           ^
   drivers/hid/hid-samsung.c:108:2: note: Control jumps to 'case 561:'  at line 120
           switch (usage->hid & HID_USAGE) {
           ^
   drivers/hid/hid-samsung.c:120:14: note: Calling 'hid_map_usage_clear'
           case 0x231: samsung_kbd_mouse_map_key_clear(KEY_STOP); break;
                       ^
   drivers/hid/hid-samsung.c:93:2: note: expanded from macro 'samsung_kbd_mouse_map_key_clear'
           hid_map_usage_clear(hi, usage, bit, max, EV_KEY, (c))
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/hid.h:1035:2: note: Calling 'hid_map_usage'
           hid_map_usage(hidinput, usage, bit, max, type, c);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/hid.h:982:2: note: 'input' initialized here
           struct input_dev *input = hidinput->input;
           ^~~~~~~~~~~~~~~~~~~~~~~
   include/linux/hid.h:986:2: note: Control jumps to 'case 1:'  at line 995
           switch (type) {
           ^
   include/linux/hid.h:998:3: note:  Execution continues on line 1005
                   break;
                   ^
   include/linux/hid.h:1005:15: note: 'c' is <= 'limit'
           if (unlikely(c > limit || !bmap)) {
                        ^
   include/linux/compiler.h:78:42: note: expanded from macro 'unlikely'
   # define unlikely(x)    __builtin_expect(!!(x), 0)
                                               ^
   include/linux/hid.h:1005:15: note: Left side of '||' is false
           if (unlikely(c > limit || !bmap)) {
                        ^
   include/linux/hid.h:1005:28: note: Assuming 'bmap' is null
           if (unlikely(c > limit || !bmap)) {
                                     ^
   include/linux/compiler.h:78:42: note: expanded from macro 'unlikely'
   # define unlikely(x)    __builtin_expect(!!(x), 0)
                                               ^
   include/linux/hid.h:1005:28: note: Assuming pointer value is null
           if (unlikely(c > limit || !bmap)) {
                                     ^
   include/linux/compiler.h:78:42: note: expanded from macro 'unlikely'
   # define unlikely(x)    __builtin_expect(!!(x), 0)
                                               ^
   include/linux/hid.h:1005:2: note: Taking true branch
           if (unlikely(c > limit || !bmap)) {
           ^
   include/linux/hid.h:1006:3: note: Assuming the condition is true
                   pr_warn_ratelimited("%s: Invalid code %d type %d\n",
                   ^
   include/linux/printk.h:557:2: note: expanded from macro 'pr_warn_ratelimited'
           printk_ratelimited(KERN_WARNING pr_fmt(fmt), ##__VA_ARGS__)
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/printk.h:540:6: note: expanded from macro 'printk_ratelimited'
           if (__ratelimit(&_rs))                                          \
               ^~~~~~~~~~~~~~~~~
   include/linux/ratelimit_types.h:41:28: note: expanded from macro '__ratelimit'
   #define __ratelimit(state) ___ratelimit(state, __func__)
                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/hid.h:1006:3: note: Taking true branch
                   pr_warn_ratelimited("%s: Invalid code %d type %d\n",
                   ^
   include/linux/printk.h:557:2: note: expanded from macro 'pr_warn_ratelimited'
           printk_ratelimited(KERN_WARNING pr_fmt(fmt), ##__VA_ARGS__)
           ^
   include/linux/printk.h:540:2: note: expanded from macro 'printk_ratelimited'
           if (__ratelimit(&_rs))                                          \
           ^
   include/linux/hid.h:1007:9: note: Access to field 'name' results in a dereference of a null pointer (loaded from variable 'input')
                                       input->name, c, type);
                                       ^
   include/linux/printk.h:557:49: note: expanded from macro 'pr_warn_ratelimited'
           printk_ratelimited(KERN_WARNING pr_fmt(fmt), ##__VA_ARGS__)
                                                          ^~~~~~~~~~~
   include/linux/printk.h:541:17: note: expanded from macro 'printk_ratelimited'
                   printk(fmt, ##__VA_ARGS__);                             \
                                 ^~~~~~~~~~~
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   Suppressed 9 warnings (8 in non-user code, 1 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
>> drivers/iommu/mtk_iommu_v1.c:384:3: warning: Value stored to 'fwspec' is never read [clang-analyzer-deadcode.DeadStores]
                   fwspec = dev_iommu_fwspec_get(dev);
                   ^        ~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/iommu/mtk_iommu_v1.c:384:3: note: Value stored to 'fwspec' is never read
                   fwspec = dev_iommu_fwspec_get(dev);
                   ^        ~~~~~~~~~~~~~~~~~~~~~~~~~
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   10 warnings generated.
   Suppressed 10 warnings (8 in non-user code, 2 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   Suppressed 9 warnings (8 in non-user code, 1 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   10 warnings generated.
   drivers/bcma/driver_mips.c:129:12: warning: The result of the left shift is undefined due to shifting by '63', which is greater or equal to the width of type 'int' [clang-analyzer-core.UndefinedBinaryOperatorResult]
                                   if ((1 << bcma_core_mips_irqflag(core)) ==
                                          ^
   drivers/bcma/driver_mips.c:305:6: note: Assuming field 'setup_done' is 0
           if (mcore->setup_done)
               ^~~~~~~~~~~~~~~~~
   drivers/bcma/driver_mips.c:305:2: note: Taking false branch
           if (mcore->setup_done)
           ^
   drivers/bcma/driver_mips.c:308:2: note: Taking false branch
           bcma_debug(bus, "Initializing MIPS core...\n");
           ^
   drivers/bcma/bcma_private.h:19:2: note: expanded from macro 'bcma_debug'
           dev_dbg((bus)->dev, "bus%d: " fmt, (bus)->num, ##__VA_ARGS__)
           ^
   include/linux/dev_printk.h:123:2: note: expanded from macro 'dev_dbg'
           dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__)
           ^
   include/linux/dynamic_debug.h:166:2: note: expanded from macro 'dynamic_dev_dbg'
           _dynamic_func_call(fmt,__dynamic_dev_dbg,               \
           ^
   include/linux/dynamic_debug.h:152:2: note: expanded from macro '_dynamic_func_call'
           __dynamic_func_call(__UNIQUE_ID(ddebug), fmt, func, ##__VA_ARGS__)
           ^
   include/linux/dynamic_debug.h:133:2: note: expanded from macro '__dynamic_func_call'
           if (DYNAMIC_DEBUG_BRANCH(id))                   \
           ^
   drivers/bcma/driver_mips.c:308:2: note: Loop condition is false.  Exiting loop
           bcma_debug(bus, "Initializing MIPS core...\n");
           ^
   drivers/bcma/bcma_private.h:19:2: note: expanded from macro 'bcma_debug'
           dev_dbg((bus)->dev, "bus%d: " fmt, (bus)->num, ##__VA_ARGS__)
           ^
   include/linux/dev_printk.h:123:2: note: expanded from macro 'dev_dbg'
           dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__)
           ^
   include/linux/dynamic_debug.h:166:2: note: expanded from macro 'dynamic_dev_dbg'
           _dynamic_func_call(fmt,__dynamic_dev_dbg,               \
           ^
   include/linux/dynamic_debug.h:152:2: note: expanded from macro '_dynamic_func_call'
           __dynamic_func_call(__UNIQUE_ID(ddebug), fmt, func, ##__VA_ARGS__)
           ^
   include/linux/dynamic_debug.h:131:49: note: expanded from macro '__dynamic_func_call'
   #define __dynamic_func_call(id, fmt, func, ...) do {    \
                                                   ^
   drivers/bcma/driver_mips.c:314:2: note: Control jumps to 'case 21248:'  at line 339
           switch (bus->chipinfo.id) {
           ^
   drivers/bcma/driver_mips.c:340:3: note: Calling 'bcma_core_mips_set_irq_name'
                   bcma_core_mips_set_irq_name(bus, 1, BCMA_CORE_PCIE, 0);
--
                   ^
   drivers/staging/emxx_udc/emxx_udc.c:2689:7: note: Loop condition is false.  Exiting loop
           ep = container_of(_ep, struct nbu2ss_ep, ep);
                ^
   include/linux/kernel.h:495:2: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
           ^
   include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
   #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
                                       ^
   include/linux/compiler_types.h:328:2: note: expanded from macro 'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
           ^
   include/linux/compiler_types.h:316:2: note: expanded from macro '_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
           ^
   include/linux/compiler_types.h:306:2: note: expanded from macro '__compiletime_assert'
           do {                                                            \
           ^
   drivers/staging/emxx_udc/emxx_udc.c:2692:6: note: Assuming 'udc' is null
           if (!udc) {
               ^~~~
   drivers/staging/emxx_udc/emxx_udc.c:2692:6: note: Assuming pointer value is null
           if (!udc) {
               ^~~~
   drivers/staging/emxx_udc/emxx_udc.c:2692:2: note: Taking true branch
           if (!udc) {
           ^
   drivers/staging/emxx_udc/emxx_udc.c:2693:11: note: Access to field 'dev' results in a dereference of a null pointer (loaded from field 'udc')
                   dev_err(ep->udc->dev, " *** %s, bad udc\n", __func__);
                           ^
   include/linux/dev_printk.h:112:11: note: expanded from macro 'dev_err'
           _dev_err(dev, dev_fmt(fmt), ##__VA_ARGS__)
                    ^~~
   drivers/staging/emxx_udc/emxx_udc.c:2741:11: warning: Access to field 'dev' results in a dereference of a null pointer (loaded from field 'udc') [clang-analyzer-core.NullDereference]
                   dev_err(ep->udc->dev, "%s, bad udc\n", __func__);
                           ^
   include/linux/dev_printk.h:112:11: note: expanded from macro 'dev_err'
           _dev_err(dev, dev_fmt(fmt), ##__VA_ARGS__)
                    ^~~
   drivers/staging/emxx_udc/emxx_udc.c:2732:6: note: Assuming '_ep' is non-null
           if (!_ep) {
               ^~~~
   drivers/staging/emxx_udc/emxx_udc.c:2732:2: note: Taking false branch
           if (!_ep) {
           ^
   drivers/staging/emxx_udc/emxx_udc.c:2737:7: note: Left side of '&&' is false
           ep = container_of(_ep, struct nbu2ss_ep, ep);
                ^
   include/linux/kernel.h:495:61: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
                                                                      ^
   drivers/staging/emxx_udc/emxx_udc.c:2737:7: note: Taking false branch
           ep = container_of(_ep, struct nbu2ss_ep, ep);
                ^
   include/linux/kernel.h:495:2: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
           ^
   include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
   #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
                                       ^
   include/linux/compiler_types.h:328:2: note: expanded from macro 'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
           ^
   include/linux/compiler_types.h:316:2: note: expanded from macro '_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
           ^
   include/linux/compiler_types.h:308:3: note: expanded from macro '__compiletime_assert'
                   if (!(condition))                                       \
                   ^
   drivers/staging/emxx_udc/emxx_udc.c:2737:7: note: Loop condition is false.  Exiting loop
           ep = container_of(_ep, struct nbu2ss_ep, ep);
                ^
   include/linux/kernel.h:495:2: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
           ^
   include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
   #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
                                       ^
   include/linux/compiler_types.h:328:2: note: expanded from macro 'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
           ^
   include/linux/compiler_types.h:316:2: note: expanded from macro '_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
           ^
   include/linux/compiler_types.h:306:2: note: expanded from macro '__compiletime_assert'
           do {                                                            \
           ^
   drivers/staging/emxx_udc/emxx_udc.c:2740:6: note: Assuming 'udc' is null
           if (!udc) {
               ^~~~
   drivers/staging/emxx_udc/emxx_udc.c:2740:2: note: Taking true branch
           if (!udc) {
           ^
   drivers/staging/emxx_udc/emxx_udc.c:2741:11: note: Access to field 'dev' results in a dereference of a null pointer (loaded from field 'udc')
                   dev_err(ep->udc->dev, "%s, bad udc\n", __func__);
                           ^
   include/linux/dev_printk.h:112:11: note: expanded from macro 'dev_err'
           _dev_err(dev, dev_fmt(fmt), ##__VA_ARGS__)
                    ^~~
>> drivers/staging/emxx_udc/emxx_udc.c:2754:3: warning: Value stored to 'data' is never read [clang-analyzer-deadcode.DeadStores]
                   data = _nbu2ss_readl(&preg->EP0_LENGTH) & EP0_LDATA;
                   ^      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/staging/emxx_udc/emxx_udc.c:2754:3: note: Value stored to 'data' is never read
                   data = _nbu2ss_readl(&preg->EP0_LENGTH) & EP0_LDATA;
                   ^      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/staging/emxx_udc/emxx_udc.c:2757:3: warning: Value stored to 'data' is never read [clang-analyzer-deadcode.DeadStores]
                   data = _nbu2ss_readl(&preg->EP_REGS[ep->epnum - 1].EP_LEN_DCNT)
                   ^      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/staging/emxx_udc/emxx_udc.c:2757:3: note: Value stored to 'data' is never read
                   data = _nbu2ss_readl(&preg->EP_REGS[ep->epnum - 1].EP_LEN_DCNT)
                   ^      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/staging/emxx_udc/emxx_udc.c:2783:11: warning: Access to field 'dev' results in a dereference of a null pointer (loaded from field 'udc') [clang-analyzer-core.NullDereference]
                   dev_err(ep->udc->dev, "%s, bad udc\n", __func__);
                           ^
   include/linux/dev_printk.h:112:11: note: expanded from macro 'dev_err'
           _dev_err(dev, dev_fmt(fmt), ##__VA_ARGS__)
                    ^~~
   drivers/staging/emxx_udc/emxx_udc.c:2774:6: note: Assuming '_ep' is non-null
           if (!_ep) {
               ^~~~
   drivers/staging/emxx_udc/emxx_udc.c:2774:2: note: Taking false branch
           if (!_ep) {
           ^
   drivers/staging/emxx_udc/emxx_udc.c:2779:7: note: Left side of '&&' is false
           ep = container_of(_ep, struct nbu2ss_ep, ep);
                ^
   include/linux/kernel.h:495:61: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
                                                                      ^
   drivers/staging/emxx_udc/emxx_udc.c:2779:7: note: Taking false branch
           ep = container_of(_ep, struct nbu2ss_ep, ep);
                ^
   include/linux/kernel.h:495:2: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
           ^
   include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
   #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
                                       ^
   include/linux/compiler_types.h:328:2: note: expanded from macro 'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
           ^
   include/linux/compiler_types.h:316:2: note: expanded from macro '_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
           ^
   include/linux/compiler_types.h:308:3: note: expanded from macro '__compiletime_assert'
                   if (!(condition))                                       \
                   ^
   drivers/staging/emxx_udc/emxx_udc.c:2779:7: note: Loop condition is false.  Exiting loop
           ep = container_of(_ep, struct nbu2ss_ep, ep);
                ^
   include/linux/kernel.h:495:2: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
           ^
   include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
   #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
                                       ^
   include/linux/compiler_types.h:328:2: note: expanded from macro 'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
           ^
   include/linux/compiler_types.h:316:2: note: expanded from macro '_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
           ^
   include/linux/compiler_types.h:306:2: note: expanded from macro '__compiletime_assert'
           do {                                                            \
           ^
   drivers/staging/emxx_udc/emxx_udc.c:2782:6: note: Assuming 'udc' is null
           if (!udc) {
               ^~~~
   drivers/staging/emxx_udc/emxx_udc.c:2782:2: note: Taking true branch
           if (!udc) {
           ^
   drivers/staging/emxx_udc/emxx_udc.c:2783:11: note: Access to field 'dev' results in a dereference of a null pointer (loaded from field 'udc')
                   dev_err(ep->udc->dev, "%s, bad udc\n", __func__);
                           ^
   include/linux/dev_printk.h:112:11: note: expanded from macro 'dev_err'
           _dev_err(dev, dev_fmt(fmt), ##__VA_ARGS__)
                    ^~~
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.

vim +29 drivers/gpu/host1x/intr.c

7ede0b0bf3e2595 Terje Bergstrom 2013-03-22  26  
7ede0b0bf3e2595 Terje Bergstrom 2013-03-22  27  static void waiter_release(struct kref *kref)
7ede0b0bf3e2595 Terje Bergstrom 2013-03-22  28  {
7ede0b0bf3e2595 Terje Bergstrom 2013-03-22 @29  	kfree(container_of(kref, struct host1x_waitlist, refcount));
7ede0b0bf3e2595 Terje Bergstrom 2013-03-22  30  }
7ede0b0bf3e2595 Terje Bergstrom 2013-03-22  31  

:::::: The code at line 29 was first introduced by commit
:::::: 7ede0b0bf3e2595d40d6195b6fe4c4dcef438830 gpu: host1x: Add syncpoint wait and interrupts

:::::: TO: Terje Bergstrom <tbergstrom@nvidia.com>
:::::: CC: Thierry Reding <thierry.reding@avionic-design.de>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 25141 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2022-04-18 11:55 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-04-18 11:55 drivers/gpu/host1x/intr.c:29:2: warning: Attempt to free released memory [clang-analyzer-unix.Malloc] kernel test robot
  -- strict thread matches above, loose matches on Subject: below --
2021-11-19  1:56 kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.