mirror of
https://github.com/torvalds/linux.git
synced 2026-06-04 12:35:52 +02:00
In dasd_profile_start() the amount of requests on the device queue are
counted. The access to the device queue is unprotected against
concurrent access. With a lot of parallel I/O, especially with alias
devices enabled, the device queue can change while dasd_profile_start()
is accessing the queue. In the worst case this leads to a kernel panic
due to incorrect pointer accesses.
Fix this by taking the device lock before accessing the queue and
counting the requests. Additionally the check for a valid profile data
pointer can be done earlier to avoid unnecessary locking in a hot path.
Cc: <stable@vger.kernel.org>
Fixes:
|
||
|---|---|---|
| .. | ||
| block | ||
| char | ||
| cio | ||
| crypto | ||
| net | ||
| scsi | ||
| virtio | ||
| Makefile | ||