Re: [PATCH v2] f2fs: Don't create discard thread when device not support realtime discard
by kernel test robot
Hi Yangtao,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on f2fs/dev-test]
[also build test WARNING on next-20210813]
[cannot apply to v5.14-rc5]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Yangtao-Li/f2fs-Don-t-create-dis...
base: https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs.git dev-test
config: x86_64-randconfig-c001-20210813 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 62df4df41c939205b2dc0a2a3bfb75b8c1ed74fa)
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
# https://github.com/0day-ci/linux/commit/409d152775702fc2af3b9d97d01fe8240...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Yangtao-Li/f2fs-Don-t-create-discard-thread-when-device-not-support-realtime-discard/20210813-181309
git checkout 409d152775702fc2af3b9d97d01fe8240ba6da7b
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64 clang-analyzer
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
clang-analyzer warnings: (new ones prefixed by >>)
^
net/ipv6/raw.c:936:2: note: Taking true branch
if (ipc6.dontfrag < 0)
^
net/ipv6/raw.c:939:6: note: Assuming the condition is false
if (msg->msg_flags&MSG_CONFIRM)
^~~~~~~~~~~~~~~~~~~~~~~~~~
net/ipv6/raw.c:939:2: note: Taking false branch
if (msg->msg_flags&MSG_CONFIRM)
^
net/ipv6/raw.c:943:6: note: 'hdrincl' is 0
if (hdrincl)
^~~~~~~
net/ipv6/raw.c:943:2: note: Taking false branch
if (hdrincl)
^
net/ipv6/raw.c:953:7: note: Assuming 'err' is 0
if (err)
^~~
net/ipv6/raw.c:953:3: note: Taking false branch
if (err)
^
net/ipv6/raw.c:955:12: note: Assuming the condition is true
else if (!(msg->msg_flags & MSG_MORE))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/ipv6/raw.c:955:8: note: Taking true branch
else if (!(msg->msg_flags & MSG_MORE))
^
net/ipv6/raw.c:956:10: note: Calling 'rawv6_push_pending_frames'
err = rawv6_push_pending_frames(sk, &fl6, rp);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/ipv6/raw.c:550:6: note: Assuming field 'checksum' is not equal to 0
if (!rp->checksum)
^~~~~~~~~~~~~
net/ipv6/raw.c:550:2: note: Taking false branch
if (!rp->checksum)
^
net/ipv6/raw.c:553:8: note: Calling 'skb_peek'
skb = skb_peek(&sk->sk_write_queue);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/skbuff.h:1803:6: note: Assuming 'skb' is not equal to 'list_'
if (skb == (struct sk_buff *)list_)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/skbuff.h:1803:2: note: Taking false branch
if (skb == (struct sk_buff *)list_)
^
include/linux/skbuff.h:1805:2: note: Returning pointer (loaded from 'skb'), which participates in a condition later
return skb;
^~~~~~~~~~
net/ipv6/raw.c:553:8: note: Returning from 'skb_peek'
skb = skb_peek(&sk->sk_write_queue);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/ipv6/raw.c:554:6: note: Assuming 'skb' is non-null
if (!skb)
^~~~
net/ipv6/raw.c:554:2: note: Taking false branch
if (!skb)
^
net/ipv6/raw.c:559:6: note: Assuming the condition is false
if (offset >= total_len - 1) {
^~~~~~~~~~~~~~~~~~~~~~~
net/ipv6/raw.c:559:2: note: Taking false branch
if (offset >= total_len - 1) {
^
net/ipv6/raw.c:566:6: note: Assuming the condition is false
if (skb_queue_len(&sk->sk_write_queue) == 1) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/ipv6/raw.c:566:2: note: Taking false branch
if (skb_queue_len(&sk->sk_write_queue) == 1) {
^
net/ipv6/raw.c:572:3: note: 'csum_skb' initialized to a null pointer value
struct sk_buff *csum_skb = NULL;
^~~~~~~~~~~~~~~~~~~~~~~~
net/ipv6/raw.c:575:3: note: Loop condition is false. Execution continues on line 590
skb_queue_walk(&sk->sk_write_queue, skb) {
^
include/linux/skbuff.h:3532:3: note: expanded from macro 'skb_queue_walk'
for (skb = (queue)->next; \
^
net/ipv6/raw.c:590:3: note: Null pointer value stored to 'skb'
skb = csum_skb;
^~~~~~~~~~~~~~
net/ipv6/raw.c:593:33: note: Passing null pointer value via 1st parameter 'skb'
offset += skb_transport_offset(skb);
^~~
net/ipv6/raw.c:593:12: note: Calling 'skb_transport_offset'
offset += skb_transport_offset(skb);
^~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/skbuff.h:2633:30: note: Passing null pointer value via 1st parameter 'skb'
return skb_transport_header(skb) - skb->data;
^~~
include/linux/skbuff.h:2633:9: note: Calling 'skb_transport_header'
return skb_transport_header(skb) - skb->data;
^~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/skbuff.h:2527:9: note: Access to field 'head' results in a dereference of a null pointer (loaded from variable 'skb')
return skb->head + skb->transport_header;
^~~
Suppressed 12 warnings (12 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
12 warnings generated.
>> fs/f2fs/segment.c:2139:8: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
dev_t dev = sbi->sb->s_bdev->bd_dev;
^~~ ~~~~~~~~~~~~~~~~~~~~~~~
fs/f2fs/segment.c:2139:8: note: Value stored to 'dev' during its initialization is never read
dev_t dev = sbi->sb->s_bdev->bd_dev;
^~~ ~~~~~~~~~~~~~~~~~~~~~~~
>> fs/f2fs/segment.c:2144:3: warning: Value stored to 'dcc' is never read [clang-analyzer-deadcode.DeadStores]
dcc = SM_I(sbi)->dcc_info;
^ ~~~~~~~~~~~~~~~~~~~
fs/f2fs/segment.c:2144:3: note: Value stored to 'dcc' is never read
dcc = SM_I(sbi)->dcc_info;
^ ~~~~~~~~~~~~~~~~~~~
include/linux/math64.h:28:24: warning: Division by zero [clang-analyzer-core.DivideZero]
*remainder = dividend % divisor;
^
fs/f2fs/segment.c:5185:39: note: Calling 'F2FS_RAW_SUPER'
struct f2fs_super_block *raw_super = F2FS_RAW_SUPER(sbi);
^~~~~~~~~~~~~~~~~~~
fs/f2fs/f2fs.h:1947:2: note: Returning without writing to 'sbi->segs_per_sec'
return (struct f2fs_super_block *)(sbi->raw_super);
^
fs/f2fs/segment.c:5185:39: note: Returning from 'F2FS_RAW_SUPER'
struct f2fs_super_block *raw_super = F2FS_RAW_SUPER(sbi);
^~~~~~~~~~~~~~~~~~~
fs/f2fs/segment.c:5186:33: note: Calling 'F2FS_CKPT'
struct f2fs_checkpoint *ckpt = F2FS_CKPT(sbi);
^~~~~~~~~~~~~~
fs/f2fs/f2fs.h:1952:2: note: Returning without writing to 'sbi->segs_per_sec'
return (struct f2fs_checkpoint *)(sbi->ckpt);
^
fs/f2fs/segment.c:5186:33: note: Returning from 'F2FS_CKPT'
struct f2fs_checkpoint *ckpt = F2FS_CKPT(sbi);
^~~~~~~~~~~~~~
fs/f2fs/segment.c:5190:12: note: Calling 'f2fs_kzalloc'
sm_info = f2fs_kzalloc(sbi, sizeof(struct f2fs_sm_info), GFP_KERNEL);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fs/f2fs/f2fs.h:3227:9: note: Calling 'f2fs_kmalloc'
return f2fs_kmalloc(sbi, size, flags | __GFP_ZERO);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fs/f2fs/f2fs.h:3216:6: note: Calling 'time_to_inject'
if (time_to_inject(sbi, FAULT_KMALLOC)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fs/f2fs/f2fs.h:1813:6: note: Assuming field 'inject_rate' is not equal to 0
if (!ffi->inject_rate)
^~~~~~~~~~~~~~~~~
fs/f2fs/f2fs.h:1813:2: note: Taking false branch
if (!ffi->inject_rate)
^
fs/f2fs/f2fs.h:1816:6: note: Assuming the condition is false
if (!IS_FAULT_SET(ffi, type))
^~~~~~~~~~~~~~~~~~~~~~~~
fs/f2fs/f2fs.h:1816:2: note: Taking false branch
if (!IS_FAULT_SET(ffi, type))
^
fs/f2fs/f2fs.h:1820:6: note: Assuming the condition is false
if (atomic_read(&ffi->inject_ops) >= ffi->inject_rate) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fs/f2fs/f2fs.h:1820:2: note: Taking false branch
if (atomic_read(&ffi->inject_ops) >= ffi->inject_rate) {
^
fs/f2fs/f2fs.h:1824:2: note: Returning without writing to 'sbi->segs_per_sec'
return false;
^
fs/f2fs/f2fs.h:3216:6: note: Returning from 'time_to_inject'
if (time_to_inject(sbi, FAULT_KMALLOC)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fs/f2fs/f2fs.h:3216:2: note: Taking false branch
if (time_to_inject(sbi, FAULT_KMALLOC)) {
^
fs/f2fs/f2fs.h:3221:2: note: Returning without writing to 'sbi->segs_per_sec'
return kmalloc(size, flags);
^
fs/f2fs/f2fs.h:3227:9: note: Returning from 'f2fs_kmalloc'
return f2fs_kmalloc(sbi, size, flags | __GFP_ZERO);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fs/f2fs/f2fs.h:3227:2: note: Returning without writing to 'sbi->segs_per_sec'
return f2fs_kmalloc(sbi, size, flags | __GFP_ZERO);
^
fs/f2fs/segment.c:5190:12: note: Returning from 'f2fs_kzalloc'
sm_info = f2fs_kzalloc(sbi, sizeof(struct f2fs_sm_info), GFP_KERNEL);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fs/f2fs/segment.c:5191:6: note: Assuming 'sm_info' is non-null
if (!sm_info)
^~~~~~~~
fs/f2fs/segment.c:5191:2: note: Taking false branch
if (!sm_info)
^
fs/f2fs/segment.c:5205:6: note: Assuming field 'rec_prefree_segments' is <= DEF_MAX_RECLAIM_PREFREE_SEGMENTS
if (sm_info->rec_prefree_segments > DEF_MAX_RECLAIM_PREFREE_SEGMENTS)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fs/f2fs/segment.c:5205:2: note: Taking false branch
if (sm_info->rec_prefree_segments > DEF_MAX_RECLAIM_PREFREE_SEGMENTS)
^
fs/f2fs/segment.c:5208:7: note: Calling 'f2fs_lfs_mode'
if (!f2fs_lfs_mode(sbi))
^~~~~~~~~~~~~~~~~~
fs/f2fs/f2fs.h:4412:9: note: Assuming field 'fs_mode' is not equal to FS_MODE_LFS
return F2FS_OPTION(sbi).fs_mode == FS_MODE_LFS;
^
fs/f2fs/f2fs.h:105:26: note: expanded from macro 'F2FS_OPTION'
#define F2FS_OPTION(sbi) ((sbi)->mount_opt)
^
fs/f2fs/f2fs.h:4412:2: note: Returning without writing to 'sbi->segs_per_sec'
return F2FS_OPTION(sbi).fs_mode == FS_MODE_LFS;
^
fs/f2fs/segment.c:5208:7: note: Returning from 'f2fs_lfs_mode'
if (!f2fs_lfs_mode(sbi))
vim +/dev +2139 fs/f2fs/segment.c
351df4b2011573 Jaegeuk Kim 2012-11-02 2008
4d57b86dd86404 Chao Yu 2018-05-30 2009 void f2fs_clear_prefree_segments(struct f2fs_sb_info *sbi,
4d57b86dd86404 Chao Yu 2018-05-30 2010 struct cp_control *cpc)
351df4b2011573 Jaegeuk Kim 2012-11-02 2011 {
969d1b180d987c Chao Yu 2017-08-07 2012 struct discard_cmd_control *dcc = SM_I(sbi)->dcc_info;
969d1b180d987c Chao Yu 2017-08-07 2013 struct list_head *head = &dcc->entry_list;
2d7b822ad9daf0 Chao Yu 2014-03-29 2014 struct discard_entry *entry, *this;
351df4b2011573 Jaegeuk Kim 2012-11-02 2015 struct dirty_seglist_info *dirty_i = DIRTY_I(sbi);
29e59c14ae5c21 Changman Lee 2013-11-11 2016 unsigned long *prefree_map = dirty_i->dirty_segmap[PRE];
29e59c14ae5c21 Changman Lee 2013-11-11 2017 unsigned int start = 0, end = -1;
36abef4e796d38 Jaegeuk Kim 2016-06-03 2018 unsigned int secno, start_segno;
c473f1a9658b6c Chao Yu 2017-04-27 2019 bool force = (cpc->reason & CP_DISCARD);
4f993264fe2965 Chao Yu 2021-08-03 2020 bool section_alignment = F2FS_OPTION(sbi).discard_unit ==
4f993264fe2965 Chao Yu 2021-08-03 2021 DISCARD_UNIT_SECTION;
4f993264fe2965 Chao Yu 2021-08-03 2022
4f993264fe2965 Chao Yu 2021-08-03 2023 if (f2fs_lfs_mode(sbi) && __is_large_section(sbi))
4f993264fe2965 Chao Yu 2021-08-03 2024 section_alignment = true;
351df4b2011573 Jaegeuk Kim 2012-11-02 2025
351df4b2011573 Jaegeuk Kim 2012-11-02 2026 mutex_lock(&dirty_i->seglist_lock);
29e59c14ae5c21 Changman Lee 2013-11-11 2027
351df4b2011573 Jaegeuk Kim 2012-11-02 2028 while (1) {
29e59c14ae5c21 Changman Lee 2013-11-11 2029 int i;
ad6672bbc52772 Yunlong Song 2018-07-19 2030
4f993264fe2965 Chao Yu 2021-08-03 2031 if (section_alignment && end != -1)
ad6672bbc52772 Yunlong Song 2018-07-19 2032 end--;
7cd8558baa4e45 Jaegeuk Kim 2014-09-23 2033 start = find_next_bit(prefree_map, MAIN_SEGS(sbi), end + 1);
7cd8558baa4e45 Jaegeuk Kim 2014-09-23 2034 if (start >= MAIN_SEGS(sbi))
351df4b2011573 Jaegeuk Kim 2012-11-02 2035 break;
7cd8558baa4e45 Jaegeuk Kim 2014-09-23 2036 end = find_next_zero_bit(prefree_map, MAIN_SEGS(sbi),
7cd8558baa4e45 Jaegeuk Kim 2014-09-23 2037 start + 1);
29e59c14ae5c21 Changman Lee 2013-11-11 2038
4f993264fe2965 Chao Yu 2021-08-03 2039 if (section_alignment) {
ad6672bbc52772 Yunlong Song 2018-07-19 2040 start = rounddown(start, sbi->segs_per_sec);
ad6672bbc52772 Yunlong Song 2018-07-19 2041 end = roundup(end, sbi->segs_per_sec);
ad6672bbc52772 Yunlong Song 2018-07-19 2042 }
29e59c14ae5c21 Changman Lee 2013-11-11 2043
ad6672bbc52772 Yunlong Song 2018-07-19 2044 for (i = start; i < end; i++) {
ad6672bbc52772 Yunlong Song 2018-07-19 2045 if (test_and_clear_bit(i, prefree_map))
ad6672bbc52772 Yunlong Song 2018-07-19 2046 dirty_i->nr_dirty[PRE]--;
ad6672bbc52772 Yunlong Song 2018-07-19 2047 }
351df4b2011573 Jaegeuk Kim 2012-11-02 2048
7d20c8abb2edcf Chao Yu 2018-09-04 2049 if (!f2fs_realtime_discard_enable(sbi))
650d3c4e56e1e9 Yunlei He 2016-12-22 2050 continue;
650d3c4e56e1e9 Yunlei He 2016-12-22 2051
650d3c4e56e1e9 Yunlei He 2016-12-22 2052 if (force && start >= cpc->trim_start &&
650d3c4e56e1e9 Yunlei He 2016-12-22 2053 (end - 1) <= cpc->trim_end)
29e59c14ae5c21 Changman Lee 2013-11-11 2054 continue;
351df4b2011573 Jaegeuk Kim 2012-11-02 2055
b0332a0f957ca8 Chao Yu 2020-02-14 2056 if (!f2fs_lfs_mode(sbi) || !__is_large_section(sbi)) {
37208879108644 Jaegeuk Kim 2013-11-12 2057 f2fs_issue_discard(sbi, START_BLOCK(sbi, start),
37208879108644 Jaegeuk Kim 2013-11-12 2058 (end - start) << sbi->log_blocks_per_seg);
36abef4e796d38 Jaegeuk Kim 2016-06-03 2059 continue;
36abef4e796d38 Jaegeuk Kim 2016-06-03 2060 }
36abef4e796d38 Jaegeuk Kim 2016-06-03 2061 next:
4ddb1a4d4dc206 Jaegeuk Kim 2017-04-07 2062 secno = GET_SEC_FROM_SEG(sbi, start);
4ddb1a4d4dc206 Jaegeuk Kim 2017-04-07 2063 start_segno = GET_SEG_FROM_SEC(sbi, secno);
36abef4e796d38 Jaegeuk Kim 2016-06-03 2064 if (!IS_CURSEC(sbi, secno) &&
302bd34882b1e2 Jaegeuk Kim 2017-04-07 2065 !get_valid_blocks(sbi, start, true))
36abef4e796d38 Jaegeuk Kim 2016-06-03 2066 f2fs_issue_discard(sbi, START_BLOCK(sbi, start_segno),
36abef4e796d38 Jaegeuk Kim 2016-06-03 2067 sbi->segs_per_sec << sbi->log_blocks_per_seg);
36abef4e796d38 Jaegeuk Kim 2016-06-03 2068
36abef4e796d38 Jaegeuk Kim 2016-06-03 2069 start = start_segno + sbi->segs_per_sec;
36abef4e796d38 Jaegeuk Kim 2016-06-03 2070 if (start < end)
36abef4e796d38 Jaegeuk Kim 2016-06-03 2071 goto next;
8b107f5b97772c Jaegeuk Kim 2017-02-27 2072 else
8b107f5b97772c Jaegeuk Kim 2017-02-27 2073 end = start - 1;
351df4b2011573 Jaegeuk Kim 2012-11-02 2074 }
351df4b2011573 Jaegeuk Kim 2012-11-02 2075 mutex_unlock(&dirty_i->seglist_lock);
b29555505d81e4 Jaegeuk Kim 2013-11-12 2076
4f993264fe2965 Chao Yu 2021-08-03 2077 if (!f2fs_block_unit_discard(sbi))
4f993264fe2965 Chao Yu 2021-08-03 2078 goto wakeup;
4f993264fe2965 Chao Yu 2021-08-03 2079
b29555505d81e4 Jaegeuk Kim 2013-11-12 2080 /* send small discards */
2d7b822ad9daf0 Chao Yu 2014-03-29 2081 list_for_each_entry_safe(entry, this, head, list) {
a7eeb823854c4a Chao Yu 2017-03-28 2082 unsigned int cur_pos = 0, next_pos, len, total_len = 0;
a7eeb823854c4a Chao Yu 2017-03-28 2083 bool is_valid = test_bit_le(0, entry->discard_map);
a7eeb823854c4a Chao Yu 2017-03-28 2084
a7eeb823854c4a Chao Yu 2017-03-28 2085 find_next:
a7eeb823854c4a Chao Yu 2017-03-28 2086 if (is_valid) {
a7eeb823854c4a Chao Yu 2017-03-28 2087 next_pos = find_next_zero_bit_le(entry->discard_map,
a7eeb823854c4a Chao Yu 2017-03-28 2088 sbi->blocks_per_seg, cur_pos);
a7eeb823854c4a Chao Yu 2017-03-28 2089 len = next_pos - cur_pos;
a7eeb823854c4a Chao Yu 2017-03-28 2090
7beb01f74415c5 Chao Yu 2018-10-24 2091 if (f2fs_sb_has_blkzoned(sbi) ||
acfd2810c75b06 Damien Le Moal 2017-05-26 2092 (force && len < cpc->trim_minlen))
836b5a6356ac49 Jaegeuk Kim 2015-04-30 2093 goto skip;
a7eeb823854c4a Chao Yu 2017-03-28 2094
a7eeb823854c4a Chao Yu 2017-03-28 2095 f2fs_issue_discard(sbi, entry->start_blkaddr + cur_pos,
a7eeb823854c4a Chao Yu 2017-03-28 2096 len);
a7eeb823854c4a Chao Yu 2017-03-28 2097 total_len += len;
a7eeb823854c4a Chao Yu 2017-03-28 2098 } else {
a7eeb823854c4a Chao Yu 2017-03-28 2099 next_pos = find_next_bit_le(entry->discard_map,
a7eeb823854c4a Chao Yu 2017-03-28 2100 sbi->blocks_per_seg, cur_pos);
a7eeb823854c4a Chao Yu 2017-03-28 2101 }
836b5a6356ac49 Jaegeuk Kim 2015-04-30 2102 skip:
a7eeb823854c4a Chao Yu 2017-03-28 2103 cur_pos = next_pos;
a7eeb823854c4a Chao Yu 2017-03-28 2104 is_valid = !is_valid;
a7eeb823854c4a Chao Yu 2017-03-28 2105
a7eeb823854c4a Chao Yu 2017-03-28 2106 if (cur_pos < sbi->blocks_per_seg)
a7eeb823854c4a Chao Yu 2017-03-28 2107 goto find_next;
a7eeb823854c4a Chao Yu 2017-03-28 2108
af8ff65bb85df3 Chao Yu 2018-04-25 2109 release_discard_addr(entry);
969d1b180d987c Chao Yu 2017-08-07 2110 dcc->nr_discards -= total_len;
b29555505d81e4 Jaegeuk Kim 2013-11-12 2111 }
34e159da418be4 Chao Yu 2017-04-25 2112
4f993264fe2965 Chao Yu 2021-08-03 2113 wakeup:
01983c715ad0e7 Jaegeuk Kim 2017-08-22 2114 wake_up_discard_thread(sbi, false);
351df4b2011573 Jaegeuk Kim 2012-11-02 2115 }
409d152775702f Fengnan Chang 2021-08-13 2116 int f2fs_start_discard_thread(struct f2fs_sb_info *sbi)
409d152775702f Fengnan Chang 2021-08-13 2117 {
409d152775702f Fengnan Chang 2021-08-13 2118 dev_t dev = sbi->sb->s_bdev->bd_dev;
409d152775702f Fengnan Chang 2021-08-13 2119 struct discard_cmd_control *dcc = SM_I(sbi)->dcc_info;
409d152775702f Fengnan Chang 2021-08-13 2120 int err = 0;
351df4b2011573 Jaegeuk Kim 2012-11-02 2121
409d152775702f Fengnan Chang 2021-08-13 2122 if (!dcc)
409d152775702f Fengnan Chang 2021-08-13 2123 return -EINVAL;
409d152775702f Fengnan Chang 2021-08-13 2124 if (!f2fs_realtime_discard_enable(sbi))
409d152775702f Fengnan Chang 2021-08-13 2125 return 0;
409d152775702f Fengnan Chang 2021-08-13 2126
409d152775702f Fengnan Chang 2021-08-13 2127 dcc->f2fs_issue_discard = kthread_run(issue_discard_thread, sbi,
409d152775702f Fengnan Chang 2021-08-13 2128 "f2fs_discard-%u:%u", MAJOR(dev), MINOR(dev));
409d152775702f Fengnan Chang 2021-08-13 2129 if (IS_ERR(dcc->f2fs_issue_discard)) {
409d152775702f Fengnan Chang 2021-08-13 2130 err = PTR_ERR(dcc->f2fs_issue_discard);
409d152775702f Fengnan Chang 2021-08-13 2131 kfree(dcc);
409d152775702f Fengnan Chang 2021-08-13 2132 SM_I(sbi)->dcc_info = NULL;
409d152775702f Fengnan Chang 2021-08-13 2133 return err;
409d152775702f Fengnan Chang 2021-08-13 2134 }
409d152775702f Fengnan Chang 2021-08-13 2135 return err;
409d152775702f Fengnan Chang 2021-08-13 2136 }
8ed59745520863 Jaegeuk Kim 2017-01-29 2137 static int create_discard_cmd_control(struct f2fs_sb_info *sbi)
0b54fb8458199d Jaegeuk Kim 2017-01-11 2138 {
1546996348b33d Jaegeuk Kim 2017-01-09 @2139 dev_t dev = sbi->sb->s_bdev->bd_dev;
0b54fb8458199d Jaegeuk Kim 2017-01-11 2140 struct discard_cmd_control *dcc;
ba48a33ef6faa5 Chao Yu 2017-04-15 2141 int err = 0, i;
0b54fb8458199d Jaegeuk Kim 2017-01-11 2142
0b54fb8458199d Jaegeuk Kim 2017-01-11 2143 if (SM_I(sbi)->dcc_info) {
0b54fb8458199d Jaegeuk Kim 2017-01-11 @2144 dcc = SM_I(sbi)->dcc_info;
0b54fb8458199d Jaegeuk Kim 2017-01-11 2145 goto init_thread;
0b54fb8458199d Jaegeuk Kim 2017-01-11 2146 }
0b54fb8458199d Jaegeuk Kim 2017-01-11 2147
acbf054d537d7e Chao Yu 2017-11-30 2148 dcc = f2fs_kzalloc(sbi, sizeof(struct discard_cmd_control), GFP_KERNEL);
0b54fb8458199d Jaegeuk Kim 2017-01-11 2149 if (!dcc)
0b54fb8458199d Jaegeuk Kim 2017-01-11 2150 return -ENOMEM;
0b54fb8458199d Jaegeuk Kim 2017-01-11 2151
969d1b180d987c Chao Yu 2017-08-07 2152 dcc->discard_granularity = DEFAULT_DISCARD_GRANULARITY;
4f993264fe2965 Chao Yu 2021-08-03 2153 if (F2FS_OPTION(sbi).discard_unit == DISCARD_UNIT_SEGMENT)
4f993264fe2965 Chao Yu 2021-08-03 2154 dcc->discard_granularity = sbi->blocks_per_seg;
4f993264fe2965 Chao Yu 2021-08-03 2155 else if (F2FS_OPTION(sbi).discard_unit == DISCARD_UNIT_SECTION)
4f993264fe2965 Chao Yu 2021-08-03 2156 dcc->discard_granularity = BLKS_PER_SEC(sbi);
4f993264fe2965 Chao Yu 2021-08-03 2157
46f84c2c058784 Chao Yu 2017-04-15 2158 INIT_LIST_HEAD(&dcc->entry_list);
78997b569f5625 Chao Yu 2017-10-04 2159 for (i = 0; i < MAX_PLIST_NUM; i++)
ba48a33ef6faa5 Chao Yu 2017-04-15 2160 INIT_LIST_HEAD(&dcc->pend_list[i]);
46f84c2c058784 Chao Yu 2017-04-15 2161 INIT_LIST_HEAD(&dcc->wait_list);
8412663d177d95 Chao Yu 2017-10-04 2162 INIT_LIST_HEAD(&dcc->fstrim_list);
1546996348b33d Jaegeuk Kim 2017-01-09 2163 mutex_init(&dcc->cmd_lock);
8b8dd65f72ccbf Chao Yu 2017-03-25 2164 atomic_set(&dcc->issued_discard, 0);
72691af6dbd719 Jaegeuk Kim 2018-12-13 2165 atomic_set(&dcc->queued_discard, 0);
5f32366a29b48b Chao Yu 2017-03-25 2166 atomic_set(&dcc->discard_cmd_cnt, 0);
0b54fb8458199d Jaegeuk Kim 2017-01-11 2167 dcc->nr_discards = 0;
d618ebaf0aa83d Chao Yu 2017-04-25 2168 dcc->max_discards = MAIN_SEGS(sbi) << sbi->log_blocks_per_seg;
d84d1cbdec6b5d Chao Yu 2017-04-18 2169 dcc->undiscard_blks = 0;
20ee4382322cd9 Chao Yu 2018-07-08 2170 dcc->next_pos = 0;
4dada3fd7025e9 Chao Yu 2018-10-04 2171 dcc->root = RB_ROOT_CACHED;
67fce70ba341f7 Chao Yu 2018-06-22 2172 dcc->rbtree_check = false;
0b54fb8458199d Jaegeuk Kim 2017-01-11 2173
1546996348b33d Jaegeuk Kim 2017-01-09 2174 init_waitqueue_head(&dcc->discard_wait_queue);
0b54fb8458199d Jaegeuk Kim 2017-01-11 2175 SM_I(sbi)->dcc_info = dcc;
0b54fb8458199d Jaegeuk Kim 2017-01-11 2176 init_thread:
409d152775702f Fengnan Chang 2021-08-13 2177 err = f2fs_start_discard_thread(sbi);
1546996348b33d Jaegeuk Kim 2017-01-09 2178
0b54fb8458199d Jaegeuk Kim 2017-01-11 2179 return err;
0b54fb8458199d Jaegeuk Kim 2017-01-11 2180 }
0b54fb8458199d Jaegeuk Kim 2017-01-11 2181
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 1 month
Re: [PATCH v1 01/12] mm: memcontrol: prepare objcg API for non-kmem usage
by kernel test robot
Hi Muchun,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on next-20210813]
[also build test ERROR on v5.14-rc5]
[cannot apply to hnaz-linux-mm/master cgroup/for-next linus/master v5.14-rc5 v5.14-rc4 v5.14-rc3]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Muchun-Song/Use-obj_cgroup-APIs-...
base: 4b358aabb93a2c654cd1dcab1a25a589f6e2b153
config: x86_64-randconfig-a004-20210815 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 1f7b25ea76a925aca690da28de9d78db7ca99d0c)
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
# https://github.com/0day-ci/linux/commit/8a7c5ff0c21bed8ed69322118d0a01388...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Muchun-Song/Use-obj_cgroup-APIs-to-charge-the-LRU-pages/20210814-132844
git checkout 8a7c5ff0c21bed8ed69322118d0a01388ee8a6fd
# save the attached .config to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross O=build_dir ARCH=x86_64 SHELL=/bin/bash
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 >>):
>> mm/memcontrol.c:266:6: error: redefinition of 'mem_cgroup_kmem_disabled'
bool mem_cgroup_kmem_disabled(void)
^
include/linux/memcontrol.h:1728:20: note: previous definition is here
static inline bool mem_cgroup_kmem_disabled(void)
^
1 error generated.
vim +/mem_cgroup_kmem_disabled +266 mm/memcontrol.c
bf4f059954dcb2 Roman Gushchin 2020-08-06 265
4d5c8aedc8aa6a Roman Gushchin 2021-06-02 @266 bool mem_cgroup_kmem_disabled(void)
4d5c8aedc8aa6a Roman Gushchin 2021-06-02 267 {
4d5c8aedc8aa6a Roman Gushchin 2021-06-02 268 return cgroup_memory_nokmem;
4d5c8aedc8aa6a Roman Gushchin 2021-06-02 269 }
4d5c8aedc8aa6a Roman Gushchin 2021-06-02 270
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 1 month
arch/arm64/kvm/hyp/vhe/switch.c:217:17: warning: no previous prototype for function 'hyp_panic'
by kernel test robot
Hi Andrew,
FYI, the error/warning still remains.
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: ba31f97d43be41ca99ab72a6131d7c226306865f
commit: f79e616f27ab6cd74deb0995a8eead3d1c9d65af KVM: arm64: Use BUG and BUG_ON in nVHE hyp
date: 5 months ago
config: arm64-randconfig-r024-20210814 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 1f7b25ea76a925aca690da28de9d78db7ca99d0c)
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
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit...
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout f79e616f27ab6cd74deb0995a8eead3d1c9d65af
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm64
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 >>):
>> arch/arm64/kvm/hyp/vhe/switch.c:217:17: warning: no previous prototype for function 'hyp_panic' [-Wmissing-prototypes]
void __noreturn hyp_panic(void)
^
arch/arm64/kvm/hyp/vhe/switch.c:217:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void __noreturn hyp_panic(void)
^
static
arch/arm64/kvm/hyp/vhe/switch.c:227:17: warning: no previous prototype for function 'kvm_unexpected_el2_exception' [-Wmissing-prototypes]
asmlinkage void kvm_unexpected_el2_exception(void)
^
arch/arm64/kvm/hyp/vhe/switch.c:227:12: note: declare 'static' if the function is not intended to be used outside of this translation unit
asmlinkage void kvm_unexpected_el2_exception(void)
^
static
2 warnings generated.
--
>> arch/arm64/kvm/hyp/nvhe/switch.c:264:17: warning: no previous prototype for function 'hyp_panic' [-Wmissing-prototypes]
void __noreturn hyp_panic(void)
^
arch/arm64/kvm/hyp/nvhe/switch.c:264:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void __noreturn hyp_panic(void)
^
static
arch/arm64/kvm/hyp/nvhe/switch.c:286:17: warning: no previous prototype for function 'kvm_unexpected_el2_exception' [-Wmissing-prototypes]
asmlinkage void kvm_unexpected_el2_exception(void)
^
arch/arm64/kvm/hyp/nvhe/switch.c:286:12: note: declare 'static' if the function is not intended to be used outside of this translation unit
asmlinkage void kvm_unexpected_el2_exception(void)
^
static
2 warnings generated.
vim +/hyp_panic +217 arch/arm64/kvm/hyp/vhe/switch.c
09cf57eba30424 David Brazdil 2020-06-25 216
6a0259ed29bba8 Andrew Scull 2020-09-15 @217 void __noreturn hyp_panic(void)
09cf57eba30424 David Brazdil 2020-06-25 218 {
09cf57eba30424 David Brazdil 2020-06-25 219 u64 spsr = read_sysreg_el2(SYS_SPSR);
09cf57eba30424 David Brazdil 2020-06-25 220 u64 elr = read_sysreg_el2(SYS_ELR);
96d389ca10110d Rob Herring 2020-10-28 221 u64 par = read_sysreg_par();
09cf57eba30424 David Brazdil 2020-06-25 222
6a0259ed29bba8 Andrew Scull 2020-09-15 223 __hyp_call_panic(spsr, elr, par);
09cf57eba30424 David Brazdil 2020-06-25 224 unreachable();
09cf57eba30424 David Brazdil 2020-06-25 225 }
e9ee186bb735bf James Morse 2020-08-21 226
:::::: The code at line 217 was first introduced by commit
:::::: 6a0259ed29bba83653a36fabcdf6b06aecd78596 KVM: arm64: Remove hyp_panic arguments
:::::: TO: Andrew Scull <ascull(a)google.com>
:::::: CC: Marc Zyngier <maz(a)kernel.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 1 month
Re: [PATCH v5 1/6] cgroup/cpuset: Properly transition to invalid partition
by kernel test robot
Hi Waiman,
I love your patch! Perhaps something to improve:
[auto build test WARNING on cgroup/for-next]
[also build test WARNING on next-20210813]
[cannot apply to kselftest/next v5.14-rc5]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Waiman-Long/cgroup-cpuset-Add-ne...
base: https://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git for-next
config: ia64-defconfig (attached as .config)
compiler: ia64-linux-gcc (GCC) 11.2.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
# https://github.com/0day-ci/linux/commit/56ec7dd271c77e3cc92f0df6fd766004a...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Waiman-Long/cgroup-cpuset-Add-new-cpuset-partition-type-empty-effecitve-cpus/20210815-014333
git checkout 56ec7dd271c77e3cc92f0df6fd766004a7a0aa88
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.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 >>):
kernel/cgroup/cpuset.c: In function 'update_prstate':
>> kernel/cgroup/cpuset.c:2068:1: warning: the frame size of 3072 bytes is larger than 2048 bytes [-Wframe-larger-than=]
2068 | }
| ^
vim +2068 kernel/cgroup/cpuset.c
^1da177e4c3f41 kernel/cpuset.c Linus Torvalds 2005-04-16 1966
ee8dde0cd2ce78 kernel/cgroup/cpuset.c Waiman Long 2018-11-08 1967 /*
ee8dde0cd2ce78 kernel/cgroup/cpuset.c Waiman Long 2018-11-08 1968 * update_prstate - update partititon_root_state
ee8dde0cd2ce78 kernel/cgroup/cpuset.c Waiman Long 2018-11-08 1969 * cs: the cpuset to update
0f3adb8a1e5f36 kernel/cgroup/cpuset.c Waiman Long 2021-07-20 1970 * new_prs: new partition root state
ee8dde0cd2ce78 kernel/cgroup/cpuset.c Waiman Long 2018-11-08 1971 *
ee8dde0cd2ce78 kernel/cgroup/cpuset.c Waiman Long 2018-11-08 1972 * Call with cpuset_mutex held.
ee8dde0cd2ce78 kernel/cgroup/cpuset.c Waiman Long 2018-11-08 1973 */
0f3adb8a1e5f36 kernel/cgroup/cpuset.c Waiman Long 2021-07-20 1974 static int update_prstate(struct cpuset *cs, int new_prs)
ee8dde0cd2ce78 kernel/cgroup/cpuset.c Waiman Long 2018-11-08 1975 {
6ba34d3c73674e kernel/cgroup/cpuset.c Waiman Long 2021-07-20 1976 int err, old_prs = cs->partition_root_state;
ee8dde0cd2ce78 kernel/cgroup/cpuset.c Waiman Long 2018-11-08 1977 struct cpuset *parent = parent_cs(cs);
0f3adb8a1e5f36 kernel/cgroup/cpuset.c Waiman Long 2021-07-20 1978 struct tmpmasks tmpmask;
ee8dde0cd2ce78 kernel/cgroup/cpuset.c Waiman Long 2018-11-08 1979
6ba34d3c73674e kernel/cgroup/cpuset.c Waiman Long 2021-07-20 1980 if (old_prs == new_prs)
ee8dde0cd2ce78 kernel/cgroup/cpuset.c Waiman Long 2018-11-08 1981 return 0;
ee8dde0cd2ce78 kernel/cgroup/cpuset.c Waiman Long 2018-11-08 1982
ee8dde0cd2ce78 kernel/cgroup/cpuset.c Waiman Long 2018-11-08 1983 /*
3881b86128d0be kernel/cgroup/cpuset.c Waiman Long 2018-11-08 1984 * Cannot force a partial or invalid partition root to a full
ee8dde0cd2ce78 kernel/cgroup/cpuset.c Waiman Long 2018-11-08 1985 * partition root.
ee8dde0cd2ce78 kernel/cgroup/cpuset.c Waiman Long 2018-11-08 1986 */
6ba34d3c73674e kernel/cgroup/cpuset.c Waiman Long 2021-07-20 1987 if (new_prs && (old_prs == PRS_ERROR))
ee8dde0cd2ce78 kernel/cgroup/cpuset.c Waiman Long 2018-11-08 1988 return -EINVAL;
ee8dde0cd2ce78 kernel/cgroup/cpuset.c Waiman Long 2018-11-08 1989
0f3adb8a1e5f36 kernel/cgroup/cpuset.c Waiman Long 2021-07-20 1990 if (alloc_cpumasks(NULL, &tmpmask))
ee8dde0cd2ce78 kernel/cgroup/cpuset.c Waiman Long 2018-11-08 1991 return -ENOMEM;
ee8dde0cd2ce78 kernel/cgroup/cpuset.c Waiman Long 2018-11-08 1992
ee8dde0cd2ce78 kernel/cgroup/cpuset.c Waiman Long 2018-11-08 1993 err = -EINVAL;
6ba34d3c73674e kernel/cgroup/cpuset.c Waiman Long 2021-07-20 1994 if (!old_prs) {
ee8dde0cd2ce78 kernel/cgroup/cpuset.c Waiman Long 2018-11-08 1995 /*
ee8dde0cd2ce78 kernel/cgroup/cpuset.c Waiman Long 2018-11-08 1996 * Turning on partition root requires setting the
ee8dde0cd2ce78 kernel/cgroup/cpuset.c Waiman Long 2018-11-08 1997 * CS_CPU_EXCLUSIVE bit implicitly as well and cpus_allowed
ee8dde0cd2ce78 kernel/cgroup/cpuset.c Waiman Long 2018-11-08 1998 * cannot be NULL.
ee8dde0cd2ce78 kernel/cgroup/cpuset.c Waiman Long 2018-11-08 1999 */
ee8dde0cd2ce78 kernel/cgroup/cpuset.c Waiman Long 2018-11-08 2000 if (cpumask_empty(cs->cpus_allowed))
ee8dde0cd2ce78 kernel/cgroup/cpuset.c Waiman Long 2018-11-08 2001 goto out;
ee8dde0cd2ce78 kernel/cgroup/cpuset.c Waiman Long 2018-11-08 2002
ee8dde0cd2ce78 kernel/cgroup/cpuset.c Waiman Long 2018-11-08 2003 err = update_flag(CS_CPU_EXCLUSIVE, cs, 1);
ee8dde0cd2ce78 kernel/cgroup/cpuset.c Waiman Long 2018-11-08 2004 if (err)
ee8dde0cd2ce78 kernel/cgroup/cpuset.c Waiman Long 2018-11-08 2005 goto out;
ee8dde0cd2ce78 kernel/cgroup/cpuset.c Waiman Long 2018-11-08 2006
ee8dde0cd2ce78 kernel/cgroup/cpuset.c Waiman Long 2018-11-08 2007 err = update_parent_subparts_cpumask(cs, partcmd_enable,
0f3adb8a1e5f36 kernel/cgroup/cpuset.c Waiman Long 2021-07-20 2008 NULL, &tmpmask);
ee8dde0cd2ce78 kernel/cgroup/cpuset.c Waiman Long 2018-11-08 2009 if (err) {
ee8dde0cd2ce78 kernel/cgroup/cpuset.c Waiman Long 2018-11-08 2010 update_flag(CS_CPU_EXCLUSIVE, cs, 0);
ee8dde0cd2ce78 kernel/cgroup/cpuset.c Waiman Long 2018-11-08 2011 goto out;
ee8dde0cd2ce78 kernel/cgroup/cpuset.c Waiman Long 2018-11-08 2012 }
ee8dde0cd2ce78 kernel/cgroup/cpuset.c Waiman Long 2018-11-08 2013 } else {
3881b86128d0be kernel/cgroup/cpuset.c Waiman Long 2018-11-08 2014 /*
56ec7dd271c77e kernel/cgroup/cpuset.c Waiman Long 2021-08-14 2015 * Switch back to member is always allowed even if it
56ec7dd271c77e kernel/cgroup/cpuset.c Waiman Long 2021-08-14 2016 * causes child partitions to become invalid.
3881b86128d0be kernel/cgroup/cpuset.c Waiman Long 2018-11-08 2017 */
3881b86128d0be kernel/cgroup/cpuset.c Waiman Long 2018-11-08 2018 err = 0;
56ec7dd271c77e kernel/cgroup/cpuset.c Waiman Long 2021-08-14 2019 update_parent_subparts_cpumask(cs, partcmd_disable, NULL,
56ec7dd271c77e kernel/cgroup/cpuset.c Waiman Long 2021-08-14 2020 &tmpmask);
56ec7dd271c77e kernel/cgroup/cpuset.c Waiman Long 2021-08-14 2021 /*
56ec7dd271c77e kernel/cgroup/cpuset.c Waiman Long 2021-08-14 2022 * If there are child partitions, we have to make them invalid.
56ec7dd271c77e kernel/cgroup/cpuset.c Waiman Long 2021-08-14 2023 */
56ec7dd271c77e kernel/cgroup/cpuset.c Waiman Long 2021-08-14 2024 if (unlikely(cs->nr_subparts_cpus)) {
56ec7dd271c77e kernel/cgroup/cpuset.c Waiman Long 2021-08-14 2025 struct tmpmasks tmp;
3881b86128d0be kernel/cgroup/cpuset.c Waiman Long 2018-11-08 2026
56ec7dd271c77e kernel/cgroup/cpuset.c Waiman Long 2021-08-14 2027 spin_lock_irq(&callback_lock);
56ec7dd271c77e kernel/cgroup/cpuset.c Waiman Long 2021-08-14 2028 cs->nr_subparts_cpus = 0;
56ec7dd271c77e kernel/cgroup/cpuset.c Waiman Long 2021-08-14 2029 cpumask_clear(cs->subparts_cpus);
56ec7dd271c77e kernel/cgroup/cpuset.c Waiman Long 2021-08-14 2030 compute_effective_cpumask(cs->effective_cpus, cs, parent);
56ec7dd271c77e kernel/cgroup/cpuset.c Waiman Long 2021-08-14 2031 spin_unlock_irq(&callback_lock);
56ec7dd271c77e kernel/cgroup/cpuset.c Waiman Long 2021-08-14 2032
56ec7dd271c77e kernel/cgroup/cpuset.c Waiman Long 2021-08-14 2033 /*
56ec7dd271c77e kernel/cgroup/cpuset.c Waiman Long 2021-08-14 2034 * If alloc_cpumasks() fails, we are running out
56ec7dd271c77e kernel/cgroup/cpuset.c Waiman Long 2021-08-14 2035 * of memory and there isn't much we can do.
56ec7dd271c77e kernel/cgroup/cpuset.c Waiman Long 2021-08-14 2036 */
56ec7dd271c77e kernel/cgroup/cpuset.c Waiman Long 2021-08-14 2037 if (!alloc_cpumasks(NULL, &tmp)) {
56ec7dd271c77e kernel/cgroup/cpuset.c Waiman Long 2021-08-14 2038 update_cpumasks_hier(cs, &tmp);
56ec7dd271c77e kernel/cgroup/cpuset.c Waiman Long 2021-08-14 2039 free_cpumasks(NULL, &tmp);
56ec7dd271c77e kernel/cgroup/cpuset.c Waiman Long 2021-08-14 2040 }
56ec7dd271c77e kernel/cgroup/cpuset.c Waiman Long 2021-08-14 2041 }
ee8dde0cd2ce78 kernel/cgroup/cpuset.c Waiman Long 2018-11-08 2042
ee8dde0cd2ce78 kernel/cgroup/cpuset.c Waiman Long 2018-11-08 2043 /* Turning off CS_CPU_EXCLUSIVE will not return error */
ee8dde0cd2ce78 kernel/cgroup/cpuset.c Waiman Long 2018-11-08 2044 update_flag(CS_CPU_EXCLUSIVE, cs, 0);
ee8dde0cd2ce78 kernel/cgroup/cpuset.c Waiman Long 2018-11-08 2045 }
ee8dde0cd2ce78 kernel/cgroup/cpuset.c Waiman Long 2018-11-08 2046
ee8dde0cd2ce78 kernel/cgroup/cpuset.c Waiman Long 2018-11-08 2047 /*
ee8dde0cd2ce78 kernel/cgroup/cpuset.c Waiman Long 2018-11-08 2048 * Update cpumask of parent's tasks except when it is the top
ee8dde0cd2ce78 kernel/cgroup/cpuset.c Waiman Long 2018-11-08 2049 * cpuset as some system daemons cannot be mapped to other CPUs.
ee8dde0cd2ce78 kernel/cgroup/cpuset.c Waiman Long 2018-11-08 2050 */
ee8dde0cd2ce78 kernel/cgroup/cpuset.c Waiman Long 2018-11-08 2051 if (parent != &top_cpuset)
ee8dde0cd2ce78 kernel/cgroup/cpuset.c Waiman Long 2018-11-08 2052 update_tasks_cpumask(parent);
ee8dde0cd2ce78 kernel/cgroup/cpuset.c Waiman Long 2018-11-08 2053
4716909cc5c566 kernel/cgroup/cpuset.c Waiman Long 2018-11-08 2054 if (parent->child_ecpus_count)
0f3adb8a1e5f36 kernel/cgroup/cpuset.c Waiman Long 2021-07-20 2055 update_sibling_cpumasks(parent, cs, &tmpmask);
4716909cc5c566 kernel/cgroup/cpuset.c Waiman Long 2018-11-08 2056
ee8dde0cd2ce78 kernel/cgroup/cpuset.c Waiman Long 2018-11-08 2057 rebuild_sched_domains_locked();
ee8dde0cd2ce78 kernel/cgroup/cpuset.c Waiman Long 2018-11-08 2058 out:
6ba34d3c73674e kernel/cgroup/cpuset.c Waiman Long 2021-07-20 2059 if (!err) {
6ba34d3c73674e kernel/cgroup/cpuset.c Waiman Long 2021-07-20 2060 spin_lock_irq(&callback_lock);
6ba34d3c73674e kernel/cgroup/cpuset.c Waiman Long 2021-07-20 2061 cs->partition_root_state = new_prs;
6ba34d3c73674e kernel/cgroup/cpuset.c Waiman Long 2021-07-20 2062 spin_unlock_irq(&callback_lock);
e7cc9888dc5792 kernel/cgroup/cpuset.c Waiman Long 2021-08-10 2063 notify_partition_change(cs, old_prs, new_prs);
6ba34d3c73674e kernel/cgroup/cpuset.c Waiman Long 2021-07-20 2064 }
6ba34d3c73674e kernel/cgroup/cpuset.c Waiman Long 2021-07-20 2065
0f3adb8a1e5f36 kernel/cgroup/cpuset.c Waiman Long 2021-07-20 2066 free_cpumasks(NULL, &tmpmask);
645fcc9d2f6946 kernel/cpuset.c Li Zefan 2009-01-07 2067 return err;
^1da177e4c3f41 kernel/cpuset.c Linus Torvalds 2005-04-16 @2068 }
^1da177e4c3f41 kernel/cpuset.c Linus Torvalds 2005-04-16 2069
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 1 month
arch/arm64/kvm/va_layout.c:292:6: warning: no previous prototype for function 'kvm_compute_final_ctr_el0'
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: ba31f97d43be41ca99ab72a6131d7c226306865f
commit: 755db23420a1ce4b740186543432983e9bbe713e KVM: arm64: Generate final CTR_EL0 value when running in Protected mode
date: 5 months ago
config: arm64-randconfig-r024-20210814 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 1f7b25ea76a925aca690da28de9d78db7ca99d0c)
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
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit...
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 755db23420a1ce4b740186543432983e9bbe713e
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm64
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 >>):
arch/arm64/kvm/va_layout.c:188:6: warning: no previous prototype for function 'kvm_patch_vector_branch' [-Wmissing-prototypes]
void kvm_patch_vector_branch(struct alt_instr *alt,
^
arch/arm64/kvm/va_layout.c:188:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void kvm_patch_vector_branch(struct alt_instr *alt,
^
static
arch/arm64/kvm/va_layout.c:286:6: warning: no previous prototype for function 'kvm_get_kimage_voffset' [-Wmissing-prototypes]
void kvm_get_kimage_voffset(struct alt_instr *alt,
^
arch/arm64/kvm/va_layout.c:286:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void kvm_get_kimage_voffset(struct alt_instr *alt,
^
static
>> arch/arm64/kvm/va_layout.c:292:6: warning: no previous prototype for function 'kvm_compute_final_ctr_el0' [-Wmissing-prototypes]
void kvm_compute_final_ctr_el0(struct alt_instr *alt,
^
arch/arm64/kvm/va_layout.c:292:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void kvm_compute_final_ctr_el0(struct alt_instr *alt,
^
static
3 warnings generated.
vim +/kvm_compute_final_ctr_el0 +292 arch/arm64/kvm/va_layout.c
291
> 292 void kvm_compute_final_ctr_el0(struct alt_instr *alt,
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 1 month
kernel/sys_ni.c:270:1: warning: no previous prototype for function '__arm64_sys_landlock_create_ruleset'
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: ba31f97d43be41ca99ab72a6131d7c226306865f
commit: 265885daf3e5082eb9f6e2a23bdbf9ba4456a21b landlock: Add syscall implementations
date: 4 months ago
config: arm64-randconfig-r011-20210814 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 1f7b25ea76a925aca690da28de9d78db7ca99d0c)
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
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit...
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 265885daf3e5082eb9f6e2a23bdbf9ba4456a21b
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm64
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 >>):
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
<scratch space>:21:1: note: expanded from here
__arm64_sys_shutdown
^
kernel/sys_ni.c:250:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
arch/arm64/include/asm/syscall_wrapper.h:76:13: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
kernel/sys_ni.c:251:1: warning: no previous prototype for function '__arm64_sys_recvfrom' [-Wmissing-prototypes]
COND_SYSCALL(recvfrom);
^
arch/arm64/include/asm/syscall_wrapper.h:76:25: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
<scratch space>:22:1: note: expanded from here
__arm64_sys_recvfrom
^
kernel/sys_ni.c:251:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
arch/arm64/include/asm/syscall_wrapper.h:76:13: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
kernel/sys_ni.c:253:1: warning: no previous prototype for function '__arm64_sys_sendmsg' [-Wmissing-prototypes]
COND_SYSCALL(sendmsg);
^
arch/arm64/include/asm/syscall_wrapper.h:76:25: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
<scratch space>:27:1: note: expanded from here
__arm64_sys_sendmsg
^
kernel/sys_ni.c:253:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
arch/arm64/include/asm/syscall_wrapper.h:76:13: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
kernel/sys_ni.c:255:1: warning: no previous prototype for function '__arm64_sys_recvmsg' [-Wmissing-prototypes]
COND_SYSCALL(recvmsg);
^
arch/arm64/include/asm/syscall_wrapper.h:76:25: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
<scratch space>:32:1: note: expanded from here
__arm64_sys_recvmsg
^
kernel/sys_ni.c:255:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
arch/arm64/include/asm/syscall_wrapper.h:76:13: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
kernel/sys_ni.c:261:1: warning: no previous prototype for function '__arm64_sys_mremap' [-Wmissing-prototypes]
COND_SYSCALL(mremap);
^
arch/arm64/include/asm/syscall_wrapper.h:76:25: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
<scratch space>:37:1: note: expanded from here
__arm64_sys_mremap
^
kernel/sys_ni.c:261:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
arch/arm64/include/asm/syscall_wrapper.h:76:13: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
kernel/sys_ni.c:264:1: warning: no previous prototype for function '__arm64_sys_add_key' [-Wmissing-prototypes]
COND_SYSCALL(add_key);
^
arch/arm64/include/asm/syscall_wrapper.h:76:25: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
<scratch space>:38:1: note: expanded from here
__arm64_sys_add_key
^
kernel/sys_ni.c:264:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
arch/arm64/include/asm/syscall_wrapper.h:76:13: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
kernel/sys_ni.c:265:1: warning: no previous prototype for function '__arm64_sys_request_key' [-Wmissing-prototypes]
COND_SYSCALL(request_key);
^
arch/arm64/include/asm/syscall_wrapper.h:76:25: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
<scratch space>:39:1: note: expanded from here
__arm64_sys_request_key
^
kernel/sys_ni.c:265:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
arch/arm64/include/asm/syscall_wrapper.h:76:13: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
kernel/sys_ni.c:266:1: warning: no previous prototype for function '__arm64_sys_keyctl' [-Wmissing-prototypes]
COND_SYSCALL(keyctl);
^
arch/arm64/include/asm/syscall_wrapper.h:76:25: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
<scratch space>:40:1: note: expanded from here
__arm64_sys_keyctl
^
kernel/sys_ni.c:266:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
arch/arm64/include/asm/syscall_wrapper.h:76:13: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
>> kernel/sys_ni.c:270:1: warning: no previous prototype for function '__arm64_sys_landlock_create_ruleset' [-Wmissing-prototypes]
COND_SYSCALL(landlock_create_ruleset);
^
arch/arm64/include/asm/syscall_wrapper.h:76:25: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
<scratch space>:45:1: note: expanded from here
__arm64_sys_landlock_create_ruleset
^
kernel/sys_ni.c:270:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
arch/arm64/include/asm/syscall_wrapper.h:76:13: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
>> kernel/sys_ni.c:271:1: warning: no previous prototype for function '__arm64_sys_landlock_add_rule' [-Wmissing-prototypes]
COND_SYSCALL(landlock_add_rule);
^
arch/arm64/include/asm/syscall_wrapper.h:76:25: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
<scratch space>:46:1: note: expanded from here
__arm64_sys_landlock_add_rule
^
kernel/sys_ni.c:271:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
arch/arm64/include/asm/syscall_wrapper.h:76:13: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
>> kernel/sys_ni.c:272:1: warning: no previous prototype for function '__arm64_sys_landlock_restrict_self' [-Wmissing-prototypes]
COND_SYSCALL(landlock_restrict_self);
^
arch/arm64/include/asm/syscall_wrapper.h:76:25: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
<scratch space>:47:1: note: expanded from here
__arm64_sys_landlock_restrict_self
^
kernel/sys_ni.c:272:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
arch/arm64/include/asm/syscall_wrapper.h:76:13: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
kernel/sys_ni.c:277:1: warning: no previous prototype for function '__arm64_sys_fadvise64_64' [-Wmissing-prototypes]
COND_SYSCALL(fadvise64_64);
^
arch/arm64/include/asm/syscall_wrapper.h:76:25: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
<scratch space>:48:1: note: expanded from here
__arm64_sys_fadvise64_64
^
kernel/sys_ni.c:277:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
arch/arm64/include/asm/syscall_wrapper.h:76:13: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
kernel/sys_ni.c:280:1: warning: no previous prototype for function '__arm64_sys_swapon' [-Wmissing-prototypes]
COND_SYSCALL(swapon);
^
arch/arm64/include/asm/syscall_wrapper.h:76:25: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
<scratch space>:49:1: note: expanded from here
__arm64_sys_swapon
^
kernel/sys_ni.c:280:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
arch/arm64/include/asm/syscall_wrapper.h:76:13: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
kernel/sys_ni.c:281:1: warning: no previous prototype for function '__arm64_sys_swapoff' [-Wmissing-prototypes]
COND_SYSCALL(swapoff);
^
arch/arm64/include/asm/syscall_wrapper.h:76:25: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
<scratch space>:50:1: note: expanded from here
__arm64_sys_swapoff
^
kernel/sys_ni.c:281:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
arch/arm64/include/asm/syscall_wrapper.h:76:13: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
kernel/sys_ni.c:282:1: warning: no previous prototype for function '__arm64_sys_mprotect' [-Wmissing-prototypes]
COND_SYSCALL(mprotect);
^
arch/arm64/include/asm/syscall_wrapper.h:76:25: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
<scratch space>:51:1: note: expanded from here
__arm64_sys_mprotect
^
kernel/sys_ni.c:282:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
arch/arm64/include/asm/syscall_wrapper.h:76:13: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
kernel/sys_ni.c:283:1: warning: no previous prototype for function '__arm64_sys_msync' [-Wmissing-prototypes]
COND_SYSCALL(msync);
^
arch/arm64/include/asm/syscall_wrapper.h:76:25: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
<scratch space>:52:1: note: expanded from here
__arm64_sys_msync
^
kernel/sys_ni.c:283:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
arch/arm64/include/asm/syscall_wrapper.h:76:13: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
kernel/sys_ni.c:284:1: warning: no previous prototype for function '__arm64_sys_mlock' [-Wmissing-prototypes]
COND_SYSCALL(mlock);
^
arch/arm64/include/asm/syscall_wrapper.h:76:25: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
<scratch space>:53:1: note: expanded from here
__arm64_sys_mlock
^
kernel/sys_ni.c:284:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
arch/arm64/include/asm/syscall_wrapper.h:76:13: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
kernel/sys_ni.c:285:1: warning: no previous prototype for function '__arm64_sys_munlock' [-Wmissing-prototypes]
COND_SYSCALL(munlock);
^
arch/arm64/include/asm/syscall_wrapper.h:76:25: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
<scratch space>:54:1: note: expanded from here
__arm64_sys_munlock
^
kernel/sys_ni.c:285:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
vim +/__arm64_sys_landlock_create_ruleset +270 kernel/sys_ni.c
262
263 /* security/keys/keyctl.c */
264 COND_SYSCALL(add_key);
265 COND_SYSCALL(request_key);
> 266 COND_SYSCALL(keyctl);
267 COND_SYSCALL_COMPAT(keyctl);
268
269 /* security/landlock/syscalls.c */
> 270 COND_SYSCALL(landlock_create_ruleset);
> 271 COND_SYSCALL(landlock_add_rule);
> 272 COND_SYSCALL(landlock_restrict_self);
273
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 1 month
Re: [PATCH 2/3] cifs: move calc_lanman_hash to smb1ops.c
by kernel test robot
Hi Ronnie,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on cifs/for-next]
[also build test ERROR on v5.14-rc5 next-20210813]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Ronnie-Sahlberg/cifs-only-compil...
base: git://git.samba.org/sfrench/cifs-2.6.git for-next
config: sh-allmodconfig (attached as .config)
compiler: sh4-linux-gcc (GCC) 11.2.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
# https://github.com/0day-ci/linux/commit/2a89ec2d759f8c3c9035498c5ef1bf66a...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Ronnie-Sahlberg/cifs-only-compile-in-smb1ops-c-if-we-configure-CIFS_ALLOW_INSECURE_LEGACY/20210814-045731
git checkout 2a89ec2d759f8c3c9035498c5ef1bf66a8f8b07b
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross ARCH=sh
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 >>):
fs/cifs/smb1ops.c: In function 'calc_lanman_hash':
>> fs/cifs/smb1ops.c:51:40: error: implicit declaration of function 'toupper'; did you mean 'UniToupper'? [-Werror=implicit-function-declaration]
51 | password_with_pad[i] = toupper(password_with_pad[i]);
| ^~~~~~~
| UniToupper
cc1: some warnings being treated as errors
Kconfig warnings: (for reference only)
WARNING: unmet direct dependencies detected for SND_ATMEL_SOC_PDC
Depends on SOUND && !UML && SND && SND_SOC && SND_ATMEL_SOC && HAS_DMA
Selected by
- SND_ATMEL_SOC_SSC && SOUND && !UML && SND && SND_SOC && SND_ATMEL_SOC
- SND_ATMEL_SOC_SSC_PDC && SOUND && !UML && SND && SND_SOC && SND_ATMEL_SOC && ATMEL_SSC
vim +51 fs/cifs/smb1ops.c
16
17 #ifdef CONFIG_CIFS_WEAK_PW_HASH
18 int calc_lanman_hash(const char *password, const char *cryptkey, bool encrypt,
19 char *lnm_session_key)
20 {
21 int i, len;
22 int rc;
23 char password_with_pad[CIFS_ENCPWD_SIZE] = {0};
24
25 if (password) {
26 for (len = 0; len < CIFS_ENCPWD_SIZE; len++)
27 if (!password[len])
28 break;
29
30 memcpy(password_with_pad, password, len);
31 }
32
33 if (!encrypt && global_secflags & CIFSSEC_MAY_PLNTXT) {
34 memcpy(lnm_session_key, password_with_pad,
35 CIFS_ENCPWD_SIZE);
36 return 0;
37 }
38
39 /* calculate old style session key */
40 /* calling toupper is less broken than repeatedly
41 calling nls_toupper would be since that will never
42 work for UTF8, but neither handles multibyte code pages
43 but the only alternative would be converting to UCS-16 (Unicode)
44 (using a routine something like UniStrupr) then
45 uppercasing and then converting back from Unicode - which
46 would only worth doing it if we knew it were utf8. Basically
47 utf8 and other multibyte codepages each need their own strupper
48 function since a byte at a time will ont work. */
49
50 for (i = 0; i < CIFS_ENCPWD_SIZE; i++)
> 51 password_with_pad[i] = toupper(password_with_pad[i]);
52
53 rc = SMBencrypt(password_with_pad, cryptkey, lnm_session_key);
54
55 return rc;
56 }
57 #endif /* CIFS_WEAK_PW_HASH */
58
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 1 month
[xlnx:xlnx_rebase_v5.10 1756/1761] drivers/media/i2c/ap1302.c:1676:6: warning: variable 'ret' is used uninitialized whenever 'if' condition is true
by kernel test robot
tree: https://github.com/Xilinx/linux-xlnx xlnx_rebase_v5.10
head: e14d4574ca81a569ee6d07e03271f2ae2dad38e4
commit: f6f032f82f0a13def702a0154df535db88f43391 [1756/1761] media: i2c: ap1302: Add a flag to check the streaming status
config: s390-randconfig-r012-20210812 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 767496d19cb9a1fbba57ff08095faa161998ee36)
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-s390x-linux-gnu
# https://github.com/Xilinx/linux-xlnx/commit/f6f032f82f0a13def702a0154df53...
git remote add xlnx https://github.com/Xilinx/linux-xlnx
git fetch --no-tags xlnx xlnx_rebase_v5.10
git checkout f6f032f82f0a13def702a0154df535db88f43391
# 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 warnings (new ones prefixed by >>):
include/asm-generic/io.h:490:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
val = __le32_to_cpu((__le32 __force)__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 drivers/media/i2c/ap1302.c:15:
In file included from include/linux/gpio.h:62:
In file included from include/asm-generic/gpio.h:11:
In file included from include/linux/gpio/driver.h:7:
In file included from include/linux/irq.h:20:
In file included from include/linux/io.h:13:
In file included from arch/s390/include/asm/io.h:80:
include/asm-generic/io.h:490:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
val = __le32_to_cpu((__le32 __force)__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 drivers/media/i2c/ap1302.c:15:
In file included from include/linux/gpio.h:62:
In file included from include/asm-generic/gpio.h:11:
In file included from include/linux/gpio/driver.h:7:
In file included from include/linux/irq.h:20:
In file included from include/linux/io.h:13:
In file included from arch/s390/include/asm/io.h:80:
include/asm-generic/io.h:490:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
val = __le32_to_cpu((__le32 __force)__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 drivers/media/i2c/ap1302.c:15:
In file included from include/linux/gpio.h:62:
In file included from include/asm-generic/gpio.h:11:
In file included from include/linux/gpio/driver.h:7:
In file included from include/linux/irq.h:20:
In file included from include/linux/io.h:13:
In file included from arch/s390/include/asm/io.h:80:
include/asm-generic/io.h:490:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
val = __le32_to_cpu((__le32 __force)__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 drivers/media/i2c/ap1302.c:15:
In file included from include/linux/gpio.h:62:
In file included from include/asm-generic/gpio.h:11:
In file included from include/linux/gpio/driver.h:7:
In file included from include/linux/irq.h:20:
In file included from include/linux/io.h:13:
In file included from arch/s390/include/asm/io.h:80:
include/asm-generic/io.h:501: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:511:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
__raw_writew((u16 __force)cpu_to_le16(value), PCI_IOBASE + addr);
~~~~~~~~~~ ^
include/asm-generic/io.h:521:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
__raw_writel((u32 __force)cpu_to_le32(value), PCI_IOBASE + addr);
~~~~~~~~~~ ^
include/asm-generic/io.h:609: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:617: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:625: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:634: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:643: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:652:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
writesl(PCI_IOBASE + addr, buffer, count);
~~~~~~~~~~ ^
>> drivers/media/i2c/ap1302.c:1676:6: warning: variable 'ret' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
if (enable == ap1302->streaming)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/i2c/ap1302.c:1692:6: note: uninitialized use occurs here
if (ret < 0)
^~~
drivers/media/i2c/ap1302.c:1676:2: note: remove the 'if' if its condition is always false
if (enable == ap1302->streaming)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/i2c/ap1302.c:1672:9: note: initialize the variable 'ret' to silence this warning
int ret;
^
= 0
21 warnings generated.
vim +1676 drivers/media/i2c/ap1302.c
1668
1669 static int ap1302_s_stream(struct v4l2_subdev *sd, int enable)
1670 {
1671 struct ap1302_device *ap1302 = to_ap1302(sd);
1672 int ret;
1673
1674 mutex_lock(&ap1302->lock);
1675
> 1676 if (enable == ap1302->streaming)
1677 goto done;
1678
1679 if (enable) {
1680 ret = ap1302_configure(ap1302);
1681 if (ret < 0)
1682 goto done;
1683
1684 ret = ap1302_stall(ap1302, false);
1685 } else {
1686 ret = ap1302_stall(ap1302, true);
1687 }
1688
1689 done:
1690 mutex_unlock(&ap1302->lock);
1691
1692 if (ret < 0)
1693 dev_err(ap1302->dev, "Failed to %s stream: %d\n",
1694 enable ? "start" : "stop", ret);
1695
1696 return ret;
1697 }
1698
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 1 month
[xlnx:xlnx_rebase_v5.10 1686/1761] drivers/regulator/da9121-regulator.c:1001:34: warning: unused variable 'da9121_dt_ids'
by kernel test robot
tree: https://github.com/Xilinx/linux-xlnx xlnx_rebase_v5.10
head: e14d4574ca81a569ee6d07e03271f2ae2dad38e4
commit: 4302b1e69c7e8d751f04a08592c5e2bfa7b12d4f [1686/1761] regulator: da9121: Sync with mainline version
config: s390-randconfig-r012-20210812 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 767496d19cb9a1fbba57ff08095faa161998ee36)
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-s390x-linux-gnu
# https://github.com/Xilinx/linux-xlnx/commit/4302b1e69c7e8d751f04a08592c5e...
git remote add xlnx https://github.com/Xilinx/linux-xlnx
git fetch --no-tags xlnx xlnx_rebase_v5.10
git checkout 4302b1e69c7e8d751f04a08592c5e2bfa7b12d4f
# 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 warnings (new ones prefixed by >>):
In file included from include/linux/gpio/driver.h:7:
In file included from include/linux/irq.h:20:
In file included from include/linux/io.h:13:
In file included from arch/s390/include/asm/io.h:80:
include/asm-generic/io.h:490:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
val = __le32_to_cpu((__le32 __force)__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 drivers/regulator/da9121-regulator.c:17:
In file included from include/linux/of_gpio.h:14:
In file included from include/linux/gpio/driver.h:7:
In file included from include/linux/irq.h:20:
In file included from include/linux/io.h:13:
In file included from arch/s390/include/asm/io.h:80:
include/asm-generic/io.h:490:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
val = __le32_to_cpu((__le32 __force)__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 drivers/regulator/da9121-regulator.c:17:
In file included from include/linux/of_gpio.h:14:
In file included from include/linux/gpio/driver.h:7:
In file included from include/linux/irq.h:20:
In file included from include/linux/io.h:13:
In file included from arch/s390/include/asm/io.h:80:
include/asm-generic/io.h:490:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
val = __le32_to_cpu((__le32 __force)__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 drivers/regulator/da9121-regulator.c:17:
In file included from include/linux/of_gpio.h:14:
In file included from include/linux/gpio/driver.h:7:
In file included from include/linux/irq.h:20:
In file included from include/linux/io.h:13:
In file included from arch/s390/include/asm/io.h:80:
include/asm-generic/io.h:490:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
val = __le32_to_cpu((__le32 __force)__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 drivers/regulator/da9121-regulator.c:17:
In file included from include/linux/of_gpio.h:14:
In file included from include/linux/gpio/driver.h:7:
In file included from include/linux/irq.h:20:
In file included from include/linux/io.h:13:
In file included from arch/s390/include/asm/io.h:80:
include/asm-generic/io.h:501: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:511:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
__raw_writew((u16 __force)cpu_to_le16(value), PCI_IOBASE + addr);
~~~~~~~~~~ ^
include/asm-generic/io.h:521:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
__raw_writel((u32 __force)cpu_to_le32(value), PCI_IOBASE + addr);
~~~~~~~~~~ ^
include/asm-generic/io.h:609: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:617: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:625: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:634: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:643: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:652:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
writesl(PCI_IOBASE + addr, buffer, count);
~~~~~~~~~~ ^
>> drivers/regulator/da9121-regulator.c:1001:34: warning: unused variable 'da9121_dt_ids' [-Wunused-const-variable]
static const struct of_device_id da9121_dt_ids[] = {
^
21 warnings generated.
vim +/da9121_dt_ids +1001 drivers/regulator/da9121-regulator.c
4c466d2eb34056 Raviteja Narayanam 2020-11-09 1000
4c466d2eb34056 Raviteja Narayanam 2020-11-09 @1001 static const struct of_device_id da9121_dt_ids[] = {
4302b1e69c7e8d Raviteja Narayanam 2021-05-10 1002 { .compatible = "dlg,da9121", .data = (void *) DA9121_SUBTYPE_DA9121 },
4302b1e69c7e8d Raviteja Narayanam 2021-05-10 1003 { .compatible = "dlg,da9130", .data = (void *) DA9121_SUBTYPE_DA9130 },
4302b1e69c7e8d Raviteja Narayanam 2021-05-10 1004 { .compatible = "dlg,da9217", .data = (void *) DA9121_SUBTYPE_DA9217 },
4302b1e69c7e8d Raviteja Narayanam 2021-05-10 1005 { .compatible = "dlg,da9122", .data = (void *) DA9121_SUBTYPE_DA9122 },
4302b1e69c7e8d Raviteja Narayanam 2021-05-10 1006 { .compatible = "dlg,da9131", .data = (void *) DA9121_SUBTYPE_DA9131 },
4302b1e69c7e8d Raviteja Narayanam 2021-05-10 1007 { .compatible = "dlg,da9220", .data = (void *) DA9121_SUBTYPE_DA9220 },
4302b1e69c7e8d Raviteja Narayanam 2021-05-10 1008 { .compatible = "dlg,da9132", .data = (void *) DA9121_SUBTYPE_DA9132 },
4c466d2eb34056 Raviteja Narayanam 2020-11-09 1009 { }
4c466d2eb34056 Raviteja Narayanam 2020-11-09 1010 };
4c466d2eb34056 Raviteja Narayanam 2020-11-09 1011 MODULE_DEVICE_TABLE(of, da9121_dt_ids);
4c466d2eb34056 Raviteja Narayanam 2020-11-09 1012
:::::: The code at line 1001 was first introduced by commit
:::::: 4c466d2eb340560878447bfc19c68310c1a5f292 drivers: regulator: Add driver for DA9121 family of devices
:::::: TO: Raviteja Narayanam <raviteja.narayanam(a)xilinx.com>
:::::: CC: Michal Simek <michal.simek(a)xilinx.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 1 month