ฉันมีระบบ RHEL 6 พร้อมเคอร์เนล 2.6.32 ที่กำลังแสดงปัญหากับไดรเวอร์ sdhci
เมื่อฉันโหลดโมดูลเคอร์เนล sdhci_pci เป็นครั้งแรก (หลังจากโหลดโมดูล sdhci) เมื่อใส่การ์ด SD ฉันสังเกตเห็นข้อผิดพลาด I/O จำนวนมากและไม่มีการระบุอุปกรณ์
13 ตุลาคม 02:52:57 เคอร์เนล localhost: sdhci: ไดรเวอร์ Secure Digital Host Controller Interface
13 ต.ค. 02:52:57 น. เคอร์เนล localhost: sdhci: ลิขสิทธิ์ (c) Pierre Ossman
13 ตุลาคม 02:52:57 เคอร์เนล localhost: sdhci-pci 0000:00:1b.0: พบคอนโทรลเลอร์ SDHCI [8086:5aca] (rev b)
13 ตุลาคม 02:52:57 เคอร์เนล localhost: sdhci-pci 0000:00:1b.0: สถานะพลังงานเปลี่ยนโดย ACPI เป็น D0
13 ตุลาคม 02:52:57 เคอร์เนล localhost: sdhci-pci 0000:00:1b.0: สถานะพลังงานเปลี่ยนโดย ACPI เป็น D0
13 ตุลาคม 02:52:57 เคอร์เนล localhost: sdhci-pci 0000:00:1b.0: PCI INT A -> GSI 3 (ระดับต่ำ) -> IRQ 3
13 ตุลาคม 02:52:57 เคอร์เนล localhost: sdhci-pci 0000:00:1b.0: ขนาด iomem ไม่ถูกต้อง คุณอาจประสบปัญหา
13 ตุลาคม 02:52:57 เคอร์เนล localhost: อุปกรณ์นำที่ลงทะเบียน: mmc0::
13 ตุลาคม 02:52:57 เคอร์เนล localhost: mmc0: คอนโทรลเลอร์ SDHCI บน PCI [0000:00:1b.0] โดยใช้ ADMA
13 ตุลาคม 02:52:57 เคอร์เนล localhost: sdhci-pci 0000:00:1c.0: พบคอนโทรลเลอร์ SDHCI [8086:5acc] (rev b)
13 ตุลาคม 02:52:57 เคอร์เนล localhost: sdhci-pci 0000:00:1c.0: สถานะพลังงานเปลี่ยนโดย ACPI เป็น D0
13 ตุลาคม 02:52:57 เคอร์เนล localhost: sdhci-pci 0000:00:1c.0: สถานะพลังงานเปลี่ยนโดย ACPI เป็น D0
13 ตุลาคม 02:52:57 เคอร์เนล localhost: sdhci-pci 0000:00:1c.0: PCI INT A -> GSI 39 (ระดับต่ำ) -> IRQ 39
13 ตุลาคม 02:52:57 เคอร์เนล localhost: sdhci-pci 0000:00:1c.0: ขนาด iomem ไม่ถูกต้อง คุณอาจประสบปัญหา
13 ตุลาคม 02:52:57 เคอร์เนล localhost: อุปกรณ์นำที่ลงทะเบียน: mmc1::
13 ตุลาคม 02:52:57 เคอร์เนล localhost: mmc1: คอนโทรลเลอร์ SDHCI บน PCI [0000:00:1c.0] โดยใช้ ADMA
13 ตุลาคม 02:52:57 เคอร์เนล localhost: mmc0: การ์ด SDHC ความเร็วสูงพิเศษใหม่ที่ที่อยู่ 59b4
13 ตุลาคม 02:52:57 เคอร์เนล localhost: mmcblk0: mmc0:59b4 SD 14.7 GiB
13 ตุลาคม 02:52:57 เคอร์เนล localhost: mmcblk0:
13 ตุลาคม 02:52:57 เคอร์เนล localhost: mmcblk0: ลองใหม่โดยใช้การอ่านบล็อกเดียว
13 ตุลาคม 02:52:57 เคอร์เนล localhost: mmcblk0: ข้อผิดพลาด -84 คำสั่งสถานะการส่ง
13 ต.ค. 02:52:57 เคอร์เนล localhost: mmcblk0: ข้อผิดพลาด -84 การส่งคำสั่งอ่าน / เขียน, การตอบสนอง 0x0, สถานะการ์ด 0x0
13 ต.ค. 02:52:57 เคอร์เนล localhost: mmcblk0: ข้อผิดพลาด -84 การถ่ายโอนข้อมูล, เซกเตอร์ 0, nr 8, สถานะการ์ด 0x0
13 ตุลาคม 02:52:57 เคอร์เนล localhost: __ratelimit: 577 callbacks ระงับ
13 ตุลาคม 02:52:57 เคอร์เนล localhost: end_request: ข้อผิดพลาด I / O, dev mmcblk0, เซกเตอร์ 0
13 ตุลาคม 02:52:57 เคอร์เนล localhost: mmcblk0: ข้อผิดพลาด -84 คำสั่งสถานะการส่ง
13 ต.ค. 02:52:57 เคอร์เนล localhost: mmcblk0: ข้อผิดพลาด -110 การส่งคำสั่งอ่าน / เขียน, การตอบสนอง 0x0, สถานะการ์ด 0x0
13 ตุลาคม 02:52:57 เคอร์เนล localhost: mmcblk0: ข้อผิดพลาด -84 การถ่ายโอนข้อมูล, เซกเตอร์ 1, nr 7, สถานะการ์ด 0x0
13 ตุลาคม 02:52:57 เคอร์เนล localhost: end_request: ข้อผิดพลาด I / O, dev mmcblk0, เซกเตอร์ 1
13 ตุลาคม 02:52:57 เคอร์เนล localhost: mmcblk0: ข้อผิดพลาด -84 คำสั่งสถานะการส่ง
13 ต.ค. 02:52:57 เคอร์เนล localhost: mmcblk0: ข้อผิดพลาด -84 การส่งคำสั่งอ่าน / เขียน, การตอบสนอง 0x0, สถานะการ์ด 0x0
13 ต.ค. 02:52:57 เคอร์เนล localhost: mmcblk0: ข้อผิดพลาด -84 การถ่ายโอนข้อมูล, เซกเตอร์ 2, nr 6, สถานะการ์ด 0x0
13 ตุลาคม 02:52:57 เคอร์เนล localhost: end_request: ข้อผิดพลาด I / O, dev mmcblk0, เซกเตอร์ 2
13 ตุลาคม 02:52:57 เคอร์เนล localhost: mmcblk0: ข้อผิดพลาด -84 คำสั่งสถานะการส่ง
13 ต.ค. 02:52:57 เคอร์เนล localhost: mmcblk0: ข้อผิดพลาด -110 การส่งคำสั่งอ่าน / เขียน, การตอบสนอง 0x0, สถานะการ์ด 0x0
13 ตุลาคม 02:52:57 เคอร์เนล localhost: mmcblk0: ข้อผิดพลาด -84 การถ่ายโอนข้อมูล, เซกเตอร์ 3, nr 5, สถานะการ์ด 0x0
13 ตุลาคม 02:52:57 เคอร์เนล localhost: end_request: ข้อผิดพลาด I / O, dev mmcblk0, เซกเตอร์ 3
13 ตุลาคม 02:52:57 เคอร์เนล localhost: mmcblk0: ข้อผิดพลาด -84 คำสั่งสถานะการส่ง
13 ต.ค. 02:52:57 เคอร์เนล localhost: mmcblk0: ข้อผิดพลาด -84 การส่งคำสั่งอ่าน / เขียน, การตอบสนอง 0x0, สถานะการ์ด 0x0
13 ตุลาคม 02:52:57 เคอร์เนล localhost: mmcblk0: ข้อผิดพลาด -84 การถ่ายโอนข้อมูล, เซกเตอร์ 4, nr 4, สถานะการ์ด 0x0
13 ตุลาคม 02:52:57 เคอร์เนล localhost: end_request: ข้อผิดพลาด I / O, dev mmcblk0, เซกเตอร์ 4
...
หากภายหลังฉันยกเลิกการโหลดและรีโหลดโมดูลเคอร์เนลเหล่านั้น โดยที่ยังคงใส่การ์ด SD อยู่ ข้อผิดพลาดจะไม่ถูกรายงานและมีการระบุอุปกรณ์อย่างถูกต้อง จากนั้นฉันสามารถติดตั้งอุปกรณ์และอ่าน/เขียนตามที่คาดไว้
13 ต.ค. 02:53:31 เคอร์เนล localhost: sdhci: ไดรเวอร์ Secure Digital Host Controller Interface
13 ตุลาคม 02:53:31 เคอร์เนล localhost: sdhci: ลิขสิทธิ์ (c) Pierre Ossman
13 ตุลาคม 02:53:50 เคอร์เนล localhost: sdhci-pci 0000:00:1b.0: พบคอนโทรลเลอร์ SDHCI [8086:5aca] (rev b)
13 ตุลาคม 02:53:50 เคอร์เนล localhost: sdhci-pci 0000:00:1b.0: สถานะพลังงานเปลี่ยนโดย ACPI เป็น D0
13 ตุลาคม 02:53:50 เคอร์เนล localhost: sdhci-pci 0000:00:1b.0: สถานะพลังงานเปลี่ยนโดย ACPI เป็น D0
13 ต.ค. 02:53:50 เคอร์เนล localhost: sdhci-pci 0000:00:1b.0: PCI INT A -> GSI 3 (ระดับต่ำ) -> IRQ 3
13 ต.ค. 02:53:50 เคอร์เนล localhost: sdhci-pci 0000:00:1b.0: ขนาด iomem ไม่ถูกต้อง คุณอาจประสบปัญหา
13 ต.ค. 02:53:50 เคอร์เนล localhost: อุปกรณ์นำที่ลงทะเบียน: mmc0::
13 ตุลาคม 02:53:50 เคอร์เนล localhost: mmc0: คอนโทรลเลอร์ SDHCI บน PCI [0000:00:1b.0] โดยใช้ ADMA
13 ต.ค. 02:53:50 เคอร์เนล localhost: sdhci-pci 0000:00:1c.0: พบคอนโทรลเลอร์ SDHCI [8086:5acc] (rev b)
13 ต.ค. 02:53:50 เคอร์เนล localhost: sdhci-pci 0000:00:1c.0: สถานะพลังงานเปลี่ยนโดย ACPI เป็น D0
13 ต.ค. 02:53:50 เคอร์เนล localhost: sdhci-pci 0000:00:1c.0: สถานะพลังงานเปลี่ยนโดย ACPI เป็น D0
13 ต.ค. 02:53:50 เคอร์เนล localhost: sdhci-pci 0000:00:1c.0: PCI INT A -> GSI 39 (ระดับต่ำ) -> IRQ 39
13 ต.ค. 02:53:50 เคอร์เนล localhost: sdhci-pci 0000:00:1c.0: ขนาด iomem ไม่ถูกต้อง คุณอาจประสบปัญหา
13 ต.ค. 02:53:50 เคอร์เนล localhost: อุปกรณ์นำที่ลงทะเบียน: mmc1::
13 ตุลาคม 02:53:50 เคอร์เนล localhost: mmc1: คอนโทรลเลอร์ SDHCI บน PCI [0000:00:1c.0] โดยใช้ ADMA
13 ตุลาคม 02:53:50 เคอร์เนล localhost: mmc0: การ์ด SDHC ความเร็วสูงใหม่ที่ที่อยู่ 59b4
13 ต.ค. 02:53:50 เคอร์เนล localhost: mmcblk0: mmc0:59b4 SD 14.7 GiB
13 ต.ค. 02:53:50 เคอร์เนล localhost: mmcblk0: p1
ตราบใดที่ฉันใส่การ์ด SD ทิ้งไว้ ฉันสามารถยกเลิกการโหลด/รีโหลดโมดูลเคอร์เนลและใช้อุปกรณ์ได้โดยไม่มีปัญหา
อย่างไรก็ตาม ทันทีที่ฉันดีดการ์ดออก ฉันจะพบข้อผิดพลาดอีกครั้งในครั้งแรกที่ฉันโหลด sdhci และ sdhci_pc ซ้ำในภายหลัง และฉันจะเห็นข้อผิดพลาดเหล่านั้นหายไปอีกครั้งในการโหลดซ้ำครั้งถัดไป
ข้อมูลเชิงลึกเกี่ยวกับสาเหตุที่สิ่งนี้อาจเกิดขึ้น?
อัปเดต:
หลังจากรายงานข้อผิดพลาด I/O แล้ว ฉันเพียงแค่ยกเลิกการโหลดและโหลด sdhci_pci ใหม่เท่านั้นกล่าวอีกนัยหนึ่ง ฉันไม่จำเป็นต้องยกเลิกการโหลดและโหลด sdhci ใหม่เช่นกัน