[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);
|
void iecpy(u_char * dest, u_char * iestart, int ieoffset);
|
||||||
#endif /* __KERNEL__ */
|
#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 ll_run(struct IsdnCardState *cs, int addfeatures);
|
||||||
int CallcNew(void);
|
int CallcNew(void);
|
||||||
|
|
Loading…
Add table
Reference in a new issue