* [LTP] [PATCH] block/ltp_block_dev.c: Update tests for the newer kernel
@ 2018-12-28 7:03 Xiao Yang
2019-02-06 7:06 ` Petr Vorel
0 siblings, 1 reply; 7+ messages in thread
From: Xiao Yang @ 2018-12-28 7:03 UTC (permalink / raw)
To: ltp
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>
---
.../block/block_dev_kernel/ltp_block_dev.c | 47 +++++++++++++---------
1 file changed, 29 insertions(+), 18 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
index d573085..8aeb6bb 100644
--- 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
@@ -52,7 +52,8 @@ MODULE_LICENSE("GPL");
* |--------------------------+---------+-------------
* | [1..255] | valid | tc03
* |--------------------------+---------+-------------
- * | [256..UINT_MAX] | valid | tc04, tc05
+ * | [256..511] | valid | tc04
+ * | [512..UINT_MAX] | invalid | tc05
* -----------+--------------------------+---------+-------------
* name | [valid pointer to a zero | |
* | terminated string] | valid | tc01, tc02
@@ -205,17 +206,24 @@ static int tc03(void)
static int tc04(void)
{
int major, pass = 8;
+ unsigned int i, test_major[2] = {256, 511};
- prk_info("Test Case 4: register_blkdev() with major=256\n");
+ prk_info("Test Case 4: register_blkdev() with major=256/511\n");
- major = register_blkdev(256, 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(256, BLK_DEV_NAME);
- } else {
- pass = 0;
- prk_debug("register_blkdev() failed with error %i\n", major);
+ if (major == 0) {
+ unregister_blkdev(test_major[i], BLK_DEV_NAME);
+ } else if (major == -EBUSY) {
+ prk_debug("device was busy, register_blkdev() with "
+ "major %u skipped\n", test_major[i]);
+ } else {
+ pass = 0;
+ 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));
@@ -225,18 +233,21 @@ static int tc04(void)
static int tc05(void)
{
int major, pass = 16;
+ unsigned int i, test_major[2] = {512, UINT_MAX};
- prk_info("Test Case 5: register_blkdev() with major=%u\n", UINT_MAX);
+ prk_info("Test Case 5: register_blkdev() with major=512/%u\n", UINT_MAX);
- 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) {
+ 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));
--
1.8.3.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [LTP] [PATCH] block/ltp_block_dev.c: Update tests for the newer kernel
2018-12-28 7:03 [LTP] [PATCH] block/ltp_block_dev.c: Update tests for the newer kernel Xiao Yang
@ 2019-02-06 7:06 ` Petr Vorel
2019-02-08 2:08 ` Xiao Yang
2019-02-08 3:37 ` [LTP] [PATCH v2] " Xiao Yang
0 siblings, 2 replies; 7+ messages in thread
From: Petr Vorel @ 2019-02-06 7:06 UTC (permalink / raw)
To: ltp
Hi Xiao,
...
> +++ b/testcases/kernel/device-drivers/block/block_dev_kernel/ltp_block_dev.c
> @@ -52,7 +52,8 @@ MODULE_LICENSE("GPL");
> * |--------------------------+---------+-------------
> * | [1..255] | valid | tc03
> * |--------------------------+---------+-------------
> - * | [256..UINT_MAX] | valid | tc04, tc05
> + * | [256..511] | valid | tc04
> + * | [512..UINT_MAX] | invalid | tc05
> * -----------+--------------------------+---------+-------------
> * name | [valid pointer to a zero | |
> * | terminated string] | valid | tc01, tc02
> @@ -205,17 +206,24 @@ static int tc03(void)
> static int tc04(void)
> {
> int major, pass = 8;
> + unsigned int i, test_major[2] = {256, 511};
> - prk_info("Test Case 4: register_blkdev() with major=256\n");
> + prk_info("Test Case 4: register_blkdev() with major=256/511\n");
Could we use test_major[0] and test_major[1] here?
> - major = register_blkdev(256, 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(256, BLK_DEV_NAME);
> - } else {
> - pass = 0;
> - prk_debug("register_blkdev() failed with error %i\n", major);
> + if (major == 0) {
> + unregister_blkdev(test_major[i], BLK_DEV_NAME);
> + } else if (major == -EBUSY) {
> + prk_debug("device was busy, register_blkdev() with "
> + "major %u skipped\n", test_major[i]);
> + } else {
> + pass = 0;
> + 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));
> @@ -225,18 +233,21 @@ static int tc04(void)
> static int tc05(void)
> {
> int major, pass = 16;
> + unsigned int i, test_major[2] = {512, UINT_MAX};
> - prk_info("Test Case 5: register_blkdev() with major=%u\n", UINT_MAX);
> + prk_info("Test Case 5: register_blkdev() with major=512/%u\n", UINT_MAX);
> - 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) {
> + 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);
I'd prefer to have string on a single line.
+ I'd replace licence info at the top with SPDX-License-Identifier.
Otherwise it looks good to me.
Kind regards,
Petr
^ permalink raw reply [flat|nested] 7+ messages in thread
* [LTP] [PATCH] block/ltp_block_dev.c: Update tests for the newer kernel
2019-02-06 7:06 ` Petr Vorel
@ 2019-02-08 2:08 ` Xiao Yang
2019-02-08 3:37 ` [LTP] [PATCH v2] " Xiao Yang
1 sibling, 0 replies; 7+ messages in thread
From: Xiao Yang @ 2019-02-08 2:08 UTC (permalink / raw)
To: ltp
On 2019/02/06 15:06, Petr Vorel wrote:
> Hi Xiao,
>
> ...
>> +++ b/testcases/kernel/device-drivers/block/block_dev_kernel/ltp_block_dev.c
>> @@ -52,7 +52,8 @@ MODULE_LICENSE("GPL");
>> * |--------------------------+---------+-------------
>> * | [1..255] | valid | tc03
>> * |--------------------------+---------+-------------
>> - * | [256..UINT_MAX] | valid | tc04, tc05
>> + * | [256..511] | valid | tc04
>> + * | [512..UINT_MAX] | invalid | tc05
>> * -----------+--------------------------+---------+-------------
>> * name | [valid pointer to a zero | |
>> * | terminated string] | valid | tc01, tc02
>> @@ -205,17 +206,24 @@ static int tc03(void)
>> static int tc04(void)
>> {
>> int major, pass = 8;
>> + unsigned int i, test_major[2] = {256, 511};
>> - prk_info("Test Case 4: register_blkdev() with major=256\n");
>> + prk_info("Test Case 4: register_blkdev() with major=256/511\n");
> Could we use test_major[0] and test_major[1] here?
>
>> - major = register_blkdev(256, 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(256, BLK_DEV_NAME);
>> - } else {
>> - pass = 0;
>> - prk_debug("register_blkdev() failed with error %i\n", major);
>> + if (major == 0) {
>> + unregister_blkdev(test_major[i], BLK_DEV_NAME);
>> + } else if (major == -EBUSY) {
>> + prk_debug("device was busy, register_blkdev() with "
>> + "major %u skipped\n", test_major[i]);
>> + } else {
>> + pass = 0;
>> + 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));
>> @@ -225,18 +233,21 @@ static int tc04(void)
>> static int tc05(void)
>> {
>> int major, pass = 16;
>> + unsigned int i, test_major[2] = {512, UINT_MAX};
>> - prk_info("Test Case 5: register_blkdev() with major=%u\n", UINT_MAX);
>> + prk_info("Test Case 5: register_blkdev() with major=512/%u\n", UINT_MAX);
>> - 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) {
>> + 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);
> I'd prefer to have string on a single line.
>
> + I'd replace licence info at the top with SPDX-License-Identifier.
>
> Otherwise it looks good to me.
Hi Petr,
Thanks for your comment, and i will send v2 patch as you suggested. :-)
Best Regards,
Xiao Yang
> Kind regards,
> Petr
>
>
> .
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* [LTP] [PATCH v2] block/ltp_block_dev.c: Update tests for the newer kernel
2019-02-06 7:06 ` Petr Vorel
2019-02-08 2:08 ` Xiao Yang
@ 2019-02-08 3:37 ` Xiao Yang
2019-02-08 11:48 ` Petr Vorel
1 sibling, 1 reply; 7+ messages in thread
From: Xiao Yang @ 2019-02-08 3:37 UTC (permalink / raw)
To: ltp
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>
---
.../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
index d573085..b0f6ce5 100644
--- 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
@@ -1,20 +1,7 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
/*
* Copyright (c) 2013 Oracle and/or its affiliates. All Rights Reserved.
*
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it would be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
* Only those functions are tested here which are declared in <linux/fs.h>
*
* Changes:
@@ -52,7 +39,8 @@ MODULE_LICENSE("GPL");
* |--------------------------+---------+-------------
* | [1..255] | valid | tc03
* |--------------------------+---------+-------------
- * | [256..UINT_MAX] | valid | tc04, tc05
+ * | [256..511] | valid | tc04
+ * | [512..UINT_MAX] | invalid | tc05
* -----------+--------------------------+---------+-------------
* name | [valid pointer to a zero | |
* | terminated string] | valid | tc01, tc02
@@ -205,17 +193,25 @@ static int tc03(void)
static int tc04(void)
{
int major, pass = 8;
+ unsigned int i, test_major[2] = {256, 511};
- prk_info("Test Case 4: register_blkdev() with major=256\n");
+ prk_info("Test Case 4: register_blkdev() with major=%u/%u\n",
+ test_major[0], test_major[1]);
- major = register_blkdev(256, 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(256, BLK_DEV_NAME);
- } else {
- pass = 0;
- prk_debug("register_blkdev() failed with error %i\n", major);
+ if (major == 0) {
+ unregister_blkdev(test_major[i], BLK_DEV_NAME);
+ } else if (major == -EBUSY) {
+ prk_debug("device was busy, register_blkdev() with major %u skipped\n",
+ test_major[i]);
+ } else {
+ pass = 0;
+ 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));
@@ -225,18 +221,22 @@ static int tc04(void)
static int tc05(void)
{
int major, pass = 16;
+ unsigned int i, test_major[2] = {512, UINT_MAX};
- prk_info("Test Case 5: register_blkdev() with major=%u\n", UINT_MAX);
+ prk_info("Test Case 5: register_blkdev() with major=%u/%u\n",
+ test_major[0], test_major[1]);
- 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) {
+ 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));
--
1.8.3.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [LTP] [PATCH v2] block/ltp_block_dev.c: Update tests for the newer kernel
2019-02-08 3:37 ` [LTP] [PATCH v2] " Xiao Yang
@ 2019-02-08 11:48 ` Petr Vorel
2019-02-11 2:18 ` Xiao Yang
2019-02-13 10:11 ` Xiao Yang
0 siblings, 2 replies; 7+ messages in thread
From: Petr Vorel @ 2019-02-08 11:48 UTC (permalink / raw)
To: ltp
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.
> + 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
^ permalink raw reply [flat|nested] 7+ messages in thread
* [LTP] [PATCH v2] block/ltp_block_dev.c: Update tests for the newer kernel
2019-02-08 11:48 ` Petr Vorel
@ 2019-02-11 2:18 ` Xiao Yang
2019-02-13 10:11 ` Xiao Yang
1 sibling, 0 replies; 7+ messages in thread
From: Xiao Yang @ 2019-02-11 2:18 UTC (permalink / raw)
To: ltp
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>
^ permalink raw reply [flat|nested] 7+ messages in thread
* [LTP] [PATCH v2] block/ltp_block_dev.c: Update tests for the newer kernel
2019-02-08 11:48 ` Petr Vorel
2019-02-11 2:18 ` Xiao Yang
@ 2019-02-13 10:11 ` Xiao Yang
1 sibling, 0 replies; 7+ messages in thread
From: Xiao Yang @ 2019-02-13 10:11 UTC (permalink / raw)
To: ltp
Hi Petr,
Pushed, thanks for your review again. :-)
Best Regards,
Xiao Yang
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.
>
>> + 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
>
>
> .
>
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2019-02-13 10:11 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-12-28 7:03 [LTP] [PATCH] block/ltp_block_dev.c: Update tests for the newer kernel Xiao Yang
2019-02-06 7:06 ` Petr Vorel
2019-02-08 2:08 ` Xiao Yang
2019-02-08 3:37 ` [LTP] [PATCH v2] " Xiao Yang
2019-02-08 11:48 ` Petr Vorel
2019-02-11 2:18 ` Xiao Yang
2019-02-13 10:11 ` Xiao Yang
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox