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