ac32bf
From 93217061a4b1dc7f287f2715aadc621d2c00425d Mon Sep 17 00:00:00 2001
ac32bf
From: Mauro Carvalho Chehab <mchehab@redhat.com>
ac32bf
Date: Fri, 31 May 2013 13:53:18 -0300
ac32bf
Subject: [PATCH 05/32] ras-record: Make the code easier to add support for other tables
ac32bf
ac32bf
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
ac32bf
---
ac32bf
 ras-record.c |   25 ++++++++-----------------
ac32bf
 1 files changed, 8 insertions(+), 17 deletions(-)
ac32bf
ac32bf
diff --git a/ras-record.c b/ras-record.c
ac32bf
index 298977e..36b3373 100644
ac32bf
--- a/ras-record.c
ac32bf
+++ b/ras-record.c
ac32bf
@@ -143,10 +143,14 @@ static int ras_mc_prepare_stmt(struct sqlite3_priv *priv,
ac32bf
 #endif
ac32bf
 
ac32bf
 	rc = sqlite3_prepare_v2(priv->db, sql, -1, stmt, NULL);
ac32bf
-	if (rc != SQLITE_OK)
ac32bf
+	if (rc != SQLITE_OK) {
ac32bf
 		log(TERM, LOG_ERR,
ac32bf
 		    "Failed to prepare insert db at table %s (db %s): error = %s\n",
ac32bf
 		    db_tab->name, SQLITE_RAS_DB, sqlite3_errmsg(priv->db));
ac32bf
+		stmt = NULL;
ac32bf
+	} else {
ac32bf
+		log(TERM, LOG_INFO, "Recording %s events\n", db_tab->name);
ac32bf
+	}
ac32bf
 
ac32bf
 	return rc;
ac32bf
 }
ac32bf
@@ -225,23 +229,10 @@ int ras_mc_event_opendb(unsigned cpu, struct ras_events *ras)
ac32bf
 	priv->db = db;
ac32bf
 
ac32bf
 	rc = ras_mc_create_table(priv, &mc_event_tab);
ac32bf
-	if (rc != SQLITE_OK) {
ac32bf
-		sqlite3_close(db);
ac32bf
-		free(priv);
ac32bf
-		return -1;
ac32bf
-	}
ac32bf
+	if (rc == SQLITE_OK)
ac32bf
+		rc = ras_mc_prepare_stmt(priv, &priv->stmt_mc_event, &mc_event_tab);
ac32bf
 
ac32bf
-	rc = ras_mc_prepare_stmt(priv, &priv->stmt_mc_event, &mc_event_tab);
ac32bf
-	if (rc == SQLITE_OK) {
ac32bf
-		log(TERM, LOG_INFO,
ac32bf
-		    "cpu %u: Recording events at %s\n",
ac32bf
-		    cpu, SQLITE_RAS_DB);
ac32bf
-		ras->db_priv = priv;
ac32bf
-	} else {
ac32bf
-		sqlite3_close(db);
ac32bf
-		free(priv);
ac32bf
-		return -1;
ac32bf
-	}
ac32bf
 
ac32bf
+	ras->db_priv = priv;
ac32bf
 	return 0;
ac32bf
 }
ac32bf
-- 
ac32bf
1.7.1
ac32bf