undefined reference to `memcg_bulk_post_charge_hook'
by kernel test robot
tree: https://github.com/0day-ci/linux/commits/UPDATE-20211012-230008/Vasily-Av...
head: 2b4ad533abe1afd3ece17453585fd0f57e4fd413
commit: 2b4ad533abe1afd3ece17453585fd0f57e4fd413 memcg: enable memory accounting in __alloc_pages_bulk
date: 2 days ago
config: riscv-randconfig-c024-20211014 (attached as .config)
compiler: riscv32-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/2b4ad533abe1afd3ece17453585fd0f57...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review UPDATE-20211012-230008/Vasily-Averin/memcg-enable-memory-accounting-in-__alloc_pages_bulk/20211008-172703
git checkout 2b4ad533abe1afd3ece17453585fd0f57e4fd413
# 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=riscv SHELL=/bin/bash
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
riscv32-linux-ld: mm/page_alloc.o: in function `.L0 ':
page_alloc.c:(.text+0xd3a4): undefined reference to `memcg_bulk_pre_charge_hook'
riscv32-linux-ld: mm/page_alloc.o: in function `.L2370':
page_alloc.c:(.text+0xd4d8): undefined reference to `memcg_bulk_charge_hook'
riscv32-linux-ld: mm/page_alloc.o: in function `.L0 ':
page_alloc.c:(.text+0xd608): undefined reference to `memcg_bulk_post_charge_hook'
riscv32-linux-ld: mm/page_alloc.o: in function `__alloc_pages':
>> (.text+0xd6a4): undefined reference to `memcg_bulk_post_charge_hook'
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
11 months, 1 week
[frank-w-bpi-r2-4.14:5.15-bpi-r2-pro 90/90] drivers/gpu/drm/bridge/display-connector.c:274:17: warning: format '%s' expects argument of type 'char *', but argument 4 has type 'int'
by kernel test robot
tree: https://github.com/frank-w/BPI-R2-4.14 5.15-bpi-r2-pro
head: 14a93e4b341569bdb9f0456c3934e62402a82174
commit: 14a93e4b341569bdb9f0456c3934e62402a82174 [90/90] more porting
config: h8300-buildonly-randconfig-r003-20211014 (attached as .config)
compiler: h8300-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/frank-w/BPI-R2-4.14/commit/14a93e4b341569bdb9f0456c393...
git remote add frank-w-bpi-r2-4.14 https://github.com/frank-w/BPI-R2-4.14
git fetch --no-tags frank-w-bpi-r2-4.14 5.15-bpi-r2-pro
git checkout 14a93e4b341569bdb9f0456c3934e62402a82174
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross ARCH=h8300
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
In file included from include/linux/device.h:15,
from include/linux/acpi.h:15,
from include/linux/i2c.h:13,
from drivers/gpu/drm/bridge/display-connector.c:7:
drivers/gpu/drm/bridge/display-connector.c: In function 'display_connector_probe':
drivers/gpu/drm/bridge/display-connector.c:275:17: error: implicit declaration of function 'drm_get_connector_type_name'; did you mean 'drm_get_connector_name'? [-Werror=implicit-function-declaration]
275 | drm_get_connector_type_name(conn->bridge.type),
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/dev_printk.h:129:48: note: in definition of macro 'dev_printk'
129 | _dev_printk(level, dev, fmt, ##__VA_ARGS__); \
| ^~~~~~~~~~~
drivers/gpu/drm/bridge/display-connector.c:273:9: note: in expansion of macro 'dev_dbg'
273 | dev_dbg(&pdev->dev,
| ^~~~~~~
>> drivers/gpu/drm/bridge/display-connector.c:274:17: warning: format '%s' expects argument of type 'char *', but argument 4 has type 'int' [-Wformat=]
274 | "Found %s display connector '%s' %s DDC bus and %s HPD GPIO (ops 0x%x)\n",
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/dev_printk.h:129:41: note: in definition of macro 'dev_printk'
129 | _dev_printk(level, dev, fmt, ##__VA_ARGS__); \
| ^~~
include/linux/dev_printk.h:163:45: note: in expansion of macro 'dev_fmt'
163 | dev_printk(KERN_DEBUG, dev, dev_fmt(fmt), ##__VA_ARGS__); \
| ^~~~~~~
drivers/gpu/drm/bridge/display-connector.c:273:9: note: in expansion of macro 'dev_dbg'
273 | dev_dbg(&pdev->dev,
| ^~~~~~~
drivers/gpu/drm/bridge/display-connector.c:274:25: note: format string is defined here
274 | "Found %s display connector '%s' %s DDC bus and %s HPD GPIO (ops 0x%x)\n",
| ~^
| |
| char *
| %d
cc1: some warnings being treated as errors
vim +274 drivers/gpu/drm/bridge/display-connector.c
0c275c30176b2e Laurent Pinchart 2020-02-26 105
0c275c30176b2e Laurent Pinchart 2020-02-26 106 static int display_connector_probe(struct platform_device *pdev)
0c275c30176b2e Laurent Pinchart 2020-02-26 107 {
0c275c30176b2e Laurent Pinchart 2020-02-26 108 struct display_connector *conn;
0c275c30176b2e Laurent Pinchart 2020-02-26 109 unsigned int type;
0c275c30176b2e Laurent Pinchart 2020-02-26 110 const char *label;
0c275c30176b2e Laurent Pinchart 2020-02-26 111 int ret;
0c275c30176b2e Laurent Pinchart 2020-02-26 112
0c275c30176b2e Laurent Pinchart 2020-02-26 113 conn = devm_kzalloc(&pdev->dev, sizeof(*conn), GFP_KERNEL);
0c275c30176b2e Laurent Pinchart 2020-02-26 114 if (!conn)
0c275c30176b2e Laurent Pinchart 2020-02-26 115 return -ENOMEM;
0c275c30176b2e Laurent Pinchart 2020-02-26 116
0c275c30176b2e Laurent Pinchart 2020-02-26 117 platform_set_drvdata(pdev, conn);
0c275c30176b2e Laurent Pinchart 2020-02-26 118
0c275c30176b2e Laurent Pinchart 2020-02-26 119 type = (uintptr_t)of_device_get_match_data(&pdev->dev);
0c275c30176b2e Laurent Pinchart 2020-02-26 120
0c275c30176b2e Laurent Pinchart 2020-02-26 121 /* Get the exact connector type. */
0c275c30176b2e Laurent Pinchart 2020-02-26 122 switch (type) {
0c275c30176b2e Laurent Pinchart 2020-02-26 123 case DRM_MODE_CONNECTOR_DVII: {
0c275c30176b2e Laurent Pinchart 2020-02-26 124 bool analog, digital;
0c275c30176b2e Laurent Pinchart 2020-02-26 125
0c275c30176b2e Laurent Pinchart 2020-02-26 126 analog = of_property_read_bool(pdev->dev.of_node, "analog");
0c275c30176b2e Laurent Pinchart 2020-02-26 127 digital = of_property_read_bool(pdev->dev.of_node, "digital");
0c275c30176b2e Laurent Pinchart 2020-02-26 128 if (analog && !digital) {
0c275c30176b2e Laurent Pinchart 2020-02-26 129 conn->bridge.type = DRM_MODE_CONNECTOR_DVIA;
0c275c30176b2e Laurent Pinchart 2020-02-26 130 } else if (!analog && digital) {
0c275c30176b2e Laurent Pinchart 2020-02-26 131 conn->bridge.type = DRM_MODE_CONNECTOR_DVID;
0c275c30176b2e Laurent Pinchart 2020-02-26 132 } else if (analog && digital) {
0c275c30176b2e Laurent Pinchart 2020-02-26 133 conn->bridge.type = DRM_MODE_CONNECTOR_DVII;
0c275c30176b2e Laurent Pinchart 2020-02-26 134 } else {
0c275c30176b2e Laurent Pinchart 2020-02-26 135 dev_err(&pdev->dev, "DVI connector with no type\n");
0c275c30176b2e Laurent Pinchart 2020-02-26 136 return -EINVAL;
0c275c30176b2e Laurent Pinchart 2020-02-26 137 }
0c275c30176b2e Laurent Pinchart 2020-02-26 138 break;
0c275c30176b2e Laurent Pinchart 2020-02-26 139 }
0c275c30176b2e Laurent Pinchart 2020-02-26 140
0c275c30176b2e Laurent Pinchart 2020-02-26 141 case DRM_MODE_CONNECTOR_HDMIA: {
0c275c30176b2e Laurent Pinchart 2020-02-26 142 const char *hdmi_type;
0c275c30176b2e Laurent Pinchart 2020-02-26 143
0c275c30176b2e Laurent Pinchart 2020-02-26 144 ret = of_property_read_string(pdev->dev.of_node, "type",
0c275c30176b2e Laurent Pinchart 2020-02-26 145 &hdmi_type);
0c275c30176b2e Laurent Pinchart 2020-02-26 146 if (ret < 0) {
0c275c30176b2e Laurent Pinchart 2020-02-26 147 dev_err(&pdev->dev, "HDMI connector with no type\n");
0c275c30176b2e Laurent Pinchart 2020-02-26 148 return -EINVAL;
0c275c30176b2e Laurent Pinchart 2020-02-26 149 }
0c275c30176b2e Laurent Pinchart 2020-02-26 150
0c275c30176b2e Laurent Pinchart 2020-02-26 151 if (!strcmp(hdmi_type, "a") || !strcmp(hdmi_type, "c") ||
0c275c30176b2e Laurent Pinchart 2020-02-26 152 !strcmp(hdmi_type, "d") || !strcmp(hdmi_type, "e")) {
0c275c30176b2e Laurent Pinchart 2020-02-26 153 conn->bridge.type = DRM_MODE_CONNECTOR_HDMIA;
0c275c30176b2e Laurent Pinchart 2020-02-26 154 } else if (!strcmp(hdmi_type, "b")) {
0c275c30176b2e Laurent Pinchart 2020-02-26 155 conn->bridge.type = DRM_MODE_CONNECTOR_HDMIB;
0c275c30176b2e Laurent Pinchart 2020-02-26 156 } else {
0c275c30176b2e Laurent Pinchart 2020-02-26 157 dev_err(&pdev->dev,
0c275c30176b2e Laurent Pinchart 2020-02-26 158 "Unsupported HDMI connector type '%s'\n",
0c275c30176b2e Laurent Pinchart 2020-02-26 159 hdmi_type);
0c275c30176b2e Laurent Pinchart 2020-02-26 160 return -EINVAL;
0c275c30176b2e Laurent Pinchart 2020-02-26 161 }
0c275c30176b2e Laurent Pinchart 2020-02-26 162
0c275c30176b2e Laurent Pinchart 2020-02-26 163 break;
0c275c30176b2e Laurent Pinchart 2020-02-26 164 }
0c275c30176b2e Laurent Pinchart 2020-02-26 165
0c275c30176b2e Laurent Pinchart 2020-02-26 166 default:
0c275c30176b2e Laurent Pinchart 2020-02-26 167 conn->bridge.type = type;
0c275c30176b2e Laurent Pinchart 2020-02-26 168 break;
0c275c30176b2e Laurent Pinchart 2020-02-26 169 }
0c275c30176b2e Laurent Pinchart 2020-02-26 170
0c275c30176b2e Laurent Pinchart 2020-02-26 171 /* All the supported connector types support interlaced modes. */
0c275c30176b2e Laurent Pinchart 2020-02-26 172 conn->bridge.interlace_allowed = true;
0c275c30176b2e Laurent Pinchart 2020-02-26 173
0c275c30176b2e Laurent Pinchart 2020-02-26 174 /* Get the optional connector label. */
0c275c30176b2e Laurent Pinchart 2020-02-26 175 of_property_read_string(pdev->dev.of_node, "label", &label);
0c275c30176b2e Laurent Pinchart 2020-02-26 176
0c275c30176b2e Laurent Pinchart 2020-02-26 177 /*
2e2bf3a5584de2 Tomi Valkeinen 2020-11-30 178 * Get the HPD GPIO for DVI, HDMI and DP connectors. If the GPIO can provide
0c275c30176b2e Laurent Pinchart 2020-02-26 179 * edge interrupts, register an interrupt handler.
0c275c30176b2e Laurent Pinchart 2020-02-26 180 */
0c275c30176b2e Laurent Pinchart 2020-02-26 181 if (type == DRM_MODE_CONNECTOR_DVII ||
2e2bf3a5584de2 Tomi Valkeinen 2020-11-30 182 type == DRM_MODE_CONNECTOR_HDMIA ||
2e2bf3a5584de2 Tomi Valkeinen 2020-11-30 183 type == DRM_MODE_CONNECTOR_DisplayPort) {
0c275c30176b2e Laurent Pinchart 2020-02-26 184 conn->hpd_gpio = devm_gpiod_get_optional(&pdev->dev, "hpd",
0c275c30176b2e Laurent Pinchart 2020-02-26 185 GPIOD_IN);
0c275c30176b2e Laurent Pinchart 2020-02-26 186 if (IS_ERR(conn->hpd_gpio)) {
0c275c30176b2e Laurent Pinchart 2020-02-26 187 if (PTR_ERR(conn->hpd_gpio) != -EPROBE_DEFER)
0c275c30176b2e Laurent Pinchart 2020-02-26 188 dev_err(&pdev->dev,
0c275c30176b2e Laurent Pinchart 2020-02-26 189 "Unable to retrieve HPD GPIO\n");
0c275c30176b2e Laurent Pinchart 2020-02-26 190 return PTR_ERR(conn->hpd_gpio);
0c275c30176b2e Laurent Pinchart 2020-02-26 191 }
0c275c30176b2e Laurent Pinchart 2020-02-26 192
0c275c30176b2e Laurent Pinchart 2020-02-26 193 conn->hpd_irq = gpiod_to_irq(conn->hpd_gpio);
0c275c30176b2e Laurent Pinchart 2020-02-26 194 } else {
0c275c30176b2e Laurent Pinchart 2020-02-26 195 conn->hpd_irq = -EINVAL;
0c275c30176b2e Laurent Pinchart 2020-02-26 196 }
0c275c30176b2e Laurent Pinchart 2020-02-26 197
0c275c30176b2e Laurent Pinchart 2020-02-26 198 if (conn->hpd_irq >= 0) {
0c275c30176b2e Laurent Pinchart 2020-02-26 199 ret = devm_request_threaded_irq(&pdev->dev, conn->hpd_irq,
0c275c30176b2e Laurent Pinchart 2020-02-26 200 NULL, display_connector_hpd_irq,
0c275c30176b2e Laurent Pinchart 2020-02-26 201 IRQF_TRIGGER_RISING |
0c275c30176b2e Laurent Pinchart 2020-02-26 202 IRQF_TRIGGER_FALLING |
0c275c30176b2e Laurent Pinchart 2020-02-26 203 IRQF_ONESHOT,
0c275c30176b2e Laurent Pinchart 2020-02-26 204 "HPD", conn);
0c275c30176b2e Laurent Pinchart 2020-02-26 205 if (ret) {
0c275c30176b2e Laurent Pinchart 2020-02-26 206 dev_info(&pdev->dev,
0c275c30176b2e Laurent Pinchart 2020-02-26 207 "Failed to request HPD edge interrupt, falling back to polling\n");
0c275c30176b2e Laurent Pinchart 2020-02-26 208 conn->hpd_irq = -EINVAL;
0c275c30176b2e Laurent Pinchart 2020-02-26 209 }
0c275c30176b2e Laurent Pinchart 2020-02-26 210 }
0c275c30176b2e Laurent Pinchart 2020-02-26 211
0c275c30176b2e Laurent Pinchart 2020-02-26 212 /* Retrieve the DDC I2C adapter for DVI, HDMI and VGA connectors. */
0c275c30176b2e Laurent Pinchart 2020-02-26 213 if (type == DRM_MODE_CONNECTOR_DVII ||
0c275c30176b2e Laurent Pinchart 2020-02-26 214 type == DRM_MODE_CONNECTOR_HDMIA ||
0c275c30176b2e Laurent Pinchart 2020-02-26 215 type == DRM_MODE_CONNECTOR_VGA) {
0c275c30176b2e Laurent Pinchart 2020-02-26 216 struct device_node *phandle;
0c275c30176b2e Laurent Pinchart 2020-02-26 217
0c275c30176b2e Laurent Pinchart 2020-02-26 218 phandle = of_parse_phandle(pdev->dev.of_node, "ddc-i2c-bus", 0);
0c275c30176b2e Laurent Pinchart 2020-02-26 219 if (phandle) {
0c275c30176b2e Laurent Pinchart 2020-02-26 220 conn->bridge.ddc = of_get_i2c_adapter_by_node(phandle);
0c275c30176b2e Laurent Pinchart 2020-02-26 221 of_node_put(phandle);
0c275c30176b2e Laurent Pinchart 2020-02-26 222 if (!conn->bridge.ddc)
0c275c30176b2e Laurent Pinchart 2020-02-26 223 return -EPROBE_DEFER;
0c275c30176b2e Laurent Pinchart 2020-02-26 224 } else {
0c275c30176b2e Laurent Pinchart 2020-02-26 225 dev_dbg(&pdev->dev,
0c275c30176b2e Laurent Pinchart 2020-02-26 226 "No I2C bus specified, disabling EDID readout\n");
0c275c30176b2e Laurent Pinchart 2020-02-26 227 }
0c275c30176b2e Laurent Pinchart 2020-02-26 228 }
0c275c30176b2e Laurent Pinchart 2020-02-26 229
2e2bf3a5584de2 Tomi Valkeinen 2020-11-30 230 /* Get the DP PWR for DP connector. */
2e2bf3a5584de2 Tomi Valkeinen 2020-11-30 231 if (type == DRM_MODE_CONNECTOR_DisplayPort) {
2e2bf3a5584de2 Tomi Valkeinen 2020-11-30 232 int ret;
2e2bf3a5584de2 Tomi Valkeinen 2020-11-30 233
2e2bf3a5584de2 Tomi Valkeinen 2020-11-30 234 conn->dp_pwr = devm_regulator_get_optional(&pdev->dev, "dp-pwr");
2e2bf3a5584de2 Tomi Valkeinen 2020-11-30 235
2e2bf3a5584de2 Tomi Valkeinen 2020-11-30 236 if (IS_ERR(conn->dp_pwr)) {
2e2bf3a5584de2 Tomi Valkeinen 2020-11-30 237 ret = PTR_ERR(conn->dp_pwr);
2e2bf3a5584de2 Tomi Valkeinen 2020-11-30 238
2e2bf3a5584de2 Tomi Valkeinen 2020-11-30 239 switch (ret) {
2e2bf3a5584de2 Tomi Valkeinen 2020-11-30 240 case -ENODEV:
2e2bf3a5584de2 Tomi Valkeinen 2020-11-30 241 conn->dp_pwr = NULL;
2e2bf3a5584de2 Tomi Valkeinen 2020-11-30 242 break;
2e2bf3a5584de2 Tomi Valkeinen 2020-11-30 243
2e2bf3a5584de2 Tomi Valkeinen 2020-11-30 244 case -EPROBE_DEFER:
2e2bf3a5584de2 Tomi Valkeinen 2020-11-30 245 return -EPROBE_DEFER;
2e2bf3a5584de2 Tomi Valkeinen 2020-11-30 246
2e2bf3a5584de2 Tomi Valkeinen 2020-11-30 247 default:
2e2bf3a5584de2 Tomi Valkeinen 2020-11-30 248 dev_err(&pdev->dev, "failed to get DP PWR regulator: %d\n", ret);
2e2bf3a5584de2 Tomi Valkeinen 2020-11-30 249 return ret;
2e2bf3a5584de2 Tomi Valkeinen 2020-11-30 250 }
2e2bf3a5584de2 Tomi Valkeinen 2020-11-30 251 }
2e2bf3a5584de2 Tomi Valkeinen 2020-11-30 252
2e2bf3a5584de2 Tomi Valkeinen 2020-11-30 253 if (conn->dp_pwr) {
2e2bf3a5584de2 Tomi Valkeinen 2020-11-30 254 ret = regulator_enable(conn->dp_pwr);
2e2bf3a5584de2 Tomi Valkeinen 2020-11-30 255 if (ret) {
2e2bf3a5584de2 Tomi Valkeinen 2020-11-30 256 dev_err(&pdev->dev, "failed to enable DP PWR regulator: %d\n", ret);
2e2bf3a5584de2 Tomi Valkeinen 2020-11-30 257 return ret;
2e2bf3a5584de2 Tomi Valkeinen 2020-11-30 258 }
2e2bf3a5584de2 Tomi Valkeinen 2020-11-30 259 }
2e2bf3a5584de2 Tomi Valkeinen 2020-11-30 260 }
2e2bf3a5584de2 Tomi Valkeinen 2020-11-30 261
0c275c30176b2e Laurent Pinchart 2020-02-26 262 conn->bridge.funcs = &display_connector_bridge_funcs;
0c275c30176b2e Laurent Pinchart 2020-02-26 263 conn->bridge.of_node = pdev->dev.of_node;
0c275c30176b2e Laurent Pinchart 2020-02-26 264
0c275c30176b2e Laurent Pinchart 2020-02-26 265 if (conn->bridge.ddc)
0c275c30176b2e Laurent Pinchart 2020-02-26 266 conn->bridge.ops |= DRM_BRIDGE_OP_EDID
0c275c30176b2e Laurent Pinchart 2020-02-26 267 | DRM_BRIDGE_OP_DETECT;
0c275c30176b2e Laurent Pinchart 2020-02-26 268 if (conn->hpd_gpio)
0c275c30176b2e Laurent Pinchart 2020-02-26 269 conn->bridge.ops |= DRM_BRIDGE_OP_DETECT;
0c275c30176b2e Laurent Pinchart 2020-02-26 270 if (conn->hpd_irq >= 0)
0c275c30176b2e Laurent Pinchart 2020-02-26 271 conn->bridge.ops |= DRM_BRIDGE_OP_HPD;
0c275c30176b2e Laurent Pinchart 2020-02-26 272
0c275c30176b2e Laurent Pinchart 2020-02-26 273 dev_dbg(&pdev->dev,
0c275c30176b2e Laurent Pinchart 2020-02-26 @274 "Found %s display connector '%s' %s DDC bus and %s HPD GPIO (ops 0x%x)\n",
0c275c30176b2e Laurent Pinchart 2020-02-26 @275 drm_get_connector_type_name(conn->bridge.type),
0c275c30176b2e Laurent Pinchart 2020-02-26 276 label ? label : "<unlabelled>",
0c275c30176b2e Laurent Pinchart 2020-02-26 277 conn->bridge.ddc ? "with" : "without",
0c275c30176b2e Laurent Pinchart 2020-02-26 278 conn->hpd_gpio ? "with" : "without",
0c275c30176b2e Laurent Pinchart 2020-02-26 279 conn->bridge.ops);
0c275c30176b2e Laurent Pinchart 2020-02-26 280
0c275c30176b2e Laurent Pinchart 2020-02-26 281 drm_bridge_add(&conn->bridge);
0c275c30176b2e Laurent Pinchart 2020-02-26 282
0c275c30176b2e Laurent Pinchart 2020-02-26 283 return 0;
0c275c30176b2e Laurent Pinchart 2020-02-26 284 }
0c275c30176b2e Laurent Pinchart 2020-02-26 285
:::::: The code at line 274 was first introduced by commit
:::::: 0c275c30176b2e7871c6ac5fb0ed548f81e0fa27 drm/bridge: Add bridge driver for display connectors
:::::: TO: Laurent Pinchart <laurent.pinchart(a)ideasonboard.com>
:::::: CC: Tomi Valkeinen <tomi.valkeinen(a)ti.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
11 months, 1 week
[kdave:for-next 138/150] fs/btrfs/volumes.c:2334: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-next
head: 00c9626f46bece739cb413d1399ead6473809c54
commit: ea57e6e833a234ebe22efbb68e31c252f2478d15 [138/150] btrfs: add a btrfs_get_dev_args_from_path helper
config: hexagon-randconfig-r041-20211014 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 6c76d0101193aa4eb891a6954ff047eda2f9cf71)
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/kdave/linux.git/commit/?i...
git remote add kdave https://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git
git fetch --no-tags kdave for-next
git checkout ea57e6e833a234ebe22efbb68e31c252f2478d15
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=hexagon
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 >>):
>> fs/btrfs/volumes.c:2334: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* Populate args from device at path
vim +2334 fs/btrfs/volumes.c
2332
2333 /**
> 2334 * Populate args from device at path
2335 *
2336 * @fs_info: the filesystem
2337 * @args: the args to populate
2338 * @path: the path to the device
2339 *
2340 * This will read the super block of the device at @path and populate @args with
2341 * the devid, fsid, and uuid. This is meant to be used for ioctls that need to
2342 * lookup a device to operate on, but need to do it before we take any locks.
2343 * This properly handles the special case of "missing" that a user may pass in,
2344 * and does some basic sanity checks. The caller must make sure that @path is
2345 * properly NUL terminated before calling in, and must call
2346 * btrfs_put_dev_args_from_path() in order to free up the temporary fsid and
2347 * uuid buffers.
2348 *
2349 * Return: 0 for success, -errno for failure
2350 */
2351 int btrfs_get_dev_args_from_path(struct btrfs_fs_info *fs_info,
2352 struct btrfs_dev_lookup_args *args,
2353 const char *path)
2354 {
2355 struct btrfs_super_block *disk_super;
2356 struct block_device *bdev;
2357 int ret;
2358
2359 if (!path || !path[0])
2360 return -EINVAL;
2361 if (!strcmp(path, "missing")) {
2362 args->missing = true;
2363 return 0;
2364 }
2365
2366 args->uuid = kzalloc(BTRFS_UUID_SIZE, GFP_KERNEL);
2367 args->fsid = kzalloc(BTRFS_FSID_SIZE, GFP_KERNEL);
2368 if (!args->uuid || !args->fsid) {
2369 btrfs_put_dev_args_from_path(args);
2370 return -ENOMEM;
2371 }
2372
2373 ret = btrfs_get_bdev_and_sb(path, FMODE_READ, fs_info->bdev_holder, 0,
2374 &bdev, &disk_super);
2375 if (ret)
2376 return ret;
2377 args->devid = btrfs_stack_device_id(&disk_super->dev_item);
2378 memcpy(args->uuid, disk_super->dev_item.uuid, BTRFS_UUID_SIZE);
2379 if (btrfs_fs_incompat(fs_info, METADATA_UUID))
2380 memcpy(args->fsid, disk_super->metadata_uuid, BTRFS_FSID_SIZE);
2381 else
2382 memcpy(args->fsid, disk_super->fsid, BTRFS_FSID_SIZE);
2383 btrfs_release_disk_super(disk_super);
2384 blkdev_put(bdev, FMODE_READ);
2385 return 0;
2386 }
2387
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
11 months, 1 week
[gustavoars:for-next/cast-function 3/4] include/linux/ftrace.h:49:41: warning: 'struct ftrace_regs' declared inside parameter list will not be visible outside of this definition or declaration
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/gustavoars/linux.git for-next/cast-function
head: 21078041965eb5a2e83d296690a93243611a3c27
commit: c45ede6c27819bb038af313b475fdf50ce755dd6 [3/4] ftrace: Fix -Wmissing-prototypes errors
config: i386-randconfig-r001-20211014 (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/gustavoars/linux.git/comm...
git remote add gustavoars https://git.kernel.org/pub/scm/linux/kernel/git/gustavoars/linux.git
git fetch --no-tags gustavoars for-next/cast-function
git checkout c45ede6c27819bb038af313b475fdf50ce755dd6
# save the attached .config to linux build tree
mkdir build_dir
make W=1 O=build_dir ARCH=i386 SHELL=/bin/bash kernel/trace/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
In file included from include/linux/perf_event.h:49,
from include/linux/trace_events.h:10,
from kernel/trace/synth_event_gen_test.c:9:
>> include/linux/ftrace.h:49:41: warning: 'struct ftrace_regs' declared inside parameter list will not be visible outside of this definition or declaration
49 | struct ftrace_ops *op, struct ftrace_regs *fregs);
| ^~~~~~~~~~~
--
In file included from kernel/trace/ftrace.c:29:
>> include/linux/ftrace.h:49:41: warning: 'struct ftrace_regs' declared inside parameter list will not be visible outside of this definition or declaration
49 | struct ftrace_ops *op, struct ftrace_regs *fregs);
| ^~~~~~~~~~~
kernel/trace/ftrace.c:297:5: warning: no previous prototype for '__register_ftrace_function' [-Wmissing-prototypes]
297 | int __register_ftrace_function(struct ftrace_ops *ops)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/trace/ftrace.c:340:5: warning: no previous prototype for '__unregister_ftrace_function' [-Wmissing-prototypes]
340 | int __unregister_ftrace_function(struct ftrace_ops *ops)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/trace/ftrace.c:579:5: warning: no previous prototype for 'ftrace_profile_pages_init' [-Wmissing-prototypes]
579 | int ftrace_profile_pages_init(struct ftrace_profile_stat *stat)
| ^~~~~~~~~~~~~~~~~~~~~~~~~
kernel/trace/ftrace.c:3871:15: warning: no previous prototype for 'arch_ftrace_match_adjust' [-Wmissing-prototypes]
3871 | char * __weak arch_ftrace_match_adjust(char *str, const char *search)
| ^~~~~~~~~~~~~~~~~~~~~~~~
kernel/trace/ftrace.c:7029:6: error: conflicting types for 'arch_ftrace_ops_list_func'
7029 | void arch_ftrace_ops_list_func(unsigned long ip, unsigned long parent_ip,
| ^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from kernel/trace/ftrace.c:29:
include/linux/ftrace.h:48:6: note: previous declaration of 'arch_ftrace_ops_list_func' was here
48 | void arch_ftrace_ops_list_func(unsigned long ip, unsigned long parent_ip,
| ^~~~~~~~~~~~~~~~~~~~~~~~~
--
In file included from kernel/trace/trace.c:31:
>> include/linux/ftrace.h:49:41: warning: 'struct ftrace_regs' declared inside parameter list will not be visible outside of this definition or declaration
49 | struct ftrace_ops *op, struct ftrace_regs *fregs);
| ^~~~~~~~~~~
kernel/trace/trace.c: In function 'trace_check_vprintf':
kernel/trace/trace.c:3837:3: warning: function 'trace_check_vprintf' might be a candidate for 'gnu_printf' format attribute [-Wsuggest-attribute=format]
3837 | trace_seq_vprintf(&iter->seq, iter->fmt, ap);
| ^~~~~~~~~~~~~~~~~
kernel/trace/trace.c:3892:3: warning: function 'trace_check_vprintf' might be a candidate for 'gnu_printf' format attribute [-Wsuggest-attribute=format]
3892 | trace_seq_vprintf(&iter->seq, p, ap);
| ^~~~~~~~~~~~~~~~~
--
In file included from kernel/trace/trace_output.c:10:
>> include/linux/ftrace.h:49:41: warning: 'struct ftrace_regs' declared inside parameter list will not be visible outside of this definition or declaration
49 | struct ftrace_ops *op, struct ftrace_regs *fregs);
| ^~~~~~~~~~~
kernel/trace/trace_output.c: In function 'trace_output_raw':
kernel/trace/trace_output.c:331:2: warning: function 'trace_output_raw' might be a candidate for 'gnu_printf' format attribute [-Wsuggest-attribute=format]
331 | trace_seq_vprintf(s, trace_event_format(iter, fmt), ap);
| ^~~~~~~~~~~~~~~~~
--
In file included from kernel/trace/trace_preemptirq.c:11:
>> include/linux/ftrace.h:49:41: warning: 'struct ftrace_regs' declared inside parameter list will not be visible outside of this definition or declaration
49 | struct ftrace_ops *op, struct ftrace_regs *fregs);
| ^~~~~~~~~~~
kernel/trace/trace_preemptirq.c:88:16: warning: no previous prototype for 'trace_hardirqs_on_caller' [-Wmissing-prototypes]
88 | __visible void trace_hardirqs_on_caller(unsigned long caller_addr)
| ^~~~~~~~~~~~~~~~~~~~~~~~
kernel/trace/trace_preemptirq.c:103:16: warning: no previous prototype for 'trace_hardirqs_off_caller' [-Wmissing-prototypes]
103 | __visible void trace_hardirqs_off_caller(unsigned long caller_addr)
| ^~~~~~~~~~~~~~~~~~~~~~~~~
--
In file included from kernel/trace/fgraph.c:11:
>> include/linux/ftrace.h:49:41: warning: 'struct ftrace_regs' declared inside parameter list will not be visible outside of this definition or declaration
49 | struct ftrace_ops *op, struct ftrace_regs *fregs);
| ^~~~~~~~~~~
kernel/trace/fgraph.c:232:15: warning: no previous prototype for 'ftrace_return_to_handler' [-Wmissing-prototypes]
232 | unsigned long ftrace_return_to_handler(unsigned long frame_pointer)
| ^~~~~~~~~~~~~~~~~~~~~~~~
kernel/trace/fgraph.c:347:6: warning: no previous prototype for 'ftrace_graph_sleep_time_control' [-Wmissing-prototypes]
347 | void ftrace_graph_sleep_time_control(bool enable)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vim +49 include/linux/ftrace.h
32
33 #ifdef CONFIG_FUNCTION_TRACER
34 struct ftrace_ops;
35 /*
36 * If the arch's mcount caller does not support all of ftrace's
37 * features, then it must call an indirect function that
38 * does. Or at least does enough to prevent any unwelcome side effects.
39 *
40 * Also define the function prototype that these architectures use
41 * to call the ftrace_ops_list_func().
42 */
43 #if !ARCH_SUPPORTS_FTRACE_OPS
44 # define FTRACE_FORCE_LIST_FUNC 1
45 void arch_ftrace_ops_list_func(unsigned long ip, unsigned long parent_ip);
46 #else
47 # define FTRACE_FORCE_LIST_FUNC 0
48 void arch_ftrace_ops_list_func(unsigned long ip, unsigned long parent_ip,
> 49 struct ftrace_ops *op, struct ftrace_regs *fregs);
50 #endif
51 #endif /* CONFIG_FUNCTION_TRACER */
52
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
11 months, 1 week
[frank-w-bpi-r2-4.14:5.15-bpi-r2-pro 90/90] drivers/gpu/drm/drm_connector.c:126:13: warning: no previous prototype for function 'drm_get_connector_type_name'
by kernel test robot
tree: https://github.com/frank-w/BPI-R2-4.14 5.15-bpi-r2-pro
head: 14a93e4b341569bdb9f0456c3934e62402a82174
commit: 14a93e4b341569bdb9f0456c3934e62402a82174 [90/90] more porting
config: hexagon-randconfig-r041-20211014 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 6c76d0101193aa4eb891a6954ff047eda2f9cf71)
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/frank-w/BPI-R2-4.14/commit/14a93e4b341569bdb9f0456c393...
git remote add frank-w-bpi-r2-4.14 https://github.com/frank-w/BPI-R2-4.14
git fetch --no-tags frank-w-bpi-r2-4.14 5.15-bpi-r2-pro
git checkout 14a93e4b341569bdb9f0456c3934e62402a82174
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=hexagon
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/drm_connector.c:126:13: warning: no previous prototype for function 'drm_get_connector_type_name' [-Wmissing-prototypes]
const char *drm_get_connector_type_name(unsigned int type)
^
drivers/gpu/drm/drm_connector.c:126:7: note: declare 'static' if the function is not intended to be used outside of this translation unit
const char *drm_get_connector_type_name(unsigned int type)
^
static
1 warning generated.
vim +/drm_get_connector_type_name +126 drivers/gpu/drm/drm_connector.c
52217195176115 Daniel Vetter 2016-08-12 119
b35f90f2d4a63c Laurent Pinchart 2020-02-26 120 /**
b35f90f2d4a63c Laurent Pinchart 2020-02-26 121 * drm_get_connector_type_name - return a string for connector type
b35f90f2d4a63c Laurent Pinchart 2020-02-26 122 * @type: The connector type (DRM_MODE_CONNECTOR_*)
b35f90f2d4a63c Laurent Pinchart 2020-02-26 123 *
b35f90f2d4a63c Laurent Pinchart 2020-02-26 124 * Returns: the name of the connector type, or NULL if the type is not valid.
b35f90f2d4a63c Laurent Pinchart 2020-02-26 125 */
b35f90f2d4a63c Laurent Pinchart 2020-02-26 @126 const char *drm_get_connector_type_name(unsigned int type)
b35f90f2d4a63c Laurent Pinchart 2020-02-26 127 {
b35f90f2d4a63c Laurent Pinchart 2020-02-26 128 if (type < ARRAY_SIZE(drm_connector_enum_list))
b35f90f2d4a63c Laurent Pinchart 2020-02-26 129 return drm_connector_enum_list[type].name;
b35f90f2d4a63c Laurent Pinchart 2020-02-26 130
b35f90f2d4a63c Laurent Pinchart 2020-02-26 131 return NULL;
b35f90f2d4a63c Laurent Pinchart 2020-02-26 132 }
b35f90f2d4a63c Laurent Pinchart 2020-02-26 133 EXPORT_SYMBOL(drm_get_connector_type_name);
b35f90f2d4a63c Laurent Pinchart 2020-02-26 134
:::::: The code at line 126 was first introduced by commit
:::::: b35f90f2d4a63cf2bc427f5c4e33eb86d963e716 drm/connector: Add helper to get a connector type name
:::::: TO: Laurent Pinchart <laurent.pinchart(a)ideasonboard.com>
:::::: CC: Tomi Valkeinen <tomi.valkeinen(a)ti.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
11 months, 1 week
[intel-lts:5.4/yocto 9356/18525] drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c:993:47: sparse: sparse: incorrect type in assignment (different base types)
by kernel test robot
tree: https://github.com/intel/linux-intel-lts.git 5.4/yocto
head: 0275e7ab8cedcdc9eea8f6f9b7ecf10e9d40ddab
commit: 94e13c2880167751eb5cbbcb0e7be68ca83f0653 [9356/18525] dmaengine: dw-axi-dma: support cyclic mode
config: i386-randconfig-s001-20211014 (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://github.com/intel/linux-intel-lts/commit/94e13c2880167751eb5cbbcb0...
git remote add intel-lts https://github.com/intel/linux-intel-lts.git
git fetch --no-tags intel-lts 5.4/yocto
git checkout 94e13c2880167751eb5cbbcb0e7be68ca83f0653
# 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 >>)
>> drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c:993:47: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __le32 [usertype] block_ts_lo @@ got unsigned int @@
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c:993:47: sparse: expected restricted __le32 [usertype] block_ts_lo
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c:993:47: sparse: got unsigned int
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c:1068:55: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __le32 [usertype] block_ts_lo @@ got unsigned int @@
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c:1068:55: sparse: expected restricted __le32 [usertype] block_ts_lo
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c:1068:55: sparse: got unsigned int
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c:1070:55: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __le32 [usertype] block_ts_lo @@ got unsigned int @@
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c:1070:55: sparse: expected restricted __le32 [usertype] block_ts_lo
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c:1070:55: sparse: got unsigned int
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c:1169:59: sparse: sparse: incorrect type in argument 2 (different base types) @@ expected unsigned int [usertype] irq_mask @@ got restricted __le32 [usertype] status_lo @@
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c:1169:59: sparse: expected unsigned int [usertype] irq_mask
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c:1169:59: sparse: got restricted __le32 [usertype] status_lo
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c:1170:42: sparse: sparse: invalid assignment: |=
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c:1170:42: sparse: left side has type restricted __le32
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c:1170:42: sparse: right side has type unsigned long
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c:1111:22: sparse: sparse: context imbalance in 'axi_chan_handle_err' - different lock contexts for basic block
vim +993 drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
912
913 static struct dma_async_tx_descriptor *
914 dw_chan_prep_dma_cyclic(struct dma_chan *dchan, dma_addr_t buf_addr,
915 size_t buf_len, size_t period_len,
916 enum dma_transfer_direction direction,
917 unsigned long flags)
918 {
919 struct axi_dma_chan *chan = dchan_to_axi_dma_chan(dchan);
920 struct axi_dma_desc *first = NULL, *prev = NULL;
921 unsigned int reg_width;
922 unsigned int mem_width;
923 unsigned int data_width = BIT(chan->chip->dw->hdata->m_data_width);
924 dma_addr_t reg;
925 u32 reg_value = 0;
926 unsigned int i = 0;
927 u32 ctllo, ctlhi;
928 size_t total_len = 0;
929 size_t block_ts, max_block_ts;
930 u8 lms = 0; // Select AXI0 master for LLI fetching
931 u32 offset;
932
933 if (unlikely(!is_slave_direction(direction)))
934 return NULL;
935
936 chan->direction = direction;
937 chan->cyclic = 0x1;
938
939 max_block_ts = chan->chip->dw->hdata->block_size[chan->id];
940
941 axi_set_hw_channel(chan->chip, chan->hw_hs_num);
942
943 switch (direction) {
944 case DMA_MEM_TO_DEV:
945 reg_width = __ffs(chan->slave_config.dst_addr_width);
946
947 chan->reg_width = reg_width;
948 if (reg_width == DWAXIDMAC_TRANS_WIDTH_16) {
949 offset = DMAC_APB_HALFWORD_WR_CH_EN;
950 reg_value = axi_dma_apb_ioread32(chan->chip, offset);
951 reg_value |= 0x1 << chan->id;
952 axi_dma_apb_iowrite32(chan->chip,
953 DMAC_APB_HALFWORD_WR_CH_EN, reg_value);
954 } else if (reg_width == DWAXIDMAC_TRANS_WIDTH_8) {
955 offset = DMAC_APB_BYTE_WR_CH_EN;
956 reg_value = axi_dma_apb_ioread32(chan->chip, offset);
957 reg_value |= 0x1 << chan->id;
958 axi_dma_apb_iowrite32(chan->chip, offset, reg_value);
959 }
960 reg = chan->slave_config.dst_addr;
961
962 ctllo = axi_dma_prepare_ctllo(chan) |
963 reg_width << CH_CTL_L_DST_WIDTH_POS |
964 DWAXIDMAC_CH_CTL_L_NOINC << CH_CTL_L_DST_INC_POS |
965 DWAXIDMAC_CH_CTL_L_INC << CH_CTL_L_SRC_INC_POS;
966
967 for (i = 0; i < buf_len / period_len; i++) {
968 struct axi_dma_desc *desc;
969 size_t xfer_len;
970 u32 mem, len;
971
972 mem_width = __ffs(data_width | mem | len);
973 if (mem_width > DWAXIDMAC_TRANS_WIDTH_32)
974 mem_width = DWAXIDMAC_TRANS_WIDTH_32;
975
976 xfer_len = period_len;
977 block_ts = period_len;
978
979 desc = axi_desc_get(chan);
980 if (unlikely(!desc))
981 goto err_desc_get;
982
983 if (block_ts > max_block_ts) {
984 block_ts = max_block_ts;
985 xfer_len = max_block_ts << mem_width;
986 }
987
988 ctlhi = axi_dma_prepare_ctlhi(chan);
989
990 ctllo |= mem_width << CH_CTL_L_SRC_WIDTH_POS;
991 write_desc_sar(desc, buf_addr + i * period_len);
992 write_desc_dar(desc, reg);
> 993 desc->lli.block_ts_lo = period_len / 4;
994 desc->lli.ctl_hi = cpu_to_le32(ctlhi);
995 desc->lli.ctl_lo = cpu_to_le32(ctllo);
996
997 set_desc_src_master(desc);
998 set_desc_src_master(desc);
999
1000 // Manage transfer list (xfer_list)
1001 if (!first) {
1002 first = desc;
1003 } else {
1004 write_desc_llp(prev, desc->vd.tx.phys | lms);
1005 list_add_tail(&desc->xfer_list,
1006 &first->xfer_list);
1007 }
1008 prev = desc;
1009 if (i == ((buf_len / period_len) - 1))
1010 write_desc_llp(prev, first->vd.tx.phys | lms);
1011
1012 total_len += xfer_len;
1013
1014 set_desc_last(desc);
1015 }
1016 break;
1017 case DMA_DEV_TO_MEM:
1018 reg_width = __ffs(chan->slave_config.src_addr_width);
1019
1020 chan->reg_width = reg_width;
1021 if (reg_width == DWAXIDMAC_TRANS_WIDTH_16) {
1022 offset = DMAC_APB_HALFWORD_WR_CH_EN;
1023 reg_value = axi_dma_apb_ioread32(chan->chip, offset);
1024 reg_value |= 0x1 << chan->id;
1025 axi_dma_apb_iowrite32(chan->chip, offset, reg_value);
1026 } else if (reg_width == DWAXIDMAC_TRANS_WIDTH_8) {
1027 offset = DMAC_APB_BYTE_WR_CH_EN;
1028 reg_value = axi_dma_apb_ioread32(chan->chip, offset);
1029 reg_value |= 0x1 << chan->id;
1030 axi_dma_apb_iowrite32(chan->chip, offset, reg_value);
1031 }
1032 reg = chan->slave_config.src_addr;
1033 if (reg_width > DWAXIDMAC_TRANS_WIDTH_32)
1034 reg_width = DWAXIDMAC_TRANS_WIDTH_32;
1035 ctllo = axi_dma_prepare_ctllo(chan) |
1036 reg_width << CH_CTL_L_SRC_WIDTH_POS |
1037 DWAXIDMAC_CH_CTL_L_INC << CH_CTL_L_DST_INC_POS |
1038 // Workaround
1039 DWAXIDMAC_CH_CTL_L_NOINC << CH_CTL_L_SRC_INC_POS;
1040
1041 for (i = 0; i < buf_len / period_len; i++) {
1042 struct axi_dma_desc *desc;
1043 size_t xfer_len;
1044 u32 mem, len;
1045
1046 desc = axi_desc_get(chan);
1047 if (unlikely(!desc))
1048 goto err_desc_get;
1049
1050 xfer_len = len;
1051 block_ts = xfer_len >> reg_width;
1052 if (block_ts > max_block_ts) {
1053 block_ts = max_block_ts;
1054 xfer_len = max_block_ts << reg_width;
1055 }
1056 xfer_len = period_len;
1057 block_ts = period_len;
1058 mem_width = __ffs(data_width | mem | xfer_len);
1059 if (mem_width > DWAXIDMAC_TRANS_WIDTH_32)
1060 mem_width = DWAXIDMAC_TRANS_WIDTH_32;
1061
1062 ctlhi = axi_dma_prepare_ctlhi(chan);
1063 ctllo |= mem_width << CH_CTL_L_DST_WIDTH_POS;
1064
1065 write_desc_sar(desc, reg);
1066 write_desc_dar(desc, buf_addr + i * period_len);
1067 if (reg_width == DWAXIDMAC_TRANS_WIDTH_16)
1068 desc->lli.block_ts_lo = period_len / 2;
1069 else if (reg_width >= DWAXIDMAC_TRANS_WIDTH_32)
1070 desc->lli.block_ts_lo = period_len / 4;
1071 desc->lli.ctl_hi = cpu_to_le32(ctlhi);
1072 desc->lli.ctl_lo = cpu_to_le32(ctllo);
1073
1074 set_desc_src_master(desc);
1075 set_desc_src_master(desc);
1076
1077 // Manage transfer list (xfer_list)
1078 if (!first) {
1079 first = desc;
1080 } else {
1081 write_desc_llp(prev, desc->vd.tx.phys | lms);
1082 list_add_tail(&desc->xfer_list,
1083 &first->xfer_list);
1084 }
1085 prev = desc;
1086 if (i == ((buf_len / period_len) - 1))
1087 write_desc_llp(prev, first->vd.tx.phys | lms);
1088
1089 total_len += xfer_len;
1090
1091 // TODO: check if needed
1092 set_desc_last(desc);
1093 }
1094 break;
1095 default:
1096 return NULL;
1097 }
1098
1099 if (unlikely(!first))
1100 return NULL;
1101
1102 return vchan_tx_prep(&chan->vc, &first->vd, flags);
1103
1104 err_desc_get:
1105 if (first)
1106 axi_desc_put(first);
1107
1108 return NULL;
1109 }
1110
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
11 months, 1 week
Re: [PATCH v2 2/3] block: don't hide inode from block_device users
by kernel test robot
Hi Pavel,
I love your patch! Yet something to improve:
[auto build test ERROR on v5.15-rc5]
[cannot apply to axboe-block/for-next next-20211013]
[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/Pavel-Begunkov/on-top-of-for-5-1...
base: 64570fbc14f8d7cb3fe3995f20e26bc25ce4b2cc
config: hexagon-randconfig-r045-20211013 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project b6a8c695542b2987eb9a203d5663a0740cb4725f)
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/9e538de87cc869bd26a3ca78da49d1437...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Pavel-Begunkov/on-top-of-for-5-16-block/20211013-165953
git checkout 9e538de87cc869bd26a3ca78da49d1437ec8688c
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=hexagon
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 >>):
>> block/fops.c:460:37: error: implicit declaration of function 'bdev_file_inode' [-Werror,-Wimplicit-function-declaration]
struct block_device *bdev = I_BDEV(bdev_file_inode(file));
^
block/fops.c:460:37: note: did you mean 'file_inode'?
include/linux/fs.h:1348:29: note: 'file_inode' declared here
static inline struct inode *file_inode(const struct file *f)
^
>> block/fops.c:460:37: warning: incompatible integer to pointer conversion passing 'int' to parameter of type 'struct inode *' [-Wint-conversion]
struct block_device *bdev = I_BDEV(bdev_file_inode(file));
^~~~~~~~~~~~~~~~~~~~~
include/linux/blkdev.h:1990:57: note: passing argument to parameter 'inode' here
static inline struct block_device *I_BDEV(struct inode *inode)
^
1 warning and 1 error generated.
vim +/bdev_file_inode +460 block/fops.c
cd82cca7ebfe9c Christoph Hellwig 2021-09-07 457
cd82cca7ebfe9c Christoph Hellwig 2021-09-07 458 static long block_ioctl(struct file *file, unsigned cmd, unsigned long arg)
cd82cca7ebfe9c Christoph Hellwig 2021-09-07 459 {
cd82cca7ebfe9c Christoph Hellwig 2021-09-07 @460 struct block_device *bdev = I_BDEV(bdev_file_inode(file));
cd82cca7ebfe9c Christoph Hellwig 2021-09-07 461 fmode_t mode = file->f_mode;
cd82cca7ebfe9c Christoph Hellwig 2021-09-07 462
cd82cca7ebfe9c Christoph Hellwig 2021-09-07 463 /*
cd82cca7ebfe9c Christoph Hellwig 2021-09-07 464 * O_NDELAY can be altered using fcntl(.., F_SETFL, ..), so we have
cd82cca7ebfe9c Christoph Hellwig 2021-09-07 465 * to updated it before every ioctl.
cd82cca7ebfe9c Christoph Hellwig 2021-09-07 466 */
cd82cca7ebfe9c Christoph Hellwig 2021-09-07 467 if (file->f_flags & O_NDELAY)
cd82cca7ebfe9c Christoph Hellwig 2021-09-07 468 mode |= FMODE_NDELAY;
cd82cca7ebfe9c Christoph Hellwig 2021-09-07 469 else
cd82cca7ebfe9c Christoph Hellwig 2021-09-07 470 mode &= ~FMODE_NDELAY;
cd82cca7ebfe9c Christoph Hellwig 2021-09-07 471
cd82cca7ebfe9c Christoph Hellwig 2021-09-07 472 return blkdev_ioctl(bdev, mode, cmd, arg);
cd82cca7ebfe9c Christoph Hellwig 2021-09-07 473 }
cd82cca7ebfe9c Christoph Hellwig 2021-09-07 474
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
11 months, 1 week
Re: [PATCH v2 2/2] fuse: Send security context of inode on file creation
by kernel test robot
Hi Vivek,
I love your patch! Yet something to improve:
[auto build test ERROR on v5.15-rc5]
[also build test ERROR on next-20211012]
[cannot apply to mszeredi-fuse/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/Vivek-Goyal/fuse-Send-file-inode...
base: 64570fbc14f8d7cb3fe3995f20e26bc25ce4b2cc
config: arc-randconfig-r043-20211012 (attached as .config)
compiler: arc-elf-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/3671f69d52ea6521c521ba6052be8e1b0...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Vivek-Goyal/fuse-Send-file-inode-security-context-during-creation/20211013-020827
git checkout 3671f69d52ea6521c521ba6052be8e1b07e19ef7
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross ARCH=arc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
fs/fuse/dir.c: In function 'get_security_context':
>> fs/fuse/dir.c:473:45: error: passing argument 4 of 'security_dentry_init_security' from incompatible pointer type [-Werror=incompatible-pointer-types]
473 | &name, &ctx, &ctxlen);
| ^~~~~
| |
| const char **
In file included from include/linux/fs_context.h:14,
from fs/fuse/dir.c:13:
include/linux/security.h:742:57: note: expected 'void **' but argument is of type 'const char **'
742 | void **ctx,
| ~~~~~~~^~~
fs/fuse/dir.c:473:52: error: passing argument 5 of 'security_dentry_init_security' from incompatible pointer type [-Werror=incompatible-pointer-types]
473 | &name, &ctx, &ctxlen);
| ^~~~
| |
| void **
In file included from include/linux/fs_context.h:14,
from fs/fuse/dir.c:13:
include/linux/security.h:743:55: note: expected 'u32 *' {aka 'unsigned int *'} but argument is of type 'void **'
743 | u32 *ctxlen)
| ~~~~~^~~~~~
>> fs/fuse/dir.c:472:15: error: too many arguments to function 'security_dentry_init_security'
472 | err = security_dentry_init_security(entry, mode, &entry->d_name,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from include/linux/fs_context.h:14,
from fs/fuse/dir.c:13:
include/linux/security.h:739:19: note: declared here
739 | static inline int security_dentry_init_security(struct dentry *dentry,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +/security_dentry_init_security +473 fs/fuse/dir.c
461
462 static int get_security_context(struct dentry *entry, umode_t mode,
463 void **security_ctx, u32 *security_ctxlen)
464 {
465 struct fuse_secctx *fsecctx;
466 struct fuse_secctxs *fsecctxs;
467 void *ctx, *full_ctx;
468 u32 ctxlen, full_ctxlen;
469 int err = 0;
470 const char *name;
471
> 472 err = security_dentry_init_security(entry, mode, &entry->d_name,
> 473 &name, &ctx, &ctxlen);
474 if (err) {
475 if (err != -EOPNOTSUPP)
476 goto out_err;
477 /* No LSM is supporting this security hook. Ignore error */
478 err = 0;
479 ctxlen = 0;
480 }
481
482 if (ctxlen > 0) {
483 void *ptr;
484
485 full_ctxlen = sizeof(*fsecctxs) + sizeof(*fsecctx) +
486 strlen(name) + ctxlen + 1;
487 full_ctx = kzalloc(full_ctxlen, GFP_KERNEL);
488 if (!full_ctx) {
489 err = -ENOMEM;
490 kfree(ctx);
491 goto out_err;
492 }
493
494 ptr = full_ctx;
495 fsecctxs = (struct fuse_secctxs*) ptr;
496 fsecctxs->nr_secctx = 1;
497 ptr += sizeof(*fsecctxs);
498
499 fsecctx = (struct fuse_secctx*) ptr;
500 fsecctx->size = ctxlen;
501 ptr += sizeof(*fsecctx);
502
503 strcpy(ptr, name);
504 ptr += strlen(name) + 1;
505 memcpy(ptr, ctx, ctxlen);
506 kfree(ctx);
507 } else {
508 full_ctxlen = sizeof(*fsecctxs);
509 full_ctx = kzalloc(full_ctxlen, GFP_KERNEL);
510 if (!full_ctx) {
511 err = -ENOMEM;
512 goto out_err;
513 }
514 }
515
516 *security_ctxlen = full_ctxlen;
517 *security_ctx = full_ctx;
518 out_err:
519 return err;
520 }
521
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
11 months, 1 week
[frank-w-bpi-r2-4.14:5.15-bpi-r2-pro 90/90] drivers/gpu/drm/drm_connector.c:126:13: warning: no previous prototype for 'drm_get_connector_type_name'
by kernel test robot
tree: https://github.com/frank-w/BPI-R2-4.14 5.15-bpi-r2-pro
head: 14a93e4b341569bdb9f0456c3934e62402a82174
commit: 14a93e4b341569bdb9f0456c3934e62402a82174 [90/90] more porting
config: ia64-defconfig (attached as .config)
compiler: ia64-linux-gcc (GCC) 11.2.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/frank-w/BPI-R2-4.14/commit/14a93e4b341569bdb9f0456c393...
git remote add frank-w-bpi-r2-4.14 https://github.com/frank-w/BPI-R2-4.14
git fetch --no-tags frank-w-bpi-r2-4.14 5.15-bpi-r2-pro
git checkout 14a93e4b341569bdb9f0456c3934e62402a82174
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross ARCH=ia64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
>> drivers/gpu/drm/drm_connector.c:126:13: warning: no previous prototype for 'drm_get_connector_type_name' [-Wmissing-prototypes]
126 | const char *drm_get_connector_type_name(unsigned int type)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
vim +/drm_get_connector_type_name +126 drivers/gpu/drm/drm_connector.c
52217195176115 Daniel Vetter 2016-08-12 119
b35f90f2d4a63c Laurent Pinchart 2020-02-26 120 /**
b35f90f2d4a63c Laurent Pinchart 2020-02-26 121 * drm_get_connector_type_name - return a string for connector type
b35f90f2d4a63c Laurent Pinchart 2020-02-26 122 * @type: The connector type (DRM_MODE_CONNECTOR_*)
b35f90f2d4a63c Laurent Pinchart 2020-02-26 123 *
b35f90f2d4a63c Laurent Pinchart 2020-02-26 124 * Returns: the name of the connector type, or NULL if the type is not valid.
b35f90f2d4a63c Laurent Pinchart 2020-02-26 125 */
b35f90f2d4a63c Laurent Pinchart 2020-02-26 @126 const char *drm_get_connector_type_name(unsigned int type)
b35f90f2d4a63c Laurent Pinchart 2020-02-26 127 {
b35f90f2d4a63c Laurent Pinchart 2020-02-26 128 if (type < ARRAY_SIZE(drm_connector_enum_list))
b35f90f2d4a63c Laurent Pinchart 2020-02-26 129 return drm_connector_enum_list[type].name;
b35f90f2d4a63c Laurent Pinchart 2020-02-26 130
b35f90f2d4a63c Laurent Pinchart 2020-02-26 131 return NULL;
b35f90f2d4a63c Laurent Pinchart 2020-02-26 132 }
b35f90f2d4a63c Laurent Pinchart 2020-02-26 133 EXPORT_SYMBOL(drm_get_connector_type_name);
b35f90f2d4a63c Laurent Pinchart 2020-02-26 134
:::::: The code at line 126 was first introduced by commit
:::::: b35f90f2d4a63cf2bc427f5c4e33eb86d963e716 drm/connector: Add helper to get a connector type name
:::::: TO: Laurent Pinchart <laurent.pinchart(a)ideasonboard.com>
:::::: CC: Tomi Valkeinen <tomi.valkeinen(a)ti.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
11 months, 1 week
[ast-bpf:relo_core 2/11] tools/lib/bpf/relo_core.c:50:6: error: no previous prototype for 'libbpf_print'
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/ast/bpf.git relo_core
head: f19d8aee9c6849dbfd77bc472b7b5c9bb28f329f
commit: 96649f75bfb209c3562106becb7bed3e37b05c82 [2/11] bpf: Prepare relo_core.c for kernel duty.
config: m68k-allmodconfig (attached as .config)
compiler: m68k-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://git.kernel.org/pub/scm/linux/kernel/git/ast/bpf.git/commit/?id=96...
git remote add ast-bpf https://git.kernel.org/pub/scm/linux/kernel/git/ast/bpf.git
git fetch --no-tags ast-bpf relo_core
git checkout 96649f75bfb209c3562106becb7bed3e37b05c82
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.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 >>):
>> tools/lib/bpf/relo_core.c:50:6: error: no previous prototype for 'libbpf_print' [-Werror=missing-prototypes]
50 | void libbpf_print(enum libbpf_print_level level,
| ^~~~~~~~~~~~
tools/lib/bpf/relo_core.c: In function 'bpf_core_apply_relo_insn':
>> tools/lib/bpf/relo_core.c:1363:1: error: the frame size of 1136 bytes is larger than 1024 bytes [-Werror=frame-larger-than=]
1363 | }
| ^
cc1: all warnings being treated as errors
vim +/libbpf_print +50 tools/lib/bpf/relo_core.c
43
44 enum libbpf_print_level {
45 LIBBPF_WARN,
46 LIBBPF_INFO,
47 LIBBPF_DEBUG,
48 };
49 __attribute__((format(printf, 2, 3)))
> 50 void libbpf_print(enum libbpf_print_level level,
51 const char *format, ...)
52 {
53 va_list args;
54
55 va_start(args, format);
56 vprintk(format, args);
57 va_end(args);
58 }
59 #define __pr(level, fmt, ...) \
60 do { \
61 libbpf_print(level, "libbpf: " fmt, ##__VA_ARGS__); \
62 } while (0)
63
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
11 months, 1 week