Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id ; Wed, 5 Dec 2001 02:28:33 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id ; Wed, 5 Dec 2001 02:28:23 -0500 Received: from saturn.cs.uml.edu ([129.63.8.2]:39433 "EHLO saturn.cs.uml.edu") by vger.kernel.org with ESMTP id ; Wed, 5 Dec 2001 02:28:14 -0500 Date: Wed, 5 Dec 2001 02:28:13 -0500 (EST) Message-Id: <200112050728.fB57SDO230728@saturn.cs.uml.edu> From: "Albert D. Cahalan" To: linux-kernel@vger.kernel.org Subject: USB audio w/ "D" state Cc: sailer@ife.ee.ethz.ch, alan@lxorguk.ukuu.org.uk, linuxppc-dev@lists.linuxppc.org Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org I did "cat /bin/sh >> /dev/audio" and hit ^C to stop the noise. The "cat" process gets stuck in "D" state with the WCHAN indicating that the process is stuck 1/3 the way through the usbout_stop() function. hardware: Mac Cube and the normal spherical speakers kernel: plain 2.4.16 from www.kernel.org compiler: gcc version 2.95.4 20011006 (Debian prerelease) In case PPC assembly is useful to somebody, I've marked the instruction where the process gets stuck. The surrounding "bl" instructions look like infinite loops to me, but maybe I'm reading this wrong. The assembly is from: objdump -dl --start-address=0x1728 audio.o usbout_stop(): 1728: 94 21 ff d0 stwu r1,-48(r1) 172c: 7c 08 02 a6 mflr r0 1730: 7d 80 00 26 mfcr r12 1734: bf 81 00 20 stmw r28,32(r1) 1738: 90 01 00 34 stw r0,52(r1) 173c: 91 81 00 1c stw r12,28(r1) 1740: 3b e3 03 98 addi r31,r3,920 1744: 3b c0 00 01 li r30,1 1748: 3b a1 00 08 addi r29,r1,8 174c: 7f a3 eb 78 mr r3,r29 1750: 48 00 00 01 bl 1750 1754: 48 00 00 01 bl 1754 1758: 83 9f 00 24 lwz r28,36(r31) 175c: 57 80 07 34 rlwinm r0,r28,0,28,26 1760: 90 1f 00 24 stw r0,36(r31) 1764: 80 61 00 08 lwz r3,8(r1) 1768: 48 00 00 01 bl 1768 176c: 73 80 00 0f andi. r0,r28,15 1770: 41 82 00 98 beq 1808 1774: 31 3e ff ff addic r9,r30,-1 1778: 7d 29 49 10 subfe r9,r9,r9 177c: 38 09 00 01 addi r0,r9,1 1780: 55 29 07 bc rlwinm r9,r9,0,30,30 1784: 2e 1e 00 00 cmpwi cr4,r30,0 1788: 7d 29 03 78 or r9,r9,r0 178c: 91 22 00 00 stw r9,0(r2) 1790: 38 60 00 01 li r3,1 1794: 48 00 00 01 bl 1794 --> 1798: 7f a3 eb 78 mr r3,r29 179c: 48 00 00 01 bl 179c 17a0: 48 00 00 01 bl 17a0 17a4: 83 9f 00 24 lwz r28,36(r31) 17a8: 80 61 00 08 lwz r3,8(r1) 17ac: 48 00 00 01 bl 17ac 17b0: 41 92 ff bc beq cr4,176c 17b4: 80 02 00 08 lwz r0,8(r2) 17b8: 2c 00 00 00 cmpwi r0,0 17bc: 41 82 ff b0 beq 176c 17c0: 73 80 00 01 andi. r0,r28,1 17c4: 41 82 00 0c beq 17d0 17c8: 38 7f 00 28 addi r3,r31,40 17cc: 48 00 00 01 bl 17cc 17d0: 73 80 00 02 andi. r0,r28,2 17d4: 41 82 00 0c beq 17e0 17d8: 38 7f 00 cc addi r3,r31,204 17dc: 48 00 00 01 bl 17dc 17e0: 73 80 00 04 andi. r0,r28,4 17e4: 41 82 00 0c beq 17f0 17e8: 38 7f 01 70 addi r3,r31,368 17ec: 48 00 00 01 bl 17ec 17f0: 73 80 00 08 andi. r0,r28,8 17f4: 41 82 00 0c beq 1800 17f8: 38 7f 02 14 addi r3,r31,532 17fc: 48 00 00 01 bl 17fc 1800: 3b c0 00 00 li r30,0 1804: 4b ff ff 68 b 176c 1808: 3b a0 00 00 li r29,0 180c: 93 a2 00 00 stw r29,0(r2) 1810: 80 7f 00 4c lwz r3,76(r31) 1814: 2c 03 00 00 cmpwi r3,0 1818: 41 82 00 08 beq 1820 181c: 48 00 00 01 bl 181c 1820: 80 7f 00 f0 lwz r3,240(r31) 1824: 2c 03 00 00 cmpwi r3,0 1828: 41 82 00 08 beq 1830 182c: 48 00 00 01 bl 182c 1830: 80 7f 01 94 lwz r3,404(r31) 1834: 2c 03 00 00 cmpwi r3,0 1838: 41 82 00 08 beq 1840 183c: 48 00 00 01 bl 183c 1840: 80 7f 02 38 lwz r3,568(r31) 1844: 2c 03 00 00 cmpwi r3,0 1848: 41 82 00 08 beq 1850 184c: 48 00 00 01 bl 184c 1850: 93 bf 00 4c stw r29,76(r31) 1854: 93 bf 02 38 stw r29,568(r31) 1858: 93 bf 01 94 stw r29,404(r31) 185c: 93 bf 00 f0 stw r29,240(r31) 1860: 80 01 00 34 lwz r0,52(r1) 1864: 81 81 00 1c lwz r12,28(r1) 1868: 7c 08 03 a6 mtlr r0 186c: bb 81 00 20 lmw r28,32(r1) 1870: 7d 80 81 20 mtcrf 8,r12 1874: 38 21 00 30 addi r1,r1,48 1878: 4e 80 00 20 blr - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/