[U-Boot] [PATCH] drivers/net/e1000_spi.c: Fix build warnings

Fix: e1000_spi.c: In function 'spi_free_slave': e1000_spi.c:115: warning: unused variable 'hw' e1000_spi.c: In function 'do_e1000_spi': e1000_spi.c:472: warning: 'checksum' may be used uninitialized in this function e1000_spi.c:472: note: 'checksum' was declared here
Signed-off-by: Anatolij Gustschin agust@denx.de Cc: Kyle Moffett Kyle.D.Moffett@boeing.com --- drivers/net/e1000_spi.c | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/net/e1000_spi.c b/drivers/net/e1000_spi.c index 5491780..5f774f4 100644 --- a/drivers/net/e1000_spi.c +++ b/drivers/net/e1000_spi.c @@ -1,4 +1,5 @@ #include "e1000.h" +#include <linux/compiler.h>
/*----------------------------------------------------------------------- * SPI transfer @@ -112,7 +113,7 @@ struct spi_slave *spi_setup_slave(unsigned int bus, unsigned int cs,
void spi_free_slave(struct spi_slave *spi) { - struct e1000_hw *hw = e1000_hw_from_spi(spi); + __maybe_unused struct e1000_hw *hw = e1000_hw_from_spi(spi); E1000_DBG(hw->nic, "EEPROM SPI access released\n"); }
@@ -469,7 +470,7 @@ static int do_e1000_spi_program(cmd_tbl_t *cmdtp, struct e1000_hw *hw, static int do_e1000_spi_checksum(cmd_tbl_t *cmdtp, struct e1000_hw *hw, int argc, char * const argv[]) { - uint16_t i, length, checksum, checksum_reg; + uint16_t i, length, checksum = 0, checksum_reg; uint16_t *buffer; boolean_t upd;

On Dec 20, 2011, at 07:29, Anatolij Gustschin wrote:
Fix: e1000_spi.c: In function 'spi_free_slave': e1000_spi.c:115: warning: unused variable 'hw' e1000_spi.c: In function 'do_e1000_spi': e1000_spi.c:472: warning: 'checksum' may be used uninitialized in this function e1000_spi.c:472: note: 'checksum' was declared here
Acked-by: Kyle Moffett Kyle.D.Moffett@boeing.com
This is great, thanks!
I actually thought that the "checksum" fix had already made it into Wolfgang's tree, but I can't find it now that I'm looking for it.
The really frustrating thing is that on my test system I have seen the "unused variable" warning for a while now (although I was not sure what to do about it), but despite the fact that the "checksum" variable is very clearly improperly initialized I don't get that warning out of my compiler.
Oh, right, I'm using GCC 4.4 right now and it needs 4.6+
Ironically enough, I have never had the checksum computation produce an incorrect result, Linux always thinks the result is correct. It must always get a zero in that register somehow.
Cheers, Kyle Moffett
Signed-off-by: Anatolij Gustschin agust@denx.de Cc: Kyle Moffett Kyle.D.Moffett@boeing.com
drivers/net/e1000_spi.c | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/net/e1000_spi.c b/drivers/net/e1000_spi.c index 5491780..5f774f4 100644 --- a/drivers/net/e1000_spi.c +++ b/drivers/net/e1000_spi.c @@ -1,4 +1,5 @@ #include "e1000.h" +#include <linux/compiler.h>
/*-----------------------------------------------------------------------
- SPI transfer
@@ -112,7 +113,7 @@ struct spi_slave *spi_setup_slave(unsigned int bus, unsigned int cs,
void spi_free_slave(struct spi_slave *spi) {
- struct e1000_hw *hw = e1000_hw_from_spi(spi);
- __maybe_unused struct e1000_hw *hw = e1000_hw_from_spi(spi); E1000_DBG(hw->nic, "EEPROM SPI access released\n");
}
@@ -469,7 +470,7 @@ static int do_e1000_spi_program(cmd_tbl_t *cmdtp, struct e1000_hw *hw, static int do_e1000_spi_checksum(cmd_tbl_t *cmdtp, struct e1000_hw *hw, int argc, char * const argv[]) {
- uint16_t i, length, checksum, checksum_reg;
- uint16_t i, length, checksum = 0, checksum_reg; uint16_t *buffer; boolean_t upd;

On Tue, 20 Dec 2011 10:19:51 -0600 "Moffett, Kyle D" Kyle.D.Moffett@boeing.com wrote:
On Dec 20, 2011, at 07:29, Anatolij Gustschin wrote:
Fix: e1000_spi.c: In function 'spi_free_slave': e1000_spi.c:115: warning: unused variable 'hw' e1000_spi.c: In function 'do_e1000_spi': e1000_spi.c:472: warning: 'checksum' may be used uninitialized in this function e1000_spi.c:472: note: 'checksum' was declared here
Acked-by: Kyle Moffett Kyle.D.Moffett@boeing.com
This is great, thanks!
I actually thought that the "checksum" fix had already made it into Wolfgang's tree, but I can't find it now that I'm looking for it.
There is a "checksum" fix in Wolfgang's tree, commit 7a341066 (e1000: fix bugs from recent commits). It is for drivers/net/e1000.c file, however.
The really frustrating thing is that on my test system I have seen the "unused variable" warning for a while now (although I was not sure what to do about it), but despite the fact that the "checksum" variable is very clearly improperly initialized I don't get that warning out of my compiler.
Oh, right, I'm using GCC 4.4 right now and it needs 4.6+
I've seen this warning with GCC 4.2.2 and GCC 4.6.1.
Thanks, Anatolij

Dear Anatolij Gustschin,
In message 1324384143-10198-1-git-send-email-agust@denx.de you wrote:
Fix: e1000_spi.c: In function 'spi_free_slave': e1000_spi.c:115: warning: unused variable 'hw' e1000_spi.c: In function 'do_e1000_spi': e1000_spi.c:472: warning: 'checksum' may be used uninitialized in this function e1000_spi.c:472: note: 'checksum' was declared here
Signed-off-by: Anatolij Gustschin agust@denx.de Cc: Kyle Moffett Kyle.D.Moffett@boeing.com
drivers/net/e1000_spi.c | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-)
Applied, thanks.
Best regards,
Wolfgang Denk
participants (4)
-
Anatolij Gustschin
-
Mike Frysinger
-
Moffett, Kyle D
-
Wolfgang Denk