Bug 112004
Summary: | pppd receives error "Couldn't get channel number: bad address" | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | Red Hat Enterprise Linux 3 | Reporter: | Brian Vandecoevering <brian.j.vandecoevering> | ||||||
Component: | kernel | Assignee: | Neil Horman <nhorman> | ||||||
Status: | CLOSED ERRATA | QA Contact: | Brian Brock <bbrock> | ||||||
Severity: | medium | Docs Contact: | |||||||
Priority: | medium | ||||||||
Version: | 3.0 | CC: | cww, davem, grgustaf, jbaron, nhorman, petrides, tao | ||||||
Target Milestone: | --- | ||||||||
Target Release: | --- | ||||||||
Hardware: | ia64 | ||||||||
OS: | Linux | ||||||||
Whiteboard: | |||||||||
Fixed In Version: | RHSA-2006-0144 | Doc Type: | Bug Fix | ||||||
Doc Text: | Story Points: | --- | |||||||
Clone Of: | Environment: | ||||||||
Last Closed: | 2006-03-15 15:33:33 UTC | Type: | --- | ||||||
Regression: | --- | Mount Type: | --- | ||||||
Documentation: | --- | CRM: | |||||||
Verified Versions: | Category: | --- | |||||||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||||
Cloudforms Team: | --- | Target Upstream Version: | |||||||
Embargoed: | |||||||||
Bug Depends On: | |||||||||
Bug Blocks: | 168424 | ||||||||
Attachments: |
|
Description
Brian Vandecoevering
2003-12-12 19:12:11 UTC
Do you had to modify kernel modules? Brian, could you please attach the patch that you reference. thanks. Brian, can we get a pointer to that patch? thanks. Created attachment 117674 [details] patch to correct use of put_user in ppp.o module Think I've found the problem. Its described pretty accurately here: http://www.gelato.unsw.edu.au/archives/linux-ia64/0312/7755.html The problem appears to be that registers get inappropriately clobbered when functions are inlined as arguments to put_user (specifically to __put_user_check). The solution seems to be to make local copies of the passed in arguments so as to avoid the register clobbering. The fix, as proposed works well in my test case. Given the relative maturity of RHEL3 however, I'd be nervous about proposing a modification to such a widely used macro w/o a lot more testing. Given that, I think the easier solution for the problem at hand would be to simply move the inlined functions out of the put_user/get_user macros in the ppp module, as this patch does. It also passes my test case, and I'm waiting for confirmation from the reporter now. Created attachment 118056 [details]
patch with correct fix for put_user on ia64
Consensus on review was that this should probably be fixed the right way.
Fixing __put_user_check so that passing in functions as the value to copy
worked, outweighed the potential risk of modifiying such a pervasive function.
This patch corrects __put_user_check so that passed in functions are evaluated
prior to being passed to __put_user_size.
A fix for this problem has just been committed to the RHEL3 U7 patch pool this evening (in kernel version 2.4.21-37.2.EL). An advisory has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on the solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHSA-2006-0144.html |