From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755085AbdBVVn1 (ORCPT ); Wed, 22 Feb 2017 16:43:27 -0500 Received: from schatzi.steelbluetech.co.uk ([92.63.139.240]:51834 "EHLO schatzi.steelbluetech.co.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932669AbdBVV0c (ORCPT ); Wed, 22 Feb 2017 16:26:32 -0500 X-Greylist: delayed 641 seconds by postgrey-1.27 at vger.kernel.org; Wed, 22 Feb 2017 16:25:57 EST DKIM-Filter: OpenDKIM Filter v2.10.3 schatzi.steelbluetech.co.uk B63709D329 Subject: Re: [PATCH 4.4 02/15] [media] siano: make it work again with CONFIG_VMAP_STACK References: <20170221130139.845694876@linuxfoundation.org> <20170221130139.951459920@linuxfoundation.org> To: Greg Kroah-Hartman , linux-kernel@vger.kernel.org Cc: stable@vger.kernel.org, Mauro Carvalho Chehab From: Eddie Chapman Reply-To: Eddie Chapman Message-ID: <53bb5fba-1f20-109c-833e-071cbdc782dd@ehuk.net> Date: Wed, 22 Feb 2017 21:07:24 +0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.1 MIME-Version: 1.0 In-Reply-To: <20170221130139.951459920@linuxfoundation.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 21/02/17 13:01, Greg Kroah-Hartman wrote: > 4.4-stable review patch. If anyone has any objections, please let me know. > > ------------------ > > From: Mauro Carvalho Chehab > > commit f9c85ee67164b37f9296eab3b754e543e4e96a1c upstream. > > Reported as a Kaffeine bug: > https://bugs.kde.org/show_bug.cgi?id=375811 > > The USB control messages require DMA to work. We cannot pass > a stack-allocated buffer, as it is not warranted that the > stack would be into a DMA enabled area. > > On Kernel 4.9, the default is to not accept DMA on stack anymore > on x86 architecture. On other architectures, this has been a > requirement since Kernel 2.2. So, after this patch, this driver > should likely work fine on all archs. > > Tested with USB ID 2040:5510: Hauppauge Windham > > Signed-off-by: Mauro Carvalho Chehab > Signed-off-by: Greg Kroah-Hartman > > --- > drivers/media/usb/siano/smsusb.c | 18 +++++++++++++----- > 1 file changed, 13 insertions(+), 5 deletions(-) > > --- a/drivers/media/usb/siano/smsusb.c > +++ b/drivers/media/usb/siano/smsusb.c > @@ -200,22 +200,30 @@ static int smsusb_start_streaming(struct > static int smsusb_sendrequest(void *context, void *buffer, size_t size) > { > struct smsusb_device_t *dev = (struct smsusb_device_t *) context; > - struct sms_msg_hdr *phdr = (struct sms_msg_hdr *) buffer; > - int dummy; > + struct sms_msg_hdr *phdr; > + int dummy, ret; > > if (dev->state != SMSUSB_ACTIVE) { > pr_debug("Device not active yet\n"); > return -ENOENT; > } > > + phdr = kmalloc(size, GFP_KERNEL); > + if (!phdr) > + return -ENOMEM; > + memcpy(phdr, buffer, size); > + > pr_debug("sending %s(%d) size: %d\n", > smscore_translate_msg(phdr->msg_type), phdr->msg_type, > phdr->msg_length); > > smsendian_handle_tx_message((struct sms_msg_data *) phdr); > - smsendian_handle_message_header((struct sms_msg_hdr *)buffer); > - return usb_bulk_msg(dev->udev, usb_sndbulkpipe(dev->udev, 2), > - buffer, size, &dummy, 1000); > + smsendian_handle_message_header((struct sms_msg_hdr *)phdr); > + ret = usb_bulk_msg(dev->udev, usb_sndbulkpipe(dev->udev, 2), > + phdr, size, &dummy, 1000); > + > + kfree(phdr); > + return ret; > } > > static char *smsusb1_fw_lkup[] = { Hello Greg, According to the bug report linked to in the commit message this is only needed in 4.9 and higher. Eddie