ARC: Fix rw lock

The issue was happening because of systemc re-scheduling execution of cores due to
EX insn:

    core 1                                                    core2

1. tasklist spin lock [ EX r=0, w=1]
2. tasklist read lock [OK]
3. tasklist spin UNlock [ ST 0]

    ---- At this point READ lock is set, but spin lock is free -----
    -----  normal quantun based resched to core2 ----

4.                                                tasklist spin lock  [EX r=0,
w=1] lock grabbed

                            -- resched core 1----

5. tasklist spin lock [EX reads 1] -

                            -- resched core 2----

6.                                              tasklist write lock [FAILS] since
read locked
7.                                              tasklist spin UNlock [ST 0]
8.                                              since write lock failed, retry 4-8

9.                                              tasklist spin lock  [EX r=0, w=1]
- lock grabbed

                            -- resched core 1----

9   already locked, so branches back to EX insn
10. tasklist spin lock [EX gets 1]

                            -- resched core 2----

Can you see the livelock ?

So the workaround is to use EX for freeign the lock as well. That causes a system
resched at step 7, causing core1 to proceed.

Signed-off-by: Noam Camus <noamc@ezchip.com>