From mboxrd@z Thu Jan 1 00:00:00 1970 From: Markus Armbruster Subject: Re: [Qemu-devel] [QEMU PATCH] block: Remove blk_attach_dev_legacy() / legacy_dev code Date: Tue, 18 Dec 2018 19:33:30 +0100 Message-ID: <878t0mbs79.fsf@dusky.pond.sub.org> References: <1545149484-4929-1-git-send-email-thuth@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1gZKBa-00013a-Nn for xen-devel@lists.xenproject.org; Tue, 18 Dec 2018 18:33:42 +0000 In-Reply-To: <1545149484-4929-1-git-send-email-thuth@redhat.com> (Thomas Huth's message of "Tue, 18 Dec 2018 17:11:24 +0100") List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Thomas Huth Cc: Kevin Wolf , Stefano Stabellini , qemu-block@nongnu.org, qemu-devel@nongnu.org, Max Reitz , Anthony Perard , xen-devel@lists.xenproject.org List-Id: xen-devel@lists.xenproject.org VGhvbWFzIEh1dGggPHRodXRoQHJlZGhhdC5jb20+IHdyaXRlczoKCj4gVGhlIGxhc3QgdXNlciBv ZiBibGtfYXR0YWNoX2Rldl9sZWdhY3koKSBpcyB0aGUgY29kZSBpbiB4ZW5fZGlzay5jLgo+IEl0 IHBhc3NlcyBhIHBvaW50ZXIgdG8gYSBYZW5CbGtEZXYgYXMgc2Vjb25kIHBhcmFtZXRlci4gWGVu QmxrRGV2Cj4gaXMgZGVyaXZlZCBmcm9tIFhlbkRldmljZSB3aGljaCBpbiB0dXJuIGlzIGRlcml2 ZWQgZnJvbSBEZXZpY2VTdGF0ZQo+IHNpbmNlIGNvbW1pdCAzYTZjOTE3MmFjNTk1MWUgKCJ4ZW46 IGNyZWF0ZSBxZGV2IGZvciBlYWNoIGJhY2tlbmQgZGV2aWNlIikuCj4gVGh1cyB0aGUgY29kZSBj YW4gYWxzbyBzaW1wbHkgdXNlIGJsa19hdHRhY2hfZGV2KCkgd2l0aCBhIHBvaW50ZXIKPiB0byB0 aGUgRGV2aWNlU3RhdGUgaW5zdGVhZC4KPiBTbyB3ZSBjYW4gZmluYWxseSByZW1vdmUgYWxsIGNv ZGUgcmVsYXRlZCB0byB0aGUgImxlZ2FjeV9kZXYiIGZsYWcsIHRvbywKPiBhbmQgdHVybiB0aGUg cmVsYXRlZCAidm9pZCAqIiBpbiBibG9jay1iYWNrZW5kLmMgaW50byAiRGV2aWNlU3RhdGUgKiIK PiB0byBmaXggc29tZSBvZiB0aGUgcmVtYWluaW5nIFRPRE9zIHRoZXJlLgo+Cj4gU2lnbmVkLW9m Zi1ieTogVGhvbWFzIEh1dGggPHRodXRoQHJlZGhhdC5jb20+Cj4gLS0tCj4gIE5vdGU6IEkgaGF2 ZW4ndCB0ZXN0ZWQgdGhlIFhlbiBjb2RlIHNpbmNlIEkgZG9uJ3QgaGF2ZSBhIHdvcmtpbmcgWGVu Cj4gIGluc3RhbGxhdGlvbiBhdCBoYW5kLiBJJ2QgYXBwcmVjaWF0ZSBpZiBzb21lb25lIGNvdWxk IGNoZWNrIGl0Li4uCgpTYW1lIGhlcmUuICBBbGwgSSBjYW4gZG8gaXMgcmV2aWV3LgoKPiAgYmxv Y2svYmxvY2stYmFja2VuZC5jICAgICAgICAgIHwgNTQgKysrKysrKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCj4gIGh3L2Jsb2NrL3hlbl9kaXNrLmMgICAgICAgICAgICB8ICA2 ICsrKy0tCj4gIGluY2x1ZGUvc3lzZW11L2Jsb2NrLWJhY2tlbmQuaCB8ICA1ICsrLS0KPiAgMyBm aWxlcyBjaGFuZ2VkLCAxNSBpbnNlcnRpb25zKCspLCA1MCBkZWxldGlvbnMoLSkKPgo+IGRpZmYg LS1naXQgYS9ibG9jay9ibG9jay1iYWNrZW5kLmMgYi9ibG9jay9ibG9jay1iYWNrZW5kLmMKPiBp bmRleCA2MGQzN2EwLi4zYzMxMThmIDEwMDY0NAo+IC0tLSBhL2Jsb2NrL2Jsb2NrLWJhY2tlbmQu Ywo+ICsrKyBiL2Jsb2NrL2Jsb2NrLWJhY2tlbmQuYwo+IEBAIC00Nyw5ICs0Nyw3IEBAIHN0cnVj dCBCbG9ja0JhY2tlbmQgewo+ICAgICAgUVRBSUxRX0VOVFJZKEJsb2NrQmFja2VuZCkgbW9uaXRv cl9saW5rOyAvKiBmb3IgbW9uaXRvcl9ibG9ja19iYWNrZW5kcyAqLwo+ICAgICAgQmxvY2tCYWNr ZW5kUHVibGljIHB1YmxpYzsKPiAgCj4gLSAgICB2b2lkICpkZXY7ICAgICAgICAgICAgICAgICAg LyogYXR0YWNoZWQgZGV2aWNlIG1vZGVsLCBpZiBhbnkgKi8KPiAtICAgIGJvb2wgbGVnYWN5X2Rl djsgICAgICAgICAgICAvKiB0cnVlIGlmIGRldiBpcyBub3QgYSBEZXZpY2VTdGF0ZSAqLwo+IC0g ICAgLyogVE9ETyBjaGFuZ2UgdG8gRGV2aWNlU3RhdGUgd2hlbiBhbGwgdXNlcnMgYXJlIHFkZXZp ZmllZCAqLwo+ICsgICAgRGV2aWNlU3RhdGUgKmRldjsgICAgICAgICAgIC8qIGF0dGFjaGVkIGRl dmljZSBtb2RlbCwgaWYgYW55ICovCj4gICAgICBjb25zdCBCbG9ja0Rldk9wcyAqZGV2X29wczsK PiAgICAgIHZvaWQgKmRldl9vcGFxdWU7Cj4gIAo+IEBAIC04MzYsNyArODM0LDExIEBAIHZvaWQg YmxrX2dldF9wZXJtKEJsb2NrQmFja2VuZCAqYmxrLCB1aW50NjRfdCAqcGVybSwgdWludDY0X3Qg KnNoYXJlZF9wZXJtKQo+ICAgICAgKnNoYXJlZF9wZXJtID0gYmxrLT5zaGFyZWRfcGVybTsKPiAg fQo+ICAKPiAtc3RhdGljIGludCBibGtfZG9fYXR0YWNoX2RldihCbG9ja0JhY2tlbmQgKmJsaywg dm9pZCAqZGV2KQo+ICsvKgo+ICsgKiBBdHRhY2ggZGV2aWNlIG1vZGVsIEBkZXYgdG8gQGJsay4K PiArICogUmV0dXJuIDAgb24gc3VjY2VzcywgLUVCVVNZIHdoZW4gYSBkZXZpY2UgbW9kZWwgaXMg YXR0YWNoZWQgYWxyZWFkeS4KPiArICovCj4gK2ludCBibGtfYXR0YWNoX2RldihCbG9ja0JhY2tl bmQgKmJsaywgRGV2aWNlU3RhdGUgKmRldikKPiAgewo+ICAgICAgaWYgKGJsay0+ZGV2KSB7Cj4g ICAgICAgICAgcmV0dXJuIC1FQlVTWTsKPiBAQCAtODUxLDQwICs4NTMsMTYgQEAgc3RhdGljIGlu dCBibGtfZG9fYXR0YWNoX2RldihCbG9ja0JhY2tlbmQgKmJsaywgdm9pZCAqZGV2KQo+ICAKPiAg ICAgIGJsa19yZWYoYmxrKTsKPiAgICAgIGJsay0+ZGV2ID0gZGV2Owo+IC0gICAgYmxrLT5sZWdh Y3lfZGV2ID0gZmFsc2U7Cj4gICAgICBibGtfaW9zdGF0dXNfcmVzZXQoYmxrKTsKPiAgCj4gICAg ICByZXR1cm4gMDsKPiAgfQo+ICAKPiAgLyoKPiAtICogQXR0YWNoIGRldmljZSBtb2RlbCBAZGV2 IHRvIEBibGsuCj4gLSAqIFJldHVybiAwIG9uIHN1Y2Nlc3MsIC1FQlVTWSB3aGVuIGEgZGV2aWNl IG1vZGVsIGlzIGF0dGFjaGVkIGFscmVhZHkuCj4gLSAqLwo+IC1pbnQgYmxrX2F0dGFjaF9kZXYo QmxvY2tCYWNrZW5kICpibGssIERldmljZVN0YXRlICpkZXYpCj4gLXsKPiAtICAgIHJldHVybiBi bGtfZG9fYXR0YWNoX2RldihibGssIGRldik7Cj4gLX0KPiAtCj4gLS8qCj4gLSAqIEF0dGFjaCBk ZXZpY2UgbW9kZWwgQGRldiB0byBAYmxrLgo+IC0gKiBAYmxrIG11c3Qgbm90IGhhdmUgYSBkZXZp Y2UgbW9kZWwgYXR0YWNoZWQgYWxyZWFkeS4KPiAtICogVE9ETyBxZGV2aWZpZWQgZGV2aWNlcyBk b24ndCB1c2UgdGhpcywgcmVtb3ZlIHdoZW4gZGV2aWNlcyBhcmUgcWRldmlmaWVkCj4gLSAqLwo+ IC12b2lkIGJsa19hdHRhY2hfZGV2X2xlZ2FjeShCbG9ja0JhY2tlbmQgKmJsaywgdm9pZCAqZGV2 KQo+IC17Cj4gLSAgICBpZiAoYmxrX2RvX2F0dGFjaF9kZXYoYmxrLCBkZXYpIDwgMCkgewo+IC0g ICAgICAgIGFib3J0KCk7Cj4gLSAgICB9Cj4gLSAgICBibGstPmxlZ2FjeV9kZXYgPSB0cnVlOwo+ IC19Cj4gLQo+IC0vKgo+ICAgKiBEZXRhY2ggZGV2aWNlIG1vZGVsIEBkZXYgZnJvbSBAYmxrLgo+ ICAgKiBAZGV2IG11c3QgYmUgY3VycmVudGx5IGF0dGFjaGVkIHRvIEBibGsuCj4gICAqLwo+IC12 b2lkIGJsa19kZXRhY2hfZGV2KEJsb2NrQmFja2VuZCAqYmxrLCB2b2lkICpkZXYpCj4gLS8qIFRP RE8gY2hhbmdlIHRvIERldmljZVN0YXRlICpkZXYgd2hlbiBhbGwgdXNlcnMgYXJlIHFkZXZpZmll ZCAqLwo+ICt2b2lkIGJsa19kZXRhY2hfZGV2KEJsb2NrQmFja2VuZCAqYmxrLCBEZXZpY2VTdGF0 ZSAqZGV2KQo+ICB7Cj4gICAgICBhc3NlcnQoYmxrLT5kZXYgPT0gZGV2KTsKPiAgICAgIGJsay0+ ZGV2ID0gTlVMTDsKPiBAQCAtODk4LDggKzg3Niw3IEBAIHZvaWQgYmxrX2RldGFjaF9kZXYoQmxv Y2tCYWNrZW5kICpibGssIHZvaWQgKmRldikKPiAgLyoKPiAgICogUmV0dXJuIHRoZSBkZXZpY2Ug bW9kZWwgYXR0YWNoZWQgdG8gQGJsayBpZiBhbnksIGVsc2UgbnVsbC4KPiAgICovCj4gLXZvaWQg KmJsa19nZXRfYXR0YWNoZWRfZGV2KEJsb2NrQmFja2VuZCAqYmxrKQo+IC0vKiBUT0RPIGNoYW5n ZSB0byByZXR1cm4gRGV2aWNlU3RhdGUgKiB3aGVuIGFsbCB1c2VycyBhcmUgcWRldmlmaWVkICov Cj4gK0RldmljZVN0YXRlICpibGtfZ2V0X2F0dGFjaGVkX2RldihCbG9ja0JhY2tlbmQgKmJsaykK PiAgewo+ICAgICAgcmV0dXJuIGJsay0+ZGV2Owo+ICB9Cj4gQEAgLTkwOCwxMCArODg1LDcgQEAg dm9pZCAqYmxrX2dldF9hdHRhY2hlZF9kZXYoQmxvY2tCYWNrZW5kICpibGspCj4gICAqIGRldmlj ZSBhdHRhY2hlZCB0byB0aGUgQmxvY2tCYWNrZW5kLiAqLwo+ICBjaGFyICpibGtfZ2V0X2F0dGFj aGVkX2Rldl9pZChCbG9ja0JhY2tlbmQgKmJsaykKPiAgewo+IC0gICAgRGV2aWNlU3RhdGUgKmRl djsKPiAtCj4gLSAgICBhc3NlcnQoIWJsay0+bGVnYWN5X2Rldik7Cj4gLSAgICBkZXYgPSBibGst PmRldjsKPiArICAgIERldmljZVN0YXRlICpkZXYgPSBibGstPmRldjsKPiAgCj4gICAgICBpZiAo IWRldikgewo+ICAgICAgICAgIHJldHVybiBnX3N0cmR1cCgiIik7Cj4gQEAgLTk0OSwxMSArOTIz LDYgQEAgQmxvY2tCYWNrZW5kICpibGtfYnlfZGV2KHZvaWQgKmRldikKPiAgdm9pZCBibGtfc2V0 X2Rldl9vcHMoQmxvY2tCYWNrZW5kICpibGssIGNvbnN0IEJsb2NrRGV2T3BzICpvcHMsCj4gICAg ICAgICAgICAgICAgICAgICAgIHZvaWQgKm9wYXF1ZSkKPiAgewo+IC0gICAgLyogQWxsIGRyaXZl cnMgdGhhdCB1c2UgYmxrX3NldF9kZXZfb3BzKCkgYXJlIHFkZXZpZmllZCBhbmQgd2Ugd2FudCB0 byBrZWVwCj4gLSAgICAgKiBpdCB0aGF0IHdheSwgc28gd2UgY2FuIGFzc3VtZSBibGstPmRldiwg aWYgcHJlc2VudCwgaXMgYSBEZXZpY2VTdGF0ZSBpZgo+IC0gICAgICogYmxrLT5kZXZfb3BzIGlz IHNldC4gTm9uLWRldmljZSB1c2VycyBtYXkgdXNlIGRldl9vcHMgd2l0aG91dCBkZXZpY2UuICov Cj4gLSAgICBhc3NlcnQoIWJsay0+bGVnYWN5X2Rldik7Cj4gLQo+ICAgICAgYmxrLT5kZXZfb3Bz ID0gb3BzOwo+ICAgICAgYmxrLT5kZXZfb3BhcXVlID0gb3BhcXVlOwo+ICAKPiBAQCAtOTc5LDgg Kzk0OCw2IEBAIHZvaWQgYmxrX2Rldl9jaGFuZ2VfbWVkaWFfY2IoQmxvY2tCYWNrZW5kICpibGss IGJvb2wgbG9hZCwgRXJyb3IgKiplcnJwKQo+ICAgICAgICAgIGJvb2wgdHJheV93YXNfb3Blbiwg dHJheV9pc19vcGVuOwo+ICAgICAgICAgIEVycm9yICpsb2NhbF9lcnIgPSBOVUxMOwo+ICAKPiAt ICAgICAgICBhc3NlcnQoIWJsay0+bGVnYWN5X2Rldik7Cj4gLQo+ICAgICAgICAgIHRyYXlfd2Fz X29wZW4gPSBibGtfZGV2X2lzX3RyYXlfb3BlbihibGspOwo+ICAgICAgICAgIGJsay0+ZGV2X29w cy0+Y2hhbmdlX21lZGlhX2NiKGJsay0+ZGV2X29wYXF1ZSwgbG9hZCwgJmxvY2FsX2Vycik7Cj4g ICAgICAgICAgaWYgKGxvY2FsX2Vycikgewo+IEBAIC0xNzc5LDkgKzE3NDYsNiBAQCB2b2lkIGJs a19lamVjdChCbG9ja0JhY2tlbmQgKmJsaywgYm9vbCBlamVjdF9mbGFnKQo+ICAgICAgQmxvY2tE cml2ZXJTdGF0ZSAqYnMgPSBibGtfYnMoYmxrKTsKPiAgICAgIGNoYXIgKmlkOwo+ICAKPiAtICAg IC8qIGJsa19lamVjdCBpcyBvbmx5IGNhbGxlZCBieSBxZGV2aWZpZWQgZGV2aWNlcyAqLwo+IC0g ICAgYXNzZXJ0KCFibGstPmxlZ2FjeV9kZXYpOwo+IC0KPiAgICAgIGlmIChicykgewo+ICAgICAg ICAgIGJkcnZfZWplY3QoYnMsIGVqZWN0X2ZsYWcpOwo+ICAgICAgfQo+IGRpZmYgLS1naXQgYS9o dy9ibG9jay94ZW5fZGlzay5jIGIvaHcvYmxvY2sveGVuX2Rpc2suYwo+IGluZGV4IDM2ZWZmOTQu Ljk2MDVjYWYgMTAwNjQ0Cj4gLS0tIGEvaHcvYmxvY2sveGVuX2Rpc2suYwo+ICsrKyBiL2h3L2Js b2NrL3hlbl9kaXNrLmMKPiBAQCAtODAxLDcgKzgwMSw5IEBAIHN0YXRpYyBpbnQgYmxrX2Nvbm5l Y3Qoc3RydWN0IFhlbkRldmljZSAqeGVuZGV2KQo+ICAgICAgICAgICAqIHNvIHdlIGNhbiBibGtf dW5yZWYoKSB1bmNvbmRpdGlvbmFsbHkgKi8KPiAgICAgICAgICBibGtfcmVmKGJsa2Rldi0+Ymxr KTsKPiAgICAgIH0KPiAtICAgIGJsa19hdHRhY2hfZGV2X2xlZ2FjeShibGtkZXYtPmJsaywgYmxr ZGV2KTsKPiArICAgIGlmIChibGtfYXR0YWNoX2RldihibGtkZXYtPmJsaywgREVWSUNFKGJsa2Rl dikpIDwgMCkgewo+ICsgICAgICAgIHJldHVybiAtMTsKPiArICAgIH0KCk90aGVyIGVycm9yIHJl dHVybnMgaW4gdGhpcyBmdW5jdGlvbiBjYWxsIHhlbl9wdl9wcmludGYoKSBmaXJzdC4gIFNob3Vs ZAp0aGlzIG9uZSwgdG9vPwoKPiAgICAgIGJsa2Rldi0+ZmlsZV9zaXplID0gYmxrX2dldGxlbmd0 aChibGtkZXYtPmJsayk7Cj4gICAgICBpZiAoYmxrZGV2LT5maWxlX3NpemUgPCAwKSB7Cj4gICAg ICAgICAgQmxvY2tEcml2ZXJTdGF0ZSAqYnMgPSBibGtfYnMoYmxrZGV2LT5ibGspOwo+IEBAIC05 NTEsNyArOTUzLDcgQEAgc3RhdGljIHZvaWQgYmxrX2Rpc2Nvbm5lY3Qoc3RydWN0IFhlbkRldmlj ZSAqeGVuZGV2KQo+ICAKPiAgICAgIGlmIChibGtkZXYtPmJsaykgewo+ICAgICAgICAgIGJsa19z ZXRfYWlvX2NvbnRleHQoYmxrZGV2LT5ibGssIHFlbXVfZ2V0X2Fpb19jb250ZXh0KCkpOwo+IC0g ICAgICAgIGJsa19kZXRhY2hfZGV2KGJsa2Rldi0+YmxrLCBibGtkZXYpOwo+ICsgICAgICAgIGJs a19kZXRhY2hfZGV2KGJsa2Rldi0+YmxrLCBERVZJQ0UoYmxrZGV2KSk7Cj4gICAgICAgICAgYmxr X3VucmVmKGJsa2Rldi0+YmxrKTsKPiAgICAgICAgICBibGtkZXYtPmJsayA9IE5VTEw7Cj4gICAg ICB9Cj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvc3lzZW11L2Jsb2NrLWJhY2tlbmQuaCBiL2luY2x1 ZGUvc3lzZW11L2Jsb2NrLWJhY2tlbmQuaAo+IGluZGV4IGM5NmJjZGUuLjM5NTA3ZDYgMTAwNjQ0 Cj4gLS0tIGEvaW5jbHVkZS9zeXNlbXUvYmxvY2stYmFja2VuZC5oCj4gKysrIGIvaW5jbHVkZS9z eXNlbXUvYmxvY2stYmFja2VuZC5oCj4gQEAgLTExMCw5ICsxMTAsOCBAQCB2b2lkIGJsa19pb3N0 YXR1c19kaXNhYmxlKEJsb2NrQmFja2VuZCAqYmxrKTsKPiAgdm9pZCBibGtfaW9zdGF0dXNfcmVz ZXQoQmxvY2tCYWNrZW5kICpibGspOwo+ICB2b2lkIGJsa19pb3N0YXR1c19zZXRfZXJyKEJsb2Nr QmFja2VuZCAqYmxrLCBpbnQgZXJyb3IpOwo+ICBpbnQgYmxrX2F0dGFjaF9kZXYoQmxvY2tCYWNr ZW5kICpibGssIERldmljZVN0YXRlICpkZXYpOwo+IC12b2lkIGJsa19hdHRhY2hfZGV2X2xlZ2Fj eShCbG9ja0JhY2tlbmQgKmJsaywgdm9pZCAqZGV2KTsKPiAtdm9pZCBibGtfZGV0YWNoX2RldihC bG9ja0JhY2tlbmQgKmJsaywgdm9pZCAqZGV2KTsKPiAtdm9pZCAqYmxrX2dldF9hdHRhY2hlZF9k ZXYoQmxvY2tCYWNrZW5kICpibGspOwo+ICt2b2lkIGJsa19kZXRhY2hfZGV2KEJsb2NrQmFja2Vu ZCAqYmxrLCBEZXZpY2VTdGF0ZSAqZGV2KTsKPiArRGV2aWNlU3RhdGUgKmJsa19nZXRfYXR0YWNo ZWRfZGV2KEJsb2NrQmFja2VuZCAqYmxrKTsKPiAgY2hhciAqYmxrX2dldF9hdHRhY2hlZF9kZXZf aWQoQmxvY2tCYWNrZW5kICpibGspOwo+ICBCbG9ja0JhY2tlbmQgKmJsa19ieV9kZXYodm9pZCAq ZGV2KTsKPiAgQmxvY2tCYWNrZW5kICpibGtfYnlfcWRldl9pZChjb25zdCBjaGFyICppZCwgRXJy b3IgKiplcnJwKTsKCkkgZGlkbid0IHZlcmlmeSB5b3VyIGNsYWltIHRoYXQgREVWSUNFKGJsa2Rl dikgaXMgb2theS4gIEFwYXJ0IGZyb20KdGhhdCwgbG9va3MgZ29vZCB0byBtZS4KCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5n IGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJv amVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw= From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47442) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gZKBr-0006Wp-5Z for qemu-devel@nongnu.org; Tue, 18 Dec 2018 13:34:04 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gZKBm-0003Ot-DB for qemu-devel@nongnu.org; Tue, 18 Dec 2018 13:33:58 -0500 From: Markus Armbruster References: <1545149484-4929-1-git-send-email-thuth@redhat.com> Date: Tue, 18 Dec 2018 19:33:30 +0100 In-Reply-To: <1545149484-4929-1-git-send-email-thuth@redhat.com> (Thomas Huth's message of "Tue, 18 Dec 2018 17:11:24 +0100") Message-ID: <878t0mbs79.fsf@dusky.pond.sub.org> MIME-Version: 1.0 Content-Type: text/plain Subject: Re: [Qemu-devel] [QEMU PATCH] block: Remove blk_attach_dev_legacy() / legacy_dev code List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Thomas Huth Cc: qemu-block@nongnu.org, Kevin Wolf , Max Reitz , Stefano Stabellini , Anthony Perard , xen-devel@lists.xenproject.org, qemu-devel@nongnu.org Thomas Huth writes: > The last user of blk_attach_dev_legacy() is the code in xen_disk.c. > It passes a pointer to a XenBlkDev as second parameter. XenBlkDev > is derived from XenDevice which in turn is derived from DeviceState > since commit 3a6c9172ac5951e ("xen: create qdev for each backend device"). > Thus the code can also simply use blk_attach_dev() with a pointer > to the DeviceState instead. > So we can finally remove all code related to the "legacy_dev" flag, too, > and turn the related "void *" in block-backend.c into "DeviceState *" > to fix some of the remaining TODOs there. > > Signed-off-by: Thomas Huth > --- > Note: I haven't tested the Xen code since I don't have a working Xen > installation at hand. I'd appreciate if someone could check it... Same here. All I can do is review. > block/block-backend.c | 54 +++++++----------------------------------- > hw/block/xen_disk.c | 6 +++-- > include/sysemu/block-backend.h | 5 ++-- > 3 files changed, 15 insertions(+), 50 deletions(-) > > diff --git a/block/block-backend.c b/block/block-backend.c > index 60d37a0..3c3118f 100644 > --- a/block/block-backend.c > +++ b/block/block-backend.c > @@ -47,9 +47,7 @@ struct BlockBackend { > QTAILQ_ENTRY(BlockBackend) monitor_link; /* for monitor_block_backends */ > BlockBackendPublic public; > > - void *dev; /* attached device model, if any */ > - bool legacy_dev; /* true if dev is not a DeviceState */ > - /* TODO change to DeviceState when all users are qdevified */ > + DeviceState *dev; /* attached device model, if any */ > const BlockDevOps *dev_ops; > void *dev_opaque; > > @@ -836,7 +834,11 @@ void blk_get_perm(BlockBackend *blk, uint64_t *perm, uint64_t *shared_perm) > *shared_perm = blk->shared_perm; > } > > -static int blk_do_attach_dev(BlockBackend *blk, void *dev) > +/* > + * Attach device model @dev to @blk. > + * Return 0 on success, -EBUSY when a device model is attached already. > + */ > +int blk_attach_dev(BlockBackend *blk, DeviceState *dev) > { > if (blk->dev) { > return -EBUSY; > @@ -851,40 +853,16 @@ static int blk_do_attach_dev(BlockBackend *blk, void *dev) > > blk_ref(blk); > blk->dev = dev; > - blk->legacy_dev = false; > blk_iostatus_reset(blk); > > return 0; > } > > /* > - * Attach device model @dev to @blk. > - * Return 0 on success, -EBUSY when a device model is attached already. > - */ > -int blk_attach_dev(BlockBackend *blk, DeviceState *dev) > -{ > - return blk_do_attach_dev(blk, dev); > -} > - > -/* > - * Attach device model @dev to @blk. > - * @blk must not have a device model attached already. > - * TODO qdevified devices don't use this, remove when devices are qdevified > - */ > -void blk_attach_dev_legacy(BlockBackend *blk, void *dev) > -{ > - if (blk_do_attach_dev(blk, dev) < 0) { > - abort(); > - } > - blk->legacy_dev = true; > -} > - > -/* > * Detach device model @dev from @blk. > * @dev must be currently attached to @blk. > */ > -void blk_detach_dev(BlockBackend *blk, void *dev) > -/* TODO change to DeviceState *dev when all users are qdevified */ > +void blk_detach_dev(BlockBackend *blk, DeviceState *dev) > { > assert(blk->dev == dev); > blk->dev = NULL; > @@ -898,8 +876,7 @@ void blk_detach_dev(BlockBackend *blk, void *dev) > /* > * Return the device model attached to @blk if any, else null. > */ > -void *blk_get_attached_dev(BlockBackend *blk) > -/* TODO change to return DeviceState * when all users are qdevified */ > +DeviceState *blk_get_attached_dev(BlockBackend *blk) > { > return blk->dev; > } > @@ -908,10 +885,7 @@ void *blk_get_attached_dev(BlockBackend *blk) > * device attached to the BlockBackend. */ > char *blk_get_attached_dev_id(BlockBackend *blk) > { > - DeviceState *dev; > - > - assert(!blk->legacy_dev); > - dev = blk->dev; > + DeviceState *dev = blk->dev; > > if (!dev) { > return g_strdup(""); > @@ -949,11 +923,6 @@ BlockBackend *blk_by_dev(void *dev) > void blk_set_dev_ops(BlockBackend *blk, const BlockDevOps *ops, > void *opaque) > { > - /* All drivers that use blk_set_dev_ops() are qdevified and we want to keep > - * it that way, so we can assume blk->dev, if present, is a DeviceState if > - * blk->dev_ops is set. Non-device users may use dev_ops without device. */ > - assert(!blk->legacy_dev); > - > blk->dev_ops = ops; > blk->dev_opaque = opaque; > > @@ -979,8 +948,6 @@ void blk_dev_change_media_cb(BlockBackend *blk, bool load, Error **errp) > bool tray_was_open, tray_is_open; > Error *local_err = NULL; > > - assert(!blk->legacy_dev); > - > tray_was_open = blk_dev_is_tray_open(blk); > blk->dev_ops->change_media_cb(blk->dev_opaque, load, &local_err); > if (local_err) { > @@ -1779,9 +1746,6 @@ void blk_eject(BlockBackend *blk, bool eject_flag) > BlockDriverState *bs = blk_bs(blk); > char *id; > > - /* blk_eject is only called by qdevified devices */ > - assert(!blk->legacy_dev); > - > if (bs) { > bdrv_eject(bs, eject_flag); > } > diff --git a/hw/block/xen_disk.c b/hw/block/xen_disk.c > index 36eff94..9605caf 100644 > --- a/hw/block/xen_disk.c > +++ b/hw/block/xen_disk.c > @@ -801,7 +801,9 @@ static int blk_connect(struct XenDevice *xendev) > * so we can blk_unref() unconditionally */ > blk_ref(blkdev->blk); > } > - blk_attach_dev_legacy(blkdev->blk, blkdev); > + if (blk_attach_dev(blkdev->blk, DEVICE(blkdev)) < 0) { > + return -1; > + } Other error returns in this function call xen_pv_printf() first. Should this one, too? > blkdev->file_size = blk_getlength(blkdev->blk); > if (blkdev->file_size < 0) { > BlockDriverState *bs = blk_bs(blkdev->blk); > @@ -951,7 +953,7 @@ static void blk_disconnect(struct XenDevice *xendev) > > if (blkdev->blk) { > blk_set_aio_context(blkdev->blk, qemu_get_aio_context()); > - blk_detach_dev(blkdev->blk, blkdev); > + blk_detach_dev(blkdev->blk, DEVICE(blkdev)); > blk_unref(blkdev->blk); > blkdev->blk = NULL; > } > diff --git a/include/sysemu/block-backend.h b/include/sysemu/block-backend.h > index c96bcde..39507d6 100644 > --- a/include/sysemu/block-backend.h > +++ b/include/sysemu/block-backend.h > @@ -110,9 +110,8 @@ void blk_iostatus_disable(BlockBackend *blk); > void blk_iostatus_reset(BlockBackend *blk); > void blk_iostatus_set_err(BlockBackend *blk, int error); > int blk_attach_dev(BlockBackend *blk, DeviceState *dev); > -void blk_attach_dev_legacy(BlockBackend *blk, void *dev); > -void blk_detach_dev(BlockBackend *blk, void *dev); > -void *blk_get_attached_dev(BlockBackend *blk); > +void blk_detach_dev(BlockBackend *blk, DeviceState *dev); > +DeviceState *blk_get_attached_dev(BlockBackend *blk); > char *blk_get_attached_dev_id(BlockBackend *blk); > BlockBackend *blk_by_dev(void *dev); > BlockBackend *blk_by_qdev_id(const char *id, Error **errp); I didn't verify your claim that DEVICE(blkdev) is okay. Apart from that, looks good to me.