From nobody Mon Apr 29 07:13:17 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.124; envelope-from=philmd@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=philmd@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1630008452; cv=none; d=zohomail.com; s=zohoarc; b=iJkVRJSdU4JqWASE1FEsUyrotEnbC34ds7Y+7+dIP4uoAZ1U0PLfqKkOF7JQtQRgLTxOOBP0z6LaDHvR1tYM2/CFi1NGMIL4nTeHDzJxAj/EA7VkbU0jiok9VXrZ/bPbRcRYly632lqjiqJmMphEbBeLRdhUGIEDPzBekukRStM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1630008452; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:To; bh=iFdJgmZSFDi0T3tz5j4VdZ4mFoLbPu805prh7+ofjFQ=; b=g8nCaoIjzKtchPI+li6UNxcSy/oZWrxPpGXnM1KxjUH/Lj3JvgZRfv+SLxqxlch8PecxYY2sYdRQE5zdntAfKX81luxdQaK0zKQuMaxIS1DpbTarCWZUEM2/M657HIHbC/oexteFVnS3tjzCE9TorU2NWdSymB5nSESaVluYKrI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=philmd@redhat.com; dmarc=pass header.from= (p=none dis=none) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.zohomail.com with SMTPS id 1630008452807812.0525676794572; Thu, 26 Aug 2021 13:07:32 -0700 (PDT) Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com [209.85.128.71]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-14-62ZWyTq2O4iHTvrHnZJZKw-1; Thu, 26 Aug 2021 16:07:28 -0400 Received: by mail-wm1-f71.google.com with SMTP id z186-20020a1c7ec30000b02902e6a27a9962so4797711wmc.3 for ; Thu, 26 Aug 2021 13:07:28 -0700 (PDT) Return-Path: Return-Path: Received: from x1w.. (163.red-83-52-55.dynamicip.rima-tde.net. [83.52.55.163]) by smtp.gmail.com with ESMTPSA id u26sm2085844wrd.32.2021.08.26.13.07.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 Aug 2021 13:07:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1630008451; 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=iFdJgmZSFDi0T3tz5j4VdZ4mFoLbPu805prh7+ofjFQ=; b=aWGRirkIjhgt2FCy3zSioPINXEv2F81S9NGlO6IyvPKWCEy5QHV4T2396tVUjpAHfAGXt/ 4a4bgGKEVq5c6kmDtrngN7DzaAtIh/ad5kasRhsd1GIifFwB6s3KzLY72hNwmquFo3af6k 5JJMokL1Ct8u5XgegJGDtFdrZQNlC38= X-MC-Unique: 62ZWyTq2O4iHTvrHnZJZKw-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=iFdJgmZSFDi0T3tz5j4VdZ4mFoLbPu805prh7+ofjFQ=; b=A224xphwjxYFnfRCBlcjaPgJtfucVDXSDOmjssU17rdhbdVZuosTrGGBWt8cHnnsC4 UlWin2qKIoQxdWEAwds9GLPt1tiEOZC8whAWVmil82+HUvkJL4eLT3FeTNspr9F67zNx laVbGalFwQxfq1Q97QEITc6n2lqRa16dJ9nxEfJj6JQl+KJ+ed7orXQ24wrsIhjNrLrR i3L6dlwBudP7GWFtUJRutBTSfd0l3Cc0b2jX1eaw5esWYIrUTqmd7vYtNSYwj/q4tB0g Yis/71UD8SFX+5SkroyavUDPfSiiSGPSfJyTZrygoN9AawpLgueSDwvS6uXD8r6AV9IB iYhA== X-Gm-Message-State: AOAM5314k4AEt2ngpWz+2OkeTuHLS6muBgVBKVlJY8UP57d8lgRSgWXi BLUV+yUEB/9THN8+8MtWtc7+ic4VqokSie1fR9EeDPePWXNaUC0T8btwoTWzvP/94JAlkonfeWm i5puBfRVdZ1FC/w== X-Received: by 2002:a5d:4568:: with SMTP id a8mr6402646wrc.200.1630008447075; Thu, 26 Aug 2021 13:07:27 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyXM+8NhwWeRegRd1V7F+CEHGpzg5FArWoj0MLdwiQWtLa7KFb1eNKTHJ8Gtl/e3VLSkMXnxw== X-Received: by 2002:a5d:4568:: with SMTP id a8mr6402629wrc.200.1630008446951; Thu, 26 Aug 2021 13:07:26 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Richard Henderson , Marcel Apfelbaum , Paolo Bonzini , Eduardo Habkost , Gerd Hoffmann , Sergio Lopez , Peter Maydell , "Michael S. Tsirkin" , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v3 1/3] hw/pci: Introduce pci_dma_memory_region() helper Date: Thu, 26 Aug 2021 22:07:18 +0200 Message-Id: <20210826200720.2196827-2-philmd@redhat.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210826200720.2196827-1-philmd@redhat.com> References: <20210826200720.2196827-1-philmd@redhat.com> MIME-Version: 1.0 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=philmd@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1630008454647100001 pci_get_address_space() returns an AddressSpace. In some cases we want a MemoryRegion. Add the pci_dma_memory_region() equivalent helper. Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- include/hw/pci/pci.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/include/hw/pci/pci.h b/include/hw/pci/pci.h index d0f4266e372..5860f42e400 100644 --- a/include/hw/pci/pci.h +++ b/include/hw/pci/pci.h @@ -786,6 +786,11 @@ static inline AddressSpace *pci_get_address_space(PCID= evice *dev) return &dev->bus_master_as; } =20 +static inline MemoryRegion *pci_dma_memory_region(PCIDevice *dev) +{ + return &dev->bus_master_container_region; +} + /** * pci_dma_rw: Read from or write to an address space from PCI device. * --=20 2.31.1 From nobody Mon Apr 29 07:13:17 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) client-ip=216.205.24.124; envelope-from=philmd@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) smtp.mailfrom=philmd@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1630008455; cv=none; d=zohomail.com; s=zohoarc; b=fi5frW4vymBMXQ23GADWuFNeKggSSB0zbCLOCIvz0ZFDnCGIVl/5PzHtQ66dpgrUduztxXl/UNSIO92QjoYvWcp/YkH9pCT1Xjz/T0+x/dKUu6GHa0Yi5K66vTXa7tslyT1LhJPVNhg0B8EkYUu2D0DcTzjPoCvUQu6wCEgZTOI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1630008455; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:To; bh=8ZLosj281VIPcnVVY5MWZocWOZi5mT78NAOIuJQf3M8=; b=iO4yMgro1mh/TvK16eYm1a/5R/6x7ohiEwPg5YSW7OiV1Ct+TjOGQXncNjqBayDsedAsuhlVpQZts3fsMwcX3qnRAKJ1SFRcubQTFoKUsbwtkU4HO5ROXXbdgvjQBdEnZJpbzpPaDiOUfN9stW7HLrvNE/fRwEsubX0/+v1oPtA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) smtp.mailfrom=philmd@redhat.com; dmarc=pass header.from= (p=none dis=none) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) by mx.zohomail.com with SMTPS id 1630008455321979.5921867881536; Thu, 26 Aug 2021 13:07:35 -0700 (PDT) Received: from mail-wr1-f71.google.com (mail-wr1-f71.google.com [209.85.221.71]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-93-Sl0pHNs-M3CGdMrhF04bbw-1; Thu, 26 Aug 2021 16:07:32 -0400 Received: by mail-wr1-f71.google.com with SMTP id h6-20020a5d4fc6000000b00157503046afso1221690wrw.3 for ; Thu, 26 Aug 2021 13:07:32 -0700 (PDT) Return-Path: Return-Path: Received: from x1w.. (163.red-83-52-55.dynamicip.rima-tde.net. [83.52.55.163]) by smtp.gmail.com with ESMTPSA id y1sm3837057wmq.43.2021.08.26.13.07.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 Aug 2021 13:07:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1630008454; 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=8ZLosj281VIPcnVVY5MWZocWOZi5mT78NAOIuJQf3M8=; b=PiHdk1IU4lg1cBiCRgt2BZhKoPUcmYTAvus2Jm/SOvNJatWSujXRWEmdq67aZKLLgGrM8a uz+Uyk6fjHy7c6jYgbbGE8IhDBEYY1rQ86t5HhreM8JDvwYoJQWnVveKwn6tfYmJ7v0sKr uI6rYaUDtrfHcOFvcnZqweWMAqXfzoQ= X-MC-Unique: Sl0pHNs-M3CGdMrhF04bbw-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=8ZLosj281VIPcnVVY5MWZocWOZi5mT78NAOIuJQf3M8=; b=T33Hrrwog2jvYlkK6o3L6WTckjVThDAu5HYJVpNIE2NrBnUyaByF2qri9lwhb615Np WygbC52UzJxGHaouWL0GnDT6I5YS9EnN/wtyIeAgxnk/cX3PDH2J8kZqBKJ2OWNN644Q 2iSYgeBYFwBSrGo08CtBev/h3U4L+/IYXv+WJ9RdrBYHC3aL6N2maLRxgABsxBMs9/wg Fwi/bR+pQHMRgaT8jka5usq22tYo5SVgJ4sXfnlDr9NIwsRu8YBPoHU/CyiIXUIVzwDj CwV/PlB3KipwwUZhVZv87gW96T3whS+Of6TvGBaXu92YRQV0GN6nx1V9U7s+GGxeJSyH iIag== X-Gm-Message-State: AOAM530EjJXveiuFlXt7xnlNa9f2DFA/VgadPZIgfGM2YNtLM+jl3G7H yuZVit9kFfgLmyoWi7CVBjs47/gfYXT1ENwMnmd8Qf7CHya1ZAz0P9nHiL55p75YSn64ZIjvhBc nkJtzl2kY3rY7eA== X-Received: by 2002:a1c:a5c2:: with SMTP id o185mr16068544wme.34.1630008451419; Thu, 26 Aug 2021 13:07:31 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyMCstQ65sK3jZMXwP0SFbsn0H2tQqwl2KgBLEA5lchtjsw/WTWmqZcZYq3kpEdDr2fs9ONKQ== X-Received: by 2002:a1c:a5c2:: with SMTP id o185mr16068529wme.34.1630008451304; Thu, 26 Aug 2021 13:07:31 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Richard Henderson , Marcel Apfelbaum , Paolo Bonzini , Eduardo Habkost , Gerd Hoffmann , Sergio Lopez , Peter Maydell , "Michael S. Tsirkin" , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v3 2/3] hw/usb/hcd-xhci-pci: Abort if setting link property failed Date: Thu, 26 Aug 2021 22:07:19 +0200 Message-Id: <20210826200720.2196827-3-philmd@redhat.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210826200720.2196827-1-philmd@redhat.com> References: <20210826200720.2196827-1-philmd@redhat.com> MIME-Version: 1.0 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=philmd@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1630008456904100001 Do not ignore eventual error if we failed at setting the 'host' property of the TYPE_XHCI model. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Mark Cave-Ayland --- hw/usb/hcd-xhci-pci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/usb/hcd-xhci-pci.c b/hw/usb/hcd-xhci-pci.c index e934b1a5b1f..24c528d210f 100644 --- a/hw/usb/hcd-xhci-pci.c +++ b/hw/usb/hcd-xhci-pci.c @@ -115,7 +115,7 @@ static void usb_xhci_pci_realize(struct PCIDevice *dev,= Error **errp) dev->config[PCI_CACHE_LINE_SIZE] =3D 0x10; dev->config[0x60] =3D 0x30; /* release number */ =20 - object_property_set_link(OBJECT(&s->xhci), "host", OBJECT(s), NULL); + object_property_set_link(OBJECT(&s->xhci), "host", OBJECT(s), &error_a= bort); s->xhci.intr_update =3D xhci_pci_intr_update; s->xhci.intr_raise =3D xhci_pci_intr_raise; if (!qdev_realize(DEVICE(&s->xhci), NULL, errp)) { --=20 2.31.1 From nobody Mon Apr 29 07:13:17 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) client-ip=216.205.24.124; envelope-from=philmd@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) smtp.mailfrom=philmd@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1630008462; cv=none; d=zohomail.com; s=zohoarc; b=DckS29tcKOCvRTetnGGQBuNhfgScND9rEYf9Hl8AgP4H9ciMcwo5X7HuZuzhQtnYolCKzujuzCSHzJpFZaEomLLVmV/N904ATs0KmvntEZ5+mHWtkSl6YhKCnREWnJLo4RFK//bicOKJdWTdKI31fTbhWQqmunOnrTCUTsgjj0g= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1630008462; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:To; bh=UeL3Yz7d1ZnWXoMN7sC9fU3j5GyHb4O1fAS4ToJkz0k=; b=iU1Z2ad8mCE5JWKXNk6yYdDwqtPMkb1U4YWQWuoukeFGsP9cX92YBMGEK/VyN9MH0YgL/+1+GWHWmp8V06TvJaJwg3pNip0ww8d0FtY25v2zCp44xVmXxJB+q52/EQLsFf86MsXCsOBu00i/bzneNzjhqu9TQFDrBIZDe4h1C2E= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) smtp.mailfrom=philmd@redhat.com; dmarc=pass header.from= (p=none dis=none) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) by mx.zohomail.com with SMTPS id 1630008462055401.0202723398727; Thu, 26 Aug 2021 13:07:42 -0700 (PDT) Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-471-kFCsMxWbNCuCzDGhORcMkw-1; Thu, 26 Aug 2021 16:07:37 -0400 Received: by mail-wm1-f70.google.com with SMTP id r126-20020a1c4484000000b002e8858850abso1306341wma.0 for ; Thu, 26 Aug 2021 13:07:37 -0700 (PDT) Return-Path: Return-Path: Received: from x1w.. (163.red-83-52-55.dynamicip.rima-tde.net. [83.52.55.163]) by smtp.gmail.com with ESMTPSA id f17sm4786090wrt.63.2021.08.26.13.07.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 Aug 2021 13:07:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1630008461; 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=UeL3Yz7d1ZnWXoMN7sC9fU3j5GyHb4O1fAS4ToJkz0k=; b=UJAYll4rXuzmMyljk+ZQqdacPVc1zSKMvipU22XhR1qBjKKjoCGuKBzhEYuP1MzLDibdRg DLcQieUFVQKrNOj44GdiQboVBwSd25qs5Hkjq+v/KmkBpvzvWk8q5CrRis8JnVDNdtj+Ye Umqo+LlzlNf2ouh8JQnvYkCcpXlmLME= X-MC-Unique: kFCsMxWbNCuCzDGhORcMkw-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=UeL3Yz7d1ZnWXoMN7sC9fU3j5GyHb4O1fAS4ToJkz0k=; b=rJ+YbVRTbq+ZRB93U4UzEPdKNPIpMP/emhTN74vqsPRJtAZ4eXEbzD8C24E61PoQiG yN/AL0xv9seYigszWG7ALNIj9uU9i1MC+0H+I8EyUfJ0OHWGtvNuz7FNOoM9vi8xMxza 2TwHWK6IT2PMeU4CGwnF0yQgeABDWF+1xUg297lZ96RuSIIKSdx4v8egV4JnuA6hP/QE QJ/zNYAYxkV/+tGZUGZxfUc5Rxu9yGlpibe3SZwbP2N+pSXZTkXQa6fxf6tPuYVzS06O P7SCfoSLq9vT9knYE36S4kzIqHLPsy0Nhwp2qnMgUBBRbhgecFV7/ccynvNBcW84obG5 pPvA== X-Gm-Message-State: AOAM531SuQcf+oMuKLheE1gRKn2Ph7Wk/gnjPgNogdFDVLubHLV1uCBA FUm/rpJsrgF6AOTKP9xpSuQ0rZOlwDBxKEhrc6fp9aEVYVgB3MeYZHFcQmwU+P9cgHjXRskar0a Z+uPQ31oxf6qFew== X-Received: by 2002:adf:90d0:: with SMTP id i74mr5940242wri.185.1630008456124; Thu, 26 Aug 2021 13:07:36 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyzzwGSEySuwUOYsPFZjviyVMv4xJ0gCe32nTG9XYL+82hMU1fxFo19TDjPYqtPlSzC19TZEw== X-Received: by 2002:adf:90d0:: with SMTP id i74mr5940210wri.185.1630008455869; Thu, 26 Aug 2021 13:07:35 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Richard Henderson , Marcel Apfelbaum , Paolo Bonzini , Eduardo Habkost , Gerd Hoffmann , Sergio Lopez , Peter Maydell , "Michael S. Tsirkin" , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v3 3/3] hw/usb/xhci: Always expect 'dma' link property to be set Date: Thu, 26 Aug 2021 22:07:20 +0200 Message-Id: <20210826200720.2196827-4-philmd@redhat.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210826200720.2196827-1-philmd@redhat.com> References: <20210826200720.2196827-1-philmd@redhat.com> MIME-Version: 1.0 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=philmd@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1630008463877100001 Simplify by always passing a MemoryRegion property to the device. Doing so we can move the AddressSpace field to the device struct, removing need for heap allocation. Update the MicroVM machine to pass the default system memory instead of a NULL value. We don't need to change the Versal machine, as the link property is initialize as "versal.dwc3_alias" MemoryRegion alias. Suggested-by: Peter Maydell Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- Versal untested --- hw/usb/hcd-xhci.h | 2 +- hw/i386/microvm.c | 2 ++ hw/usb/hcd-xhci-pci.c | 3 ++- hw/usb/hcd-xhci-sysbus.c | 13 ++++++------- hw/usb/hcd-xhci.c | 20 ++++++++++---------- 5 files changed, 21 insertions(+), 19 deletions(-) diff --git a/hw/usb/hcd-xhci.h b/hw/usb/hcd-xhci.h index 98f598382ad..ea76ec4f277 100644 --- a/hw/usb/hcd-xhci.h +++ b/hw/usb/hcd-xhci.h @@ -180,7 +180,7 @@ typedef struct XHCIState { USBBus bus; MemoryRegion mem; MemoryRegion *dma_mr; - AddressSpace *as; + AddressSpace as; MemoryRegion mem_cap; MemoryRegion mem_oper; MemoryRegion mem_runtime; diff --git a/hw/i386/microvm.c b/hw/i386/microvm.c index aba0c832190..2d55114a676 100644 --- a/hw/i386/microvm.c +++ b/hw/i386/microvm.c @@ -219,6 +219,8 @@ static void microvm_devices_init(MicrovmMachineState *m= ms) qdev_prop_set_uint32(dev, "slots", XHCI_MAXSLOTS); qdev_prop_set_uint32(dev, "p2", 8); qdev_prop_set_uint32(dev, "p3", 8); + object_property_set_link(OBJECT(dev), "dma", + OBJECT(get_system_memory()), &error_abort= ); sysbus_realize(SYS_BUS_DEVICE(dev), &error_fatal); sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, MICROVM_XHCI_BASE); sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, diff --git a/hw/usb/hcd-xhci-pci.c b/hw/usb/hcd-xhci-pci.c index 24c528d210f..10f5cc374fe 100644 --- a/hw/usb/hcd-xhci-pci.c +++ b/hw/usb/hcd-xhci-pci.c @@ -116,6 +116,8 @@ static void usb_xhci_pci_realize(struct PCIDevice *dev,= Error **errp) dev->config[0x60] =3D 0x30; /* release number */ =20 object_property_set_link(OBJECT(&s->xhci), "host", OBJECT(s), &error_a= bort); + object_property_set_link(OBJECT(dev), "dma", + OBJECT(pci_dma_memory_region(dev)), &error_ab= ort); s->xhci.intr_update =3D xhci_pci_intr_update; s->xhci.intr_raise =3D xhci_pci_intr_raise; if (!qdev_realize(DEVICE(&s->xhci), NULL, errp)) { @@ -161,7 +163,6 @@ static void usb_xhci_pci_realize(struct PCIDevice *dev,= Error **errp) &s->xhci.mem, 0, OFF_MSIX_PBA, 0x90, NULL); } - s->xhci.as =3D pci_get_address_space(dev); } =20 static void usb_xhci_pci_exit(PCIDevice *dev) diff --git a/hw/usb/hcd-xhci-sysbus.c b/hw/usb/hcd-xhci-sysbus.c index a14e4381960..f212ce785bd 100644 --- a/hw/usb/hcd-xhci-sysbus.c +++ b/hw/usb/hcd-xhci-sysbus.c @@ -36,6 +36,11 @@ static void xhci_sysbus_realize(DeviceState *dev, Error = **errp) { XHCISysbusState *s =3D XHCI_SYSBUS(dev); =20 + if (!s->xhci.dma_mr) { + error_setg(errp, TYPE_XHCI_SYSBUS " 'dma' link not set"); + return; + } + object_property_set_link(OBJECT(&s->xhci), "host", OBJECT(s), NULL); if (!qdev_realize(DEVICE(&s->xhci), NULL, errp)) { return; @@ -43,13 +48,7 @@ static void xhci_sysbus_realize(DeviceState *dev, Error = **errp) s->irq =3D g_new0(qemu_irq, s->xhci.numintrs); qdev_init_gpio_out_named(dev, s->irq, SYSBUS_DEVICE_GPIO_IRQ, s->xhci.numintrs); - if (s->xhci.dma_mr) { - s->xhci.as =3D g_malloc0(sizeof(AddressSpace)); - address_space_init(s->xhci.as, s->xhci.dma_mr, NULL); - } else { - s->xhci.as =3D &address_space_memory; - } - + address_space_init(&s->xhci.as, s->xhci.dma_mr, "usb-xhci-dma"); sysbus_init_mmio(SYS_BUS_DEVICE(dev), &s->xhci.mem); } =20 diff --git a/hw/usb/hcd-xhci.c b/hw/usb/hcd-xhci.c index e01700039b1..011f1233ef3 100644 --- a/hw/usb/hcd-xhci.c +++ b/hw/usb/hcd-xhci.c @@ -487,7 +487,7 @@ static inline void xhci_dma_read_u32s(XHCIState *xhci, = dma_addr_t addr, =20 assert((len % sizeof(uint32_t)) =3D=3D 0); =20 - dma_memory_read(xhci->as, addr, buf, len); + dma_memory_read(&xhci->as, addr, buf, len); =20 for (i =3D 0; i < (len / sizeof(uint32_t)); i++) { buf[i] =3D le32_to_cpu(buf[i]); @@ -507,7 +507,7 @@ static inline void xhci_dma_write_u32s(XHCIState *xhci,= dma_addr_t addr, for (i =3D 0; i < n; i++) { tmp[i] =3D cpu_to_le32(buf[i]); } - dma_memory_write(xhci->as, addr, tmp, len); + dma_memory_write(&xhci->as, addr, tmp, len); } =20 static XHCIPort *xhci_lookup_port(XHCIState *xhci, struct USBPort *uport) @@ -618,7 +618,7 @@ static void xhci_write_event(XHCIState *xhci, XHCIEvent= *event, int v) ev_trb.status, ev_trb.control); =20 addr =3D intr->er_start + TRB_SIZE*intr->er_ep_idx; - dma_memory_write(xhci->as, addr, &ev_trb, TRB_SIZE); + dma_memory_write(&xhci->as, addr, &ev_trb, TRB_SIZE); =20 intr->er_ep_idx++; if (intr->er_ep_idx >=3D intr->er_size) { @@ -679,7 +679,7 @@ static TRBType xhci_ring_fetch(XHCIState *xhci, XHCIRin= g *ring, XHCITRB *trb, =20 while (1) { TRBType type; - dma_memory_read(xhci->as, ring->dequeue, trb, TRB_SIZE); + dma_memory_read(&xhci->as, ring->dequeue, trb, TRB_SIZE); trb->addr =3D ring->dequeue; trb->ccs =3D ring->ccs; le64_to_cpus(&trb->parameter); @@ -726,7 +726,7 @@ static int xhci_ring_chain_length(XHCIState *xhci, cons= t XHCIRing *ring) =20 while (1) { TRBType type; - dma_memory_read(xhci->as, dequeue, &trb, TRB_SIZE); + dma_memory_read(&xhci->as, dequeue, &trb, TRB_SIZE); le64_to_cpus(&trb.parameter); le32_to_cpus(&trb.status); le32_to_cpus(&trb.control); @@ -781,7 +781,7 @@ static void xhci_er_reset(XHCIState *xhci, int v) xhci_die(xhci); return; } - dma_memory_read(xhci->as, erstba, &seg, sizeof(seg)); + dma_memory_read(&xhci->as, erstba, &seg, sizeof(seg)); le32_to_cpus(&seg.addr_low); le32_to_cpus(&seg.addr_high); le32_to_cpus(&seg.size); @@ -1393,7 +1393,7 @@ static int xhci_xfer_create_sgl(XHCITransfer *xfer, i= nt in_xfer) int i; =20 xfer->int_req =3D false; - qemu_sglist_init(&xfer->sgl, DEVICE(xhci), xfer->trb_count, xhci->as); + qemu_sglist_init(&xfer->sgl, DEVICE(xhci), xfer->trb_count, &xhci->as); for (i =3D 0; i < xfer->trb_count; i++) { XHCITRB *trb =3D &xfer->trbs[i]; dma_addr_t addr; @@ -2059,7 +2059,7 @@ static TRBCCode xhci_address_slot(XHCIState *xhci, un= signed int slotid, assert(slotid >=3D 1 && slotid <=3D xhci->numslots); =20 dcbaap =3D xhci_addr64(xhci->dcbaap_low, xhci->dcbaap_high); - poctx =3D ldq_le_dma(xhci->as, dcbaap + 8 * slotid); + poctx =3D ldq_le_dma(&xhci->as, dcbaap + 8 * slotid); ictx =3D xhci_mask64(pictx); octx =3D xhci_mask64(poctx); =20 @@ -2397,7 +2397,7 @@ static TRBCCode xhci_get_port_bandwidth(XHCIState *xh= ci, uint64_t pctx) /* TODO: actually implement real values here */ bw_ctx[0] =3D 0; memset(&bw_ctx[1], 80, xhci->numports); /* 80% */ - dma_memory_write(xhci->as, ctx, bw_ctx, sizeof(bw_ctx)); + dma_memory_write(&xhci->as, ctx, bw_ctx, sizeof(bw_ctx)); =20 return CC_SUCCESS; } @@ -3434,7 +3434,7 @@ static int usb_xhci_post_load(void *opaque, int versi= on_id) continue; } slot->ctx =3D - xhci_mask64(ldq_le_dma(xhci->as, dcbaap + 8 * slotid)); + xhci_mask64(ldq_le_dma(&xhci->as, dcbaap + 8 * slotid)); xhci_dma_read_u32s(xhci, slot->ctx, slot_ctx, sizeof(slot_ctx)); slot->uport =3D xhci_lookup_uport(xhci, slot_ctx); if (!slot->uport) { --=20 2.31.1