From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751483AbbCHEZ2 (ORCPT ); Sat, 7 Mar 2015 23:25:28 -0500 Received: from mx1.redhat.com ([209.132.183.28]:38270 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751111AbbCHEZ0 (ORCPT ); Sat, 7 Mar 2015 23:25:26 -0500 Date: Sun, 8 Mar 2015 12:24:54 +0800 From: Dave Young To: balbi@ti.com, gregkh@linuxfoundation.org, linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] usb gadget: remove size limitation for storage cdrom Message-ID: <20150308042454.GA2169@darkstar.redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org I used usb cdrom emulation to play video dvd for my daughter, but I got below error: [dave@darkstar tmp]$ cat /mnt/sr1/VIDEO_TS/VTS_01_5.VOB >/dev/null cat: /mnt/sr1/VIDEO_TS/VTS_01_5.VOB: Input/output error [dave@darkstar tmp]$ dmesg|tail -1 [ 3349.371857] sr1: rw=0, want=8028824, limit=4607996 The assumption of cdrom size is not right, we can create data dvd large then 4G, also mkisofs can create an iso with only one blank directory, the size is less than 300 sectors. The size limit does not make sense, thus remove them. Signed-off-by: Dave Young --- drivers/usb/gadget/function/storage_common.c | 9 --------- 1 file changed, 9 deletions(-) --- linux.orig/drivers/usb/gadget/function/storage_common.c +++ linux/drivers/usb/gadget/function/storage_common.c @@ -247,15 +247,6 @@ int fsg_lun_open(struct fsg_lun *curlun, num_sectors = size >> blkbits; /* File size in logic-block-size blocks */ min_sectors = 1; - if (curlun->cdrom) { - min_sectors = 300; /* Smallest track is 300 frames */ - if (num_sectors >= 256*60*75) { - num_sectors = 256*60*75 - 1; - LINFO(curlun, "file too big: %s\n", filename); - LINFO(curlun, "using only first %d blocks\n", - (int) num_sectors); - } - } if (num_sectors < min_sectors) { LINFO(curlun, "file too small: %s\n", filename); rc = -ETOOSMALL;