Re: [PATCH 13/15] usb: dwc2: Add exit hibernation mode before removing drive

kernel test robot
2021-04-15T09:51:26Z

[-- Attachment #1: Type: text/plain, Size: 4672 bytes --]

Hi Artur,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on usb/usb-testing]
[also build test WARNING on next-20210414]
[cannot apply to peter.chen-usb/for-usb-next linus/master balbi-usb/testing/next v5.12-rc7]
[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/Artur-Petrosyan/usb-dwc2-Update-exit-hibernation-when-port-reset-is-asserted/20210415-144021
base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing
config: x86_64-randconfig-a014-20210415 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 6a18cc23efad410db48a3ccfc233d215de7d4cb9)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install x86_64 cross compiling tool for clang build
# apt-get install binutils-x86-64-linux-gnu
# https://github.com/0day-ci/linux/commit/8e4dbc0200040af9c752aca4090cd41572e6fb86
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Artur-Petrosyan/usb-dwc2-Update-exit-hibernation-when-port-reset-is-asserted/20210415-144021
git checkout 8e4dbc0200040af9c752aca4090cd41572e6fb86
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=x86_64

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All warnings (new ones prefixed by >>):

>> drivers/usb/dwc2/platform.c:324:7: warning: variable 'gr' is uninitialized when used here [-Wuninitialized]
if (gr->gotgctl & GOTGCTL_CURMODE_HOST) {
^~
drivers/usb/dwc2/platform.c:319:30: note: initialize the variable 'gr' to silence this warning
struct dwc2_gregs_backup *gr;
^
= NULL
1 warning generated.

vim +/gr +324 drivers/usb/dwc2/platform.c

304
305 /**
306 * dwc2_driver_remove() - Called when the DWC_otg core is unregistered with the
307 * DWC_otg driver
308 *
309 * @dev: Platform device
310 *
311 * This routine is called, for example, when the rmmod command is executed. The
312 * device may or may not be electrically present. If it is present, the driver
313 * stops device processing. Any resources used on behalf of this device are
314 * freed.
315 */
316 static int dwc2_driver_remove(struct platform_device *dev)
317 {
318 struct dwc2_hsotg *hsotg = platform_get_drvdata(dev);
319 struct dwc2_gregs_backup *gr;
320 int ret = 0;
321
322 /* Exit Hibernation when driver is removed. */
323 if (hsotg->hibernated) {
> 324 if (gr->gotgctl & GOTGCTL_CURMODE_HOST) {
325 ret = dwc2_exit_hibernation(hsotg, 0, 0, 1);
326 if (ret)
327 dev_err(hsotg->dev,
328 "exit hibernation failed.\n");
329 } else {
330 ret = dwc2_exit_hibernation(hsotg, 0, 0, 0);
331 if (ret)
332 dev_err(hsotg->dev,
333 "exit hibernation failed.\n");
334 }
335 }
336
337 /* Exit Partial Power Down when driver is removed. */
338 if (hsotg->in_ppd) {
339 ret = dwc2_exit_partial_power_down(hsotg, 0, true);
340 if (ret)
341 dev_err(hsotg->dev,
342 "exit partial_power_down failed\n");
343 }
344
345 /* Exit clock gating when driver is removed. */
346 if (hsotg->params.power_down == DWC2_POWER_DOWN_PARAM_NONE &&
347 hsotg->bus_suspended) {
348 if (dwc2_is_device_mode(hsotg))
349 dwc2_gadget_exit_clock_gating(hsotg, 0);
350 else
351 dwc2_host_exit_clock_gating(hsotg, 0);
352 }
353
354 dwc2_debugfs_exit(hsotg);
355 if (hsotg->hcd_enabled)
356 dwc2_hcd_remove(hsotg);
357 if (hsotg->gadget_enabled)
358 dwc2_hsotg_remove(hsotg);
359
360 dwc2_drd_exit(hsotg);
361
362 if (hsotg->params.activate_stm_id_vb_detection)
363 regulator_disable(hsotg->usb33d);
364
365 if (hsotg->ll_hw_enabled)
366 dwc2_lowlevel_hw_disable(hsotg);
367
368 reset_control_assert(hsotg->reset);
369 reset_control_assert(hsotg->reset_ecc);
370
371 return ret;
372 }
373

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 39577 bytes --]