diff options
-rw-r--r-- | cpukit/include/rtems/blkdev.h | 1 | ||||
-rw-r--r-- | cpukit/libblock/src/blkdev-imfs.c | 14 | ||||
-rw-r--r-- | testsuites/libtests/block17/init.c | 10 |
3 files changed, 19 insertions, 6 deletions
diff --git a/cpukit/include/rtems/blkdev.h b/cpukit/include/rtems/blkdev.h index 3f829e6068..929cf4fc24 100644 --- a/cpukit/include/rtems/blkdev.h +++ b/cpukit/include/rtems/blkdev.h @@ -296,6 +296,7 @@ rtems_blkdev_ioctl(rtems_disk_device *dd, uint32_t req, void *argp); * @retval RTEMS_INVALID_NUMBER Media block size or count is not positive. * @retval RTEMS_NO_MEMORY Not enough memory. * @retval RTEMS_UNSATISFIED Cannot create generic device node. + * @retval RTEMS_INCORRECT_STATE Cannot initialize bdbuf. * * @see rtems_blkdev_create_partition(), rtems_bdbuf_set_block_size(), and * rtems_blkdev_request. diff --git a/cpukit/libblock/src/blkdev-imfs.c b/cpukit/libblock/src/blkdev-imfs.c index ebe6ebb1d7..a46babb593 100644 --- a/cpukit/libblock/src/blkdev-imfs.c +++ b/cpukit/libblock/src/blkdev-imfs.c @@ -6,10 +6,10 @@ */ /* - * Copyright (c) 2012 embedded brains GmbH. All rights reserved. + * Copyright (c) 2012, 2018 embedded brains GmbH. All rights reserved. * * embedded brains GmbH - * Obere Lagerstr. 30 + * Dornierstr. 4 * 82178 Puchheim * Germany * <rtems@embedded-brains.de> @@ -279,9 +279,15 @@ rtems_status_code rtems_blkdev_create( void *driver_data ) { - rtems_status_code sc = RTEMS_SUCCESSFUL; - rtems_blkdev_imfs_context *ctx = malloc(sizeof(*ctx)); + rtems_status_code sc; + rtems_blkdev_imfs_context *ctx; + + sc = rtems_bdbuf_init(); + if (sc != RTEMS_SUCCESSFUL) { + return RTEMS_INCORRECT_STATE; + } + ctx = malloc(sizeof(*ctx)); if (ctx != NULL) { sc = rtems_disk_init_phys( &ctx->dd, diff --git a/testsuites/libtests/block17/init.c b/testsuites/libtests/block17/init.c index d916c738d5..3346c7cf17 100644 --- a/testsuites/libtests/block17/init.c +++ b/testsuites/libtests/block17/init.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013 embedded brains GmbH. All rights reserved. + * Copyright (c) 2013, 2018 embedded brains GmbH. All rights reserved. * * embedded brains GmbH * Dornierstr. 4 @@ -17,6 +17,7 @@ #endif #include <rtems/bdbuf.h> +#include <rtems/blkdev.h> #include "tmacros.h" @@ -24,8 +25,13 @@ const char rtems_test_name[] = "BLOCK 17"; static void test(void) { - rtems_status_code sc = rtems_bdbuf_init(); + rtems_status_code sc; + + sc = rtems_bdbuf_init(); rtems_test_assert(sc == RTEMS_INVALID_NUMBER); + + sc = rtems_blkdev_create(NULL, 0, 0, NULL, NULL); + rtems_test_assert(sc == RTEMS_INCORRECT_STATE); } static void Init(rtems_task_argument arg) |