1. 09 Sep, 2010 1 commit
    • Tony Luck's avatar
      [IA64] fix siglock · f574c843
      Tony Luck authored
      When ia64 converted to using ticket locks, an inline implementation
      of trylock/unlock in fsys.S was missed.  This was not noticed because
      in most circumstances it simply resulted in using the slow path because
      the siglock was apparently not available (under old spinlock rules).
      
      Problems occur when the ticket spinlock has value 0x0 (when first
      initialised, or when it wraps around). At this point the fsys.S
      code acquires the lock (changing the 0x0 to 0x1. If another process
      attempts to get the lock at this point, it will change the value from
      0x1 to 0x2 (using new ticket lock rules). Then the fsys.S code will
      free the lock using old spinlock rules by writing 0x0 to it. From
      here a variety of bad things can happen.
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      f574c843
  2. 07 Sep, 2010 39 commits