All of lore.kernel.org
 help / color / mirror / Atom feed
* Suggested patch: reset errno after isatty()
@ 2010-11-02 14:37 Ketil Froyn
  2010-11-03  8:23 ` Matthieu CASTET
  0 siblings, 1 reply; 17+ messages in thread
From: Ketil Froyn @ 2010-11-02 14:37 UTC (permalink / raw)
  To: linux-mtd

isatty() uses an ioctl and the resulting error code to determine if an
fd is a tty or not. If it isn't, errno is set to ENOTTY. Later in the
code, pread() fails, or rather returns 0 immediately. When this
happens, the following perror("pread") tells me:

pread: Not a typewriter

which is the wrong error. Here's strace showing the issue:

open("/sdcard/mtd5.dump", O_WRONLY|O_CREAT|O_TRUNC|O_LARGEFILE, 0644) = 4
ioctl(4, TCGETS or SNDCTL_TMR_TIMEBASE, 0xbee43ab0) = -1 ENOTTY (Not a
typewriter)
write(2, "Block size 131072, page size 204"..., 47) = 47
write(2, "Dumping data starting at 0x00000"..., 64) = 64
ioctl(3, 0x40084d0b, 0xbee43c30)        = 0
pread(3, "", 2048, 0)                   = 0
write(2, "pread", 5)                    = 5
write(2, ": ", 2)                       = 2
write(2, "Not a typewriter", 16)        = 16
write(2, "\n", 1)                       = 1

And the included patch (below, against v1.4.1, but simple enough)
should take care of it.

Though if someone knows what could be causing the pread() to keep
failing, I'd be interested in hearing it! And the mtd device is
reported as having a page size of 2048 and oob size 56, so to get even
this far I added that as a valid page size. Isn't it?

diff --git a/nanddump.c b/nanddump.c
index 709b2db..ba370ad 100644
--- a/nanddump.c
+++ b/nanddump.c
@@ -374,6 +374,7 @@ int main(int argc, char * const argv[])
                close(fd);
                exit(EXIT_FAILURE);
        }
+       errno = 0;

        /* Initialize start/end addresses and block size */
        if (length)

^ permalink raw reply related	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2010-11-29 15:07 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-11-02 14:37 Suggested patch: reset errno after isatty() Ketil Froyn
2010-11-03  8:23 ` Matthieu CASTET
2010-11-03 13:16   ` Ketil Froyn
2010-11-06  8:54     ` Mike Frysinger
2010-11-07 22:36       ` Ketil Froyn
2010-11-09  9:40         ` Mike Frysinger
2010-11-13 11:07         ` Artem Bityutskiy
2010-11-13 11:55           ` Artem Bityutskiy
2010-11-17 15:50             ` Ketil Froyn
2010-11-18 11:13               ` Ketil Froyn
2010-11-24  7:50                 ` Mike Frysinger
2010-11-24  9:59                   ` Ketil Froyn
2010-11-24 14:12                     ` Artem Bityutskiy
2010-11-24 14:30                       ` Ketil Froyn
2010-11-24 21:36                         ` Mike Frysinger
2010-11-25  8:58                           ` Ketil Froyn
2010-11-29 15:07                             ` Artem Bityutskiy

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.