[PATCH 1/2] lib: remove fwts_microcode

IvanHu ivan.hu at canonical.com
Fri May 31 07:47:36 UTC 2013


On 05/29/2013 10:31 PM, Colin King wrote:
> 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;
> -}
>

Acked-by: Ivan Hu <ivan.hu at canonical.com>




More information about the fwts-devel mailing list