diff options
author | Kazutaka YOKOTA <yokota@FreeBSD.org> | 1999-12-07 11:23:58 +0000 |
---|---|---|
committer | Kazutaka YOKOTA <yokota@FreeBSD.org> | 1999-12-07 11:23:58 +0000 |
commit | 0be01624315368ccf8659fa0d99edf54379e60f6 (patch) | |
tree | 404e26d4b22e22070dbc5f2eeef50ad2fb101eea /sys/dev/fb/vga.c | |
parent | 4332f82d595f37b9ca2b4bb0c4fbaf27543e16a6 (diff) | |
download | src-0be01624315368ccf8659fa0d99edf54379e60f6.tar.gz src-0be01624315368ccf8659fa0d99edf54379e60f6.zip |
Fix the ioctl CONS_FINDMODE and its underlying subroutine
xxx_query_mode() in the vga and vesa drivers.
- xxx_query_mode() returns 0 (success) and a positive error number.
- Copy mode information on success.
- Remove redundant structure copy.
The bug first found in -STABLE by jmg.
Notes
Notes:
svn path=/head/; revision=54258
Diffstat (limited to 'sys/dev/fb/vga.c')
-rw-r--r-- | sys/dev/fb/vga.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/sys/dev/fb/vga.c b/sys/dev/fb/vga.c index 6c96dae439a7..f733e4745fba 100644 --- a/sys/dev/fb/vga.c +++ b/sys/dev/fb/vga.c @@ -1441,11 +1441,10 @@ vga_get_info(video_adapter_t *adp, int mode, video_info_t *info) static int vga_query_mode(video_adapter_t *adp, video_info_t *info) { - video_info_t buf; int i; if (!vga_init_done) - return -1; + return ENXIO; for (i = 0; bios_vmode[i].vi_mode != EOT; ++i) { if (bios_vmode[i].vi_mode == NA) @@ -1475,11 +1474,11 @@ vga_query_mode(video_adapter_t *adp, video_info_t *info) continue; /* verify if this mode is supported on this adapter */ - if (vga_get_info(adp, bios_vmode[i].vi_mode, &buf)) + if (vga_get_info(adp, bios_vmode[i].vi_mode, info)) continue; - return bios_vmode[i].vi_mode; + return 0; } - return -1; + return ENODEV; } /* |