From mboxrd@z Thu Jan 1 00:00:00 1970 Received: by 2002:ac2:4841:0:0:0:0:0 with SMTP id 1csp2449405lfy; Mon, 24 Aug 2020 03:40:49 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwEaKK1LvOBYjyR2f+9oEPbrEFlEgxQNIVA8Zl1B+65g4ctcVPORPQ4m+Sg/d+tlaX/gSdP X-Received: by 2002:a25:7141:: with SMTP id m62mr6444539ybc.443.1598265649013; Mon, 24 Aug 2020 03:40:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1598265649; cv=none; d=google.com; s=arc-20160816; b=XBS9w9BhWZj53KqzrVSA2TJKT8xwFcsEZ/GHTHAM9Yi458+qsw6N/LtGUKlOYUk9Kw NndHomhmVOT5L7uZ7p/vIg/92ySrsBXHXhOwAJ1kjD23znR4nwtd0kZ/HEWNIPOz7/x+ nd5IBzLe1TAUa36ep/uB08ewj8m7JcacCa6NiOtmEW4zS1f3aRsAg2dsL7BSuHFxvILh XggkLjtnI5yBiz6yo/wrGxKDbjdOmDyK7ywzzEjV2cugqOcdvCV1sWU3r5G2XPbxWP3l 8IYgcUGgbL8+5vq8Lslmq6QCnOP0pTYlyMSeQWy+/UOSZNOnvg7ZjpRMJ62MZy1isca1 qD6A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:organization:references:in-reply-to:message-id:subject :to:from:date:dkim-signature; bh=+A6evpVCSTHV2YZ0pMLFCQA13iVdE/2LLf4WyYOz8hs=; b=jFBnfnY6+g2SnjDUthPQfIJYxl0/LDgCtglBA/cl5nSReFVbDGQ28UygfTPEphvlc4 ZgMNZT54aOXM9xaBjHbPiH3RUWggOe3dpoWbsSijAdku2cmb/yC3fmIKUW1F7qWL9F3y otsWYZlwXgkpdiMWo353YfjDsYRzj/s32iilINMeWAGqJM8VRX5/Z8NitQ1AS6jWP5NX iE8JN0K/CClQchvoz+Tujxe94SUzcsALZ8yIPzvWtZ+MmGrx1lWSuAxX5CSRKpB/dm9a Ax3ikF+nuvzcEkDrzcjm5/0yTEgqQfTMs/K5HUHgoczJi9VtzuuSBVLwiOduFmYCy9FB 2wpA== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@redhat.com header.s=mimecast20190719 header.b=BHr2VFtC; spf=pass (google.com: domain of qemu-arm-bounces+alex.bennee=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-arm-bounces+alex.bennee=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id h22si11187377ybg.35.2020.08.24.03.40.48 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 24 Aug 2020 03:40:49 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-arm-bounces+alex.bennee=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=fail header.i=@redhat.com header.s=mimecast20190719 header.b=BHr2VFtC; spf=pass (google.com: domain of qemu-arm-bounces+alex.bennee=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-arm-bounces+alex.bennee=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: from localhost ([::1]:34020 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kA9uC-0002Jd-Bf for alex.bennee@linaro.org; Mon, 24 Aug 2020 06:40:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33822) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kA9u1-0002EX-AY for qemu-arm@nongnu.org; Mon, 24 Aug 2020 06:40:37 -0400 Received: from us-smtp-2.mimecast.com ([205.139.110.61]:26464 helo=us-smtp-delivery-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kA9tz-00038a-KB for qemu-arm@nongnu.org; Mon, 24 Aug 2020 06:40:36 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1598265632; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=+A6evpVCSTHV2YZ0pMLFCQA13iVdE/2LLf4WyYOz8hs=; b=BHr2VFtC0ZY4Z7FYNRUoXW5VjA2JJzh5c4ANoync7EASzEjEXIUJFXVjU4T4HMuwRScIHd tykeepU0rI++bXpkbpr5LhVgNL5zzPFY9A+tLmvdu0MpMD2rvqIUTJUjdXs7aOuBFT5agn bb1fXSBnVn27yQ1mrKlasxH7SurqAM0= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-558-UjK6q6imNueuhC6OobWDVg-1; Mon, 24 Aug 2020 06:40:29 -0400 X-MC-Unique: UjK6q6imNueuhC6OobWDVg-1 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 2F42818A225D; Mon, 24 Aug 2020 10:40:26 +0000 (UTC) Received: from gondolin (ovpn-113-235.ams2.redhat.com [10.36.113.235]) by smtp.corp.redhat.com (Postfix) with ESMTP id AEA437D87C; Mon, 24 Aug 2020 10:40:09 +0000 (UTC) Date: Mon, 24 Aug 2020 12:40:06 +0200 From: Cornelia Huck To: Eduardo Habkost Subject: Re: Suspicious QOM types without instance/class size Message-ID: <20200824124006.3cfbdddd.cohuck@redhat.com> In-Reply-To: <20200821210149.GN642093@habkost.net> References: <20200820215529.GH642093@habkost.net> <20200821114335.2b100333.cohuck@redhat.com> <20200821210149.GN642093@habkost.net> Organization: Red Hat GmbH MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=cohuck@redhat.com X-Mimecast-Spam-Score: 0.002 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Received-SPF: pass client-ip=205.139.110.61; envelope-from=cohuck@redhat.com; helo=us-smtp-delivery-1.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/08/24 03:41:06 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -30 X-Spam_score: -3.1 X-Spam_bar: --- X-Spam_report: (-3.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.959, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-arm@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Fam Zheng , Peter Maydell , "Michael S. Tsirkin" , Mark Cave-Ayland , qemu-devel@nongnu.org, Gerd Hoffmann , qemu-block@nongnu.org, David Hildenbrand , Halil Pasic , Christian Borntraeger , =?UTF-8?B?SGVydsOp?= Poussineau , David Gibson , Thomas Huth , Alistair Francis , Cameron Esfahani , qemu-s390x@nongnu.org, qemu-arm@nongnu.org, =?UTF-8?B?Q8OpZHJpYw==?= Le Goater , Richard Henderson , "Daniel P. Berrange" , Roman Bolshakov , qemu-ppc@nongnu.org, Paolo Bonzini Errors-To: qemu-arm-bounces+alex.bennee=linaro.org@nongnu.org Sender: "Qemu-arm" X-TUID: tXx2HtO/H+/w On Fri, 21 Aug 2020 17:01:49 -0400 Eduardo Habkost wrote: > On Fri, Aug 21, 2020 at 11:43:35AM +0200, Cornelia Huck wrote: > > On Thu, 20 Aug 2020 17:55:29 -0400 > > Eduardo Habkost wrote: > > > > > While trying to convert TypeInfo declarations to the new > > > OBJECT_DECLARE* macros, I've stumbled on a few suspicious cases > > > where instance_size or class_size is not set, despite having type > > > checker macros that use a specific type. > > > > > > The ones with "WARNING" are abstract types (maybe not serious if > > > subclasses set the appropriate sizes). The ones with "ERROR" > > > don't seem to be abstract types. > > > > > > ERROR: hw/s390x/virtio-ccw.c:1237:1: class_size should be set to sizeof(VirtioCcwBusClass)? > > > ERROR: hw/virtio/virtio-pci.c:2101:1: class_size should be set to sizeof(VirtioPCIBusClass)? > > > > VirtioCcwBusClass and VirtioPCIBusClass are both simple typedefs of > > VirtioBusClass (it's likely that I copied the ccw definition from the > > pci one). virtio-mmio instead uses VirtioBusClass directly in its > > checker macros. > > > > I don't see a real reason for the typedefs, maybe ccw and pci should > > use the mmio approach as well? > > I think it's OK to keep the typedefs if the code is consistent > (i.e. we set instance_size and class_size just in case the > typedefs are replaced by a real struct one day). AFAIU, VirtioBusClass is providing functionality needed for all virtio buses, and they should not need to add anything on top. We can however try to make it safe, as it is only a line of code for both pci and ccw. > > I'm not sure about the TYPE_VIRTIO_MMIO_BUS approach. If the > code just needs VirtioBusState or VirtioBusClass pointers, it can > already use the VIRTIO_BUS* macros. We could go ahead and ditch the bus-specific macros if there's no real need for it. At least, I don't see a real need for *Class. OTOH, having types and macros defined everywhere makes it more symmetric. > > The OBJECT_DECLARE_TYPE macro Daniel sent expects each QOM type > to have a separate struct being defined, which isn't true in many > cases. I'm considering removing the "typedef struct Foo Foo" > lines from OBJECT_DECLARE_TYPE(), to make initial conversion > easier. Would be interesting to figure out the individual reasons why there's no separate struct, just to make sure we're not operating from wrong assumptions.