linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [Patch 0/3] firmware: dmi_scan: add some SMBIOSv3 corrections
@ 2015-02-11  9:46 Ivan Khoronzhuk
  2015-02-11  9:46 ` [Patch 1/3] firmware: dmi_scan: use direct access to static vars Ivan Khoronzhuk
                   ` (2 more replies)
  0 siblings, 3 replies; 11+ messages in thread
From: Ivan Khoronzhuk @ 2015-02-11  9:46 UTC (permalink / raw)
  To: matt.fleming, ard.biesheuvel; +Cc: leif.lindholm, linux-kernel, Ivan Khoronzhuk

This series adds corrections to dmi_scan:
- extends version to be like 3.4.5 format
- fix dmi_len to be 32 bit wide

Ivan Khoronzhuk (3):
  firmware: dmi_scan: use direct access to static vars
  firmware: dmi_scan: fix dmi_len type
  firmware: dmi_scan: use full dmi version for SMBIOS3

 drivers/firmware/dmi_scan.c | 27 +++++++++++++++------------
 1 file changed, 15 insertions(+), 12 deletions(-)

-- 
1.9.1


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Patch 1/3] firmware: dmi_scan: use direct access to static vars
  2015-02-11  9:46 [Patch 0/3] firmware: dmi_scan: add some SMBIOSv3 corrections Ivan Khoronzhuk
@ 2015-02-11  9:46 ` Ivan Khoronzhuk
  2015-02-11  9:46 ` [Patch 2/3] firmware: dmi_scan: fix dmi_len type Ivan Khoronzhuk
  2015-02-11  9:46 ` [Patch 3/3] firmware: dmi_scan: use full dmi version for SMBIOS3 Ivan Khoronzhuk
  2 siblings, 0 replies; 11+ messages in thread
From: Ivan Khoronzhuk @ 2015-02-11  9:46 UTC (permalink / raw)
  To: matt.fleming, ard.biesheuvel; +Cc: leif.lindholm, linux-kernel, Ivan Khoronzhuk

There is no reason to pass static vars to function that can use
only them.

The dmi_table() can use only dmi_len and dmi_num static vars, so use
them directly. In this case we can freely change their type in one
place and slightly decrease redundancy.

Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@linaro.org>
---
 drivers/firmware/dmi_scan.c | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/drivers/firmware/dmi_scan.c b/drivers/firmware/dmi_scan.c
index d55c712..fb16203 100644
--- a/drivers/firmware/dmi_scan.c
+++ b/drivers/firmware/dmi_scan.c
@@ -18,6 +18,8 @@
 static const char dmi_empty_string[] = "        ";
 
 static u16 __initdata dmi_ver;
+static u16 dmi_len;
+static u16 dmi_num;
 /*
  * Catch too early calls to dmi_check_system():
  */
@@ -78,7 +80,7 @@ static const char * __init dmi_string(const struct dmi_header *dm, u8 s)
  *	We have to be cautious here. We have seen BIOSes with DMI pointers
  *	pointing to completely the wrong place for example
  */
-static void dmi_table(u8 *buf, int len, int num,
+static void dmi_table(u8 *buf,
 		      void (*decode)(const struct dmi_header *, void *),
 		      void *private_data)
 {
@@ -89,7 +91,8 @@ static void dmi_table(u8 *buf, int len, int num,
 	 *	Stop when we see all the items the table claimed to have
 	 *	OR we run off the end of the table (also happens)
 	 */
-	while ((i < num) && (data - buf + sizeof(struct dmi_header)) <= len) {
+	while ((i < dmi_num) && (data - buf + sizeof(struct dmi_header))
+		<= dmi_len) {
 		const struct dmi_header *dm = (const struct dmi_header *)data;
 
 		/*
@@ -104,9 +107,9 @@ static void dmi_table(u8 *buf, int len, int num,
 		 *  table in dmi_decode or dmi_string
 		 */
 		data += dm->length;
-		while ((data - buf < len - 1) && (data[0] || data[1]))
+		while ((data - buf < dmi_len - 1) && (data[0] || data[1]))
 			data++;
-		if (data - buf < len - 1)
+		if (data - buf < dmi_len - 1)
 			decode(dm, private_data);
 		data += 2;
 		i++;
@@ -116,8 +119,6 @@ static void dmi_table(u8 *buf, int len, int num,
 static u8 smbios_header[32];
 static int smbios_header_size;
 static phys_addr_t dmi_base;
-static u16 dmi_len;
-static u16 dmi_num;
 
 static int __init dmi_walk_early(void (*decode)(const struct dmi_header *,
 		void *))
@@ -128,7 +129,7 @@ static int __init dmi_walk_early(void (*decode)(const struct dmi_header *,
 	if (buf == NULL)
 		return -1;
 
-	dmi_table(buf, dmi_len, dmi_num, decode, NULL);
+	dmi_table(buf, decode, NULL);
 
 	add_device_randomness(buf, dmi_len);
 
@@ -908,7 +909,7 @@ int dmi_walk(void (*decode)(const struct dmi_header *, void *),
 	if (buf == NULL)
 		return -1;
 
-	dmi_table(buf, dmi_len, dmi_num, decode, private_data);
+	dmi_table(buf, decode, private_data);
 
 	dmi_unmap(buf);
 	return 0;
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [Patch 2/3] firmware: dmi_scan: fix dmi_len type
  2015-02-11  9:46 [Patch 0/3] firmware: dmi_scan: add some SMBIOSv3 corrections Ivan Khoronzhuk
  2015-02-11  9:46 ` [Patch 1/3] firmware: dmi_scan: use direct access to static vars Ivan Khoronzhuk
