Re: [PATCH v3 07/13] iio: imu: add Kconfig and Makefile for inv_icm42600 driver
by kernel test robot
Hi Jean-Baptiste,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on iio/togreg]
[also build test WARNING on robh/for-next linus/master v5.7 next-20200608]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]
url: https://github.com/0day-ci/linux/commits/Jean-Baptiste-Maneyrol/iio-imu-n...
base: https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio.git togreg
config: ia64-allmodconfig (attached as .config)
compiler: ia64-linux-gcc (GCC) 9.3.0
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
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=ia64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>, old ones prefixed by <<):
drivers/iio/imu/inv_icm42600/inv_icm42600_core.c: In function 'inv_icm42600_get_mount_matrix':
>> drivers/iio/imu/inv_icm42600/inv_icm42600_core.c:91:63: warning: passing argument 1 of 'iio_device_get_drvdata' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
91 | const struct inv_icm42600_state *st = iio_device_get_drvdata(indio_dev);
| ^~~~~~~~~
In file included from drivers/iio/imu/inv_icm42600/inv_icm42600_core.c:15:
include/linux/iio/iio.h:672:60: note: expected 'struct iio_dev *' but argument is of type 'const struct iio_dev *'
672 | static inline void *iio_device_get_drvdata(struct iio_dev *indio_dev)
| ~~~~~~~~~~~~~~~~^~~~~~~~~
vim +91 drivers/iio/imu/inv_icm42600/inv_icm42600_core.c
632e967c33fb32 Jean-Baptiste Maneyrol 2020-06-08 86
632e967c33fb32 Jean-Baptiste Maneyrol 2020-06-08 87 const struct iio_mount_matrix *
632e967c33fb32 Jean-Baptiste Maneyrol 2020-06-08 88 inv_icm42600_get_mount_matrix(const struct iio_dev *indio_dev,
632e967c33fb32 Jean-Baptiste Maneyrol 2020-06-08 89 const struct iio_chan_spec *chan)
632e967c33fb32 Jean-Baptiste Maneyrol 2020-06-08 90 {
632e967c33fb32 Jean-Baptiste Maneyrol 2020-06-08 @91 const struct inv_icm42600_state *st = iio_device_get_drvdata(indio_dev);
632e967c33fb32 Jean-Baptiste Maneyrol 2020-06-08 92
632e967c33fb32 Jean-Baptiste Maneyrol 2020-06-08 93 return &st->orientation;
632e967c33fb32 Jean-Baptiste Maneyrol 2020-06-08 94 }
632e967c33fb32 Jean-Baptiste Maneyrol 2020-06-08 95
:::::: The code at line 91 was first introduced by commit
:::::: 632e967c33fb32bb0a2a2f85a2a8d2e6d2b125f3 iio: imu: inv_icm42600: add core of new inv_icm42600 driver
:::::: TO: Jean-Baptiste Maneyrol <jmaneyrol(a)invensense.com>
:::::: CC: 0day robot <lkp(a)intel.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 3 months
[peterz-queue:x86/entry 1/1] fs/xfs/xfs_buf_item_recover.c:933:4: warning: this 'else' clause does not guard...
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git x86/entry
head: b8797e281f77cdac3988e9a97b1c76eabbabaefa
commit: b8797e281f77cdac3988e9a97b1c76eabbabaefa [1/1] Merge branch 'linus' into x86/entry, to resolve conflicts
config: i386-randconfig-a001-20200614 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-13) 9.3.0
reproduce (this is a W=1 build):
git checkout b8797e281f77cdac3988e9a97b1c76eabbabaefa
# save the attached .config to linux build tree
make W=1 ARCH=i386
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>, old ones prefixed by <<):
fs/xfs/xfs_buf_item_recover.c: In function 'xlog_recover_buf_commit_pass2':
>> fs/xfs/xfs_buf_item_recover.c:933:4: warning: this 'else' clause does not guard... [-Wmisleading-indentation]
933 | } else if (buf_f->blf_flags &
| ^~~~
In file included from include/linux/string.h:6,
from include/linux/uuid.h:12,
from fs/xfs/xfs_linux.h:10,
from fs/xfs/xfs.h:22,
from fs/xfs/xfs_buf_item_recover.c:6:
include/linux/compiler.h:56:23: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'else'
56 | #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
| ^~
--
fs/xfs/xfs_inode_item_recover.c: In function 'xlog_recover_inode_commit_pass2':
>> fs/xfs/xfs_inode_item_recover.c:244:4: warning: this 'else' clause does not guard... [-Wmisleading-indentation]
244 | } else if (unlikely(S_ISDIR(ldip->di_mode))) {
| ^~~~
In file included from include/linux/string.h:6,
from include/linux/uuid.h:12,
from fs/xfs/xfs_linux.h:10,
from fs/xfs/xfs.h:22,
from fs/xfs/xfs_inode_item_recover.c:6:
include/linux/compiler.h:56:23: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'else'
56 | #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
| ^~
vim +/else +933 fs/xfs/xfs_buf_item_recover.c
1094d3f1236347 Darrick J. Wong 2020-05-01 839
1094d3f1236347 Darrick J. Wong 2020-05-01 840 /*
1094d3f1236347 Darrick J. Wong 2020-05-01 841 * This routine replays a modification made to a buffer at runtime.
1094d3f1236347 Darrick J. Wong 2020-05-01 842 * There are actually two types of buffer, regular and inode, which
1094d3f1236347 Darrick J. Wong 2020-05-01 843 * are handled differently. Inode buffers are handled differently
1094d3f1236347 Darrick J. Wong 2020-05-01 844 * in that we only recover a specific set of data from them, namely
1094d3f1236347 Darrick J. Wong 2020-05-01 845 * the inode di_next_unlinked fields. This is because all other inode
1094d3f1236347 Darrick J. Wong 2020-05-01 846 * data is actually logged via inode records and any data we replay
1094d3f1236347 Darrick J. Wong 2020-05-01 847 * here which overlaps that may be stale.
1094d3f1236347 Darrick J. Wong 2020-05-01 848 *
1094d3f1236347 Darrick J. Wong 2020-05-01 849 * When meta-data buffers are freed at run time we log a buffer item
1094d3f1236347 Darrick J. Wong 2020-05-01 850 * with the XFS_BLF_CANCEL bit set to indicate that previous copies
1094d3f1236347 Darrick J. Wong 2020-05-01 851 * of the buffer in the log should not be replayed at recovery time.
1094d3f1236347 Darrick J. Wong 2020-05-01 852 * This is so that if the blocks covered by the buffer are reused for
1094d3f1236347 Darrick J. Wong 2020-05-01 853 * file data before we crash we don't end up replaying old, freed
1094d3f1236347 Darrick J. Wong 2020-05-01 854 * meta-data into a user's file.
1094d3f1236347 Darrick J. Wong 2020-05-01 855 *
1094d3f1236347 Darrick J. Wong 2020-05-01 856 * To handle the cancellation of buffer log items, we make two passes
1094d3f1236347 Darrick J. Wong 2020-05-01 857 * over the log during recovery. During the first we build a table of
1094d3f1236347 Darrick J. Wong 2020-05-01 858 * those buffers which have been cancelled, and during the second we
1094d3f1236347 Darrick J. Wong 2020-05-01 859 * only replay those buffers which do not have corresponding cancel
1094d3f1236347 Darrick J. Wong 2020-05-01 860 * records in the table. See xlog_recover_buf_pass[1,2] above
1094d3f1236347 Darrick J. Wong 2020-05-01 861 * for more details on the implementation of the table of cancel records.
1094d3f1236347 Darrick J. Wong 2020-05-01 862 */
1094d3f1236347 Darrick J. Wong 2020-05-01 863 STATIC int
1094d3f1236347 Darrick J. Wong 2020-05-01 864 xlog_recover_buf_commit_pass2(
1094d3f1236347 Darrick J. Wong 2020-05-01 865 struct xlog *log,
1094d3f1236347 Darrick J. Wong 2020-05-01 866 struct list_head *buffer_list,
1094d3f1236347 Darrick J. Wong 2020-05-01 867 struct xlog_recover_item *item,
1094d3f1236347 Darrick J. Wong 2020-05-01 868 xfs_lsn_t current_lsn)
1094d3f1236347 Darrick J. Wong 2020-05-01 869 {
1094d3f1236347 Darrick J. Wong 2020-05-01 870 struct xfs_buf_log_format *buf_f = item->ri_buf[0].i_addr;
1094d3f1236347 Darrick J. Wong 2020-05-01 871 struct xfs_mount *mp = log->l_mp;
1094d3f1236347 Darrick J. Wong 2020-05-01 872 struct xfs_buf *bp;
1094d3f1236347 Darrick J. Wong 2020-05-01 873 int error;
1094d3f1236347 Darrick J. Wong 2020-05-01 874 uint buf_flags;
1094d3f1236347 Darrick J. Wong 2020-05-01 875 xfs_lsn_t lsn;
1094d3f1236347 Darrick J. Wong 2020-05-01 876
1094d3f1236347 Darrick J. Wong 2020-05-01 877 /*
1094d3f1236347 Darrick J. Wong 2020-05-01 878 * In this pass we only want to recover all the buffers which have
1094d3f1236347 Darrick J. Wong 2020-05-01 879 * not been cancelled and are not cancellation buffers themselves.
1094d3f1236347 Darrick J. Wong 2020-05-01 880 */
1094d3f1236347 Darrick J. Wong 2020-05-01 881 if (buf_f->blf_flags & XFS_BLF_CANCEL) {
1094d3f1236347 Darrick J. Wong 2020-05-01 882 if (xlog_put_buffer_cancelled(log, buf_f->blf_blkno,
1094d3f1236347 Darrick J. Wong 2020-05-01 883 buf_f->blf_len))
1094d3f1236347 Darrick J. Wong 2020-05-01 884 goto cancelled;
1094d3f1236347 Darrick J. Wong 2020-05-01 885 } else {
1094d3f1236347 Darrick J. Wong 2020-05-01 886
1094d3f1236347 Darrick J. Wong 2020-05-01 887 if (xlog_is_buffer_cancelled(log, buf_f->blf_blkno,
1094d3f1236347 Darrick J. Wong 2020-05-01 888 buf_f->blf_len))
1094d3f1236347 Darrick J. Wong 2020-05-01 889 goto cancelled;
1094d3f1236347 Darrick J. Wong 2020-05-01 890 }
1094d3f1236347 Darrick J. Wong 2020-05-01 891
1094d3f1236347 Darrick J. Wong 2020-05-01 892 trace_xfs_log_recover_buf_recover(log, buf_f);
1094d3f1236347 Darrick J. Wong 2020-05-01 893
1094d3f1236347 Darrick J. Wong 2020-05-01 894 buf_flags = 0;
1094d3f1236347 Darrick J. Wong 2020-05-01 895 if (buf_f->blf_flags & XFS_BLF_INODE_BUF)
1094d3f1236347 Darrick J. Wong 2020-05-01 896 buf_flags |= XBF_UNMAPPED;
1094d3f1236347 Darrick J. Wong 2020-05-01 897
1094d3f1236347 Darrick J. Wong 2020-05-01 898 error = xfs_buf_read(mp->m_ddev_targp, buf_f->blf_blkno, buf_f->blf_len,
1094d3f1236347 Darrick J. Wong 2020-05-01 899 buf_flags, &bp, NULL);
1094d3f1236347 Darrick J. Wong 2020-05-01 900 if (error)
1094d3f1236347 Darrick J. Wong 2020-05-01 901 return error;
1094d3f1236347 Darrick J. Wong 2020-05-01 902
1094d3f1236347 Darrick J. Wong 2020-05-01 903 /*
1094d3f1236347 Darrick J. Wong 2020-05-01 904 * Recover the buffer only if we get an LSN from it and it's less than
1094d3f1236347 Darrick J. Wong 2020-05-01 905 * the lsn of the transaction we are replaying.
1094d3f1236347 Darrick J. Wong 2020-05-01 906 *
1094d3f1236347 Darrick J. Wong 2020-05-01 907 * Note that we have to be extremely careful of readahead here.
1094d3f1236347 Darrick J. Wong 2020-05-01 908 * Readahead does not attach verfiers to the buffers so if we don't
1094d3f1236347 Darrick J. Wong 2020-05-01 909 * actually do any replay after readahead because of the LSN we found
1094d3f1236347 Darrick J. Wong 2020-05-01 910 * in the buffer if more recent than that current transaction then we
1094d3f1236347 Darrick J. Wong 2020-05-01 911 * need to attach the verifier directly. Failure to do so can lead to
1094d3f1236347 Darrick J. Wong 2020-05-01 912 * future recovery actions (e.g. EFI and unlinked list recovery) can
1094d3f1236347 Darrick J. Wong 2020-05-01 913 * operate on the buffers and they won't get the verifier attached. This
1094d3f1236347 Darrick J. Wong 2020-05-01 914 * can lead to blocks on disk having the correct content but a stale
1094d3f1236347 Darrick J. Wong 2020-05-01 915 * CRC.
1094d3f1236347 Darrick J. Wong 2020-05-01 916 *
1094d3f1236347 Darrick J. Wong 2020-05-01 917 * It is safe to assume these clean buffers are currently up to date.
1094d3f1236347 Darrick J. Wong 2020-05-01 918 * If the buffer is dirtied by a later transaction being replayed, then
1094d3f1236347 Darrick J. Wong 2020-05-01 919 * the verifier will be reset to match whatever recover turns that
1094d3f1236347 Darrick J. Wong 2020-05-01 920 * buffer into.
1094d3f1236347 Darrick J. Wong 2020-05-01 921 */
1094d3f1236347 Darrick J. Wong 2020-05-01 922 lsn = xlog_recover_get_buf_lsn(mp, bp);
1094d3f1236347 Darrick J. Wong 2020-05-01 923 if (lsn && lsn != -1 && XFS_LSN_CMP(lsn, current_lsn) >= 0) {
1094d3f1236347 Darrick J. Wong 2020-05-01 924 trace_xfs_log_recover_buf_skip(log, buf_f);
1094d3f1236347 Darrick J. Wong 2020-05-01 925 xlog_recover_validate_buf_type(mp, bp, buf_f, NULLCOMMITLSN);
1094d3f1236347 Darrick J. Wong 2020-05-01 926 goto out_release;
1094d3f1236347 Darrick J. Wong 2020-05-01 927 }
1094d3f1236347 Darrick J. Wong 2020-05-01 928
1094d3f1236347 Darrick J. Wong 2020-05-01 929 if (buf_f->blf_flags & XFS_BLF_INODE_BUF) {
1094d3f1236347 Darrick J. Wong 2020-05-01 930 error = xlog_recover_do_inode_buffer(mp, item, bp, buf_f);
1094d3f1236347 Darrick J. Wong 2020-05-01 931 if (error)
1094d3f1236347 Darrick J. Wong 2020-05-01 932 goto out_release;
1094d3f1236347 Darrick J. Wong 2020-05-01 @933 } else if (buf_f->blf_flags &
1094d3f1236347 Darrick J. Wong 2020-05-01 934 (XFS_BLF_UDQUOT_BUF|XFS_BLF_PDQUOT_BUF|XFS_BLF_GDQUOT_BUF)) {
1094d3f1236347 Darrick J. Wong 2020-05-01 935 bool dirty;
1094d3f1236347 Darrick J. Wong 2020-05-01 936
1094d3f1236347 Darrick J. Wong 2020-05-01 937 dirty = xlog_recover_do_dquot_buffer(mp, log, item, bp, buf_f);
1094d3f1236347 Darrick J. Wong 2020-05-01 938 if (!dirty)
1094d3f1236347 Darrick J. Wong 2020-05-01 939 goto out_release;
1094d3f1236347 Darrick J. Wong 2020-05-01 940 } else {
1094d3f1236347 Darrick J. Wong 2020-05-01 941 xlog_recover_do_reg_buffer(mp, item, bp, buf_f, current_lsn);
1094d3f1236347 Darrick J. Wong 2020-05-01 942 }
1094d3f1236347 Darrick J. Wong 2020-05-01 943
1094d3f1236347 Darrick J. Wong 2020-05-01 944 /*
1094d3f1236347 Darrick J. Wong 2020-05-01 945 * Perform delayed write on the buffer. Asynchronous writes will be
1094d3f1236347 Darrick J. Wong 2020-05-01 946 * slower when taking into account all the buffers to be flushed.
1094d3f1236347 Darrick J. Wong 2020-05-01 947 *
1094d3f1236347 Darrick J. Wong 2020-05-01 948 * Also make sure that only inode buffers with good sizes stay in
1094d3f1236347 Darrick J. Wong 2020-05-01 949 * the buffer cache. The kernel moves inodes in buffers of 1 block
1094d3f1236347 Darrick J. Wong 2020-05-01 950 * or inode_cluster_size bytes, whichever is bigger. The inode
1094d3f1236347 Darrick J. Wong 2020-05-01 951 * buffers in the log can be a different size if the log was generated
1094d3f1236347 Darrick J. Wong 2020-05-01 952 * by an older kernel using unclustered inode buffers or a newer kernel
1094d3f1236347 Darrick J. Wong 2020-05-01 953 * running with a different inode cluster size. Regardless, if the
1094d3f1236347 Darrick J. Wong 2020-05-01 954 * the inode buffer size isn't max(blocksize, inode_cluster_size)
1094d3f1236347 Darrick J. Wong 2020-05-01 955 * for *our* value of inode_cluster_size, then we need to keep
1094d3f1236347 Darrick J. Wong 2020-05-01 956 * the buffer out of the buffer cache so that the buffer won't
1094d3f1236347 Darrick J. Wong 2020-05-01 957 * overlap with future reads of those inodes.
1094d3f1236347 Darrick J. Wong 2020-05-01 958 */
1094d3f1236347 Darrick J. Wong 2020-05-01 959 if (XFS_DINODE_MAGIC ==
1094d3f1236347 Darrick J. Wong 2020-05-01 960 be16_to_cpu(*((__be16 *)xfs_buf_offset(bp, 0))) &&
1094d3f1236347 Darrick J. Wong 2020-05-01 961 (BBTOB(bp->b_length) != M_IGEO(log->l_mp)->inode_cluster_size)) {
1094d3f1236347 Darrick J. Wong 2020-05-01 962 xfs_buf_stale(bp);
1094d3f1236347 Darrick J. Wong 2020-05-01 963 error = xfs_bwrite(bp);
1094d3f1236347 Darrick J. Wong 2020-05-01 964 } else {
1094d3f1236347 Darrick J. Wong 2020-05-01 965 ASSERT(bp->b_mount == mp);
1094d3f1236347 Darrick J. Wong 2020-05-01 966 bp->b_iodone = xlog_recover_iodone;
1094d3f1236347 Darrick J. Wong 2020-05-01 967 xfs_buf_delwri_queue(bp, buffer_list);
1094d3f1236347 Darrick J. Wong 2020-05-01 968 }
1094d3f1236347 Darrick J. Wong 2020-05-01 969
1094d3f1236347 Darrick J. Wong 2020-05-01 970 out_release:
1094d3f1236347 Darrick J. Wong 2020-05-01 971 xfs_buf_relse(bp);
1094d3f1236347 Darrick J. Wong 2020-05-01 972 return error;
1094d3f1236347 Darrick J. Wong 2020-05-01 973 cancelled:
1094d3f1236347 Darrick J. Wong 2020-05-01 974 trace_xfs_log_recover_buf_cancel(log, buf_f);
1094d3f1236347 Darrick J. Wong 2020-05-01 975 return 0;
1094d3f1236347 Darrick J. Wong 2020-05-01 976 }
1094d3f1236347 Darrick J. Wong 2020-05-01 977
:::::: The code at line 933 was first introduced by commit
:::::: 1094d3f12363474b2a3d1a6c06124bec25dd1555 xfs: refactor log recovery buffer item dispatch for pass2 commit functions
:::::: TO: Darrick J. Wong <darrick.wong(a)oracle.com>
:::::: CC: Darrick J. Wong <darrick.wong(a)oracle.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 3 months
Re: [PATCH v5 1/4] iio: chemical: scd30: add core driver
by kernel test robot
Hi Tomasz,
I love your patch! Perhaps something to improve:
[auto build test WARNING on iio/togreg]
[also build test WARNING on robh/for-next linux/master v5.7]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]
url: https://github.com/0day-ci/linux/commits/Tomasz-Duszynski/Add-support-for...
base: https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio.git togreg
compiler: gcc-9 (Debian 9.3.0-13) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
cppcheck warnings: (new ones prefixed by >>)
>> drivers/iio/chemical/scd30_core.c:93:31: warning: Clarify calculation precedence for '&' and '?'. [clarifyCalculation]
sign = float32 & BIT(31) ? -1 : 1,
^
vim +93 drivers/iio/chemical/scd30_core.c
87
88 /* simplified float to fixed point conversion with a scaling factor of 0.01 */
89 static int scd30_float_to_fp(int float32)
90 {
91 int fraction, shift,
92 mantissa = float32 & GENMASK(22, 0),
> 93 sign = float32 & BIT(31) ? -1 : 1,
94 exp = (float32 & ~BIT(31)) >> 23;
95
96 /* special case 0 */
97 if (!exp && !mantissa)
98 return 0;
99
100 exp -= 127;
101 if (exp < 0) {
102 exp = -exp;
103 /* return values ranging from 1 to 99 */
104 return sign * ((((BIT(23) + mantissa) * 100) >> 23) >> exp);
105 }
106
107 /* return values starting at 100 */
108 shift = 23 - exp;
109 float32 = BIT(exp) + (mantissa >> shift);
110 fraction = mantissa & GENMASK(shift - 1, 0);
111
112 return sign * (float32 * 100 + ((fraction * 100) >> shift));
113 }
114
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 3 months
[peterz-queue:x86/static_call 17/19] drivers/android/binder.c:3980: Error: unrecognized keyword/register name `l.lwz
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git x86/static_call
head: c7092cb2ab86db04cf8989e6908648d134737fc1
commit: d416f60064e5b6b65445c66fd4b6099c1a9039fb [17/19] tracepoint: Optimize using static_call()
config: openrisc-randconfig-r034-20200609 (attached as .config)
compiler: or1k-linux-gcc (GCC) 9.3.0
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
git checkout d416f60064e5b6b65445c66fd4b6099c1a9039fb
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=openrisc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>, old ones prefixed by <<):
drivers/android/binder.c: Assembler messages:
<< from drivers/android/binder.c:6196:
>> drivers/android/binder.c:3980: Error: unrecognized keyword/register name `l.lwz ?ap,4(r20)'
drivers/android/binder.c:3985: Error: unrecognized keyword/register name `l.addi ?ap,r0,0'
drivers/android/binder.c:3761: Error: unrecognized keyword/register name `l.lwz ?ap,4(r20)'
drivers/android/binder.c:3766: Error: unrecognized keyword/register name `l.addi ?ap,r0,0'
vim +3980 drivers/android/binder.c
44d8047f1d87ad drivers/android/binder.c Todd Kjos 2018-08-28 3594
fb07ebc3e82a98 drivers/staging/android/binder.c Bojan Prtvar 2013-09-02 3595 static int binder_thread_write(struct binder_proc *proc,
fb07ebc3e82a98 drivers/staging/android/binder.c Bojan Prtvar 2013-09-02 3596 struct binder_thread *thread,
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg 2014-02-21 3597 binder_uintptr_t binder_buffer, size_t size,
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg 2014-02-21 3598 binder_size_t *consumed)
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3599 {
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3600 uint32_t cmd;
342e5c90b60134 drivers/android/binder.c Martijn Coenen 2017-02-03 3601 struct binder_context *context = proc->context;
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg 2014-02-21 3602 void __user *buffer = (void __user *)(uintptr_t)binder_buffer;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3603 void __user *ptr = buffer + *consumed;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3604 void __user *end = buffer + size;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3605
26549d17741035 drivers/android/binder.c Todd Kjos 2017-06-29 3606 while (ptr < end && thread->return_error.cmd == BR_OK) {
372e3147df7016 drivers/android/binder.c Todd Kjos 2017-06-29 3607 int ret;
372e3147df7016 drivers/android/binder.c Todd Kjos 2017-06-29 3608
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3609 if (get_user(cmd, (uint32_t __user *)ptr))
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3610 return -EFAULT;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3611 ptr += sizeof(uint32_t);
975a1ac9a9fe65 drivers/staging/android/binder.c Arve Hjønnevåg 2012-10-16 3612 trace_binder_command(cmd);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3613 if (_IOC_NR(cmd) < ARRAY_SIZE(binder_stats.bc)) {
0953c7976c36ce drivers/android/binder.c Badhri Jagan Sridharan 2017-06-29 3614 atomic_inc(&binder_stats.bc[_IOC_NR(cmd)]);
0953c7976c36ce drivers/android/binder.c Badhri Jagan Sridharan 2017-06-29 3615 atomic_inc(&proc->stats.bc[_IOC_NR(cmd)]);
0953c7976c36ce drivers/android/binder.c Badhri Jagan Sridharan 2017-06-29 3616 atomic_inc(&thread->stats.bc[_IOC_NR(cmd)]);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3617 }
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3618 switch (cmd) {
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3619 case BC_INCREFS:
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3620 case BC_ACQUIRE:
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3621 case BC_RELEASE:
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3622 case BC_DECREFS: {
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3623 uint32_t target;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3624 const char *debug_string;
372e3147df7016 drivers/android/binder.c Todd Kjos 2017-06-29 3625 bool strong = cmd == BC_ACQUIRE || cmd == BC_RELEASE;
372e3147df7016 drivers/android/binder.c Todd Kjos 2017-06-29 3626 bool increment = cmd == BC_INCREFS || cmd == BC_ACQUIRE;
372e3147df7016 drivers/android/binder.c Todd Kjos 2017-06-29 3627 struct binder_ref_data rdata;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3628
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3629 if (get_user(target, (uint32_t __user *)ptr))
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3630 return -EFAULT;
c44b1231ff1170 drivers/android/binder.c Todd Kjos 2017-06-29 3631
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3632 ptr += sizeof(uint32_t);
372e3147df7016 drivers/android/binder.c Todd Kjos 2017-06-29 3633 ret = -1;
372e3147df7016 drivers/android/binder.c Todd Kjos 2017-06-29 3634 if (increment && !target) {
c44b1231ff1170 drivers/android/binder.c Todd Kjos 2017-06-29 3635 struct binder_node *ctx_mgr_node;
c44b1231ff1170 drivers/android/binder.c Todd Kjos 2017-06-29 3636 mutex_lock(&context->context_mgr_node_lock);
c44b1231ff1170 drivers/android/binder.c Todd Kjos 2017-06-29 3637 ctx_mgr_node = context->binder_context_mgr_node;
372e3147df7016 drivers/android/binder.c Todd Kjos 2017-06-29 3638 if (ctx_mgr_node)
372e3147df7016 drivers/android/binder.c Todd Kjos 2017-06-29 3639 ret = binder_inc_ref_for_node(
372e3147df7016 drivers/android/binder.c Todd Kjos 2017-06-29 3640 proc, ctx_mgr_node,
372e3147df7016 drivers/android/binder.c Todd Kjos 2017-06-29 3641 strong, NULL, &rdata);
c44b1231ff1170 drivers/android/binder.c Todd Kjos 2017-06-29 3642 mutex_unlock(&context->context_mgr_node_lock);
c44b1231ff1170 drivers/android/binder.c Todd Kjos 2017-06-29 3643 }
372e3147df7016 drivers/android/binder.c Todd Kjos 2017-06-29 3644 if (ret)
372e3147df7016 drivers/android/binder.c Todd Kjos 2017-06-29 3645 ret = binder_update_ref_for_handle(
372e3147df7016 drivers/android/binder.c Todd Kjos 2017-06-29 3646 proc, target, increment, strong,
372e3147df7016 drivers/android/binder.c Todd Kjos 2017-06-29 3647 &rdata);
372e3147df7016 drivers/android/binder.c Todd Kjos 2017-06-29 3648 if (!ret && rdata.desc != target) {
372e3147df7016 drivers/android/binder.c Todd Kjos 2017-06-29 3649 binder_user_error("%d:%d tried to acquire reference to desc %d, got %d instead\n",
372e3147df7016 drivers/android/binder.c Todd Kjos 2017-06-29 3650 proc->pid, thread->pid,
372e3147df7016 drivers/android/binder.c Todd Kjos 2017-06-29 3651 target, rdata.desc);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3652 }
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3653 switch (cmd) {
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3654 case BC_INCREFS:
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3655 debug_string = "IncRefs";
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3656 break;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3657 case BC_ACQUIRE:
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3658 debug_string = "Acquire";
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3659 break;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3660 case BC_RELEASE:
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3661 debug_string = "Release";
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3662 break;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3663 case BC_DECREFS:
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3664 default:
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3665 debug_string = "DecRefs";
372e3147df7016 drivers/android/binder.c Todd Kjos 2017-06-29 3666 break;
372e3147df7016 drivers/android/binder.c Todd Kjos 2017-06-29 3667 }
372e3147df7016 drivers/android/binder.c Todd Kjos 2017-06-29 3668 if (ret) {
372e3147df7016 drivers/android/binder.c Todd Kjos 2017-06-29 3669 binder_user_error("%d:%d %s %d refcount change on invalid ref %d ret %d\n",
372e3147df7016 drivers/android/binder.c Todd Kjos 2017-06-29 3670 proc->pid, thread->pid, debug_string,
372e3147df7016 drivers/android/binder.c Todd Kjos 2017-06-29 3671 strong, target, ret);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3672 break;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3673 }
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3674 binder_debug(BINDER_DEBUG_USER_REFS,
372e3147df7016 drivers/android/binder.c Todd Kjos 2017-06-29 3675 "%d:%d %s ref %d desc %d s %d w %d\n",
372e3147df7016 drivers/android/binder.c Todd Kjos 2017-06-29 3676 proc->pid, thread->pid, debug_string,
372e3147df7016 drivers/android/binder.c Todd Kjos 2017-06-29 3677 rdata.debug_id, rdata.desc, rdata.strong,
372e3147df7016 drivers/android/binder.c Todd Kjos 2017-06-29 3678 rdata.weak);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3679 break;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3680 }
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3681 case BC_INCREFS_DONE:
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3682 case BC_ACQUIRE_DONE: {
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg 2014-02-21 3683 binder_uintptr_t node_ptr;
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg 2014-02-21 3684 binder_uintptr_t cookie;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3685 struct binder_node *node;
673068eee8560d drivers/android/binder.c Todd Kjos 2017-06-29 3686 bool free_node;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3687
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg 2014-02-21 3688 if (get_user(node_ptr, (binder_uintptr_t __user *)ptr))
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3689 return -EFAULT;
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg 2014-02-21 3690 ptr += sizeof(binder_uintptr_t);
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg 2014-02-21 3691 if (get_user(cookie, (binder_uintptr_t __user *)ptr))
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3692 return -EFAULT;
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg 2014-02-21 3693 ptr += sizeof(binder_uintptr_t);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3694 node = binder_get_node(proc, node_ptr);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3695 if (node == NULL) {
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg 2014-02-21 3696 binder_user_error("%d:%d %s u%016llx no match\n",
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3697 proc->pid, thread->pid,
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3698 cmd == BC_INCREFS_DONE ?
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3699 "BC_INCREFS_DONE" :
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3700 "BC_ACQUIRE_DONE",
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg 2014-02-21 3701 (u64)node_ptr);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3702 break;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3703 }
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3704 if (cookie != node->cookie) {
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg 2014-02-21 3705 binder_user_error("%d:%d %s u%016llx node %d cookie mismatch %016llx != %016llx\n",
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3706 proc->pid, thread->pid,
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3707 cmd == BC_INCREFS_DONE ?
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3708 "BC_INCREFS_DONE" : "BC_ACQUIRE_DONE",
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg 2014-02-21 3709 (u64)node_ptr, node->debug_id,
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg 2014-02-21 3710 (u64)cookie, (u64)node->cookie);
adc1884222276d drivers/android/binder.c Todd Kjos 2017-06-29 3711 binder_put_node(node);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3712 break;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3713 }
673068eee8560d drivers/android/binder.c Todd Kjos 2017-06-29 3714 binder_node_inner_lock(node);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3715 if (cmd == BC_ACQUIRE_DONE) {
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3716 if (node->pending_strong_ref == 0) {
56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma 2012-10-30 3717 binder_user_error("%d:%d BC_ACQUIRE_DONE node %d has no pending acquire request\n",
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3718 proc->pid, thread->pid,
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3719 node->debug_id);
673068eee8560d drivers/android/binder.c Todd Kjos 2017-06-29 3720 binder_node_inner_unlock(node);
adc1884222276d drivers/android/binder.c Todd Kjos 2017-06-29 3721 binder_put_node(node);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3722 break;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3723 }
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3724 node->pending_strong_ref = 0;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3725 } else {
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3726 if (node->pending_weak_ref == 0) {
56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma 2012-10-30 3727 binder_user_error("%d:%d BC_INCREFS_DONE node %d has no pending increfs request\n",
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3728 proc->pid, thread->pid,
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3729 node->debug_id);
673068eee8560d drivers/android/binder.c Todd Kjos 2017-06-29 3730 binder_node_inner_unlock(node);
adc1884222276d drivers/android/binder.c Todd Kjos 2017-06-29 3731 binder_put_node(node);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3732 break;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3733 }
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3734 node->pending_weak_ref = 0;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3735 }
673068eee8560d drivers/android/binder.c Todd Kjos 2017-06-29 3736 free_node = binder_dec_node_nilocked(node,
673068eee8560d drivers/android/binder.c Todd Kjos 2017-06-29 3737 cmd == BC_ACQUIRE_DONE, 0);
673068eee8560d drivers/android/binder.c Todd Kjos 2017-06-29 3738 WARN_ON(free_node);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3739 binder_debug(BINDER_DEBUG_USER_REFS,
adc1884222276d drivers/android/binder.c Todd Kjos 2017-06-29 3740 "%d:%d %s node %d ls %d lw %d tr %d\n",
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3741 proc->pid, thread->pid,
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3742 cmd == BC_INCREFS_DONE ? "BC_INCREFS_DONE" : "BC_ACQUIRE_DONE",
adc1884222276d drivers/android/binder.c Todd Kjos 2017-06-29 3743 node->debug_id, node->local_strong_refs,
adc1884222276d drivers/android/binder.c Todd Kjos 2017-06-29 3744 node->local_weak_refs, node->tmp_refs);
673068eee8560d drivers/android/binder.c Todd Kjos 2017-06-29 3745 binder_node_inner_unlock(node);
adc1884222276d drivers/android/binder.c Todd Kjos 2017-06-29 3746 binder_put_node(node);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3747 break;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3748 }
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3749 case BC_ATTEMPT_ACQUIRE:
56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma 2012-10-30 3750 pr_err("BC_ATTEMPT_ACQUIRE not supported\n");
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3751 return -EINVAL;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3752 case BC_ACQUIRE_RESULT:
56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma 2012-10-30 3753 pr_err("BC_ACQUIRE_RESULT not supported\n");
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3754 return -EINVAL;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3755
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3756 case BC_FREE_BUFFER: {
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg 2014-02-21 3757 binder_uintptr_t data_ptr;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3758 struct binder_buffer *buffer;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3759
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg 2014-02-21 3760 if (get_user(data_ptr, (binder_uintptr_t __user *)ptr))
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3761 return -EFAULT;
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg 2014-02-21 3762 ptr += sizeof(binder_uintptr_t);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3763
53d311cfa19ad3 drivers/android/binder.c Todd Kjos 2017-06-29 3764 buffer = binder_alloc_prepare_to_free(&proc->alloc,
19c987241ca121 drivers/android/binder.c Todd Kjos 2017-06-29 3765 data_ptr);
7bada55ab50697 drivers/android/binder.c Todd Kjos 2018-11-06 3766 if (IS_ERR_OR_NULL(buffer)) {
7bada55ab50697 drivers/android/binder.c Todd Kjos 2018-11-06 3767 if (PTR_ERR(buffer) == -EPERM) {
7bada55ab50697 drivers/android/binder.c Todd Kjos 2018-11-06 3768 binder_user_error(
7bada55ab50697 drivers/android/binder.c Todd Kjos 2018-11-06 3769 "%d:%d BC_FREE_BUFFER u%016llx matched unreturned or currently freeing buffer\n",
7bada55ab50697 drivers/android/binder.c Todd Kjos 2018-11-06 3770 proc->pid, thread->pid,
7bada55ab50697 drivers/android/binder.c Todd Kjos 2018-11-06 3771 (u64)data_ptr);
7bada55ab50697 drivers/android/binder.c Todd Kjos 2018-11-06 3772 } else {
7bada55ab50697 drivers/android/binder.c Todd Kjos 2018-11-06 3773 binder_user_error(
7bada55ab50697 drivers/android/binder.c Todd Kjos 2018-11-06 3774 "%d:%d BC_FREE_BUFFER u%016llx no match\n",
7bada55ab50697 drivers/android/binder.c Todd Kjos 2018-11-06 3775 proc->pid, thread->pid,
7bada55ab50697 drivers/android/binder.c Todd Kjos 2018-11-06 3776 (u64)data_ptr);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3777 }
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3778 break;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3779 }
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3780 binder_debug(BINDER_DEBUG_FREE_BUFFER,
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg 2014-02-21 3781 "%d:%d BC_FREE_BUFFER u%016llx found buffer %d for %s transaction\n",
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg 2014-02-21 3782 proc->pid, thread->pid, (u64)data_ptr,
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg 2014-02-21 3783 buffer->debug_id,
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3784 buffer->transaction ? "active" : "finished");
44d8047f1d87ad drivers/android/binder.c Todd Kjos 2018-08-28 3785 binder_free_buf(proc, buffer);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3786 break;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3787 }
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3788
7980240b6d63e0 drivers/android/binder.c Martijn Coenen 2017-02-03 3789 case BC_TRANSACTION_SG:
7980240b6d63e0 drivers/android/binder.c Martijn Coenen 2017-02-03 3790 case BC_REPLY_SG: {
7980240b6d63e0 drivers/android/binder.c Martijn Coenen 2017-02-03 3791 struct binder_transaction_data_sg tr;
7980240b6d63e0 drivers/android/binder.c Martijn Coenen 2017-02-03 3792
7980240b6d63e0 drivers/android/binder.c Martijn Coenen 2017-02-03 3793 if (copy_from_user(&tr, ptr, sizeof(tr)))
7980240b6d63e0 drivers/android/binder.c Martijn Coenen 2017-02-03 3794 return -EFAULT;
7980240b6d63e0 drivers/android/binder.c Martijn Coenen 2017-02-03 3795 ptr += sizeof(tr);
7980240b6d63e0 drivers/android/binder.c Martijn Coenen 2017-02-03 3796 binder_transaction(proc, thread, &tr.transaction_data,
7980240b6d63e0 drivers/android/binder.c Martijn Coenen 2017-02-03 3797 cmd == BC_REPLY_SG, tr.buffers_size);
7980240b6d63e0 drivers/android/binder.c Martijn Coenen 2017-02-03 3798 break;
7980240b6d63e0 drivers/android/binder.c Martijn Coenen 2017-02-03 3799 }
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3800 case BC_TRANSACTION:
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3801 case BC_REPLY: {
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3802 struct binder_transaction_data tr;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3803
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3804 if (copy_from_user(&tr, ptr, sizeof(tr)))
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3805 return -EFAULT;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3806 ptr += sizeof(tr);
4bfac80af3a63f drivers/android/binder.c Martijn Coenen 2017-02-03 3807 binder_transaction(proc, thread, &tr,
4bfac80af3a63f drivers/android/binder.c Martijn Coenen 2017-02-03 3808 cmd == BC_REPLY, 0);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3809 break;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3810 }
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3811
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3812 case BC_REGISTER_LOOPER:
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3813 binder_debug(BINDER_DEBUG_THREADS,
56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma 2012-10-30 3814 "%d:%d BC_REGISTER_LOOPER\n",
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3815 proc->pid, thread->pid);
b3e6861283790d drivers/android/binder.c Todd Kjos 2017-06-29 3816 binder_inner_proc_lock(proc);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3817 if (thread->looper & BINDER_LOOPER_STATE_ENTERED) {
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3818 thread->looper |= BINDER_LOOPER_STATE_INVALID;
56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma 2012-10-30 3819 binder_user_error("%d:%d ERROR: BC_REGISTER_LOOPER called after BC_ENTER_LOOPER\n",
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3820 proc->pid, thread->pid);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3821 } else if (proc->requested_threads == 0) {
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3822 thread->looper |= BINDER_LOOPER_STATE_INVALID;
56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma 2012-10-30 3823 binder_user_error("%d:%d ERROR: BC_REGISTER_LOOPER called without request\n",
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3824 proc->pid, thread->pid);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3825 } else {
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3826 proc->requested_threads--;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3827 proc->requested_threads_started++;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3828 }
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3829 thread->looper |= BINDER_LOOPER_STATE_REGISTERED;
b3e6861283790d drivers/android/binder.c Todd Kjos 2017-06-29 3830 binder_inner_proc_unlock(proc);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3831 break;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3832 case BC_ENTER_LOOPER:
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3833 binder_debug(BINDER_DEBUG_THREADS,
56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma 2012-10-30 3834 "%d:%d BC_ENTER_LOOPER\n",
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3835 proc->pid, thread->pid);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3836 if (thread->looper & BINDER_LOOPER_STATE_REGISTERED) {
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3837 thread->looper |= BINDER_LOOPER_STATE_INVALID;
56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma 2012-10-30 3838 binder_user_error("%d:%d ERROR: BC_ENTER_LOOPER called after BC_REGISTER_LOOPER\n",
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3839 proc->pid, thread->pid);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3840 }
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3841 thread->looper |= BINDER_LOOPER_STATE_ENTERED;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3842 break;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3843 case BC_EXIT_LOOPER:
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3844 binder_debug(BINDER_DEBUG_THREADS,
56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma 2012-10-30 3845 "%d:%d BC_EXIT_LOOPER\n",
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3846 proc->pid, thread->pid);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3847 thread->looper |= BINDER_LOOPER_STATE_EXITED;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3848 break;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3849
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3850 case BC_REQUEST_DEATH_NOTIFICATION:
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3851 case BC_CLEAR_DEATH_NOTIFICATION: {
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3852 uint32_t target;
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg 2014-02-21 3853 binder_uintptr_t cookie;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3854 struct binder_ref *ref;
2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017-06-29 3855 struct binder_ref_death *death = NULL;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3856
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3857 if (get_user(target, (uint32_t __user *)ptr))
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3858 return -EFAULT;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3859 ptr += sizeof(uint32_t);
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg 2014-02-21 3860 if (get_user(cookie, (binder_uintptr_t __user *)ptr))
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3861 return -EFAULT;
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg 2014-02-21 3862 ptr += sizeof(binder_uintptr_t);
2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017-06-29 3863 if (cmd == BC_REQUEST_DEATH_NOTIFICATION) {
2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017-06-29 3864 /*
2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017-06-29 3865 * Allocate memory for death notification
2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017-06-29 3866 * before taking lock
2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017-06-29 3867 */
2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017-06-29 3868 death = kzalloc(sizeof(*death), GFP_KERNEL);
2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017-06-29 3869 if (death == NULL) {
2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017-06-29 3870 WARN_ON(thread->return_error.cmd !=
2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017-06-29 3871 BR_OK);
2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017-06-29 3872 thread->return_error.cmd = BR_ERROR;
148ade2c4d4f46 drivers/android/binder.c Martijn Coenen 2017-11-15 3873 binder_enqueue_thread_work(
148ade2c4d4f46 drivers/android/binder.c Martijn Coenen 2017-11-15 3874 thread,
148ade2c4d4f46 drivers/android/binder.c Martijn Coenen 2017-11-15 3875 &thread->return_error.work);
2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017-06-29 3876 binder_debug(
2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017-06-29 3877 BINDER_DEBUG_FAILED_TRANSACTION,
2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017-06-29 3878 "%d:%d BC_REQUEST_DEATH_NOTIFICATION failed\n",
2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017-06-29 3879 proc->pid, thread->pid);
2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017-06-29 3880 break;
2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017-06-29 3881 }
2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017-06-29 3882 }
2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017-06-29 3883 binder_proc_lock(proc);
2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017-06-29 3884 ref = binder_get_ref_olocked(proc, target, false);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3885 if (ref == NULL) {
56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma 2012-10-30 3886 binder_user_error("%d:%d %s invalid ref %d\n",
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3887 proc->pid, thread->pid,
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3888 cmd == BC_REQUEST_DEATH_NOTIFICATION ?
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3889 "BC_REQUEST_DEATH_NOTIFICATION" :
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3890 "BC_CLEAR_DEATH_NOTIFICATION",
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3891 target);
2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017-06-29 3892 binder_proc_unlock(proc);
2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017-06-29 3893 kfree(death);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3894 break;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3895 }
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3896
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3897 binder_debug(BINDER_DEBUG_DEATH_NOTIFICATION,
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg 2014-02-21 3898 "%d:%d %s %016llx ref %d desc %d s %d w %d for node %d\n",
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3899 proc->pid, thread->pid,
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3900 cmd == BC_REQUEST_DEATH_NOTIFICATION ?
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3901 "BC_REQUEST_DEATH_NOTIFICATION" :
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3902 "BC_CLEAR_DEATH_NOTIFICATION",
372e3147df7016 drivers/android/binder.c Todd Kjos 2017-06-29 3903 (u64)cookie, ref->data.debug_id,
372e3147df7016 drivers/android/binder.c Todd Kjos 2017-06-29 3904 ref->data.desc, ref->data.strong,
372e3147df7016 drivers/android/binder.c Todd Kjos 2017-06-29 3905 ref->data.weak, ref->node->debug_id);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3906
ab51ec6bdf0b7a drivers/android/binder.c Martijn Coenen 2017-06-29 3907 binder_node_lock(ref->node);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3908 if (cmd == BC_REQUEST_DEATH_NOTIFICATION) {
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3909 if (ref->death) {
56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma 2012-10-30 3910 binder_user_error("%d:%d BC_REQUEST_DEATH_NOTIFICATION death notification already set\n",
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3911 proc->pid, thread->pid);
ab51ec6bdf0b7a drivers/android/binder.c Martijn Coenen 2017-06-29 3912 binder_node_unlock(ref->node);
2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017-06-29 3913 binder_proc_unlock(proc);
2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017-06-29 3914 kfree(death);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3915 break;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3916 }
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3917 binder_stats_created(BINDER_STAT_DEATH);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3918 INIT_LIST_HEAD(&death->work.entry);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3919 death->cookie = cookie;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3920 ref->death = death;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3921 if (ref->node->proc == NULL) {
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3922 ref->death->work.type = BINDER_WORK_DEAD_BINDER;
bb74562a7f8398 drivers/android/binder.c Martijn Coenen 2017-08-31 3923
1b77e9dcc3da93 drivers/android/binder.c Martijn Coenen 2017-08-31 3924 binder_inner_proc_lock(proc);
1b77e9dcc3da93 drivers/android/binder.c Martijn Coenen 2017-08-31 3925 binder_enqueue_work_ilocked(
bb74562a7f8398 drivers/android/binder.c Martijn Coenen 2017-08-31 3926 &ref->death->work, &proc->todo);
bb74562a7f8398 drivers/android/binder.c Martijn Coenen 2017-08-31 3927 binder_wakeup_proc_ilocked(proc);
1b77e9dcc3da93 drivers/android/binder.c Martijn Coenen 2017-08-31 3928 binder_inner_proc_unlock(proc);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3929 }
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3930 } else {
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3931 if (ref->death == NULL) {
56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma 2012-10-30 3932 binder_user_error("%d:%d BC_CLEAR_DEATH_NOTIFICATION death notification not active\n",
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3933 proc->pid, thread->pid);
673068eee8560d drivers/android/binder.c Todd Kjos 2017-06-29 3934 binder_node_unlock(ref->node);
2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017-06-29 3935 binder_proc_unlock(proc);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3936 break;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3937 }
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3938 death = ref->death;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3939 if (death->cookie != cookie) {
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg 2014-02-21 3940 binder_user_error("%d:%d BC_CLEAR_DEATH_NOTIFICATION death notification cookie mismatch %016llx != %016llx\n",
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3941 proc->pid, thread->pid,
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg 2014-02-21 3942 (u64)death->cookie,
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg 2014-02-21 3943 (u64)cookie);
673068eee8560d drivers/android/binder.c Todd Kjos 2017-06-29 3944 binder_node_unlock(ref->node);
2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017-06-29 3945 binder_proc_unlock(proc);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3946 break;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3947 }
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3948 ref->death = NULL;
72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017-06-29 3949 binder_inner_proc_lock(proc);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3950 if (list_empty(&death->work.entry)) {
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3951 death->work.type = BINDER_WORK_CLEAR_DEATH_NOTIFICATION;
72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017-06-29 3952 if (thread->looper &
72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017-06-29 3953 (BINDER_LOOPER_STATE_REGISTERED |
72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017-06-29 3954 BINDER_LOOPER_STATE_ENTERED))
148ade2c4d4f46 drivers/android/binder.c Martijn Coenen 2017-11-15 3955 binder_enqueue_thread_work_ilocked(
148ade2c4d4f46 drivers/android/binder.c Martijn Coenen 2017-11-15 3956 thread,
148ade2c4d4f46 drivers/android/binder.c Martijn Coenen 2017-11-15 3957 &death->work);
72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017-06-29 3958 else {
72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017-06-29 3959 binder_enqueue_work_ilocked(
72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017-06-29 3960 &death->work,
72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017-06-29 3961 &proc->todo);
1b77e9dcc3da93 drivers/android/binder.c Martijn Coenen 2017-08-31 3962 binder_wakeup_proc_ilocked(
408c68b17aea2f drivers/android/binder.c Martijn Coenen 2017-08-31 3963 proc);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3964 }
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3965 } else {
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3966 BUG_ON(death->work.type != BINDER_WORK_DEAD_BINDER);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3967 death->work.type = BINDER_WORK_DEAD_BINDER_AND_CLEAR;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3968 }
72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017-06-29 3969 binder_inner_proc_unlock(proc);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3970 }
ab51ec6bdf0b7a drivers/android/binder.c Martijn Coenen 2017-06-29 3971 binder_node_unlock(ref->node);
2c1838dc6817dd drivers/android/binder.c Todd Kjos 2017-06-29 3972 binder_proc_unlock(proc);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3973 } break;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3974 case BC_DEAD_BINDER_DONE: {
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3975 struct binder_work *w;
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg 2014-02-21 3976 binder_uintptr_t cookie;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3977 struct binder_ref_death *death = NULL;
10f62861b4a2f2 drivers/staging/android/binder.c Seunghun Lee 2014-05-01 3978
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg 2014-02-21 3979 if (get_user(cookie, (binder_uintptr_t __user *)ptr))
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 @3980 return -EFAULT;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3981
7a64cd887fdb97 drivers/android/binder.c Lisa Du 2016-02-17 3982 ptr += sizeof(cookie);
72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017-06-29 3983 binder_inner_proc_lock(proc);
72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017-06-29 3984 list_for_each_entry(w, &proc->delivered_death,
72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017-06-29 3985 entry) {
72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017-06-29 3986 struct binder_ref_death *tmp_death =
72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017-06-29 3987 container_of(w,
72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017-06-29 3988 struct binder_ref_death,
72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017-06-29 3989 work);
10f62861b4a2f2 drivers/staging/android/binder.c Seunghun Lee 2014-05-01 3990
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3991 if (tmp_death->cookie == cookie) {
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3992 death = tmp_death;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3993 break;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3994 }
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3995 }
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 3996 binder_debug(BINDER_DEBUG_DEAD_BINDER,
8ca86f1639ec58 drivers/android/binder.c Todd Kjos 2018-02-07 3997 "%d:%d BC_DEAD_BINDER_DONE %016llx found %pK\n",
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg 2014-02-21 3998 proc->pid, thread->pid, (u64)cookie,
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg 2014-02-21 3999 death);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 4000 if (death == NULL) {
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg 2014-02-21 4001 binder_user_error("%d:%d BC_DEAD_BINDER_DONE %016llx not found\n",
da49889deb34d3 drivers/staging/android/binder.c Arve Hjønnevåg 2014-02-21 4002 proc->pid, thread->pid, (u64)cookie);
72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017-06-29 4003 binder_inner_proc_unlock(proc);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 4004 break;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 4005 }
72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017-06-29 4006 binder_dequeue_work_ilocked(&death->work);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 4007 if (death->work.type == BINDER_WORK_DEAD_BINDER_AND_CLEAR) {
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 4008 death->work.type = BINDER_WORK_CLEAR_DEATH_NOTIFICATION;
72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017-06-29 4009 if (thread->looper &
72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017-06-29 4010 (BINDER_LOOPER_STATE_REGISTERED |
72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017-06-29 4011 BINDER_LOOPER_STATE_ENTERED))
148ade2c4d4f46 drivers/android/binder.c Martijn Coenen 2017-11-15 4012 binder_enqueue_thread_work_ilocked(
148ade2c4d4f46 drivers/android/binder.c Martijn Coenen 2017-11-15 4013 thread, &death->work);
72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017-06-29 4014 else {
72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017-06-29 4015 binder_enqueue_work_ilocked(
72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017-06-29 4016 &death->work,
72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017-06-29 4017 &proc->todo);
408c68b17aea2f drivers/android/binder.c Martijn Coenen 2017-08-31 4018 binder_wakeup_proc_ilocked(proc);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 4019 }
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 4020 }
72196393a5e3d2 drivers/android/binder.c Todd Kjos 2017-06-29 4021 binder_inner_proc_unlock(proc);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 4022 } break;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 4023
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 4024 default:
56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma 2012-10-30 4025 pr_err("%d:%d unknown command %d\n",
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 4026 proc->pid, thread->pid, cmd);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 4027 return -EINVAL;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 4028 }
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 4029 *consumed = ptr - buffer;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 4030 }
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 4031 return 0;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 4032 }
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 4033
:::::: The code at line 3980 was first introduced by commit
:::::: 355b0502f6efea0ff9492753888772c96972d2a3 Revert "Staging: android: delete android drivers"
:::::: TO: Greg Kroah-Hartman <gregkh(a)suse.de>
:::::: CC: Greg Kroah-Hartman <gregkh(a)suse.de>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 3 months
Re: [PATCH] mm/slab: Add a __GFP_ACCOUNT GFP flag check for slab allocation
by kernel test robot
Hi Muchun,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on mmotm/master]
url: https://github.com/0day-ci/linux/commits/Muchun-Song/mm-slab-Add-a-__GFP_...
base: git://git.cmpxchg.org/linux-mmotm.git master
config: xtensa-allyesconfig (attached as .config)
compiler: xtensa-linux-gcc (GCC) 9.3.0
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
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=xtensa
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>, old ones prefixed by <<):
In file included from include/linux/kernel.h:11,
from include/linux/interrupt.h:6,
from mm/kasan/common.c:18:
include/linux/scatterlist.h: In function 'sg_set_buf':
arch/xtensa/include/asm/page.h:182:9: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits]
182 | ((pfn) >= ARCH_PFN_OFFSET && ((pfn) - ARCH_PFN_OFFSET) < max_mapnr)
| ^~
include/linux/compiler.h:78:42: note: in definition of macro 'unlikely'
78 | # define unlikely(x) __builtin_expect(!!(x), 0)
| ^
include/linux/scatterlist.h:143:2: note: in expansion of macro 'BUG_ON'
143 | BUG_ON(!virt_addr_valid(buf));
| ^~~~~~
arch/xtensa/include/asm/page.h:190:32: note: in expansion of macro 'pfn_valid'
190 | #define virt_addr_valid(kaddr) pfn_valid(__pa(kaddr) >> PAGE_SHIFT)
| ^~~~~~~~~
include/linux/scatterlist.h:143:10: note: in expansion of macro 'virt_addr_valid'
143 | BUG_ON(!virt_addr_valid(buf));
| ^~~~~~~~~~~~~~~
In file included from include/linux/mm_types_task.h:16,
from include/linux/mm_types.h:5,
from include/linux/mmzone.h:21,
from include/linux/topology.h:33,
from include/linux/irq.h:19,
from include/asm-generic/hardirq.h:13,
from ./arch/xtensa/include/generated/asm/hardirq.h:1,
from include/linux/hardirq.h:9,
from include/linux/interrupt.h:11,
from mm/kasan/common.c:18:
mm/kasan/../internal.h: In function 'mem_map_next':
arch/xtensa/include/asm/page.h:182:9: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits]
182 | ((pfn) >= ARCH_PFN_OFFSET && ((pfn) - ARCH_PFN_OFFSET) < max_mapnr)
| ^~
>> mm/kasan/../internal.h:393:8: note: in expansion of macro 'pfn_valid'
393 | if (!pfn_valid(pfn))
| ^~~~~~~~~
--
In file included from arch/xtensa/include/asm/processor.h:15,
from arch/xtensa/include/asm/bitops.h:20,
from include/linux/bitops.h:19,
from mm/kasan/report.c:17:
include/linux/scatterlist.h: In function 'sg_set_buf':
arch/xtensa/include/asm/page.h:182:9: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits]
182 | ((pfn) >= ARCH_PFN_OFFSET && ((pfn) - ARCH_PFN_OFFSET) < max_mapnr)
| ^~
include/linux/compiler.h:78:42: note: in definition of macro 'unlikely'
78 | # define unlikely(x) __builtin_expect(!!(x), 0)
| ^
include/linux/scatterlist.h:143:2: note: in expansion of macro 'BUG_ON'
143 | BUG_ON(!virt_addr_valid(buf));
| ^~~~~~
arch/xtensa/include/asm/page.h:190:32: note: in expansion of macro 'pfn_valid'
190 | #define virt_addr_valid(kaddr) pfn_valid(__pa(kaddr) >> PAGE_SHIFT)
| ^~~~~~~~~
include/linux/scatterlist.h:143:10: note: in expansion of macro 'virt_addr_valid'
143 | BUG_ON(!virt_addr_valid(buf));
| ^~~~~~~~~~~~~~~
In file included from include/linux/mm_types_task.h:16,
from include/linux/mm_types.h:5,
from include/linux/mmzone.h:21,
from include/linux/gfp.h:6,
from include/linux/mm.h:10,
from include/linux/kallsyms.h:12,
from include/linux/ftrace.h:11,
from mm/kasan/report.c:18:
mm/kasan/../internal.h: In function 'mem_map_next':
arch/xtensa/include/asm/page.h:182:9: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits]
182 | ((pfn) >= ARCH_PFN_OFFSET && ((pfn) - ARCH_PFN_OFFSET) < max_mapnr)
| ^~
>> mm/kasan/../internal.h:393:8: note: in expansion of macro 'pfn_valid'
393 | if (!pfn_valid(pfn))
| ^~~~~~~~~
mm/kasan/report.c: At top level:
mm/kasan/report.c:474:6: warning: no previous prototype for '__kasan_report' [-Wmissing-prototypes]
474 | void __kasan_report(unsigned long addr, size_t size, bool is_write, unsigned long ip)
| ^~~~~~~~~~~~~~
--
In file included from arch/xtensa/include/asm/processor.h:15,
from arch/xtensa/include/asm/bitops.h:20,
from include/linux/bitops.h:19,
from mm/kasan/generic_report.c:17:
include/linux/scatterlist.h: In function 'sg_set_buf':
arch/xtensa/include/asm/page.h:182:9: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits]
182 | ((pfn) >= ARCH_PFN_OFFSET && ((pfn) - ARCH_PFN_OFFSET) < max_mapnr)
| ^~
include/linux/compiler.h:78:42: note: in definition of macro 'unlikely'
78 | # define unlikely(x) __builtin_expect(!!(x), 0)
| ^
include/linux/scatterlist.h:143:2: note: in expansion of macro 'BUG_ON'
143 | BUG_ON(!virt_addr_valid(buf));
| ^~~~~~
arch/xtensa/include/asm/page.h:190:32: note: in expansion of macro 'pfn_valid'
190 | #define virt_addr_valid(kaddr) pfn_valid(__pa(kaddr) >> PAGE_SHIFT)
| ^~~~~~~~~
include/linux/scatterlist.h:143:10: note: in expansion of macro 'virt_addr_valid'
143 | BUG_ON(!virt_addr_valid(buf));
| ^~~~~~~~~~~~~~~
In file included from include/linux/mm_types_task.h:16,
from include/linux/mm_types.h:5,
from include/linux/mmzone.h:21,
from include/linux/gfp.h:6,
from include/linux/mm.h:10,
from include/linux/kallsyms.h:12,
from include/linux/ftrace.h:11,
from mm/kasan/generic_report.c:18:
mm/kasan/../internal.h: In function 'mem_map_next':
arch/xtensa/include/asm/page.h:182:9: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits]
182 | ((pfn) >= ARCH_PFN_OFFSET && ((pfn) - ARCH_PFN_OFFSET) < max_mapnr)
| ^~
>> mm/kasan/../internal.h:393:8: note: in expansion of macro 'pfn_valid'
393 | if (!pfn_valid(pfn))
| ^~~~~~~~~
mm/kasan/generic_report.c: At top level:
mm/kasan/generic_report.c:116:6: warning: no previous prototype for '__asan_report_load1_noabort' [-Wmissing-prototypes]
116 | void __asan_report_load##size##_noabort(unsigned long addr) | ^~~~~~~~~~~~~~~~~~
mm/kasan/generic_report.c:129:1: note: in expansion of macro 'DEFINE_ASAN_REPORT_LOAD'
129 | DEFINE_ASAN_REPORT_LOAD(1);
| ^~~~~~~~~~~~~~~~~~~~~~~
mm/kasan/generic_report.c:116:6: warning: no previous prototype for '__asan_report_load2_noabort' [-Wmissing-prototypes]
116 | void __asan_report_load##size##_noabort(unsigned long addr) | ^~~~~~~~~~~~~~~~~~
mm/kasan/generic_report.c:130:1: note: in expansion of macro 'DEFINE_ASAN_REPORT_LOAD'
130 | DEFINE_ASAN_REPORT_LOAD(2);
| ^~~~~~~~~~~~~~~~~~~~~~~
mm/kasan/generic_report.c:116:6: warning: no previous prototype for '__asan_report_load4_noabort' [-Wmissing-prototypes]
116 | void __asan_report_load##size##_noabort(unsigned long addr) | ^~~~~~~~~~~~~~~~~~
mm/kasan/generic_report.c:131:1: note: in expansion of macro 'DEFINE_ASAN_REPORT_LOAD'
131 | DEFINE_ASAN_REPORT_LOAD(4);
| ^~~~~~~~~~~~~~~~~~~~~~~
mm/kasan/generic_report.c:116:6: warning: no previous prototype for '__asan_report_load8_noabort' [-Wmissing-prototypes]
116 | void __asan_report_load##size##_noabort(unsigned long addr) | ^~~~~~~~~~~~~~~~~~
mm/kasan/generic_report.c:132:1: note: in expansion of macro 'DEFINE_ASAN_REPORT_LOAD'
132 | DEFINE_ASAN_REPORT_LOAD(8);
| ^~~~~~~~~~~~~~~~~~~~~~~
mm/kasan/generic_report.c:116:6: warning: no previous prototype for '__asan_report_load16_noabort' [-Wmissing-prototypes]
116 | void __asan_report_load##size##_noabort(unsigned long addr) | ^~~~~~~~~~~~~~~~~~
mm/kasan/generic_report.c:133:1: note: in expansion of macro 'DEFINE_ASAN_REPORT_LOAD'
133 | DEFINE_ASAN_REPORT_LOAD(16);
| ^~~~~~~~~~~~~~~~~~~~~~~
mm/kasan/generic_report.c:123:6: warning: no previous prototype for '__asan_report_store1_noabort' [-Wmissing-prototypes]
123 | void __asan_report_store##size##_noabort(unsigned long addr) | ^~~~~~~~~~~~~~~~~~~
mm/kasan/generic_report.c:134:1: note: in expansion of macro 'DEFINE_ASAN_REPORT_STORE'
134 | DEFINE_ASAN_REPORT_STORE(1);
| ^~~~~~~~~~~~~~~~~~~~~~~~
mm/kasan/generic_report.c:123:6: warning: no previous prototype for '__asan_report_store2_noabort' [-Wmissing-prototypes]
123 | void __asan_report_store##size##_noabort(unsigned long addr) | ^~~~~~~~~~~~~~~~~~~
mm/kasan/generic_report.c:135:1: note: in expansion of macro 'DEFINE_ASAN_REPORT_STORE'
135 | DEFINE_ASAN_REPORT_STORE(2);
| ^~~~~~~~~~~~~~~~~~~~~~~~
mm/kasan/generic_report.c:123:6: warning: no previous prototype for '__asan_report_store4_noabort' [-Wmissing-prototypes]
123 | void __asan_report_store##size##_noabort(unsigned long addr) | ^~~~~~~~~~~~~~~~~~~
mm/kasan/generic_report.c:136:1: note: in expansion of macro 'DEFINE_ASAN_REPORT_STORE'
136 | DEFINE_ASAN_REPORT_STORE(4);
| ^~~~~~~~~~~~~~~~~~~~~~~~
mm/kasan/generic_report.c:123:6: warning: no previous prototype for '__asan_report_store8_noabort' [-Wmissing-prototypes]
123 | void __asan_report_store##size##_noabort(unsigned long addr) | ^~~~~~~~~~~~~~~~~~~
mm/kasan/generic_report.c:137:1: note: in expansion of macro 'DEFINE_ASAN_REPORT_STORE'
137 | DEFINE_ASAN_REPORT_STORE(8);
| ^~~~~~~~~~~~~~~~~~~~~~~~
mm/kasan/generic_report.c:123:6: warning: no previous prototype for '__asan_report_store16_noabort' [-Wmissing-prototypes]
123 | void __asan_report_store##size##_noabort(unsigned long addr) | ^~~~~~~~~~~~~~~~~~~
mm/kasan/generic_report.c:138:1: note: in expansion of macro 'DEFINE_ASAN_REPORT_STORE'
138 | DEFINE_ASAN_REPORT_STORE(16);
| ^~~~~~~~~~~~~~~~~~~~~~~~
mm/kasan/generic_report.c:140:6: warning: no previous prototype for '__asan_report_load_n_noabort' [-Wmissing-prototypes]
140 | void __asan_report_load_n_noabort(unsigned long addr, size_t size)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
mm/kasan/generic_report.c:146:6: warning: no previous prototype for '__asan_report_store_n_noabort' [-Wmissing-prototypes]
146 | void __asan_report_store_n_noabort(unsigned long addr, size_t size)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vim +/pfn_valid +393 mm/kasan/../internal.h
69d177c2fc702d Andy Whitcroft 2008-11-06 383
69d177c2fc702d Andy Whitcroft 2008-11-06 384 /*
25985edcedea63 Lucas De Marchi 2011-03-30 385 * Iterator over all subpages within the maximally aligned gigantic
69d177c2fc702d Andy Whitcroft 2008-11-06 386 * page 'base'. Handle any discontiguity in the mem_map.
69d177c2fc702d Andy Whitcroft 2008-11-06 387 */
69d177c2fc702d Andy Whitcroft 2008-11-06 388 static inline struct page *mem_map_next(struct page *iter,
69d177c2fc702d Andy Whitcroft 2008-11-06 389 struct page *base, int offset)
69d177c2fc702d Andy Whitcroft 2008-11-06 390 {
69d177c2fc702d Andy Whitcroft 2008-11-06 391 if (unlikely((offset & (MAX_ORDER_NR_PAGES - 1)) == 0)) {
69d177c2fc702d Andy Whitcroft 2008-11-06 392 unsigned long pfn = page_to_pfn(base) + offset;
69d177c2fc702d Andy Whitcroft 2008-11-06 @393 if (!pfn_valid(pfn))
69d177c2fc702d Andy Whitcroft 2008-11-06 394 return NULL;
69d177c2fc702d Andy Whitcroft 2008-11-06 395 return pfn_to_page(pfn);
69d177c2fc702d Andy Whitcroft 2008-11-06 396 }
69d177c2fc702d Andy Whitcroft 2008-11-06 397 return iter + 1;
69d177c2fc702d Andy Whitcroft 2008-11-06 398 }
69d177c2fc702d Andy Whitcroft 2008-11-06 399
:::::: The code at line 393 was first introduced by commit
:::::: 69d177c2fc702d402b17fdca2190d5a7e3ca55c5 hugetlbfs: handle pages higher order than MAX_ORDER
:::::: TO: Andy Whitcroft <apw(a)shadowen.org>
:::::: CC: Linus Torvalds <torvalds(a)linux-foundation.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 3 months
[chrome-os:chromeos-5.4 8/8] /tmp/core-070100.s:2239: Error: bad expression
by kernel test robot
tree: https://chromium.googlesource.com/chromiumos/third_party/kernel chromeos-5.4
head: 7d6375a9d01ef83cf521ad1b9dbac7821009b594
commit: 7d6375a9d01ef83cf521ad1b9dbac7821009b594 [8/8] FROMGIT:Bluetooth: Add support for BT_PKT_STATUS CMSG data for SCO connections
config: s390-randconfig-r023-20200614 (attached as .config)
compiler: clang version 11.0.0 (https://github.com/llvm/llvm-project cb5072d1877b38c972f95092db2cedbcddb81da6)
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 s390 cross compiling tool for clang build
# apt-get install binutils-s390-linux-gnu
git checkout 7d6375a9d01ef83cf521ad1b9dbac7821009b594
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=s390
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>, old ones prefixed by <<):
In file included from include/linux/scatterlist.h:9:
In file included from arch/s390/include/asm/io.h:76:
include/asm-generic/io.h:492:45: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
val = __le32_to_cpu(__raw_readl(PCI_IOBASE + addr));
~~~~~~~~~~ ^
include/uapi/linux/byteorder/big_endian.h:34:59: note: expanded from macro '__le32_to_cpu'
#define __le32_to_cpu(x) __swab32((__force __u32)(__le32)(x))
^
include/uapi/linux/swab.h:119:21: note: expanded from macro '__swab32'
___constant_swab32(x) : ^
include/uapi/linux/swab.h:20:12: note: expanded from macro '___constant_swab32'
(((__u32)(x) & (__u32)0x0000ff00UL) << 8) | ^
In file included from kernel/bpf/core.c:21:
In file included from include/linux/filter.h:13:
In file included from include/linux/skbuff.h:31:
In file included from include/linux/dma-mapping.h:11:
In file included from include/linux/scatterlist.h:9:
In file included from arch/s390/include/asm/io.h:76:
include/asm-generic/io.h:492:45: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
val = __le32_to_cpu(__raw_readl(PCI_IOBASE + addr));
~~~~~~~~~~ ^
include/uapi/linux/byteorder/big_endian.h:34:59: note: expanded from macro '__le32_to_cpu'
#define __le32_to_cpu(x) __swab32((__force __u32)(__le32)(x))
^
include/uapi/linux/swab.h:119:21: note: expanded from macro '__swab32'
___constant_swab32(x) : ^
include/uapi/linux/swab.h:21:12: note: expanded from macro '___constant_swab32'
(((__u32)(x) & (__u32)0x00ff0000UL) >> 8) | ^
In file included from kernel/bpf/core.c:21:
In file included from include/linux/filter.h:13:
In file included from include/linux/skbuff.h:31:
In file included from include/linux/dma-mapping.h:11:
In file included from include/linux/scatterlist.h:9:
In file included from arch/s390/include/asm/io.h:76:
include/asm-generic/io.h:492:45: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
val = __le32_to_cpu(__raw_readl(PCI_IOBASE + addr));
~~~~~~~~~~ ^
include/uapi/linux/byteorder/big_endian.h:34:59: note: expanded from macro '__le32_to_cpu'
#define __le32_to_cpu(x) __swab32((__force __u32)(__le32)(x))
^
include/uapi/linux/swab.h:119:21: note: expanded from macro '__swab32'
___constant_swab32(x) : ^
include/uapi/linux/swab.h:22:12: note: expanded from macro '___constant_swab32'
(((__u32)(x) & (__u32)0xff000000UL) >> 24)))
^
In file included from kernel/bpf/core.c:21:
In file included from include/linux/filter.h:13:
In file included from include/linux/skbuff.h:31:
In file included from include/linux/dma-mapping.h:11:
In file included from include/linux/scatterlist.h:9:
In file included from arch/s390/include/asm/io.h:76:
include/asm-generic/io.h:492:45: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
val = __le32_to_cpu(__raw_readl(PCI_IOBASE + addr));
~~~~~~~~~~ ^
include/uapi/linux/byteorder/big_endian.h:34:59: note: expanded from macro '__le32_to_cpu'
#define __le32_to_cpu(x) __swab32((__force __u32)(__le32)(x))
^
include/uapi/linux/swab.h:120:12: note: expanded from macro '__swab32'
__fswab32(x))
^
In file included from kernel/bpf/core.c:21:
In file included from include/linux/filter.h:13:
In file included from include/linux/skbuff.h:31:
In file included from include/linux/dma-mapping.h:11:
In file included from include/linux/scatterlist.h:9:
In file included from arch/s390/include/asm/io.h:76:
include/asm-generic/io.h:503:33: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
__raw_writeb(value, PCI_IOBASE + addr);
~~~~~~~~~~ ^
include/asm-generic/io.h:513:46: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
__raw_writew(cpu_to_le16(value), PCI_IOBASE + addr);
~~~~~~~~~~ ^
include/asm-generic/io.h:523:46: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
__raw_writel(cpu_to_le32(value), PCI_IOBASE + addr);
~~~~~~~~~~ ^
include/asm-generic/io.h:585:20: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
readsb(PCI_IOBASE + addr, buffer, count);
~~~~~~~~~~ ^
include/asm-generic/io.h:593:20: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
readsw(PCI_IOBASE + addr, buffer, count);
~~~~~~~~~~ ^
include/asm-generic/io.h:601:20: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
readsl(PCI_IOBASE + addr, buffer, count);
~~~~~~~~~~ ^
include/asm-generic/io.h:610:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
writesb(PCI_IOBASE + addr, buffer, count);
~~~~~~~~~~ ^
include/asm-generic/io.h:619:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
writesw(PCI_IOBASE + addr, buffer, count);
~~~~~~~~~~ ^
include/asm-generic/io.h:628:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
writesl(PCI_IOBASE + addr, buffer, count);
~~~~~~~~~~ ^
20 warnings generated.
/tmp/core-070100.s: Assembler messages:
>> /tmp/core-070100.s:2239: Error: bad expression
/tmp/core-070100.s:2239: Error: junk at end of line, first unrecognized character is `r'
clang-11: error: assembler command failed with exit code 1 (use -v to see invocation)
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 3 months
Re: [PATCH 1/3] thermal/cpu-cooling, sched/core: Cleanup thermal pressure definition
by kernel test robot
Hi Valentin,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on tip/auto-latest]
[also build test WARNING on driver-core/driver-core-testing tip/sched/core arm/for-next arm64/for-next/core soc/for-next linus/master v5.7 next-20200613]
[cannot apply to linux/master]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]
url: https://github.com/0day-ci/linux/commits/Valentin-Schneider/sched-arch_to...
base: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git 8dc697d75c13ee2901d1a40f1d7d58163048c204
config: sparc-allyesconfig (attached as .config)
compiler: sparc64-linux-gcc (GCC) 9.3.0
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
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=sparc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>, old ones prefixed by <<):
>> drivers/thermal/cpufreq_cooling.c:421:1: warning: no previous prototype for 'arch_set_thermal_pressure' [-Wmissing-prototypes]
421 | arch_set_thermal_pressure(const struct cpumask *cpus, unsigned long th_pressure)
| ^~~~~~~~~~~~~~~~~~~~~~~~~
vim +/arch_set_thermal_pressure +421 drivers/thermal/cpufreq_cooling.c
419
420 __weak void
> 421 arch_set_thermal_pressure(const struct cpumask *cpus, unsigned long th_pressure)
422 {
423 }
424
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 3 months
Re: [PATCH 1/3] thermal/cpu-cooling, sched/core: Cleanup thermal pressure definition
by kernel test robot
Hi Valentin,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on tip/auto-latest]
[also build test WARNING on driver-core/driver-core-testing tip/sched/core arm/for-next arm64/for-next/core soc/for-next linus/master v5.7 next-20200613]
[cannot apply to linux/master]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]
url: https://github.com/0day-ci/linux/commits/Valentin-Schneider/sched-arch_to...
base: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git 8dc697d75c13ee2901d1a40f1d7d58163048c204
config: riscv-allyesconfig (attached as .config)
compiler: riscv64-linux-gcc (GCC) 9.3.0
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
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=riscv
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>, old ones prefixed by <<):
>> drivers/base/arch_topology.c:59:6: warning: no previous prototype for 'arch_set_thermal_pressure' [-Wmissing-prototypes]
59 | void arch_set_thermal_pressure(const struct cpumask *cpus,
| ^~~~~~~~~~~~~~~~~~~~~~~~~
vim +/arch_set_thermal_pressure +59 drivers/base/arch_topology.c
58
> 59 void arch_set_thermal_pressure(const struct cpumask *cpus,
60 unsigned long th_pressure)
61 {
62 int cpu;
63
64 for_each_cpu(cpu, cpus)
65 WRITE_ONCE(per_cpu(thermal_pressure, cpu), th_pressure);
66 }
67
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 3 months
Re: [PATCH] media: bdisp: fix reference count leaks due to pm_runtime_get_sync
by kernel test robot
Hi Aditya,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on linuxtv-media/master]
[also build test WARNING on v5.7 next-20200614]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]
url: https://github.com/0day-ci/linux/commits/Aditya-Pakki/media-bdisp-fix-ref...
base: git://linuxtv.org/media_tree.git master
config: x86_64-allyesconfig (attached as .config)
compiler: clang version 11.0.0 (https://github.com/llvm/llvm-project cb5072d1877b38c972f95092db2cedbcddb81da6)
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 x86_64 cross compiling tool for clang build
# apt-get install binutils-x86-64-linux-gnu
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>, old ones prefixed by <<):
>> drivers/media/platform/sti/bdisp/bdisp-v4l2.c:1403:1: warning: unused label 'err_dbg' [-Wunused-label]
err_dbg:
^~~~~~~~
1 warning generated.
vim +/err_dbg +1403 drivers/media/platform/sti/bdisp/bdisp-v4l2.c
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1284
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1285 static int bdisp_probe(struct platform_device *pdev)
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1286 {
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1287 struct bdisp_dev *bdisp;
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1288 struct resource *res;
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1289 struct device *dev = &pdev->dev;
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1290 int ret;
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1291
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1292 dev_dbg(dev, "%s\n", __func__);
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1293
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1294 bdisp = devm_kzalloc(dev, sizeof(struct bdisp_dev), GFP_KERNEL);
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1295 if (!bdisp)
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1296 return -ENOMEM;
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1297
2732bb765f14eb Fabien Dessenne 2018-05-15 1298 ret = dma_coerce_mask_and_coherent(dev, DMA_BIT_MASK(32));
2732bb765f14eb Fabien Dessenne 2018-05-15 1299 if (ret)
2732bb765f14eb Fabien Dessenne 2018-05-15 1300 return ret;
2732bb765f14eb Fabien Dessenne 2018-05-15 1301
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1302 bdisp->pdev = pdev;
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1303 bdisp->dev = dev;
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1304 platform_set_drvdata(pdev, bdisp);
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1305
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1306 if (dev->of_node)
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1307 bdisp->id = of_alias_get_id(pdev->dev.of_node, BDISP_NAME);
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1308 else
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1309 bdisp->id = pdev->id;
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1310
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1311 init_waitqueue_head(&bdisp->irq_queue);
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1312 INIT_DELAYED_WORK(&bdisp->timeout_work, bdisp_irq_timeout);
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1313 bdisp->work_queue = create_workqueue(BDISP_NAME);
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1314
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1315 spin_lock_init(&bdisp->slock);
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1316 mutex_init(&bdisp->lock);
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1317
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1318 /* get resources */
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1319 res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1320 bdisp->regs = devm_ioremap_resource(dev, res);
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1321 if (IS_ERR(bdisp->regs)) {
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1322 dev_err(dev, "failed to get regs\n");
8ea1c5af489a76 Chuhong Yuan 2019-11-13 1323 ret = PTR_ERR(bdisp->regs);
8ea1c5af489a76 Chuhong Yuan 2019-11-13 1324 goto err_wq;
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1325 }
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1326
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1327 bdisp->clock = devm_clk_get(dev, BDISP_NAME);
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1328 if (IS_ERR(bdisp->clock)) {
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1329 dev_err(dev, "failed to get clock\n");
8ea1c5af489a76 Chuhong Yuan 2019-11-13 1330 ret = PTR_ERR(bdisp->clock);
8ea1c5af489a76 Chuhong Yuan 2019-11-13 1331 goto err_wq;
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1332 }
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1333
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1334 ret = clk_prepare(bdisp->clock);
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1335 if (ret < 0) {
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1336 dev_err(dev, "clock prepare failed\n");
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1337 bdisp->clock = ERR_PTR(-EINVAL);
8ea1c5af489a76 Chuhong Yuan 2019-11-13 1338 goto err_wq;
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1339 }
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1340
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1341 res = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1342 if (!res) {
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1343 dev_err(dev, "failed to get IRQ resource\n");
017f4fb7f2eaa1 Wei Yongjun 2016-09-21 1344 ret = -EINVAL;
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1345 goto err_clk;
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1346 }
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1347
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1348 ret = devm_request_threaded_irq(dev, res->start, bdisp_irq_handler,
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1349 bdisp_irq_thread, IRQF_ONESHOT,
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1350 pdev->name, bdisp);
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1351 if (ret) {
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1352 dev_err(dev, "failed to install irq\n");
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1353 goto err_clk;
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1354 }
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1355
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1356 /* v4l2 register */
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1357 ret = v4l2_device_register(dev, &bdisp->v4l2_dev);
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1358 if (ret) {
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1359 dev_err(dev, "failed to register\n");
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1360 goto err_clk;
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1361 }
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1362
34b6beb65beb7f Fabien Dessenne 2015-05-12 1363 /* Debug */
34b6beb65beb7f Fabien Dessenne 2015-05-12 1364 ret = bdisp_debugfs_create(bdisp);
34b6beb65beb7f Fabien Dessenne 2015-05-12 1365 if (ret) {
34b6beb65beb7f Fabien Dessenne 2015-05-12 1366 dev_err(dev, "failed to create debugfs\n");
34b6beb65beb7f Fabien Dessenne 2015-05-12 1367 goto err_v4l2;
34b6beb65beb7f Fabien Dessenne 2015-05-12 1368 }
34b6beb65beb7f Fabien Dessenne 2015-05-12 1369
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1370 /* Power management */
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1371 pm_runtime_enable(dev);
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1372 ret = pm_runtime_get_sync(dev);
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1373 if (ret < 0) {
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1374 dev_err(dev, "failed to set PM\n");
00406f27b7445c Aditya Pakki 2020-06-13 1375 goto err_pm;
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1376 }
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1377
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1378 /* Filters */
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1379 if (bdisp_hw_alloc_filters(bdisp->dev)) {
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1380 dev_err(bdisp->dev, "no memory for filters\n");
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1381 ret = -ENOMEM;
dce57314b53760 Hans Verkuil 2016-02-15 1382 goto err_pm;
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1383 }
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1384
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1385 /* Register */
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1386 ret = bdisp_register_device(bdisp);
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1387 if (ret) {
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1388 dev_err(dev, "failed to register\n");
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1389 goto err_filter;
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1390 }
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1391
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1392 dev_info(dev, "%s%d registered as /dev/video%d\n", BDISP_NAME,
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1393 bdisp->id, bdisp->vdev.num);
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1394
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1395 pm_runtime_put(dev);
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1396
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1397 return 0;
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1398
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1399 err_filter:
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1400 bdisp_hw_free_filters(bdisp->dev);
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1401 err_pm:
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1402 pm_runtime_put(dev);
34b6beb65beb7f Fabien Dessenne 2015-05-12 @1403 err_dbg:
34b6beb65beb7f Fabien Dessenne 2015-05-12 1404 bdisp_debugfs_remove(bdisp);
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1405 err_v4l2:
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1406 v4l2_device_unregister(&bdisp->v4l2_dev);
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1407 err_clk:
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1408 if (!IS_ERR(bdisp->clock))
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1409 clk_unprepare(bdisp->clock);
8ea1c5af489a76 Chuhong Yuan 2019-11-13 1410 err_wq:
8ea1c5af489a76 Chuhong Yuan 2019-11-13 1411 destroy_workqueue(bdisp->work_queue);
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1412 return ret;
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1413 }
28ffeebbb7bdc0 Fabien Dessenne 2015-05-12 1414
:::::: The code at line 1403 was first introduced by commit
:::::: 34b6beb65beb7f7726baa771661c671310445265 [media] bdisp: add debug file system
:::::: TO: Fabien Dessenne <fabien.dessenne(a)st.com>
:::::: CC: Mauro Carvalho Chehab <mchehab(a)osg.samsung.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 3 months
[afaerber:rtd1295-next 99/166] g2227.c:undefined reference to `__devm_regmap_init_i2c'
by kernel test robot
tree: https://github.com/afaerber/linux.git rtd1295-next
head: af9d43a7ab49361eb3297bfc219db99e3ced1bb1
commit: 3b369dfc364fc8a7f6a4a4fbcb2c7c8f6d7e6880 [99/166] regulator: Add GMT G2227 driver
config: riscv-allmodconfig (attached as .config)
compiler: riscv64-linux-gcc (GCC) 9.3.0
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
git checkout 3b369dfc364fc8a7f6a4a4fbcb2c7c8f6d7e6880
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=riscv
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>, old ones prefixed by <<):
riscv64-linux-ld: drivers/regulator/g2227.o: in function `.L0 ':
>> g2227.c:(.text+0x7c): undefined reference to `__devm_regmap_init_i2c'
>> riscv64-linux-ld: g2227.c:(.init.text+0x1c): undefined reference to `i2c_register_driver'
>> riscv64-linux-ld: g2227.c:(.exit.text+0x10): undefined reference to `i2c_del_driver'
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 3 months