[U-Boot] [PATCH] cmd_mmc: make curr_device static

The curr_device variable isn't used outside of cmd_mmc, so mark it static to avoid conflicts with other pieces of code (like sata which also exports a curr_device). Otherwise we end up with stuff like: common/libcommon.a(cmd_sata.o):(.data.curr_device+0x0): multiple definition of `curr_device' common/libcommon.a(cmd_mmc.o):(.data.curr_device+0x0): first defined here
Signed-off-by: Mike Frysinger vapier@gentoo.org --- common/cmd_mmc.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/common/cmd_mmc.c b/common/cmd_mmc.c index 32fe49b..0e3393b 100644 --- a/common/cmd_mmc.c +++ b/common/cmd_mmc.c @@ -26,7 +26,7 @@ #include <mmc.h>
#ifndef CONFIG_GENERIC_MMC -int curr_device = -1; +static int curr_device = -1;
int do_mmc (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) {

The curr_device variable really should be namespaced with a "sata_" prefix since it is only used by the sata code. It also avoids random conflicts with other pieces of code (like cmd_mmc): common/libcommon.a(cmd_sata.o):(.data.curr_device+0x0): multiple definition of `curr_device' common/libcommon.a(cmd_mmc.o):(.data.curr_device+0x0): first defined here
Signed-off-by: Mike Frysinger vapier@gentoo.org --- common/cmd_sata.c | 24 ++++++++++++------------ drivers/block/ata_piix.c | 6 +++--- 2 files changed, 15 insertions(+), 15 deletions(-)
diff --git a/common/cmd_sata.c b/common/cmd_sata.c index a8147e0..1693a7e 100644 --- a/common/cmd_sata.c +++ b/common/cmd_sata.c @@ -28,7 +28,7 @@ #include <part.h> #include <sata.h>
-int curr_device = -1; +int sata_curr_device = -1; block_dev_desc_t sata_dev_desc[CONFIG_SYS_SATA_MAX_DEVICE];
int __sata_initialize(void) @@ -52,7 +52,7 @@ int __sata_initialize(void) if ((sata_dev_desc[i].lba > 0) && (sata_dev_desc[i].blksz > 0)) init_part(&sata_dev_desc[i]); } - curr_device = 0; + sata_curr_device = 0; return rc; } int sata_initialize(void) __attribute__((weak,alias("__sata_initialize"))); @@ -70,7 +70,7 @@ int do_sata(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) return sata_initialize();
/* If the user has not yet run `sata init`, do it now */ - if (curr_device == -1) + if (sata_curr_device == -1) if (sata_initialize()) return 1;
@@ -91,12 +91,12 @@ int do_sata(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) } return 0; } else if (strncmp(argv[1],"dev", 3) == 0) { - if ((curr_device < 0) || (curr_device >= CONFIG_SYS_SATA_MAX_DEVICE)) { + if ((sata_curr_device < 0) || (sata_curr_device >= CONFIG_SYS_SATA_MAX_DEVICE)) { puts("\nno SATA devices available\n"); return 1; } - printf("\nSATA device %d: ", curr_device); - dev_print(&sata_dev_desc[curr_device]); + printf("\nSATA device %d: ", sata_curr_device); + dev_print(&sata_dev_desc[sata_curr_device]); return 0; } else if (strncmp(argv[1],"part",4) == 0) { int dev, ok; @@ -131,7 +131,7 @@ int do_sata(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) if (sata_dev_desc[dev].type == DEV_TYPE_UNKNOWN) return 1;
- curr_device = dev; + sata_curr_device = dev;
puts("... is now current device\n");
@@ -158,12 +158,12 @@ int do_sata(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) lbaint_t blk = simple_strtoul(argv[3], NULL, 16);
printf("\nSATA read: device %d block # %ld, count %ld ... ", - curr_device, blk, cnt); + sata_curr_device, blk, cnt);
- n = sata_read(curr_device, blk, cnt, (u32 *)addr); + n = sata_read(sata_curr_device, blk, cnt, (u32 *)addr);
/* flush cache after read */ - flush_cache(addr, cnt * sata_dev_desc[curr_device].blksz); + flush_cache(addr, cnt * sata_dev_desc[sata_curr_device].blksz);
printf("%ld blocks read: %s\n", n, (n==cnt) ? "OK" : "ERROR"); @@ -176,9 +176,9 @@ int do_sata(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) lbaint_t blk = simple_strtoul(argv[3], NULL, 16);
printf("\nSATA write: device %d block # %ld, count %ld ... ", - curr_device, blk, cnt); + sata_curr_device, blk, cnt);
- n = sata_write(curr_device, blk, cnt, (u32 *)addr); + n = sata_write(sata_curr_device, blk, cnt, (u32 *)addr);
printf("%ld blocks written: %s\n", n, (n == cnt) ? "OK" : "ERROR"); diff --git a/drivers/block/ata_piix.c b/drivers/block/ata_piix.c index ec37687..549de31 100644 --- a/drivers/block/ata_piix.c +++ b/drivers/block/ata_piix.c @@ -36,7 +36,7 @@ #include <ata.h>
extern block_dev_desc_t sata_dev_desc[CONFIG_SYS_SATA_MAX_DEVICE]; -extern int curr_device; +extern int sata_curr_device;
#define DEBUG_SATA 0 /*For debug prints set DEBUG_SATA to 1 */
@@ -204,8 +204,8 @@ init_sata (int dev) dev_print (&sata_dev_desc[devno]); /* initialize partition type */ init_part (&sata_dev_desc[devno]); - if (curr_device < 0) - curr_device = + if (sata_curr_device < 0) + sata_curr_device = i * CONFIG_SYS_SATA_DEVS_PER_BUS + j; } }

Dear Mike Frysinger,
In message 1245029722-14514-2-git-send-email-vapier@gentoo.org you wrote:
The curr_device variable really should be namespaced with a "sata_" prefix since it is only used by the sata code. It also avoids random conflicts with other pieces of code (like cmd_mmc): common/libcommon.a(cmd_sata.o):(.data.curr_device+0x0): multiple definition of `curr_device' common/libcommon.a(cmd_mmc.o):(.data.curr_device+0x0): first defined here
Signed-off-by: Mike Frysinger vapier@gentoo.org
common/cmd_sata.c | 24 ++++++++++++------------ drivers/block/ata_piix.c | 6 +++--- 2 files changed, 15 insertions(+), 15 deletions(-)
Applied, thanks.
Best regards,
Wolfgang Denk

On Sunday 14 June 2009 21:35:21 Mike Frysinger wrote:
The curr_device variable isn't used outside of cmd_mmc, so mark it static to avoid conflicts with other pieces of code (like sata which also exports a curr_device). Otherwise we end up with stuff like: common/libcommon.a(cmd_sata.o):(.data.curr_device+0x0): multiple definition of `curr_device' common/libcommon.a(cmd_mmc.o):(.data.curr_device+0x0): first defined here
Wolfgang: were you waiting on some thing/one with this and the similar sata cmd change ? or was it lost in the shuffle ? -mike

Dear Mike Frysinger,
In message 200907151109.06151.vapier@gentoo.org you wrote:
--nextPart4747607.DNTvaE3gLs Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline
On Sunday 14 June 2009 21:35:21 Mike Frysinger wrote:
The curr_device variable isn't used outside of cmd_mmc, so mark it static to avoid conflicts with other pieces of code (like sata which also exports a curr_device). Otherwise we end up with stuff like: common/libcommon.a(cmd_sata.o):(.data.curr_device+0x0): multiple definition of `curr_device' common/libcommon.a(cmd_mmc.o):(.data.curr_device+0x0): first defined here
Wolfgang: were you waiting on some thing/one with this and the similar sata cmd change ? or was it lost in the shuffle ?
It was not lost. I was waiting for a few hours to work on patches...
Best regards,
Wolfgang Denk

Dear Mike Frysinger,
In message 1245029722-14514-1-git-send-email-vapier@gentoo.org you wrote:
The curr_device variable isn't used outside of cmd_mmc, so mark it static to avoid conflicts with other pieces of code (like sata which also exports a curr_device). Otherwise we end up with stuff like: common/libcommon.a(cmd_sata.o):(.data.curr_device+0x0): multiple definition of `curr_device' common/libcommon.a(cmd_mmc.o):(.data.curr_device+0x0): first defined here
Signed-off-by: Mike Frysinger vapier@gentoo.org
common/cmd_mmc.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
Applied, thanks.
Best regards,
Wolfgang Denk
participants (2)
-
Mike Frysinger
-
Wolfgang Denk