On Tue, Mar 15, 2016 at 11:26:07AM -0400, Yin, Fengwei wrote: > From: Fengwei Yin <fengwei....@linaro.org> > > a5f5774c55a2e3ed75f4d6c5556b7bfcb726e6f0 introduced the whole block > device checking for MMC_IOC_CMD while the old code has no such check. > > It breaks some ioctl call like BLKROSET from user space. An example > is "adb remount" cmd. It prints out following error message: > "remount of /system failed; couldn't make block device XXXX writable: \ > Operation not permitted." > while the command worked fine. > > This change move the whole block device checking only for MMC_IOC_MULTI_CMD.
I think mmc_blk_ioctl_cmd will need this as well, as will probably do any new ioctl. So I think the right fix is to simply return -EINVAL instead of EPERM if on a partition, which will make all the block layer ioctls works fine.