Note: This is a beta release of Red Hat Bugzilla 5.0. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Also email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback here.
Bug 163611 - ia64: Unaligned accesses are made when udev starts
Summary: ia64: Unaligned accesses are made when udev starts
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: udev
Version: rawhide
Hardware: ia64
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Harald Hoyer
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks: fedora-ia64
TreeView+ depends on / blocked
 
Reported: 2005-07-19 14:35 UTC by Prarit Bhargava
Modified: 2007-11-30 22:11 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2006-04-13 06:11:59 UTC


Attachments (Terms of Use)

Description Prarit Bhargava 2005-07-19 14:35:32 UTC
Description of problem:

Unaligned accesses are made when udev starts on ia64.

Version-Release number of selected component (if applicable):

Fedora ia64 devel, rawhide-20050719
udev-062-2

How reproducible: 100%

Steps to Reproduce:

1. Install latest Fedora ia64 devel
2. Boot.
  
Actual results:

Starting udev:  udevstart(2050): unaligned access to 0x6000000000014d29,
ip=0x400000000000f1b1
udevstart(2050): unaligned access to 0x6000000000014b21, ip=0x400000000000bb40
udevstart(2050): unaligned access to 0x6000000000014f59, ip=0x400000000000f1b1
udevstart(2050): unaligned access to 0x6000000000014d41, ip=0x400000000000bb40
[  OK  ]

and later on when xfs and appletalk start,
Starting xfs: udev(4726): unaligned access to 0x6000000000018d29,
ip=0x400000000000f581
udev(4726): unaligned access to 0x6000000000018f5c, ip=0x400000000000f581
udev(4726): unaligned access to 0x60000000000193bd, ip=0x400000000000f581
udev(4726): unaligned access to 0x600000000001935d, ip=0x400000000000e2b1
[  OK  ]
Starting AppleTalk services: 
  Starting atalkd:udev(4839): unaligned access to 0x6000000000018d29,
ip=0x400000000000f581
udev(4839): unaligned access to 0x6000000000018f5c, ip=0x400000000000f581
udev(4839): unaligned access to 0x60000000000193bd, ip=0x400000000000f581
udev(4839): unaligned access to 0x600000000001935d, ip=0x400000000000e2b1

[  OK  ]


Expected results:

No errors should be seen.

Additional info:

If memory serves the issue is that ia64 udev needs to built with the -ftz
compile flag.

Comment 1 Harald Hoyer 2005-07-19 14:45:38 UTC
what does -ftz do?

Comment 2 Bill Nottingham 2005-07-19 17:57:44 UTC
Something to do with -force-to-zero or -flush-to-zero for the floating point
stuff, I think. Shouldn't be relelvant.

I'd suspect the patches that Kay posted to the list for it SIGBUSing on sparc
might be more relevant here.

Comment 3 Prarit Bhargava 2005-07-20 20:13:30 UTC
Whups -- the -ftz thing was a mistake.  Had a brain spasm ...

P.

Comment 4 Bill Nottingham 2005-07-20 20:19:11 UTC
Does the last patch in
http://sourceforge.net/mailarchive/forum.php?thread_id=7720331&forum_id=3157
work for you?

Comment 5 Prarit Bhargava 2005-07-26 14:17:08 UTC
Bill, 
 
The link pushes me to the general list -- not a specific set of patches.  Can 
you attach the patch here/email it to me?   
 
Thanks, 
 
P. 

Comment 6 Bill Nottingham 2005-07-26 16:26:09 UTC
See the next-to-last mail in the thread:

diff --git a/udev_rules_parse.c b/udev_rules_parse.c
 --- a/udev_rules_parse.c
 +++ b/udev_rules_parse.c
 @@ -241,6 +241,7 @@ static int add_to_rules(struct udev_rule
  	int valid;
  	char *linepos;
  	char *attr;
 +	size_t padding;
  	int retval;
  
  	/* get all the keys */
 @@ -506,6 +507,11 @@ static int add_to_rules(struct udev_rule
  
  	/* grow buffer and add rule */
  	rule_size = sizeof(struct udev_rule) + rule->bufsize;
 +	padding = (sizeof(size_t) - rule_size % sizeof(size_t)) % sizeof(size_t);
 +	dbg("add %zi padding bytes", padding);
 +	rule_size += padding;
 +	rule->bufsize += padding;
 +
  	rules->buf = realloc(rules->buf, rules->bufsize + rule_size);
  	if (!rules->buf) {
  		err("realloc failed");
 

Comment 7 Prarit Bhargava 2005-07-26 18:24:21 UTC
That looks like it fixes it ....

Thanks Bill.

P.

Comment 8 Bill Nottingham 2005-08-22 18:11:11 UTC
Did 063-x fix this for you?

Comment 9 Prarit Bhargava 2006-02-23 18:04:26 UTC
This is fixed. 


Note You need to log in before you can comment on or make changes to this bug.