Re: [PATCH v1 13/14] mm: multigenerational lru: Kconfig
by kernel test robot
Hi Yu,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on tip/x86/core]
[also build test ERROR on tip/x86/mm tip/sched/core linus/master v5.12-rc2]
[cannot apply to cgroup/for-next tip/perf/core hnaz-linux-mm/master next-20210312]
[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/Yu-Zhao/Multigenerational-LRU/20...
base: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git d0962f2b24c99889a386f0658c71535f56358f77
config: mips-randconfig-r036-20210313 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project dfd27ebbd0eb137c9a439b7c537bb87ba903efd3)
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 mips cross compiling tool for clang build
# apt-get install binutils-mips-linux-gnu
# https://github.com/0day-ci/linux/commit/7a8b80d7f0d02852d49395fc6e0357438...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Yu-Zhao/Multigenerational-LRU/20210313-160036
git checkout 7a8b80d7f0d02852d49395fc6e035743816f6b1d
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=mips
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/vmscan.c:4776:56: error: implicit declaration of function 'pmd_young' [-Werror,-Wimplicit-function-declaration]
if (IS_ENABLED(CONFIG_HAVE_ARCH_PARENT_PMD_YOUNG) && !pmd_young(pmd))
^
mm/vmscan.c:4776:56: note: did you mean 'pte_young'?
arch/mips/include/asm/pgtable.h:365:19: note: 'pte_young' declared here
static inline int pte_young(pte_t pte) { return pte_val(pte) & _PAGE_ACCESSED; }
^
>> mm/vmscan.c:4851:23: error: implicit declaration of function 'pmd_pfn' [-Werror,-Wimplicit-function-declaration]
unsigned long pfn = pmd_pfn(*pmd);
^
mm/vmscan.c:4851:23: note: did you mean 'pmd_off'?
include/linux/pgtable.h:131:22: note: 'pmd_off' declared here
static inline pmd_t *pmd_off(struct mm_struct *mm, unsigned long va)
^
mm/vmscan.c:4853:30: error: implicit declaration of function 'pmd_young' [-Werror,-Wimplicit-function-declaration]
if (!pmd_present(*pmd) || !pmd_young(*pmd) || is_huge_zero_pmd(*pmd))
^
>> mm/vmscan.c:4882:7: error: implicit declaration of function 'pmd_dirty' [-Werror,-Wimplicit-function-declaration]
if (pmd_dirty(*pmd) && !PageDirty(page) &&
^
mm/vmscan.c:4882:7: note: did you mean 'pte_dirty'?
arch/mips/include/asm/pgtable.h:364:19: note: 'pte_dirty' declared here
static inline int pte_dirty(pte_t pte) { return pte_val(pte) & _PAGE_MODIFIED; }
^
4 errors generated.
vim +/pmd_young +4776 mm/vmscan.c
4c59e20072808a Yu Zhao 2021-03-13 4759
4c59e20072808a Yu Zhao 2021-03-13 4760 static int walk_pte_range(pmd_t *pmdp, unsigned long start, unsigned long end,
4c59e20072808a Yu Zhao 2021-03-13 4761 struct mm_walk *walk)
4c59e20072808a Yu Zhao 2021-03-13 4762 {
4c59e20072808a Yu Zhao 2021-03-13 4763 pmd_t pmd;
4c59e20072808a Yu Zhao 2021-03-13 4764 pte_t *pte;
4c59e20072808a Yu Zhao 2021-03-13 4765 spinlock_t *ptl;
4c59e20072808a Yu Zhao 2021-03-13 4766 struct mm_walk_args *args = walk->private;
4c59e20072808a Yu Zhao 2021-03-13 4767 int old_gen, new_gen = lru_gen_from_seq(args->max_seq);
4c59e20072808a Yu Zhao 2021-03-13 4768
4c59e20072808a Yu Zhao 2021-03-13 4769 pmd = pmd_read_atomic(pmdp);
4c59e20072808a Yu Zhao 2021-03-13 4770 barrier();
4c59e20072808a Yu Zhao 2021-03-13 4771 if (!pmd_present(pmd) || pmd_trans_huge(pmd))
4c59e20072808a Yu Zhao 2021-03-13 4772 return 0;
4c59e20072808a Yu Zhao 2021-03-13 4773
4c59e20072808a Yu Zhao 2021-03-13 4774 VM_BUG_ON(pmd_huge(pmd) || pmd_devmap(pmd) || is_hugepd(__hugepd(pmd_val(pmd))));
4c59e20072808a Yu Zhao 2021-03-13 4775
4c59e20072808a Yu Zhao 2021-03-13 @4776 if (IS_ENABLED(CONFIG_HAVE_ARCH_PARENT_PMD_YOUNG) && !pmd_young(pmd))
4c59e20072808a Yu Zhao 2021-03-13 4777 return 0;
4c59e20072808a Yu Zhao 2021-03-13 4778
4c59e20072808a Yu Zhao 2021-03-13 4779 pte = pte_offset_map_lock(walk->mm, &pmd, start, &ptl);
4c59e20072808a Yu Zhao 2021-03-13 4780 arch_enter_lazy_mmu_mode();
4c59e20072808a Yu Zhao 2021-03-13 4781
4c59e20072808a Yu Zhao 2021-03-13 4782 for (; start != end; pte++, start += PAGE_SIZE) {
4c59e20072808a Yu Zhao 2021-03-13 4783 struct page *page;
4c59e20072808a Yu Zhao 2021-03-13 4784 unsigned long pfn = pte_pfn(*pte);
4c59e20072808a Yu Zhao 2021-03-13 4785
4c59e20072808a Yu Zhao 2021-03-13 4786 if (!pte_present(*pte) || !pte_young(*pte) || is_zero_pfn(pfn))
4c59e20072808a Yu Zhao 2021-03-13 4787 continue;
4c59e20072808a Yu Zhao 2021-03-13 4788
4c59e20072808a Yu Zhao 2021-03-13 4789 /*
4c59e20072808a Yu Zhao 2021-03-13 4790 * If this pte maps a page from a different node, set the
4c59e20072808a Yu Zhao 2021-03-13 4791 * bitmap to prevent the accessed bit on its parent pmd from
4c59e20072808a Yu Zhao 2021-03-13 4792 * being cleared.
4c59e20072808a Yu Zhao 2021-03-13 4793 */
4c59e20072808a Yu Zhao 2021-03-13 4794 if (pfn < args->start_pfn || pfn >= args->end_pfn) {
4c59e20072808a Yu Zhao 2021-03-13 4795 args->addr_bitmap |= get_addr_mask(start);
4c59e20072808a Yu Zhao 2021-03-13 4796 continue;
4c59e20072808a Yu Zhao 2021-03-13 4797 }
4c59e20072808a Yu Zhao 2021-03-13 4798
4c59e20072808a Yu Zhao 2021-03-13 4799 page = compound_head(pte_page(*pte));
4c59e20072808a Yu Zhao 2021-03-13 4800 if (page_to_nid(page) != args->node_id) {
4c59e20072808a Yu Zhao 2021-03-13 4801 args->addr_bitmap |= get_addr_mask(start);
4c59e20072808a Yu Zhao 2021-03-13 4802 continue;
4c59e20072808a Yu Zhao 2021-03-13 4803 }
4c59e20072808a Yu Zhao 2021-03-13 4804 if (page_memcg_rcu(page) != args->memcg)
4c59e20072808a Yu Zhao 2021-03-13 4805 continue;
4c59e20072808a Yu Zhao 2021-03-13 4806
4c59e20072808a Yu Zhao 2021-03-13 4807 if (ptep_test_and_clear_young(walk->vma, start, pte)) {
4c59e20072808a Yu Zhao 2021-03-13 4808 old_gen = page_update_lru_gen(page, new_gen);
4c59e20072808a Yu Zhao 2021-03-13 4809 if (old_gen >= 0 && old_gen != new_gen) {
4c59e20072808a Yu Zhao 2021-03-13 4810 update_batch_size(page, old_gen, new_gen);
4c59e20072808a Yu Zhao 2021-03-13 4811 args->batch_size++;
4c59e20072808a Yu Zhao 2021-03-13 4812 }
4c59e20072808a Yu Zhao 2021-03-13 4813 }
4c59e20072808a Yu Zhao 2021-03-13 4814
4c59e20072808a Yu Zhao 2021-03-13 4815 if (pte_dirty(*pte) && !PageDirty(page) &&
4c59e20072808a Yu Zhao 2021-03-13 4816 !(PageAnon(page) && PageSwapBacked(page) && !PageSwapCache(page)))
4c59e20072808a Yu Zhao 2021-03-13 4817 set_page_dirty(page);
4c59e20072808a Yu Zhao 2021-03-13 4818 }
4c59e20072808a Yu Zhao 2021-03-13 4819
4c59e20072808a Yu Zhao 2021-03-13 4820 arch_leave_lazy_mmu_mode();
4c59e20072808a Yu Zhao 2021-03-13 4821 pte_unmap_unlock(pte, ptl);
4c59e20072808a Yu Zhao 2021-03-13 4822
4c59e20072808a Yu Zhao 2021-03-13 4823 return 0;
4c59e20072808a Yu Zhao 2021-03-13 4824 }
4c59e20072808a Yu Zhao 2021-03-13 4825
4c59e20072808a Yu Zhao 2021-03-13 4826 static int walk_pmd_range(pud_t *pudp, unsigned long start, unsigned long end,
4c59e20072808a Yu Zhao 2021-03-13 4827 struct mm_walk *walk)
4c59e20072808a Yu Zhao 2021-03-13 4828 {
4c59e20072808a Yu Zhao 2021-03-13 4829 pud_t pud;
4c59e20072808a Yu Zhao 2021-03-13 4830 pmd_t *pmd;
4c59e20072808a Yu Zhao 2021-03-13 4831 spinlock_t *ptl;
4c59e20072808a Yu Zhao 2021-03-13 4832 struct mm_walk_args *args = walk->private;
4c59e20072808a Yu Zhao 2021-03-13 4833 int old_gen, new_gen = lru_gen_from_seq(args->max_seq);
4c59e20072808a Yu Zhao 2021-03-13 4834
4c59e20072808a Yu Zhao 2021-03-13 4835 pud = READ_ONCE(*pudp);
4c59e20072808a Yu Zhao 2021-03-13 4836 if (!pud_present(pud) || WARN_ON_ONCE(pud_trans_huge(pud)))
4c59e20072808a Yu Zhao 2021-03-13 4837 return 0;
4c59e20072808a Yu Zhao 2021-03-13 4838
4c59e20072808a Yu Zhao 2021-03-13 4839 VM_BUG_ON(pud_huge(pud) || pud_devmap(pud) || is_hugepd(__hugepd(pud_val(pud))));
4c59e20072808a Yu Zhao 2021-03-13 4840
4c59e20072808a Yu Zhao 2021-03-13 4841 if (!IS_ENABLED(CONFIG_TRANSPARENT_HUGEPAGE) &&
4c59e20072808a Yu Zhao 2021-03-13 4842 !IS_ENABLED(CONFIG_HAVE_ARCH_PARENT_PMD_YOUNG))
4c59e20072808a Yu Zhao 2021-03-13 4843 goto done;
4c59e20072808a Yu Zhao 2021-03-13 4844
4c59e20072808a Yu Zhao 2021-03-13 4845 pmd = pmd_offset(&pud, start);
4c59e20072808a Yu Zhao 2021-03-13 4846 ptl = pmd_lock(walk->mm, pmd);
4c59e20072808a Yu Zhao 2021-03-13 4847 arch_enter_lazy_mmu_mode();
4c59e20072808a Yu Zhao 2021-03-13 4848
4c59e20072808a Yu Zhao 2021-03-13 4849 for (; start != end; pmd++, start = pmd_addr_end(start, end)) {
4c59e20072808a Yu Zhao 2021-03-13 4850 struct page *page;
4c59e20072808a Yu Zhao 2021-03-13 @4851 unsigned long pfn = pmd_pfn(*pmd);
4c59e20072808a Yu Zhao 2021-03-13 4852
4c59e20072808a Yu Zhao 2021-03-13 4853 if (!pmd_present(*pmd) || !pmd_young(*pmd) || is_huge_zero_pmd(*pmd))
4c59e20072808a Yu Zhao 2021-03-13 4854 continue;
4c59e20072808a Yu Zhao 2021-03-13 4855
4c59e20072808a Yu Zhao 2021-03-13 4856 if (!pmd_trans_huge(*pmd)) {
4c59e20072808a Yu Zhao 2021-03-13 4857 if (!(args->addr_bitmap & get_addr_mask(start)) &&
4c59e20072808a Yu Zhao 2021-03-13 4858 (!(pmd_addr_end(start, end) & ~PMD_MASK) ||
4c59e20072808a Yu Zhao 2021-03-13 4859 !walk->vma->vm_next ||
4c59e20072808a Yu Zhao 2021-03-13 4860 (walk->vma->vm_next->vm_start & PMD_MASK) > end))
4c59e20072808a Yu Zhao 2021-03-13 4861 pmdp_test_and_clear_young(walk->vma, start, pmd);
4c59e20072808a Yu Zhao 2021-03-13 4862 continue;
4c59e20072808a Yu Zhao 2021-03-13 4863 }
4c59e20072808a Yu Zhao 2021-03-13 4864
4c59e20072808a Yu Zhao 2021-03-13 4865 if (pfn < args->start_pfn || pfn >= args->end_pfn)
4c59e20072808a Yu Zhao 2021-03-13 4866 continue;
4c59e20072808a Yu Zhao 2021-03-13 4867
4c59e20072808a Yu Zhao 2021-03-13 4868 page = pmd_page(*pmd);
4c59e20072808a Yu Zhao 2021-03-13 4869 if (page_to_nid(page) != args->node_id)
4c59e20072808a Yu Zhao 2021-03-13 4870 continue;
4c59e20072808a Yu Zhao 2021-03-13 4871 if (page_memcg_rcu(page) != args->memcg)
4c59e20072808a Yu Zhao 2021-03-13 4872 continue;
4c59e20072808a Yu Zhao 2021-03-13 4873
4c59e20072808a Yu Zhao 2021-03-13 4874 if (pmdp_test_and_clear_young(walk->vma, start, pmd)) {
4c59e20072808a Yu Zhao 2021-03-13 4875 old_gen = page_update_lru_gen(page, new_gen);
4c59e20072808a Yu Zhao 2021-03-13 4876 if (old_gen >= 0 && old_gen != new_gen) {
4c59e20072808a Yu Zhao 2021-03-13 4877 update_batch_size(page, old_gen, new_gen);
4c59e20072808a Yu Zhao 2021-03-13 4878 args->batch_size++;
4c59e20072808a Yu Zhao 2021-03-13 4879 }
4c59e20072808a Yu Zhao 2021-03-13 4880 }
4c59e20072808a Yu Zhao 2021-03-13 4881
4c59e20072808a Yu Zhao 2021-03-13 @4882 if (pmd_dirty(*pmd) && !PageDirty(page) &&
4c59e20072808a Yu Zhao 2021-03-13 4883 !(PageAnon(page) && PageSwapBacked(page) && !PageSwapCache(page)))
4c59e20072808a Yu Zhao 2021-03-13 4884 set_page_dirty(page);
4c59e20072808a Yu Zhao 2021-03-13 4885 }
4c59e20072808a Yu Zhao 2021-03-13 4886
4c59e20072808a Yu Zhao 2021-03-13 4887 arch_leave_lazy_mmu_mode();
4c59e20072808a Yu Zhao 2021-03-13 4888 spin_unlock(ptl);
4c59e20072808a Yu Zhao 2021-03-13 4889 done:
4c59e20072808a Yu Zhao 2021-03-13 4890 args->addr_bitmap = 0;
4c59e20072808a Yu Zhao 2021-03-13 4891
4c59e20072808a Yu Zhao 2021-03-13 4892 if (args->batch_size < MAX_BATCH_SIZE)
4c59e20072808a Yu Zhao 2021-03-13 4893 return 0;
4c59e20072808a Yu Zhao 2021-03-13 4894
4c59e20072808a Yu Zhao 2021-03-13 4895 args->next_addr = end;
4c59e20072808a Yu Zhao 2021-03-13 4896
4c59e20072808a Yu Zhao 2021-03-13 4897 return -EAGAIN;
4c59e20072808a Yu Zhao 2021-03-13 4898 }
4c59e20072808a Yu Zhao 2021-03-13 4899
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 6 months
Re: [PATCH v1 13/14] mm: multigenerational lru: Kconfig
by kernel test robot
Hi Yu,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on tip/x86/core]
[also build test ERROR on tip/x86/mm tip/sched/core linus/master v5.12-rc2]
[cannot apply to cgroup/for-next tip/perf/core hnaz-linux-mm/master next-20210312]
[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/Yu-Zhao/Multigenerational-LRU/20...
base: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git d0962f2b24c99889a386f0658c71535f56358f77
config: mips-randconfig-r022-20210313 (attached as .config)
compiler: mipsel-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
# https://github.com/0day-ci/linux/commit/7a8b80d7f0d02852d49395fc6e0357438...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Yu-Zhao/Multigenerational-LRU/20210313-160036
git checkout 7a8b80d7f0d02852d49395fc6e035743816f6b1d
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=mips
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All error/warnings (new ones prefixed by >>):
mm/vmscan.c: In function 'walk_pte_range':
>> mm/vmscan.c:4776:56: error: implicit declaration of function 'pmd_young'; did you mean 'pte_young'? [-Werror=implicit-function-declaration]
4776 | if (IS_ENABLED(CONFIG_HAVE_ARCH_PARENT_PMD_YOUNG) && !pmd_young(pmd))
| ^~~~~~~~~
| pte_young
mm/vmscan.c: In function 'walk_pmd_range':
>> mm/vmscan.c:4851:23: error: implicit declaration of function 'pmd_pfn'; did you mean 'pmd_off'? [-Werror=implicit-function-declaration]
4851 | unsigned long pfn = pmd_pfn(*pmd);
| ^~~~~~~
| pmd_off
>> mm/vmscan.c:4882:7: error: implicit declaration of function 'pmd_dirty'; did you mean 'pte_dirty'? [-Werror=implicit-function-declaration]
4882 | if (pmd_dirty(*pmd) && !PageDirty(page) &&
| ^~~~~~~~~
| pte_dirty
cc1: some warnings being treated as errors
--
mm/memcontrol.c: In function 'mem_cgroup_attach':
>> mm/memcontrol.c:6179:3: warning: suggest braces around empty body in an 'else' statement [-Wempty-body]
6179 | ;
| ^
vim +4776 mm/vmscan.c
4c59e20072808a Yu Zhao 2021-03-13 4759
4c59e20072808a Yu Zhao 2021-03-13 4760 static int walk_pte_range(pmd_t *pmdp, unsigned long start, unsigned long end,
4c59e20072808a Yu Zhao 2021-03-13 4761 struct mm_walk *walk)
4c59e20072808a Yu Zhao 2021-03-13 4762 {
4c59e20072808a Yu Zhao 2021-03-13 4763 pmd_t pmd;
4c59e20072808a Yu Zhao 2021-03-13 4764 pte_t *pte;
4c59e20072808a Yu Zhao 2021-03-13 4765 spinlock_t *ptl;
4c59e20072808a Yu Zhao 2021-03-13 4766 struct mm_walk_args *args = walk->private;
4c59e20072808a Yu Zhao 2021-03-13 4767 int old_gen, new_gen = lru_gen_from_seq(args->max_seq);
4c59e20072808a Yu Zhao 2021-03-13 4768
4c59e20072808a Yu Zhao 2021-03-13 4769 pmd = pmd_read_atomic(pmdp);
4c59e20072808a Yu Zhao 2021-03-13 4770 barrier();
4c59e20072808a Yu Zhao 2021-03-13 4771 if (!pmd_present(pmd) || pmd_trans_huge(pmd))
4c59e20072808a Yu Zhao 2021-03-13 4772 return 0;
4c59e20072808a Yu Zhao 2021-03-13 4773
4c59e20072808a Yu Zhao 2021-03-13 4774 VM_BUG_ON(pmd_huge(pmd) || pmd_devmap(pmd) || is_hugepd(__hugepd(pmd_val(pmd))));
4c59e20072808a Yu Zhao 2021-03-13 4775
4c59e20072808a Yu Zhao 2021-03-13 @4776 if (IS_ENABLED(CONFIG_HAVE_ARCH_PARENT_PMD_YOUNG) && !pmd_young(pmd))
4c59e20072808a Yu Zhao 2021-03-13 4777 return 0;
4c59e20072808a Yu Zhao 2021-03-13 4778
4c59e20072808a Yu Zhao 2021-03-13 4779 pte = pte_offset_map_lock(walk->mm, &pmd, start, &ptl);
4c59e20072808a Yu Zhao 2021-03-13 4780 arch_enter_lazy_mmu_mode();
4c59e20072808a Yu Zhao 2021-03-13 4781
4c59e20072808a Yu Zhao 2021-03-13 4782 for (; start != end; pte++, start += PAGE_SIZE) {
4c59e20072808a Yu Zhao 2021-03-13 4783 struct page *page;
4c59e20072808a Yu Zhao 2021-03-13 4784 unsigned long pfn = pte_pfn(*pte);
4c59e20072808a Yu Zhao 2021-03-13 4785
4c59e20072808a Yu Zhao 2021-03-13 4786 if (!pte_present(*pte) || !pte_young(*pte) || is_zero_pfn(pfn))
4c59e20072808a Yu Zhao 2021-03-13 4787 continue;
4c59e20072808a Yu Zhao 2021-03-13 4788
4c59e20072808a Yu Zhao 2021-03-13 4789 /*
4c59e20072808a Yu Zhao 2021-03-13 4790 * If this pte maps a page from a different node, set the
4c59e20072808a Yu Zhao 2021-03-13 4791 * bitmap to prevent the accessed bit on its parent pmd from
4c59e20072808a Yu Zhao 2021-03-13 4792 * being cleared.
4c59e20072808a Yu Zhao 2021-03-13 4793 */
4c59e20072808a Yu Zhao 2021-03-13 4794 if (pfn < args->start_pfn || pfn >= args->end_pfn) {
4c59e20072808a Yu Zhao 2021-03-13 4795 args->addr_bitmap |= get_addr_mask(start);
4c59e20072808a Yu Zhao 2021-03-13 4796 continue;
4c59e20072808a Yu Zhao 2021-03-13 4797 }
4c59e20072808a Yu Zhao 2021-03-13 4798
4c59e20072808a Yu Zhao 2021-03-13 4799 page = compound_head(pte_page(*pte));
4c59e20072808a Yu Zhao 2021-03-13 4800 if (page_to_nid(page) != args->node_id) {
4c59e20072808a Yu Zhao 2021-03-13 4801 args->addr_bitmap |= get_addr_mask(start);
4c59e20072808a Yu Zhao 2021-03-13 4802 continue;
4c59e20072808a Yu Zhao 2021-03-13 4803 }
4c59e20072808a Yu Zhao 2021-03-13 4804 if (page_memcg_rcu(page) != args->memcg)
4c59e20072808a Yu Zhao 2021-03-13 4805 continue;
4c59e20072808a Yu Zhao 2021-03-13 4806
4c59e20072808a Yu Zhao 2021-03-13 4807 if (ptep_test_and_clear_young(walk->vma, start, pte)) {
4c59e20072808a Yu Zhao 2021-03-13 4808 old_gen = page_update_lru_gen(page, new_gen);
4c59e20072808a Yu Zhao 2021-03-13 4809 if (old_gen >= 0 && old_gen != new_gen) {
4c59e20072808a Yu Zhao 2021-03-13 4810 update_batch_size(page, old_gen, new_gen);
4c59e20072808a Yu Zhao 2021-03-13 4811 args->batch_size++;
4c59e20072808a Yu Zhao 2021-03-13 4812 }
4c59e20072808a Yu Zhao 2021-03-13 4813 }
4c59e20072808a Yu Zhao 2021-03-13 4814
4c59e20072808a Yu Zhao 2021-03-13 4815 if (pte_dirty(*pte) && !PageDirty(page) &&
4c59e20072808a Yu Zhao 2021-03-13 4816 !(PageAnon(page) && PageSwapBacked(page) && !PageSwapCache(page)))
4c59e20072808a Yu Zhao 2021-03-13 4817 set_page_dirty(page);
4c59e20072808a Yu Zhao 2021-03-13 4818 }
4c59e20072808a Yu Zhao 2021-03-13 4819
4c59e20072808a Yu Zhao 2021-03-13 4820 arch_leave_lazy_mmu_mode();
4c59e20072808a Yu Zhao 2021-03-13 4821 pte_unmap_unlock(pte, ptl);
4c59e20072808a Yu Zhao 2021-03-13 4822
4c59e20072808a Yu Zhao 2021-03-13 4823 return 0;
4c59e20072808a Yu Zhao 2021-03-13 4824 }
4c59e20072808a Yu Zhao 2021-03-13 4825
4c59e20072808a Yu Zhao 2021-03-13 4826 static int walk_pmd_range(pud_t *pudp, unsigned long start, unsigned long end,
4c59e20072808a Yu Zhao 2021-03-13 4827 struct mm_walk *walk)
4c59e20072808a Yu Zhao 2021-03-13 4828 {
4c59e20072808a Yu Zhao 2021-03-13 4829 pud_t pud;
4c59e20072808a Yu Zhao 2021-03-13 4830 pmd_t *pmd;
4c59e20072808a Yu Zhao 2021-03-13 4831 spinlock_t *ptl;
4c59e20072808a Yu Zhao 2021-03-13 4832 struct mm_walk_args *args = walk->private;
4c59e20072808a Yu Zhao 2021-03-13 4833 int old_gen, new_gen = lru_gen_from_seq(args->max_seq);
4c59e20072808a Yu Zhao 2021-03-13 4834
4c59e20072808a Yu Zhao 2021-03-13 4835 pud = READ_ONCE(*pudp);
4c59e20072808a Yu Zhao 2021-03-13 4836 if (!pud_present(pud) || WARN_ON_ONCE(pud_trans_huge(pud)))
4c59e20072808a Yu Zhao 2021-03-13 4837 return 0;
4c59e20072808a Yu Zhao 2021-03-13 4838
4c59e20072808a Yu Zhao 2021-03-13 4839 VM_BUG_ON(pud_huge(pud) || pud_devmap(pud) || is_hugepd(__hugepd(pud_val(pud))));
4c59e20072808a Yu Zhao 2021-03-13 4840
4c59e20072808a Yu Zhao 2021-03-13 4841 if (!IS_ENABLED(CONFIG_TRANSPARENT_HUGEPAGE) &&
4c59e20072808a Yu Zhao 2021-03-13 4842 !IS_ENABLED(CONFIG_HAVE_ARCH_PARENT_PMD_YOUNG))
4c59e20072808a Yu Zhao 2021-03-13 4843 goto done;
4c59e20072808a Yu Zhao 2021-03-13 4844
4c59e20072808a Yu Zhao 2021-03-13 4845 pmd = pmd_offset(&pud, start);
4c59e20072808a Yu Zhao 2021-03-13 4846 ptl = pmd_lock(walk->mm, pmd);
4c59e20072808a Yu Zhao 2021-03-13 4847 arch_enter_lazy_mmu_mode();
4c59e20072808a Yu Zhao 2021-03-13 4848
4c59e20072808a Yu Zhao 2021-03-13 4849 for (; start != end; pmd++, start = pmd_addr_end(start, end)) {
4c59e20072808a Yu Zhao 2021-03-13 4850 struct page *page;
4c59e20072808a Yu Zhao 2021-03-13 @4851 unsigned long pfn = pmd_pfn(*pmd);
4c59e20072808a Yu Zhao 2021-03-13 4852
4c59e20072808a Yu Zhao 2021-03-13 4853 if (!pmd_present(*pmd) || !pmd_young(*pmd) || is_huge_zero_pmd(*pmd))
4c59e20072808a Yu Zhao 2021-03-13 4854 continue;
4c59e20072808a Yu Zhao 2021-03-13 4855
4c59e20072808a Yu Zhao 2021-03-13 4856 if (!pmd_trans_huge(*pmd)) {
4c59e20072808a Yu Zhao 2021-03-13 4857 if (!(args->addr_bitmap & get_addr_mask(start)) &&
4c59e20072808a Yu Zhao 2021-03-13 4858 (!(pmd_addr_end(start, end) & ~PMD_MASK) ||
4c59e20072808a Yu Zhao 2021-03-13 4859 !walk->vma->vm_next ||
4c59e20072808a Yu Zhao 2021-03-13 4860 (walk->vma->vm_next->vm_start & PMD_MASK) > end))
4c59e20072808a Yu Zhao 2021-03-13 4861 pmdp_test_and_clear_young(walk->vma, start, pmd);
4c59e20072808a Yu Zhao 2021-03-13 4862 continue;
4c59e20072808a Yu Zhao 2021-03-13 4863 }
4c59e20072808a Yu Zhao 2021-03-13 4864
4c59e20072808a Yu Zhao 2021-03-13 4865 if (pfn < args->start_pfn || pfn >= args->end_pfn)
4c59e20072808a Yu Zhao 2021-03-13 4866 continue;
4c59e20072808a Yu Zhao 2021-03-13 4867
4c59e20072808a Yu Zhao 2021-03-13 4868 page = pmd_page(*pmd);
4c59e20072808a Yu Zhao 2021-03-13 4869 if (page_to_nid(page) != args->node_id)
4c59e20072808a Yu Zhao 2021-03-13 4870 continue;
4c59e20072808a Yu Zhao 2021-03-13 4871 if (page_memcg_rcu(page) != args->memcg)
4c59e20072808a Yu Zhao 2021-03-13 4872 continue;
4c59e20072808a Yu Zhao 2021-03-13 4873
4c59e20072808a Yu Zhao 2021-03-13 4874 if (pmdp_test_and_clear_young(walk->vma, start, pmd)) {
4c59e20072808a Yu Zhao 2021-03-13 4875 old_gen = page_update_lru_gen(page, new_gen);
4c59e20072808a Yu Zhao 2021-03-13 4876 if (old_gen >= 0 && old_gen != new_gen) {
4c59e20072808a Yu Zhao 2021-03-13 4877 update_batch_size(page, old_gen, new_gen);
4c59e20072808a Yu Zhao 2021-03-13 4878 args->batch_size++;
4c59e20072808a Yu Zhao 2021-03-13 4879 }
4c59e20072808a Yu Zhao 2021-03-13 4880 }
4c59e20072808a Yu Zhao 2021-03-13 4881
4c59e20072808a Yu Zhao 2021-03-13 @4882 if (pmd_dirty(*pmd) && !PageDirty(page) &&
4c59e20072808a Yu Zhao 2021-03-13 4883 !(PageAnon(page) && PageSwapBacked(page) && !PageSwapCache(page)))
4c59e20072808a Yu Zhao 2021-03-13 4884 set_page_dirty(page);
4c59e20072808a Yu Zhao 2021-03-13 4885 }
4c59e20072808a Yu Zhao 2021-03-13 4886
4c59e20072808a Yu Zhao 2021-03-13 4887 arch_leave_lazy_mmu_mode();
4c59e20072808a Yu Zhao 2021-03-13 4888 spin_unlock(ptl);
4c59e20072808a Yu Zhao 2021-03-13 4889 done:
4c59e20072808a Yu Zhao 2021-03-13 4890 args->addr_bitmap = 0;
4c59e20072808a Yu Zhao 2021-03-13 4891
4c59e20072808a Yu Zhao 2021-03-13 4892 if (args->batch_size < MAX_BATCH_SIZE)
4c59e20072808a Yu Zhao 2021-03-13 4893 return 0;
4c59e20072808a Yu Zhao 2021-03-13 4894
4c59e20072808a Yu Zhao 2021-03-13 4895 args->next_addr = end;
4c59e20072808a Yu Zhao 2021-03-13 4896
4c59e20072808a Yu Zhao 2021-03-13 4897 return -EAGAIN;
4c59e20072808a Yu Zhao 2021-03-13 4898 }
4c59e20072808a Yu Zhao 2021-03-13 4899
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 6 months
Re: [PATCH v1 12/14] mm: multigenerational lru: user space interface
by kernel test robot
Hi Yu,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on tip/x86/core]
[also build test WARNING on tip/x86/mm tip/sched/core linus/master v5.12-rc2]
[cannot apply to cgroup/for-next tip/perf/core hnaz-linux-mm/master next-20210312]
[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/Yu-Zhao/Multigenerational-LRU/20...
base: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git d0962f2b24c99889a386f0658c71535f56358f77
compiler: s390-linux-gcc (GCC) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
cppcheck possible warnings: (new ones prefixed by >>, may not real problems)
mm/vmscan.c:4107:22: warning: Local variable kswapd shadows outer function [shadowFunction]
struct task_struct *kswapd = NODE_DATA(nid)->kswapd;
^
mm/vmscan.c:3909:12: note: Shadowed declaration
static int kswapd(void *p)
^
mm/vmscan.c:4107:22: note: Shadow variable
struct task_struct *kswapd = NODE_DATA(nid)->kswapd;
^
vim +6140 mm/vmscan.c
6106
6107 static ssize_t lru_gen_debugfs_write(struct file *file, const char __user *src,
6108 size_t len, loff_t *pos)
6109 {
6110 void *buf;
6111 char *cur, *next;
6112 int err = 0;
6113
6114 buf = kvmalloc(len + 1, GFP_USER);
6115 if (!buf)
6116 return -ENOMEM;
6117
6118 if (copy_from_user(buf, src, len)) {
6119 kvfree(buf);
6120 return -EFAULT;
6121 }
6122
6123 next = buf;
6124 next[len] = '\0';
6125
6126 while ((cur = strsep(&next, ",;\n"))) {
6127 int n;
6128 int end;
6129 char cmd;
6130 int memcg_id;
6131 int nid;
6132 unsigned long seq;
6133 int swappiness = -1;
6134 unsigned long nr_to_reclaim = -1;
6135
6136 cur = skip_spaces(cur);
6137 if (!*cur)
6138 continue;
6139
> 6140 n = sscanf(cur, "%c %u %u %lu %n %u %n %lu %n", &cmd, &memcg_id, &nid,
6141 &seq, &end, &swappiness, &end, &nr_to_reclaim, &end);
6142 if (n < 4 || cur[end]) {
6143 err = -EINVAL;
6144 break;
6145 }
6146
6147 err = advance_seq(cmd, memcg_id, nid, seq, swappiness, nr_to_reclaim);
6148 if (err)
6149 break;
6150 }
6151
6152 kvfree(buf);
6153
6154 return err ? : len;
6155 }
6156
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 6 months
Re: [PATCH v2 3/3] riscv: Prepare ptdump for vm layout dynamic addresses
by kernel test robot
Hi Alexandre,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on lwn/docs-next]
[also build test ERROR on linus/master v5.12-rc2 next-20210312]
[cannot apply to soc/for-next]
[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/Alexandre-Ghiti/Move-kernel-mapp...
base: git://git.lwn.net/linux-2.6 docs-next
config: riscv-randconfig-r013-20210312 (attached as .config)
compiler: riscv32-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
# https://github.com/0day-ci/linux/commit/9d81fd1724231d8cbb9d769b67dd13108...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Alexandre-Ghiti/Move-kernel-mapping-outside-the-linear-mapping/20210313-173049
git checkout 9d81fd1724231d8cbb9d769b67dd131080d22d2b
# 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 >>):
arch/riscv/mm/ptdump.c: In function 'ptdump_init':
>> arch/riscv/mm/ptdump.c:376:54: error: 'MODULES_VADDR' undeclared (first use in this function)
376 | address_markers[MODULES_MAPPING_NR].start_address = MODULES_VADDR;
| ^~~~~~~~~~~~~
arch/riscv/mm/ptdump.c:376:54: note: each undeclared identifier is reported only once for each function it appears in
vim +/MODULES_VADDR +376 arch/riscv/mm/ptdump.c
356
357 static int ptdump_init(void)
358 {
359 unsigned int i, j;
360
361 #ifdef CONFIG_KASAN
362 address_markers[KASAN_SHADOW_START_NR].start_address = KASAN_SHADOW_START;
363 address_markers[KASAN_SHADOW_END_NR].start_address = KASAN_SHADOW_END;
364 #endif
365 address_markers[FIXMAP_START_NR].start_address = FIXADDR_START;
366 address_markers[FIXMAP_END_NR].start_address = FIXADDR_TOP;
367 address_markers[PCI_IO_START_NR].start_address = PCI_IO_START;
368 address_markers[PCI_IO_END_NR].start_address = PCI_IO_END;
369 #ifdef CONFIG_SPARSEMEM_VMEMMAP
370 address_markers[VMEMMAP_START_NR].start_address = VMEMMAP_START;
371 address_markers[VMEMMAP_END_NR].start_address = VMEMMAP_END;
372 #endif
373 address_markers[VMALLOC_START_NR].start_address = VMALLOC_START;
374 address_markers[VMALLOC_END_NR].start_address = VMALLOC_END;
375 address_markers[PAGE_OFFSET_NR].start_address = PAGE_OFFSET;
> 376 address_markers[MODULES_MAPPING_NR].start_address = MODULES_VADDR;
377 address_markers[KERNEL_MAPPING_NR].start_address = kernel_virt_addr;
378
379 kernel_ptd_info.base_addr = KERN_VIRT_START;
380
381 for (i = 0; i < ARRAY_SIZE(pg_level); i++)
382 for (j = 0; j < ARRAY_SIZE(pte_bits); j++)
383 pg_level[i].mask |= pte_bits[j].mask;
384
385 debugfs_create_file("kernel_page_tables", 0400, NULL, &kernel_ptd_info,
386 &ptdump_fops);
387 #ifdef CONFIG_EFI
388 if (efi_enabled(EFI_RUNTIME_SERVICES))
389 debugfs_create_file("efi_page_tables", 0400, NULL, &efi_ptd_info,
390 &ptdump_fops);
391 #endif
392
393 return 0;
394 }
395
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 6 months
Re: [PATCH v2 1/3] riscv: Move kernel mapping outside of linear mapping
by kernel test robot
Hi Alexandre,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on lwn/docs-next]
[also build test ERROR on linus/master v5.12-rc2 next-20210312]
[cannot apply to soc/for-next]
[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/Alexandre-Ghiti/Move-kernel-mapp...
base: git://git.lwn.net/linux-2.6 docs-next
config: riscv-nommu_k210_defconfig (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
# https://github.com/0day-ci/linux/commit/78f684d0ab9dfe75ab40951ce9edd835b...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Alexandre-Ghiti/Move-kernel-mapping-outside-the-linear-mapping/20210313-173049
git checkout 78f684d0ab9dfe75ab40951ce9edd835b6658209
# 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 >>):
arch/riscv/kernel/setup.c: In function 'setup_arch':
>> arch/riscv/kernel/setup.c:269:2: error: implicit declaration of function 'protect_kernel_linear_mapping_text_rodata' [-Werror=implicit-function-declaration]
269 | protect_kernel_linear_mapping_text_rodata();
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +/protect_kernel_linear_mapping_text_rodata +269 arch/riscv/kernel/setup.c
235
236 void __init setup_arch(char **cmdline_p)
237 {
238 parse_dtb();
239 init_mm.start_code = (unsigned long) _stext;
240 init_mm.end_code = (unsigned long) _etext;
241 init_mm.end_data = (unsigned long) _edata;
242 init_mm.brk = (unsigned long) _end;
243
244 *cmdline_p = boot_command_line;
245
246 early_ioremap_setup();
247 jump_label_init();
248 parse_early_param();
249
250 efi_init();
251 setup_bootmem();
252 paging_init();
253 init_resources();
254 #if IS_ENABLED(CONFIG_BUILTIN_DTB)
255 unflatten_and_copy_device_tree();
256 #else
257 if (early_init_dt_verify(__va(dtb_early_pa)))
258 unflatten_device_tree();
259 else
260 pr_err("No DTB found in kernel mappings\n");
261 #endif
262 misc_mem_init();
263
264 sbi_init();
265
266 if (IS_ENABLED(CONFIG_STRICT_KERNEL_RWX))
267 protect_kernel_text_data();
268
> 269 protect_kernel_linear_mapping_text_rodata();
270
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 6 months
Re: [PATCH] kswapd: no need reclaim cma pages triggered by unmovable allocation
by kernel test robot
Hi zhou,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on tip/perf/core]
[cannot apply to linux/master linus/master hnaz-linux-mm/master v5.12-rc2 next-20210312]
[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/zhou/kswapd-no-need-reclaim-cma-...
base: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git 8bcfdd7cad3dffdd340f9a79098cbf331eb2cd53
config: m68k-randconfig-c023-20210313 (attached as .config)
compiler: m68k-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
# https://github.com/0day-ci/linux/commit/f40216b4d0325cf640d1c3ebe448772d6...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review zhou/kswapd-no-need-reclaim-cma-pages-triggered-by-unmovable-allocation/20210313-163541
git checkout f40216b4d0325cf640d1c3ebe448772d6430bc6a
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=m68k
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/vmscan.c:3991:6: error: expected ';', ',' or ')' before 'enum'
3991 | enum zone_type highest_zoneidx)
| ^~~~
mm/vmscan.c:3405:13: warning: 'pgdat_watermark_boosted' defined but not used [-Wunused-function]
3405 | static bool pgdat_watermark_boosted(pg_data_t *pgdat, int highest_zoneidx)
| ^~~~~~~~~~~~~~~~~~~~~~~
vim +3991 mm/vmscan.c
^1da177e4c3f41 Linus Torvalds 2005-04-16 3982
^1da177e4c3f41 Linus Torvalds 2005-04-16 3983 /*
5ecd9d403ad081 David Rientjes 2018-04-05 3984 * A zone is low on free memory or too fragmented for high-order memory. If
5ecd9d403ad081 David Rientjes 2018-04-05 3985 * kswapd should reclaim (direct reclaim is deferred), wake it up for the zone's
5ecd9d403ad081 David Rientjes 2018-04-05 3986 * pgdat. It will wake up kcompactd after reclaiming memory. If kswapd reclaim
5ecd9d403ad081 David Rientjes 2018-04-05 3987 * has failed or is not needed, still wake up kcompactd if only compaction is
5ecd9d403ad081 David Rientjes 2018-04-05 3988 * needed.
^1da177e4c3f41 Linus Torvalds 2005-04-16 3989 */
f40216b4d0325c zhou xianrong 2021-03-13 3990 void wakeup_kswapd(struct zone *zone, gfp_t gfp_flags, int order, int migratetype
97a225e69a1f88 Joonsoo Kim 2020-06-03 @3991 enum zone_type highest_zoneidx)
^1da177e4c3f41 Linus Torvalds 2005-04-16 3992 {
^1da177e4c3f41 Linus Torvalds 2005-04-16 3993 pg_data_t *pgdat;
5644e1fbbfe15a Qian Cai 2020-04-01 3994 enum zone_type curr_idx;
f40216b4d0325c zhou xianrong 2021-03-13 3995 int curr_migratetype;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3996
6aa303defb7454 Mel Gorman 2016-09-01 3997 if (!managed_zone(zone))
^1da177e4c3f41 Linus Torvalds 2005-04-16 3998 return;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3999
5ecd9d403ad081 David Rientjes 2018-04-05 4000 if (!cpuset_zone_allowed(zone, gfp_flags))
^1da177e4c3f41 Linus Torvalds 2005-04-16 4001 return;
5644e1fbbfe15a Qian Cai 2020-04-01 4002
88f5acf88ae6a9 Mel Gorman 2011-01-13 4003 pgdat = zone->zone_pgdat;
97a225e69a1f88 Joonsoo Kim 2020-06-03 4004 curr_idx = READ_ONCE(pgdat->kswapd_highest_zoneidx);
f40216b4d0325c zhou xianrong 2021-03-13 4005 curr_migratetype = READ_ONCE(pgdat->kswapd_migratetype);
5644e1fbbfe15a Qian Cai 2020-04-01 4006
97a225e69a1f88 Joonsoo Kim 2020-06-03 4007 if (curr_idx == MAX_NR_ZONES || curr_idx < highest_zoneidx)
97a225e69a1f88 Joonsoo Kim 2020-06-03 4008 WRITE_ONCE(pgdat->kswapd_highest_zoneidx, highest_zoneidx);
5644e1fbbfe15a Qian Cai 2020-04-01 4009
5644e1fbbfe15a Qian Cai 2020-04-01 4010 if (READ_ONCE(pgdat->kswapd_order) < order)
5644e1fbbfe15a Qian Cai 2020-04-01 4011 WRITE_ONCE(pgdat->kswapd_order, order);
dffcac2cb88e4e Shakeel Butt 2019-07-04 4012
f40216b4d0325c zhou xianrong 2021-03-13 4013 if (curr_migratetype == MIGRATE_TYPES || is_migrate_movable(migratetype))
f40216b4d0325c zhou xianrong 2021-03-13 4014 WRITE_ONCE(pgdat->kswapd_migratetype, migratetype);
f40216b4d0325c zhou xianrong 2021-03-13 4015
8d0986e289a4b0 Con Kolivas 2005-09-13 4016 if (!waitqueue_active(&pgdat->kswapd_wait))
^1da177e4c3f41 Linus Torvalds 2005-04-16 4017 return;
e1a556374abc0d Mel Gorman 2016-07-28 4018
5ecd9d403ad081 David Rientjes 2018-04-05 4019 /* Hopeless node, leave it to direct reclaim if possible */
5ecd9d403ad081 David Rientjes 2018-04-05 4020 if (pgdat->kswapd_failures >= MAX_RECLAIM_RETRIES ||
97a225e69a1f88 Joonsoo Kim 2020-06-03 4021 (pgdat_balanced(pgdat, order, highest_zoneidx) &&
97a225e69a1f88 Joonsoo Kim 2020-06-03 4022 !pgdat_watermark_boosted(pgdat, highest_zoneidx))) {
5ecd9d403ad081 David Rientjes 2018-04-05 4023 /*
5ecd9d403ad081 David Rientjes 2018-04-05 4024 * There may be plenty of free memory available, but it's too
5ecd9d403ad081 David Rientjes 2018-04-05 4025 * fragmented for high-order allocations. Wake up kcompactd
5ecd9d403ad081 David Rientjes 2018-04-05 4026 * and rely on compaction_suitable() to determine if it's
5ecd9d403ad081 David Rientjes 2018-04-05 4027 * needed. If it fails, it will defer subsequent attempts to
5ecd9d403ad081 David Rientjes 2018-04-05 4028 * ratelimit its work.
5ecd9d403ad081 David Rientjes 2018-04-05 4029 */
5ecd9d403ad081 David Rientjes 2018-04-05 4030 if (!(gfp_flags & __GFP_DIRECT_RECLAIM))
97a225e69a1f88 Joonsoo Kim 2020-06-03 4031 wakeup_kcompactd(pgdat, order, highest_zoneidx);
88f5acf88ae6a9 Mel Gorman 2011-01-13 4032 return;
5ecd9d403ad081 David Rientjes 2018-04-05 4033 }
88f5acf88ae6a9 Mel Gorman 2011-01-13 4034
97a225e69a1f88 Joonsoo Kim 2020-06-03 4035 trace_mm_vmscan_wakeup_kswapd(pgdat->node_id, highest_zoneidx, order,
f40216b4d0325c zhou xianrong 2021-03-13 4036 migratetype, gfp_flags);
8d0986e289a4b0 Con Kolivas 2005-09-13 4037 wake_up_interruptible(&pgdat->kswapd_wait);
^1da177e4c3f41 Linus Torvalds 2005-04-16 4038 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 4039
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 6 months
[freescale-fslc:pr/288 12051/17591] drivers/gpu/drm/imx/mhdp/cdns-mhdp-imx8qm.c:127:5: warning: no previous prototype for 'imx8qm_clocks_init'
by kernel test robot
Hi Sandor,
First bad commit (maybe != root cause):
tree: https://github.com/Freescale/linux-fslc pr/288
head: 26c3698b94fe22823c8dcefb548326265c708b5c
commit: c3bb7b79d985949d292d9057004fa606a1831bcc [12051/17591] MLK-24427-1: drm: gpu: imx: Move cdns driver files to mhdp folder
config: mips-randconfig-r006-20210312 (attached as .config)
compiler: mips-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
# https://github.com/Freescale/linux-fslc/commit/c3bb7b79d985949d292d905700...
git remote add freescale-fslc https://github.com/Freescale/linux-fslc
git fetch --no-tags freescale-fslc pr/288
git checkout c3bb7b79d985949d292d9057004fa606a1831bcc
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=mips
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 >>):
>> drivers/gpu/drm/imx/mhdp/cdns-mhdp-imx8qm.c:127:5: warning: no previous prototype for 'imx8qm_clocks_init' [-Wmissing-prototypes]
127 | int imx8qm_clocks_init(struct imx_mhdp_device *imx_mhdp)
| ^~~~~~~~~~~~~~~~~~
>> drivers/gpu/drm/imx/mhdp/cdns-mhdp-imx8qm.c:525:5: warning: no previous prototype for 'cdns_mhdp_firmware_write_section' [-Wmissing-prototypes]
525 | int cdns_mhdp_firmware_write_section(struct imx_mhdp_device *imx_mhdp,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
--
>> drivers/gpu/drm/imx/mhdp/cdns-mhdp-ls1028a.c:31:5: warning: no previous prototype for 'ls1028a_clocks_init' [-Wmissing-prototypes]
31 | int ls1028a_clocks_init(struct imx_mhdp_device *imx_mhdp)
| ^~~~~~~~~~~~~~~~~~~
Kconfig warnings: (for reference only)
WARNING: unmet direct dependencies detected for DRM_SEC_MIPI_DSIM
Depends on HAS_IOMEM && DRM && DRM_BRIDGE && OF
Selected by
- DRM_IMX_SEC_DSIM && HAS_IOMEM && DRM_IMX
WARNING: unmet direct dependencies detected for DRM_CDNS_MHDP
Depends on HAS_IOMEM && DRM && DRM_BRIDGE && OF
Selected by
- DRM_IMX_CDNS_MHDP && HAS_IOMEM && DRM_IMX
WARNING: unmet direct dependencies detected for GPIO_MXC
Depends on GPIOLIB && HAS_IOMEM && ARCH_MXC
Selected by
- GPIO_MXC_PAD_WAKEUP && GPIOLIB && HAS_IOMEM && IMX_SCU
WARNING: unmet direct dependencies detected for INPUT_POLLDEV
Depends on !UML && INPUT
Selected by
- MXC_MMA8451 && HWMON && I2C
vim +/imx8qm_clocks_init +127 drivers/gpu/drm/imx/mhdp/cdns-mhdp-imx8qm.c
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 126
769411dee515a8 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-09-11 @127 int imx8qm_clocks_init(struct imx_mhdp_device *imx_mhdp)
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 128 {
769411dee515a8 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-09-11 129 struct device *dev = imx_mhdp->mhdp.dev;
769411dee515a8 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-09-11 130 struct imx_hdp_clks *clks = &imx_mhdp->clks;
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 131
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 132 clks->dig_pll = devm_clk_get(dev, "dig_pll");
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 133 if (IS_ERR(clks->dig_pll)) {
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 134 dev_warn(dev, "failed to get dig pll clk\n");
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 135 return PTR_ERR(clks->dig_pll);
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 136 }
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 137
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 138 clks->av_pll = devm_clk_get(dev, "av_pll");
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 139 if (IS_ERR(clks->av_pll)) {
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 140 dev_warn(dev, "failed to get av pll clk\n");
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 141 return PTR_ERR(clks->av_pll);
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 142 }
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 143
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 144 clks->clk_ipg = devm_clk_get(dev, "clk_ipg");
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 145 if (IS_ERR(clks->clk_ipg)) {
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 146 dev_warn(dev, "failed to get dp ipg clk\n");
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 147 return PTR_ERR(clks->clk_ipg);
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 148 }
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 149
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 150 clks->clk_core = devm_clk_get(dev, "clk_core");
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 151 if (IS_ERR(clks->clk_core)) {
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 152 dev_warn(dev, "failed to get hdp core clk\n");
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 153 return PTR_ERR(clks->clk_core);
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 154 }
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 155
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 156 clks->clk_pxl = devm_clk_get(dev, "clk_pxl");
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 157 if (IS_ERR(clks->clk_pxl)) {
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 158 dev_warn(dev, "failed to get pxl clk\n");
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 159 return PTR_ERR(clks->clk_pxl);
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 160 }
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 161
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 162 clks->clk_pxl_mux = devm_clk_get(dev, "clk_pxl_mux");
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 163 if (IS_ERR(clks->clk_pxl_mux)) {
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 164 dev_warn(dev, "failed to get pxl mux clk\n");
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 165 return PTR_ERR(clks->clk_pxl_mux);
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 166 }
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 167
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 168 clks->clk_pxl_link = devm_clk_get(dev, "clk_pxl_link");
849c2f92744184 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2020-06-19 169 if (IS_ERR(clks->clk_pxl_link)) {
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 170 dev_warn(dev, "failed to get pxl link clk\n");
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 171 return PTR_ERR(clks->clk_pxl_link);
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 172 }
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 173
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 174 clks->lpcg_hdp = devm_clk_get(dev, "lpcg_hdp");
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 175 if (IS_ERR(clks->lpcg_hdp)) {
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 176 dev_warn(dev, "failed to get lpcg hdp clk\n");
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 177 return PTR_ERR(clks->lpcg_hdp);
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 178 }
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 179
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 180 clks->lpcg_msi = devm_clk_get(dev, "lpcg_msi");
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 181 if (IS_ERR(clks->lpcg_msi)) {
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 182 dev_warn(dev, "failed to get lpcg msi clk\n");
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 183 return PTR_ERR(clks->lpcg_msi);
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 184 }
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 185
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 186 clks->lpcg_pxl = devm_clk_get(dev, "lpcg_pxl");
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 187 if (IS_ERR(clks->lpcg_pxl)) {
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 188 dev_warn(dev, "failed to get lpcg pxl clk\n");
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 189 return PTR_ERR(clks->lpcg_pxl);
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 190 }
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 191
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 192 clks->lpcg_vif = devm_clk_get(dev, "lpcg_vif");
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 193 if (IS_ERR(clks->lpcg_vif)) {
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 194 dev_warn(dev, "failed to get lpcg vif clk\n");
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 195 return PTR_ERR(clks->lpcg_vif);
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 196 }
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 197
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 198 clks->lpcg_lis = devm_clk_get(dev, "lpcg_lis");
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 199 if (IS_ERR(clks->lpcg_lis)) {
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 200 dev_warn(dev, "failed to get lpcg lis clk\n");
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 201 return PTR_ERR(clks->lpcg_lis);
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 202 }
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 203
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 204 clks->lpcg_apb = devm_clk_get(dev, "lpcg_apb");
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 205 if (IS_ERR(clks->lpcg_apb)) {
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 206 dev_warn(dev, "failed to get lpcg apb clk\n");
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 207 return PTR_ERR(clks->lpcg_apb);
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 208 }
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 209
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 210 clks->lpcg_apb_csr = devm_clk_get(dev, "lpcg_apb_csr");
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 211 if (IS_ERR(clks->lpcg_apb_csr)) {
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 212 dev_warn(dev, "failed to get apb csr clk\n");
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 213 return PTR_ERR(clks->lpcg_apb_csr);
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 214 }
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 215
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 216 clks->lpcg_apb_ctrl = devm_clk_get(dev, "lpcg_apb_ctrl");
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 217 if (IS_ERR(clks->lpcg_apb_ctrl)) {
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 218 dev_warn(dev, "failed to get lpcg apb ctrl clk\n");
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 219 return PTR_ERR(clks->lpcg_apb_ctrl);
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 220 }
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 221
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 222 clks->clk_i2s_bypass = devm_clk_get(dev, "clk_i2s_bypass");
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 223 if (IS_ERR(clks->clk_i2s_bypass)) {
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 224 dev_err(dev, "failed to get i2s bypass clk\n");
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 225 return PTR_ERR(clks->clk_i2s_bypass);
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 226 }
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 227
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 228 clks->lpcg_i2s = devm_clk_get(dev, "lpcg_i2s");
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 229 if (IS_ERR(clks->lpcg_i2s)) {
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 230 dev_err(dev, "failed to get lpcg i2s clk\n");
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 231 return PTR_ERR(clks->lpcg_i2s);
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 232 }
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 233 return true;
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 234 }
92754d3a7a0315 drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c Sandor Yu 2019-08-23 235
:::::: The code at line 127 was first introduced by commit
:::::: 769411dee515a8230d637f6fdd1cc0fbe8e66f56 drm: imx: add imx8mq hdmi support
:::::: TO: Sandor Yu <Sandor.yu(a)nxp.com>
:::::: CC: Dong Aisheng <aisheng.dong(a)nxp.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 6 months
[chrome-os:chromeos-4.19 1/1] drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_if.c:497:18: warning: variable 'dpb_fields' set but not used
by kernel test robot
tree: https://chromium.googlesource.com/chromiumos/third_party/kernel chromeos-4.19
head: 6c21ad6b2e8c303ad5c1f7c0fbeec2dcb2590584
commit: 6c21ad6b2e8c303ad5c1f7c0fbeec2dcb2590584 [1/1] CHROMIUM: media: align H.264 stateless interface with upstream
config: arm64-allyesconfig (attached as .config)
compiler: aarch64-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 remote add chrome-os https://chromium.googlesource.com/chromiumos/third_party/kernel
git fetch --no-tags chrome-os chromeos-4.19
git checkout 6c21ad6b2e8c303ad5c1f7c0fbeec2dcb2590584
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 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 >>):
drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_if.c: In function 'get_vdec_decode_parameters':
>> drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_if.c:497:18: warning: variable 'dpb_fields' set but not used [-Wunused-but-set-variable]
497 | enum v4l2_field dpb_fields[V4L2_H264_NUM_DPB_ENTRIES];
| ^~~~~~~~~~
drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_if.c: In function 'get_pic_info':
drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_if.c:602:27: warning: parameter 'pic' set but not used [-Wunused-but-set-parameter]
602 | struct vdec_pic_info *pic)
| ~~~~~~~~~~~~~~~~~~~~~~^~~
drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_if.c: In function 'vdec_h264_slice_decode':
drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_if.c:736:28: warning: variable 'dst_buf_info' set but not used [-Wunused-but-set-variable]
736 | struct mtk_video_dec_buf *dst_buf_info;
| ^~~~~~~~~~~~
drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_if.c:735:28: warning: variable 'src_buf_info' set but not used [-Wunused-but-set-variable]
735 | struct mtk_video_dec_buf *src_buf_info;
| ^~~~~~~~~~~~
drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_if.c:71: warning: Function parameter or member 'chroma_format_idc' not described in 'mtk_h264_sps_param'
drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_if.c:71: warning: Function parameter or member 'bit_depth_luma_minus8' not described in 'mtk_h264_sps_param'
drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_if.c:71: warning: Function parameter or member 'bit_depth_chroma_minus8' not described in 'mtk_h264_sps_param'
drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_if.c:71: warning: Function parameter or member 'log2_max_frame_num_minus4' not described in 'mtk_h264_sps_param'
drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_if.c:71: warning: Function parameter or member 'pic_order_cnt_type' not described in 'mtk_h264_sps_param'
drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_if.c:71: warning: Function parameter or member 'log2_max_pic_order_cnt_lsb_minus4' not described in 'mtk_h264_sps_param'
drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_if.c:71: warning: Function parameter or member 'max_num_ref_frames' not described in 'mtk_h264_sps_param'
drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_if.c:71: warning: Function parameter or member 'separate_colour_plane_flag' not described in 'mtk_h264_sps_param'
drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_if.c:71: warning: Function parameter or member 'pic_width_in_mbs_minus1' not described in 'mtk_h264_sps_param'
drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_if.c:71: warning: Function parameter or member 'pic_height_in_map_units_minus1' not described in 'mtk_h264_sps_param'
drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_if.c:71: warning: Function parameter or member 'max_frame_nums' not described in 'mtk_h264_sps_param'
drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_if.c:71: warning: Function parameter or member 'qpprime_y_zero_transform_bypass_flag' not described in 'mtk_h264_sps_param'
drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_if.c:71: warning: Function parameter or member 'delta_pic_order_always_zero_flag' not described in 'mtk_h264_sps_param'
drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_if.c:71: warning: Function parameter or member 'frame_mbs_only_flag' not described in 'mtk_h264_sps_param'
drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_if.c:71: warning: Function parameter or member 'mb_adaptive_frame_field_flag' not described in 'mtk_h264_sps_param'
drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_if.c:71: warning: Function parameter or member 'direct_8x8_inference_flag' not described in 'mtk_h264_sps_param'
drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_if.c:71: warning: Function parameter or member 'reserved' not described in 'mtk_h264_sps_param'
drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_if.c:92: warning: Function parameter or member 'num_ref_idx_l0_default_active_minus1' not described in 'mtk_h264_pps_param'
drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_if.c:92: warning: Function parameter or member 'num_ref_idx_l1_default_active_minus1' not described in 'mtk_h264_pps_param'
drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_if.c:92: warning: Function parameter or member 'weighted_bipred_idc' not described in 'mtk_h264_pps_param'
drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_if.c:92: warning: Function parameter or member 'pic_init_qp_minus26' not described in 'mtk_h264_pps_param'
drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_if.c:92: warning: Function parameter or member 'chroma_qp_index_offset' not described in 'mtk_h264_pps_param'
drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_if.c:92: warning: Function parameter or member 'second_chroma_qp_index_offset' not described in 'mtk_h264_pps_param'
drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_if.c:92: warning: Function parameter or member 'entropy_coding_mode_flag' not described in 'mtk_h264_pps_param'
drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_if.c:92: warning: Function parameter or member 'pic_order_present_flag' not described in 'mtk_h264_pps_param'
drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_if.c:92: warning: Function parameter or member 'deblocking_filter_control_present_flag' not described in 'mtk_h264_pps_param'
drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_if.c:92: warning: Function parameter or member 'constrained_intra_pred_flag' not described in 'mtk_h264_pps_param'
drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_if.c:92: warning: Function parameter or member 'weighted_pred_flag' not described in 'mtk_h264_pps_param'
drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_if.c:92: warning: Function parameter or member 'redundant_pic_cnt_present_flag' not described in 'mtk_h264_pps_param'
drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_if.c:92: warning: Function parameter or member 'transform_8x8_mode_flag' not described in 'mtk_h264_pps_param'
drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_if.c:92: warning: Function parameter or member 'scaling_matrix_present_flag' not described in 'mtk_h264_pps_param'
drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_if.c:92: warning: Function parameter or member 'reserved' not described in 'mtk_h264_pps_param'
drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_if.c:122: warning: Function parameter or member 'dpb' not described in 'slice_api_h264_decode_param'
drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_if.c:122: warning: Function parameter or member 'num_slices' not described in 'slice_api_h264_decode_param'
drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_if.c:122: warning: Function parameter or member 'nal_ref_idc' not described in 'slice_api_h264_decode_param'
drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_if.c:122: warning: Function parameter or member 'ref_pic_list_p0' not described in 'slice_api_h264_decode_param'
drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_if.c:122: warning: Function parameter or member 'ref_pic_list_b0' not described in 'slice_api_h264_decode_param'
drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_if.c:122: warning: Function parameter or member 'ref_pic_list_b1' not described in 'slice_api_h264_decode_param'
drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_if.c:122: warning: Function parameter or member 'top_field_order_cnt' not described in 'slice_api_h264_decode_param'
drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_if.c:122: warning: Function parameter or member 'bottom_field_order_cnt' not described in 'slice_api_h264_decode_param'
drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_if.c:122: warning: Function parameter or member 'flags' not described in 'slice_api_h264_decode_param'
drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_if.c:133: warning: Function parameter or member 'sps' not described in 'mtk_h264_dec_slice_param'
drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_if.c:133: warning: Function parameter or member 'pps' not described in 'mtk_h264_dec_slice_param'
drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_if.c:133: warning: Function parameter or member 'scaling_matrix' not described in 'mtk_h264_dec_slice_param'
drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_if.c:133: warning: Function parameter or member 'decode_params' not described in 'mtk_h264_dec_slice_param'
drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_if.c:133: warning: Function parameter or member 'h264_dpb_info' not described in 'mtk_h264_dec_slice_param'
drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_if.c:194: warning: Function parameter or member 'h264_slice_params' not described in 'vdec_h264_vsi'
drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_if.c:217: warning: Function parameter or member 'h264_slice_param' not described in 'vdec_h264_slice_inst'
drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_if.c:217: warning: Function parameter or member 'dpb' not described in 'vdec_h264_slice_inst'
vim +/dpb_fields +497 drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_if.c
700c75679aed6f Alexandre Courbot 2019-11-14 482
31f9ea2329ceef Yunfei Dong 2019-05-17 483 static void get_vdec_decode_parameters(struct vdec_h264_slice_inst *inst)
31f9ea2329ceef Yunfei Dong 2019-05-17 484 {
700c75679aed6f Alexandre Courbot 2019-11-14 485 const struct v4l2_ctrl_h264_decode_params *dec_params =
6c21ad6b2e8c30 Alexandre Courbot 2021-02-24 486 get_ctrl_ptr(inst->ctx, V4L2_CID_STATELESS_H264_DECODE_PARAMS);
2533b049b95777 Alexandre Courbot 2021-02-19 487 const struct v4l2_ctrl_h264_sps *sps =
6c21ad6b2e8c30 Alexandre Courbot 2021-02-24 488 get_ctrl_ptr(inst->ctx, V4L2_CID_STATELESS_H264_SPS);
2533b049b95777 Alexandre Courbot 2021-02-19 489 const struct v4l2_ctrl_h264_pps *pps =
6c21ad6b2e8c30 Alexandre Courbot 2021-02-24 490 get_ctrl_ptr(inst->ctx, V4L2_CID_STATELESS_H264_PPS);
6c21ad6b2e8c30 Alexandre Courbot 2021-02-24 491 const struct v4l2_ctrl_h264_scaling_matrix *scaling_matrix =
6c21ad6b2e8c30 Alexandre Courbot 2021-02-24 492 get_ctrl_ptr(inst->ctx, V4L2_CID_STATELESS_H264_SCALING_MATRIX);
6c21ad6b2e8c30 Alexandre Courbot 2021-02-24 493 struct mtk_h264_dec_slice_param *slice_param = &inst->h264_slice_param;
700c75679aed6f Alexandre Courbot 2019-11-14 494 struct v4l2_ctrl_h264_decode_params fixed_params = *dec_params;
2533b049b95777 Alexandre Courbot 2021-02-19 495 u8 translation_table[V4L2_H264_NUM_DPB_ENTRIES] = { 0x20, };
2533b049b95777 Alexandre Courbot 2021-02-19 496 struct v4l2_h264_reflist_builder reflist_builder;
2533b049b95777 Alexandre Courbot 2021-02-19 @497 enum v4l2_field dpb_fields[V4L2_H264_NUM_DPB_ENTRIES];
2533b049b95777 Alexandre Courbot 2021-02-19 498 u8 *p0_reflist = slice_param->decode_params.ref_pic_list_p0;
2533b049b95777 Alexandre Courbot 2021-02-19 499 u8 *b0_reflist = slice_param->decode_params.ref_pic_list_b0;
2533b049b95777 Alexandre Courbot 2021-02-19 500 u8 *b1_reflist = slice_param->decode_params.ref_pic_list_b1;
2533b049b95777 Alexandre Courbot 2021-02-19 501 int i;
700c75679aed6f Alexandre Courbot 2019-11-14 502
700c75679aed6f Alexandre Courbot 2019-11-14 503 update_dpb(dec_params, inst->dpb, translation_table);
700c75679aed6f Alexandre Courbot 2019-11-14 504 memcpy(fixed_params.dpb, inst->dpb, sizeof(inst->dpb));
700c75679aed6f Alexandre Courbot 2019-11-14 505
2533b049b95777 Alexandre Courbot 2021-02-19 506 get_h264_sps_parameters(&slice_param->sps, sps);
2533b049b95777 Alexandre Courbot 2021-02-19 507 get_h264_pps_parameters(&slice_param->pps, pps);
6c21ad6b2e8c30 Alexandre Courbot 2021-02-24 508 get_h264_scaling_matrix(&slice_param->scaling_matrix, scaling_matrix);
700c75679aed6f Alexandre Courbot 2019-11-14 509 get_h264_decode_parameters(&slice_param->decode_params, &fixed_params);
17c95456b9a923 Alexandre Courbot 2019-10-11 510 get_h264_dpb_list(inst, slice_param);
17c95456b9a923 Alexandre Courbot 2019-10-11 511
2533b049b95777 Alexandre Courbot 2021-02-19 512 /* Prepare the fields for our reference lists */
2533b049b95777 Alexandre Courbot 2021-02-19 513 for (i = 0; i < V4L2_H264_NUM_DPB_ENTRIES; i++)
2533b049b95777 Alexandre Courbot 2021-02-19 514 dpb_fields[i] = slice_param->h264_dpb_info[i].field;
2533b049b95777 Alexandre Courbot 2021-02-19 515 /* Build the reference lists */
6c21ad6b2e8c30 Alexandre Courbot 2021-02-24 516 v4l2_h264_init_reflist_builder(&reflist_builder, &fixed_params, sps,
6c21ad6b2e8c30 Alexandre Courbot 2021-02-24 517 dec_params->dpb);
2533b049b95777 Alexandre Courbot 2021-02-19 518 v4l2_h264_build_p_ref_list(&reflist_builder, p0_reflist);
2533b049b95777 Alexandre Courbot 2021-02-19 519 v4l2_h264_build_b_ref_lists(&reflist_builder, b0_reflist, b1_reflist);
2533b049b95777 Alexandre Courbot 2021-02-19 520 /* Adapt the built lists to the firmware's expectations */
2533b049b95777 Alexandre Courbot 2021-02-19 521 fixup_ref_list(p0_reflist, translation_table, reflist_builder.num_valid);
2533b049b95777 Alexandre Courbot 2021-02-19 522 fixup_ref_list(b0_reflist, translation_table, reflist_builder.num_valid);
2533b049b95777 Alexandre Courbot 2021-02-19 523 fixup_ref_list(b1_reflist, translation_table, reflist_builder.num_valid);
2533b049b95777 Alexandre Courbot 2021-02-19 524
cff93e7cfaa386 Alexandre Courbot 2020-02-10 525 memcpy(&inst->vsi_ctx.h264_slice_params, slice_param,
cff93e7cfaa386 Alexandre Courbot 2020-02-10 526 sizeof(inst->vsi_ctx.h264_slice_params));
31f9ea2329ceef Yunfei Dong 2019-05-17 527 }
31f9ea2329ceef Yunfei Dong 2019-05-17 528
:::::: The code at line 497 was first introduced by commit
:::::: 2533b049b957778892305d1efd59ce7dd749f2d0 CHROMIUM: media: mtk-vcodec: compute P/B0/B1 reflists in-driver
:::::: TO: Alexandre Courbot <acourbot(a)chromium.org>
:::::: CC: Commit Bot <commit-bot(a)chromium.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 6 months
[freescale-fslc:pr/288 10205/17591] drivers/gpu/drm/bridge/nxp-seiko-43wvfig.c:214:14: error: 'struct drm_bridge' has no member named 'of_node'
by kernel test robot
Hi Robert,
FYI, the error/warning still remains.
tree: https://github.com/Freescale/linux-fslc pr/288
head: 26c3698b94fe22823c8dcefb548326265c708b5c
commit: c40c90f2d3265167edd6384dd8691dc88f78308d [10205/17591] LF-811-1: drm/bridge: Add driver for legacy Freescale Seiko 43WVFIG adapter
config: mips-randconfig-r006-20210312 (attached as .config)
compiler: mips-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
# https://github.com/Freescale/linux-fslc/commit/c40c90f2d3265167edd6384dd8...
git remote add freescale-fslc https://github.com/Freescale/linux-fslc
git fetch --no-tags freescale-fslc pr/288
git checkout c40c90f2d3265167edd6384dd8691dc88f78308d
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=mips
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 >>):
drivers/gpu/drm/bridge/nxp-seiko-43wvfig.c: In function 'seiko_adapter_probe':
>> drivers/gpu/drm/bridge/nxp-seiko-43wvfig.c:214:14: error: 'struct drm_bridge' has no member named 'of_node'
214 | adap->bridge.of_node = dev->of_node;
| ^
In file included from drivers/gpu/drm/bridge/nxp-seiko-43wvfig.c:20:
At top level:
include/drm/drm_of.h:64:12: warning: 'drm_of_component_probe_with_match' defined but not used [-Wunused-function]
64 | static int drm_of_component_probe_with_match(struct device *dev,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Kconfig warnings: (for reference only)
WARNING: unmet direct dependencies detected for DRM_SEC_MIPI_DSIM
Depends on HAS_IOMEM && DRM && DRM_BRIDGE && OF
Selected by
- DRM_IMX_SEC_DSIM && HAS_IOMEM && DRM_IMX
WARNING: unmet direct dependencies detected for DRM_CDNS_MHDP
Depends on HAS_IOMEM && DRM && DRM_BRIDGE && OF
Selected by
- DRM_IMX_CDNS_MHDP && HAS_IOMEM && DRM_IMX
WARNING: unmet direct dependencies detected for GPIO_MXC
Depends on GPIOLIB && HAS_IOMEM && ARCH_MXC
Selected by
- GPIO_MXC_PAD_WAKEUP && GPIOLIB && HAS_IOMEM && IMX_SCU
WARNING: unmet direct dependencies detected for INPUT_POLLDEV
Depends on !UML && INPUT
Selected by
- MXC_MMA8451 && HWMON && I2C
vim +214 drivers/gpu/drm/bridge/nxp-seiko-43wvfig.c
166
167 static int seiko_adapter_probe(struct platform_device *pdev)
168 {
169 struct device *dev = &pdev->dev;
170 struct seiko_adapter *adap;
171 struct device_node *remote;
172 u32 bus_mode;
173 int port;
174
175 adap = devm_kzalloc(dev, sizeof(*adap), GFP_KERNEL);
176 if (!adap)
177 return -ENOMEM;
178
179 of_property_read_u32(dev->of_node, "bus_mode", &bus_mode);
180 if (bus_mode != 18 && bus_mode != 24) {
181 dev_err(dev, "Invalid bus_mode: %d\n", bus_mode);
182 return -EINVAL;
183 }
184
185 switch (bus_mode) {
186 case 18:
187 adap->bpc = 6;
188 adap->bus_format = MEDIA_BUS_FMT_RGB666_1X18;
189 break;
190 case 24:
191 adap->bpc = 8;
192 adap->bus_format = MEDIA_BUS_FMT_RGB888_1X24;
193 break;
194 }
195
196 for (port = 0; port < 2; port++) {
197 remote = of_graph_get_remote_node(dev->of_node, port, -1);
198 if (!remote) {
199 dev_err(dev, "No remote for port %d\n", port);
200 return -ENODEV;
201 }
202 adap->panel = of_drm_find_panel(remote);
203 if (!IS_ERR(adap->panel))
204 break;
205 }
206 if (IS_ERR(adap->panel)) {
207 dev_err(dev, "No panel found: %ld\n", PTR_ERR(adap->panel));
208 return PTR_ERR(adap->panel);
209 }
210
211 adap->dev = dev;
212 adap->bridge.driver_private = adap;
213 adap->bridge.funcs = &seiko_adapter_bridge_funcs;
> 214 adap->bridge.of_node = dev->of_node;
215
216 drm_bridge_add(&adap->bridge);
217
218 return 0;
219 }
220
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 6 months