From nobody Wed Mar 30 15:49:39 2022 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 598741A53EE9; Wed, 30 Mar 2022 15:49:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4KT9q76Vy9z3kFV; Wed, 30 Mar 2022 15:49:39 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1648655380; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=eZqU/4fk6tYPik7GLuqrLQyKaM22epSg9I8Iixxg/zI=; b=ha10CpTH5wv9zN1jBLn6+I3yb8zPLFGNt82XZLTcTJq7lMKUOg6KPf5cRD5XdfDRQtscaJ xdD4nkRDDIqmOv0WMlgHOp472S3zAzpeOE6RieOgY97D03S+ZQ9hC3sYTCPFQ+f9gbIqKc mHKV0S6OWTQNe/txyXUYA2eX4CFX/hHePEtYzAefXPXG5g6uHX4U5hm6OQPyVrvu9drh6P kFt588MdzaO9pE95tV8/3L87m9WzjqLhko8O6P01TFehwbVQjq0g1gO8P+qiIAasNs3q9r SyMQqXOdaXyAgc3FET0fpSoH/qKtBLWdI43ss7lxsfKS+pbAbK5EQbJe/J8sKg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8959516116; Wed, 30 Mar 2022 15:49:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 22UFnd70019156; Wed, 30 Mar 2022 15:49:39 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 22UFndbO019155; Wed, 30 Mar 2022 15:49:39 GMT (envelope-from git) Date: Wed, 30 Mar 2022 15:49:39 GMT Message-Id: <202203301549.22UFndbO019155@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: c325d9edeff5 - releng/13.1 - LinuxKPI: allow a driver to override the default pci probe result List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/releng/13.1 X-Git-Reftype: branch X-Git-Commit: c325d9edeff568d3d38891b2916bd5bd0e9bf8e3 Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1648655380; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=eZqU/4fk6tYPik7GLuqrLQyKaM22epSg9I8Iixxg/zI=; b=fi6Tet+UeQ7W6UW7Jaz9nscV/8nVqAL1pd1A0fZl3HlYOPu07rEfIIfoEq0zRPfLftTKPD qbt1SouJVZ5F6o7iYaM5z6zHylmLWsBMh/fl1e2KI3DzOLL0Qi3xk7flkrUGfjOOhoLA9D F+vHXwVl5n/mV9+FG2Arx2CUtHyC3dMU+veXbcagXVK0jqUYaOhdJ+JQpu60IQ7tn95Z2W Skm9W0Sytd5CITnKM0XkFs03Qiqa9dPd4Je27w1H2RHh+f4zN7kiUG1ukySb5tgnCEfg96 APu2S3SRjtWv207A1XPWmFCFX1pkMo1uL8veaFYVfASEs2x+gkk3QT8420xl4w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1648655380; a=rsa-sha256; cv=none; b=cB6hrhZSOGB3+P2P2sSnmSm3G2HGSoQ6U4Iu6Y4Ao+4Unpis/Mfn9kvXkSj049tS7mZ1tb 8GtweTgg2FipNEIPcKvnboXXec7fZISZmtd2OSiyLlqZOF5Z6Ae4INi8sEZTyZlsQrKOkn UtvR3/2XFuL55OI2KZFxxEc0tNEeNNR1+DBPVqq83zEY2Wfdx9le1w/JO7NBnxBJ4aTV50 338E6uGG/FJJIJmPbAn1JEFHFHjGO29m0GUREP5QOTBb8wxiNzDKpHsTPNiSjIZS7hVzSx YKqYgGd838J8EMxRFfVZlNwCpLujnkANLVGTPWB+aJWnmOZxzFxDx8B1PVGtug== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch releng/13.1 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=c325d9edeff568d3d38891b2916bd5bd0e9bf8e3 commit c325d9edeff568d3d38891b2916bd5bd0e9bf8e3 Author: Bjoern A. Zeeb AuthorDate: 2022-02-18 21:58:01 +0000 Commit: Bjoern A. Zeeb CommitDate: 2022-03-30 15:45:45 +0000 LinuxKPI: allow a driver to override the default pci probe result Add bsd_probe_return which a driver can set in their 'struct pci_driver' definition to set a driver-sepcific LinuxKPI pci return value. This is helpful in case of multiple drivers with overlapping IDs, such as iwlwifi(4) and iwm(4). Contrary to an earlier version we now assume 0 is not BUS_PROBE_SPECIFIC (which no driver should really return these days) but the bss initialized value (bsd_probe_return unset) and we will return BUS_PROBE_DEFAULT. Approved by: re (gjb) Suggested by: jhb Reviewed by: jhb Reviewed by: hselasky, imp (earlier versions) Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D33915 (cherry picked from commit b91dd79ba32122e6adb28073c534224bc78a7b58) (cherry picked from commit 3166cea632449ce6c6dad699a812b9813a9531ef) --- sys/compat/linuxkpi/common/include/linux/pci.h | 1 + sys/compat/linuxkpi/common/src/linux_pci.c | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/sys/compat/linuxkpi/common/include/linux/pci.h b/sys/compat/linuxkpi/common/include/linux/pci.h index f463f697b5f7..df18c98a6278 100644 --- a/sys/compat/linuxkpi/common/include/linux/pci.h +++ b/sys/compat/linuxkpi/common/include/linux/pci.h @@ -215,6 +215,7 @@ struct pci_driver { void (*bsd_iov_uninit)(device_t dev); int (*bsd_iov_add_vf)(device_t dev, uint16_t vfnum, const nvlist_t *vf_config); + int bsd_probe_return; }; struct pci_bus { diff --git a/sys/compat/linuxkpi/common/src/linux_pci.c b/sys/compat/linuxkpi/common/src/linux_pci.c index 06feb5107ea5..ccb52732391e 100644 --- a/sys/compat/linuxkpi/common/src/linux_pci.c +++ b/sys/compat/linuxkpi/common/src/linux_pci.c @@ -361,7 +361,12 @@ linux_pci_probe(device_t dev) if (device_get_driver(dev) != &pdrv->bsddriver) return (ENXIO); device_set_desc(dev, pdrv->name); - return (BUS_PROBE_DEFAULT); + + /* Assume BSS initialized (should never return BUS_PROBE_SPECIFIC). */ + if (pdrv->bsd_probe_return == 0) + return (BUS_PROBE_DEFAULT); + else + return (pdrv->bsd_probe_return); } static int