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]

Reply via email to