All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Chen, Kenneth W" <kenneth.w.chen@intel.com>
To: linux-ia64@vger.kernel.org
Subject: RE: [Linux-ia64] Re: memcpy failure
Date: Thu, 14 Nov 2002 20:32:20 +0000	[thread overview]
Message-ID: <marc-linux-ia64-105590709805435@msgid-missing> (raw)
In-Reply-To: <marc-linux-ia64-105590709805424@msgid-missing>

[-- Attachment #1: Type: text/plain, Size: 1483 bytes --]

Here is the patch that I promised.

Bjorn, would you please apply it to the 2.4 tree? and
David, would you please apply it to the 2.5 tree?

Thanks.

- Ken


-----Original Message-----
From: Chen, Kenneth W 
Sent: Thursday, November 14, 2002 7:53 AM
To: Matthew Wilcox; Christian Cotte-Barrot
Cc: linux-ia64@linuxia64.org
Subject: RE: [Linux-ia64] Re: memcpy failure



> >On Thu, Nov 14, 2002 at 10:01:44AM +0100, Christian Cotte-Barrot wrote:
> > But memcpy from memcpy.S is returning a pointer to dest area.
> > That would lead to quasi non-portable code when the return from memcopy
> > is correctly checked depending on which memcopy function is addressed.
> > But BTW, is it meaningful to take into account a return code
> > that is always the same and which value is known in advance ?
> > Does memcpy suppose to failed in some cases ?

> no, memcpy cannot fail (you get a SIGSEGV in userspace or an MCA in
> kernel space).  checking the return value is meaningless.

That's what I feel as well that it is kind of silly to return something that the caller already has. BUt then, I'm not here to judge the specification ;-)

Anyhow, the fix is fairly easy and won't affect the code size as well as the copy throughput, I should have a patch ready shortly to make everyone happy!

- Ken

_______________________________________________
Linux-IA64 mailing list
Linux-IA64@linuxia64.org
http://lists.linuxia64.org/lists/listinfo/linux-ia64

[-- Attachment #2: memcpy_mck.fix.patch --]
[-- Type: application/octet-stream, Size: 1177 bytes --]

--- linux/arch/ia64/lib/memcpy_mck.S.orig	Fri Nov  8 18:05:05 2002
+++ linux/arch/ia64/lib/memcpy_mck.S	Thu Nov 14 11:33:53 2002
@@ -6,7 +6,10 @@
  *	in1:	source address
  *	in2:	number of bytes to copy
  * Output:
- * 	0 if success, or number of byte NOT copied if error occurred.
+ *	for bcopy:     return nothing
+ *	for memcpy:    retrun dest
+ * 	for copy_user: return 0 if success,
+ *		       or number of byte NOT copied if error occurred.
  *
  * Copyright (C) 2002 Intel Corp.
  * Copyright (C) 2002 Ken Chen <kenneth.w.chen@intel.com>
@@ -86,6 +89,7 @@
 	and	r28=0x7,in0
 	and	r29=0x7,in1
 	mov	f6=f0
+	mov	retval=in0
 	br.cond.sptk .common_code
 	;;
 END(memcpy)
@@ -97,7 +101,7 @@
 	mov	f6=f1
 	mov	saved_in0=in0	// save dest pointer
 	mov	saved_in1=in1	// save src pointer
-	mov	saved_in2=in2	// save len
+	mov	retval=r0	// initialize return value
 	;;
 .common_code:
 	cmp.gt	p15,p0=8,in2	// check for small size
@@ -105,7 +109,7 @@
 	cmp.ne	p14,p0=0,r29	// check src alignment
 	add	src0=0,in1
 	sub	r30=8,r28	// for .align_dest
-	mov	retval=r0	// initialize return value
+	mov	saved_in2=in2	// save len
 	;;
 	add	dst0=0,in0
 	add	dst1=1,in0	// dest odd index

  parent reply	other threads:[~2002-11-14 20:32 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-11-14  9:01 [Linux-ia64] Re: memcpy failure Christian Cotte-Barrot
2002-11-14 12:23 ` Matthew Wilcox
2002-11-14 15:10 ` Don Dugger
2002-11-14 15:47 ` [Linux-ia64] " Chen, Kenneth W
2002-11-14 15:53 ` [Linux-ia64] " Chen, Kenneth W
2002-11-14 16:09 ` Mario Smarduch
2002-11-14 16:12 ` Matthew Wilcox
2002-11-14 19:21 ` Mario Smarduch
2002-11-14 19:37 ` David Mosberger
2002-11-14 20:32 ` Chen, Kenneth W [this message]
2002-11-15 10:32 ` Christian Cotte-Barrot
2002-11-15 13:04 ` Matthew Wilcox
2002-11-15 13:51 ` Christian Cotte-Barrot
2002-11-15 14:17 ` Matthew Wilcox

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=marc-linux-ia64-105590709805435@msgid-missing \
    --to=kenneth.w.chen@intel.com \
    --cc=linux-ia64@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.