Re: [RESEND PATCH V6 net-next 4/6] ethtool: extend ringparam setting/getting API with rx_buf_len
by kernel test robot
Hi Guangbin,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on net-next/master]
url: https://github.com/0day-ci/linux/commits/Guangbin-Huang/ethtool-add-suppo...
base: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git 62803fec52f80e4dd375de2dd76510c405792928
config: powerpc64-defconfig (attached as .config)
compiler: powerpc64-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/da4c6abe75add01de642c7b12fd4268cd...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Guangbin-Huang/ethtool-add-support-to-set-get-tx-copybreak-buf-size-and-rx-buf-len/20211117-100258
git checkout da4c6abe75add01de642c7b12fd4268cd9c5f14e
# save the attached .config to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=powerpc SHELL=/bin/bash arch/powerpc/platforms/cell/ drivers/net/ethernet/toshiba/
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/net/ethernet/toshiba/spider_net_ethtool.c:114:34: error: expected ';', ',' or ')' before 'struct'
114 | struct kernel_ethtool_ringparam *kernel_ering,
| ^~~~~~
>> drivers/net/ethernet/toshiba/spider_net_ethtool.c:168:35: error: 'spider_net_ethtool_get_ringparam' undeclared here (not in a function); did you mean 'spider_net_ethtool_get_msglevel'?
168 | .get_ringparam = spider_net_ethtool_get_ringparam,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| spider_net_ethtool_get_msglevel
vim +114 drivers/net/ethernet/toshiba/spider_net_ethtool.c
110
111 static void
112 spider_net_ethtool_get_ringparam(struct net_device *netdev,
113 struct ethtool_ringparam *ering
> 114 struct kernel_ethtool_ringparam *kernel_ering,
115 struct netlink_ext_ack *extack)
116 {
117 struct spider_net_card *card = netdev_priv(netdev);
118
119 ering->tx_max_pending = SPIDER_NET_TX_DESCRIPTORS_MAX;
120 ering->tx_pending = card->tx_chain.num_desc;
121 ering->rx_max_pending = SPIDER_NET_RX_DESCRIPTORS_MAX;
122 ering->rx_pending = card->rx_chain.num_desc;
123 }
124
125 static int spider_net_get_sset_count(struct net_device *netdev, int sset)
126 {
127 switch (sset) {
128 case ETH_SS_STATS:
129 return ARRAY_SIZE(ethtool_stats_keys);
130 default:
131 return -EOPNOTSUPP;
132 }
133 }
134
135 static void spider_net_get_ethtool_stats(struct net_device *netdev,
136 struct ethtool_stats *stats, u64 *data)
137 {
138 struct spider_net_card *card = netdev_priv(netdev);
139
140 data[0] = netdev->stats.tx_packets;
141 data[1] = netdev->stats.tx_bytes;
142 data[2] = netdev->stats.rx_packets;
143 data[3] = netdev->stats.rx_bytes;
144 data[4] = netdev->stats.tx_errors;
145 data[5] = netdev->stats.tx_dropped;
146 data[6] = netdev->stats.rx_dropped;
147 data[7] = card->spider_stats.rx_desc_error;
148 data[8] = card->spider_stats.tx_timeouts;
149 data[9] = card->spider_stats.alloc_rx_skb_error;
150 data[10] = card->spider_stats.rx_iommu_map_error;
151 data[11] = card->spider_stats.tx_iommu_map_error;
152 data[12] = card->spider_stats.rx_desc_unk_state;
153 }
154
155 static void spider_net_get_strings(struct net_device *netdev, u32 stringset,
156 u8 *data)
157 {
158 memcpy(data, ethtool_stats_keys, sizeof(ethtool_stats_keys));
159 }
160
161 const struct ethtool_ops spider_net_ethtool_ops = {
162 .get_drvinfo = spider_net_ethtool_get_drvinfo,
163 .get_wol = spider_net_ethtool_get_wol,
164 .get_msglevel = spider_net_ethtool_get_msglevel,
165 .set_msglevel = spider_net_ethtool_set_msglevel,
166 .get_link = ethtool_op_get_link,
167 .nway_reset = spider_net_ethtool_nway_reset,
> 168 .get_ringparam = spider_net_ethtool_get_ringparam,
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
10 months
arch/x86/hyperv/ivm.c:43:25: sparse: sparse: incorrect type in initializer (different address spaces)
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: ee1703cda8dc777e937dec172da55beaf1a74919
commit: 810a521265023a1d5c6c081ea2d216bc63d422f5 x86/hyperv: Add new hvcall guest address host visibility support
date: 3 weeks ago
config: i386-randconfig-s002-20211109 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.4-dirty
# 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 810a521265023a1d5c6c081ea2d216bc63d422f5
# save the attached .config to linux build tree
make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=i386
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
sparse warnings: (new ones prefixed by >>)
>> arch/x86/hyperv/ivm.c:43:25: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected void const [noderef] __percpu *__vpp_verify @@ got void [noderef] __percpu ** @@
arch/x86/hyperv/ivm.c:43:25: sparse: expected void const [noderef] __percpu *__vpp_verify
arch/x86/hyperv/ivm.c:43:25: sparse: got void [noderef] __percpu **
vim +43 arch/x86/hyperv/ivm.c
15
16 /*
17 * hv_mark_gpa_visibility - Set pages visible to host via hvcall.
18 *
19 * In Isolation VM, all guest memory is encrypted from host and guest
20 * needs to set memory visible to host via hvcall before sharing memory
21 * with host.
22 */
23 static int hv_mark_gpa_visibility(u16 count, const u64 pfn[],
24 enum hv_mem_host_visibility visibility)
25 {
26 struct hv_gpa_range_for_visibility **input_pcpu, *input;
27 u16 pages_processed;
28 u64 hv_status;
29 unsigned long flags;
30
31 /* no-op if partition isolation is not enabled */
32 if (!hv_is_isolation_supported())
33 return 0;
34
35 if (count > HV_MAX_MODIFY_GPA_REP_COUNT) {
36 pr_err("Hyper-V: GPA count:%d exceeds supported:%lu\n", count,
37 HV_MAX_MODIFY_GPA_REP_COUNT);
38 return -EINVAL;
39 }
40
41 local_irq_save(flags);
42 input_pcpu = (struct hv_gpa_range_for_visibility **)
> 43 this_cpu_ptr(hyperv_pcpu_input_arg);
44 input = *input_pcpu;
45 if (unlikely(!input)) {
46 local_irq_restore(flags);
47 return -EINVAL;
48 }
49
50 input->partition_id = HV_PARTITION_ID_SELF;
51 input->host_visibility = visibility;
52 input->reserved0 = 0;
53 input->reserved1 = 0;
54 memcpy((void *)input->gpa_page_list, pfn, count * sizeof(*pfn));
55 hv_status = hv_do_rep_hypercall(
56 HVCALL_MODIFY_SPARSE_GPA_PAGE_HOST_VISIBILITY, count,
57 0, input, &pages_processed);
58 local_irq_restore(flags);
59
60 if (hv_result_success(hv_status))
61 return 0;
62 else
63 return -EFAULT;
64 }
65
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
10 months
[dgc-xfs:xlog-write-rework 2/16] fs/xfs/xfs_log_cil.c:863:39: sparse: sparse: incorrect type in initializer (different base types)
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs.git xlog-write-rework
head: a205e517349494d7b3ab2ca314a5a2fb4ac042ff
commit: f7646fa5fbd31e4ce42ed4873010a2ab4ef5c473 [2/16] xfs: only CIL pushes require a start record
config: i386-randconfig-s001-20211115 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.4-dirty
# https://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs.git/commit/...
git remote add dgc-xfs https://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs.git
git fetch --no-tags dgc-xfs xlog-write-rework
git checkout f7646fa5fbd31e4ce42ed4873010a2ab4ef5c473
# save the attached .config to linux build tree
make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=i386
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
sparse warnings: (new ones prefixed by >>)
>> fs/xfs/xfs_log_cil.c:863:39: sparse: sparse: incorrect type in initializer (different base types) @@ expected unsigned int [usertype] tid @@ got restricted __be32 [usertype] @@
fs/xfs/xfs_log_cil.c:863:39: sparse: expected unsigned int [usertype] tid
fs/xfs/xfs_log_cil.c:863:39: sparse: got restricted __be32 [usertype]
>> fs/xfs/xfs_log_cil.c:868:28: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __be32 [usertype] oh_tid @@ got unsigned int [usertype] tid @@
fs/xfs/xfs_log_cil.c:868:28: sparse: expected restricted __be32 [usertype] oh_tid
fs/xfs/xfs_log_cil.c:868:28: sparse: got unsigned int [usertype] tid
fs/xfs/xfs_log_cil.c:878:28: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __be32 [usertype] oh_tid @@ got unsigned int [usertype] tid @@
fs/xfs/xfs_log_cil.c:878:28: sparse: expected restricted __be32 [usertype] oh_tid
fs/xfs/xfs_log_cil.c:878:28: sparse: got unsigned int [usertype] tid
fs/xfs/xfs_log_cil.c:915:1: sparse: sparse: context imbalance in 'xlog_cil_push_work' - different lock contexts for basic block
fs/xfs/xfs_log_cil.c:1176:1: sparse: sparse: context imbalance in 'xlog_cil_push_background' - wrong count at exit
fs/xfs/xfs_log_cil.c:1360:9: sparse: sparse: context imbalance in 'xlog_cil_commit' - unexpected unlock
vim +863 fs/xfs/xfs_log_cil.c
842
843 /*
844 * Build a checkpoint transaction header to begin the journal transaction. We
845 * need to account for the space used by the transaction header here as it is
846 * not accounted for in xlog_write().
847 *
848 * This is the only place we write a transaction header, so we also build the
849 * log opheaders that indicate the start of a log transaction and wrap the
850 * transaction header. We keep the start record in it's own log vector rather
851 * than compacting them into a single region as this ends up making the logic
852 * in xlog_write() for handling empty opheaders for start, commit and unmount
853 * records much simpler.
854 */
855 static void
856 xlog_cil_build_trans_hdr(
857 struct xfs_cil_ctx *ctx,
858 struct xlog_cil_trans_hdr *hdr,
859 struct xfs_log_vec *lvhdr,
860 int num_iovecs)
861 {
862 struct xlog_ticket *tic = ctx->ticket;
> 863 uint32_t tid = cpu_to_be32(tic->t_tid);
864
865 memset(hdr, 0, sizeof(*hdr));
866
867 /* Log start record */
> 868 hdr->oph[0].oh_tid = tid;
869 hdr->oph[0].oh_clientid = XFS_TRANSACTION;
870 hdr->oph[0].oh_flags = XLOG_START_TRANS;
871
872 /* log iovec region pointer */
873 hdr->lhdr[0].i_addr = &hdr->oph[0];
874 hdr->lhdr[0].i_len = sizeof(struct xlog_op_header);
875 hdr->lhdr[0].i_type = XLOG_REG_TYPE_LRHEADER;
876
877 /* log opheader */
878 hdr->oph[1].oh_tid = tid;
879 hdr->oph[1].oh_clientid = XFS_TRANSACTION;
880
881 /* transaction header */
882 hdr->thdr.th_magic = XFS_TRANS_HEADER_MAGIC;
883 hdr->thdr.th_type = XFS_TRANS_CHECKPOINT;
884 hdr->thdr.th_tid = tid;
885 hdr->thdr.th_num_items = num_iovecs;
886
887 /* log iovec region pointer */
888 hdr->lhdr[1].i_addr = &hdr->oph[1];
889 hdr->lhdr[1].i_len = sizeof(struct xlog_op_header) +
890 sizeof(struct xfs_trans_header);
891 hdr->lhdr[1].i_type = XLOG_REG_TYPE_TRANSHDR;
892
893 tic->t_curr_res -= hdr->lhdr[0].i_len + hdr->lhdr[1].i_len;
894
895 lvhdr->lv_niovecs = 2;
896 lvhdr->lv_iovecp = &hdr->lhdr[0];
897 lvhdr->lv_next = ctx->lv_chain;
898 }
899
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
10 months
[android-common:android12-5.4 13960/19166] kernel/seccomp.c:2041:41: sparse: sparse: incorrect type in argument 3 (different address spaces)
by kernel test robot
tree: https://android.googlesource.com/kernel/common android12-5.4
head: b9c4f1b9b54a54b68bf995eae93a5f300f2506d3
commit: 5444477e8a4d31f6e6ff720c2d018d06e405bcc1 [13960/19166] UPSTREAM: seccomp: Remove bogus __user annotations
config: i386-randconfig-s002-20211116 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.4-dirty
git remote add android-common https://android.googlesource.com/kernel/common
git fetch --no-tags android-common android12-5.4
git checkout 5444477e8a4d31f6e6ff720c2d018d06e405bcc1
# save the attached .config to linux build tree
make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=i386
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
sparse warnings: (new ones prefixed by >>)
>> kernel/seccomp.c:2041:41: sparse: sparse: incorrect type in argument 3 (different address spaces) @@ expected void [noderef] <asn:1> * @@ got void *buffer @@
kernel/seccomp.c:2041:41: sparse: expected void [noderef] <asn:1> *
kernel/seccomp.c:2041:41: sparse: got void *buffer
kernel/seccomp.c:2059:40: sparse: sparse: incorrect type in argument 3 (different address spaces) @@ expected void [noderef] <asn:1> * @@ got void *buffer @@
kernel/seccomp.c:2059:40: sparse: expected void [noderef] <asn:1> *
kernel/seccomp.c:2059:40: sparse: got void *buffer
>> kernel/seccomp.c:2115:54: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void *buffer @@ got void [noderef] <asn:1> *buffer @@
kernel/seccomp.c:2115:54: sparse: expected void *buffer
kernel/seccomp.c:2115:54: sparse: got void [noderef] <asn:1> *buffer
kernel/seccomp.c:2119:53: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void *buffer @@ got void [noderef] <asn:1> *buffer @@
kernel/seccomp.c:2119:53: sparse: expected void *buffer
kernel/seccomp.c:2119:53: sparse: got void [noderef] <asn:1> *buffer
vim +2041 kernel/seccomp.c
0ddec0fc890020 Tyler Hicks 2017-08-11 2025
5444477e8a4d31 Jann Horn 2020-11-20 2026 static int read_actions_logged(struct ctl_table *ro_table, void *buffer,
d013db029491b4 Tyler Hicks 2018-05-04 2027 size_t *lenp, loff_t *ppos)
0ddec0fc890020 Tyler Hicks 2017-08-11 2028 {
0ddec0fc890020 Tyler Hicks 2017-08-11 2029 char names[sizeof(seccomp_actions_avail)];
0ddec0fc890020 Tyler Hicks 2017-08-11 2030 struct ctl_table table;
0ddec0fc890020 Tyler Hicks 2017-08-11 2031
0ddec0fc890020 Tyler Hicks 2017-08-11 2032 memset(names, 0, sizeof(names));
0ddec0fc890020 Tyler Hicks 2017-08-11 2033
0ddec0fc890020 Tyler Hicks 2017-08-11 2034 if (!seccomp_names_from_actions_logged(names, sizeof(names),
beb44acaf000c9 Tyler Hicks 2018-05-04 2035 seccomp_actions_logged, " "))
0ddec0fc890020 Tyler Hicks 2017-08-11 2036 return -EINVAL;
d013db029491b4 Tyler Hicks 2018-05-04 2037
d013db029491b4 Tyler Hicks 2018-05-04 2038 table = *ro_table;
d013db029491b4 Tyler Hicks 2018-05-04 2039 table.data = names;
d013db029491b4 Tyler Hicks 2018-05-04 2040 table.maxlen = sizeof(names);
d013db029491b4 Tyler Hicks 2018-05-04 @2041 return proc_dostring(&table, 0, buffer, lenp, ppos);
0ddec0fc890020 Tyler Hicks 2017-08-11 2042 }
0ddec0fc890020 Tyler Hicks 2017-08-11 2043
5444477e8a4d31 Jann Horn 2020-11-20 2044 static int write_actions_logged(struct ctl_table *ro_table, void *buffer,
ea6eca778500b0 Tyler Hicks 2018-05-04 2045 size_t *lenp, loff_t *ppos, u32 *actions_logged)
d013db029491b4 Tyler Hicks 2018-05-04 2046 {
d013db029491b4 Tyler Hicks 2018-05-04 2047 char names[sizeof(seccomp_actions_avail)];
d013db029491b4 Tyler Hicks 2018-05-04 2048 struct ctl_table table;
d013db029491b4 Tyler Hicks 2018-05-04 2049 int ret;
d013db029491b4 Tyler Hicks 2018-05-04 2050
d013db029491b4 Tyler Hicks 2018-05-04 2051 if (!capable(CAP_SYS_ADMIN))
d013db029491b4 Tyler Hicks 2018-05-04 2052 return -EPERM;
d013db029491b4 Tyler Hicks 2018-05-04 2053
d013db029491b4 Tyler Hicks 2018-05-04 2054 memset(names, 0, sizeof(names));
d013db029491b4 Tyler Hicks 2018-05-04 2055
0ddec0fc890020 Tyler Hicks 2017-08-11 2056 table = *ro_table;
0ddec0fc890020 Tyler Hicks 2017-08-11 2057 table.data = names;
0ddec0fc890020 Tyler Hicks 2017-08-11 2058 table.maxlen = sizeof(names);
d013db029491b4 Tyler Hicks 2018-05-04 2059 ret = proc_dostring(&table, 1, buffer, lenp, ppos);
0ddec0fc890020 Tyler Hicks 2017-08-11 2060 if (ret)
0ddec0fc890020 Tyler Hicks 2017-08-11 2061 return ret;
0ddec0fc890020 Tyler Hicks 2017-08-11 2062
ea6eca778500b0 Tyler Hicks 2018-05-04 2063 if (!seccomp_actions_logged_from_names(actions_logged, table.data))
0ddec0fc890020 Tyler Hicks 2017-08-11 2064 return -EINVAL;
0ddec0fc890020 Tyler Hicks 2017-08-11 2065
ea6eca778500b0 Tyler Hicks 2018-05-04 2066 if (*actions_logged & SECCOMP_LOG_ALLOW)
0ddec0fc890020 Tyler Hicks 2017-08-11 2067 return -EINVAL;
0ddec0fc890020 Tyler Hicks 2017-08-11 2068
ea6eca778500b0 Tyler Hicks 2018-05-04 2069 seccomp_actions_logged = *actions_logged;
d013db029491b4 Tyler Hicks 2018-05-04 2070 return 0;
0ddec0fc890020 Tyler Hicks 2017-08-11 2071 }
0ddec0fc890020 Tyler Hicks 2017-08-11 2072
ea6eca778500b0 Tyler Hicks 2018-05-04 2073 static void audit_actions_logged(u32 actions_logged, u32 old_actions_logged,
ea6eca778500b0 Tyler Hicks 2018-05-04 2074 int ret)
ea6eca778500b0 Tyler Hicks 2018-05-04 2075 {
ea6eca778500b0 Tyler Hicks 2018-05-04 2076 char names[sizeof(seccomp_actions_avail)];
ea6eca778500b0 Tyler Hicks 2018-05-04 2077 char old_names[sizeof(seccomp_actions_avail)];
ea6eca778500b0 Tyler Hicks 2018-05-04 2078 const char *new = names;
ea6eca778500b0 Tyler Hicks 2018-05-04 2079 const char *old = old_names;
ea6eca778500b0 Tyler Hicks 2018-05-04 2080
ea6eca778500b0 Tyler Hicks 2018-05-04 2081 if (!audit_enabled)
ea6eca778500b0 Tyler Hicks 2018-05-04 2082 return;
ea6eca778500b0 Tyler Hicks 2018-05-04 2083
ea6eca778500b0 Tyler Hicks 2018-05-04 2084 memset(names, 0, sizeof(names));
ea6eca778500b0 Tyler Hicks 2018-05-04 2085 memset(old_names, 0, sizeof(old_names));
ea6eca778500b0 Tyler Hicks 2018-05-04 2086
ea6eca778500b0 Tyler Hicks 2018-05-04 2087 if (ret)
ea6eca778500b0 Tyler Hicks 2018-05-04 2088 new = "?";
ea6eca778500b0 Tyler Hicks 2018-05-04 2089 else if (!actions_logged)
ea6eca778500b0 Tyler Hicks 2018-05-04 2090 new = "(none)";
ea6eca778500b0 Tyler Hicks 2018-05-04 2091 else if (!seccomp_names_from_actions_logged(names, sizeof(names),
ea6eca778500b0 Tyler Hicks 2018-05-04 2092 actions_logged, ","))
ea6eca778500b0 Tyler Hicks 2018-05-04 2093 new = "?";
ea6eca778500b0 Tyler Hicks 2018-05-04 2094
ea6eca778500b0 Tyler Hicks 2018-05-04 2095 if (!old_actions_logged)
ea6eca778500b0 Tyler Hicks 2018-05-04 2096 old = "(none)";
ea6eca778500b0 Tyler Hicks 2018-05-04 2097 else if (!seccomp_names_from_actions_logged(old_names,
ea6eca778500b0 Tyler Hicks 2018-05-04 2098 sizeof(old_names),
ea6eca778500b0 Tyler Hicks 2018-05-04 2099 old_actions_logged, ","))
ea6eca778500b0 Tyler Hicks 2018-05-04 2100 old = "?";
ea6eca778500b0 Tyler Hicks 2018-05-04 2101
ea6eca778500b0 Tyler Hicks 2018-05-04 2102 return audit_seccomp_actions_logged(new, old, !ret);
ea6eca778500b0 Tyler Hicks 2018-05-04 2103 }
ea6eca778500b0 Tyler Hicks 2018-05-04 2104
d013db029491b4 Tyler Hicks 2018-05-04 2105 static int seccomp_actions_logged_handler(struct ctl_table *ro_table, int write,
d013db029491b4 Tyler Hicks 2018-05-04 2106 void __user *buffer, size_t *lenp,
d013db029491b4 Tyler Hicks 2018-05-04 2107 loff_t *ppos)
d013db029491b4 Tyler Hicks 2018-05-04 2108 {
ea6eca778500b0 Tyler Hicks 2018-05-04 2109 int ret;
ea6eca778500b0 Tyler Hicks 2018-05-04 2110
ea6eca778500b0 Tyler Hicks 2018-05-04 2111 if (write) {
ea6eca778500b0 Tyler Hicks 2018-05-04 2112 u32 actions_logged = 0;
ea6eca778500b0 Tyler Hicks 2018-05-04 2113 u32 old_actions_logged = seccomp_actions_logged;
ea6eca778500b0 Tyler Hicks 2018-05-04 2114
ea6eca778500b0 Tyler Hicks 2018-05-04 @2115 ret = write_actions_logged(ro_table, buffer, lenp, ppos,
ea6eca778500b0 Tyler Hicks 2018-05-04 2116 &actions_logged);
ea6eca778500b0 Tyler Hicks 2018-05-04 2117 audit_actions_logged(actions_logged, old_actions_logged, ret);
ea6eca778500b0 Tyler Hicks 2018-05-04 2118 } else
ea6eca778500b0 Tyler Hicks 2018-05-04 2119 ret = read_actions_logged(ro_table, buffer, lenp, ppos);
ea6eca778500b0 Tyler Hicks 2018-05-04 2120
ea6eca778500b0 Tyler Hicks 2018-05-04 2121 return ret;
0ddec0fc890020 Tyler Hicks 2017-08-11 2122 }
0ddec0fc890020 Tyler Hicks 2017-08-11 2123
:::::: The code at line 2041 was first introduced by commit
:::::: d013db029491b49e1459d5a55ecd9ec1be1447ca seccomp: Separate read and write code for actions_logged sysctl
:::::: TO: Tyler Hicks <tyhicks(a)canonical.com>
:::::: CC: Paul Moore <paul(a)paul-moore.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
10 months, 1 week
Re: [RFC PATCH v4 net-next 17/23] pinctrl: microchip-sgpio: expose microchip_sgpio_core_probe interface
by kernel test robot
Hi Colin,
[FYI, it's a private test report for your RFC patch.]
[auto build test WARNING on net-next/master]
url: https://github.com/0day-ci/linux/commits/Colin-Foster/add-support-for-VSC...
base: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git 3ad4b7c81a992463c29ae130332c217607fe4452
config: openrisc-randconfig-r033-20211116 (attached as .config)
compiler: or1k-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/687241afbab24f5d57bb22b23b4a7c3ad...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Colin-Foster/add-support-for-VSC75XX-control-over-SPI/20211116-143245
git checkout 687241afbab24f5d57bb22b23b4a7c3ad941702e
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross ARCH=openrisc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
>> drivers/pinctrl/pinctrl-microchip-sgpio.c:838:5: warning: no previous prototype for 'microchip_sgpio_core_probe' [-Wmissing-prototypes]
838 | int microchip_sgpio_core_probe(struct device *dev, struct device_node *node,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
vim +/microchip_sgpio_core_probe +838 drivers/pinctrl/pinctrl-microchip-sgpio.c
837
> 838 int microchip_sgpio_core_probe(struct device *dev, struct device_node *node,
839 struct regmap *regmap, u32 offset)
840 {
841 int div_clock = 0, ret, port, i, nbanks;
842 struct fwnode_handle *child, *fwnode;
843 struct reset_control *reset;
844 struct sgpio_priv *priv;
845 struct clk *clk;
846 u32 val;
847
848 priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
849 if (!priv)
850 return -ENOMEM;
851
852 priv->dev = dev;
853 priv->dev_node = node;
854
855 fwnode = of_fwnode_handle(node);
856
857 reset = devm_reset_control_get_optional_shared(dev, "switch");
858 if (IS_ERR(reset))
859 return dev_err_probe(dev, PTR_ERR(reset), "Failed to get reset\n");
860 reset_control_reset(reset);
861
862 clk = devm_get_clk_from_child(dev, node, NULL);
863 if (IS_ERR(clk))
864 return dev_err_probe(dev, PTR_ERR(clk), "Failed to get clock\n");
865
866 div_clock = clk_get_rate(clk);
867 if (fwnode_property_read_u32(fwnode, "bus-frequency", &priv->clock))
868 priv->clock = 12500000;
869 if (priv->clock == 0 || priv->clock > (div_clock / 2)) {
870 dev_err(dev, "Invalid frequency %d\n", priv->clock);
871 return -EINVAL;
872 }
873
874 priv->regs = regmap;
875 priv->regs_offset = 0;
876 priv->properties = microchip_sgpio_match_from_node(node);
877 priv->in.is_input = true;
878
879 if (!priv->properties)
880 return dev_err_probe(dev, -EINVAL, "No property match found\n");
881
882 /* Get rest of device properties */
883 ret = microchip_sgpio_get_ports(priv);
884 if (ret)
885 return ret;
886
887 nbanks = fwnode_get_child_node_count(fwnode);
888 if (nbanks != 2) {
889 dev_err(dev, "Must have 2 banks (have %d)\n", nbanks);
890 return -EINVAL;
891 }
892
893 i = 0;
894 fwnode_for_each_child_node(fwnode, child) {
895 ret = microchip_sgpio_register_bank(dev, priv, child, i++);
896 if (ret) {
897 fwnode_handle_put(child);
898 return ret;
899 }
900 }
901
902 if (priv->in.gpio.ngpio != priv->out.gpio.ngpio) {
903 dev_err(dev, "Banks must have same GPIO count\n");
904 return -ERANGE;
905 }
906
907 sgpio_configure_bitstream(priv);
908
909 val = max(2U, div_clock / priv->clock);
910 sgpio_configure_clock(priv, val);
911
912 for (port = 0; port < SGPIO_BITS_PER_WORD; port++)
913 sgpio_writel(priv, 0, REG_PORT_CONFIG, port);
914 sgpio_writel(priv, priv->ports, REG_PORT_ENABLE, 0);
915
916 return 0;
917 }
918 EXPORT_SYMBOL(microchip_sgpio_core_probe);
919
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
10 months, 1 week
Re: [PATCHv7 09/11] powerpc: avoid discarding flags in system_call_exception()
by kernel test robot
Hi Mark,
I love your patch! Perhaps something to improve:
[auto build test WARNING on arm64/for-next/core]
[also build test WARNING on powerpc/next linus/master v5.16-rc1 next-20211117]
[cannot apply to tip/core/entry]
[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/Mark-Rutland/thread_info-use-hel...
base: https://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-next/core
config: powerpc-allyesconfig (attached as .config)
compiler: powerpc-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/e1afc9f363490d24e2c29f28f27ba8673...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Mark-Rutland/thread_info-use-helpers-to-snapshot-thread-flags/20211118-004322
git checkout e1afc9f363490d24e2c29f28f27ba8673d9c8612
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross ARCH=powerpc
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/powerpc/kernel/interrupt.c: In function 'system_call_exception':
>> arch/powerpc/kernel/interrupt.c:151:64: warning: passing argument 2 of 'set_bits' makes pointer from integer without a cast [-Wint-conversion]
151 | set_bits(_TIF_RESTOREALL, current_thread_info()->flags);
In file included from include/linux/bitops.h:33,
from include/linux/kernel.h:12,
from include/linux/list.h:9,
from include/linux/rculist.h:10,
from include/linux/pid.h:5,
from include/linux/sched.h:14,
from include/linux/context_tracking.h:5,
from arch/powerpc/kernel/interrupt.c:3:
arch/powerpc/include/asm/bitops.h:67:41: note: expected 'volatile long unsigned int *' but argument is of type 'long unsigned int'
67 | volatile unsigned long *_p) \
| ~~~~~~~~~~~~~~~~~~~~~~~~^~
arch/powerpc/include/asm/bitops.h:82:1: note: in expansion of macro 'DEFINE_BITOP'
82 | DEFINE_BITOP(set_bits, or, "")
| ^~~~~~~~~~~~
vim +/set_bits +151 arch/powerpc/kernel/interrupt.c
76
77 /* Has to run notrace because it is entered not completely "reconciled" */
78 notrace long system_call_exception(long r3, long r4, long r5,
79 long r6, long r7, long r8,
80 unsigned long r0, struct pt_regs *regs)
81 {
82 syscall_fn f;
83
84 kuep_lock();
85
86 regs->orig_gpr3 = r3;
87
88 if (IS_ENABLED(CONFIG_PPC_IRQ_SOFT_MASK_DEBUG))
89 BUG_ON(irq_soft_mask_return() != IRQS_ALL_DISABLED);
90
91 trace_hardirqs_off(); /* finish reconciling */
92
93 CT_WARN_ON(ct_state() == CONTEXT_KERNEL);
94 user_exit_irqoff();
95
96 BUG_ON(regs_is_unrecoverable(regs));
97 BUG_ON(!(regs->msr & MSR_PR));
98 BUG_ON(arch_irq_disabled_regs(regs));
99
100 #ifdef CONFIG_PPC_PKEY
101 if (mmu_has_feature(MMU_FTR_PKEY)) {
102 unsigned long amr, iamr;
103 bool flush_needed = false;
104 /*
105 * When entering from userspace we mostly have the AMR/IAMR
106 * different from kernel default values. Hence don't compare.
107 */
108 amr = mfspr(SPRN_AMR);
109 iamr = mfspr(SPRN_IAMR);
110 regs->amr = amr;
111 regs->iamr = iamr;
112 if (mmu_has_feature(MMU_FTR_BOOK3S_KUAP)) {
113 mtspr(SPRN_AMR, AMR_KUAP_BLOCKED);
114 flush_needed = true;
115 }
116 if (mmu_has_feature(MMU_FTR_BOOK3S_KUEP)) {
117 mtspr(SPRN_IAMR, AMR_KUEP_BLOCKED);
118 flush_needed = true;
119 }
120 if (flush_needed)
121 isync();
122 } else
123 #endif
124 kuap_assert_locked();
125
126 booke_restore_dbcr0();
127
128 account_cpu_user_entry();
129
130 account_stolen_time();
131
132 /*
133 * This is not required for the syscall exit path, but makes the
134 * stack frame look nicer. If this was initialised in the first stack
135 * frame, or if the unwinder was taught the first stack frame always
136 * returns to user with IRQS_ENABLED, this store could be avoided!
137 */
138 irq_soft_mask_regs_set_state(regs, IRQS_ENABLED);
139
140 /*
141 * If system call is called with TM active, set _TIF_RESTOREALL to
142 * prevent RFSCV being used to return to userspace, because POWER9
143 * TM implementation has problems with this instruction returning to
144 * transactional state. Final register values are not relevant because
145 * the transaction will be aborted upon return anyway. Or in the case
146 * of unsupported_scv SIGILL fault, the return state does not much
147 * matter because it's an edge case.
148 */
149 if (IS_ENABLED(CONFIG_PPC_TRANSACTIONAL_MEM) &&
150 unlikely(MSR_TM_TRANSACTIONAL(regs->msr)))
> 151 set_bits(_TIF_RESTOREALL, current_thread_info()->flags);
152
153 /*
154 * If the system call was made with a transaction active, doom it and
155 * return without performing the system call. Unless it was an
156 * unsupported scv vector, in which case it's treated like an illegal
157 * instruction.
158 */
159 #ifdef CONFIG_PPC_TRANSACTIONAL_MEM
160 if (unlikely(MSR_TM_TRANSACTIONAL(regs->msr)) &&
161 !trap_is_unsupported_scv(regs)) {
162 /* Enable TM in the kernel, and disable EE (for scv) */
163 hard_irq_disable();
164 mtmsr(mfmsr() | MSR_TM);
165
166 /* tabort, this dooms the transaction, nothing else */
167 asm volatile(".long 0x7c00071d | ((%0) << 16)"
168 :: "r"(TM_CAUSE_SYSCALL|TM_CAUSE_PERSISTENT));
169
170 /*
171 * Userspace will never see the return value. Execution will
172 * resume after the tbegin. of the aborted transaction with the
173 * checkpointed register state. A context switch could occur
174 * or signal delivered to the process before resuming the
175 * doomed transaction context, but that should all be handled
176 * as expected.
177 */
178 return -ENOSYS;
179 }
180 #endif // CONFIG_PPC_TRANSACTIONAL_MEM
181
182 local_irq_enable();
183
184 if (unlikely(current_thread_info()->flags & _TIF_SYSCALL_DOTRACE)) {
185 if (unlikely(trap_is_unsupported_scv(regs))) {
186 /* Unsupported scv vector */
187 _exception(SIGILL, regs, ILL_ILLOPC, regs->nip);
188 return regs->gpr[3];
189 }
190 /*
191 * We use the return value of do_syscall_trace_enter() as the
192 * syscall number. If the syscall was rejected for any reason
193 * do_syscall_trace_enter() returns an invalid syscall number
194 * and the test against NR_syscalls will fail and the return
195 * value to be used is in regs->gpr[3].
196 */
197 r0 = do_syscall_trace_enter(regs);
198 if (unlikely(r0 >= NR_syscalls))
199 return regs->gpr[3];
200 r3 = regs->gpr[3];
201 r4 = regs->gpr[4];
202 r5 = regs->gpr[5];
203 r6 = regs->gpr[6];
204 r7 = regs->gpr[7];
205 r8 = regs->gpr[8];
206
207 } else if (unlikely(r0 >= NR_syscalls)) {
208 if (unlikely(trap_is_unsupported_scv(regs))) {
209 /* Unsupported scv vector */
210 _exception(SIGILL, regs, ILL_ILLOPC, regs->nip);
211 return regs->gpr[3];
212 }
213 return -ENOSYS;
214 }
215
216 /* May be faster to do array_index_nospec? */
217 barrier_nospec();
218
219 if (unlikely(is_compat_task())) {
220 f = (void *)compat_sys_call_table[r0];
221
222 r3 &= 0x00000000ffffffffULL;
223 r4 &= 0x00000000ffffffffULL;
224 r5 &= 0x00000000ffffffffULL;
225 r6 &= 0x00000000ffffffffULL;
226 r7 &= 0x00000000ffffffffULL;
227 r8 &= 0x00000000ffffffffULL;
228
229 } else {
230 f = (void *)sys_call_table[r0];
231 }
232
233 return f(r3, r4, r5, r6, r7, r8);
234 }
235
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
10 months, 1 week
drivers/clk/clk-gemini.c:64: warning: expecting prototype for struct gemini_data_data. Prototype was for struct gemini_gate_data instead
by kernel test robot
Hi Nikita,
First bad commit (maybe != root cause):
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: ee1703cda8dc777e937dec172da55beaf1a74919
commit: 9645ccc7bd7a16cd73c3be9dee70cd702b03be37 ep93xx: clock: convert in-place to COMMON_CLK
date: 4 weeks ago
config: arm-randconfig-r005-20211116 (attached as .config)
compiler: arm-linux-gnueabi-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://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 9645ccc7bd7a16cd73c3be9dee70cd702b03be37
# save the attached .config to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=arm SHELL=/bin/bash drivers/clk/ drivers/gpu/drm/tegra/
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/clk/clk-gemini.c:64: warning: expecting prototype for struct gemini_data_data. Prototype was for struct gemini_gate_data instead
--
drivers/gpu/drm/tegra/dc.c: In function 'tegra_crtc_update_memory_bandwidth':
drivers/gpu/drm/tegra/dc.c:1848:53: warning: variable 'new_dc_state' set but not used [-Wunused-but-set-variable]
1848 | const struct tegra_dc_state *old_dc_state, *new_dc_state;
| ^~~~~~~~~~~~
drivers/gpu/drm/tegra/dc.c:1848:38: warning: variable 'old_dc_state' set but not used [-Wunused-but-set-variable]
1848 | const struct tegra_dc_state *old_dc_state, *new_dc_state;
| ^~~~~~~~~~~~
drivers/gpu/drm/tegra/dc.c: In function 'tegra_crtc_calculate_memory_bandwidth':
>> drivers/gpu/drm/tegra/dc.c:2228:38: warning: variable 'old_state' set but not used [-Wunused-but-set-variable]
2228 | const struct drm_crtc_state *old_state;
| ^~~~~~~~~
vim +64 drivers/clk/clk-gemini.c
846423f96721d5 Linus Walleij 2017-06-21 51
846423f96721d5 Linus Walleij 2017-06-21 52 /**
846423f96721d5 Linus Walleij 2017-06-21 53 * struct gemini_data_data - Gemini gated clocks
846423f96721d5 Linus Walleij 2017-06-21 54 * @bit_idx: the bit used to gate this clock in the clock register
846423f96721d5 Linus Walleij 2017-06-21 55 * @name: the clock name
846423f96721d5 Linus Walleij 2017-06-21 56 * @parent_name: the name of the parent clock
846423f96721d5 Linus Walleij 2017-06-21 57 * @flags: standard clock framework flags
846423f96721d5 Linus Walleij 2017-06-21 58 */
846423f96721d5 Linus Walleij 2017-06-21 59 struct gemini_gate_data {
846423f96721d5 Linus Walleij 2017-06-21 60 u8 bit_idx;
846423f96721d5 Linus Walleij 2017-06-21 61 const char *name;
846423f96721d5 Linus Walleij 2017-06-21 62 const char *parent_name;
846423f96721d5 Linus Walleij 2017-06-21 63 unsigned long flags;
846423f96721d5 Linus Walleij 2017-06-21 @64 };
846423f96721d5 Linus Walleij 2017-06-21 65
:::::: The code at line 64 was first introduced by commit
:::::: 846423f96721d5c1c2fad6b43b3f1359002907d5 clk: Add Gemini SoC clock controller
:::::: TO: Linus Walleij <linus.walleij(a)linaro.org>
:::::: CC: Stephen Boyd <sboyd(a)codeaurora.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
10 months, 1 week
drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn301/dcn301_fpu.c:304:1: warning: the frame size of 1096 bytes is larger than 1024 bytes
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: ee1703cda8dc777e937dec172da55beaf1a74919
commit: 31484207feb23e6cdb12827560442ab294855923 drm/amd/display: move FPU associated DCN301 code to DML folder
date: 3 weeks ago
config: i386-randconfig-a005-20211117 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
# 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 31484207feb23e6cdb12827560442ab294855923
# save the attached .config to linux build tree
make W=1 ARCH=i386
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn301/dcn301_fpu.c: In function 'dcn301_update_bw_bounding_box':
>> drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn301/dcn301_fpu.c:304:1: warning: the frame size of 1096 bytes is larger than 1024 bytes [-Wframe-larger-than=]
304 | }
| ^
vim +304 drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn301/dcn301_fpu.c
247
248 void dcn301_update_bw_bounding_box(struct dc *dc, struct clk_bw_params *bw_params)
249 {
250 struct dcn301_resource_pool *pool = TO_DCN301_RES_POOL(dc->res_pool);
251 struct clk_limit_table *clk_table = &bw_params->clk_table;
252 struct _vcs_dpi_voltage_scaling_st clock_limits[DC__VOLTAGE_STATES];
253 unsigned int i, closest_clk_lvl;
254 int j;
255
256 dc_assert_fp_enabled();
257
258 /* Default clock levels are used for diags, which may lead to overclocking. */
259 if (!IS_DIAG_DC(dc->ctx->dce_environment)) {
260 dcn3_01_ip.max_num_otg = pool->base.res_cap->num_timing_generator;
261 dcn3_01_ip.max_num_dpp = pool->base.pipe_count;
262 dcn3_01_soc.num_chans = bw_params->num_channels;
263
264 ASSERT(clk_table->num_entries);
265 for (i = 0; i < clk_table->num_entries; i++) {
266 /* loop backwards*/
267 for (closest_clk_lvl = 0, j = dcn3_01_soc.num_states - 1; j >= 0; j--) {
268 if ((unsigned int) dcn3_01_soc.clock_limits[j].dcfclk_mhz <= clk_table->entries[i].dcfclk_mhz) {
269 closest_clk_lvl = j;
270 break;
271 }
272 }
273
274 clock_limits[i].state = i;
275 clock_limits[i].dcfclk_mhz = clk_table->entries[i].dcfclk_mhz;
276 clock_limits[i].fabricclk_mhz = clk_table->entries[i].fclk_mhz;
277 clock_limits[i].socclk_mhz = clk_table->entries[i].socclk_mhz;
278 clock_limits[i].dram_speed_mts = clk_table->entries[i].memclk_mhz * 2;
279
280 clock_limits[i].dispclk_mhz = dcn3_01_soc.clock_limits[closest_clk_lvl].dispclk_mhz;
281 clock_limits[i].dppclk_mhz = dcn3_01_soc.clock_limits[closest_clk_lvl].dppclk_mhz;
282 clock_limits[i].dram_bw_per_chan_gbps = dcn3_01_soc.clock_limits[closest_clk_lvl].dram_bw_per_chan_gbps;
283 clock_limits[i].dscclk_mhz = dcn3_01_soc.clock_limits[closest_clk_lvl].dscclk_mhz;
284 clock_limits[i].dtbclk_mhz = dcn3_01_soc.clock_limits[closest_clk_lvl].dtbclk_mhz;
285 clock_limits[i].phyclk_d18_mhz = dcn3_01_soc.clock_limits[closest_clk_lvl].phyclk_d18_mhz;
286 clock_limits[i].phyclk_mhz = dcn3_01_soc.clock_limits[closest_clk_lvl].phyclk_mhz;
287 }
288
289 for (i = 0; i < clk_table->num_entries; i++)
290 dcn3_01_soc.clock_limits[i] = clock_limits[i];
291
292 if (clk_table->num_entries) {
293 dcn3_01_soc.num_states = clk_table->num_entries;
294 /* duplicate last level */
295 dcn3_01_soc.clock_limits[dcn3_01_soc.num_states] = dcn3_01_soc.clock_limits[dcn3_01_soc.num_states - 1];
296 dcn3_01_soc.clock_limits[dcn3_01_soc.num_states].state = dcn3_01_soc.num_states;
297 }
298 }
299
300 dcn3_01_soc.dispclk_dppclk_vco_speed_mhz = dc->clk_mgr->dentist_vco_freq_khz / 1000.0;
301 dc->dml.soc.dispclk_dppclk_vco_speed_mhz = dc->clk_mgr->dentist_vco_freq_khz / 1000.0;
302
303 dml_init_instance(&dc->dml, &dcn3_01_soc, &dcn3_01_ip, DML_PROJECT_DCN30);
> 304 }
305
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
10 months, 1 week