write_seqlock(&xtime_lock);
 
        __raw_writel(1, EP93XX_TIMER1_CLEAR);
-       while (__raw_readl(EP93XX_TIMER4_VALUE_LOW) - last_jiffy_time
+       while ((signed long)
+               (__raw_readl(EP93XX_TIMER4_VALUE_LOW) - last_jiffy_time)
                                                >= TIMER4_TICKS_PER_JIFFY) {
                last_jiffy_time += TIMER4_TICKS_PER_JIFFY;
                timer_tick(regs);
 
        /* clear timer 1 */
        ixp2000_reg_wrb(IXP2000_T1_CLR, 1);
 
-       while ((next_jiffy_time - *missing_jiffy_timer_csr) > ticks_per_jiffy) {
+       while ((signed long)(next_jiffy_time - *missing_jiffy_timer_csr)
+                                                       >= ticks_per_jiffy) {
                timer_tick(regs);
                next_jiffy_time -= ticks_per_jiffy;
        }
 
 /*************************************************************************
  * Timer-tick functions for IXP23xx
  *************************************************************************/
-#define CLOCK_TICKS_PER_USEC   CLOCK_TICK_RATE / (USEC_PER_SEC)
+#define CLOCK_TICKS_PER_USEC   (CLOCK_TICK_RATE / USEC_PER_SEC)
 
 static unsigned long next_jiffy_time;
 
 {
        /* Clear Pending Interrupt by writing '1' to it */
        *IXP23XX_TIMER_STATUS = IXP23XX_TIMER1_INT_PEND;
-       while ((*IXP23XX_TIMER_CONT - next_jiffy_time) > LATCH) {
+       while ((signed long)(*IXP23XX_TIMER_CONT - next_jiffy_time) >= LATCH) {
                timer_tick(regs);
                next_jiffy_time += LATCH;
        }
 
        /*
         * Catch up with the real idea of time
         */
-       while ((*IXP4XX_OSTS - last_jiffy_time) > LATCH) {
+       while ((signed long)(*IXP4XX_OSTS - last_jiffy_time) >= LATCH) {
                timer_tick(regs);
                last_jiffy_time += LATCH;
        }
 
 
        now = omap_32k_sync_timer_read();
 
-       while (now - omap_32k_last_tick >= OMAP_32K_TICKS_PER_HZ) {
+       while ((signed long)(now - omap_32k_last_tick)
+                                               >= OMAP_32K_TICKS_PER_HZ) {
                omap_32k_last_tick += OMAP_32K_TICKS_PER_HZ;
                timer_tick(regs);
        }