@ 2015-02-11  9:46 ` Ivan Khoronzhuk
  2015-02-11  9:53   ` Ard Biesheuvel
  2015-02-11  9:46 ` [Patch 3/3] firmware: dmi_scan: use full dmi version for SMBIOS3 Ivan Khoronzhuk
  2 siblings, 1 reply; 11+ messages in thread
From: Ivan Khoronzhuk @ 2015-02-11  9:46 UTC (permalink / raw)
  To: matt.fleming, ard.biesheuvel; +Cc: leif.lindholm, linux-kernel, Ivan Khoronzhuk

According to SMBIOSv3 specification the length of DMI table can be
up to 32bits wide. So use appropriate type to avoid overflow.

It's obvious that dmi_num theoretically can be more than u16 also,
so it's can be changed to u32 or at least it's better to use int
instead of u16, but on that moment I cannot imagine dmi structure
count more than 65535 and it can require changing type of vars that
work with it. So I didn't correct it.

Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@linaro.org>
---
 drivers/firmware/dmi_scan.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/firmware/dmi_scan.c b/drivers/firmware/dmi_scan.c
index fb16203..952e95c 100644
--- a/drivers/firmware/dmi_scan.c
+++ b/drivers/firmware/dmi_scan.c
@@ -18,7 +18,7 @@
 static const char dmi_empty_string[] = "        ";
 
 static u16 __initdata dmi_ver;
-static u16 dmi_len;
+static u32 dmi_len;
 static u16 dmi_num;
 /*
  * Catch too early calls to dmi_check_system():
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [Patch 3/3] firmware: dmi_scan: use full dmi version for SMBIOS3
  2015-02-11  9:46 [Patch 0/3] firmware: dmi_scan: add some SMBIOSv3 corrections Ivan Khoronzhuk
  2015-02-11  9:46 ` [Patch 1/3] firmware: dmi_scan: use direct access to static vars Ivan Khoronzhuk
  2015-02-11  9:46 ` [Patch 2/3] firmware: dmi_scan: fix dmi_len type Ivan Khoronzhuk
@ 2015-02-11  9:46 ` Ivan Khoronzhuk
  2015-02-11  9:55   ` Ard Biesheuvel
  2 siblings, 1 reply; 11+ messages in thread
From: Ivan Khoronzhuk @ 2015-02-11  9:46 UTC (permalink / raw)
  To: matt.fleming, ard.biesheuvel; +Cc: leif.lindholm, linux-kernel, Ivan Khoronzhuk

New SMBIOS3 spec adds additional field for versioning - docrev.
The docrev identifies the revision of a specification implemented in
the table structures, so display SMBIOS version > 3 in format,
like: 3.22.1

It's not affect on other part of code because version number
is analyzed using comparing, and it's obvious that 0x000208 is less
than 0x030201 for example.

Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@linaro.org>
---
 drivers/firmware/dmi_scan.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/drivers/firmware/dmi_scan.c b/drivers/firmware/dmi_scan.c
index 952e95c..e4a2d25 100644
--- a/drivers/firmware/dmi_scan.c
+++ b/drivers/firmware/dmi_scan.c
@@ -17,7 +17,7 @@
  */
 static const char dmi_empty_string[] = "        ";
 
-static u16 __initdata dmi_ver;
+static u32 dmi_ver __initdata;
 static u32 dmi_len;
 static u16 dmi_num;
 /*
@@ -534,7 +534,8 @@ static int __init dmi_smbios3_present(const u8 *buf)
 {
 	if (memcmp(buf, "_SM3_", 5) == 0 &&
 	    buf[6] < 32 && dmi_checksum(buf, buf[6])) {
-		dmi_ver = get_unaligned_be16(buf + 7);
+		dmi_ver = get_unaligned_be32(buf + 6);
+		dmi_ver &= 0xFFFFFF;
 		dmi_len = get_unaligned_le32(buf + 12);
 		dmi_base = get_unaligned_le64(buf + 16);
 		smbios_header_size = buf[6];
@@ -553,8 +554,9 @@ static int __init dmi_smbios3_present(const u8 *buf)
 		dmi_num = dmi_len / 4;
 
 		if (dmi_walk_early(dmi_decode) == 0) {
-			pr_info("SMBIOS %d.%d present.\n",
-				dmi_ver >> 8, dmi_ver & 0xFF);
+			pr_info("SMBIOS %d.%d.%d present.\n",
+				dmi_ver >> 16, (dmi_ver >> 8) & 0xFF,
+				dmi_ver & 0xFF);
 			dmi_format_ids(dmi_ids_string, sizeof(dmi_ids_string));
 			pr_debug("DMI: %s\n", dmi_ids_string);
 			return 0;
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [Patch 2/3] firmware: dmi_scan: fix dmi_len type
  2015-02-11  9:46 ` [Patch 2/3] firmware: dmi_scan: fix dmi_len type Ivan Khoronzhuk
