Re: [PATCH] UBI: fastmap: fix backward compatibility with image_seq

2013-09-27 Thread Richard Genoud
2013/9/27 Richard Weinberger :
> Am 27.09.2013 15:16, schrieb Richard Genoud:
>> 2013/9/27 Richard Weinberger :
>>> Am 27.09.2013 14:51, schrieb Richard Genoud:
 Some old UBI implementations (e.g. U-Boot) have not implemented the image
 sequence feature.
 So, when erase blocks are written, the image sequence in the ec header
 is lost (set to zero).
 UBI scan_all() takes this case into account (commits
 32bc4820287a1a03982979515949e8ea56eac641 and
 2eadaad67b2b6bd132eda105128d2d466298b8e3)

 But fastmap scan functions (ubi_scan_fastmap() and scan_pool()) didn't.

 This patch fixes the issue.

 Signed-off-by: Richard Genoud 
 ---
>>>
>>> W00t! Good catch!
>>>
>>> Acked-by: Richard Weinberger 
>> Thanks :)
>>
>>
>> There's still an error when the image sequence is bad:
>> [   35.632812] UBI error: scan_pool: bad image seq: 0x0, expected: 0x6e452f03
>> [   35.640625] UBI error: ubi_scan_fastmap: Attach by fastmap failed,
>> doing a full scan!
>> [   35.648437] kmem_cache_destroy ubi_ainf_peb_slab: Slab cache still
>> has objects  <- the destroy_ai in line 1415
>
> *grrr*, the problem here is that not all allocations which are done via
> kmem_cache_alloc(ai->aeb_slab_cache, ...) got kfree()'d.
>
> Thanks,
> //richard

My first guess is in fastmap.c, function scan_pool(), in the loop "for
(i = 0; i < pool_size; i++)"
there's some "add_aeb()" and "new_aeb = kmem_cache_alloc()"
And on error, I don't see a loop backward to free those ones.


Richard.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] UBI: fastmap: fix backward compatibility with image_seq

2013-09-27 Thread Richard Weinberger
Am 27.09.2013 15:16, schrieb Richard Genoud:
> 2013/9/27 Richard Weinberger :
>> Am 27.09.2013 14:51, schrieb Richard Genoud:
>>> Some old UBI implementations (e.g. U-Boot) have not implemented the image
>>> sequence feature.
>>> So, when erase blocks are written, the image sequence in the ec header
>>> is lost (set to zero).
>>> UBI scan_all() takes this case into account (commits
>>> 32bc4820287a1a03982979515949e8ea56eac641 and
>>> 2eadaad67b2b6bd132eda105128d2d466298b8e3)
>>>
>>> But fastmap scan functions (ubi_scan_fastmap() and scan_pool()) didn't.
>>>
>>> This patch fixes the issue.
>>>
>>> Signed-off-by: Richard Genoud 
>>> ---
>>
>> W00t! Good catch!
>>
>> Acked-by: Richard Weinberger 
> Thanks :)
> 
> 
> There's still an error when the image sequence is bad:
> [   35.632812] UBI error: scan_pool: bad image seq: 0x0, expected: 0x6e452f03
> [   35.640625] UBI error: ubi_scan_fastmap: Attach by fastmap failed,
> doing a full scan!
> [   35.648437] kmem_cache_destroy ubi_ainf_peb_slab: Slab cache still
> has objects  <- the destroy_ai in line 1415

*grrr*, the problem here is that not all allocations which are done via
kmem_cache_alloc(ai->aeb_slab_cache, ...) got kfree()'d.

Thanks,
//richard
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] UBI: fastmap: fix backward compatibility with image_seq

2013-09-27 Thread Richard Genoud
2013/9/27 Richard Weinberger :
> Am 27.09.2013 14:51, schrieb Richard Genoud:
>> Some old UBI implementations (e.g. U-Boot) have not implemented the image
>> sequence feature.
>> So, when erase blocks are written, the image sequence in the ec header
>> is lost (set to zero).
>> UBI scan_all() takes this case into account (commits
>> 32bc4820287a1a03982979515949e8ea56eac641 and
>> 2eadaad67b2b6bd132eda105128d2d466298b8e3)
>>
>> But fastmap scan functions (ubi_scan_fastmap() and scan_pool()) didn't.
>>
>> This patch fixes the issue.
>>
>> Signed-off-by: Richard Genoud 
>> ---
>
> W00t! Good catch!
>
> Acked-by: Richard Weinberger 
Thanks :)


