From nobody Fri May 17 10:44:26 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=1629393356; cv=none; d=zohomail.com; s=zohoarc; b=m04H6NWT7uLrg/c+QAU0emO/p2eBFNWOeH5d+hH/7Pd9eRTzu0UbfaiJ82vQoX1Msh15DGG1bvqPh8YuSITE64E2lzjML8O8SXVOX0V5I2iQpZhpWeNSFlN4xukQuWcgCnj86gsKnRyt76gug3EpN02Z+izlRU82XB7lTCnUpkE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1629393356; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:To; bh=iFdJgmZSFDi0T3tz5j4VdZ4mFoLbPu805prh7+ofjFQ=; b=XY36Qk+hwAJU+MW/QowSr2wDuLADc2pFLNOcZIV6gQUEcbmU5XJihWfOefB0pmuARap6rGiSg69mWkziKceCCPljk33jiVV+ioTLNNyliFs4yD0PfmNPmpSuzci4ThL3jhtGrapl5jXavlvv6AQifzvB+dpB80l8ZoNkKeqEMT8= 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 1629393356896656.0483256507572; Thu, 19 Aug 2021 10:15:56 -0700 (PDT) Received: from mail-wr1-f72.google.com (mail-wr1-f72.google.com [209.85.221.72]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-561-LC_6y8LvNRyvBbIa2xu7mA-1; Thu, 19 Aug 2021 13:15:54 -0400 Received: by mail-wr1-f72.google.com with SMTP id l1-20020adff481000000b00156e670a09dso1935282wro.1 for ; Thu, 19 Aug 2021 10:15:54 -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 p8sm7846501wme.22.2021.08.19.10.15.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 Aug 2021 10:15:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1629393355; 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=hgWRjEtEiLh2jSJTivTDKIss8zKPNaIxQBStao4198B2T2kC4dlbohPTeKsiwnDtHSsruB eaG7yIiYHBH+hrJNeUQTRb0BF5PpDavvTD8FvvH+iOtYRsPI8bGyIqL28/YC+24xRCgfOY cyRmCHLIPKryC8llvmRZuFHRpMeScKE= X-MC-Unique: LC_6y8LvNRyvBbIa2xu7mA-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=uCqhrbVpx359B7F+wh3F3kEV3wMnNeSvZ1kqicwvpL/DQkiazPL/kqhwxx+F+wNed6 p7KRqbnacOVnKDE+IawCI6RZSqKC7bnXGDxpAqC4Us7JuYa8VHVlRbcP2W0vAE9MUVO7 8vlAKhjrP0K91AKo9eq6Emp7rROHby+jmNSvDNSID31wxT7moOuW2nyNkueBarkqaYoR F0SPyWkCgtVf20VQzeyD8tEBlYnhPF4mGS/t7v8N5rJMFHva71VmfU9DkB+omD9cQpv/ KPSuXtZP+i3PNO7VDEvSslHmoOpK7bqE8TosLW0VgRBzBvQAcx+yMehowwMdhI8VTb5h tR+A== X-Gm-Message-State: AOAM530Q55d2Bu+8X1NCBsredBX4lpO8GINt9Gy2KLnXABCLp393bs3c omYwDgUSN/UhO0sENsxel2GA53h71LQAgDROuf+/cTlLHKZLWAB9RWmjM+/E8KOeDOH1psiyDK0 7pVavmulWWAYHTA== X-Received: by 2002:a5d:5228:: with SMTP id i8mr5170458wra.391.1629393353675; Thu, 19 Aug 2021 10:15:53 -0700 (PDT) X-Google-Smtp-Source: ABdhPJw21UpmnBmnx5p6noRHd2CHy1aSY69OdHAmHOK2vmdBbgqOMTNSGSOdNTXiMW7C3A5HvLZ7eA== X-Received: by 2002:a5d:5228:: with SMTP id i8mr5170452wra.391.1629393353542; Thu, 19 Aug 2021 10:15:53 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: "Michael S. Tsirkin" , Eduardo Habkost , Richard Henderson , Marcel Apfelbaum , Gerd Hoffmann , Paolo Bonzini , Sergio Lopez , Peter Maydell , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v2 1/3] hw/pci: Introduce pci_dma_memory_region() helper Date: Thu, 19 Aug 2021 19:15:45 +0200 Message-Id: <20210819171547.2879725-2-philmd@redhat.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210819171547.2879725-1-philmd@redhat.com> References: <20210819171547.2879725-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: 1629393529773100003 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 Fri May 17 10:44:26 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1629393473429832.0185788957218; Thu, 19 Aug 2021 10:17:53 -0700 (PDT) Received: from localhost ([::1]:42080 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mGlfr-0004Ou-PG for importer@patchew.org; Thu, 19 Aug 2021 13:17:51 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:35842) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mGle7-0002PX-9i for qemu-devel@nongnu.org; Thu, 19 Aug 2021 13:16:04 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:41747) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mGle5-0000nE-PE for qemu-devel@nongnu.org; Thu, 19 Aug 2021 13:16:02 -0400 Received: from mail-wr1-f70.google.com (mail-wr1-f70.google.com [209.85.221.70]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-154-qGPY8wpWMTiYolnvSAhHoQ-1; Thu, 19 Aug 2021 13:15:59 -0400 Received: by mail-wr1-f70.google.com with SMTP id t15-20020a5d42cf000000b001565f9c9ee8so1925319wrr.2 for ; Thu, 19 Aug 2021 10:15:59 -0700 (PDT) Received: from x1w.. (163.red-83-52-55.dynamicip.rima-tde.net. [83.52.55.163]) by smtp.gmail.com with ESMTPSA id e3sm3521373wrv.65.2021.08.19.10.15.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 Aug 2021 10:15:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1629393361; 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=K6WDtcVKwaCmehlRPs0xBuymaPwY7iBBUHHcebJt3Eg=; b=GhC+2URGtJF0dHKgYsSst38b9coXxvitg7h0z6vXxG9m9NfrtM8Bbqf5bJ1eeokNnolVfy 9Nx5zQ7YC+aW0gkd7CaIjnEzcOjT9TwAtz8JBX+iXFEsTY/slKbSB0qjRjlMOffeWpZ9KE t1SG/GJX1Ae/EdJ9NnVf3JrxOsaMZq0= X-MC-Unique: qGPY8wpWMTiYolnvSAhHoQ-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=K6WDtcVKwaCmehlRPs0xBuymaPwY7iBBUHHcebJt3Eg=; b=NnpJVD2irnWfuz359w6XuBAwDE+jNCM88nHO8digMLfYIe4rKlnPm7n7RANP9/eoYp 4POPshmk7ernM+54yAhgyRE7hsqvWpNTNTyI74qP1McOJ4zznvYiv35cLyPTagrNA1XL HQvCGBjH5LBtnFl8kAuv69NlPLm7mMFkDJPM+gbi6RpcrvFFR0QLz8xdZQm12vnpjjiF zlkyA+qd6Iml4O9+Qf9t7zAL3+9QX2VeKPWNqG0JTDtV5knV7CabMndt3hmExc/JT5Q5 6XBxhLKrMIylnXba3DbdJdjdcaz6afaKn2AtrGBMPh//09PI3Usd2HaU1X4F6jmynK3C mf9A== X-Gm-Message-State: AOAM533eAGY61CjVHfYslufDjg5bYTYJ2EOs3R0L0Ot3sKGdOqis14wO gJHt9qxtfx1sxI8VRw6GvF2n8xNpOOMsgZaVpcvUNSPGbry/KbrasrR7IwPLV41GGZ5jGjkHhwk l6ApEs3oEAfedx79J44mUd7hXf8TD1xiPiE7G6QeCPtqTC/3TtGQJBpj2Qc9cx5Ip X-Received: by 2002:a5d:4f02:: with SMTP id c2mr5278812wru.311.1629393358502; Thu, 19 Aug 2021 10:15:58 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxded6nMUf7hNj0FFFW0qd7hzTLA8bC8AjE/GmWslOJ9G2PNdk43+1ru/N+jLLXIHBY5sPV8g== X-Received: by 2002:a5d:4f02:: with SMTP id c2mr5278781wru.311.1629393358299; Thu, 19 Aug 2021 10:15:58 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [PATCH v2 2/3] hw/usb/hcd-xhci-pci: Abort if setting link property failed Date: Thu, 19 Aug 2021 19:15:46 +0200 Message-Id: <20210819171547.2879725-3-philmd@redhat.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210819171547.2879725-1-philmd@redhat.com> References: <20210819171547.2879725-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 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=philmd@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -34 X-Spam_score: -3.5 X-Spam_bar: --- X-Spam_report: (-3.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.7, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , Eduardo Habkost , Sergio Lopez , "Michael S. Tsirkin" , Richard Henderson , Gerd Hoffmann , Paolo Bonzini , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1629393567591100002 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 --- 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..71f6629ccde 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_f= atal); 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 Fri May 17 10:44:26 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=1629393367; cv=none; d=zohomail.com; s=zohoarc; b=JBwKHeXV0OgBBeoeNG+pEWaClnM84yHZjwBQ/2apzjrSsBKGPnYmtVQTq66sa+g/UwYiyb5JBqsVS2aApx69SH1W0GGjk1c+kPqQyGbcviA4SKQTaJcLJLLA7OEIKXQkzz0/2jtgO8lPgpc8Q0IlxeDUzjVp52dpxp+rdEHk0d4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1629393367; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:To; bh=OAHzBAmbVApY1o+QnWvkEcFu0dMTB1soFMwucFnim0U=; b=AK1Nl8LW5WFcRY4CQNxV20gm0NddlhCB6zVnseG1qdJO/TijZSPGyFYVXI+DGUWrMYvOzIJaKHlEASpb1VbRb0Tn0/HVKKwFNj+uGHOSRxc+A4JXsoPQsNknOp0r2rg0AQ5+NemC6qv1QQzMx58x17NvlJZBzmJNyqk8Fl6QjVE= 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 1629393367627851.4799783083948; Thu, 19 Aug 2021 10:16:07 -0700 (PDT) Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-403-34TdXkAKPCeK5KqIQTqb3Q-1; Thu, 19 Aug 2021 13:16:04 -0400 Received: by mail-wm1-f69.google.com with SMTP id y23-20020a7bcd97000000b002e6e4a2a332so1492622wmj.0 for ; Thu, 19 Aug 2021 10:16:04 -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 p18sm3425902wrt.13.2021.08.19.10.16.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 Aug 2021 10:16:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1629393366; 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=OAHzBAmbVApY1o+QnWvkEcFu0dMTB1soFMwucFnim0U=; b=J0KC1QLHoPaw2U1v2WBJpm4/wOJxbhEFn/HwSVabrxECPtPuV/C11rilxsvfFCc2qKPCvo KYmKKRulCWCEHXHVGgnaAn8jRRN43FbEQKQi+6iopnHLZ+SAr9ZYHinbHlXQyXS3lc6vil punx6Ilr8CEe7R4v6RoK3RsZtvn4rwA= X-MC-Unique: 34TdXkAKPCeK5KqIQTqb3Q-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=OAHzBAmbVApY1o+QnWvkEcFu0dMTB1soFMwucFnim0U=; b=O6vk14QjeMg7StYD21v/H0siBpz1xHBhdkCqhjtfI6DDWtT2uZM0fueSvMPHRcSzuq ovvVKSIZ35KWcEzWdvw+1bGhOuRvqwgRvo2XEdy7BncTL8x9xOMhS9DI1k1AyP8TU58i aeA/frFYkoVtTT0UUbh5tEPqrHq0J58LVH8fgnjFgeKKvQNDVl09bnUssbonEcVT6ct6 2c+V2HnhthM5Snr0BDcrn10BBMi3Y7y5B1k+BQsl3SF+rI2PENRm6hmkxgtlHS83vnLS /ZC2HtI7umDg3K4HUD5t+9xH2gBN2YvzEFj6ioTEDvWLb9NqgkbYkfvrQmxRBjCB/gPx 28Bw== X-Gm-Message-State: AOAM532Um0T4tFK4vk8xphXSc+jji+r7ZtfifzH58GIV+b5whMjwXuKo aONrFf+WdgBUt+cEBDGeGQBL5gIC1ZBf89+raqCDWJome8VBl7d4me3rcoD66VON8CGEMUhYBTY PmMM2CXR7id0XnQ== X-Received: by 2002:adf:f141:: with SMTP id y1mr5181764wro.173.1629393363325; Thu, 19 Aug 2021 10:16:03 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyshhncxDnsLvZxeSmqubxDfjoXBGsNe/dFrzgNKjZBFnqzvNy5o59Txez18wjv/QUrxP//Ew== X-Received: by 2002:adf:f141:: with SMTP id y1mr5181744wro.173.1629393363117; Thu, 19 Aug 2021 10:16:03 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: "Michael S. Tsirkin" , Eduardo Habkost , Richard Henderson , Marcel Apfelbaum , Gerd Hoffmann , Paolo Bonzini , Sergio Lopez , Peter Maydell , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v2 3/3] hw/usb/xhci: Always expect 'dma' link property to be set Date: Thu, 19 Aug 2021 19:15:47 +0200 Message-Id: <20210819171547.2879725-4-philmd@redhat.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210819171547.2879725-1-philmd@redhat.com> References: <20210819171547.2879725-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: 1629393486238100001 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..642bf0d6811 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_fatal= ); 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 71f6629ccde..a959943d856 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_f= atal); + object_property_set_link(OBJECT(dev), "dma", + OBJECT(pci_dma_memory_region(dev)), &error_fa= tal); 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