1. 19 1月, 2006 1 次提交
  2. 18 1月, 2006 2 次提交
    • E
      [SPARC]: change if() BUG(); to BUG_ON in iommu.c · 1ae61388
      Eric Sesterhenn 提交于
      this patch changes if() BUG(); constructs
      in iommu.c to BUG_ON(); so it gets save
      to define BUG() and BUG_ON() to nullstatements.
      Signed-off-by: NEric Sesterhenn <snakebyte@gmx.de>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      1ae61388
    • R
      [SPARC64]: Eliminate race condition reading Hummingbird STICK register · 9eb3394b
      Richard Mortimer 提交于
      Ensure a consistent value is read from the STICK register by ensuring
      that both high and low are read without high changing due to a roll
      over of the low register.
      
      Various Debian/SPARC users (myself include) have noticed problems with
      Hummingbird based systems. The symptoms are that the system time is
      seen to jump forward 3 days, 6 hours, 11 minutes give or take a few
      seconds. In many cases the system then hangs some time afterwards.
      
      I've spotted a race condition in the code to read the STICK register.
      I could not work out why 3d, 6h, 11m is important but guess that it is
      due to the 2^32 jump of STICK (forwards on one read and then the next
      read will seem to be backwards) during a timer interrupt. I'm guessing
      that a change of -2^32 will get converted to a large unsigned
      increment after the arithmetic manipulation between STICK,
      nanoseconds, jiffies etc.
      
      I did a test where I modified __hbird_read_stick to artificially
      inject rollover faults forcefully every few seconds. With this I saw
      the clock jump over 6 times in 12 hours compared to once every month
      or so.
      Signed-off-by: NRichard Mortimer <richm@oldelvet.org.uk>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      9eb3394b
  3. 17 1月, 2006 29 次提交
  4. 15 1月, 2006 8 次提交