| Submitter | Gabor Juhos |
|---|---|
| Date | May 23, 2012, 10:17 p.m. |
| Message ID | <1337811443-2603-1-git-send-email-juhosg@openwrt.org> |
| Download | mbox | patch |
| Permalink | /patch/161039/ |
| State | New |
| Headers | show |
Comments
On Thu, 2012-05-24 at 00:17 +0200, Gabor Juhos wrote: > The 'mtd_writev' interface calls the function assigned > to the '_write' field of a given mtd device if that is > not NULL. The block2mtd driver sets the '_writev' field > to the 'mtd_writev' function itself and thus causes a > endless loop. > > This is caused by 1dbebd32562b3c2caeca35960e5cb00bfcc12900 > (mtd: harmonize mtd_writev usage). > > Remove the assignment from the block2mtd driver to fix the > issue. > > Signed-off-by: Gabor Juhos <juhosg@openwrt.org> > Cc: Artem Bityutskiy <artem.bityutskiy@linux.intel.com> > Cc: stable@vger.kernel.org Amended the "stable" tag and pushed to l2-mtd.git, thanks: Cc: stable@kernel.org [3.3+]
2012.05.24. 9:48 keltezéssel, Artem Bityutskiy írta: > On Thu, 2012-05-24 at 00:17 +0200, Gabor Juhos wrote: >> The 'mtd_writev' interface calls the function assigned to the '_write' >> field of a given mtd device if that is not NULL. The block2mtd driver >> sets the '_writev' field to the 'mtd_writev' function itself and thus >> causes a endless loop. >> >> This is caused by 1dbebd32562b3c2caeca35960e5cb00bfcc12900 (mtd: >> harmonize mtd_writev usage). >> >> Remove the assignment from the block2mtd driver to fix the issue. >> >> Signed-off-by: Gabor Juhos <juhosg@openwrt.org> Cc: Artem Bityutskiy >> <artem.bityutskiy@linux.intel.com> Cc: stable@vger.kernel.org > > Amended the "stable" tag and pushed to l2-mtd.git, thanks: > > Cc: stable@kernel.org [3.3+] > Thanks!
Patch
diff --git a/drivers/mtd/devices/block2mtd.c b/drivers/mtd/devices/block2mtd.c index a4a80b7..7d7000d 100644 --- a/drivers/mtd/devices/block2mtd.c +++ b/drivers/mtd/devices/block2mtd.c @@ -271,7 +271,6 @@ static struct block2mtd_dev *add_device(char *devname, int erase_size) dev->mtd.flags = MTD_CAP_RAM; dev->mtd._erase = block2mtd_erase; dev->mtd._write = block2mtd_write; - dev->mtd._writev = mtd_writev; dev->mtd._sync = block2mtd_sync; dev->mtd._read = block2mtd_read; dev->mtd.priv = dev;
The 'mtd_writev' interface calls the function assigned to the '_write' field of a given mtd device if that is not NULL. The block2mtd driver sets the '_writev' field to the 'mtd_writev' function itself and thus causes a endless loop. This is caused by 1dbebd32562b3c2caeca35960e5cb00bfcc12900 (mtd: harmonize mtd_writev usage). Remove the assignment from the block2mtd driver to fix the issue. Signed-off-by: Gabor Juhos <juhosg@openwrt.org> Cc: Artem Bityutskiy <artem.bityutskiy@linux.intel.com> Cc: stable@vger.kernel.org --- An identical patch has been tested on 3.3.7, but the actual one is not even compile tested. --- drivers/mtd/devices/block2mtd.c | 1 - 1 files changed, 0 insertions(+), 1 deletions(-)