[PATCH 1/2] lib: remove fwts_microcode

Colin King colin.king at canonical.com
Wed May 29 14:31:04 UTC 2013


From: Colin Ian King <colin.king at canonical.com>

Remove legacy microcode loading, we won't require this if we just
parse the kernel load and scan for microcode update messages.

Signed-off-by: Colin Ian King <colin.king at canonical.com>
---
 src/lib/include/fwts.h           |   1 -
 src/lib/include/fwts_microcode.h |  28 ----------
 src/lib/src/Makefile.am          |   1 -
 src/lib/src/fwts_microcode.c     | 117 ---------------------------------------
 4 files changed, 147 deletions(-)
 delete mode 100644 src/lib/include/fwts_microcode.h
 delete mode 100644 src/lib/src/fwts_microcode.c

diff --git a/src/lib/include/fwts.h b/src/lib/include/fwts.h
index 680eab9..ba1b312 100644
--- a/src/lib/include/fwts.h
+++ b/src/lib/include/fwts.h
@@ -59,7 +59,6 @@
 #include "fwts_formatting.h"
 #include "fwts_summary.h"
 #include "fwts_mmap.h"
-#include "fwts_microcode.h"
 #include "fwts_interactive.h"
 #include "fwts_keymap.h"
 #include "fwts_cmos.h"
diff --git a/src/lib/include/fwts_microcode.h b/src/lib/include/fwts_microcode.h
deleted file mode 100644
index 886b4eb..0000000
--- a/src/lib/include/fwts_microcode.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright (C) 2010-2013 Canonical
- *
- * 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 will 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 to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- */
-
-#ifndef __FWTS_MICROCODE_H__
-#define __FWTS_MICROCODE_H__
-
-#define FWTS_MICROCODE_DEVICE	"/dev/cpu/microcode"
-#define FWTS_MICROCODE_FILE	"/usr/share/misc/intel-microcode.dat"
-
-int fwts_update_microcode(fwts_framework *fw, const char *device, const char *filename);
-
-#endif
diff --git a/src/lib/src/Makefile.am b/src/lib/src/Makefile.am
index 4d9ab38..662d27f 100644
--- a/src/lib/src/Makefile.am
+++ b/src/lib/src/Makefile.am
@@ -54,7 +54,6 @@ libfwts_la_SOURCES = 		\
 	fwts_log_plaintext.c 	\
 	fwts_log_xml.c 		\
 	fwts_memorymap.c 	\
-	fwts_microcode.c 	\
 	fwts_mmap.c 		\
 	fwts_multiproc.c 	\
 	fwts_oops.c 		\
diff --git a/src/lib/src/fwts_microcode.c b/src/lib/src/fwts_microcode.c
deleted file mode 100644
index 0bcbc4b..0000000
--- a/src/lib/src/fwts_microcode.c
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * Copyright 2000 (c) Simon Trimmer, Tigran Aivazian.
- * Copyright (C) 2010-2013 Canonical
- *
- * Originally microcode_ctl.c
- * Manipulate /dev/cpu/microcode under Linux
- *
- * 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 will 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 to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- */
-
-#include <fcntl.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <unistd.h>
-#include <string.h>
-
-#include "fwts.h"
-
-#define BUFFER_SIZE	(4096)
-#define MICROCODE_SIZE 	(128*1024) 	/* initial size, expanded as needed */
-
-/*
- *  fwts_update_microcode()
- * 	load given microcode file into a processor
- */
-int fwts_update_microcode(fwts_framework *fw, const char *device, const char *filename)
-{
-	FILE *fp;
-	char line_buffer[BUFFER_SIZE];
-	size_t microcode_size = MICROCODE_SIZE/sizeof(unsigned);
-	unsigned *microcode;
-	size_t pos = 0;
-	int fd;
-	int wrote, length;
-
-	if ((microcode = calloc(1, microcode_size * sizeof(unsigned))) == NULL) {
-		fwts_log_error(fw, "Cannot allocate memory.");
-		return FWTS_ERROR;
-	}
-
-	if ((fp = fopen(filename, "r")) == NULL) {
-		fwts_log_error(fw, "Cannot open source '%s'.", filename);
-		free(microcode);
-		return FWTS_ERROR;
-	}
-
-	while (fgets(line_buffer, BUFFER_SIZE, fp) != NULL) {
-		/*
-		 * Expand microcode buffer if needed
-		 */
-		if (microcode_size < pos + 4) {
-                    microcode_size *= 2;
-                    microcode = realloc(microcode,
-                                       microcode_size * sizeof(unsigned int));
-			if (microcode == NULL) {
-				fwts_log_error(fw, "Cannot allocate memory.");
-				fclose(fp);
-				return FWTS_ERROR;
-			}
-		}
-		/*
-		 * Data lines will are of the form "%x, %x, %x, %x", therefore
-		 * lines start with a 0
-		 */
-		if (*line_buffer == '0') {
-			int scanned;
-			scanned = sscanf(line_buffer, "%x, %x, %x, %x",
-					microcode + pos,
-					microcode + pos + 1,
-					microcode + pos + 2,
-					microcode + pos + 3);
-			if (scanned != 4) {
-				fwts_log_error(fw, "%s: invalid file format", filename);
-				fclose(fp);
-				free(microcode);
-				return FWTS_ERROR;
-			}
-			pos += 4;
-		}
-	}
-	fclose(fp);
-
-	length = pos * sizeof(unsigned int);
-
-	if ((fd = open(device, O_WRONLY)) == -1) {
-		fwts_log_error(fw, "Cannot open %s for writing errno=%d (%s)\n",
-				device, errno, strerror(errno));
-		free(microcode);
-		return FWTS_ERROR;
-	}
-
-	if ((wrote = write(fd, microcode, length)) < 0) {
-		fwts_log_error(fw, "Error writing microcode.");
-		close(fd);
-		free(microcode);
-		return FWTS_ERROR;
-	}
-
-	close(fd);
-	free(microcode);
-
-	return FWTS_OK;
-}
-- 
1.8.1.2




More information about the fwts-devel mailing list