Re: [PATCH v3] xen-pciback: optionally allow interrupt enable flag writes

4 views
Skip to first unread message

kbuild test robot

unread,
Jan 11, 2020, 10:48:43 AM1/11/20
to kbu...@lists.01.org, Nick Desaulniers, clang-bu...@googlegroups.com
CC: kbuil...@lists.01.org
In-Reply-To: <20200111034347....@invisiblethingslab.com>
References: <20200111034347....@invisiblethingslab.com>
TO: "Marek Marczykowski-Górecki" <marm...@invisiblethingslab.com>
CC: xen-...@lists.xenproject.org, "Marek Marczykowski-Górecki" <marm...@invisiblethingslab.com>, Jan Beulich <jbeu...@suse.com>, Simon Gaiser <si...@invisiblethingslab.com>, Boris Ostrovsky <boris.o...@oracle.com>, Juergen Gross <jgr...@suse.com>, Stefano Stabellini <sstab...@kernel.org>, YueHaibing <yueha...@huawei.com>, open list <linux-...@vger.kernel.org>, "Marek Marczykowski-Górecki" <marm...@invisiblethingslab.com>, Jan Beulich <jbeu...@suse.com>, Simon Gaiser <si...@invisiblethingslab.com>, Boris Ostrovsky <boris.o...@oracle.com>, Juergen Gross <jgr...@suse.com>, Stefano Stabellini <sstab...@kernel.org>, YueHaibing <yueha...@huawei.com>, open list <linux-...@vger.kernel.org>
CC: "Marek Marczykowski-Górecki" <marm...@invisiblethingslab.com>, Jan Beulich <jbeu...@suse.com>, Simon Gaiser <si...@invisiblethingslab.com>, Boris Ostrovsky <boris.o...@oracle.com>, Juergen Gross <jgr...@suse.com>, Stefano Stabellini <sstab...@kernel.org>, YueHaibing <yueha...@huawei.com>, open list <linux-...@vger.kernel.org>

