stable.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	alan@lxorguk.ukuu.org.uk,
	Colin Fletcher <colin.m.fletcher@googlemail.com>,
	Devin Venable <venable.devin@gmail.com>,
	Dr Nick Bailey <nicholas.bailey@glasgow.ac.uk>,
	Jannis Achstetter <jannis_achstetter@web.de>,
	Rui Nuno Capela <rncbc@rncbc.org>,
	Oliver Neukum <oliver@neukum.org>,
	Clemens Ladisch <clemens@ladisch.de>
Subject: [ 17/56] ALSA: ua101, usx2y: fix broken MIDI output
Date: Fri, 30 Nov 2012 10:55:09 -0800	[thread overview]
Message-ID: <20121130185120.069279120@linuxfoundation.org> (raw)
In-Reply-To: <20121130185118.302752929@linuxfoundation.org>

3.4-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Clemens Ladisch <clemens@ladisch.de>

commit e99ddfde6ae0dd2662bb40435696002b590e4057 upstream.

Commit 88a8516a2128 (ALSA: usbaudio: implement USB autosuspend) added
autosuspend code to all files making up the snd-usb-audio driver.
However, midi.c is part of snd-usb-lib and is also used by other
drivers, not all of which support autosuspend.  Thus, calls to
usb_autopm_get_interface() could fail, and this unexpected error would
result in the MIDI output being completely unusable.

Make it work by ignoring the error that is expected with drivers that do
not support autosuspend.

Reported-by: Colin Fletcher <colin.m.fletcher@googlemail.com>
Reported-by: Devin Venable <venable.devin@gmail.com>
Reported-by: Dr Nick Bailey <nicholas.bailey@glasgow.ac.uk>
Reported-by: Jannis Achstetter <jannis_achstetter@web.de>
Reported-by: Rui Nuno Capela <rncbc@rncbc.org>
Cc: Oliver Neukum <oliver@neukum.org>
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 sound/usb/midi.c |    8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