There's still an error when the image sequence is bad:
[   35.632812] UBI error: scan_pool: bad image seq: 0x0, expected: 0x6e452f03
[   35.640625] UBI error: ubi_scan_fastmap: Attach by fastmap failed,
doing a full scan!
[   35.648437] kmem_cache_destroy ubi_ainf_peb_slab: Slab cache still
has objects  <- the destroy_ai in line 1415
[   35.656250] CPU: 0 PID: 486 Comm: ubiattach Not tainted 3.11.1 #38
[   35.656250] [] (unwind_backtrace+0x0/0xe0) from
[] (show_stack+0x10/0x14)
[   35.671875] [] (show_stack+0x10/0x14) from []
(destroy_ai+0x230/0x244)
[   35.679687] [] (destroy_ai+0x230/0x244) from []
(ubi_attach+0x1f8/0x390)
[   35.687500] [] (ubi_attach+0x1f8/0x390) from []
(ubi_attach_mtd_dev+0x2b8/0x86c)
[   35.695312] [] (ubi_attach_mtd_dev+0x2b8/0x86c) from
[] (ctrl_cdev_ioctl+0xd0/0x184)
[   35.703125] [] (ctrl_cdev_ioctl+0xd0/0x184) from
[] (vfs_ioctl+0x28/0x3c)
[   35.710937] [] (vfs_ioctl+0x28/0x3c) from []
(do_vfs_ioctl+0x4e8/0x54c)
[   35.718750] [] (do_vfs_ioctl+0x4e8/0x54c) from
[] (SyS_ioctl+0x34/0x58)
[   35.726562] [] (SyS_ioctl+0x34/0x58) from []
(ret_fast_syscall+0x0/0x2c)

I'll look into that

Richard
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] UBI: fastmap: fix backward compatibility with image_seq

2013-09-27 Thread Richard Weinberger
Am 27.09.2013 14:51, schrieb Richard Genoud:
> Some old UBI implementations (e.g. U-Boot) have not implemented the image
> sequence feature.
> So, when erase blocks are written, the image sequence in the ec header
> is lost (set to zero).
> UBI scan_all() takes this case into account (commits
> 32bc4820287a1a03982979515949e8ea56eac641 and
> 2eadaad67b2b6bd132eda105128d2d466298b8e3)
> 
> But fastmap scan functions (ubi_scan_fastmap() and scan_pool()) didn't.
> 
> This patch fixes the issue.
> 
> Signed-off-by: Richard Genoud 
> ---

W00t! Good catch!

Acked-by: Richard Weinberger 
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] UBI: fastmap: fix backward compatibility with image_seq

2013-09-27 Thread Richard Weinberger
Am 27.09.2013 14:51, schrieb Richard Genoud:
 Some old UBI implementations (e.g. U-Boot) have not implemented the image
 sequence feature.
 So, when erase blocks are written, the image sequence in the ec header
 is lost (set to zero).
 UBI scan_all() takes this case into account (commits
 32bc4820287a1a03982979515949e8ea56eac641 and
 2eadaad67b2b6bd132eda105128d2d466298b8e3)
 
 But fastmap scan functions (ubi_scan_fastmap() and scan_pool()) didn't.
 
 This patch fixes the issue.
 
 Signed-off-by: Richard Genoud richard.gen...@gmail.com
 ---

W00t! Good catch!

Acked-by: Richard Weinberger rich...@nod.at
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] UBI: fastmap: fix backward compatibility with image_seq

2013-09-27 Thread Richard Genoud
2013/9/27 Richard Weinberger rich...@nod.at:
 Am 27.09.2013 14:51, schrieb Richard Genoud:
 Some old UBI implementations (e.g. U-Boot) have not implemented the image
 sequence feature.
 So, when erase blocks are written, the image sequence in the ec header
 is lost (set to zero).
 UBI scan_all() takes this case into account (commits
 32bc4820287a1a03982979515949e8ea56eac641 and
 2eadaad67b2b6bd132eda105128d2d466298b8e3)

 But fastmap scan functions (ubi_scan_fastmap() and scan_pool()) didn't.

 This patch fixes the issue.

 Signed-off-by: Richard Genoud richard.gen...@gmail.com
 ---

 W00t! Good catch!

 Acked-by: Richard Weinberger rich...@nod.at
Thanks :)


