[PATCH 1/4] PCI: add resizeable BAR infrastructure v3

kbuild test robot lkp at intel.com
Tue Mar 14 13:09:31 UTC 2017


Hi Christian,

[auto build test WARNING on pci/next]
[also build test WARNING on v4.11-rc2 next-20170310]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Christian-K-nig/PCI-add-resizeable-BAR-infrastructure-v3/20170314-163334
base:   https://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci.git next
reproduce: make htmldocs

All warnings (new ones prefixed by >>):

   lib/crc32.c:148: warning: No description found for parameter 'tab)[256]'
   lib/crc32.c:148: warning: Excess function parameter 'tab' description in 'crc32_le_generic'
   lib/crc32.c:293: warning: No description found for parameter 'tab)[256]'
   lib/crc32.c:293: warning: Excess function parameter 'tab' description in 'crc32_be_generic'
   lib/crc32.c:1: warning: no structured comments found
>> drivers/pci/pci.c:2951: warning: No description found for parameter 'pdev'
>> drivers/pci/pci.c:2951: warning: Excess function parameter 'dev' description in 'pci_rbar_get_possible_sizes'
   drivers/pci/pci.c:2989: warning: No description found for parameter 'pdev'
>> drivers/pci/pci.c:2989: warning: Excess function parameter 'dev' description in 'pci_rbar_get_current_size'
   drivers/pci/pci.c:3027: warning: No description found for parameter 'pdev'
>> drivers/pci/pci.c:3027: warning: Excess function parameter 'dev' description in 'pci_rbar_set_size'

vim +/pdev +2951 drivers/pci/pci.c

  2945	 * @bar: BAR to query
  2946	 *
  2947	 * Get the possible sizes of a resizeable BAR as bitmask defined in the spec
  2948	 * (bit 0=1MB, bit 19=512GB). Returns 0 if BAR isn't resizeable.
  2949	 */
  2950	u32 pci_rbar_get_possible_sizes(struct pci_dev *pdev, int bar)
> 2951	{
  2952		unsigned pos, nbars;
  2953		u32 ctrl, cap;
  2954		unsigned i;
  2955	
  2956		pos = pci_find_ext_capability(pdev, PCI_EXT_CAP_ID_REBAR);
  2957		if (!pos)
  2958			return 0;
  2959	
  2960		pci_read_config_dword(pdev, pos + PCI_REBAR_CTRL, &ctrl);
  2961		nbars = (ctrl & PCI_REBAR_CTRL_NBAR_MASK) >> PCI_REBAR_CTRL_NBAR_SHIFT;
  2962	
  2963		for (i = 0; i < nbars; ++i, pos += 8) {
  2964			int bar_idx;
  2965	
  2966			pci_read_config_dword(pdev, pos + PCI_REBAR_CTRL, &ctrl);
  2967			bar_idx = (ctrl & PCI_REBAR_CTRL_BAR_IDX_MASK) >>
  2968					PCI_REBAR_CTRL_BAR_IDX_SHIFT;
  2969			if (bar_idx != bar)
  2970				continue;
  2971	
  2972			pci_read_config_dword(pdev, pos + PCI_REBAR_CAP, &cap);
  2973			return (cap & PCI_REBAR_CTRL_SIZES_MASK) >>
  2974				PCI_REBAR_CTRL_SIZES_SHIFT;
  2975		}
  2976	
  2977		return 0;
  2978	}
  2979	
  2980	/**
  2981	 * pci_rbar_get_current_size - get the current size of a BAR
  2982	 * @dev: PCI device
  2983	 * @bar: BAR to set size to
  2984	 *
  2985	 * Read the size of a BAR from the resizeable BAR config.
  2986	 * Returns size if found or negativ error code.
  2987	 */
  2988	int pci_rbar_get_current_size(struct pci_dev *pdev, int bar)
> 2989	{
  2990		unsigned pos, nbars;
  2991		u32 ctrl;
  2992		unsigned i;
  2993	
  2994		pos = pci_find_ext_capability(pdev, PCI_EXT_CAP_ID_REBAR);
  2995		if (!pos)
  2996			return -ENOTSUPP;
  2997	
  2998		pci_read_config_dword(pdev, pos + PCI_REBAR_CTRL, &ctrl);
  2999		nbars = (ctrl & PCI_REBAR_CTRL_NBAR_MASK) >> PCI_REBAR_CTRL_NBAR_SHIFT;
  3000	
  3001		for (i = 0; i < nbars; ++i, pos += 8) {
  3002			int bar_idx;
  3003	
  3004			pci_read_config_dword(pdev, pos + PCI_REBAR_CTRL, &ctrl);
  3005			bar_idx = (ctrl & PCI_REBAR_CTRL_BAR_IDX_MASK) >>
  3006					PCI_REBAR_CTRL_BAR_IDX_SHIFT;
  3007			if (bar_idx != bar)
  3008				continue;
  3009	
  3010			return (ctrl & PCI_REBAR_CTRL_BAR_SIZE_MASK) >>
  3011				PCI_REBAR_CTRL_BAR_SIZE_SHIFT;
  3012		}
  3013	
  3014		return -ENOENT;
  3015	}
  3016	
  3017	/**
  3018	 * pci_rbar_set_size - set a new size for a BAR
  3019	 * @dev: PCI device
  3020	 * @bar: BAR to set size to
  3021	 * @size: new size as defined in the spec (log2(size in bytes) - 20)
  3022	 *
  3023	 * Set the new size of a BAR as defined in the spec (0=1MB, 19=512GB).
  3024	 * Returns true if resizing was successful, false otherwise.
  3025	 */
  3026	int pci_rbar_set_size(struct pci_dev *pdev, int bar, int size)
> 3027	{
  3028		unsigned pos, nbars;
  3029		u32 ctrl;
  3030		unsigned i;

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 6576 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/dri-devel/attachments/20170314/8bc9c44e/attachment-0001.gz>


More information about the dri-devel mailing list