--- a/sound/usb/midi.c
+++ b/sound/usb/midi.c
@@ -148,6 +148,7 @@ struct snd_usb_midi_out_endpoint {
 		struct snd_usb_midi_out_endpoint* ep;
 		struct snd_rawmidi_substream *substream;
 		int active;
+		bool autopm_reference;
 		uint8_t cable;		/* cable number << 4 */
 		uint8_t state;
 #define STATE_UNKNOWN	0
@@ -1076,7 +1077,8 @@ static int snd_usbmidi_output_open(struc
 		return -ENXIO;
 	}
 	err = usb_autopm_get_interface(umidi->iface);
-	if (err < 0)
+	port->autopm_reference = err >= 0;
+	if (err < 0 && err != -EACCES)
 		return -EIO;
 	substream->runtime->private_data = port;
 	port->state = STATE_UNKNOWN;
@@ -1087,9 +1089,11 @@ static int snd_usbmidi_output_open(struc
 static int snd_usbmidi_output_close(struct snd_rawmidi_substream *substream)
 {
 	struct snd_usb_midi* umidi = substream->rmidi->private_data;
+	struct usbmidi_out_port *port = substream->runtime->private_data;
 
 	substream_open(substream, 0);
-	usb_autopm_put_interface(umidi->iface);
+	if (port->autopm_reference)
+		usb_autopm_put_interface(umidi->iface);
 	return 0;
 }
 



  parent reply	other threads:[~2012-11-30 18:55 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-11-30 18:54 [ 00/56] 3.4.21-stable review Greg Kroah-Hartman
2012-11-30 18:54 ` [ 01/56] UBIFS: fix compilation warning Greg Kroah-Hartman
2012-11-30 18:54 ` [ 02/56] NVMe: Fix uninitialized iod compiler warning Greg Kroah-Hartman
2012-11-30 18:54 ` [ 03/56] Bluetooth: Fix using uninitialized option in RFCMode Greg Kroah-Hartman
2012-11-30 18:54 ` [ 04/56] ALSA: snd-usb-caiaq: initialize card pointer Greg Kroah-Hartman
2012-11-30 18:54 ` [ 05/56] drivers/leds/leds-lp5521.c: fix lp5521_read() error handling Greg Kroah-Hartman
2012-12-02  3:17   ` Ben Hutchings
2012-12-02  8:05     ` Dan Carpenter
2012-11-30 18:54 ` [ 06/56] [SCSI] mvsas: remove unused variable in mvs_task_exec() Greg Kroah-Hartman
2012-11-30 18:54 ` [ 07/56] scsi: aha152x: Fix sparse warning and make printing pointer address more portable Greg Kroah-Hartman
2012-11-30 18:55 ` [ 08/56] rtlwifi: rtl8192se: Fix gcc 4.7.x warning Greg Kroah-Hartman
2012-11-30 18:55 ` [ 09/56] x86-32: Fix invalid stack address while in softirq Greg Kroah-Hartman
2012-12-04 13:56   ` Herton Ronaldo Krzesinski
2012-12-06 18:42     ` Greg Kroah-Hartman
2012-11-30 18:55 ` [ 10/56] x86, efi: Fix processor-specific memcpy() build error Greg Kroah-Hartman
2012-11-30 18:55 ` [ 11/56] x86, microcode, AMD: Add support for family 16h processors Greg Kroah-Hartman
2012-11-30 18:55 ` [ 12/56] rtlwifi: rtl8192cu: Add new USB ID Greg Kroah-Hartman
2012-11-30 18:55 ` [ 13/56] mwifiex: report error to MMC core if we cannot suspend Greg Kroah-Hartman
2012-11-30 18:55 ` [ 14/56] mwifiex: fix system hang issue in cmd timeout error case Greg Kroah-Hartman
2012-11-30 18:55 ` [ 15/56] SCSI: isci: copy fis 0x34 response into proper buffer Greg Kroah-Hartman
2012-11-30 18:55 ` [ 16/56] drm/radeon: add new SI pci id Greg Kroah-Hartman
2012-11-30 18:55 ` Greg Kroah-Hartman [this message]
2012-11-30 18:55 ` [ 18/56] ALSA: hda - Cirrus: Correctly clear line_out_pins when moving to speaker Greg Kroah-Hartman
2012-11-30 18:55 ` [ 19/56] PARISC: fix virtual aliasing issue in get_shared_area() Greg Kroah-Hartman
2012-11-30 18:55 ` [ 20/56] PARISC: fix user-triggerable panic on parisc Greg Kroah-Hartman
2012-11-30 18:55 ` [ 21/56] mtd: slram: invalid checking of absolute end address Greg Kroah-Hartman
2012-11-30 18:55 ` [ 22/56] mtd: ofpart: Fix incorrect NULL check in parse_ofoldpart_partitions() Greg Kroah-Hartman
2012-11-30 18:55 ` [ 23/56] jffs2: Fix lock acquisition order bug in jffs2_write_begin Greg Kroah-Hartman
2012-11-30 18:55 ` [ 24/56] md: Reassigned the parameters if read_seqretry returned true in func md_is_badblock Greg Kroah-Hartman
2012-11-30 18:55 ` [ 25/56] md: Avoid write invalid address if read_seqretry returned true Greg Kroah-Hartman
2012-11-30 18:55 ` [ 26/56] md/raid10: decrement correct pending counter when writing to replacement Greg Kroah-Hartman
2012-11-30 18:55 ` [ 27/56] dm: fix deadlock with request based dm and queue request_fn recursion Greg Kroah-Hartman
2012-11-30 18:55 ` [ 28/56] futex: avoid wake_futex() for a PI futex_q Greg Kroah-Hartman
2012-11-30 18:55 ` [ 29/56] mac80211: deinitialize ibss-internals after emptiness check Greg Kroah-Hartman
2012-11-30 18:55 ` [ 30/56] radeon: add AGPMode 1 quirk for RV250 Greg Kroah-Hartman
2012-11-30 18:55 ` [ 31/56] can: peak_usb: fix hwtstamp assignment Greg Kroah-Hartman
2012-11-30 18:55 ` [ 32/56] can: bcm: initialize ifindex for timeouts without previous frame reception Greg Kroah-Hartman
2012-11-30 18:55 ` [ 33/56] jbd: Fix lock ordering bug in journal_unmap_buffer() Greg Kroah-Hartman
2012-11-30 18:55 ` [ 34/56] sparc64: not any error from do_sigaltstack() should fail rt_sigreturn() Greg Kroah-Hartman
2012-11-30 18:55 ` [ 35/56] PM / QoS: fix wrong error-checking condition Greg Kroah-Hartman
2012-11-30 18:55 ` [ 36/56] ALSA: hda - Add new codec ALC283 ALC290 support Greg Kroah-Hartman
2012-11-30 18:55 ` [ 37/56] ALSA: hda - Fix missing beep on ASUS X43U notebook Greg Kroah-Hartman
2012-11-30 18:55 ` [ 38/56] ALSA: hda - Add support for Realtek ALC292 Greg Kroah-Hartman
2012-11-30 18:55 ` [ 39/56] bas_gigaset: fix pre_reset handling Greg Kroah-Hartman
2012-11-30 18:55 ` [ 40/56] scsi: Silence unnecessary warnings about ioctl to partition Greg Kroah-Hartman
2012-11-30 18:55 ` [ 41/56] KVM: x86: invalid opcode oops on SET_SREGS with OSXSAVE bit set (CVE-2012-4461) Greg Kroah-Hartman
2012-11-30 18:55 ` [ 42/56] ixgbe: add support for X540-AT1 Greg Kroah-Hartman
2012-11-30 18:55 ` [ 43/56] sata_svw: check DMA start bit before reset Greg Kroah-Hartman
2012-11-30 18:55 ` [ 44/56] get_dvb_firmware: fix download site for tda10046 firmware Greg Kroah-Hartman
2012-11-30 18:55 ` [ 45/56] NFC: pn533: Fix use after free Greg Kroah-Hartman
2012-11-30 18:55 ` [ 46/56] NFC: pn533: Fix mem leak in pn533_in_dep_link_up Greg Kroah-Hartman
2012-11-30 18:55 ` [ 47/56] NFC: Fix nfc_llcp_local chained list insertion Greg Kroah-Hartman
2012-11-30 18:55 ` [ 48/56] USB: mct_u232: fix broken close Greg Kroah-Hartman
2012-11-30 18:55 ` [ 49/56] watchdog: using u64 in get_sample_period() Greg Kroah-Hartman
2012-11-30 18:55 ` [ 50/56] MPI: Fix compilation on MIPS with GCC 4.4 and newer Greg Kroah-Hartman
2012-11-30 18:55 ` [ 51/56] powerpc/eeh: Lock module while handling EEH event Greg Kroah-Hartman
2012-11-30 18:55 ` [ 52/56] mmc: sdhci-s3c: fix the wrong number of max bus clocks Greg Kroah-Hartman
2012-11-30 18:55 ` [ 53/56] ARM: OMAP: counter: add locking to read_persistent_clock Greg Kroah-Hartman
2012-11-30 18:55 ` [ 54/56] timekeeping: Cast raw_interval to u64 to avoid shift overflow Greg Kroah-Hartman
2012-11-30 18:55 ` [ 55/56] net/wireless: ipw2200: Fix panic occurring in ipw_handle_promiscuous_tx() Greg Kroah-Hartman
2012-11-30 18:55 ` [ 56/56] iwlwifi: fix 6000 series channel switch command Greg Kroah-Hartman
2012-12-01 15:35 ` [ 00/56] 3.4.21-stable review Satoru Takeuchi
2012-12-02  2:08   ` Shuah Khan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20121130185120.069279120@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=clemens@ladisch.de \
    --cc=colin.m.fletcher@googlemail.com \
    --cc=jannis_achstetter@web.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nicholas.bailey@glasgow.ac.uk \
    --cc=oliver@neukum.org \
    --cc=rncbc@rncbc.org \
    --cc=stable@vger.kernel.org \
    --cc=venable.devin@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).