Messages in this thread | | | Date | Tue, 10 Jul 2001 21:00:35 +0200 (CEST) | From | Gérard Roudier <> | Subject | Re: [PATCH] sym53c8xx timer rework |
| |
On Tue, 10 Jul 2001, Tim Hockin wrote:
> Gerard (and all) > > Attached is a small patch to re-work the timer in the sym53c8xx driver. I > submitted this patch against 2.4.5, but don't see it in 2.4.6, so I am > re-submitting against 2.4.6. > > Please let me know if there are any problems with this patch.
Hmmm... How much are you sure there isn't any race in your patch ?
If the timer handler is spinning on the lock embedded in the driver instance and you free this instance under its knees, it will just reference random memory.
That was the reason I preferred to leave the timer die by itself prior to releasing the HBA instance. The 'release_stage' was the trick, but probably some memory barriers or atomic operations were missing.
If you want to delete the timer on HBA instance release, then you also want to check if the pointer to the HBA instance is still valid in the timer handler and just return if it isn't so.
Btw, is there a simple and clean way to deal with such concurrency (I mean a timer embedded in a data structure we want to free concurrently ? Given the current sheme of Linux requiring a synchronous HBA instance release, I am under the impression that there is no such way.
Gérard.
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |