From: Brice Goglin <Brice.Goglin@ens-lyon.org>
To: "Antonino A. Daplas" <adaplas@gmail.com>
Cc: Andrew Morton <akpm@osdl.org>, LKML <linux-kernel@vger.kernel.org>
Subject: Re: 2.6.14-mm2: loop detected in depmod
Date: Fri, 11 Nov 2005 22:41:51 -0500 [thread overview]
Message-ID: <4375647F.8020208@ens-lyon.org> (raw)
In-Reply-To: <43744DA8.5060007@gmail.com>
Antonino A. Daplas wrote:
>Brice Goglin wrote:
>
>
>>Andrew Morton wrote:
>>
>>WARNING: Module
>>/lib/modules/2.6.14-mm2/kernel/drivers/video/console/fbcon_ud.ko
>>ignored, due to loop
>>
>>
>
>Sorry about that, did only a make modules without a make modules_install.
>Try this patch.
>
>Tony
>
>
>
This patch should now go into Linus' tree since the same problem
occurs with rc1 (and this patch fixes it) :)
thanks,
Brice
>Exporting struct fb_display produces this warning error on depmod:
>
>WARNING: Module
>/lib/modules/2.6.14-mm2/kernel/drivers/video/console/fbcon_ud.ko
>ignored, due to loop
>WARNING: Module
>/lib/modules/2.6.14-mm2/kernel/drivers/video/console/fbcon_rotate.ko
>ignored, due to loop
>WARNING: Module
>/lib/modules/2.6.14-mm2/kernel/drivers/video/console/fbcon_cw.ko
>ignored, due to loop
>WARNING: Module
>/lib/modules/2.6.14-mm2/kernel/drivers/video/console/fbcon_ccw.ko
>ignored, due to loop
>WARNING: Module
>/lib/modules/2.6.14-mm2/kernel/drivers/video/console/fbcon.ko ignored,
>due to loop
>WARNING: Loop detected:
>/lib/modules/2.6.14-mm2/kernel/drivers/video/console/bitblit.ko needs
>
>Signed-off-by: Antonino Daplas <adaplas@pol.net>
>---
>
> fbcon.c | 15 ++++++---------
> fbcon.h | 3 +--
> fbcon_ccw.c | 14 ++++++--------
> fbcon_cw.c | 14 ++++++--------
> fbcon_ud.c | 22 ++++++++++------------
> 5 files changed, 29 insertions(+), 39 deletions(-)
>
>diff --git a/drivers/video/console/fbcon.c b/drivers/video/console/fbcon.c
>index e7802ff..bcea87c 100644
>--- a/drivers/video/console/fbcon.c
>+++ b/drivers/video/console/fbcon.c
>@@ -106,8 +106,7 @@ enum {
> FBCON_LOGO_DONTSHOW = -3 /* do not show the logo */
> };
>
>-struct display fb_display[MAX_NR_CONSOLES];
>-EXPORT_SYMBOL(fb_display);
>+static struct display fb_display[MAX_NR_CONSOLES];
>
> static signed char con2fb_map[MAX_NR_CONSOLES];
> static signed char con2fb_map_boot[MAX_NR_CONSOLES];
>@@ -653,13 +652,12 @@ static void set_blitting_type(struct vc_
> {
> struct fbcon_ops *ops = info->fbcon_par;
>
>+ ops->p = (p) ? p : &fb_display[vc->vc_num];
>+
> if ((info->flags & FBINFO_MISC_TILEBLITTING))
> fbcon_set_tileops(vc, info, p, ops);
> else {
>- struct display *disp;
>-
>- disp = (p) ? p : &fb_display[vc->vc_num];
>- fbcon_set_rotation(info, disp);
>+ fbcon_set_rotation(info, ops->p);
> fbcon_set_bitops(ops);
> }
> }
>@@ -668,11 +666,10 @@ static void set_blitting_type(struct vc_
> struct display *p)
> {
> struct fbcon_ops *ops = info->fbcon_par;
>- struct display *disp;
>
> info->flags &= ~FBINFO_MISC_TILEBLITTING;
>- disp = (p) ? p : &fb_display[vc->vc_num];
>- fbcon_set_rotation(info, disp);
>+ ops->p = (p) ? p : &fb_display[vc->vc_num];
>+ fbcon_set_rotation(info, ops->p);
> fbcon_set_bitops(ops);
> }
> #endif /* CONFIG_MISC_TILEBLITTING */
>diff --git a/drivers/video/console/fbcon.h b/drivers/video/console/fbcon.h
>index accfd7b..6892e7f 100644
>--- a/drivers/video/console/fbcon.h
>+++ b/drivers/video/console/fbcon.h
>@@ -52,8 +52,6 @@ struct display {
> struct fb_videomode *mode;
> };
>
>-extern struct display fb_display[];
>-
> struct fbcon_ops {
> void (*bmove)(struct vc_data *vc, struct fb_info *info, int sy,
> int sx, int dy, int dx, int height, int width);
>@@ -73,6 +71,7 @@ struct fbcon_ops {
> struct fb_var_screeninfo var; /* copy of the current fb_var_screeninfo */
> struct timer_list cursor_timer; /* Cursor timer */
> struct fb_cursor cursor_state;
>+ struct display *p;
> int currcon; /* Current VC. */
> int cursor_flash;
> int cursor_reset;
>diff --git a/drivers/video/console/fbcon_ccw.c b/drivers/video/console/fbcon_ccw.c
>index 680aaba..3afd1ee 100644
>--- a/drivers/video/console/fbcon_ccw.c
>+++ b/drivers/video/console/fbcon_ccw.c
>@@ -63,9 +63,9 @@ static inline void ccw_update_attr(u8 *d
> static void ccw_bmove(struct vc_data *vc, struct fb_info *info, int sy,
> int sx, int dy, int dx, int height, int width)
> {
>- struct display *p = &fb_display[vc->vc_num];
>+ struct fbcon_ops *ops = info->fbcon_par;
> struct fb_copyarea area;
>- u32 vyres = GETVYRES(p->scrollmode, info);
>+ u32 vyres = GETVYRES(ops->p->scrollmode, info);
>
> area.sx = sy * vc->vc_font.height;
> area.sy = vyres - ((sx + width) * vc->vc_font.width);
>@@ -80,10 +80,10 @@ static void ccw_bmove(struct vc_data *vc
> static void ccw_clear(struct vc_data *vc, struct fb_info *info, int sy,
> int sx, int height, int width)
> {
>- struct display *p = &fb_display[vc->vc_num];
>+ struct fbcon_ops *ops = info->fbcon_par;
> struct fb_fillrect region;
> int bgshift = (vc->vc_hi_font_mask) ? 13 : 12;
>- u32 vyres = GETVYRES(p->scrollmode, info);
>+ u32 vyres = GETVYRES(ops->p->scrollmode, info);
>
> region.color = attr_bgcol_ec(bgshift,vc);
> region.dx = sy * vc->vc_font.height;
>@@ -131,7 +131,6 @@ static void ccw_putcs(struct vc_data *vc
> int fg, int bg)
> {
> struct fb_image image;
>- struct display *p = &fb_display[vc->vc_num];
> struct fbcon_ops *ops = info->fbcon_par;
> u32 width = (vc->vc_font.height + 7)/8;
> u32 cellsize = width * vc->vc_font.width;
>@@ -141,7 +140,7 @@ static void ccw_putcs(struct vc_data *vc
> u32 cnt, pitch, size;
> u32 attribute = get_attribute(info, scr_readw(s));
> u8 *dst, *buf = NULL;
>- u32 vyres = GETVYRES(p->scrollmode, info);
>+ u32 vyres = GETVYRES(ops->p->scrollmode, info);
>
> if (!ops->fontbuffer)
> return;
>@@ -397,9 +396,8 @@ static void ccw_cursor(struct vc_data *v
> int ccw_update_start(struct fb_info *info)
> {
> struct fbcon_ops *ops = info->fbcon_par;
>- struct display *p = &fb_display[ops->currcon];
> u32 yoffset;
>- u32 vyres = GETVYRES(p->scrollmode, info);
>+ u32 vyres = GETVYRES(ops->p->scrollmode, info);
> int err;
>
> yoffset = (vyres - info->var.yres) - ops->var.xoffset;
>diff --git a/drivers/video/console/fbcon_cw.c b/drivers/video/console/fbcon_cw.c
>index 6c6f3b6..6d92b84 100644
>--- a/drivers/video/console/fbcon_cw.c
>+++ b/drivers/video/console/fbcon_cw.c
>@@ -49,9 +49,9 @@ static inline void cw_update_attr(u8 *ds
> static void cw_bmove(struct vc_data *vc, struct fb_info *info, int sy,
> int sx, int dy, int dx, int height, int width)
> {
>- struct display *p = &fb_display[vc->vc_num];
>+ struct fbcon_ops *ops = info->fbcon_par;
> struct fb_copyarea area;
>- u32 vxres = GETVXRES(p->scrollmode, info);
>+ u32 vxres = GETVXRES(ops->p->scrollmode, info);
>
> area.sx = vxres - ((sy + height) * vc->vc_font.height);
> area.sy = sx * vc->vc_font.width;
>@@ -66,10 +66,10 @@ static void cw_bmove(struct vc_data *vc,
> static void cw_clear(struct vc_data *vc, struct fb_info *info, int sy,
> int sx, int height, int width)
> {
>- struct display *p = &fb_display[vc->vc_num];
>+ struct fbcon_ops *ops = info->fbcon_par;
> struct fb_fillrect region;
> int bgshift = (vc->vc_hi_font_mask) ? 13 : 12;
>- u32 vxres = GETVXRES(p->scrollmode, info);
>+ u32 vxres = GETVXRES(ops->p->scrollmode, info);
>
> region.color = attr_bgcol_ec(bgshift,vc);
> region.dx = vxres - ((sy + height) * vc->vc_font.height);
>@@ -117,7 +117,6 @@ static void cw_putcs(struct vc_data *vc,
> int fg, int bg)
> {
> struct fb_image image;
>- struct display *p = &fb_display[vc->vc_num];
> struct fbcon_ops *ops = info->fbcon_par;
> u32 width = (vc->vc_font.height + 7)/8;
> u32 cellsize = width * vc->vc_font.width;
>@@ -127,7 +126,7 @@ static void cw_putcs(struct vc_data *vc,
> u32 cnt, pitch, size;
> u32 attribute = get_attribute(info, scr_readw(s));
> u8 *dst, *buf = NULL;
>- u32 vxres = GETVXRES(p->scrollmode, info);
>+ u32 vxres = GETVXRES(ops->p->scrollmode, info);
>
> if (!ops->fontbuffer)
> return;
>@@ -381,8 +380,7 @@ static void cw_cursor(struct vc_data *vc
> int cw_update_start(struct fb_info *info)
> {
> struct fbcon_ops *ops = info->fbcon_par;
>- struct display *p = &fb_display[ops->currcon];
>- u32 vxres = GETVXRES(p->scrollmode, info);
>+ u32 vxres = GETVXRES(ops->p->scrollmode, info);
> u32 xoffset;
> int err;
>
>diff --git a/drivers/video/console/fbcon_ud.c b/drivers/video/console/fbcon_ud.c
>index 2e1d9d4..c4d7c89 100644
>--- a/drivers/video/console/fbcon_ud.c
>+++ b/drivers/video/console/fbcon_ud.c
>@@ -48,10 +48,10 @@ static inline void ud_update_attr(u8 *ds
> static void ud_bmove(struct vc_data *vc, struct fb_info *info, int sy,
> int sx, int dy, int dx, int height, int width)
> {
>- struct display *p = &fb_display[vc->vc_num];
>+ struct fbcon_ops *ops = info->fbcon_par;
> struct fb_copyarea area;
>- u32 vyres = GETVYRES(p->scrollmode, info);
>- u32 vxres = GETVXRES(p->scrollmode, info);
>+ u32 vyres = GETVYRES(ops->p->scrollmode, info);
>+ u32 vxres = GETVXRES(ops->p->scrollmode, info);
>
> area.sy = vyres - ((sy + height) * vc->vc_font.height);
> area.sx = vxres - ((sx + width) * vc->vc_font.width);
>@@ -66,11 +66,11 @@ static void ud_bmove(struct vc_data *vc,
> static void ud_clear(struct vc_data *vc, struct fb_info *info, int sy,
> int sx, int height, int width)
> {
>- struct display *p = &fb_display[vc->vc_num];
>+ struct fbcon_ops *ops = info->fbcon_par;
> struct fb_fillrect region;
> int bgshift = (vc->vc_hi_font_mask) ? 13 : 12;
>- u32 vyres = GETVYRES(p->scrollmode, info);
>- u32 vxres = GETVXRES(p->scrollmode, info);
>+ u32 vyres = GETVYRES(ops->p->scrollmode, info);
>+ u32 vxres = GETVXRES(ops->p->scrollmode, info);
>
> region.color = attr_bgcol_ec(bgshift,vc);
> region.dy = vyres - ((sy + height) * vc->vc_font.height);
>@@ -153,7 +153,6 @@ static void ud_putcs(struct vc_data *vc,
> int fg, int bg)
> {
> struct fb_image image;
>- struct display *p = &fb_display[vc->vc_num];
> struct fbcon_ops *ops = info->fbcon_par;
> u32 width = (vc->vc_font.width + 7)/8;
> u32 cellsize = width * vc->vc_font.height;
>@@ -163,8 +162,8 @@ static void ud_putcs(struct vc_data *vc,
> u32 mod = vc->vc_font.width % 8, cnt, pitch, size;
> u32 attribute = get_attribute(info, scr_readw(s));
> u8 *dst, *buf = NULL;
>- u32 vyres = GETVYRES(p->scrollmode, info);
>- u32 vxres = GETVXRES(p->scrollmode, info);
>+ u32 vyres = GETVYRES(ops->p->scrollmode, info);
>+ u32 vxres = GETVXRES(ops->p->scrollmode, info);
>
> if (!ops->fontbuffer)
> return;
>@@ -421,10 +420,9 @@ static void ud_cursor(struct vc_data *vc
> int ud_update_start(struct fb_info *info)
> {
> struct fbcon_ops *ops = info->fbcon_par;
>- struct display *p = &fb_display[ops->currcon];
> u32 xoffset, yoffset;
>- u32 vyres = GETVYRES(p->scrollmode, info);
>- u32 vxres = GETVXRES(p->scrollmode, info);
>+ u32 vyres = GETVYRES(ops->p->scrollmode, info);
>+ u32 vxres = GETVXRES(ops->p->scrollmode, info);
> int err;
>
> xoffset = (vxres - info->var.xres) - ops->var.xoffset;
>
>
>-
>To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
>the body of a message to majordomo@vger.kernel.org
>More majordomo info at http://vger.kernel.org/majordomo-info.html
>Please read the FAQ at http://www.tux.org/lkml/
>
>
>
next prev parent reply other threads:[~2005-11-12 3:40 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-11-11 4:35 2.6.14-mm2 Andrew Morton
2005-11-11 5:23 ` 2.6.14-mm2: loop detected in depmod Brice Goglin
2005-11-11 7:52 ` Antonino A. Daplas
2005-11-12 3:41 ` Brice Goglin [this message]
2005-11-11 5:49 ` 2.6.14-mm2 Reuben Farrelly
2005-11-11 6:07 ` 2.6.14-mm2 Andrew Morton
2005-11-11 8:28 ` 2.6.14-mm2 Reuben Farrelly
2005-11-11 8:55 ` 2.6.14-mm2 Andrew Morton
2005-11-11 13:28 ` 2.6.14-mm2 Reuben Farrelly
2005-11-11 8:54 ` 2.6.14-mm2 J.A. Magallon
2005-11-11 12:33 ` 2.6.14-mm2 Felipe Alfaro Solana
2005-11-11 16:40 ` [-mm patch] fs/ocfs2/file.c: make ocfs2_extend_allocation() static Adrian Bunk
2005-11-11 17:09 ` [-mm PATCH] slob: add kmem_set_shrinker Yoichi Yuasa
2005-11-11 19:14 ` 2.6.14-mm2 Badari Pulavarty
2005-11-11 19:21 ` 2.6.14-mm2 Andrew Morton
2005-11-11 19:32 ` 2.6.14-mm2 Badari Pulavarty
2005-11-11 22:32 ` 2.6.14-mm2 Michal Piotrowski
2005-11-11 22:37 ` 2.6.14-mm2 Michal Piotrowski
2005-11-11 23:01 ` 2.6.14-mm2 Andrew Morton
2005-11-11 23:28 ` [PATCH] nvidiafb: Fix bug in nvidiafb_pan_display Antonino A. Daplas
2005-11-11 23:38 ` Benjamin Herrenschmidt
2005-11-11 23:55 ` Antonino A. Daplas
2005-11-11 23:54 ` Michal Piotrowski
2005-11-11 23:30 ` 2.6.14-mm2 Michal Piotrowski
2005-11-12 0:45 ` 2.6.14-mm2 Antonino A. Daplas
2005-11-16 9:04 ` 2.6.14-mm2 KAMEZAWA Hiroyuki
2005-11-16 12:56 ` 2.6.14-mm2 KAMEZAWA Hiroyuki
2005-11-16 13:17 ` [Lhms-devel] 2.6.14-mm2 Dave Hansen
2005-11-16 16:02 ` Kamezawa Hiroyuki
2005-11-16 16:31 ` Dave Hansen
2005-11-16 16:39 ` Kamezawa Hiroyuki
2005-11-17 0:10 ` KAMEZAWA Hiroyuki
2005-11-17 9:16 ` KAMEZAWA Hiroyuki
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4375647F.8020208@ens-lyon.org \
--to=brice.goglin@ens-lyon.org \
--cc=adaplas@gmail.com \
--cc=akpm@osdl.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox