[balbi-usb:next 49/82] drivers/usb/dwc3/gadget.c:2375:19: error: 'dwc' undeclared

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



tree:   https://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb.git next
head:   3196f73ff8444f6b8bfce3dce1900b4eae27c324
commit: 0cdab4c202ea0dd241ddaacf1d3a8a282590cb61 [49/82] usb: dwc3: gadget: remove unnecessary 'dwc' parameter
config: x86_64-randconfig-s2-05161806 (attached as .config)
compiler: gcc-6 (Debian 6.4.0-9) 6.4.0 20171026
reproduce:
        git checkout 0cdab4c202ea0dd241ddaacf1d3a8a282590cb61
        # save the attached .config to linux build tree
        make ARCH=x86_64 

Note: the balbi-usb/next HEAD 3196f73ff8444f6b8bfce3dce1900b4eae27c324 builds fine.
      It only hurts bisectibility.

All errors (new ones prefixed by >>):

   In file included from arch/x86/include/asm/bug.h:83:0,
                    from include/linux/bug.h:5,
                    from include/linux/mmdebug.h:5,
                    from include/linux/gfp.h:5,
                    from include/linux/slab.h:15,
                    from drivers/usb/dwc3/gadget.c:13:
   drivers/usb/dwc3/gadget.c: In function 'dwc3_gadget_ep_cleanup_completed_requests':
