Message ID | 20220913210957.3493826-6-Frank.Li@nxp.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v10,1/6] platform-msi: export symbol platform_msi_create_irq_domain() | expand |
In subject, capitalize and change "makeup" to "Clean up": PCI: endpoint: pci-epf-vntb: Clean up On Tue, Sep 13, 2022 at 04:09:56PM -0500, Frank Li wrote: > Remove unused field: epf_db_phy. > Remove __iomem before epf_db. > Remove dupicate check if (readl(ntb->epf_db + i * 4)). > Using readl_relaxed instead of readl. > Using marco ENTRY_SIZE instead of number 4 at all place. Add "()" after function names. s/marco/macro/ It would be nice if "ENTRY_SIZE" had a hint about what kind of entry we're talking about. Since this is a collection of random cleanups, I noticed a typo in epf_ntb_configure_interrupt() kernel-doc: s/capaiblity/capability/ The struct epf_ntb_ctrl definition is also whitespace-damaged. The members of struct epf_ntb_ctrl and struct epf_ntb should follow the same indentation style. Some members of struct epf_ntb_ctrl are indented with a tab, others with space. Either make them all tabs and indent struct epf_ntb similarly, or indent the struct epf_ntb_ctrl members with a single space. The comments in the file have a whole collection of ways to spell vhost: Virtual Host, VHOST, VHost, vHOST, vhost. Make them all the same, please. You can use "Virtual Host (VHOST)" or whatever the first time if you want to use the short version later. Same for host/HOST/etc. I don't want to read things like this: @ntb: NTB device that facilitates communication between HOST and vHOST2 Wrapper to initialize a particular EPC interface and start the workqueue to check for commands from host. and wonder whether "host" is supposed to be the same as "HOST". Also, why does that say "vHOST*2*"? There are several instances of "HOST1" and "HOST2" (and "vHOST2"). Should those appear somewhere in the diagram at the top of the file? The diagram starts with "/**" which means it's kernel-doc, but the diagram is not kernel-doc. Please run this: scripts/kernel-doc -v -none drivers/pci/endpoint/functions/pci-epf-vntb.c and fix all the warnings. Bjorn
Hi Frank, I love your patch! Perhaps something to improve: [auto build test WARNING on jonmason-ntb/ntb-next] [also build test WARNING on driver-core/driver-core-testing linus/master v6.0-rc5 next-20220914] [cannot apply to tip/irq/core] [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#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Frank-Li/platform-msi-export-symbol-platform_msi_create_irq_domain/20220914-060955 base: https://github.com/jonmason/ntb ntb-next config: ia64-randconfig-s051-20220914 (https://download.01.org/0day-ci/archive/20220914/202209142334.YTRtjuFD-lkp@intel.com/config) compiler: ia64-linux-gcc (GCC) 12.1.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # apt-get install sparse # sparse version: v0.6.4-39-gce1a6720-dirty # https://github.com/intel-lab-lkp/linux/commit/c0b811e4bf3a50a612ed143d284880e09790eff5 git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Frank-Li/platform-msi-export-symbol-platform_msi_create_irq_domain/20220914-060955 git checkout c0b811e4bf3a50a612ed143d284880e09790eff5 # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=ia64 SHELL=/bin/bash drivers/pci/endpoint/functions/ If you fix the issue, kindly add following tag where applicable Reported-by: kernel test robot <lkp@intel.com> sparse warnings: (new ones prefixed by >>) >> drivers/pci/endpoint/functions/pci-epf-vntb.c:258:47: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@ drivers/pci/endpoint/functions/pci-epf-vntb.c:258:47: sparse: expected void const volatile [noderef] __iomem *addr drivers/pci/endpoint/functions/pci-epf-vntb.c:258:47: sparse: got void * >> drivers/pci/endpoint/functions/pci-epf-vntb.c:260:47: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@ drivers/pci/endpoint/functions/pci-epf-vntb.c:260:47: sparse: expected void volatile [noderef] __iomem *addr drivers/pci/endpoint/functions/pci-epf-vntb.c:260:47: sparse: got void * >> drivers/pci/endpoint/functions/pci-epf-vntb.c:560:66: sparse: sparse: incorrect type in argument 3 (different address spaces) @@ expected void [noderef] __iomem *virt_addr @@ got void *[assigned] mw_addr @@ drivers/pci/endpoint/functions/pci-epf-vntb.c:560:66: sparse: expected void [noderef] __iomem *virt_addr drivers/pci/endpoint/functions/pci-epf-vntb.c:560:66: sparse: got void *[assigned] mw_addr drivers/pci/endpoint/functions/pci-epf-vntb.c:1106:33: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected void [noderef] __iomem *base @@ got struct epf_ntb_ctrl *reg @@ drivers/pci/endpoint/functions/pci-epf-vntb.c:1106:33: sparse: expected void [noderef] __iomem *base drivers/pci/endpoint/functions/pci-epf-vntb.c:1106:33: sparse: got struct epf_ntb_ctrl *reg drivers/pci/endpoint/functions/pci-epf-vntb.c:1117:33: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected void [noderef] __iomem *base @@ got struct epf_ntb_ctrl *reg @@ drivers/pci/endpoint/functions/pci-epf-vntb.c:1117:33: sparse: expected void [noderef] __iomem *base drivers/pci/endpoint/functions/pci-epf-vntb.c:1117:33: sparse: got struct epf_ntb_ctrl *reg drivers/pci/endpoint/functions/pci-epf-vntb.c:1128:33: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected void [noderef] __iomem *base @@ got struct epf_ntb_ctrl *reg @@ drivers/pci/endpoint/functions/pci-epf-vntb.c:1128:33: sparse: expected void [noderef] __iomem *base drivers/pci/endpoint/functions/pci-epf-vntb.c:1128:33: sparse: got struct epf_ntb_ctrl *reg drivers/pci/endpoint/functions/pci-epf-vntb.c:1140:33: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected void [noderef] __iomem *base @@ got struct epf_ntb_ctrl *reg @@ drivers/pci/endpoint/functions/pci-epf-vntb.c:1140:33: sparse: expected void [noderef] __iomem *base drivers/pci/endpoint/functions/pci-epf-vntb.c:1140:33: sparse: got struct epf_ntb_ctrl *reg drivers/pci/endpoint/functions/pci-epf-vntb.c: note: in included file (through arch/ia64/include/asm/io.h, include/linux/io.h): include/asm-generic/io.h:335:15: sparse: sparse: cast to restricted __le32 vim +258 drivers/pci/endpoint/functions/pci-epf-vntb.c 236 237 /** 238 * epf_ntb_cmd_handler() - Handle commands provided by the NTB Host 239 * @work: work_struct for the epf_ntb_epc 240 * 241 * Workqueue function that gets invoked for the two epf_ntb_epc 242 * periodically (once every 5ms) to see if it has received any commands 243 * from NTB host. The host can send commands to configure doorbell or 244 * configure memory window or to update link status. 245 */ 246 static void epf_ntb_cmd_handler(struct work_struct *work) 247 { 248 struct epf_ntb_ctrl *ctrl; 249 u32 command, argument; 250 struct epf_ntb *ntb; 251 struct device *dev; 252 int ret; 253 int i; 254 255 ntb = container_of(work, struct epf_ntb, cmd_handler.work); 256 257 for (i = 1; i < ntb->db_count; i++) { > 258 if (readl_relaxed(ntb->epf_db + i * ENTRY_SIZE)) { 259 ntb_db_event(&ntb->ntb, i); > 260 writel(0, ntb->epf_db + i * ENTRY_SIZE); 261 } 262 } 263 264 ctrl = ntb->reg; 265 command = ctrl->command; 266 if (!command) 267 goto reset_handler; 268 argument = ctrl->argument; 269 270 ctrl->command = 0; 271 ctrl->argument = 0; 272 273 ctrl = ntb->reg; 274 dev = &ntb->epf->dev; 275 276 switch (command) { 277 case COMMAND_CONFIGURE_DOORBELL: 278 ctrl->command_status = COMMAND_STATUS_OK; 279 break; 280 case COMMAND_TEARDOWN_DOORBELL: 281 ctrl->command_status = COMMAND_STATUS_OK; 282 break; 283 case COMMAND_CONFIGURE_MW: 284 ret = epf_ntb_configure_mw(ntb, argument); 285 if (ret < 0) 286 ctrl->command_status = COMMAND_STATUS_ERROR; 287 else 288 ctrl->command_status = COMMAND_STATUS_OK; 289 break; 290 case COMMAND_TEARDOWN_MW: 291 epf_ntb_teardown_mw(ntb, argument); 292 ctrl->command_status = COMMAND_STATUS_OK; 293 break; 294 case COMMAND_LINK_UP: 295 ntb->linkup = true; 296 ret = epf_ntb_link_up(ntb, true); 297 if (ret < 0) 298 ctrl->command_status = COMMAND_STATUS_ERROR; 299 else 300 ctrl->command_status = COMMAND_STATUS_OK; 301 goto reset_handler; 302 case COMMAND_LINK_DOWN: 303 ntb->linkup = false; 304 ret = epf_ntb_link_up(ntb, false); 305 if (ret < 0) 306 ctrl->command_status = COMMAND_STATUS_ERROR; 307 else 308 ctrl->command_status = COMMAND_STATUS_OK; 309 break; 310 default: 311 dev_err(dev, "UNKNOWN command: %d\n", command); 312 break; 313 } 314 315 reset_handler: 316 queue_delayed_work(kpcintb_workqueue, &ntb->cmd_handler, 317 msecs_to_jiffies(5)); 318 } 319
Hi Frank, I love your patch! Perhaps something to improve: [auto build test WARNING on jonmason-ntb/ntb-next] [also build test WARNING on driver-core/driver-core-testing linus/master v6.0-rc5 next-20220916] [cannot apply to tip/irq/core] [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#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Frank-Li/platform-msi-export-symbol-platform_msi_create_irq_domain/20220914-060955 base: https://github.com/jonmason/ntb ntb-next config: mips-randconfig-s042-20220918 (https://download.01.org/0day-ci/archive/20220918/202209182035.SS1p5KkG-lkp@intel.com/config) compiler: mips-linux-gcc (GCC) 12.1.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # apt-get install sparse # sparse version: v0.6.4-39-gce1a6720-dirty # https://github.com/intel-lab-lkp/linux/commit/c0b811e4bf3a50a612ed143d284880e09790eff5 git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Frank-Li/platform-msi-export-symbol-platform_msi_create_irq_domain/20220914-060955 git checkout c0b811e4bf3a50a612ed143d284880e09790eff5 # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=mips SHELL=/bin/bash If you fix the issue, kindly add following tag where applicable Reported-by: kernel test robot <lkp@intel.com> sparse warnings: (new ones prefixed by >>) >> drivers/pci/endpoint/functions/pci-epf-vntb.c:258:47: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *mem @@ got void * @@ drivers/pci/endpoint/functions/pci-epf-vntb.c:258:47: sparse: expected void const volatile [noderef] __iomem *mem drivers/pci/endpoint/functions/pci-epf-vntb.c:258:47: sparse: got void * >> drivers/pci/endpoint/functions/pci-epf-vntb.c:260:47: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *mem @@ got void * @@ drivers/pci/endpoint/functions/pci-epf-vntb.c:260:47: sparse: expected void volatile [noderef] __iomem *mem drivers/pci/endpoint/functions/pci-epf-vntb.c:260:47: sparse: got void * drivers/pci/endpoint/functions/pci-epf-vntb.c:560:66: sparse: sparse: incorrect type in argument 3 (different address spaces) @@ expected void [noderef] __iomem *virt_addr @@ got void *[assigned] mw_addr @@ drivers/pci/endpoint/functions/pci-epf-vntb.c:560:66: sparse: expected void [noderef] __iomem *virt_addr drivers/pci/endpoint/functions/pci-epf-vntb.c:560:66: sparse: got void *[assigned] mw_addr drivers/pci/endpoint/functions/pci-epf-vntb.c:1106:33: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected void [noderef] __iomem *base @@ got struct epf_ntb_ctrl *reg @@ drivers/pci/endpoint/functions/pci-epf-vntb.c:1106:33: sparse: expected void [noderef] __iomem *base drivers/pci/endpoint/functions/pci-epf-vntb.c:1106:33: sparse: got struct epf_ntb_ctrl *reg drivers/pci/endpoint/functions/pci-epf-vntb.c:1117:33: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected void [noderef] __iomem *base @@ got struct epf_ntb_ctrl *reg @@ drivers/pci/endpoint/functions/pci-epf-vntb.c:1117:33: sparse: expected void [noderef] __iomem *base drivers/pci/endpoint/functions/pci-epf-vntb.c:1117:33: sparse: got struct epf_ntb_ctrl *reg drivers/pci/endpoint/functions/pci-epf-vntb.c:1128:33: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected void [noderef] __iomem *base @@ got struct epf_ntb_ctrl *reg @@ drivers/pci/endpoint/functions/pci-epf-vntb.c:1128:33: sparse: expected void [noderef] __iomem *base drivers/pci/endpoint/functions/pci-epf-vntb.c:1128:33: sparse: got struct epf_ntb_ctrl *reg drivers/pci/endpoint/functions/pci-epf-vntb.c:1140:33: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected void [noderef] __iomem *base @@ got struct epf_ntb_ctrl *reg @@ drivers/pci/endpoint/functions/pci-epf-vntb.c:1140:33: sparse: expected void [noderef] __iomem *base drivers/pci/endpoint/functions/pci-epf-vntb.c:1140:33: sparse: got struct epf_ntb_ctrl *reg vim +258 drivers/pci/endpoint/functions/pci-epf-vntb.c 236 237 /** 238 * epf_ntb_cmd_handler() - Handle commands provided by the NTB Host 239 * @work: work_struct for the epf_ntb_epc 240 * 241 * Workqueue function that gets invoked for the two epf_ntb_epc 242 * periodically (once every 5ms) to see if it has received any commands 243 * from NTB host. The host can send commands to configure doorbell or 244 * configure memory window or to update link status. 245 */ 246 static void epf_ntb_cmd_handler(struct work_struct *work) 247 { 248 struct epf_ntb_ctrl *ctrl; 249 u32 command, argument; 250 struct epf_ntb *ntb; 251 struct device *dev; 252 int ret; 253 int i; 254 255 ntb = container_of(work, struct epf_ntb, cmd_handler.work); 256 257 for (i = 1; i < ntb->db_count; i++) { > 258 if (readl_relaxed(ntb->epf_db + i * ENTRY_SIZE)) { 259 ntb_db_event(&ntb->ntb, i); > 260 writel(0, ntb->epf_db + i * ENTRY_SIZE); 261 } 262 } 263 264 ctrl = ntb->reg; 265 command = ctrl->command; 266 if (!command) 267 goto reset_handler; 268 argument = ctrl->argument; 269 270 ctrl->command = 0; 271 ctrl->argument = 0; 272 273 ctrl = ntb->reg; 274 dev = &ntb->epf->dev; 275 276 switch (command) { 277 case COMMAND_CONFIGURE_DOORBELL: 278 ctrl->command_status = COMMAND_STATUS_OK; 279 break; 280 case COMMAND_TEARDOWN_DOORBELL: 281 ctrl->command_status = COMMAND_STATUS_OK; 282 break; 283 case COMMAND_CONFIGURE_MW: 284 ret = epf_ntb_configure_mw(ntb, argument); 285 if (ret < 0) 286 ctrl->command_status = COMMAND_STATUS_ERROR; 287 else 288 ctrl->command_status = COMMAND_STATUS_OK; 289 break; 290 case COMMAND_TEARDOWN_MW: 291 epf_ntb_teardown_mw(ntb, argument); 292 ctrl->command_status = COMMAND_STATUS_OK; 293 break; 294 case COMMAND_LINK_UP: 295 ntb->linkup = true; 296 ret = epf_ntb_link_up(ntb, true); 297 if (ret < 0) 298 ctrl->command_status = COMMAND_STATUS_ERROR; 299 else 300 ctrl->command_status = COMMAND_STATUS_OK; 301 goto reset_handler; 302 case COMMAND_LINK_DOWN: 303 ntb->linkup = false; 304 ret = epf_ntb_link_up(ntb, false); 305 if (ret < 0) 306 ctrl->command_status = COMMAND_STATUS_ERROR; 307 else 308 ctrl->command_status = COMMAND_STATUS_OK; 309 break; 310 default: 311 dev_err(dev, "UNKNOWN command: %d\n", command); 312 break; 313 } 314 315 reset_handler: 316 queue_delayed_work(kpcintb_workqueue, &ntb->cmd_handler, 317 msecs_to_jiffies(5)); 318 } 319
diff --git a/drivers/pci/endpoint/functions/pci-epf-vntb.c b/drivers/pci/endpoint/functions/pci-epf-vntb.c index 1466dd1904175..17f030befde52 100644 --- a/drivers/pci/endpoint/functions/pci-epf-vntb.c +++ b/drivers/pci/endpoint/functions/pci-epf-vntb.c @@ -67,6 +67,8 @@ static struct workqueue_struct *kpcintb_workqueue; #define MAX_DB_COUNT 32 #define MAX_MW 4 +#define ENTRY_SIZE 4 + enum epf_ntb_bar { BAR_CONFIG, BAR_DB, @@ -136,8 +138,7 @@ struct epf_ntb { struct epf_ntb_ctrl *reg; - phys_addr_t epf_db_phy; - void __iomem *epf_db; + void *epf_db; phys_addr_t vpci_mw_phy[MAX_MW]; void __iomem *vpci_mw_addr[MAX_MW]; @@ -254,12 +255,9 @@ static void epf_ntb_cmd_handler(struct work_struct *work) ntb = container_of(work, struct epf_ntb, cmd_handler.work); for (i = 1; i < ntb->db_count; i++) { - if (readl(ntb->epf_db + i * 4)) { - if (readl(ntb->epf_db + i * 4)) - ntb->db |= 1 << (i - 1); - + if (readl_relaxed(ntb->epf_db + i * ENTRY_SIZE)) { ntb_db_event(&ntb->ntb, i); - writel(0, ntb->epf_db + i * 4); + writel(0, ntb->epf_db + i * ENTRY_SIZE); } } @@ -424,7 +422,7 @@ static int epf_ntb_config_spad_bar_alloc(struct epf_ntb *ntb) spad_count = ntb->spad_count; ctrl_size = sizeof(struct epf_ntb_ctrl); - spad_size = 2 * spad_count * 4; + spad_size = 2 * spad_count * ENTRY_SIZE; if (!align) { ctrl_size = roundup_pow_of_two(ctrl_size); @@ -454,7 +452,7 @@ static int epf_ntb_config_spad_bar_alloc(struct epf_ntb *ntb) ctrl->num_mws = ntb->num_mws; ntb->spad_size = spad_size; - ctrl->db_entry_size = 4; + ctrl->db_entry_size = ENTRY_SIZE; for (i = 0; i < ntb->db_count; i++) { ntb->reg->db_data[i] = 1 + i; @@ -516,13 +514,15 @@ static int epf_ntb_configure_interrupt(struct epf_ntb *ntb) static int epf_ntb_db_bar_init(struct epf_ntb *ntb) { const struct pci_epc_features *epc_features; - u32 align; struct device *dev = &ntb->epf->dev; - int ret; struct pci_epf_bar *epf_bar; - void __iomem *mw_addr; enum pci_barno barno; - size_t size = 4 * ntb->db_count; + void *mw_addr; + size_t size; + u32 align; + int ret; + + size = ENTRY_SIZE * ntb->db_count; epc_features = pci_epc_get_features(ntb->epf->epc, ntb->epf->func_no, @@ -1084,11 +1084,11 @@ static int vntb_epf_link_enable(struct ntb_dev *ntb, static u32 vntb_epf_spad_read(struct ntb_dev *ndev, int idx) { struct epf_ntb *ntb = ntb_ndev(ndev); - int off = ntb->reg->spad_offset, ct = ntb->reg->spad_count * 4; + int off = ntb->reg->spad_offset, ct = ntb->reg->spad_count * ENTRY_SIZE; u32 val; void __iomem *base = ntb->reg; - val = readl(base + off + ct + idx * 4); + val = readl(base + off + ct + idx * ENTRY_SIZE); return val; } @@ -1096,10 +1096,10 @@ static int vntb_epf_spad_write(struct ntb_dev *ndev, int idx, u32 val) { struct epf_ntb *ntb = ntb_ndev(ndev); struct epf_ntb_ctrl *ctrl = ntb->reg; - int off = ctrl->spad_offset, ct = ctrl->spad_count * 4; + int off = ctrl->spad_offset, ct = ctrl->spad_count * ENTRY_SIZE; void __iomem *base = ntb->reg; - writel(val, base + off + ct + idx * 4); + writel(val, base + off + ct + idx * ENTRY_SIZE); return 0; } @@ -1111,7 +1111,7 @@ static u32 vntb_epf_peer_spad_read(struct ntb_dev *ndev, int pidx, int idx) void __iomem *base = ntb->reg; u32 val; - val = readl(base + off + idx * 4); + val = readl(base + off + idx * ENTRY_SIZE); return val; } @@ -1122,7 +1122,7 @@ static int vntb_epf_peer_spad_write(struct ntb_dev *ndev, int pidx, int idx, u32 int off = ctrl->spad_offset; void __iomem *base = ntb->reg; - writel(val, base + off + idx * 4); + writel(val, base + off + idx * ENTRY_SIZE); return 0; }
Remove unused field: epf_db_phy. Remove __iomem before epf_db. Remove dupicate check if (readl(ntb->epf_db + i * 4)). Using readl_relaxed instead of readl. Using marco ENTRY_SIZE instead of number 4 at all place. Signed-off-by: Frank Li <Frank.Li@nxp.com> --- drivers/pci/endpoint/functions/pci-epf-vntb.c | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-)