From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Huth Subject: [QEMU PATCH] block: Remove blk_attach_dev_legacy() / legacy_dev code Date: Tue, 18 Dec 2018 17:11:24 +0100 Message-ID: <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 1gZHxz-0005YN-EI for xen-devel@lists.xenproject.org; Tue, 18 Dec 2018 16:11:31 +0000 List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: qemu-block@nongnu.org, Kevin Wolf , Max Reitz , Stefano Stabellini , Anthony Perard Cc: xen-devel@lists.xenproject.org, qemu-devel@nongnu.org List-Id: xen-devel@lists.xenproject.org VGhlIGxhc3QgdXNlciBvZiBibGtfYXR0YWNoX2Rldl9sZWdhY3koKSBpcyB0aGUgY29kZSBpbiB4 ZW5fZGlzay5jLgpJdCBwYXNzZXMgYSBwb2ludGVyIHRvIGEgWGVuQmxrRGV2IGFzIHNlY29uZCBw YXJhbWV0ZXIuIFhlbkJsa0RldgppcyBkZXJpdmVkIGZyb20gWGVuRGV2aWNlIHdoaWNoIGluIHR1 cm4gaXMgZGVyaXZlZCBmcm9tIERldmljZVN0YXRlCnNpbmNlIGNvbW1pdCAzYTZjOTE3MmFjNTk1 MWUgKCJ4ZW46IGNyZWF0ZSBxZGV2IGZvciBlYWNoIGJhY2tlbmQgZGV2aWNlIikuClRodXMgdGhl IGNvZGUgY2FuIGFsc28gc2ltcGx5IHVzZSBibGtfYXR0YWNoX2RldigpIHdpdGggYSBwb2ludGVy CnRvIHRoZSBEZXZpY2VTdGF0ZSBpbnN0ZWFkLgpTbyB3ZSBjYW4gZmluYWxseSByZW1vdmUgYWxs IGNvZGUgcmVsYXRlZCB0byB0aGUgImxlZ2FjeV9kZXYiIGZsYWcsIHRvbywKYW5kIHR1cm4gdGhl IHJlbGF0ZWQgInZvaWQgKiIgaW4gYmxvY2stYmFja2VuZC5jIGludG8gIkRldmljZVN0YXRlICoi CnRvIGZpeCBzb21lIG9mIHRoZSByZW1haW5pbmcgVE9ET3MgdGhlcmUuCgpTaWduZWQtb2ZmLWJ5 OiBUaG9tYXMgSHV0aCA8dGh1dGhAcmVkaGF0LmNvbT4KLS0tCiBOb3RlOiBJIGhhdmVuJ3QgdGVz dGVkIHRoZSBYZW4gY29kZSBzaW5jZSBJIGRvbid0IGhhdmUgYSB3b3JraW5nIFhlbgogaW5zdGFs bGF0aW9uIGF0IGhhbmQuIEknZCBhcHByZWNpYXRlIGlmIHNvbWVvbmUgY291bGQgY2hlY2sgaXQu Li4KCiBibG9jay9ibG9jay1iYWNrZW5kLmMgICAgICAgICAgfCA1NCArKysrKysrLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIGh3L2Jsb2NrL3hlbl9kaXNrLmMgICAgICAgICAg ICB8ICA2ICsrKy0tCiBpbmNsdWRlL3N5c2VtdS9ibG9jay1iYWNrZW5kLmggfCAgNSArKy0tCiAz IGZpbGVzIGNoYW5nZWQsIDE1IGluc2VydGlvbnMoKyksIDUwIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2Jsb2NrL2Jsb2NrLWJhY2tlbmQuYyBiL2Jsb2NrL2Jsb2NrLWJhY2tlbmQuYwppbmRl eCA2MGQzN2EwLi4zYzMxMThmIDEwMDY0NAotLS0gYS9ibG9jay9ibG9jay1iYWNrZW5kLmMKKysr IGIvYmxvY2svYmxvY2stYmFja2VuZC5jCkBAIC00Nyw5ICs0Nyw3IEBAIHN0cnVjdCBCbG9ja0Jh Y2tlbmQgewogICAgIFFUQUlMUV9FTlRSWShCbG9ja0JhY2tlbmQpIG1vbml0b3JfbGluazsgLyog Zm9yIG1vbml0b3JfYmxvY2tfYmFja2VuZHMgKi8KICAgICBCbG9ja0JhY2tlbmRQdWJsaWMgcHVi bGljOwogCi0gICAgdm9pZCAqZGV2OyAgICAgICAgICAgICAgICAgIC8qIGF0dGFjaGVkIGRldmlj ZSBtb2RlbCwgaWYgYW55ICovCi0gICAgYm9vbCBsZWdhY3lfZGV2OyAgICAgICAgICAgIC8qIHRy dWUgaWYgZGV2IGlzIG5vdCBhIERldmljZVN0YXRlICovCi0gICAgLyogVE9ETyBjaGFuZ2UgdG8g RGV2aWNlU3RhdGUgd2hlbiBhbGwgdXNlcnMgYXJlIHFkZXZpZmllZCAqLworICAgIERldmljZVN0 YXRlICpkZXY7ICAgICAgICAgICAvKiBhdHRhY2hlZCBkZXZpY2UgbW9kZWwsIGlmIGFueSAqLwog ICAgIGNvbnN0IEJsb2NrRGV2T3BzICpkZXZfb3BzOwogICAgIHZvaWQgKmRldl9vcGFxdWU7CiAK QEAgLTgzNiw3ICs4MzQsMTEgQEAgdm9pZCBibGtfZ2V0X3Blcm0oQmxvY2tCYWNrZW5kICpibGss IHVpbnQ2NF90ICpwZXJtLCB1aW50NjRfdCAqc2hhcmVkX3Blcm0pCiAgICAgKnNoYXJlZF9wZXJt ID0gYmxrLT5zaGFyZWRfcGVybTsKIH0KIAotc3RhdGljIGludCBibGtfZG9fYXR0YWNoX2RldihC bG9ja0JhY2tlbmQgKmJsaywgdm9pZCAqZGV2KQorLyoKKyAqIEF0dGFjaCBkZXZpY2UgbW9kZWwg QGRldiB0byBAYmxrLgorICogUmV0dXJuIDAgb24gc3VjY2VzcywgLUVCVVNZIHdoZW4gYSBkZXZp Y2UgbW9kZWwgaXMgYXR0YWNoZWQgYWxyZWFkeS4KKyAqLworaW50IGJsa19hdHRhY2hfZGV2KEJs b2NrQmFja2VuZCAqYmxrLCBEZXZpY2VTdGF0ZSAqZGV2KQogewogICAgIGlmIChibGstPmRldikg ewogICAgICAgICByZXR1cm4gLUVCVVNZOwpAQCAtODUxLDQwICs4NTMsMTYgQEAgc3RhdGljIGlu dCBibGtfZG9fYXR0YWNoX2RldihCbG9ja0JhY2tlbmQgKmJsaywgdm9pZCAqZGV2KQogCiAgICAg YmxrX3JlZihibGspOwogICAgIGJsay0+ZGV2ID0gZGV2OwotICAgIGJsay0+bGVnYWN5X2RldiA9 IGZhbHNlOwogICAgIGJsa19pb3N0YXR1c19yZXNldChibGspOwogCiAgICAgcmV0dXJuIDA7CiB9 CiAKIC8qCi0gKiBBdHRhY2ggZGV2aWNlIG1vZGVsIEBkZXYgdG8gQGJsay4KLSAqIFJldHVybiAw IG9uIHN1Y2Nlc3MsIC1FQlVTWSB3aGVuIGEgZGV2aWNlIG1vZGVsIGlzIGF0dGFjaGVkIGFscmVh ZHkuCi0gKi8KLWludCBibGtfYXR0YWNoX2RldihCbG9ja0JhY2tlbmQgKmJsaywgRGV2aWNlU3Rh dGUgKmRldikKLXsKLSAgICByZXR1cm4gYmxrX2RvX2F0dGFjaF9kZXYoYmxrLCBkZXYpOwotfQot Ci0vKgotICogQXR0YWNoIGRldmljZSBtb2RlbCBAZGV2IHRvIEBibGsuCi0gKiBAYmxrIG11c3Qg bm90IGhhdmUgYSBkZXZpY2UgbW9kZWwgYXR0YWNoZWQgYWxyZWFkeS4KLSAqIFRPRE8gcWRldmlm aWVkIGRldmljZXMgZG9uJ3QgdXNlIHRoaXMsIHJlbW92ZSB3aGVuIGRldmljZXMgYXJlIHFkZXZp ZmllZAotICovCi12b2lkIGJsa19hdHRhY2hfZGV2X2xlZ2FjeShCbG9ja0JhY2tlbmQgKmJsaywg dm9pZCAqZGV2KQotewotICAgIGlmIChibGtfZG9fYXR0YWNoX2RldihibGssIGRldikgPCAwKSB7 Ci0gICAgICAgIGFib3J0KCk7Ci0gICAgfQotICAgIGJsay0+bGVnYWN5X2RldiA9IHRydWU7Ci19 Ci0KLS8qCiAgKiBEZXRhY2ggZGV2aWNlIG1vZGVsIEBkZXYgZnJvbSBAYmxrLgogICogQGRldiBt dXN0IGJlIGN1cnJlbnRseSBhdHRhY2hlZCB0byBAYmxrLgogICovCi12b2lkIGJsa19kZXRhY2hf ZGV2KEJsb2NrQmFja2VuZCAqYmxrLCB2b2lkICpkZXYpCi0vKiBUT0RPIGNoYW5nZSB0byBEZXZp Y2VTdGF0ZSAqZGV2IHdoZW4gYWxsIHVzZXJzIGFyZSBxZGV2aWZpZWQgKi8KK3ZvaWQgYmxrX2Rl dGFjaF9kZXYoQmxvY2tCYWNrZW5kICpibGssIERldmljZVN0YXRlICpkZXYpCiB7CiAgICAgYXNz ZXJ0KGJsay0+ZGV2ID09IGRldik7CiAgICAgYmxrLT5kZXYgPSBOVUxMOwpAQCAtODk4LDggKzg3 Niw3IEBAIHZvaWQgYmxrX2RldGFjaF9kZXYoQmxvY2tCYWNrZW5kICpibGssIHZvaWQgKmRldikK IC8qCiAgKiBSZXR1cm4gdGhlIGRldmljZSBtb2RlbCBhdHRhY2hlZCB0byBAYmxrIGlmIGFueSwg ZWxzZSBudWxsLgogICovCi12b2lkICpibGtfZ2V0X2F0dGFjaGVkX2RldihCbG9ja0JhY2tlbmQg KmJsaykKLS8qIFRPRE8gY2hhbmdlIHRvIHJldHVybiBEZXZpY2VTdGF0ZSAqIHdoZW4gYWxsIHVz ZXJzIGFyZSBxZGV2aWZpZWQgKi8KK0RldmljZVN0YXRlICpibGtfZ2V0X2F0dGFjaGVkX2RldihC bG9ja0JhY2tlbmQgKmJsaykKIHsKICAgICByZXR1cm4gYmxrLT5kZXY7CiB9CkBAIC05MDgsMTAg Kzg4NSw3IEBAIHZvaWQgKmJsa19nZXRfYXR0YWNoZWRfZGV2KEJsb2NrQmFja2VuZCAqYmxrKQog ICogZGV2aWNlIGF0dGFjaGVkIHRvIHRoZSBCbG9ja0JhY2tlbmQuICovCiBjaGFyICpibGtfZ2V0 X2F0dGFjaGVkX2Rldl9pZChCbG9ja0JhY2tlbmQgKmJsaykKIHsKLSAgICBEZXZpY2VTdGF0ZSAq ZGV2OwotCi0gICAgYXNzZXJ0KCFibGstPmxlZ2FjeV9kZXYpOwotICAgIGRldiA9IGJsay0+ZGV2 OworICAgIERldmljZVN0YXRlICpkZXYgPSBibGstPmRldjsKIAogICAgIGlmICghZGV2KSB7CiAg ICAgICAgIHJldHVybiBnX3N0cmR1cCgiIik7CkBAIC05NDksMTEgKzkyMyw2IEBAIEJsb2NrQmFj a2VuZCAqYmxrX2J5X2Rldih2b2lkICpkZXYpCiB2b2lkIGJsa19zZXRfZGV2X29wcyhCbG9ja0Jh Y2tlbmQgKmJsaywgY29uc3QgQmxvY2tEZXZPcHMgKm9wcywKICAgICAgICAgICAgICAgICAgICAg IHZvaWQgKm9wYXF1ZSkKIHsKLSAgICAvKiBBbGwgZHJpdmVycyB0aGF0IHVzZSBibGtfc2V0X2Rl dl9vcHMoKSBhcmUgcWRldmlmaWVkIGFuZCB3ZSB3YW50IHRvIGtlZXAKLSAgICAgKiBpdCB0aGF0 IHdheSwgc28gd2UgY2FuIGFzc3VtZSBibGstPmRldiwgaWYgcHJlc2VudCwgaXMgYSBEZXZpY2VT dGF0ZSBpZgotICAgICAqIGJsay0+ZGV2X29wcyBpcyBzZXQuIE5vbi1kZXZpY2UgdXNlcnMgbWF5 IHVzZSBkZXZfb3BzIHdpdGhvdXQgZGV2aWNlLiAqLwotICAgIGFzc2VydCghYmxrLT5sZWdhY3lf ZGV2KTsKLQogICAgIGJsay0+ZGV2X29wcyA9IG9wczsKICAgICBibGstPmRldl9vcGFxdWUgPSBv cGFxdWU7CiAKQEAgLTk3OSw4ICs5NDgsNiBAQCB2b2lkIGJsa19kZXZfY2hhbmdlX21lZGlhX2Ni KEJsb2NrQmFja2VuZCAqYmxrLCBib29sIGxvYWQsIEVycm9yICoqZXJycCkKICAgICAgICAgYm9v bCB0cmF5X3dhc19vcGVuLCB0cmF5X2lzX29wZW47CiAgICAgICAgIEVycm9yICpsb2NhbF9lcnIg PSBOVUxMOwogCi0gICAgICAgIGFzc2VydCghYmxrLT5sZWdhY3lfZGV2KTsKLQogICAgICAgICB0 cmF5X3dhc19vcGVuID0gYmxrX2Rldl9pc190cmF5X29wZW4oYmxrKTsKICAgICAgICAgYmxrLT5k ZXZfb3BzLT5jaGFuZ2VfbWVkaWFfY2IoYmxrLT5kZXZfb3BhcXVlLCBsb2FkLCAmbG9jYWxfZXJy KTsKICAgICAgICAgaWYgKGxvY2FsX2VycikgewpAQCAtMTc3OSw5ICsxNzQ2LDYgQEAgdm9pZCBi bGtfZWplY3QoQmxvY2tCYWNrZW5kICpibGssIGJvb2wgZWplY3RfZmxhZykKICAgICBCbG9ja0Ry aXZlclN0YXRlICpicyA9IGJsa19icyhibGspOwogICAgIGNoYXIgKmlkOwogCi0gICAgLyogYmxr X2VqZWN0IGlzIG9ubHkgY2FsbGVkIGJ5IHFkZXZpZmllZCBkZXZpY2VzICovCi0gICAgYXNzZXJ0 KCFibGstPmxlZ2FjeV9kZXYpOwotCiAgICAgaWYgKGJzKSB7CiAgICAgICAgIGJkcnZfZWplY3Qo YnMsIGVqZWN0X2ZsYWcpOwogICAgIH0KZGlmZiAtLWdpdCBhL2h3L2Jsb2NrL3hlbl9kaXNrLmMg Yi9ody9ibG9jay94ZW5fZGlzay5jCmluZGV4IDM2ZWZmOTQuLjk2MDVjYWYgMTAwNjQ0Ci0tLSBh L2h3L2Jsb2NrL3hlbl9kaXNrLmMKKysrIGIvaHcvYmxvY2sveGVuX2Rpc2suYwpAQCAtODAxLDcg KzgwMSw5IEBAIHN0YXRpYyBpbnQgYmxrX2Nvbm5lY3Qoc3RydWN0IFhlbkRldmljZSAqeGVuZGV2 KQogICAgICAgICAgKiBzbyB3ZSBjYW4gYmxrX3VucmVmKCkgdW5jb25kaXRpb25hbGx5ICovCiAg ICAgICAgIGJsa19yZWYoYmxrZGV2LT5ibGspOwogICAgIH0KLSAgICBibGtfYXR0YWNoX2Rldl9s ZWdhY3koYmxrZGV2LT5ibGssIGJsa2Rldik7CisgICAgaWYgKGJsa19hdHRhY2hfZGV2KGJsa2Rl di0+YmxrLCBERVZJQ0UoYmxrZGV2KSkgPCAwKSB7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9 CiAgICAgYmxrZGV2LT5maWxlX3NpemUgPSBibGtfZ2V0bGVuZ3RoKGJsa2Rldi0+YmxrKTsKICAg ICBpZiAoYmxrZGV2LT5maWxlX3NpemUgPCAwKSB7CiAgICAgICAgIEJsb2NrRHJpdmVyU3RhdGUg KmJzID0gYmxrX2JzKGJsa2Rldi0+YmxrKTsKQEAgLTk1MSw3ICs5NTMsNyBAQCBzdGF0aWMgdm9p ZCBibGtfZGlzY29ubmVjdChzdHJ1Y3QgWGVuRGV2aWNlICp4ZW5kZXYpCiAKICAgICBpZiAoYmxr ZGV2LT5ibGspIHsKICAgICAgICAgYmxrX3NldF9haW9fY29udGV4dChibGtkZXYtPmJsaywgcWVt dV9nZXRfYWlvX2NvbnRleHQoKSk7Ci0gICAgICAgIGJsa19kZXRhY2hfZGV2KGJsa2Rldi0+Ymxr LCBibGtkZXYpOworICAgICAgICBibGtfZGV0YWNoX2RldihibGtkZXYtPmJsaywgREVWSUNFKGJs a2RldikpOwogICAgICAgICBibGtfdW5yZWYoYmxrZGV2LT5ibGspOwogICAgICAgICBibGtkZXYt PmJsayA9IE5VTEw7CiAgICAgfQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9zeXNlbXUvYmxvY2stYmFj a2VuZC5oIGIvaW5jbHVkZS9zeXNlbXUvYmxvY2stYmFja2VuZC5oCmluZGV4IGM5NmJjZGUuLjM5 NTA3ZDYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvc3lzZW11L2Jsb2NrLWJhY2tlbmQuaAorKysgYi9p bmNsdWRlL3N5c2VtdS9ibG9jay1iYWNrZW5kLmgKQEAgLTExMCw5ICsxMTAsOCBAQCB2b2lkIGJs a19pb3N0YXR1c19kaXNhYmxlKEJsb2NrQmFja2VuZCAqYmxrKTsKIHZvaWQgYmxrX2lvc3RhdHVz X3Jlc2V0KEJsb2NrQmFja2VuZCAqYmxrKTsKIHZvaWQgYmxrX2lvc3RhdHVzX3NldF9lcnIoQmxv Y2tCYWNrZW5kICpibGssIGludCBlcnJvcik7CiBpbnQgYmxrX2F0dGFjaF9kZXYoQmxvY2tCYWNr ZW5kICpibGssIERldmljZVN0YXRlICpkZXYpOwotdm9pZCBibGtfYXR0YWNoX2Rldl9sZWdhY3ko QmxvY2tCYWNrZW5kICpibGssIHZvaWQgKmRldik7Ci12b2lkIGJsa19kZXRhY2hfZGV2KEJsb2Nr QmFja2VuZCAqYmxrLCB2b2lkICpkZXYpOwotdm9pZCAqYmxrX2dldF9hdHRhY2hlZF9kZXYoQmxv Y2tCYWNrZW5kICpibGspOwordm9pZCBibGtfZGV0YWNoX2RldihCbG9ja0JhY2tlbmQgKmJsaywg RGV2aWNlU3RhdGUgKmRldik7CitEZXZpY2VTdGF0ZSAqYmxrX2dldF9hdHRhY2hlZF9kZXYoQmxv Y2tCYWNrZW5kICpibGspOwogY2hhciAqYmxrX2dldF9hdHRhY2hlZF9kZXZfaWQoQmxvY2tCYWNr ZW5kICpibGspOwogQmxvY2tCYWNrZW5kICpibGtfYnlfZGV2KHZvaWQgKmRldik7CiBCbG9ja0Jh Y2tlbmQgKmJsa19ieV9xZGV2X2lkKGNvbnN0IGNoYXIgKmlkLCBFcnJvciAqKmVycnApOwotLSAK MS44LjMuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Clhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0 dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw= From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:53754) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gZHy5-0004rr-FC for qemu-devel@nongnu.org; Tue, 18 Dec 2018 11:11:38 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gZHy1-0001eQ-IW for qemu-devel@nongnu.org; Tue, 18 Dec 2018 11:11:37 -0500 From: Thomas Huth Date: Tue, 18 Dec 2018 17:11:24 +0100 Message-Id: <1545149484-4929-1-git-send-email-thuth@redhat.com> Subject: [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: qemu-block@nongnu.org, Kevin Wolf , Max Reitz , Stefano Stabellini , Anthony Perard Cc: qemu-devel@nongnu.org, xen-devel@lists.xenproject.org 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... 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; + } 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); -- 1.8.3.1