[LTP] [PATCH v2] block/ltp_block_dev.c: Update tests for the newer kernel
Xiao Yang
yangx.jy@cn.fujitsu.com
Mon Feb 11 03:18:02 CET 2019
On 2019/02/08 19:48, Petr Vorel wrote:
> Hi Xiao,
>
>> The maximum major number is set to 511 since kernel commit 133d55c,
>> so register_blkdev() with a major number grater than the maximum(511)
>> will get failure instead of pass as expected.
>> 1) Update tests for the newer behavior of register_blkdev().
>> 2) Add more major numbers(i.e. 511 and 512) to test.
>> Note:
>> It is possible that specified major numbers have been used
>> by system, so we skip them if register_blkdev() returns EBUSY.
>> Signed-off-by: Xiao Yang<yangx.jy@cn.fujitsu.com>
>> Reviewed-by: Petr Vorel<pvorel@suse.cz>
> Acked-by: Petr Vorel<pvorel@suse.cz>
> Thanks for your updates.
>
>> ---
>> .../block/block_dev_kernel/ltp_block_dev.c | 64 +++++++++++-----------
>> 1 file changed, 32 insertions(+), 32 deletions(-)
>> diff --git a/testcases/kernel/device-drivers/block/block_dev_kernel/ltp_block_dev.c b/testcases/kernel/device-drivers/block/block_dev_kernel/ltp_block_dev.c
> ...
>> @@ -225,18 +221,22 @@ static int tc04(void)
>> static int tc05(void)
> ...
>
>> - major = register_blkdev(UINT_MAX, BLK_DEV_NAME);
>> - prk_debug("major = %i\n", major);
>> + for (i = 0; i< sizeof(test_major) / sizeof(unsigned int); i++) {
>> + major = register_blkdev(test_major[i], BLK_DEV_NAME);
>> + prk_debug("major = %i\n", major);
>> - if (major == 0) {
>> - unregister_blkdev(UINT_MAX, BLK_DEV_NAME);
>> - } else {
>> - prk_debug("reg blkdev with major %d failed with error %i\n",
>> - UINT_MAX, major);
>> - pass = 0;
>> + if (major == 0) {
> In v1 this was major>= 0.
> It looks to me as well that major == 0 is correct.
Hi Petr,
Thanks for your ack. :-)
According to the comment of register_blkdev() at block/genhd.c in
kernel, i think register_blkdev() only
returns zero or a negative error if a positive major number(i.e.
nonzero) is passed to register_blkdev().
---------------------------------------------------------------------------------------------------------------------------------
||
* - if a major device number was requested in range [1..BLKDEV_MAJOR_MAX-1]
* then the function returns zero on success, or a negative error code
* - if any unused major number was requested with @major = 0 parameter
* then the return value is the allocated major number in range
* [1..BLKDEV_MAJOR_MAX-1] or a negative error code otherwise
---------------------------------------------------------------------------------------------------------------------------------
So i perfer to use major == 0. :-)
Best Regards,
Xiao Yang
>> + unregister_blkdev(test_major[i], BLK_DEV_NAME);
>> + pass = 0;
>> + } else {
>> + prk_debug("register_blkdev() with major %u got error %i\n",
>> + test_major[i], major);
>> + }
>> }
>> prk_info("Test Case Result: %s\n", result_str(pass));
>
> Kind regards,
> Petr
>
>
> .
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.linux.it/pipermail/ltp/attachments/20190211/0df21593/attachment.html>
More information about the ltp
mailing list