libblock: Init deps in rtems_blkdev_create()

Update #3358.
This commit is contained in:
Sebastian Huber
2018-03-03 13:24:42 +01:00
parent 9d62874193
commit 30c389849d
3 changed files with 19 additions and 6 deletions

View File

@@ -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_INVALID_NUMBER Media block size or count is not positive.
* @retval RTEMS_NO_MEMORY Not enough memory. * @retval RTEMS_NO_MEMORY Not enough memory.
* @retval RTEMS_UNSATISFIED Cannot create generic device node. * @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 * @see rtems_blkdev_create_partition(), rtems_bdbuf_set_block_size(), and
* rtems_blkdev_request. * rtems_blkdev_request.

View File

@@ -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 * embedded brains GmbH
* Obere Lagerstr. 30 * Dornierstr. 4
* 82178 Puchheim * 82178 Puchheim
* Germany * Germany
* <rtems@embedded-brains.de> * <rtems@embedded-brains.de>
@@ -279,9 +279,15 @@ rtems_status_code rtems_blkdev_create(
void *driver_data void *driver_data
) )
{ {
rtems_status_code sc = RTEMS_SUCCESSFUL; rtems_status_code sc;
rtems_blkdev_imfs_context *ctx = malloc(sizeof(*ctx)); rtems_blkdev_imfs_context *ctx;
sc = rtems_bdbuf_init();
if (sc != RTEMS_SUCCESSFUL) {
return RTEMS_INCORRECT_STATE;
}
ctx = malloc(sizeof(*ctx));
if (ctx != NULL) { if (ctx != NULL) {
sc = rtems_disk_init_phys( sc = rtems_disk_init_phys(
&ctx->dd, &ctx->dd,

View File

@@ -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 * embedded brains GmbH
* Dornierstr. 4 * Dornierstr. 4
@@ -17,6 +17,7 @@
#endif #endif
#include <rtems/bdbuf.h> #include <rtems/bdbuf.h>
#include <rtems/blkdev.h>
#include "tmacros.h" #include "tmacros.h"
@@ -24,8 +25,13 @@ const char rtems_test_name[] = "BLOCK 17";
static void test(void) 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); 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) static void Init(rtems_task_argument arg)