Re: [U-Boot-Users] [PATCH] Fix bugs in cmd_ide.c and cmd_scsi.c

Hello Wolfgang,
At 12:33 29.03.2007, you wrote:
Dear Denis,
in message OF61C9A6C9.C4DFEC4B-ONC12572AD.002E7D48@mpl.loc you wrote:
Fix bugs in cmd_ide.c and scsi_cmd.c.
I tried to apply this patch but IO cannot because it has been mangled by your mailer - it wraps long lines.
I'm sorry, here the patch with correct mailer settings (hopefully)
with best regards, Denis
Fix bugs in cmd_ide.c and scsi_cmd.c.
These bugs prevented to read/write more than one block from/to IDE drives, and didn't allow to use "diskboot" and "scsiboot" to boot from another device than device 0.
Signed-off-by: Denis Peter d.peter@mpl.ch
common/cmd_ide.c | 9 ++++++--- common/cmd_scsi.c | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/common/cmd_ide.c b/common/cmd_ide.c index 2e185cc..ba984c3 100644 --- a/common/cmd_ide.c +++ b/common/cmd_ide.c @@ -423,7 +423,8 @@ int do_diskboot (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) } part = simple_strtoul(++ep, NULL, 16); } - if (get_partition_info (ide_dev_desc, part, &info)) { + if (get_partition_info (&ide_dev_desc[dev], part, &info)) { + printf ("error reading partinfo\n"); SHOW_BOOT_PROGRESS (-1); return 1; } @@ -1233,8 +1234,9 @@ static void ide_ident (block_dev_desc_t *dev_desc)
/* ------------------------------------------------------------------------- */
-ulong ide_read (int device, lbaint_t blknr, ulong blkcnt, void *buffer) +ulong ide_read (int device, lbaint_t blknr, ulong blkcnt, void *vbuffer) { + ulong *buffer = (ulong *)vbuffer; ulong n = 0; unsigned char c; unsigned char pwrsave=0; /* power save */ @@ -1353,8 +1355,9 @@ IDE_READ_E: /* ------------------------------------------------------------------------- */
-ulong ide_write (int device, lbaint_t blknr, ulong blkcnt, void *buffer) +ulong ide_write (int device, lbaint_t blknr, ulong blkcnt, void *vbuffer) { + ulong *buffer = (ulong *)vbuffer; ulong n = 0; unsigned char c; #ifdef CONFIG_LBA48 diff --git a/common/cmd_scsi.c b/common/cmd_scsi.c index da36ed9..00b84fa 100644 --- a/common/cmd_scsi.c +++ b/common/cmd_scsi.c @@ -248,7 +248,7 @@ int do_scsiboot (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) } part = simple_strtoul(++ep, NULL, 16); } - if (get_partition_info (scsi_dev_desc, part, &info)) { + if (get_partition_info (&scsi_dev_desc[dev], part, &info)) { printf("error reading partinfo\n"); return 1; }

In message OF29AD783D.748F78C9-ONC12572AD.0041E8F8@mpl.loc you wrote:
I'm sorry, here the patch with correct mailer settings (hopefully)
Doesn't work for me either:
-> git am -3 -i -u /tmp/patch Commit Body is: -------------------------- Fix bugs in cmd_ide.c and cmd_scsi.c
These bugs prevented to read/write more than one block from/to IDE drives, and didn't allow to use "diskboot" and "scsiboot" to boot from another device than device 0.
Signed-off-by: Denis Peter d.peter@mpl.ch
common/cmd_ide.c | 9 ++++++--- common/cmd_scsi.c | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) -------------------------- Apply? [y]es/[n]o/[e]dit/[v]iew patch/[a]ccept all y
Applying 'Fix bugs in cmd_ide.c and cmd_scsi.c'
error: patch failed: common/cmd_ide.c:423 error: common/cmd_ide.c: patch does not apply error: patch failed: common/cmd_scsi.c:248 error: common/cmd_scsi.c: patch does not apply Using index info to reconstruct a base tree... error: patch failed: common/cmd_ide.c:423 error: common/cmd_ide.c: patch does not apply error: patch failed: common/cmd_scsi.c:248 error: common/cmd_scsi.c: patch does not apply Did you hand edit your patch? It does not apply to blobs recorded in its index. Cannot fall back to three-way merge. Patch failed at 0001. When you have resolved this problem run "git-am -i -3 --resolved". If you would prefer to skip this patch, instead run "git-am -i -3 --skip".
Same when I try to apply your patch manually:
-> patch -p1 --dry-run </tmp/patch patching file common/cmd_ide.c Hunk #1 FAILED at 423. Hunk #2 FAILED at 1234. Hunk #3 FAILED at 1355. 3 out of 3 hunks FAILED -- saving rejects to file common/cmd_ide.c.rej patching file common/cmd_scsi.c Hunk #1 FAILED at 248. 1 out of 1 hunk FAILED -- saving rejects to file common/cmd_scsi.c.rej
Ah, I think you have also white space corrupted, i. e. spaces instead of tabs.
FIX YOUR MAILER!!!
Best regards,
Wolfgang Denk

On Thursday 29 March 2007 15:23, you wrote:
In message OF29AD783D.748F78C9-ONC12572AD.0041E8F8@mpl.loc you wrote:
Doesn't work for me either: ...<snip>...
I'm sorry again. Changed my environment and tested the patch twice.
With best regards,
Denis
Fix bugs in cmd_ide.c and cmd_scsi.c
These bugs prevented to read/write more than one block from/to IDE drives, and didn't allow to use "diskboot" and "scsiboot" to boot from another device than device 0.
common/cmd_ide.c | 9 ++++++--- common/cmd_scsi.c | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/common/cmd_ide.c b/common/cmd_ide.c index 2e185cc..3bce1eb 100644 --- a/common/cmd_ide.c +++ b/common/cmd_ide.c @@ -423,7 +423,8 @@ int do_diskboot (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) } part = simple_strtoul(++ep, NULL, 16); } - if (get_partition_info (ide_dev_desc, part, &info)) { + if (get_partition_info (&ide_dev_desc[dev], part, &info)) { + puts ("error reading partinfo\n"); SHOW_BOOT_PROGRESS (-1); return 1; } @@ -1233,8 +1234,9 @@ static void ide_ident (block_dev_desc_t *dev_desc)
/* ------------------------------------------------------------------------- */
-ulong ide_read (int device, lbaint_t blknr, ulong blkcnt, void *buffer) +ulong ide_read (int device, lbaint_t blknr, ulong blkcnt, void *vbuffer) { + ulong *buffer = (ulong *) vbuffer; ulong n = 0; unsigned char c; unsigned char pwrsave=0; /* power save */ @@ -1353,8 +1355,9 @@ IDE_READ_E: /* ------------------------------------------------------------------------- */
-ulong ide_write (int device, lbaint_t blknr, ulong blkcnt, void *buffer) +ulong ide_write (int device, lbaint_t blknr, ulong blkcnt, void *vbuffer) { + ulong *buffer = (ulong *) vbuffer; ulong n = 0; unsigned char c; #ifdef CONFIG_LBA48 diff --git a/common/cmd_scsi.c b/common/cmd_scsi.c index da36ed9..00b84fa 100644 --- a/common/cmd_scsi.c +++ b/common/cmd_scsi.c @@ -248,7 +248,7 @@ int do_scsiboot (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) } part = simple_strtoul(++ep, NULL, 16); } - if (get_partition_info (scsi_dev_desc, part, &info)) { + if (get_partition_info (&scsi_dev_desc[dev], part, &info)) { printf("error reading partinfo\n"); return 1; }
participants (2)
-
Denis Peter
-
Wolfgang Denk