Bug 65176

Summary: broken urandom (PATCH INCLUDED)
Product: [Retired] Red Hat Linux Reporter: Gigs <jgiglio>
Component: kernelAssignee: Arjan van de Ven <arjanv>
Status: CLOSED RAWHIDE QA Contact: Brian Brock <bbrock>
Severity: medium Docs Contact:
Priority: high    
Version: 7.3   
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2002-05-19 22:13:29 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:

Description Gigs 2002-05-19 13:09:33 UTC
Description of Problem:
/dev/urandom is broken by some lowlatency code that is apparently incorrect. 
It causes read calls to urandom to return incomplete.

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

How Reproducible:
Always

Steps to Reproduce:
1.  dd if=/dev/urandom of=/tmp/testfile bs=1M count=1
2.  
3.  

Actual Results:
testfile is very small, 1M is requested, several kilobytes is returned

Expected Results:
1M file o garbage

Additional Information:
	
--- random.c.orig	Thu Apr 18 06:50:33 2002
+++ random.c	Sun May 19 08:40:14 2002
@@ -1371,8 +1371,7 @@
 		add_timer_randomness(&extract_timer_state, nbytes);
 #if LOWLATENCY_NEEDED
 		/* This can happen in softirq's, but that's what we want */
-		if (conditional_schedule_needed())
-			break;
+		conditional_schedule();
 #endif
 	}

Comment 1 Gigs 2002-05-19 22:13:24 UTC
Andrew Morton said:
>Yeah, unfortunately it's called under spinlock, so we can't schedule
>from there (I think).
>I guess I'll just remove that chunk - it's only worth a millisecond or
>so anyway.

So ignore the patch I gave and just remove the whole  #if LOWLATENCY_NEEDED.

Comment 2 Arjan van de Ven 2002-05-21 08:29:42 UTC
thanks for the report! Fixed for the next build