Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753710AbcDFOhI (ORCPT ); Wed, 6 Apr 2016 10:37:08 -0400 Received: from canardo.mork.no ([148.122.252.1]:56723 "EHLO canardo.mork.no" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751312AbcDFOhF convert rfc822-to-8bit (ORCPT ); Wed, 6 Apr 2016 10:37:05 -0400 From: =?utf-8?Q?Bj=C3=B8rn_Mork?= To: Robert Dobrowolski Cc: linux-usb@vger.kernel.org, rafal.f.redzimski@intel.com, stable@vger.kernel.org, oliver@neukum.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v1] net: cdc_ncm: update datagram size after changing mtu Organization: m References: <1459942869-13587-1-git-send-email-robert.dobrowolski@linux.intel.com> Date: Wed, 06 Apr 2016 16:36:50 +0200 In-Reply-To: <1459942869-13587-1-git-send-email-robert.dobrowolski@linux.intel.com> (Robert Dobrowolski's message of "Wed, 6 Apr 2016 13:41:09 +0200") Message-ID: <87h9fex0ql.fsf@nemi.mork.no> User-Agent: Gnus/5.130015 (Ma Gnus v0.15) Emacs/24.5 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1295 Lines: 40 Robert Dobrowolski writes: > From: Rafal Redzimski > > Current implementation updates the mtu size and notify cdc_ncm > device using USB_CDC_SET_MAX_DATAGRAM_SIZE request about datagram > size change instead of changing rx_urb_size. > > Whenever mtu is being changed, datagram size should also be > updated. Definitely! Thanks for this. But looking at the code I believe you need to fix the calculation of maxmtu too. It is currently: int maxmtu = ctx->max_datagram_size - cdc_ncm_eth_hlen(dev); And cdc_ncm_set_dgram_size() updates ctx->max_datagram_size with the new mtu, meaning that you can only reduce the mtu. We should probably use cdc_ncm_max_dgram_size() instead here. And cdc_ncm_set_dgram_size() takes the datagram size with header as input (ref the above maxmtu calucalution), so it probably needs to called as cdc_ncm_set_dgram_size(dev, new_mtu + cdc_ncm_eth_hlen(dev)); to get it right. I think. None of this is tested on an actual device yet... Care to test if I'm right, and do a v2 if necessry? > Cc: This should be dropped for net. Ask David to queue it for stable instead. I usually do that by using a subject prefix like [PATCH net,stable v1] ... Bjørn