From owner-freebsd-drivers@freebsd.org Thu Nov 19 23:24:21 2020 Return-Path: Delivered-To: freebsd-drivers@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 1BC4B477090 for ; Thu, 19 Nov 2020 23:24:21 +0000 (UTC) (envelope-from stephen.wall@redcom.com) Received: from GCC02-BL0-obe.outbound.protection.outlook.com (mail-bl0gcc02on20617.outbound.protection.outlook.com [IPv6:2a01:111:f400:7d05::617]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mail.protection.outlook.com", Issuer "GlobalSign Organization Validation CA - SHA256 - G3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4CcbNg2XVhz3mgn for ; Thu, 19 Nov 2020 23:24:18 +0000 (UTC) (envelope-from stephen.wall@redcom.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GV2oYjae/YVeo7aBWnXd5fzyv/vSzJHWbFUxdxFJxSR8tBj2JQ7HpCnvQRR7o5fV6gWo+LRG0/4VwShmo2YUeYKnn0kJqZ+vClJrgg4YEOnWtEejIFHQzCD0VuAhRnDwuyaNszlsvxcw6IQmqluJoyLwwYHXYtNx/Nt+OxYJ8G2zJ7m42uxY5myBalzXVpvdyv6r8gFIz80lqx2xR+fU34VV2FC1OG0/StBrzY+oI0OD7sI3T6Z4g17jaCX76bFHZtPDmV9h4FEApzkFtkl7vOR6y7s02zIPaIg4NHk26LPlSEq1dpbIyR2+8/NCBw3QHNdFBpWKpGtS6jiwRFXh6A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=wvSH/mdcDnbmePy+5cFTJY2HCLhlSdF/r8YlU1Wpq/o=; b=nZHip0kgQyERC2ugBxPKjvCWeRDhCqyNSo/DM0R4OypQZdqL4SUxThAAt7taioLSaW1aSwzpyH1kuNFQLrKrUZRl+XMdYb5gvUzeH0IrnRnWpye0aklCR8XoDmBl1wMcU2TpMtWXVGvpvhsD40awEqP2vC1QWPiXh2CR8xjProtskHTQkqoKLDlIBpan3msCtpDKnXJ/9jRhhcXUO+sVfoTPAkQNeuiD9KhC6zkog/NPztn1oatBkaDl48o84xwDd+z903nRnObpH2wFPc5UdNGJUBkxebRxqtv309IC0+oKo4RU9GihxKfebFSNM2/dmOVkMlPHm0DUKpNK7GS3ng== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=redcom.com; dmarc=pass action=none header.from=redcom.com; dkim=pass header.d=redcom.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redcomlaboratories.onmicrosoft.com; s=selector1-redcomlaboratories-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=wvSH/mdcDnbmePy+5cFTJY2HCLhlSdF/r8YlU1Wpq/o=; b=yvkJSsMZikaowC2PBNuLgx+FIhwLHL2wO/KHdNn6Fkqg3CflFBwts+7CNcbnRBQ4z6vs0EkVp9Pm6vse0+YK4h5/RJdMEKUSPGT4z/H+Pv1U7ndujdrriW8fyFk0vifWzq/543X2rjVZWT9f+hfN3pbPHSPnvDrnWuKE3QCzizTsHA9wVzdmgEaXe3z3k2HXT9q33ofnoinY2bg3UbA2JNXa7ITtk+ocx4M1KBuOiotmUoW3I1hPc4EBo7AEHr+fxef4G/dgJqL3hF7W0bDad4pFf7mjfjY7Tkse07BH1CjU9QS0EVzmJiIqDt302v8Q0mqi8yCyQ5rgjTdiV5EYGA== Received: from DM6PR09MB4807.namprd09.prod.outlook.com (2603:10b6:5:260::13) by DM6PR09MB4741.namprd09.prod.outlook.com (2603:10b6:5:273::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3589.22; Thu, 19 Nov 2020 23:24:14 +0000 Received: from DM6PR09MB4807.namprd09.prod.outlook.com ([fe80::99d0:95e:6de8:d647]) by DM6PR09MB4807.namprd09.prod.outlook.com ([fe80::99d0:95e:6de8:d647%7]) with mapi id 15.20.3589.022; Thu, 19 Nov 2020 23:24:14 +0000 From: "Wall, Stephen" To: "freebsd-drivers@freebsd.org" Subject: bug in sound driver? Thread-Topic: bug in sound driver? Thread-Index: AQHWvsjVAlIP7bglNky9qijwCpmKSQ== Date: Thu, 19 Nov 2020 23:24:13 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-originating-ip: [50.48.157.2] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: b4f8dea4-8a0e-4aa1-4142-08d88ce23a49 x-ms-traffictypediagnostic: DM6PR09MB4741: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 2KNzvHLfuSe2aAwXQQCd0Hfcdf6S9yPSdVhJnR7AKDl3AuiZRcCV1LMxZlmYx7g3ljGU/dGC+oIUobePvEfDf41tNpwf+Ua4IOO6yUZ5by+6Q3qU71CCNUh84BMnrMtedM60Sk8ixDpkq/yn+LWZvBgiXOZ1dH2kAybWig/pMFI0a5gWQCFJ2aYXkbWQIAzfpgyOdQOTc0BDOiP2wpAXnAMbM9dt19v07eGEo3DvvHlzNNVREZ4kXFyqyloZGUts7KEV+7wKb7ZvGq1wq6XSIT6aWyeSMM3UaOMkXpgbltFpa77hudikaYzfUovawesED0kL+umscnJgT9wJmWPp4VXp0rAbX5xLTuzKB3EFDNrw3cx9HHB54wvZ4QXTrvmHRSulSaxIqS60tESyQLNgLZScUipNWjQiCLUJY5I4sb/+fp/UV5Hg5EBAQZCdppvf069DbRsvpRJczX/dx6twAw== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR09MB4807.namprd09.prod.outlook.com; PTR:; CAT:NONE; SFS:(136003)(39840400004)(376002)(396003)(346002)(366004)(6916009)(83380400001)(7696005)(3480700007)(99936003)(9686003)(26005)(86362001)(186003)(6506007)(19627405001)(316002)(8676002)(8936002)(66946007)(66476007)(52536014)(478600001)(71200400001)(2906002)(5660300002)(76116006)(91956017)(66616009)(55016002)(33656002)(66446008)(64756008)(66556008)(21314003); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: gMFGbRDNXgeef0RECXhcL8sp0KrrFTo5JMci0SRm/zDRali8gT3Qj12hvjQ2B28RtOps5sFNDR0UrxcAkGADtugEvfZLpfoZix02t4JO4EcN7O9zk5y7Ab+eGhKl1K9QG3VKayCyeivsqGMEqG2HNlrmzYnrn8area4YYrdFUXyAKWQeroAQpYKbA8KHrQe2h6N9ySL5jLHd+odgFSOXynTYvcIHw3OcKN6JFkEn/G7JvYouzx0cHsGiUFhVQ8O+QLj1XYXPWFXteMGOi0LFTo9WEbaO9jsvU/Liu2+lSSLcgZlFVQ/i+7KxxivwRmoc3M+3UxypDqQEpmCJky+F8u0Bl56VUSschoTmWF/3SqBqXyHcqdCul8y85y0QTyCC1GunHUgyhGy3gXuivoc/JE1PTtGlwqwMG0ahgPYXDuhL9Z7GHVfdP/1yn/vgmVf8jKkdbxqRU7mr7XZRWjupuZ5thXAcV6D+7Hn6Sl1vyT7zXliSiplphoccCkvsIfiNgXH00lxqiFeHuBwb3RmSt+qsShM4GHKMIj8NZrXbLcGHslToUIxDTzldGJGqVo+TaOLR0H3zx9jKEKyV1SMH/Vp5BrKQs8cBRK22BQdO0dSrY7IuUHpGWNfNj0SWLe1809UNSSHWlpNkUYQwfLcBh8j5PUz3C/56Xe39s9ISFrFI4nous7t41q8Ep7EWcVGlrxS7V21dA/KtvJtKI9cfmY2zbNTNsUjlM9z31fV42VH78+Sr4NHVTgcQo0BVwdyxU+usXZvI2r4mHHrUcVuzMx1j0/rMPleZJqr7DerxO5ayo0RtIq6h0D3vdrfyR3ES197BVla1CKvQytsNSSSgwDvEGOwUjnfGkkXzvKhXEAojWm87Cz++plH8C3yMwFLcpF4w2tuslKBh9OSPyWGouw== x-ms-exchange-transport-forked: True MIME-Version: 1.0 X-OriginatorOrg: redcom.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR09MB4807.namprd09.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b4f8dea4-8a0e-4aa1-4142-08d88ce23a49 X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Nov 2020 23:24:13.9918 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 86200ba5-6348-4d6f-bdd7-96f43e8d9247 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: zg2jv/6HpfG2oie2lW+vf/qyeCD2k4XG/wxcNMOo17ukJXbA0YkqKXOBxFNDClTdRrY//aixtNxFA5tBHEHgCw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR09MB4741 X-Rspamd-Queue-Id: 4CcbNg2XVhz3mgn X-Spamd-Bar: --- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=redcomlaboratories.onmicrosoft.com header.s=selector1-redcomlaboratories-onmicrosoft-com header.b=yvkJSsMZ; arc=pass (microsoft.com:s=arcselector9901:i=1); dmarc=none; spf=pass (mx1.freebsd.org: domain of stephen.wall@redcom.com designates 2a01:111:f400:7d05::617 as permitted sender) smtp.mailfrom=stephen.wall@redcom.com X-Spamd-Result: default: False [-3.32 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; RBL_DBL_DONT_QUERY_IPS(0.00)[2a01:111:f400:7d05::617:from]; R_DKIM_ALLOW(-0.20)[redcomlaboratories.onmicrosoft.com:s=selector1-redcomlaboratories-onmicrosoft-com]; HAS_XOIP(0.00)[]; FROM_HAS_DN(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; R_SPF_ALLOW(-0.20)[+ip6:2a01:111:f400::/48]; MIME_GOOD(-0.10)[multipart/related,multipart/alternative,text/plain]; DMARC_NA(0.00)[redcom.com]; NEURAL_HAM_LONG(-1.00)[-1.000]; RCPT_COUNT_ONE(0.00)[1]; SPAMHAUS_ZRD(0.00)[2a01:111:f400:7d05::617:from:127.0.2.255]; RCVD_COUNT_THREE(0.00)[3]; DKIM_TRACE(0.00)[redcomlaboratories.onmicrosoft.com:+]; NEURAL_HAM_SHORT(-0.82)[-0.817]; TO_DN_EQ_ADDR_ALL(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:+,3:~,4:~]; SUBJECT_ENDS_QUESTION(1.00)[]; ASN(0.00)[asn:8075, ipnet:2a01:111:f000::/36, country:US]; RCVD_TLS_LAST(0.00)[]; MAILMAN_DEST(0.00)[freebsd-drivers]; ARC_ALLOW(-1.00)[microsoft.com:s=arcselector9901:i=1] Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.34 X-BeenThere: freebsd-drivers@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Writing device drivers for FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 19 Nov 2020 23:24:21 -0000 I am working on a driver that is a modified copy of the sound driver, and I= 've found something that might be a bug. In sys/dev/sound/pcm/dsp.c, the funcion dap_io_ops() (called by dsp_read() = and dsp_write()) calls getchns() to get pointers to the channel control str= uctures. getchns() also locks the mutexs on those channels. After calling getchns(), dsp_io_ops() checks to see if a NULL pointer was r= eturns, OR if channels flags field does not have CHN_F_BUSY set. If either= of those are true, it release Giant and exits. That's fine if the pointer= is NULL, since the lock wouldn't have happened but if the BUSY flag is not= set, then dsp_io_ops() (and dsp_read/write()) returns with the channel sti= ll locked. In my driver, I am seeing kernel panics in some situations with this messag= e as a result: Sleeping thread (tid xxx, pid yyy) owns a non-sleepable lock Is this a bug in the sound driver? Should it check these two conditions se= parately and call relchns() if it fails due to the BUSY flag? -- Stephen Wall Senior Staff Software Engineer 585.924.7550 [1600261365931] REDCOM Laboratories, Inc. One Redcom Center Victor, NY 14564-0995 www.redcom.com DUNS 09-166-5919 | CAGE 1U548 Woman Owned Small Business From owner-freebsd-drivers@freebsd.org Thu Nov 19 23:26:36 2020 Return-Path: Delivered-To: freebsd-drivers@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 74F2E477290 for ; Thu, 19 Nov 2020 23:26:36 +0000 (UTC) (envelope-from stephen.wall@redcom.com) Received: from GCC02-DM3-obe.outbound.protection.outlook.com (mail-dm3gcc02on2060.outbound.protection.outlook.com [40.107.91.60]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mail.protection.outlook.com", Issuer "GlobalSign Organization Validation CA - SHA256 - G3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4CcbRG4zdvz3mMN for ; Thu, 19 Nov 2020 23:26:34 +0000 (UTC) (envelope-from stephen.wall@redcom.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kMB019blkS11mysVmAWQ4iIllyV2Jz1rNdrB79VCP8s9l6Ph63GeJqbCYbU8t32FvgLXCZVIwFZSmgchGICqfyDS89H55itX3cnf8lYbfLkzNW22GDDcD1K1i2VvXoK80kafbdAWaZiwc4361a+FAFaXEgrqReI9D0jNJMZ7ud/cfORcJ94LtxDVRNNj6DJxBGcuGOth/m5pE1LvbMCnzixI06u9FaUXCoKrWPGkr2o5GxoZYC9VoEYwyH3F+NLFeuiNR09t/iOeXgA4m+sLmsrHFz4h13qFmj11LrmqfwWtJzu+8WSONrJFjt0Im6S1OYz7eE8j1JkczKoaMJW4lw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=tyKZcl09jVuWyxlJdKQELgh+YNp2dzVwlfjdw5GucRs=; b=BG1I2Gwfb4QsmDmTW/psjh9ads05y0p2nPPnMdZafrDCZuDkqpa+pqD1MbMQcddZtpN48Ey/f1B9TZnmp2kv0xq0jCs3IScsMiV4ZrRrKmh/CvWmY7Q5abs/CVnMDDcj9Zbo8NpmNtJL0oMBo6Ph6x195HVs0ctY6HGSrp6EOghfKzfUMNAOR87ytpgJNG1prwQOYXeug5WCosGXsMJKRNdwe9hsJsZK5g35SKUVWEFkMG8kXOtj0NkSpQn9scD2auOyaQlUYW1/rPYErBBKMrEPsEKUOV3GXQzovJcXivXUxhm9qj6Gd6L61StmYqTfFInkTDgO0u46O/n+JegNBw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=redcom.com; dmarc=pass action=none header.from=redcom.com; dkim=pass header.d=redcom.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redcomlaboratories.onmicrosoft.com; s=selector1-redcomlaboratories-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=tyKZcl09jVuWyxlJdKQELgh+YNp2dzVwlfjdw5GucRs=; b=CwRRaAV7k2s64JhdVJS5DaDri/KkeiuscZLka3rEFwXgEHdVp1jq68mC9Ms+HtTiVrgmSta2iUO/SUxnewxFa93L0m1ZS9PTCprbzzZQeGieXy++fxGQxT3+ZV16mSodSFLlAwZarcfV7UfQx51xufWA+WXiFGg7/33xgEOp+z9XXDI/kPftXRDbvjXdJImobGi13MJJHm0NtngoreiL4DJeDKl2VrO6gecn1tdkMJH8cAvR8Cbds5DJFwlVizu28ao/lZUoGi3j/NqbUf/269VDV6QKGLrw6AhBZQzjO5lCuLKKf+yfTK1tMQVC7SlAvsYugxRSvM79QiHuX4AVQg== Received: from DM6PR09MB4807.namprd09.prod.outlook.com (2603:10b6:5:260::13) by DM8PR09MB6022.namprd09.prod.outlook.com (2603:10b6:5:2f1::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3589.22; Thu, 19 Nov 2020 23:26:31 +0000 Received: from DM6PR09MB4807.namprd09.prod.outlook.com ([fe80::99d0:95e:6de8:d647]) by DM6PR09MB4807.namprd09.prod.outlook.com ([fe80::99d0:95e:6de8:d647%7]) with mapi id 15.20.3589.022; Thu, 19 Nov 2020 23:26:31 +0000 From: "Wall, Stephen" To: "freebsd-drivers@freebsd.org" Subject: Re: bug in sound driver? Thread-Topic: bug in sound driver? Thread-Index: AQHWvsjVAlIP7bglNky9qijwCpmKSanQGPCX Date: Thu, 19 Nov 2020 23:26:31 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [50.48.157.2] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: b41b7e0d-e87f-46ba-cb53-08d88ce28c34 x-ms-traffictypediagnostic: DM8PR09MB6022: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:3173; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 8eLPv2cxQqET4mc/Rq9LKNyGTAGvxVv4pfKbvot5BRBY/V0keZ68D2nnLJ9CG/xWJUPSlaymLZRnmJnE+HV2zcXStwtX/tMmNITDxGHBn/rLbbORHSbkYojIQjve19eczfpoby8mvkDpTmx9w7jwJPp0e5XA1pQG+We9S091KJf9LK1HEZfJUp33cFbMgmSX6M/Tjz5rlY6AVZaVzxtjcYPauTxJ3ajCTilMzJD5BMPugNQhKmW89DJqBg83RR8yQcjQ4HfU5QguLgcCyoinROd4f6XIDqHrQ6+dH1N8wdT7S8XbHQguslB4OjBhH22PLZqLMcvT9IE3l+55TTSPGA== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR09MB4807.namprd09.prod.outlook.com; PTR:; CAT:NONE; SFS:(136003)(39840400004)(376002)(396003)(346002)(366004)(6916009)(186003)(7696005)(3480700007)(9686003)(26005)(86362001)(6506007)(19627405001)(8676002)(316002)(8936002)(71200400001)(52536014)(478600001)(64756008)(5660300002)(2906002)(76116006)(91956017)(66946007)(558084003)(33656002)(55016002)(66476007)(2940100002)(66446008)(66556008); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: xWSLiOANgC5KnztqQY/OUW9J99+n8OMaMeJzIA7xfp7NfQmCQAk3Gzj7nMZp0KyiUNXLczw2UKhvQ8KyzRHT+UZTMbOvNRR9NF/59MaV8mbrmEN/5nYStuZEYWg49+HTnwSNpnWXXfEnLPrNzhhzQ3hyvmkzYIxwrMQSWtbmFWeYwyrCy7/i3aKrDdFWtuMAOyXI+1giWZ4Ci8ttbd+K02687oPl9y5xKNwnMsXRJ/67TbnhLvPp3k3KDrhVhhoAjOuJqNswTZX3cD8HJ6rZ5B51TAK/rcze+YTNuQIm+y1+9Mr5CQUjFusZaS12ERMUE0L94p2vbtJSl+q8GSWrSpe1CwGUGnrCSlgBxGxtgLPv/3ixP+aOLHNWDPCsbLlpDDPs5eLe5Fv9rB5aKXp2Ohak/YYRFnPWeeKdQ8j/ygAZZ2Wp7y/k2TayYlhKHRulj2vzR1cYgzcVheCg72Z+Mikw7rwpvCeMvMEB8ywZpMPmSyA5MGBaSvTAQrg3brMVLyHvrGz69D/AIYT2MgNPp+aYsZ5DCfkISwDqpzXx2h2Sg92S9EIKr5z50V06hh0A68Bn6ovnuqoKQo41c4EVqNJZVdNQrvj0GE4wFaHJl3p3tg2HiMAvO6I80vU+6ZDArR459l6vYdoJ2czs2jxDJ0BbCcaNllOdFQUBQpiG2XUgQQ7hWVvcohSfJZ99+t0dR3jdB7MncMafsSdBLC44RSQcGSu+GMp2Od5XTdHTM21X5PnD1bSPt1R0Czf3bZja7mB3dVJ7flXQxSQ2yvH9i+WalDUKTnGB/jcQG8OaXHVSdKrxMS0xHNub/eiKcXH7J2vDxEoyjw+dkY0YPojiP4dxQrfXVR3kyW9m9ypMjgkcIxoicws5j5PuzyEyIjODUVrCxu2lCvy2pDWP83ikPw== x-ms-exchange-transport-forked: True MIME-Version: 1.0 X-OriginatorOrg: redcom.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR09MB4807.namprd09.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b41b7e0d-e87f-46ba-cb53-08d88ce28c34 X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Nov 2020 23:26:31.4985 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 86200ba5-6348-4d6f-bdd7-96f43e8d9247 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 7T7wCh1WoQFSdnW0XlwwXLLNMP+xKLmSIJM8RoAVRdJ1ivWzHUDfA1ZtuP65FJSihzNRrjkw1S40/Ih160xfqw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM8PR09MB6022 X-Rspamd-Queue-Id: 4CcbRG4zdvz3mMN X-Spamd-Bar: --- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=redcomlaboratories.onmicrosoft.com header.s=selector1-redcomlaboratories-onmicrosoft-com header.b=CwRRaAV7; arc=pass (microsoft.com:s=arcselector9901:i=1); dmarc=none; spf=pass (mx1.freebsd.org: domain of stephen.wall@redcom.com designates 40.107.91.60 as permitted sender) smtp.mailfrom=stephen.wall@redcom.com X-Spamd-Result: default: False [-3.49 / 15.00]; RCVD_TLS_LAST(0.00)[]; RBL_DBL_DONT_QUERY_IPS(0.00)[40.107.91.60:from]; R_DKIM_ALLOW(-0.20)[redcomlaboratories.onmicrosoft.com:s=selector1-redcomlaboratories-onmicrosoft-com]; HAS_XOIP(0.00)[]; FROM_HAS_DN(0.00)[]; R_SPF_ALLOW(-0.20)[+ip4:40.107.0.0/16:c]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; DMARC_NA(0.00)[redcom.com]; NEURAL_HAM_LONG(-1.00)[-1.000]; RCPT_COUNT_ONE(0.00)[1]; SPAMHAUS_ZRD(0.00)[40.107.91.60:from:127.0.2.255]; RCVD_COUNT_THREE(0.00)[3]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; DKIM_TRACE(0.00)[redcomlaboratories.onmicrosoft.com:+]; NEURAL_HAM_SHORT(-0.99)[-0.990]; RCVD_IN_DNSWL_NONE(0.00)[40.107.91.60:from]; TO_DN_EQ_ADDR_ALL(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:~]; SUBJECT_ENDS_QUESTION(1.00)[]; ASN(0.00)[asn:8075, ipnet:40.104.0.0/14, country:US]; ARC_ALLOW(-1.00)[microsoft.com:s=arcselector9901:i=1]; MAILMAN_DEST(0.00)[freebsd-drivers]; RWL_MAILSPIKE_POSSIBLE(0.00)[40.107.91.60:from] Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.34 X-BeenThere: freebsd-drivers@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Writing device drivers for FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 19 Nov 2020 23:26:36 -0000 > In sys/dev/sound/pcm/dsp.c, the funcion dap_io_ops() (called by dsp_read(= ) and dsp_write()) Sorry, 'dsp_io_ops()' From owner-freebsd-drivers@freebsd.org Fri Nov 20 11:34:41 2020 Return-Path: Delivered-To: freebsd-drivers@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 87DED2C6DCB for ; Fri, 20 Nov 2020 11:34:41 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::1]) (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 mx1.freebsd.org (Postfix) with ESMTPS id 4CcvbM4Dgqz3FMW for ; Fri, 20 Nov 2020 11:34:39 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from tom.home (kib@localhost [127.0.0.1]) by kib.kiev.ua (8.16.1/8.16.1) with ESMTPS id 0AKBYURf017450 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO); Fri, 20 Nov 2020 13:34:34 +0200 (EET) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.10.3 kib.kiev.ua 0AKBYURf017450 Received: (from kostik@localhost) by tom.home (8.16.1/8.16.1/Submit) id 0AKBYUbr017447; Fri, 20 Nov 2020 13:34:30 +0200 (EET) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Fri, 20 Nov 2020 13:34:30 +0200 From: Konstantin Belousov To: "Wall, Stephen" Cc: "freebsd-drivers@freebsd.org" Subject: Re: bug in sound driver? Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED,BAYES_00, DKIM_ADSP_CUSTOM_MED,FORGED_GMAIL_RCVD,FREEMAIL_FROM, NML_ADSP_CUSTOM_MED autolearn=no autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on tom.home X-Rspamd-Queue-Id: 4CcvbM4Dgqz3FMW X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=fail reason="No valid SPF, No valid DKIM" header.from=gmail.com (policy=none); spf=softfail (mx1.freebsd.org: 2001:470:d5e7:1::1 is neither permitted nor denied by domain of kostikbel@gmail.com) smtp.mailfrom=kostikbel@gmail.com X-Spamd-Result: default: False [-1.61 / 15.00]; ARC_NA(0.00)[]; FREEMAIL_ENVFROM(0.00)[gmail.com]; DMARC_POLICY_SOFTFAIL(0.10)[gmail.com : No valid SPF, No valid DKIM,none]; TO_DN_EQ_ADDR_SOME(0.00)[]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; FREEMAIL_FROM(0.00)[gmail.com]; RCVD_TLS_ALL(0.00)[]; MIME_GOOD(-0.10)[text/plain]; HAS_XAW(0.00)[]; RBL_DBL_DONT_QUERY_IPS(0.00)[2001:470:d5e7:1::1:from]; R_SPF_SOFTFAIL(0.00)[~all:c]; SPAMHAUS_ZRD(0.00)[2001:470:d5e7:1::1:from:127.0.2.255]; TO_MATCH_ENVRCPT_SOME(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; RCPT_COUNT_TWO(0.00)[2]; NEURAL_HAM_SHORT(-0.61)[-0.606]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:6939, ipnet:2001:470::/32, country:US]; SUBJECT_ENDS_QUESTION(1.00)[]; MAILMAN_DEST(0.00)[freebsd-drivers]; RCVD_COUNT_TWO(0.00)[2] X-BeenThere: freebsd-drivers@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Writing device drivers for FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 20 Nov 2020 11:34:41 -0000 On Thu, Nov 19, 2020 at 11:24:13PM +0000, Wall, Stephen wrote: > I am working on a driver that is a modified copy of the sound driver, and I've found something that might be a bug. > > In sys/dev/sound/pcm/dsp.c, the funcion dap_io_ops() (called by dsp_read() and dsp_write()) calls getchns() to get pointers to the channel control structures. getchns() also locks the mutexs on those channels. > > After calling getchns(), dsp_io_ops() checks to see if a NULL pointer was returns, OR if channels flags field does not have CHN_F_BUSY set. If either of those are true, it release Giant and exits. That's fine if the pointer is NULL, since the lock wouldn't have happened but if the BUSY flag is not set, then dsp_io_ops() (and dsp_read/write()) returns with the channel still locked. > > In my driver, I am seeing kernel panics in some situations with this message as a result: > Sleeping thread (tid xxx, pid yyy) owns a non-sleepable lock > > Is this a bug in the sound driver? Should it check these two conditions separately and call relchns() if it fails due to the BUSY flag? > I think you are right, please check that the following fixes the issue: diff --git a/sys/dev/sound/pcm/dsp.c b/sys/dev/sound/pcm/dsp.c index 4df035f99c8..0593a585b0f 100644 --- a/sys/dev/sound/pcm/dsp.c +++ b/sys/dev/sound/pcm/dsp.c @@ -857,6 +857,8 @@ dsp_io_ops(struct cdev *i_dev, struct uio *buf) getchns(i_dev, &rdch, &wrch, prio); if (*ch == NULL || !((*ch)->flags & CHN_F_BUSY)) { + if (rdch != NULL || wrch != NULL) + relchns(i_dev, rdch, wrch, prio); PCM_GIANT_EXIT(d); return (EBADF); } From owner-freebsd-drivers@freebsd.org Fri Nov 20 13:44:30 2020 Return-Path: Delivered-To: freebsd-drivers@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 781DC2EB4FB for ; Fri, 20 Nov 2020 13:44:30 +0000 (UTC) (envelope-from stephen.wall@redcom.com) Received: from GCC02-BL0-obe.outbound.protection.outlook.com (mail-bl2gcc02on2046.outbound.protection.outlook.com [40.107.89.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mail.protection.outlook.com", Issuer "GlobalSign Organization Validation CA - SHA256 - G3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4CcyT86xKnz3PD7 for ; Fri, 20 Nov 2020 13:44:28 +0000 (UTC) (envelope-from stephen.wall@redcom.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=C4/IEggIuUf8qws7tnnVc0K2y7lKOv2zHWNkscsGiYPx/WbIn187h8JP+UMs4yZu53+weoHpfbRYbvEZtNe6eT9Zw/ea76B2fhJMlzPpyI+xhCoSnLMmLrEH9beoUKuWptWd9VsclhYpgEJuOpzR0N8D4t/riuwx7qgPNQyLMJFq5Yx3CAi+E26sYsRzMsy0N+WJA/0DWpLz1EkMZWGDtdfCF2irlDmt37wWpNAXMSiBFuOhsQcB/HoLpSeT42jjZybP2xZP1MpdnWxENlrOfBSIidxsIf/HTzdj+zmYsXklfvUvwqVnxN1BrTdpO+l/zDFAk2lDDE5001tejQIksw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ZG0HSQcZ4oQpU3UuSrN9OTzkjGKBxkYRM9L34YiqAtw=; b=WAG3je/0E4lN9SAJSzxKyLGocQa7Sd1vanXnxfXqqoDRyv54PAhwyRRZaDuc/L2pKgbIRsUYXdSvaG4AykibR09ibMsrqrbnsc9zf4A0VRjAF0N+rACrDU56m+3/yEsVGd6ZQcv6hpO2v44aWJcuHJkjhfcJcnvRqjNKUpwHq/4mhDDfDo74gla9gzCOKGsnlbZj0cgR/SKzV9//piEpFjfJJBKAGGGnc3OWQsdQC00nFYWITHBzC4yZS61fvhuZiOF6peS5IsIgIs+hVPmlDVQwVyeJIL63wxW+DnAAF24i9wRhN+yLsYtKGZ7itMB2bZDDq0lKVnnKt59BxzigPQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=redcom.com; dmarc=pass action=none header.from=redcom.com; dkim=pass header.d=redcom.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redcomlaboratories.onmicrosoft.com; s=selector1-redcomlaboratories-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ZG0HSQcZ4oQpU3UuSrN9OTzkjGKBxkYRM9L34YiqAtw=; b=eBHBLVtBX0+r0gjJHpdqNMVMepB3aiVHX65F44QnhWLuHr5ws9G/u4PqGjyJ0hI3ed7BhqwwWtvvb0asUylT2BJnRx70Cl9V2dF4ODJ/KpjpJEp+zw+ODjRJNuwVheh/ZHsjExmI1ZNzcmvGy0EeAN0PZ69XGKNqenREJXF/EjlnY64V0kVl4xIcNOZtjQofAnQovHulKrF3E0wRDAgXQGgcM7494CstXzFP4PYO76ZuKEZlFDEt7V+1j0+aMXRDI7HHra2erDEQPi4EE9auCV2MP7V2uaD7o1M3GMmIzm/Nb7MduoobJm/VPPXxg91MG0Ny/7cnDHMLxnzQLtN77Q== Received: from DM6PR09MB4807.namprd09.prod.outlook.com (2603:10b6:5:260::13) by DM8PR09MB6839.namprd09.prod.outlook.com (2603:10b6:5:2e1::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3589.20; Fri, 20 Nov 2020 13:44:26 +0000 Received: from DM6PR09MB4807.namprd09.prod.outlook.com ([fe80::99d0:95e:6de8:d647]) by DM6PR09MB4807.namprd09.prod.outlook.com ([fe80::99d0:95e:6de8:d647%7]) with mapi id 15.20.3589.025; Fri, 20 Nov 2020 13:44:26 +0000 From: "Wall, Stephen" To: Konstantin Belousov CC: "freebsd-drivers@freebsd.org" Subject: Re: bug in sound driver? Thread-Topic: bug in sound driver? Thread-Index: AQHWvsjVAlIP7bglNky9qijwCpmKSanQ5KYAgAAZt4I= Date: Fri, 20 Nov 2020 13:44:26 +0000 Message-ID: References: , In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [50.48.157.2] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 31e1d3af-b44b-4454-9d5d-08d88d5a65b0 x-ms-traffictypediagnostic: DM8PR09MB6839: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:3968; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: jNpaZK55uEiiKYLW8wtZylg++BJz34IcDUf/qmOHvDUakpW0wnS+Pnu1AhTJtLlpbA0a/Z8xOE0PGhOJyrlfISlClXSig2GzG9CYItL11nc+juw0/Sfja+TNx9RBeGT1kXw+Qqy/n+FFeo5CT9d9fh2EJSDt5RkrdnPZutoVAbfYY1h2fikDn6SUEp7ZvNACiOKhwK2sX5pio4zABMTdX+ho1xUjkKcV41FDmva1kReKEMzst0Wo5lsulp1ozDpwmWJUbLv3BnteqDuodHhsAzY1lHHkdPe+5Hd8UACULFFpCwEfEwxUedEFz6xfEbg9 x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR09MB4807.namprd09.prod.outlook.com; PTR:; CAT:NONE; SFS:(346002)(396003)(366004)(376002)(136003)(39840400004)(186003)(91956017)(66946007)(76116006)(9686003)(83380400001)(316002)(478600001)(64756008)(55016002)(66476007)(66556008)(66446008)(3480700007)(53546011)(52536014)(6506007)(5660300002)(6916009)(7696005)(71200400001)(86362001)(4326008)(4744005)(8676002)(2906002)(26005)(19627405001)(33656002)(8936002); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: hbAIeKXtQrt2xGYDwLe45S2MdBU6jpTr4zE4ZtMsbLWpZhuPbysAukyUWa9XHfEU4VQ4/zdkq+u2B+NaZQFZOzXBn6HszZ47vylEO5tkHWWF16Mrg7lSkbUgxDzhQ5G5AxbHz+t55ZutIWempwrTUzt0bLsaE+FKBiL3KKNfPMsBmmHdk6Jze2pV4v4iGA4W0buWbOwu8EJsGCTRcagDs9OFyh19lcsLt+4uo7lSEjFsiokAvmENB+ADto8rjj1c8zzD3tEWENLRj9ItuZ1bVUW0UO/22rbeC/+BFabQkNEJ8Y5iBA8lBusJTRyCWpDPtt63RGViO/ooc1oQpRfB0pGn0V5Z0gjFiqENVqgP6B+u0uzAb8Witiyxfhmkon6FFvRRT7HLyNQNbBYQymwWN0HnW3LRy6wCaKt6EMkAs/Aiv2Kq24m7jf5iuiWqAsT2nvgKQstX1yZY2zKTM0T1rWwBu2EjjQp5moWsA+IJALM0+OB7nd6h6H7Qhu7KdsAjz1Cd8GzaQAJSH+PbwOgoJWdQQgiYsX5dV6mtIHCHAqaiOFWrS7xMVlMFsJVZHKI7qM5KYk5HS7YjQ7Konkt+MQ9n/w7tyg304VO2GXYzSCUIlngReW8Dra6W8YUGErieg/rO0xYQ2OcfRUl+5g5PRePKSCpHMDjcEGsf1lkI8OKcSmEszf1LO7JiLoxgXn6/T/0UJqYHl8r5H++hdPpCtMeGhXL1Ir3NeyIr9zK9dK0I4JIXWz2L5RhVoGiy9k8UtfhOFW1MoXnPcjrO0tjpTztCjhDCLf+fECBIXEWkBCK5YrS9M6s3GbRUiX8YMOfdEq18WAHCdToeYCUUhwVIGDz3jOpw6O4/TMOR+8f8DgAGY5Mp7WpAXn0uK3gULxOXguje5iELtX8XPkE5zr3vbQ== x-ms-exchange-transport-forked: True MIME-Version: 1.0 X-OriginatorOrg: redcom.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR09MB4807.namprd09.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 31e1d3af-b44b-4454-9d5d-08d88d5a65b0 X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Nov 2020 13:44:26.4874 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 86200ba5-6348-4d6f-bdd7-96f43e8d9247 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: +pENCPsBA7QVgtZkVsLbCIZ4NK8Nx+UDQ0Kk9hIvAC5rssbihAYa+XrkBJjDQIE+cbURFNDV2Ck7qbEhsgWxkg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM8PR09MB6839 X-Rspamd-Queue-Id: 4CcyT86xKnz3PD7 X-Spamd-Bar: --- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=redcomlaboratories.onmicrosoft.com header.s=selector1-redcomlaboratories-onmicrosoft-com header.b=eBHBLVtB; arc=pass (microsoft.com:s=arcselector9901:i=1); dmarc=none; spf=pass (mx1.freebsd.org: domain of stephen.wall@redcom.com designates 40.107.89.46 as permitted sender) smtp.mailfrom=stephen.wall@redcom.com X-Spamd-Result: default: False [-3.50 / 15.00]; TO_DN_EQ_ADDR_SOME(0.00)[]; HAS_XOIP(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip4:40.107.0.0/16]; RCVD_COUNT_THREE(0.00)[3]; DKIM_TRACE(0.00)[redcomlaboratories.onmicrosoft.com:+]; RCPT_COUNT_TWO(0.00)[2]; NEURAL_HAM_SHORT(-1.00)[-1.000]; FREEMAIL_TO(0.00)[gmail.com]; FROM_EQ_ENVFROM(0.00)[]; SUBJECT_ENDS_QUESTION(1.00)[]; RBL_DBL_DONT_QUERY_IPS(0.00)[40.107.89.46:from]; ASN(0.00)[asn:8075, ipnet:40.104.0.0/14, country:US]; MIME_TRACE(0.00)[0:+,1:+,2:~]; ARC_ALLOW(-1.00)[microsoft.com:s=arcselector9901:i=1]; RCVD_TLS_LAST(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; R_DKIM_ALLOW(-0.20)[redcomlaboratories.onmicrosoft.com:s=selector1-redcomlaboratories-onmicrosoft-com]; FROM_HAS_DN(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; DMARC_NA(0.00)[redcom.com]; SPAMHAUS_ZRD(0.00)[40.107.89.46:from:127.0.2.255]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[40.107.89.46:from]; RWL_MAILSPIKE_POSSIBLE(0.00)[40.107.89.46:from]; MAILMAN_DEST(0.00)[freebsd-drivers] Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.34 X-BeenThere: freebsd-drivers@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Writing device drivers for FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 20 Nov 2020 13:44:30 -0000 On Friday, November 20, 2020 6:34 AM, Konstantin Belousov wrote: > diff --git a/sys/dev/sound/pcm/dsp.c b/sys/dev/sound/pcm/dsp.c > index 4df035f99c8..0593a585b0f 100644 > --- a/sys/dev/sound/pcm/dsp.c > +++ b/sys/dev/sound/pcm/dsp.c > @@ -857,6 +857,8 @@ dsp_io_ops(struct cdev *i_dev, struct uio *buf) > getchns(i_dev, &rdch, &wrch, prio); > > if (*ch =3D=3D NULL || !((*ch)->flags & CHN_F_BUSY)) { > + if (rdch !=3D NULL || wrch !=3D NULL) > + relchns(i_dev, rdch, wrch, prio); > PCM_GIANT_EXIT(d); > return (EBADF); > } That's better than what I used, I hadn't considered that getchns() might re= turn only one channel. I've confirmed that this eliminates the "non-sleepa= ble lock" panic in our driver. Note that I've never seen this with the sou= nd driver, only with our copy of it. But, I also don't have any USB audio = devices (aside from the device we are building, which is not supported by t= he sound driver). -spw From owner-freebsd-drivers@freebsd.org Fri Nov 20 14:03:34 2020 Return-Path: Delivered-To: freebsd-drivers@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 1F82A2EBA32 for ; Fri, 20 Nov 2020 14:03:34 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::1]) (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 mx1.freebsd.org (Postfix) with ESMTPS id 4Ccyv81WRmz3QNW for ; Fri, 20 Nov 2020 14:03:31 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from tom.home (kib@localhost [127.0.0.1]) by kib.kiev.ua (8.16.1/8.16.1) with ESMTPS id 0AKE3NrP053650 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO); Fri, 20 Nov 2020 16:03:27 +0200 (EET) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.10.3 kib.kiev.ua 0AKE3NrP053650 Received: (from kostik@localhost) by tom.home (8.16.1/8.16.1/Submit) id 0AKE3N2g053649; Fri, 20 Nov 2020 16:03:23 +0200 (EET) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Fri, 20 Nov 2020 16:03:23 +0200 From: Konstantin Belousov To: "Wall, Stephen" Cc: "freebsd-drivers@freebsd.org" Subject: Re: bug in sound driver? Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED,BAYES_00, DKIM_ADSP_CUSTOM_MED,FORGED_GMAIL_RCVD,FREEMAIL_FROM, NML_ADSP_CUSTOM_MED autolearn=no autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on tom.home X-Rspamd-Queue-Id: 4Ccyv81WRmz3QNW X-Spamd-Bar: / Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=fail reason="No valid SPF, No valid DKIM" header.from=gmail.com (policy=none); spf=softfail (mx1.freebsd.org: 2001:470:d5e7:1::1 is neither permitted nor denied by domain of kostikbel@gmail.com) smtp.mailfrom=kostikbel@gmail.com X-Spamd-Result: default: False [-0.62 / 15.00]; TO_DN_EQ_ADDR_SOME(0.00)[]; FREEMAIL_ENVFROM(0.00)[gmail.com]; DMARC_POLICY_SOFTFAIL(0.10)[gmail.com : No valid SPF, No valid DKIM,none]; RCVD_TLS_ALL(0.00)[]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; FREEMAIL_FROM(0.00)[gmail.com]; NEURAL_HAM_LONG(-1.00)[-1.000]; MIME_GOOD(-0.10)[text/plain]; HAS_XAW(0.00)[]; ARC_NA(0.00)[]; R_SPF_SOFTFAIL(0.00)[~all]; NEURAL_SPAM_SHORT(0.38)[0.384]; SPAMHAUS_ZRD(0.00)[2001:470:d5e7:1::1:from:127.0.2.255]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RBL_DBL_DONT_QUERY_IPS(0.00)[2001:470:d5e7:1::1:from]; RCPT_COUNT_TWO(0.00)[2]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:6939, ipnet:2001:470::/32, country:US]; SUBJECT_ENDS_QUESTION(1.00)[]; MAILMAN_DEST(0.00)[freebsd-drivers]; RCVD_COUNT_TWO(0.00)[2] X-BeenThere: freebsd-drivers@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Writing device drivers for FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 20 Nov 2020 14:03:34 -0000 On Fri, Nov 20, 2020 at 01:44:26PM +0000, Wall, Stephen wrote: > On Friday, November 20, 2020 6:34 AM, Konstantin Belousov wrote: > > diff --git a/sys/dev/sound/pcm/dsp.c b/sys/dev/sound/pcm/dsp.c > > index 4df035f99c8..0593a585b0f 100644 > > --- a/sys/dev/sound/pcm/dsp.c > > +++ b/sys/dev/sound/pcm/dsp.c > > @@ -857,6 +857,8 @@ dsp_io_ops(struct cdev *i_dev, struct uio *buf) > > getchns(i_dev, &rdch, &wrch, prio); > > > > if (*ch == NULL || !((*ch)->flags & CHN_F_BUSY)) { > > + if (rdch != NULL || wrch != NULL) > > + relchns(i_dev, rdch, wrch, prio); > > PCM_GIANT_EXIT(d); > > return (EBADF); > > } > > That's better than what I used, I hadn't considered that getchns() might return only one channel. I've confirmed that this eliminates the "non-sleepable lock" panic in our driver. Note that I've never seen this with the sound driver, only with our copy of it. But, I also don't have any USB audio devices (aside from the device we are building, which is not supported by the sound driver). Committed as r367892, thank you for the report.