change log for rtems (2010-05-13)

rtems-vc at rtems.org rtems-vc at rtems.org
Fri May 14 04:11:02 UTC 2010


 *ccj*:
2010-05-14      Chris Johns <chrisj at rtems.org>

        * libblock/src/flashdisk.c: Clean up on initialisation errors.

M 1.2292  cpukit/ChangeLog
M   1.17  cpukit/libblock/src/flashdisk.c

diff -u rtems/cpukit/ChangeLog:1.2291 rtems/cpukit/ChangeLog:1.2292
--- rtems/cpukit/ChangeLog:1.2291	Fri May  7 04:07:17 2010
+++ rtems/cpukit/ChangeLog	Thu May 13 22:59:11 2010
@@ -1,3 +1,7 @@
+2010-05-14	Chris Johns <chrisj at rtems.org>
+
+	* libblock/src/flashdisk.c: Clean up on initialisation errors.
+	
 2010-05-07	Arnout Vandecappelle <arnout at mind.be>
 
 	PR 1511/networking

diff -u rtems/cpukit/libblock/src/flashdisk.c:1.16 rtems/cpukit/libblock/src/flashdisk.c:1.17
--- rtems/cpukit/libblock/src/flashdisk.c:1.16	Wed Feb 17 18:24:24 2010
+++ rtems/cpukit/libblock/src/flashdisk.c	Thu May 13 22:59:11 2010
@@ -2478,24 +2478,6 @@
       blocks += rtems_fdisk_blocks_in_device (&c->devices[device],
                                               c->block_size);
 
-    sc = rtems_disk_create_phys(dev, c->block_size,
-                                blocks - fd->unavail_blocks,
-                                rtems_fdisk_ioctl, NULL, name);
-    if (sc != RTEMS_SUCCESSFUL)
-    {
-      rtems_fdisk_error ("disk create phy failed");
-      return sc;
-    }
-
-    sc = rtems_semaphore_create (rtems_build_name ('F', 'D', 'S', 'K'), 1,
-                                 RTEMS_PRIORITY | RTEMS_BINARY_SEMAPHORE |
-                                 RTEMS_INHERIT_PRIORITY, 0, &fd->lock);
-    if (sc != RTEMS_SUCCESSFUL)
-    {
-      rtems_fdisk_error ("disk lock create failed");
-      return sc;
-    }
-
     /*
      * One copy buffer of a page size.
      */
@@ -2513,6 +2495,32 @@
     if (!fd->devices)
       return RTEMS_NO_MEMORY;
 
+    sc = rtems_semaphore_create (rtems_build_name ('F', 'D', 'S', 'K'), 1,
+                                 RTEMS_PRIORITY | RTEMS_BINARY_SEMAPHORE |
+                                 RTEMS_INHERIT_PRIORITY, 0, &fd->lock);
+    if (sc != RTEMS_SUCCESSFUL)
+    {
+      rtems_fdisk_error ("disk lock create failed");
+      free (fd->copy_buffer);
+      free (fd->blocks);
+      free (fd->devices);
+      return sc;
+    }
+
+    sc = rtems_disk_create_phys(dev, c->block_size,
+                                blocks - fd->unavail_blocks,
+                                rtems_fdisk_ioctl, NULL, name);
+    if (sc != RTEMS_SUCCESSFUL)
+    {
+      rtems_semaphore_delete (fd->lock);
+      rtems_disk_delete (dev);
+      free (fd->copy_buffer);
+      free (fd->blocks);
+      free (fd->devices);
+      rtems_fdisk_error ("disk create phy failed");
+      return sc;
+    }
+
     for (device = 0; device < c->device_count; device++)
     {
       rtems_fdisk_segment_ctl* sc;
@@ -2524,8 +2532,15 @@
       fd->devices[device].segments = calloc (segment_count,
                                              sizeof (rtems_fdisk_segment_ctl));
       if (!fd->devices[device].segments)
+      {
+        rtems_disk_delete (dev);
+        rtems_semaphore_delete (fd->lock);
+        free (fd->copy_buffer);
+        free (fd->blocks);
+        free (fd->devices);
         return RTEMS_NO_MEMORY;
-
+      }
+      
       sc = fd->devices[device].segments;
 
       for (segment = 0; segment < c->devices[device].segment_count; segment++)
@@ -2552,13 +2567,27 @@
 
     ret = rtems_fdisk_recover_block_mappings (fd);
     if (ret)
+    {
+      rtems_disk_delete (dev);
+      rtems_semaphore_delete (fd->lock);
+      free (fd->copy_buffer);
+      free (fd->blocks);
+      free (fd->devices);
       rtems_fdisk_error ("recovery of disk failed: %s (%d)",
                          strerror (ret), ret);
-
+    }
+    
     ret = rtems_fdisk_compact (fd);
     if (ret)
+    {
+      rtems_disk_delete (dev);
+      rtems_semaphore_delete (fd->lock);
+      free (fd->copy_buffer);
+      free (fd->blocks);
+      free (fd->devices);
       rtems_fdisk_error ("compacting of disk failed: %s (%d)",
                          strerror (ret), ret);
+    }
   }
 
   rtems_flashdisk_count = rtems_flashdisk_configuration_size;


 *ccj*:
Whitespace clean up.

M    1.5  cpukit/libcsupport/src/libio_init.c

diff -u rtems/cpukit/libcsupport/src/libio_init.c:1.4 rtems/cpukit/libcsupport/src/libio_init.c:1.5
--- rtems/cpukit/libcsupport/src/libio_init.c:1.4	Tue Sep 15 04:49:52 2009
+++ rtems/cpukit/libcsupport/src/libio_init.c	Thu May 13 23:04:25 2010
@@ -61,9 +61,9 @@
             rtems_fatal_error_occurred(RTEMS_NO_MEMORY);
 
         iop = rtems_libio_iop_freelist = rtems_libio_iops;
-	for (i = 0 ; (i + 1) < rtems_libio_number_iops ; i++, iop++)
-		iop->data1 = iop + 1;
-	iop->data1 = NULL;
+        for (i = 0 ; (i + 1) < rtems_libio_number_iops ; i++, iop++)
+          iop->data1 = iop + 1;
+        iop->data1 = NULL;
     }
 
   /*



--

Generated by Deluxe Loginfo [http://www.codewiz.org/projects/index.html#loginfo] 2.122 by Bernardo Innocenti <bernie at develer.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/vc/attachments/20100513/24995ee8/attachment-0001.html>


More information about the vc mailing list