On 10/02/2018 09:54 AM, Patrick DELAUNAY wrote:
> Hi Marek,

Hi,

>> From: Marek Vasut <ma...@denx.de>
>> Sent: dimanche 30 septembre 2018 10:09
>>
>> On 09/28/2018 11:30 AM, Patrick DELAUNAY wrote:
>>> Hi,
>>
>> Hi,
>>
>>>> From: Marek Vasut <ma...@denx.de>
>>>>
>>>> On 09/26/2018 01:04 PM, Patrick Delaunay wrote:
>>>>> solve data abort for the command "ums 0 ubi 0"
>>>>> because result of case blk_get_device_part_str() result is OK but
>>>>> with block_dev = 0 when CONFIG_CMD_UBIFS is activate and ubi volume
>>>>> is mounted
>>>>
>>>> I don't quite understand the commit message, can you reword it?
>>>
>>> Ok, I prepare a V3
>>
>> Sending a V3 while discussion is ongoing is pointless.
> 
> Sorry, I already sent it Friday only with more clear commit message.
> Because I really ashamed by of my this fist comment... 
> Even me,  I can't understand that I wrote.

Happens to everyone.

>>>> Also, when is this ever called with block_dev == NULL ? What's the
>>>> condition to trigger this and why ?
>>>
>>> To reproduce the issue you need to have a ubifs  already mounted, for
>>> example with the command:
>>>     ubi part UBI
>>>     ubifsmount ubi0:boot
>>>
>>> I investigate the point, the call stack before the crash is  caused by
>>> the ubi support in
>>> ./disk/part.c:425 =  blk_get_device_part_str()
>>>
>>> Some part of code here are under CONFIG_CMD_UBIFS with the comment :
>>>     "ubi goes through a mtd, rathen then through a regular block device"
>>>
>>> So the the function return a pointer to disk_partition_t :
>>>             info->type = BOOT_PART_TYPE
>>>             info->name =  "UBI"
>>>  but without block device information !
>>>             *dev_desc = NULL
>>
>> Would it rather make sense to fix it here , so it has a valid dev_desc ?
> 
> I am not  confident that can be done easily,  if I correctly understood the 
> code,  because
> UBI is not really a regular block device but only directly connected to MTD 
> to allow 
> simple access to generic fs support for ubifs volume.
> 
> So NULL block devicedescriptor  is "normal" for UBIFS.
> 
> To solve the issue at this level, a fake block device should be implemented 
> for the UBI case....
> And I don't sure that I can propose something here without breaking all the 
> other commands
> using blk_get_device_part_str () function.
>  
> See  in ./fs/fs.c, the null dev desc is allowed for UBI
> 
> struct fstype_info fstypes[] 
> 
> #ifdef CONFIG_CMD_UBIFS
>       {
>               .fstype = FS_TYPE_UBIFS,
>               .name = "ubifs",
>               .null_dev_desc_ok = true,
> 
>>> So the issue occurs because, when the ubifs volume is mounted, The
>>> code in  cmd/usb_mass_storage.c
>> [...]
Thanks for clarifying.

Simon, thoughts ?

-- 
Best regards,
Marek Vasut
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to