>> drivers/usb/dwc3/gadget.c:2375:19: error: 'dwc' undeclared (first use in this function)
        dev_WARN_ONCE(dwc->dev,
                      ^
   include/asm-generic/bug.h:98:50: note: in definition of macro '__WARN_printf'
    #define __WARN_printf(arg...) do { __warn_printk(arg); __WARN(); } while (0)
                                                     ^~~
   include/asm-generic/bug.h:154:3: note: in expansion of macro 'WARN'
      WARN(1, format);    \
      ^~~~
   include/linux/device.h:1506:2: note: in expansion of macro 'WARN_ONCE'
     WARN_ONCE(condition, "%s %s: " format, \
     ^~~~~~~~~
   drivers/usb/dwc3/gadget.c:2375:5: note: in expansion of macro 'dev_WARN_ONCE'
        dev_WARN_ONCE(dwc->dev,
        ^~~~~~~~~~~~~
   drivers/usb/dwc3/gadget.c:2375:19: note: each undeclared identifier is reported only once for each function it appears in
        dev_WARN_ONCE(dwc->dev,
                      ^
   include/asm-generic/bug.h:98:50: note: in definition of macro '__WARN_printf'
    #define __WARN_printf(arg...) do { __warn_printk(arg); __WARN(); } while (0)
                                                     ^~~
   include/asm-generic/bug.h:154:3: note: in expansion of macro 'WARN'
      WARN(1, format);    \
      ^~~~
   include/linux/device.h:1506:2: note: in expansion of macro 'WARN_ONCE'
     WARN_ONCE(condition, "%s %s: " format, \
     ^~~~~~~~~
   drivers/usb/dwc3/gadget.c:2375:5: note: in expansion of macro 'dev_WARN_ONCE'
        dev_WARN_ONCE(dwc->dev,
        ^~~~~~~~~~~~~

vim +/dwc +2375 drivers/usb/dwc3/gadget.c

e5ba5ec833 Pratyush Anand       2013-01-14  2316  
0cdab4c202 Felipe Balbi         2018-03-27  2317  static int dwc3_gadget_ep_cleanup_completed_requests(struct dwc3_ep *dep,
0cdab4c202 Felipe Balbi         2018-03-27  2318  		const struct dwc3_event_depevt *event, int status)
e5ba5ec833 Pratyush Anand       2013-01-14  2319  {
31162af447 Felipe Balbi         2016-08-11  2320  	struct dwc3_request	*req, *n;
e5ba5ec833 Pratyush Anand       2013-01-14  2321  	struct dwc3_trb		*trb;
d6e10bf2ba Arnd Bergmann        2016-09-09  2322  	bool			ioc = false;
e62c5bc573 Felipe Balbi         2016-10-25  2323  	int			ret = 0;
e5ba5ec833 Pratyush Anand       2013-01-14  2324  
31162af447 Felipe Balbi         2016-08-11  2325  	list_for_each_entry_safe(req, n, &dep->started_list, list) {
1f512119a0 Felipe Balbi         2016-08-12  2326  		unsigned length;
e5b36ae2f8 Felipe Balbi         2016-08-10  2327  		int chain;
e5b36ae2f8 Felipe Balbi         2016-08-10  2328  
1f512119a0 Felipe Balbi         2016-08-12  2329  		length = req->request.length;
1f512119a0 Felipe Balbi         2016-08-12  2330  		chain = req->num_pending_sgs > 0;
31162af447 Felipe Balbi         2016-08-11  2331  		if (chain) {
1f512119a0 Felipe Balbi         2016-08-12  2332  			struct scatterlist *sg = req->sg;
31162af447 Felipe Balbi         2016-08-11  2333  			struct scatterlist *s;
1f512119a0 Felipe Balbi         2016-08-12  2334  			unsigned int pending = req->num_pending_sgs;
31162af447 Felipe Balbi         2016-08-11  2335  			unsigned int i;
ac7bdcc1b3 Felipe Balbi         2015-11-16  2336  
1f512119a0 Felipe Balbi         2016-08-12  2337  			for_each_sg(sg, s, pending, i) {
737f1ae255 Felipe Balbi         2016-08-11  2338  				trb = &dep->trb_pool[dep->trb_dequeue];
c7de573471 Felipe Balbi         2016-07-29  2339  
7282c4ef0b Felipe Balbi         2016-10-25  2340  				if (trb->ctrl & DWC3_TRB_CTRL_HWO)
7282c4ef0b Felipe Balbi         2016-10-25  2341  					break;
7282c4ef0b Felipe Balbi         2016-10-25  2342  
1f512119a0 Felipe Balbi         2016-08-12  2343  				req->sg = sg_next(s);
1f512119a0 Felipe Balbi         2016-08-12  2344  				req->num_pending_sgs--;
c7de573471 Felipe Balbi         2016-07-29  2345  
0cdab4c202 Felipe Balbi         2018-03-27  2346  				ret = dwc3_gadget_ep_reclaim_completed_trb(dep,
0cdab4c202 Felipe Balbi         2018-03-27  2347  						req, trb, event, status,
2b03814fc1 Felipe Balbi         2018-03-26  2348  						chain);
e5ba5ec833 Pratyush Anand       2013-01-14  2349  				if (ret)
e5ba5ec833 Pratyush Anand       2013-01-14  2350  					break;
31162af447 Felipe Balbi         2016-08-11  2351  			}
31162af447 Felipe Balbi         2016-08-11  2352  		} else {
31162af447 Felipe Balbi         2016-08-11  2353  			trb = &dep->trb_pool[dep->trb_dequeue];
0cdab4c202 Felipe Balbi         2018-03-27  2354  			ret = dwc3_gadget_ep_reclaim_completed_trb(dep, req,
0cdab4c202 Felipe Balbi         2018-03-27  2355  					trb, event, status, chain);
31162af447 Felipe Balbi         2016-08-11  2356  		}
e5ba5ec833 Pratyush Anand       2013-01-14  2357  
d6e5a549cc Felipe Balbi         2017-04-07  2358  		if (req->unaligned || req->zero) {
c6267a5163 Felipe Balbi         2017-01-05  2359  			trb = &dep->trb_pool[dep->trb_dequeue];
0cdab4c202 Felipe Balbi         2018-03-27  2360  			ret = dwc3_gadget_ep_reclaim_completed_trb(dep, req,
0cdab4c202 Felipe Balbi         2018-03-27  2361  					trb, event, status, false);
c6267a5163 Felipe Balbi         2017-01-05  2362  			req->unaligned = false;
d6e5a549cc Felipe Balbi         2017-04-07  2363  			req->zero = false;
c6267a5163 Felipe Balbi         2017-01-05  2364  		}
c6267a5163 Felipe Balbi         2017-01-05  2365  
e62c5bc573 Felipe Balbi         2016-10-25  2366  		req->request.actual = length - req->remaining;
1f512119a0 Felipe Balbi         2016-08-12  2367  
f9db4fce81 Anurag Kumar Vulisha 2018-03-27  2368  		if (req->request.actual < length || req->num_pending_sgs) {
f9db4fce81 Anurag Kumar Vulisha 2018-03-27  2369  			/*
f9db4fce81 Anurag Kumar Vulisha 2018-03-27  2370  			 * There could be a scenario where the whole req can't
f9db4fce81 Anurag Kumar Vulisha 2018-03-27  2371  			 * be mapped into available TRB's. In that case, we need
f9db4fce81 Anurag Kumar Vulisha 2018-03-27  2372  			 * to kick transfer again if (req->num_pending_sgs > 0)
f9db4fce81 Anurag Kumar Vulisha 2018-03-27  2373  			 */
f9db4fce81 Anurag Kumar Vulisha 2018-03-27  2374  			if (req->num_pending_sgs) {
f9db4fce81 Anurag Kumar Vulisha 2018-03-27 @2375  				dev_WARN_ONCE(dwc->dev,
f9db4fce81 Anurag Kumar Vulisha 2018-03-27  2376  					      (req->request.actual == length),
f9db4fce81 Anurag Kumar Vulisha 2018-03-27  2377  					      "There are some pending sg's that needs to be queued again\n");
7fdca76649 Felipe Balbi         2017-09-05  2378  				return __dwc3_gadget_kick_transfer(dep);
f9db4fce81 Anurag Kumar Vulisha 2018-03-27  2379  			}
f9db4fce81 Anurag Kumar Vulisha 2018-03-27  2380  		}
1f512119a0 Felipe Balbi         2016-08-12  2381  
e5ba5ec833 Pratyush Anand       2013-01-14  2382  		dwc3_gadget_giveback(dep, req, status);
e5ba5ec833 Pratyush Anand       2013-01-14  2383  
d6e10bf2ba Arnd Bergmann        2016-09-09  2384  		if (ret) {
d6e10bf2ba Arnd Bergmann        2016-09-09  2385  			if ((event->status & DEPEVT_STATUS_IOC) &&
d6e10bf2ba Arnd Bergmann        2016-09-09  2386  			    (trb->ctrl & DWC3_TRB_CTRL_IOC))
d6e10bf2ba Arnd Bergmann        2016-09-09  2387  				ioc = true;
d115d7050a Ville Syrjälä        2015-08-31  2388  			break;
31162af447 Felipe Balbi         2016-08-11  2389  		}
d6e10bf2ba Arnd Bergmann        2016-09-09  2390  	}
d115d7050a Ville Syrjälä        2015-08-31  2391  
4cb4221764 Felipe Balbi         2016-05-18  2392  	/*
4cb4221764 Felipe Balbi         2016-05-18  2393  	 * Our endpoint might get disabled by another thread during
4cb4221764 Felipe Balbi         2016-05-18  2394  	 * dwc3_gadget_giveback(). If that happens, we're just gonna return 1
4cb4221764 Felipe Balbi         2016-05-18  2395  	 * early on so DWC3_EP_BUSY flag gets cleared
4cb4221764 Felipe Balbi         2016-05-18  2396  	 */
4cb4221764 Felipe Balbi         2016-05-18  2397  	if (!dep->endpoint.desc)
4cb4221764 Felipe Balbi         2016-05-18  2398  		return 1;
4cb4221764 Felipe Balbi         2016-05-18  2399  
cdc359dd87 Pratyush Anand       2013-01-14  2400  	if (usb_endpoint_xfer_isoc(dep->endpoint.desc) &&
aa3342c8bb Felipe Balbi         2016-03-14  2401  			list_empty(&dep->started_list)) {
aa3342c8bb Felipe Balbi         2016-03-14  2402  		if (list_empty(&dep->pending_list)) {
cdc359dd87 Pratyush Anand       2013-01-14  2403  			/*
cdc359dd87 Pratyush Anand       2013-01-14  2404  			 * If there is no entry in request list then do
cdc359dd87 Pratyush Anand       2013-01-14  2405  			 * not issue END TRANSFER now. Just set PENDING
cdc359dd87 Pratyush Anand       2013-01-14  2406  			 * flag, so that END TRANSFER is issued when an
cdc359dd87 Pratyush Anand       2013-01-14  2407  			 * entry is added into request list.
cdc359dd87 Pratyush Anand       2013-01-14  2408  			 */
cdc359dd87 Pratyush Anand       2013-01-14  2409  			dep->flags = DWC3_EP_PENDING_REQUEST;
cdc359dd87 Pratyush Anand       2013-01-14  2410  		} else {
0cdab4c202 Felipe Balbi         2018-03-27  2411  			dwc3_stop_active_transfer(dep, true);
cdc359dd87 Pratyush Anand       2013-01-14  2412  			dep->flags = DWC3_EP_ENABLED;
cdc359dd87 Pratyush Anand       2013-01-14  2413  		}
7efea86c28 Pratyush Anand       2013-01-14  2414  		return 1;
7efea86c28 Pratyush Anand       2013-01-14  2415  	}
7efea86c28 Pratyush Anand       2013-01-14  2416  
d6e10bf2ba Arnd Bergmann        2016-09-09  2417  	if (usb_endpoint_xfer_isoc(dep->endpoint.desc) && ioc)
9cad39fe4e Konrad Leszczynski   2016-02-08  2418  		return 0;
d6e10bf2ba Arnd Bergmann        2016-09-09  2419  
72246da40f Felipe Balbi         2011-08-19  2420  	return 1;
72246da40f Felipe Balbi         2011-08-19  2421  }
72246da40f Felipe Balbi         2011-08-19  2422  

:::::: The code at line 2375 was first introduced by commit
:::::: f9db4fce81eaf0699c2d4fea890587b4de22cbb2 usb: dwc3: gadget: Correct the logic for queuing sgs

:::::: TO: Anurag Kumar Vulisha <anuragku@xxxxxxxxxx>
:::::: CC: Felipe Balbi <felipe.balbi@xxxxxxxxxxxxxxx>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Attachment: .config.gz
Description: application/gzip


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux