On Sun, 29 Jul 2007, Krzysztof Helt wrote:

On Sun, 29 Jul 2007 17:45:35 +0200
Krzysztof Helt <[EMAIL PROTECTED]> wrote:

It is not DMA I suppose. It does not happen in any specific place. It is easy 
to trigger by loading
and unloading the sunlance module, but it hangs linux in other places (init 
process, console login).

It happens only in SMP. If it happens in the sunlance module it happens in 
sparc_lance_probe_one()
(in probing function). I thought it is due to openprom accesses so I commented 
them out (and put
hardcoded values there). No real change. It is always in the probe_one method 
before any DMA is
started.


I was able to find out that it is definitely prom related. When I removed also 
prom_node_has_property() call,
there is no bug any more. It locks inside prom_XXX access functions (e.g. 
__prom_nextprop or prom_getproplen).

The old prom system was working so I think the new openprom patches created 
this bug.

How does the new system access the prom? Is the old prom lock is taken into 
consideration?

The lock is taken into consideration however, looking at the code, there seems to be an issue with the new code for Sparc32. It does not seem tie up with the code used before!!!. If this is rearly the case then this would explain the memory corruption I am seeing as the functions in tree.c that call the openprom to not match the previous working versions.

I will try to workout what has happened.


Regards,
Krzysztof


-
To unsubscribe from this list: send the line "unsubscribe sparclinux" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to