[PATCH] isdn: work around excessive udelay()
As reported in http://bugzilla.kernel.org/show_bug.cgi?id=6970, ISDN can issue excessively-long udelays, which triggers a build-time error on ARM. This is very sucky of ISDN, but I doubt if anyone is going to suddenly fix it. So change the macro to do the microsecond counting itself. Cc: <tch@wpkg.org> Cc: Karsten Keil <kkeil@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
fd0fbcc27f
commit
ca8af48676
1 changed files with 12 additions and 1 deletions
|
@ -1316,7 +1316,18 @@ void dlogframe(struct IsdnCardState *cs, struct sk_buff *skb, int dir);
|
|||
void iecpy(u_char * dest, u_char * iestart, int ieoffset);
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
#define HZDELAY(jiffs) {int tout = jiffs; while (tout--) udelay(1000000/HZ);}
|
||||
/*
|
||||
* Busywait delay for `jiffs' jiffies
|
||||
*/
|
||||
#define HZDELAY(jiffs) do { \
|
||||
int tout = jiffs; \
|
||||
\
|
||||
while (tout--) { \
|
||||
int loops = USEC_PER_SEC / HZ; \
|
||||
while (loops--) \
|
||||
udelay(1); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
int ll_run(struct IsdnCardState *cs, int addfeatures);
|
||||
int CallcNew(void);
|
||||
|
|
Loading…
Reference in a new issue