Re: [PATCH v1 1/4] usb: host: export symbols for xhci hooks usage

From: kernel test robot
Date: Tue Mar 08 2022 - 00:36:22 EST


Hi Daehwan,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on krzk/for-next]
[also build test WARNING on char-misc/char-misc-testing v5.17-rc7 next-20220307]
[cannot apply to usb/usb-testing]
[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/Daehwan-Jung/usb-host-export-symbols-for-xhci-hooks-usage/20220304-143406
base: https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux.git for-next
config: hexagon-randconfig-r045-20220304 (https://download.01.org/0day-ci/archive/20220308/202203081332.nZHV3ZBo-lkp@xxxxxxxxx/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project d271fc04d5b97b12e6b797c6067d3c96a8d7470e)
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/66bd02564cf7e666cf4c47f83965148fa5b90829
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Daehwan-Jung/usb-host-export-symbols-for-xhci-hooks-usage/20220304-143406
git checkout 66bd02564cf7e666cf4c47f83965148fa5b90829
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=hexagon SHELL=/bin/bash drivers/usb/host/

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

All warnings (new ones prefixed by >>):

drivers/usb/host/xhci-mem.c:68:6: warning: no previous prototype for function 'xhci_segment_free' [-Wmissing-prototypes]
void xhci_segment_free(struct xhci_hcd *xhci, struct xhci_segment *seg)
^
drivers/usb/host/xhci-mem.c:68:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void xhci_segment_free(struct xhci_hcd *xhci, struct xhci_segment *seg)
^
static
drivers/usb/host/xhci-mem.c:79:6: warning: no previous prototype for function 'xhci_free_segments_for_ring' [-Wmissing-prototypes]
void xhci_free_segments_for_ring(struct xhci_hcd *xhci,
^
drivers/usb/host/xhci-mem.c:79:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void xhci_free_segments_for_ring(struct xhci_hcd *xhci,
^
static
drivers/usb/host/xhci-mem.c:100:6: warning: no previous prototype for function 'xhci_link_segments' [-Wmissing-prototypes]
void xhci_link_segments(struct xhci_segment *prev,
^
drivers/usb/host/xhci-mem.c:100:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void xhci_link_segments(struct xhci_segment *prev,
^
static
>> drivers/usb/host/xhci-mem.c:211:6: warning: no previous prototype for function 'xhci_remove_segment_mapping' [-Wmissing-prototypes]
void xhci_remove_segment_mapping(struct radix_tree_root *trb_address_map,
^
drivers/usb/host/xhci-mem.c:211:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void xhci_remove_segment_mapping(struct radix_tree_root *trb_address_map,
^
static
>> drivers/usb/host/xhci-mem.c:262:6: warning: no previous prototype for function 'xhci_remove_stream_mapping' [-Wmissing-prototypes]
void xhci_remove_stream_mapping(struct xhci_ring *ring)
^
drivers/usb/host/xhci-mem.c:262:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void xhci_remove_stream_mapping(struct xhci_ring *ring)
^
static
drivers/usb/host/xhci-mem.c:1984:5: warning: no previous prototype for function 'xhci_check_trb_in_td_math' [-Wmissing-prototypes]
int xhci_check_trb_in_td_math(struct xhci_hcd *xhci)
^
drivers/usb/host/xhci-mem.c:1984:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
int xhci_check_trb_in_td_math(struct xhci_hcd *xhci)
^
static
6 warnings generated.


vim +/xhci_remove_segment_mapping +211 drivers/usb/host/xhci-mem.c

210
> 211 void xhci_remove_segment_mapping(struct radix_tree_root *trb_address_map,
212 struct xhci_segment *seg)
213 {
214 unsigned long key;
215
216 key = (unsigned long)(seg->dma >> TRB_SEGMENT_SHIFT);
217 if (radix_tree_lookup(trb_address_map, key))
218 radix_tree_delete(trb_address_map, key);
219 }
220 EXPORT_SYMBOL_GPL(xhci_remove_segment_mapping);
221
222 static int xhci_update_stream_segment_mapping(
223 struct radix_tree_root *trb_address_map,
224 struct xhci_ring *ring,
225 struct xhci_segment *first_seg,
226 struct xhci_segment *last_seg,
227 gfp_t mem_flags)
228 {
229 struct xhci_segment *seg;
230 struct xhci_segment *failed_seg;
231 int ret;
232
233 if (WARN_ON_ONCE(trb_address_map == NULL))
234 return 0;
235
236 seg = first_seg;
237 do {
238 ret = xhci_insert_segment_mapping(trb_address_map,
239 ring, seg, mem_flags);
240 if (ret)
241 goto remove_streams;
242 if (seg == last_seg)
243 return 0;
244 seg = seg->next;
245 } while (seg != first_seg);
246
247 return 0;
248
249 remove_streams:
250 failed_seg = seg;
251 seg = first_seg;
252 do {
253 xhci_remove_segment_mapping(trb_address_map, seg);
254 if (seg == failed_seg)
255 return ret;
256 seg = seg->next;
257 } while (seg != first_seg);
258
259 return ret;
260 }
261
> 262 void xhci_remove_stream_mapping(struct xhci_ring *ring)
263 {
264 struct xhci_segment *seg;
265
266 if (WARN_ON_ONCE(ring->trb_address_map == NULL))
267 return;
268
269 seg = ring->first_seg;
270 do {
271 xhci_remove_segment_mapping(ring->trb_address_map, seg);
272 seg = seg->next;
273 } while (seg != ring->first_seg);
274 }
275 EXPORT_SYMBOL_GPL(xhci_remove_stream_mapping);
276

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