There's still an error when the image sequence is bad:
[   35.632812] UBI error: scan_pool: bad image seq: 0x0, expected: 0x6e452f03
[   35.640625] UBI error: ubi_scan_fastmap: Attach by fastmap failed,
doing a full scan!
[   35.648437] kmem_cache_destroy ubi_ainf_peb_slab: Slab cache still
has objects  - the destroy_ai in line 1415
[   35.656250] CPU: 0 PID: 486 Comm: ubiattach Not tainted 3.11.1 #38
[   35.656250] [c001283c] (unwind_backtrace+0x0/0xe0) from
[c0010a24] (show_stack+0x10/0x14)
[   35.671875] [c0010a24] (show_stack+0x10/0x14) from [c019b9e4]
(destroy_ai+0x230/0x244)
[   35.679687] [c019b9e4] (destroy_ai+0x230/0x244) from [c019d334]
(ubi_attach+0x1f8/0x390)
[   35.687500] [c019d334] (ubi_attach+0x1f8/0x390) from [c0191a18]
(ubi_attach_mtd_dev+0x2b8/0x86c)
[   35.695312] [c0191a18] (ubi_attach_mtd_dev+0x2b8/0x86c) from
[c0192208] (ctrl_cdev_ioctl+0xd0/0x184)
[   35.703125] [c0192208] (ctrl_cdev_ioctl+0xd0/0x184) from
[c007ef4c] (vfs_ioctl+0x28/0x3c)
[   35.710937] [c007ef4c] (vfs_ioctl+0x28/0x3c) from [c007f974]
(do_vfs_ioctl+0x4e8/0x54c)
[   35.718750] [c007f974] (do_vfs_ioctl+0x4e8/0x54c) from
[c007fa0c] (SyS_ioctl+0x34/0x58)
[   35.726562] [c007fa0c] (SyS_ioctl+0x34/0x58) from [c000e3c0]
(ret_fast_syscall+0x0/0x2c)

I'll look into that

Richard
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] UBI: fastmap: fix backward compatibility with image_seq

2013-09-27 Thread Richard Weinberger
Am 27.09.2013 15:16, schrieb Richard Genoud:
 2013/9/27 Richard Weinberger rich...@nod.at:
 Am 27.09.2013 14:51, schrieb Richard Genoud:
 Some old UBI implementations (e.g. U-Boot) have not implemented the image
 sequence feature.
 So, when erase blocks are written, the image sequence in the ec header
 is lost (set to zero).
 UBI scan_all() takes this case into account (commits
 32bc4820287a1a03982979515949e8ea56eac641 and
 2eadaad67b2b6bd132eda105128d2d466298b8e3)

 But fastmap scan functions (ubi_scan_fastmap() and scan_pool()) didn't.

 This patch fixes the issue.

 Signed-off-by: Richard Genoud richard.gen...@gmail.com
 ---

 W00t! Good catch!

 Acked-by: Richard Weinberger rich...@nod.at
 Thanks :)
 
 
 There's still an error when the image sequence is bad:
 [   35.632812] UBI error: scan_pool: bad image seq: 0x0, expected: 0x6e452f03
 [   35.640625] UBI error: ubi_scan_fastmap: Attach by fastmap failed,
 doing a full scan!
 [   35.648437] kmem_cache_destroy ubi_ainf_peb_slab: Slab cache still
 has objects  - the destroy_ai in line 1415

*grrr*, the problem here is that not all allocations which are done via
kmem_cache_alloc(ai-aeb_slab_cache, ...) got kfree()'d.

Thanks,
//richard
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] UBI: fastmap: fix backward compatibility with image_seq

2013-09-27 Thread Richard Genoud
2013/9/27 Richard Weinberger rich...@nod.at:
 Am 27.09.2013 15:16, schrieb Richard Genoud:
 2013/9/27 Richard Weinberger rich...@nod.at:
 Am 27.09.2013 14:51, schrieb Richard Genoud:
 Some old UBI implementations (e.g. U-Boot) have not implemented the image
 sequence feature.
 So, when erase blocks are written, the image sequence in the ec header
 is lost (set to zero).
 UBI scan_all() takes this case into account (commits
 32bc4820287a1a03982979515949e8ea56eac641 and
 2eadaad67b2b6bd132eda105128d2d466298b8e3)

 But fastmap scan functions (ubi_scan_fastmap() and scan_pool()) didn't.

 This patch fixes the issue.

 Signed-off-by: Richard Genoud richard.gen...@gmail.com
 ---

 W00t! Good catch!

 Acked-by: Richard Weinberger rich...@nod.at
 Thanks :)


 There's still an error when the image sequence is bad:
 [   35.632812] UBI error: scan_pool: bad image seq: 0x0, expected: 0x6e452f03
 [   35.640625] UBI error: ubi_scan_fastmap: Attach by fastmap failed,
 doing a full scan!
 [   35.648437] kmem_cache_destroy ubi_ainf_peb_slab: Slab cache still
 has objects  - the destroy_ai in line 1415

 *grrr*, the problem here is that not all allocations which are done via
 kmem_cache_alloc(ai-aeb_slab_cache, ...) got kfree()'d.

 Thanks,
 //richard

My first guess is in fastmap.c, function scan_pool(), in the loop for
(i = 0; i  pool_size; i++)
there's some add_aeb() and new_aeb = kmem_cache_alloc()
And on error, I don't see a loop backward to free those ones.


Richard.
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/