Hi "Marek,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on xen-tip/linux-next]
[also build test WARNING on linux/master linus/master v5.5-rc5 next-20200110]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url: https://github.com/0day-ci/linux/commits/Marek-Marczykowski-G-recki/xen-pciback-optionally-allow-interrupt-enable-flag-writes/20200111-162243
base: https://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git linux-next
config: x86_64-allyesconfig (attached as .config)
compiler: clang version 10.0.0 (git://gitmirror/llvm_project 016bf03ef6fcd9dce43b0c17971f76323f07a684)
reproduce:
# save the attached .config to linux build tree
make ARCH=x86_64

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <l...@intel.com>

All warnings (new ones prefixed by >>):

>> drivers/xen/xen-pciback/conf_space_header.c:121:19: warning: variable 'val' is uninitialized when used here [-Wuninitialized]
if ((cmd->val ^ val) & PCI_COMMAND_INTX_DISABLE) {
^~~
drivers/xen/xen-pciback/conf_space_header.c:65:9: note: initialize the variable 'val' to silence this warning
u16 val;
^
= 0
1 warning generated.

vim +/val +121 drivers/xen/xen-pciback/conf_space_header.c

60
61 static int command_write(struct pci_dev *dev, int offset, u16 value, void *data)
62 {
63 struct xen_pcibk_dev_data *dev_data;
64 int err;
65 u16 val;
66 struct pci_cmd_info *cmd = data;
67
68 dev_data = pci_get_drvdata(dev);
69 if (!pci_is_enabled(dev) && is_enable_cmd(value)) {
70 if (unlikely(verbose_request))
71 printk(KERN_DEBUG DRV_NAME ": %s: enable\n",
72 pci_name(dev));
73 err = pci_enable_device(dev);
74 if (err)
75 return err;
76 if (dev_data)
77 dev_data->enable_intx = 1;
78 } else if (pci_is_enabled(dev) && !is_enable_cmd(value)) {
79 if (unlikely(verbose_request))
80 printk(KERN_DEBUG DRV_NAME ": %s: disable\n",
81 pci_name(dev));
82 pci_disable_device(dev);
83 if (dev_data)
84 dev_data->enable_intx = 0;
85 }
86
87 if (!dev->is_busmaster && is_master_cmd(value)) {
88 if (unlikely(verbose_request))
89 printk(KERN_DEBUG DRV_NAME ": %s: set bus master\n",
90 pci_name(dev));
91 pci_set_master(dev);
92 } else if (dev->is_busmaster && !is_master_cmd(value)) {
93 if (unlikely(verbose_request))
94 printk(KERN_DEBUG DRV_NAME ": %s: clear bus master\n",
95 pci_name(dev));
96 pci_clear_master(dev);
97 }
98
99 if (!(cmd->val & PCI_COMMAND_INVALIDATE) &&
100 (value & PCI_COMMAND_INVALIDATE)) {
101 if (unlikely(verbose_request))
102 printk(KERN_DEBUG
103 DRV_NAME ": %s: enable memory-write-invalidate\n",
104 pci_name(dev));
105 err = pci_set_mwi(dev);
106 if (err) {
107 pr_warn("%s: cannot enable memory-write-invalidate (%d)\n",
108 pci_name(dev), err);
109 value &= ~PCI_COMMAND_INVALIDATE;
110 }
111 } else if ((cmd->val & PCI_COMMAND_INVALIDATE) &&
112 !(value & PCI_COMMAND_INVALIDATE)) {
113 if (unlikely(verbose_request))
114 printk(KERN_DEBUG
115 DRV_NAME ": %s: disable memory-write-invalidate\n",
116 pci_name(dev));
117 pci_clear_mwi(dev);
118 }
119
120 if (dev_data && dev_data->allow_interrupt_control) {
> 121 if ((cmd->val ^ val) & PCI_COMMAND_INTX_DISABLE) {
122 if (value & PCI_COMMAND_INTX_DISABLE) {
123 pci_intx(dev, 0);
124 } else {
125 /* Do not allow enabling INTx together with MSI or MSI-X. */
126 switch (xen_pcibk_get_interrupt_type(dev)) {
127 case INTERRUPT_TYPE_NONE:
128 case INTERRUPT_TYPE_INTX:
129 pci_intx(dev, 1);
130 break;
131 default:
132 return PCIBIOS_SET_FAILED;
133 }
134 }
135 }
136 }
137
138 cmd->val = value;
139
140 if (!xen_pcibk_permissive && (!dev_data || !dev_data->permissive))
141 return 0;
142
143 /* Only allow the guest to control certain bits. */
144 err = pci_read_config_word(dev, offset, &val);
145 if (err || val == value)
146 return err;
147
148 value &= PCI_COMMAND_GUEST;
149 value |= val & ~PCI_COMMAND_GUEST;
150
151 return pci_write_config_word(dev, offset, value);
152 }
153

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuil...@lists.01.org Intel Corporation
.config.gz

Nick Desaulniers

unread,
Jan 13, 2020, 12:11:54 PM1/13/20
to marm...@invisiblethingslab.com, kbu...@lists.01.org, clang-built-linux, kbuild test robot, kbuil...@lists.01.org, xen-...@lists.xenproject.org, jbeu...@suse.com, si...@invisiblethingslab.com, Boris Ostrovsky, Juergen Gross, sstab...@kernel.org, yueha...@huawei.com, LKML
Hi Marek,
Below is a report from 0day bot build w/ Clang. The warning looks
legit, can you please take a look? Apologies if this has already been
reported.
> --
> You received this message because you are subscribed to the Google Groups "Clang Built Linux" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to clang-built-li...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/clang-built-linux/202001112351.gy4c3aUU%25lkp%40intel.com.



--
Thanks,
~Nick Desaulniers
Reply all
Reply to author
Forward
0 new messages