CC: [email protected] CC: [email protected] TO: Christophe Leroy <[email protected]> CC: Michael Ellerman <[email protected]>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: e783362eb54cd99b2cac8b3a9aeac942e6f6ac07 commit: 1e688dd2a3d6759d416616ff07afc4bb836c4213 powerpc/bug: Provide better flexibility to WARN_ON/__WARN_FLAGS() with asm goto date: 5 months ago :::::: branch date: 11 hours ago :::::: commit date: 5 months ago config: powerpc64-randconfig-m031-20220120 (https://download.01.org/0day-ci/archive/20220124/[email protected]/config) compiler: powerpc64-linux-gcc (GCC) 11.2.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <[email protected]> Reported-by: Dan Carpenter <[email protected]> New smatch warnings: drivers/usb/gadget/udc/aspeed-vhub/ep0.c:155 ast_vhub_ep0_handle_setup() error: we previously assumed 'ep->dev' could be null (see line 130) drivers/reset/core.c:225 reset_control_array_rearm() error: 'rstc' dereferencing possible ERR_PTR() drivers/interconnect/core.c:777 icc_put() error: 'path' dereferencing possible ERR_PTR() sound/soc/samsung/i2s.c:576 i2s_set_sysclk() warn: passing zero to 'PTR_ERR' net/kcm/kcmsock.c:645 kcm_write_msgs() error: we previously assumed 'psock' could be null (see line 585) kernel/rcu/update.c:546 early_boot_test_call_rcu() warn: possible memory leak of 'rhp' drivers/gpu/drm/gud/gud_pipe.c:468 gud_pipe_check() error: we previously assumed 'connector_state' could be null (see line 438) drivers/gpu/drm/panfrost/panfrost_mmu.c:293 panfrost_mmu_map() warn: passing zero to 'PTR_ERR' drivers/gpu/drm/gud/gud_connector.c:571 gud_connector_add_properties() error: 'state_val' dereferencing possible ERR_PTR() drivers/gpu/drm/gud/gud_connector.c:597 gud_connector_fill_properties() warn: passing zero to 'PTR_ERR' drivers/clk/imx/clk-imx8mq.c:399 imx8mq_clocks_probe() warn: passing zero to 'PTR_ERR' kernel/sched/topology.c:1338 asym_cpu_capacity_update_data() warn: possible memory leak of 'entry' drivers/gpu/drm/vc4/vc4_txp.c:303 vc4_txp_connector_atomic_commit() error: buffer overflow 'txp_fmts' 10 <= 10 (assuming for loop doesn't break) drivers/gpu/drm/vc4/vc4_txp.c:303 vc4_txp_connector_atomic_commit() error: buffer overflow 'txp_fmts' 10 <= 10 (assuming for loop doesn't break) drivers/gpu/drm/vc4/vc4_txp.c:303 vc4_txp_connector_atomic_commit() error: buffer overflow 'txp_fmts' 10 <= 10 (assuming for loop doesn't break) drivers/gpu/drm/vc4/vc4_txp.c:303 vc4_txp_connector_atomic_commit() error: buffer overflow 'txp_fmts' 10 <= 10 (assuming for loop doesn't break) drivers/infiniband/core/uverbs_uapi.c:77 uapi_create_write() error: potentially using uninitialized 'exists'. kernel/tracepoint.c:325 tracepoint_remove_func() warn: passing zero to 'PTR_ERR' drivers/gpu/drm/drm_modeset_lock.c:103 drm_modeset_lock_all() warn: possible memory leak of 'ctx' drivers/gpu/drm/drm_writeback.c:385 drm_writeback_signal_completion() error: we previously assumed 'job' could be null (see line 377) drivers/gpu/drm/drm_atomic_uapi.c:196 drm_atomic_set_crtc_for_plane() warn: passing zero to 'PTR_ERR' drivers/gpu/drm/drm_atomic_uapi.c:198 drm_atomic_set_crtc_for_plane() error: 'crtc_state' dereferencing possible ERR_PTR() Old smatch warnings: drivers/gpu/drm/gud/gud_pipe.c:544 gud_pipe_update() error: we previously assumed 'fb' could be null (see line 536) drivers/infiniband/core/uverbs_uapi.c:114 uapi_merge_method() error: uninitialized symbol 'exists'. vim +155 drivers/usb/gadget/udc/aspeed-vhub/ep0.c 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 84 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 85 void ast_vhub_ep0_handle_setup(struct ast_vhub_ep *ep) 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 86 { 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 87 struct usb_ctrlrequest crq; 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 88 enum std_req_rc std_req_rc; 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 89 int rc = -ENODEV; 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 90 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 91 if (WARN_ON(ep->d_idx != 0)) 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 92 return; 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 93 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 94 /* 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 95 * Grab the setup packet from the chip and byteswap 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 96 * interesting fields 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 97 */ 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 98 memcpy_fromio(&crq, ep->ep0.setup, sizeof(crq)); 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 99 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 100 EPDBG(ep, "SETUP packet %02x/%02x/%04x/%04x/%04x [%s] st=%d\n", 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 101 crq.bRequestType, crq.bRequest, 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 102 le16_to_cpu(crq.wValue), 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 103 le16_to_cpu(crq.wIndex), 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 104 le16_to_cpu(crq.wLength), 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 105 (crq.bRequestType & USB_DIR_IN) ? "in" : "out", 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 106 ep->ep0.state); 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 107 9196b55e1270da Benjamin Herrenschmidt 2018-06-28 108 /* 7e420cef9047dc Benjamin Herrenschmidt 2019-07-26 109 * Check our state, cancel pending requests if needed 7e420cef9047dc Benjamin Herrenschmidt 2019-07-26 110 * 7e420cef9047dc Benjamin Herrenschmidt 2019-07-26 111 * Note: Under some circumstances, we can get a new setup 7e420cef9047dc Benjamin Herrenschmidt 2019-07-26 112 * packet while waiting for the stall ack, just accept it. 7e420cef9047dc Benjamin Herrenschmidt 2019-07-26 113 * 7e420cef9047dc Benjamin Herrenschmidt 2019-07-26 114 * In any case, a SETUP packet in wrong state should have 7e420cef9047dc Benjamin Herrenschmidt 2019-07-26 115 * reset the HW state machine, so let's just log, nuke 7e420cef9047dc Benjamin Herrenschmidt 2019-07-26 116 * requests, move on. 9196b55e1270da Benjamin Herrenschmidt 2018-06-28 117 */ 7e420cef9047dc Benjamin Herrenschmidt 2019-07-26 118 if (ep->ep0.state != ep0_state_token && 7e420cef9047dc Benjamin Herrenschmidt 2019-07-26 119 ep->ep0.state != ep0_state_stall) { 7e420cef9047dc Benjamin Herrenschmidt 2019-07-26 120 EPDBG(ep, "wrong state\n"); 7e420cef9047dc Benjamin Herrenschmidt 2019-07-26 121 ast_vhub_nuke(ep, -EIO); 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 122 } 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 123 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 124 /* Calculate next state for EP0 */ 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 125 ep->ep0.state = ep0_state_data; 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 126 ep->ep0.dir_in = !!(crq.bRequestType & USB_DIR_IN); 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 127 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 128 /* If this is the vHub, we handle requests differently */ 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 129 std_req_rc = std_req_driver; 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 @130 if (ep->dev == NULL) { 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 131 if ((crq.bRequestType & USB_TYPE_MASK) == USB_TYPE_STANDARD) 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 132 std_req_rc = ast_vhub_std_hub_request(ep, &crq); 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 133 else if ((crq.bRequestType & USB_TYPE_MASK) == USB_TYPE_CLASS) 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 134 std_req_rc = ast_vhub_class_hub_request(ep, &crq); 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 135 else 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 136 std_req_rc = std_req_stall; 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 137 } else if ((crq.bRequestType & USB_TYPE_MASK) == USB_TYPE_STANDARD) 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 138 std_req_rc = ast_vhub_std_dev_request(ep, &crq); 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 139 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 140 /* Act upon result */ 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 141 switch(std_req_rc) { 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 142 case std_req_complete: 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 143 goto complete; 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 144 case std_req_stall: 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 145 goto stall; 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 146 case std_req_driver: 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 147 break; 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 148 case std_req_data: 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 149 return; 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 150 } 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 151 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 152 /* Pass request up to the gadget driver */ 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 153 if (WARN_ON(!ep->dev)) 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 154 goto stall; 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 @155 if (ep->dev->driver) { 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 156 EPDBG(ep, "forwarding to gadget...\n"); 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 157 spin_unlock(&ep->vhub->lock); 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 158 rc = ep->dev->driver->setup(&ep->dev->gadget, &crq); 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 159 spin_lock(&ep->vhub->lock); 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 160 EPDBG(ep, "driver returned %d\n", rc); 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 161 } else { 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 162 EPDBG(ep, "no gadget for request !\n"); 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 163 } 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 164 if (rc >= 0) 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 165 return; 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 166 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 167 stall: 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 168 EPDBG(ep, "stalling\n"); 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 169 writel(VHUB_EP0_CTRL_STALL, ep->ep0.ctlstat); 7e420cef9047dc Benjamin Herrenschmidt 2019-07-26 170 ep->ep0.state = ep0_state_stall; 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 171 ep->ep0.dir_in = false; 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 172 return; 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 173 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 174 complete: 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 175 EPVDBG(ep, "sending [in] status with no data\n"); 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 176 writel(VHUB_EP0_TX_BUFF_RDY, ep->ep0.ctlstat); 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 177 ep->ep0.state = ep0_state_status; 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 178 ep->ep0.dir_in = false; 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 179 } 7ecca2a4080cb6 Benjamin Herrenschmidt 2018-05-04 180 :::::: The code at line 155 was first introduced by commit :::::: 7ecca2a4080cb6b1fa174adc588fce9e9014c43c usb/gadget: Add driver for Aspeed SoC virtual hub :::::: TO: Benjamin Herrenschmidt <[email protected]> :::::: CC: Felipe Balbi <[email protected]> --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/[email protected] _______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
