[PATCH] [MTD] mtd-utils: Use new 64-bit ioctls to access >4GiB devices

Adrian Hunter adrian.hunter at nokia.com
Wed Mar 18 08:46:14 EDT 2009

Josh Boyer wrote:
> On Wed, Mar 18, 2009 at 02:16:04PM +0200, Adrian Hunter wrote:
>> Josh Boyer wrote:
>>> On Wed, Mar 18, 2009 at 08:50:08AM +0100, Ricard Wanderlof wrote:
>>>> On Wed, 18 Mar 2009, Kevin Cernekee wrote:
>>>>> This patch depends on "CORE: New ioctl calls for >4GiB device support".
>>>>> Use the new kernel ioctls to support >4GiB flash devices in mtd-utils.
>>>>> -               if(ioctl(Fd,MEMGETREGIONINFO,&(reginfo[i])) != 0)
>>>>> +               if(ioctl(Fd,MEMGETREGIONINFO64,&(reginfo[i])) != 0)
>>>> Wouldn't it be an idea to support both the old and new calls for a 
>>>> while  (using compile time switching), in case someone wants to grab 
>>>> a newer  version of mtdtools but doesn't have a newer kernel for 
>>>> whatever reason?
>>> Yes, it would.  In fact, it would be better to probably add a new
>>> --large-device (or similar) option to all the utilities so that
>>> they can use both with a runtime switch.
>> I would suggest just trying MEMGETINFO64 and if it returns ENOTTY
>> then switch to the old ioctls.
> Well, that's an option.  However, it would have to do that for every
> ioctl that is called and it's not exactly cheap to do a system call.

I was thinking just do it once per invocation and set a flag for the
rest of the code.

> Performance might be sort of silly to worry about though.  It would
> certainly be better than the patch as it is.

More information about the linux-mtd mailing list