在 2021/8/25 17:52, Philippe Mathieu-Daudé 写道: > On 8/25/21 9:56 AM, Longpeng(Mike) wrote: >> 'msix_function_masked' is kept pace with the device's config, >> we can use it to replace the complex conditional in >> msix_set/unset_vector_notifiers. > > Typo 'simplfy' -> 'simplify' in this/previous patch subject. > Ok. >> poll_notifier should be reset to NULL in the error path in >> msix_set_vector_notifiers, fix it incidentally. > > I'd rather see this fix in a different patch, being > unrelated to the msix_function_masked optimization. > Ok, will split in next version. Thanks. >> Signed-off-by: Longpeng(Mike) <[email protected]> >> --- >> hw/pci/msix.c | 7 +++---- >> 1 file changed, 3 insertions(+), 4 deletions(-) >> >> diff --git a/hw/pci/msix.c b/hw/pci/msix.c >> index ae9331c..8057709 100644 >> --- a/hw/pci/msix.c >> +++ b/hw/pci/msix.c >> @@ -592,8 +592,7 @@ int msix_set_vector_notifiers(PCIDevice *dev, >> dev->msix_vector_release_notifier = release_notifier; >> dev->msix_vector_poll_notifier = poll_notifier; >> >> - if ((dev->config[dev->msix_cap + MSIX_CONTROL_OFFSET] & >> - (MSIX_ENABLE_MASK | MSIX_MASKALL_MASK)) == MSIX_ENABLE_MASK) { >> + if (!dev->msix_function_masked) { >> for (vector = 0; vector < dev->msix_entries_nr; vector++) { >> ret = msix_set_notifier_for_vector(dev, vector); >> if (ret < 0) { >> @@ -612,6 +611,7 @@ undo: >> } >> dev->msix_vector_use_notifier = NULL; >> dev->msix_vector_release_notifier = NULL; >> + dev->msix_vector_poll_notifier = NULL; >> return ret; >> } >> >> @@ -622,8 +622,7 @@ void msix_unset_vector_notifiers(PCIDevice *dev) >> assert(dev->msix_vector_use_notifier && >> dev->msix_vector_release_notifier); >> >> - if ((dev->config[dev->msix_cap + MSIX_CONTROL_OFFSET] & >> - (MSIX_ENABLE_MASK | MSIX_MASKALL_MASK)) == MSIX_ENABLE_MASK) { >> + if (!dev->msix_function_masked) { >> for (vector = 0; vector < dev->msix_entries_nr; vector++) { >> msix_unset_notifier_for_vector(dev, vector); >> } >> > > . >
Re: [PATCH 2/5] msix: simplfy the conditional in msix_set/unset_vector_notifiers
Longpeng (Mike, Cloud Infrastructure Service Product Dept.) Wed, 25 Aug 2021 02:57:06 -0700
- [PATCH 0/5] op... Longpeng(Mike)
- [PATCH 3/... Longpeng(Mike)
- [PATCH 4/... Longpeng(Mike)
- Re: [... Alex Williamson
- [PATCH 2/... Longpeng(Mike)
- [PATCH 1/... Longpeng(Mike)
- Re: [... Alex Williamson
- [PATCH 5/... Longpeng(Mike)
- Re: [... Alex Williamson
- Re: [PATC... Philippe Mathieu-Daudé
- Re: [... Longpeng (Mike, Cloud Infrastructure Service Product Dept.)
- Re: [PATC... Longpeng (Mike, Cloud Infrastructure Service Product Dept.)
