From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1ME2ul-0008TV-PQ for qemu-devel@nongnu.org; Tue, 09 Jun 2009 11:07:03 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1ME2uk-0008Sj-Ld for qemu-devel@nongnu.org; Tue, 09 Jun 2009 11:07:02 -0400 Received: from [199.232.76.173] (port=41297 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1ME2uk-0008SZ-Bs for qemu-devel@nongnu.org; Tue, 09 Jun 2009 11:07:02 -0400 Received: from fg-out-1718.google.com ([72.14.220.155]:51902) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1ME2uj-000362-KP for qemu-devel@nongnu.org; Tue, 09 Jun 2009 11:07:02 -0400 Received: by fg-out-1718.google.com with SMTP id e21so12481fga.8 for ; Tue, 09 Jun 2009 08:07:00 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: <20090609053154.GO27210@redhat.com> References: <1244465766-6349-1-git-send-email-gleb@redhat.com> <1244465766-6349-2-git-send-email-gleb@redhat.com> <4A2D219F.1020408@redhat.com> <20090608143710.GM27210@redhat.com> <4A2D85B8.1090301@redhat.com> <20090609053154.GO27210@redhat.com> Date: Tue, 9 Jun 2009 18:07:00 +0300 Message-ID: Subject: Re: [Qemu-devel] [PATCH 2/3] Add pci_bus_reset() function. From: Blue Swirl Content-Type: multipart/mixed; boundary=001485f79552e979da046bebb544 List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Gleb Natapov Cc: Yaniv Kamay , Dor Laor , Avi Kivity , qemu-devel@nongnu.org --001485f79552e979da046bebb544 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit On 6/9/09, Gleb Natapov wrote: > On Tue, Jun 09, 2009 at 12:42:16AM +0300, Dor Laor wrote: > > Gleb Natapov wrote: > >> On Mon, Jun 08, 2009 at 05:35:11PM +0300, Avi Kivity wrote: > >> > >>> Gleb Natapov wrote: > >>> > >>>> To reset internal irq handling data structures. > >>>> > >>>> Signed-off-by: Gleb Natapov > >>>> Signed-off-by: Yaniv Kamay > >>>> --- > >>>> hw/pci.c | 16 ++++++++++++++++ > >>>> 1 files changed, 16 insertions(+), 0 deletions(-) > >>>> > >>>> diff --git a/hw/pci.c b/hw/pci.c > >>>> index 02b335f..89fefdf 100644 > >>>> --- a/hw/pci.c > >>>> +++ b/hw/pci.c > >>>> @@ -88,6 +88,21 @@ static int pcibus_load(QEMUFile *f, void *opaque, int version_id) > >>>> return 0; > >>>> } > >>>> +static void pci_bus_reset(void *opaque) > >>>> +{ > >>>> + PCIBus *bus = (PCIBus *)opaque; > >>>> + int i; > >>>> + > >>>> + for (i = 0; i < bus->nirq; i++) { > >>>> + bus->irq_count[i] = 0; > >>>> + } > >>>> + for (i = 0; i < PCI_DEVICES_MAX; i++) { > >>>> + if (bus->devices[i]) > >>>> + memset(bus->devices[i]->irq_state, 0, > >>>> + sizeof(bus->devices[i]->irq_state)); > >>>> + } > >>>> +} > >>>> + > >>>> > >>> Shouldn't each device's reset function bring its line low, thus > >>> zeroing the irq_state naturally? > >>> > >>> If not, we have a bug somewhere. Note we have exactly the same issue > >>> with save/restore. > >>> > >>> > >> They should, but I haven't found one that does. > >> > > virtio does and so do many others. Sad thing is that all should do it > > since the line is shared. > > e1000 and rtl8139 do not register a reset handler. > > > > So somebody (not me) should go and fix all others. Here's a 5 min patch to add reset to e1000 and rtl8139. Not too difficult? > > Maybe we should make it a required callback for pci_qdev_register? or better > > have every (pci?) device register several callback together. > > May be. If we go to this, I'd also make savevm/loadvm mandatory. --001485f79552e979da046bebb544 Content-Type: application/x-patch; name="0001-Register-reset-functions-for-e1000-and-rtl8139.patch" Content-Disposition: attachment; filename="0001-Register-reset-functions-for-e1000-and-rtl8139.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_fvqqvnca RnJvbSAzMmM4NmU5NWIyNTg1MTUwOTlkMDRmOWVmZjQ4ZWZjNTdhNDY5YmY3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBCbHVlIFN3aXJsIDxibGF1d2lyYmVsQGdtYWlsLmNvbT4KRGF0 ZTogVHVlLCA5IEp1biAyMDA5IDE1OjAyOjAwICswMDAwClN1YmplY3Q6IFtQQVRDSF0gUmVnaXN0 ZXIgcmVzZXQgZnVuY3Rpb25zIGZvciBlMTAwMCBhbmQgcnRsODEzOQoKU2lnbmVkLW9mZi1ieTog Qmx1ZSBTd2lybCA8YmxhdXdpcmJlbEBnbWFpbC5jb20+Ci0tLQogaHcvZTEwMDAuYyAgIHwgICAy MSArKysrKysrKysrKysrKy0tLS0tLS0KIGh3L3J0bDgxMzkuYyB8ICAgIDQgKysrLQogMiBmaWxl cyBjaGFuZ2VkLCAxNyBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2h3L2UxMDAwLmMgYi9ody9lMTAwMC5jCmluZGV4IDI2NjU3OTIuLmEwNGQ3YjEgMTAwNjQ0Ci0t LSBhL2h3L2UxMDAwLmMKKysrIGIvaHcvZTEwMDAuYwpAQCAtMTA1OCw2ICsxMDU4LDE4IEBAIHBj aV9lMTAwMF91bmluaXQoUENJRGV2aWNlICpkZXYpCiAgICAgcmV0dXJuIDA7CiB9CiAKK3N0YXRp YyB2b2lkIGUxMDAwX3Jlc2V0KHZvaWQgKm9wYXF1ZSkKK3sKKyAgICBFMTAwMFN0YXRlICpkID0g b3BhcXVlOworCisgICAgbWVtc2V0KGQtPnBoeV9yZWcsIDAsIHNpemVvZiBkLT5waHlfcmVnKTsK KyAgICBtZW1tb3ZlKGQtPnBoeV9yZWcsIHBoeV9yZWdfaW5pdCwgc2l6ZW9mIHBoeV9yZWdfaW5p dCk7CisgICAgbWVtc2V0KGQtPm1hY19yZWcsIDAsIHNpemVvZiBkLT5tYWNfcmVnKTsKKyAgICBt ZW1tb3ZlKGQtPm1hY19yZWcsIG1hY19yZWdfaW5pdCwgc2l6ZW9mIG1hY19yZWdfaW5pdCk7Cisg ICAgZC0+cnhidWZfbWluX3NoaWZ0ID0gMTsKKyAgICBtZW1zZXQoJmQtPnR4LCAwLCBzaXplb2Yg ZC0+dHgpOworfQorCiBzdGF0aWMgdm9pZCBwY2lfZTEwMDBfaW5pdChQQ0lEZXZpY2UgKnBjaV9k ZXYpCiB7CiAgICAgRTEwMDBTdGF0ZSAqZCA9IChFMTAwMFN0YXRlICopcGNpX2RldjsKQEAgLTEw OTgsMTMgKzExMTAsNiBAQCBzdGF0aWMgdm9pZCBwY2lfZTEwMDBfaW5pdChQQ0lEZXZpY2UgKnBj aV9kZXYpCiAgICAgY2hlY2tzdW0gPSAodWludDE2X3QpIEVFUFJPTV9TVU0gLSBjaGVja3N1bTsK ICAgICBkLT5lZXByb21fZGF0YVtFRVBST01fQ0hFQ0tTVU1fUkVHXSA9IGNoZWNrc3VtOwogCi0g ICAgbWVtc2V0KGQtPnBoeV9yZWcsIDAsIHNpemVvZiBkLT5waHlfcmVnKTsKLSAgICBtZW1tb3Zl KGQtPnBoeV9yZWcsIHBoeV9yZWdfaW5pdCwgc2l6ZW9mIHBoeV9yZWdfaW5pdCk7Ci0gICAgbWVt c2V0KGQtPm1hY19yZWcsIDAsIHNpemVvZiBkLT5tYWNfcmVnKTsKLSAgICBtZW1tb3ZlKGQtPm1h Y19yZWcsIG1hY19yZWdfaW5pdCwgc2l6ZW9mIG1hY19yZWdfaW5pdCk7Ci0gICAgZC0+cnhidWZf bWluX3NoaWZ0ID0gMTsKLSAgICBtZW1zZXQoJmQtPnR4LCAwLCBzaXplb2YgZC0+dHgpOwotCiAg ICAgZC0+dmMgPSBxZGV2X2dldF92bGFuX2NsaWVudCgmZC0+ZGV2LnFkZXYsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBlMTAwMF9yZWNlaXZlLCBlMTAwMF9jYW5fcmVjZWl2ZSwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUxMDAwX2NsZWFudXAsIGQpOwpAQCAt MTExNCw2ICsxMTE5LDggQEAgc3RhdGljIHZvaWQgcGNpX2UxMDAwX2luaXQoUENJRGV2aWNlICpw Y2lfZGV2KQogCiAgICAgcmVnaXN0ZXJfc2F2ZXZtKGluZm9fc3RyLCAtMSwgMiwgbmljX3NhdmUs IG5pY19sb2FkLCBkKTsKICAgICBkLT5kZXYudW5yZWdpc3RlciA9IHBjaV9lMTAwMF91bmluaXQ7 CisgICAgcWVtdV9yZWdpc3Rlcl9yZXNldChlMTAwMF9yZXNldCwgMCwgZCk7CisgICAgZTEwMDBf cmVzZXQoZCk7CiB9CiAKIHN0YXRpYyB2b2lkIGUxMDAwX3JlZ2lzdGVyX2RldmljZXModm9pZCkK ZGlmZiAtLWdpdCBhL2h3L3J0bDgxMzkuYyBiL2h3L3J0bDgxMzkuYwppbmRleCBkOTlmMzVjLi5l YTJjYTI1IDEwMDY0NAotLS0gYS9ody9ydGw4MTM5LmMKKysrIGIvaHcvcnRsODEzOS5jCkBAIC0x MTcwLDggKzExNzAsOSBAQCBzdGF0aWMgdm9pZCBydGw4MTM5X3Jlc2V0X3J4cmluZyhSVEw4MTM5 U3RhdGUgKnMsIHVpbnQzMl90IGJ1ZmZlclNpemUpCiAgICAgcy0+UnhCdWZBZGRyID0gMDsKIH0K IAotc3RhdGljIHZvaWQgcnRsODEzOV9yZXNldChSVEw4MTM5U3RhdGUgKnMpCitzdGF0aWMgdm9p ZCBydGw4MTM5X3Jlc2V0KHZvaWQgKm9wYXF1ZSkKIHsKKyAgICBSVEw4MTM5U3RhdGUgKnMgPSBv cGFxdWU7CiAgICAgaW50IGk7CiAKICAgICAvKiByZXN0b3JlIE1BQyBhZGRyZXNzICovCkBAIC0z NDczLDYgKzM0NzQsNyBAQCBzdGF0aWMgdm9pZCBwY2lfcnRsODEzOV9pbml0KFBDSURldmljZSAq ZGV2KQogCiAgICAgcy0+cGNpX2RldiA9IChQQ0lEZXZpY2UgKilkOwogICAgIHFkZXZfZ2V0X21h Y2FkZHIoJmRldi0+cWRldiwgcy0+bWFjYWRkcik7CisgICAgcWVtdV9yZWdpc3Rlcl9yZXNldChy dGw4MTM5X3Jlc2V0LCAwLCBzKTsKICAgICBydGw4MTM5X3Jlc2V0KHMpOwogICAgIHMtPnZjID0g cWRldl9nZXRfdmxhbl9jbGllbnQoJmRldi0+cWRldiwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHJ0bDgxMzlfcmVjZWl2ZSwgcnRsODEzOV9jYW5fcmVjZWl2ZSwKLS0gCjEuNS42 LjUKCg== --001485f79552e979da046bebb544--