On Sun, Dec 04, 2011 at 03:35:38PM +0100, Jan Kiszka wrote: > On 2011-12-04 15:24, Michael S. Tsirkin wrote: > > On Sun, Dec 04, 2011 at 02:22:12PM +0100, Jan Kiszka wrote: > >> From: Jan Kiszka <jan.kis...@siemens.com> > >> > >> There is no point in pushing this burden to the devices, they may rather > >> forget to call them (like intel-hda and ahci ATM). Instead, reset > >> functions are now called from pci_device_reset and pci_bridge_reset. > >> They do nothing if the MSI/MSI-X is not in use. > >> > >> CC: Alexander Graf <ag...@suse.de> > >> CC: Gerd Hoffmann <kra...@redhat.com> > >> CC: Isaku Yamahata <yamah...@valinux.co.jp> > >> Signed-off-by: Jan Kiszka <jan.kis...@siemens.com> > > > > What makes me unhappy with this proposal is that msix_write_config, for > > example, becomes in fact an internal interface. So devices should be > > calling some functions like msix_init from msix.h, but not others like > > msix_write_config. > > > > It used to be simple: devices should call msix_. > > Now, how are devices to figure it out? > > > > E.g. the comment near msix_write_config says: > > /* Handle MSI-X capability config write. */ > > That should be aligned to msi_write_config's comment. > > My goal is to reduce the number of calls devices have to do in order to > use MSI. We have quite a few correct examples by now, so it should not > be too hard to figure out what to do to use standard MSI[X] services. > > Maybe a PCI skeleton device model would help further. Or up-to-date > documentation, thought that may be even harder. ;)
Maybe it's time to move code into hw/pci/ ? Then we could have private interfaces without kludges like pci_internals.h ... -- MST