From owner-svn-src-all@freebsd.org Fri Aug 23 00:53:50 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 382F4D6878; Fri, 23 Aug 2019 00:53:50 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46F2vy0QqTz46Yx; Fri, 23 Aug 2019 00:53:50 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from freefall.freebsd.org (static-71-168-218-4.cmdnnj.fios.verizon.net [71.168.218.4]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) (Authenticated sender: jkim/mail) by smtp.freebsd.org (Postfix) with ESMTPSA id CF533142E2; Fri, 23 Aug 2019 00:53:49 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Subject: Re: svn commit: r351406 - head/sys/dev/nvme To: Warner Losh , John Baldwin Cc: Warner Losh , src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201908222112.x7MLCpbt023647@repo.freebsd.org> From: Jung-uk Kim Autocrypt: addr=jkim@FreeBSD.org; prefer-encrypt=mutual; keydata= mQENBFJBztUBCAChqNyGqmFuNo0U7MBzsD+q/G6Cv0l7LGVrOAsgh34M8wIWhD+tztDWMVfn AhxNDd0ceCj2bYOe67sTQxAScEcbt2FfvPOLp9MEXb9qohZj172Gwkk7dnhOhZZKhVGVZKM4 NcsuBDUzgf4f3Vdzj4wg6WlqplnTZo8lPE4hZWvZHoFIyunPTJWenybeV1xnxK7JkUdSvQR0 fA59RfTTECMwTrSEfYGUnxIDBraxJ7Ecs/0hGQ7sljIj8WBvlRDU5fU1xfF35aw56T8POQRq F4E6RVJW3YGuTpSwgtGZOTfygcLRhAiq3dFC3JNLaTVTpM8PjOinJyt9AU6RoITGOKwDABEB AAG0Hkp1bmctdWsgS2ltIDxqa2ltQEZyZWVCU0Qub3JnPokBPQQTAQoAJwUCUkHO1QIbAwUJ E0/POwULCQgHAwUVCgkICwUWAgMBAAIeAQIXgAAKCRB8n5Ym/NvxRqyzB/wL7QtsIpeGfGIA ZPMtgXMucM3NWzomyQMln2j2efUkDKthzh9jBxgF53TjOr7imwIt0PT2k1bqctPrq5IRqnu9 mGroqaCLE3LG2/E3jEaao4k9PO6efwlioyivUo5NrqIQOQ4k3EAXw7d2y0Dk1VpTgdMrnUAB hj7lGlLqS4ydcrf24DdbCRGdEQwqd9DBeBgbWynxAJMgbZBhYVEyIHuQKkJ8qY0ibIPXXuF0 KYDeH0qUHtWV2K3srNyPtymUkBQD84Pl1GWRYx05XdUHDmnX0JV3lg0BfYJZgZv0ehPQrMfY Fd9abTkf9FHQYz1JtsC8wUuRgqElRd6+YAGf8Tt9uQENBFJBztUBCADLtSrP44El2VoJmH14 OFrlOgxzZnbn+Y/Gf1k12mJBiR+A+pBeRLD50p7AiTrjHRxO3cHcl9Dh0uf1VSbXgp8Or0ye iP/86fZPd4k5HXNmDTLL0HecPE08SCqGZ0W8vllQrokB1QxxRUB+fFMPJyMCjDAZ7P9fFTOS dTw1bJSTtOD8Sx8MpZUa9ti06bXFlVYDlaqSdgk181SSx+ZbSKkQR8CIMARlHwiLsa3Z9q9O EJr20HPyxe0AlTvwvFndH61hg7ds63eRvglwRnNON28VXO/lvKXq7Br/CiiyhFdKfINIx2Z5 htYq22tgGTW7mBURbIKoECFBTX9Lv6BXz6w9ABEBAAGJASUEGAEKAA8FAlJBztUCGwwFCRNP zzsACgkQfJ+WJvzb8UZcJQf+IsTCxUEqY7W/pT84sMg5/QD3s6ufTRncvq14fEOxCNq1Rf4Q 9P+tOFa8GZfKDGB2BFGIrW7uT5mlmKdK1vO6ZIA930y5kUsnCmBUEBJkE2ciSQk01aB/1o62 Q3Gk/F6BwtNY9OXiqF7AcAo+K/BMIaqb26QKeh+IIgK1NN9dQiq3ByTbl4zpGZa6MmsnnRTu mzGKt2nkz7vBzH6+hZp1OzGZikgjjhYWVFoJo1dvf/rv4obs0ZJEqFPQs/1Qa1dbkKBv6odB XJpPH0ssOluTY24d1XxTiKTwmWvHeQkOKRAIfD7VTtF4TesoZYkf7hsh3e3VwXhptSLFnEOi WwYofg== Message-ID: Date: Thu, 22 Aug 2019 20:53:49 -0400 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:68.0) Gecko/20100101 Thunderbird/68.0 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/mixed; boundary="------------A5AC9B068D6157EF15B1EC8F" Content-Language: en-US X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 23 Aug 2019 00:53:50 -0000 This is a multi-part message in MIME format. --------------A5AC9B068D6157EF15B1EC8F Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit On 19. 8. 22., Warner Losh wrote: > On Thu, Aug 22, 2019, 3:27 PM John Baldwin > wrote: > > On 8/22/19 2:12 PM, Warner Losh wrote: > > Author: imp > > Date: Thu Aug 22 21:12:51 2019 > > New Revision: 351406 > > URL: https://svnweb.freebsd.org/changeset/base/351406 > > > > Log: > >   We need to define version 1 of nvme, not nvme_foo. Otherwise nvd > won't > >   load and people who pull in nvme/nvd from modules can't load nvd.ko > >   since it depends on nvme, not nvme_foo. The duplicate doesn't matter > >   since kldxref properly handles that case. > > I would perhaps have put the MODULE_VERSION for nvme and its dependency > on cam into nvme.c instead of duplicating it.  I think that is more > consistent > with what we have done elsewhere in the tree. > > > That can't be true. Doing that doesn't work. We wind up dereferencing > freed memory, as we discussed on IRC. Each DRIVER_MODULE needs its own > MODULE_VERSION given the current code. I'd call that a bug, but not one > I could dig into today... FYI, the attached patch works for me. Jung-uk Kim --------------A5AC9B068D6157EF15B1EC8F Content-Type: text/x-patch; charset=UTF-8; name="nvme.diff" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="nvme.diff" Index: sys/dev/nvme/nvme.c =================================================================== --- sys/dev/nvme/nvme.c (revision 351406) +++ sys/dev/nvme/nvme.c (working copy) @@ -57,6 +57,9 @@ MALLOC_DEFINE(M_NVME, "nvme", "nvme(4) memory allo devclass_t nvme_devclass; +MODULE_VERSION(nvme, 1); +MODULE_DEPEND(nvme, cam, 1, 1, 1); + static void nvme_init(void) { Index: sys/dev/nvme/nvme_ahci.c =================================================================== --- sys/dev/nvme/nvme_ahci.c (revision 351406) +++ sys/dev/nvme/nvme_ahci.c (working copy) @@ -54,9 +54,9 @@ static driver_t nvme_ahci_driver = { sizeof(struct nvme_controller), }; -DRIVER_MODULE(nvme, ahci, nvme_ahci_driver, nvme_devclass, NULL, 0); -MODULE_VERSION(nvme, 1); -MODULE_DEPEND(nvme, cam, 1, 1, 1); +DRIVER_MODULE(nvme_ahci, ahci, nvme_ahci_driver, nvme_devclass, NULL, 0); +MODULE_VERSION(nvme_ahci, 1); +MODULE_DEPEND(nvme_ahci, nvme, 1, 1, 1); static int nvme_ahci_probe (device_t device) Index: sys/dev/nvme/nvme_pci.c =================================================================== --- sys/dev/nvme/nvme_pci.c (revision 351406) +++ sys/dev/nvme/nvme_pci.c (working copy) @@ -61,9 +61,9 @@ static driver_t nvme_pci_driver = { sizeof(struct nvme_controller), }; -DRIVER_MODULE(nvme, pci, nvme_pci_driver, nvme_devclass, NULL, 0); -MODULE_VERSION(nvme, 1); -MODULE_DEPEND(nvme, cam, 1, 1, 1); +DRIVER_MODULE(nvme_pci, pci, nvme_pci_driver, nvme_devclass, NULL, 0); +MODULE_VERSION(nvme_pci, 1); +MODULE_DEPEND(nvme_pci, nvme, 1, 1, 1); static struct _pcsid { --------------A5AC9B068D6157EF15B1EC8F--