From nobody Mon Mar 10 17:35:45 2025 X-Original-To: dev-commits-src-main@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 4ZBPDy4c8yz5r7Hj; Mon, 10 Mar 2025 17:35:46 +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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZBPDy1KLyz3TYw; Mon, 10 Mar 2025 17:35:46 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741628146; 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=7lQm9SXYQjaK+De0lOYIneYgXRvsCv9o00uKE/WP3MI=; b=tBWKX1yYYkRAlVZQN8bUtpjiusfU3WjuzpfAPeMstjVJX5cP/I9Tth6AfHbAYGv5aY55HW KSDK0fzYeSgx7gcY46+i72HbbujYZnYSG6mgDwDJSuDmomR9qaogoGNdBLHrVwlaz9wU47 fAZclqN67k+9M1t3A35WhTfjt4nqzBWcpisHBsY5OhM4QuEa13t+NOihf/hi9MHbF1Csug jF4cOkMBkCrlp36I0wtHecHaOAZlPjek/rD6UXcKifkIdypJduwG9XGK4OwDzLqTKtlkOL BrdrGAFn3kJS5icVv9S92lNAnVOjQ/dJ5hJKxpwjBbIiqpPqtI0ZD+/u280QEg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741628146; a=rsa-sha256; cv=none; b=fNqh5bIU3OAMoquOdFVSzVQSWSjWBMfoV6ShdIln/2NtLBCrQXj0YTph3XGfL5UhA6rO8Q O99REqk6uwfSTKBJMVkstrZhjM6vhlF0mqmL1UYIKY92vvX99HpMet/F3r27QxWrc3J56e fsU7KjVoYjvbdJP7KTfm2ShE3WPqPm6z4A/7kram/FEt1euX8zz1pNYqaJipmxhqOsbcfK 25T3A93DNGFMoN2auQZz0+EWflckLknYTlFq39GSrVbD2J4PU0w/1SS47cC7w03uqsEOBP Z8Moy5tK4gArSGSUA7aBBxuczd6/gLZrq+gLOr41SfjiW/cnSpjzVjOe0NOZOQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741628146; 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=7lQm9SXYQjaK+De0lOYIneYgXRvsCv9o00uKE/WP3MI=; b=Cmmm0f8qTYIPJLouIvHdvvVv/+jXyV0rtp6h/lRPbXZ+qI7sIDi+YceR1EDw8pqm/T8J5j T2QrZmJb75cRgkx8Qn2TxZ2v05kA/tEbxGUgJAyr8zXbuMHvTGnWleQoyC583eaIs96BBO SPXLdd3gw1rw7GPYfneNNyOhRf4eh5a3TmoRdiuFXOLAURYmOJH238AHaVXLTK1O2QF/iv ZJqltcUPCGIEGbgdVTLLyg7NpQAWQV3gL4sj5jm+lPp+JooryONZvQwAygnh2nPW2P0Ykj 4uCJqyBvjOEjwHHpZYuovHzo4g/wFNOkPD2dd909VLK9fIQZO/sfoiIFW0OMAw== 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 4ZBPDy0gZXzpyV; Mon, 10 Mar 2025 17:35:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 52AHZjlE027247; Mon, 10 Mar 2025 17:35:45 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 52AHZjkX027244; Mon, 10 Mar 2025 17:35:45 GMT (envelope-from git) Date: Mon, 10 Mar 2025 17:35:45 GMT Message-Id: <202503101735.52AHZjkX027244@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: John Baldwin Subject: git: b8b5cc330490 - main - new-bus: Use M_WAITOK in more places List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhb X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: b8b5cc330490810fc28621ac16d8147d9c53c276 Auto-Submitted: auto-generated The branch main has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=b8b5cc330490810fc28621ac16d8147d9c53c276 commit b8b5cc330490810fc28621ac16d8147d9c53c276 Author: John Baldwin AuthorDate: 2025-03-10 17:35:21 +0000 Commit: John Baldwin CommitDate: 2025-03-10 17:35:21 +0000 new-bus: Use M_WAITOK in more places M_NOWAIT is now only used for devclass_get_devices, devclass_get_drivers, and device_get_children. Other functions are generally called from sleepable contexts such as module event handlers, attach/detach routines, and the ioctl handler for /dev/devctl2. Suggested by: mjg (devclass_add_device) Differential Revision: https://reviews.freebsd.org/D49274 --- sys/kern/subr_bus.c | 31 +++++++------------------------ 1 file changed, 7 insertions(+), 24 deletions(-) diff --git a/sys/kern/subr_bus.c b/sys/kern/subr_bus.c index 63de61262554..1cbb91634d43 100644 --- a/sys/kern/subr_bus.c +++ b/sys/kern/subr_bus.c @@ -575,9 +575,7 @@ devclass_find_internal(const char *classname, const char *parentname, if (create && !dc) { PDEBUG(("creating %s", classname)); dc = malloc(sizeof(struct devclass) + strlen(classname) + 1, - M_BUS, M_NOWAIT | M_ZERO); - if (!dc) - return (NULL); + M_BUS, M_WAITOK | M_ZERO); dc->parent = NULL; dc->name = (char*) (dc + 1); strcpy(dc->name, classname); @@ -711,9 +709,7 @@ devclass_add_driver(devclass_t dc, driver_t *driver, int pass, devclass_t *dcp) if (pass <= BUS_PASS_ROOT) return (EINVAL); - dl = malloc(sizeof *dl, M_BUS, M_NOWAIT|M_ZERO); - if (!dl) - return (ENOMEM); + dl = malloc(sizeof *dl, M_BUS, M_WAITOK|M_ZERO); /* * Compile the driver's methods. Also increase the reference count @@ -1306,9 +1302,7 @@ devclass_add_device(devclass_t dc, device_t dev) buflen = snprintf(NULL, 0, "%s%d$", dc->name, INT_MAX); if (buflen < 0) return (ENOMEM); - dev->nameunit = malloc(buflen, M_BUS, M_NOWAIT|M_ZERO); - if (!dev->nameunit) - return (ENOMEM); + dev->nameunit = malloc(buflen, M_BUS, M_WAITOK|M_ZERO); if ((error = devclass_alloc_unit(dc, dev, &dev->unit)) != 0) { free(dev->nameunit, M_BUS); @@ -1385,10 +1379,7 @@ make_device(device_t parent, const char *name, int unit) dc = NULL; } - dev = malloc(sizeof(*dev), M_BUS, M_NOWAIT|M_ZERO); - if (!dev) - return (NULL); - + dev = malloc(sizeof(*dev), M_BUS, M_WAITOK|M_ZERO); dev->parent = parent; TAILQ_INIT(&dev->children); kobj_init((kobj_t) dev, &null_class); @@ -2116,7 +2107,7 @@ device_set_desc_copy(device_t dev, const char *desc) { char *buf; - buf = strdup_flags(desc, M_BUS, M_NOWAIT); + buf = strdup_flags(desc, M_BUS, M_WAITOK); device_set_desc_internal(dev, buf, true); } @@ -2476,13 +2467,7 @@ device_set_driver(device_t dev, driver_t *driver) else policy = DOMAINSET_RR(); dev->softc = malloc_domainset(driver->size, M_BUS_SC, - policy, M_NOWAIT | M_ZERO); - if (!dev->softc) { - kobj_delete((kobj_t) dev, NULL); - kobj_init((kobj_t) dev, &null_class); - dev->driver = NULL; - return (ENOMEM); - } + policy, M_WAITOK | M_ZERO); } } else { kobj_init((kobj_t) dev, &null_class); @@ -2935,9 +2920,7 @@ resource_list_add(struct resource_list *rl, int type, int rid, rle = resource_list_find(rl, type, rid); if (!rle) { rle = malloc(sizeof(struct resource_list_entry), M_BUS, - M_NOWAIT); - if (!rle) - panic("resource_list_add: can't record entry"); + M_WAITOK); STAILQ_INSERT_TAIL(rl, rle, link); rle->type = type; rle->rid = rid;