@ 2015-02-11  9:53   ` Ard Biesheuvel
  2015-02-11 10:10     ` Ivan Khoronzhuk
  0 siblings, 1 reply; 11+ messages in thread
From: Ard Biesheuvel @ 2015-02-11  9:53 UTC (permalink / raw)
  To: Ivan Khoronzhuk; +Cc: Matt Fleming, Leif Lindholm, linux-kernel

On 11 February 2015 at 17:46, Ivan Khoronzhuk
<ivan.khoronzhuk@linaro.org> wrote:
> According to SMBIOSv3 specification the length of DMI table can be
> up to 32bits wide. So use appropriate type to avoid overflow.
>
> It's obvious that dmi_num theoretically can be more than u16 also,
> so it's can be changed to u32 or at least it's better to use int
> instead of u16, but on that moment I cannot imagine dmi structure
> count more than 65535 and it can require changing type of vars that
> work with it. So I didn't correct it.
>
> Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@linaro.org>

Acked-by: Ard Biesheuvel <ard@linaro.org>

This should get a cc stable as well.

-- 
Ard.

> ---
>  drivers/firmware/dmi_scan.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/firmware/dmi_scan.c b/drivers/firmware/dmi_scan.c
> index fb16203..952e95c 100644
> --- a/drivers/firmware/dmi_scan.c
> +++ b/drivers/firmware/dmi_scan.c
> @@ -18,7 +18,7 @@
>  static const char dmi_empty_string[] = "        ";
>
>  static u16 __initdata dmi_ver;
> -static u16 dmi_len;
> +static u32 dmi_len;
>  static u16 dmi_num;
>  /*
>   * Catch too early calls to dmi_check_system():
> --
> 1.9.1
>

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Patch 3/3] firmware: dmi_scan: use full dmi version for SMBIOS3
  2015-02-11  9:46 ` [Patch 3/3] firmware: dmi_scan: use full dmi version for SMBIOS3 Ivan Khoronzhuk
@ 2015-02-11  9:55   ` Ard Biesheuvel
  2015-02-11 10:08     ` Ivan Khoronzhuk
  0 siblings, 1 reply; 11+ messages in thread
From: Ard Biesheuvel @ 2015-02-11  9:55 UTC (permalink / raw)
  To: Ivan Khoronzhuk; +Cc: Matt Fleming, Leif Lindholm, linux-kernel

On 11 February 2015 at 17:46, Ivan Khoronzhuk
<ivan.khoronzhuk@linaro.org> wrote:
> New SMBIOS3 spec adds additional field for versioning - docrev.
> The docrev identifies the revision of a specification implemented in
> the table structures, so display SMBIOS version > 3 in format,
> like: 3.22.1
>
> It's not affect on other part of code because version number
> is analyzed using comparing, and it's obvious that 0x000208 is less
> than 0x030201 for example.
>

I don't think the spec forbids passing a 3.0+ table using the legacy
32-bit entry point, in which case the packing of the version could
potentially become a problem.

I don't care deeply about the docrev, so I think we could drop this
patch, but if others feel differently, could we at least pack the
version in a consistent manner (i.e., always account for docrev, and
set it to 0 if the 32-bit entry point is used?)

-- 
Ard.

> Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@linaro.org>
> ---
>  drivers/firmware/dmi_scan.c | 10 ++++++----
>  1 file changed, 6 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/firmware/dmi_scan.c b/drivers/firmware/dmi_scan.c
> index 952e95c..e4a2d25 100644
> --- a/drivers/firmware/dmi_scan.c
> +++ b/drivers/firmware/dmi_scan.c
> @@ -17,7 +17,7 @@
>   */
>  static const char dmi_empty_string[] = "        ";
>
> -static u16 __initdata dmi_ver;
> +static u32 dmi_ver __initdata;
>  static u32 dmi_len;
>  static u16 dmi_num;
>  /*
> @@ -534,7 +534,8 @@ static int __init dmi_smbios3_present(const u8 *buf)
>  {
>         if (memcmp(buf, "_SM3_", 5) == 0 &&
>             buf[6] < 32 && dmi_checksum(buf, buf[6])) {
> -               dmi_ver = get_unaligned_be16(buf + 7);
> +               dmi_ver = get_unaligned_be32(buf + 6);
> +               dmi_ver &= 0xFFFFFF;
>                 dmi_len = get_unaligned_le32(buf + 12);
>                 dmi_base = get_unaligned_le64(buf + 16);
>                 smbios_header_size = buf[6];
> @@ -553,8 +554,9 @@ static int __init dmi_smbios3_present(const u8 *buf)
>                 dmi_num = dmi_len / 4;
>
>                 if (dmi_walk_early(dmi_decode) == 0) {
> -                       pr_info("SMBIOS %d.%d present.\n",
> -                               dmi_ver >> 8, dmi_ver & 0xFF);
> +                       pr_info("SMBIOS %d.%d.%d present.\n",
> +                               dmi_ver >> 16, (dmi_ver >> 8) & 0xFF,
> +                               dmi_ver & 0xFF);
>                         dmi_format_ids(dmi_ids_string, sizeof(dmi_ids_string));
>                         pr_debug("DMI: %s\n", dmi_ids_string);
>                         return 0;
> --
> 1.9.1
>

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Patch 3/3] firmware: dmi_scan: use full dmi version for SMBIOS3
  2015-02-11  9:55   ` Ard Biesheuvel
@ 2015-02-11 10:08     ` Ivan Khoronzhuk
  0 siblings, 0 replies; 11+ messages in thread
From: Ivan Khoronzhuk @ 2015-02-11 10:08 UTC (permalink / raw)
  To: Ard Biesheuvel; +Cc: Matt Fleming, Leif Lindholm, linux-kernel


On 02/11/2015 11:55 AM, Ard Biesheuvel wrote:
> On 11 February 2015 at 17:46, Ivan Khoronzhuk
> <ivan.khoronzhuk@linaro.org> wrote:
>> New SMBIOS3 spec adds additional field for versioning - docrev.
>> The docrev identifies the revision of a specification implemented in
>> the table structures, so display SMBIOS version > 3 in format,
>> like: 3.22.1
>>
>> It's not affect on other part of code because version number
>> is analyzed using comparing, and it's obvious that 0x000208 is less
>> than 0x030201 for example.
>>
> I don't think the spec forbids passing a 3.0+ table using the legacy
> 32-bit entry point, in which case the packing of the version could
> potentially become a problem.
>
> I don't care deeply about the docrev, so I think we could drop this
> patch, but if others feel differently, could we at least pack the
> version in a consistent manner (i.e., always account for docrev, and
> set it to 0 if the 32-bit entry point is used?)
>

If others are OK, I can add docrev for 32 bit 3+ versions.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Patch 2/3] firmware: dmi_scan: fix dmi_len type
  2015-02-11  9:53   ` Ard Biesheuvel
@ 2015-02-11 10:10     ` Ivan Khoronzhuk
  2015-02-11 10:12       ` Ard Biesheuvel
  0 siblings, 1 reply; 11+ messages in thread
From: Ivan Khoronzhuk @ 2015-02-11 10:10 UTC (permalink / raw)
  To: Ard Biesheuvel; +Cc: Matt Fleming, Leif Lindholm, linux-kernel


On 02/11/2015 11:53 AM, Ard Biesheuvel wrote:
> On 11 February 2015 at 17:46, Ivan Khoronzhuk
> <ivan.khoronzhuk@linaro.org> wrote:
>> According to SMBIOSv3 specification the length of DMI table can be
>> up to 32bits wide. So use appropriate type to avoid overflow.
>>
>> It's obvious that dmi_num theoretically can be more than u16 also,
>> so it's can be changed to u32 or at least it's better to use int
>> instead of u16, but on that moment I cannot imagine dmi structure
>> count more than 65535 and it can require changing type of vars that
>> work with it. So I didn't correct it.
>>
>> Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@linaro.org>
> Acked-by: Ard Biesheuvel <ard@linaro.org>
>
> This should get a cc stable as well.
>

Pay attention that this patch has to be applied with patch 1/3.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Patch 2/3] firmware: dmi_scan: fix dmi_len type
  2015-02-11 10:10     ` Ivan Khoronzhuk
@ 2015-02-11 10:12       ` Ard Biesheuvel
  2015-02-13 16:12         ` Matt Fleming
  0 siblings, 1 reply; 11+ messages in thread
From: Ard Biesheuvel @ 2015-02-11 10:12 UTC (permalink / raw)
  To: Ivan Khoronzhuk; +Cc: Matt Fleming, Leif Lindholm, linux-kernel

On 11 February 2015 at 18:10, Ivan Khoronzhuk
<ivan.khoronzhuk@linaro.org> wrote:
>
> On 02/11/2015 11:53 AM, Ard Biesheuvel wrote:
>>
>> On 11 February 2015 at 17:46, Ivan Khoronzhuk
>> <ivan.khoronzhuk@linaro.org> wrote:
>>>
>>> According to SMBIOSv3 specification the length of DMI table can be
>>> up to 32bits wide. So use appropriate type to avoid overflow.
>>>
>>> It's obvious that dmi_num theoretically can be more than u16 also,
>>> so it's can be changed to u32 or at least it's better to use int
>>> instead of u16, but on that moment I cannot imagine dmi structure
>>> count more than 65535 and it can require changing type of vars that
>>> work with it. So I didn't correct it.
>>>
>>> Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@linaro.org>
>>
>> Acked-by: Ard Biesheuvel <ard@linaro.org>
>>
>> This should get a cc stable as well.
>>
>
> Pay attention that this patch has to be applied with patch 1/3.

Good point. Actually, I don't really see the need for patch #1, even
if I agree that it would have been better to write it like you have in
the first place.
But leaving the dmi_len as u16 is clearly a bug on my part, so that
should be fixed.

@Matt: any thoughts?

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Patch 2/3] firmware: dmi_scan: fix dmi_len type
  2015-02-11 10:12       ` Ard Biesheuvel
@ 2015-02-13 16:12         ` Matt Fleming
  2015-02-15  7:11           ` Ivan Khoronzhuk
  0 siblings, 1 reply; 11+ messages in thread
From: Matt Fleming @ 2015-02-13 16:12 UTC (permalink / raw)
  To: Ard Biesheuvel; +Cc: Ivan Khoronzhuk, Leif Lindholm, linux-kernel

On Wed, 11 Feb, at 06:12:59PM, Ard Biesheuvel wrote:
> 
> Good point. Actually, I don't really see the need for patch #1, even
> if I agree that it would have been better to write it like you have in
> the first place.
> But leaving the dmi_len as u16 is clearly a bug on my part, so that
> should be fixed.
> 
> @Matt: any thoughts?

Ivan, I'd prefer it if you move PATCH 1 to be PATCH 3, i.e. make the
urgent changes at the beginning of the series and the cleanups at the
end. That nicely sidesteps the issue of having to backport a cleanup
patch as a dependency for a real bug fix.

-- 
Matt Fleming, Intel Open Source Technology Center

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Patch 2/3] firmware: dmi_scan: fix dmi_len type
  2015-02-13 16:12         ` Matt Fleming
@ 2015-02-15  7:11           ` Ivan Khoronzhuk
  0 siblings, 0 replies; 11+ messages in thread
From: Ivan Khoronzhuk @ 2015-02-15  7:11 UTC (permalink / raw)
  To: Matt Fleming, Ard Biesheuvel; +Cc: Leif Lindholm, linux-kernel


On 02/13/2015 06:12 PM, Matt Fleming wrote:
> On Wed, 11 Feb, at 06:12:59PM, Ard Biesheuvel wrote:
>> Good point. Actually, I don't really see the need for patch #1, even
>> if I agree that it would have been better to write it like you have in
>> the first place.
>> But leaving the dmi_len as u16 is clearly a bug on my part, so that
>> should be fixed.
>>
>> @Matt: any thoughts?
> Ivan, I'd prefer it if you move PATCH 1 to be PATCH 3, i.e. make the
> urgent changes at the beginning of the series and the cleanups at the
> end. That nicely sidesteps the issue of having to backport a cleanup
> patch as a dependency for a real bug fix.
>

Ok.
I'll update soon.

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2015-02-15  7:11 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-02-11  9:46 [Patch 0/3] firmware: dmi_scan: add some SMBIOSv3 corrections Ivan Khoronzhuk
2015-02-11  9:46 ` [Patch 1/3] firmware: dmi_scan: use direct access to static vars Ivan Khoronzhuk
2015-02-11  9:46 ` [Patch 2/3] firmware: dmi_scan: fix dmi_len type Ivan Khoronzhuk
2015-02-11  9:53   ` Ard Biesheuvel
2015-02-11 10:10     ` Ivan Khoronzhuk
2015-02-11 10:12       ` Ard Biesheuvel
2015-02-13 16:12         ` Matt Fleming
2015-02-15  7:11           ` Ivan Khoronzhuk
2015-02-11  9:46 ` [Patch 3/3] firmware: dmi_scan: use full dmi version for SMBIOS3 Ivan Khoronzhuk
2015-02-11  9:55   ` Ard Biesheuvel
2015-02-11 10:08     ` Ivan Khoronzhuk

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).