Bug 599660

Summary: Many I/O errors with sdhc card in Lenovo T510 SD card reader
Product: Red Hat Enterprise Linux 6 Reporter: William Cohen <wcohen>
Component: kernelAssignee: Red Hat Kernel Manager <kernel-mgr>
Status: CLOSED CURRENTRELEASE QA Contact: Red Hat Kernel QE team <kernel-qe>
Severity: medium Docs Contact:
Priority: low    
Version: 6.0   
Target Milestone: rc   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: kernel-2.6.32-71.7.1.el6.x86_64 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2010-11-22 15:26:41 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description William Cohen 2010-06-03 17:30:59 UTC
Description of problem:

When attempting to use the built in SD card reader in the Lenovo T510 getting many errors of the form:

cp: reading `/media/disk/DCIM/101_FUJI/DSCF1125.JPG': Input/output error
cp: reading `/media/disk/DCIM/101_FUJI/DSCF1126.JPG': Input/output error
cp: reading `/media/disk/DCIM/101_FUJI/DSCF1127.JPG': Input/output error
cp: reading `/media/disk/DCIM/101_FUJI/DSCF1128.JPG': Input/output error
cp: reading `/media/disk/DCIM/101_FUJI/DSCF1129.JPG': Input/output error
cp: reading `/media/disk/DCIM/101_FUJI/DSCF1130.JPG': Input/output error
cp: reading `/media/disk/DCIM/101_FUJI/DSCF1131.JPG': Input/output error
cp: reading `/media/disk/DCIM/101_FUJI/DSCF1132.JPG': Input/output error
cp: reading `/media/disk/DCIM/101_FUJI/DSCF1133.JPG': Input/output error


in /var/log /messages see:

Jun  3 13:21:03 cannondale kernel: end_request: I/O error, dev mmcblk0, sector 50103
Jun  3 13:21:03 cannondale kernel: mmcblk0: retrying using single block read
Jun  3 13:21:03 cannondale kernel: mmcblk0: error -84 transferring data, sector 52504, nr 104, card status 0x900
Jun  3 13:21:03 cannondale kernel: end_request: I/O error, dev mmcblk0, sector 52504
Jun  3 13:21:03 cannondale kernel: mmcblk0: error -84 transferring data, sector 52520, nr 88, card status 0x900
Jun  3 13:21:03 cannondale kernel: end_request: I/O error, dev mmcblk0, sector 52520

Version-Release number of selected component (if applicable):

kernel-2.6.32-31.el6.x86_64

How reproducible:

every time

Steps to Reproduce:
1. Have x86-64 RHEL-6 installed on laptop
2. insert sd card into sd reader
3. cp -a /media/disk /tmp/.
  
Actual results:

Get many errors and files are not copied over correctly from SD card

Expected results:

No error messages and files are copied correctly between sd card and machine.


Additional info:

In /var/log/messages see the following for the sdhci-pci

Jun  3 08:37:40 cannondale kernel: sdhci-pci 0000:0d:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
Jun  3 08:37:40 cannondale kernel: sdhci-pci 0000:0d:00.0: Will use DMA mode even though HW doesn't fully claim to support it.

Below is backtrace in /var/log/messages

Jun  2 23:53:32 cannondale kernel: WARNING: at drivers/mmc/host/sdhci.c:870 sdhci_send_command+0xb5c/0xce0 [sdhci]() (Not tainted)
Jun  2 23:53:32 cannondale kernel: Hardware name: 4384BQ1
Jun  2 23:53:32 cannondale kernel: Modules linked in: vfat(U) fat(U) mmc_block(U) rfcomm(U) sco(U) bnep(U) l2cap(U) btusb(U) bluetooth(U) fuse(U) ebtable_nat(U) ebtables(U) ipt_MASQUERADE(U) iptable_nat(U) nf_nat(U) bridge(U) stp(U) llc(U) autofs4(U) sunrpc(U) cpufreq_ondemand(U) acpi_cpufreq(U) freq_table(U) xt_physdev(U) ip6t_REJECT(U) nf_conntrack_ipv6(U) ip6table_filter(U) ip6_tables(U) be2iscsi(U) bnx2i(U) cnic(U) uio(U) cxgb3i(U) cxgb3(U) mdio(U) ib_iser(U) rdma_cm(U) ib_cm(U) iw_cm(U) ib_sa(U) ib_mad(U) ib_core(U) ib_addr(U) ipv6(U) iscsi_tcp(U) libiscsi_tcp(U) libiscsi(U) scsi_transport_iscsi(U) fpu(U) aesni_intel(U) cryptd(U) aes_x86_64(U) aes_generic(U) xts(U) gf128mul(U) dm_crypt(U) dm_mirror(U) dm_region_hash(U) dm_log(U) kvm_intel(U) kvm(U) uinput(U) arc4(U) ecb(U) iwlagn(U) uvcvideo(U) iwlcore(U) e1000e(U) videodev(U) v4l2_compat_ioctl32(U) iTCO_wdt(U) mac80211(U) iTCO_vendor_support(U) thinkpad_acpi(U) i2c_i801(U) cfg80211(U) hwmon(U) sg(U) rfkill(U) wmi(U) ext4(U) mbcache(U) jbd2(U) sd_mod(U) sr_mod(
Jun  2 23:53:32 cannondale kernel: U) cdrom(U) crc_t10dif(U) firewire_ohci(U) firewire_core(U) crc_itu_t(U) sdhci_pci(U) sdhci(U) ahci(U) mmc_core(U) i915(U) drm_kms_helper(U) drm(U) i2c_algo_bit(U) i2c_core(U) video(U) output(U) dm_mod(U) [last unloaded: microcode]
Jun  2 23:53:32 cannondale kernel: Pid: 0, comm: swapper Not tainted 2.6.32-31.el6.x86_64 #1
Jun  2 23:53:32 cannondale kernel: Call Trace:
Jun  2 23:53:32 cannondale kernel: <IRQ>  [<ffffffff8106a483>] warn_slowpath_common+0x83/0xc0
Jun  2 23:53:32 cannondale kernel: [<ffffffff8106a4d4>] warn_slowpath_null+0x14/0x20
Jun  2 23:53:32 cannondale kernel: [<ffffffffa003c0fc>] sdhci_send_command+0xb5c/0xce0 [sdhci]
Jun  2 23:53:32 cannondale kernel: [<ffffffff8126380c>] ? is_swiotlb_buffer+0x3c/0x50
Jun  2 23:53:32 cannondale kernel: [<ffffffff8125a87a>] ? delay_tsc+0x4a/0x80
Jun  2 23:53:32 cannondale kernel: [<ffffffff8125a826>] ? __const_udelay+0x46/0x50
Jun  2 23:53:32 cannondale kernel: [<ffffffffa003c455>] sdhci_finish_data+0xe5/0x3e0 [sdhci]
Jun  2 23:53:32 cannondale kernel: [<ffffffff810931b2>] ? enqueue_hrtimer+0x82/0xd0
Jun  2 23:53:32 cannondale kernel: [<ffffffffa003cb81>] sdhci_irq+0x261/0x6fc [sdhci]
Jun  2 23:53:32 cannondale kernel: [<ffffffff8107bd4b>] ? get_next_timer_interrupt+0x1ab/0x240
Jun  2 23:53:32 cannondale kernel: [<ffffffff810d6e90>] handle_IRQ_event+0x60/0x170
Jun  2 23:53:32 cannondale kernel: [<ffffffff810d9594>] handle_fasteoi_irq+0x74/0xe0
Jun  2 23:53:32 cannondale kernel: [<ffffffff81015f89>] handle_irq+0x49/0xa0
Jun  2 23:53:32 cannondale kernel: [<ffffffff814db7fc>] do_IRQ+0x6c/0xf0
Jun  2 23:53:32 cannondale kernel: [<ffffffff81013ad3>] ret_from_intr+0x0/0x11
Jun  2 23:53:32 cannondale kernel: <EOI>  [<ffffffff812d8f8e>] ? acpi_idle_enter_bm+0x279/0x2ad
Jun  2 23:53:32 cannondale kernel: [<ffffffff812d8f87>] ? acpi_idle_enter_bm+0x272/0x2ad
Jun  2 23:53:32 cannondale kernel: [<ffffffff813ddb57>] cpuidle_idle_call+0xa7/0x140
Jun  2 23:53:32 cannondale kernel: [<ffffffff81011e96>] cpu_idle+0xb6/0x110
Jun  2 23:53:32 cannondale kernel: [<ffffffff814cd56b>] start_secondary+0x1fc/0x23f
Jun  2 23:53:32 cannondale kernel: ---[ end trace 485d5a9ebd3e6310 ]---

Comment 2 RHEL Program Management 2010-06-07 16:05:01 UTC
This request was evaluated by Red Hat Product Management for inclusion in a Red
Hat Enterprise Linux major release.  Product Management has requested further
review of this request by Red Hat Engineering, for potential inclusion in a Red
Hat Enterprise Linux Major release.  This request is not yet committed for
inclusion.

Comment 3 William Cohen 2010-06-13 18:12:40 UTC
I was able to read the SD card without problem on a Dell 1420 running Fedora 13. The dell had the following reader (from lshw):

          *-generic:0
                description: SD Host controller
                product: R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter
                vendor: Ricoh Co Ltd
                physical id: 1.1
                bus info: pci@0000:03:01.1
                version: 22
                width: 32 bits
                clock: 33MHz
                capabilities: bus_master cap_list
                configuration: driver=sdhci-pci latency=64
                resources: irq:18 memory:fe4ff400-fe4ff4ff

The Dell 1420 had the following information about the SDHC driver in /var/log/messages:

Jun 13 13:51:18 tandem kernel: sdhci: Secure Digital Host Controller Interface driver
Jun 13 13:51:18 tandem kernel: sdhci: Copyright(c) Pierre Ossman
Jun 13 13:51:18 tandem kernel: sdhci-pci 0000:03:01.1: SDHCI controller found [1180:0822] (rev 22)
Jun 13 13:51:18 tandem kernel: sdhci-pci 0000:03:01.1: PCI INT B -> GSI 18 (level, low) -> IRQ 18
Jun 13 13:51:18 tandem kernel: Registered led device: mmc0::
Jun 13 13:51:18 tandem kernel: mmc0: SDHCI controller on PCI [0000:03:01.1] using DMA]

On the T510 see the following information about the SDHC driver in /var/log/messages:


Jun 13 13:29:28 cannondale kernel: sdhci-pci 0000:0d:00.0: SDHCI controller found [1180:e822] (rev 1)
Jun 13 13:29:28 cannondale kernel: sdhci-pci 0000:0d:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
Jun 13 13:29:28 cannondale kernel: sdhci-pci 0000:0d:00.0: Will use DMA mode even though HW doesn't fully claim to support it.
Jun 13 13:29:28 cannondale kernel: Registered led device: mmc0::
Jun 13 13:29:28 cannondale kernel: mmc0: SDHCI controller on PCI [0000:0d:00.0] using DMA

Comment 4 RHEL Program Management 2010-07-15 14:37:25 UTC
This issue has been proposed when we are only considering blocker
issues in the current Red Hat Enterprise Linux release. It has
been denied for the current Red Hat Enterprise Linux release.

** If you would still like this issue considered for the current
release, ask your support representative to file as a blocker on
your behalf. Otherwise ask that it be considered for the next
Red Hat Enterprise Linux release. **

Comment 5 William Cohen 2010-11-22 15:26:41 UTC
This problem is fixed in the  2.6.32-71.7.1.el6.x86_64 kernel that the machine is currently running.

Cards now being mounted and working properly on the machine:

Nov 22 10:17:59 cannondale kernel: mmc0: new SDHC card at address 0007
Nov 22 10:18:00 cannondale kernel: mmcblk0: mmc0:0007 SD08G 7.48 GiB 
Nov 22 10:18:00 cannondale kernel: mmcblk0: p1

The read benchmark in the "Disk Utility" and cp also work without error on the mounted device.