Re: linux-2.4.0-test9

From: Jeff Garzik (jgarzik@mandrakesoft.com)
Date: Fri Nov 03 2000 - 20:05:15 EST


"Richard B. Johnson" wrote:
> I have, again, tried to use a new kernel. It is linux-2.4.0-test9
> Apparently a newer version was just put up while downloading this
> one. This is possible because it took a day to download it );

If you could download patch-2.4.0-test10, and try out test10-final, that
would be awesome...

> (3) With the new kernel, I can't access screen memory anymore. When
> testing software drivers for hardware that I don't have, I usually use
> the screen-regen buffer to emulate the shared memory window.
>
> Here is a snippet of code:
>
> // info->mem = 0xb8000 what they actually are
> // info->mem_len = 0x4000
>
> if((info->vxi_iomem = ioremap(info->mem, info->mem_len)) == NULL)
> {
> printk(KERN_ALERT "%s: Can't allocate shared memory\n", devname);
> (void)unregister_chrdev(info->major, info->dev);
> kfree(info->tmp_buf);
> kfree(info);
> return -ENOMEM;
> }
> info->vxi_base = (UNIV *) bus_to_virt(UL info->vxi_iomem);
> ||||||||||||||
> This pointer should point to the beginning of the screen buffer.
> It always has before.
>
> When accessing this from a module, I get;
> Unable to handle kernel paging requist at virtual address 800b8304.

bug 1) ioremap returns a cookie, not a bus address. therefore, calling
ioremap output to bus_to_virt is incorrect.

bug 2) what are you doing with vxi_base? I don't have the rest of your
code here, but I'm willing to bet that you are directly de-referencing
memory, instead of using {read,write}[bwl] / memcpy_{to,from}io. Read
linux/Documentation/IO-mapping.txt for more info.

> (4) More name-space polution. Somebody added another macro called
> get_page(). When, if ever, will we start using the good-old
> convention of defining macros in upper-case?
>
> The name-space polution has really gotten out-of-hand. You
> can't write code using ordinary symbol names anymore. You
> need to make variables have names like:
>
> int LoopCounterForOutSideLoop;
> char *UserInputAndOutputBufferForWednesday;
>
> This is NotGood(tm)

I guess it should probably have been named "page_get"? I looked through
'nm vmlinux' output at the public symbols, and there are definitely a
ton of them.

Though it is definitely C convention that macros are in all uppercase
(gcc is good about this), the kernel has never really been good about
that...

        Jeff

-- 
Jeff Garzik             | Dinner is ready when
Building 1024           | the smoke alarm goes off.
MandrakeSoft            |	-/usr/games/fortune
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Tue Nov 07 2000 - 21:00:15 EST