Re: [jakub@redhat.com: Re: [brian.j.vandecoevering@intel.com: RE: [Linux-ia64] problems with ppp/pppd: put_user/copy_to_user]]

From: David Mosberger <davidm_at_napali.hpl.hp.com>
Date: 2003-12-13 04:21:59
>>>>> On Fri, 12 Dec 2003 10:37:16 -0500, Bill Nottingham <notting@redhat.com> said:

  Bill> Back long ago, I reported a problem with PPP on ia64:
  Bill> http://www.gelato.unsw.edu.au/linux-ia64/0105/1641.html

  Bill> We added the workaround in our tree for earlier releases, and
  Bill> promptly forgot about it; however, someone reported that RHEL
  Bill> 3 has the same issue (as we took the workaround out.)

  Bill> Jakub noticed the following - does this explain the problem?

Yes, it sure does.  Argh, passing functions to get/put-user macro
arguments.  I suppose that's legal... ;-(

  Bill> But, a function call clobbers r8.  Guess a __typeof(x) __x =
  Bill> (x); before __pu_err and s/x/__x/ is needed.  Probably
  Bill> __pu_addr decl should be moved before __pu_err is initialized
  Bill> too, otherwise extern int *foo (); put_user (0, foo ()); might
  Bill> not work properly.

Yeah, we need to be careful not to evalute any macro arguments while
using the special register-usage convention needed for the exception
handlers.  It affects get_user(), too.  Let me work on a patch.

	--david
-
To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Received on Fri Dec 12 12:27:13 2003

This archive was generated by hypermail 2.1.8 : 2005-08-02 09:20:21 EST