2.6.43.2-6.fc15 でホットプラグ可能な PCI メモリ デバイス用のブロック デバイス ドライバを作成しています (そのため、LDD3 は多くの機能に関して古くなっています)。ブロック デバイス de を取得するのに問題があります。 -登録がスムーズに進みます。デバイスが削除されたら、gendisk と request_queue を破棄しますが、ハングしblk_cleanup_queue()
ます。おそらく、その前に実行するのを怠ったキュー関連のプロセスがいくつかありますが、参照用に使用しているカーネルツリーの他のブロックドライバーとの大きな一貫した違いは見られません ( memstick
、cciss
、など)。キューと gendisk を整理する前に、どのような手順を実行する必要がありますか?
.open
、.release
、および添付の を実装.ioctl
していますが、リクエストが発生したとき、またはブロックデバイスの登録を解除するときに、キューを整理する方法が正確にはわかりません。block_ops
mydev_request(struct request_queue *q)
blk_init_queue(mydev_request, &mydev->lock)