Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ca8af486 authored by Andrew Morton's avatar Andrew Morton Committed by Linus Torvalds
Browse files

[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: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent fd0fbcc2
Loading
Loading
Loading
Loading
+12 −1
Original line number Diff line number Diff line
@@ -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);