2002-10-03 05:44:08

by Peter Chubb

[permalink] [raw]
Subject: [PATCH] Large Block Device patch part 5/4


Yes I forgot something...

Without this patch, trying to use RAID without CONFIG_LBD would fail.


# This is a BitKeeper generated patch for the following project:
# Project Name: Linux kernel tree
# This patch format is intended for GNU patch command version 2.5 or higher.
# This patch includes the following deltas:
# ChangeSet 1.677 -> 1.678
# drivers/md/md.c 1.113 -> 1.114
#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 02/10/03 [email protected] 1.678
# Fix md operation without CONFIG_LBD --- don't try to include __udivdi3 etc.
# --------------------------------------------
#
diff -Nru a/drivers/md/md.c b/drivers/md/md.c
--- a/drivers/md/md.c Thu Oct 3 15:47:43 2002
+++ b/drivers/md/md.c Thu Oct 3 15:47:43 2002
@@ -3480,8 +3480,12 @@
}
#endif

+#ifdef CONFIG_LBD
extern u64 __udivdi3(u64, u64);
extern u64 __umoddi3(u64, u64);
+EXPORT_SYMBOL(__udivdi3);
+EXPORT_SYMBOL(__umoddi3);
+#endif
EXPORT_SYMBOL(md_size);
EXPORT_SYMBOL(register_md_personality);
EXPORT_SYMBOL(unregister_md_personality);
@@ -3493,6 +3497,4 @@
EXPORT_SYMBOL(md_wakeup_thread);
EXPORT_SYMBOL(md_print_devices);
EXPORT_SYMBOL(md_interrupt_thread);
-EXPORT_SYMBOL(__udivdi3);
-EXPORT_SYMBOL(__umoddi3);
MODULE_LICENSE("GPL");


2002-10-03 12:13:47

by Russell King

[permalink] [raw]
Subject: Re: [PATCH] Large Block Device patch part 5/4

On Thu, Oct 03, 2002 at 03:49:33PM +1000, [email protected] wrote:
> +#ifdef CONFIG_LBD
> extern u64 __udivdi3(u64, u64);
> extern u64 __umoddi3(u64, u64);
> +EXPORT_SYMBOL(__udivdi3);
> +EXPORT_SYMBOL(__umoddi3);
> +#endif
> EXPORT_SYMBOL(md_size);
> EXPORT_SYMBOL(register_md_personality);
> EXPORT_SYMBOL(unregister_md_personality);
> @@ -3493,6 +3497,4 @@
> EXPORT_SYMBOL(md_wakeup_thread);
> EXPORT_SYMBOL(md_print_devices);
> EXPORT_SYMBOL(md_interrupt_thread);
> -EXPORT_SYMBOL(__udivdi3);
> -EXPORT_SYMBOL(__umoddi3);
> MODULE_LICENSE("GPL");

These exports should be performed by the architecture not by generic
drivers.

Please move them into all architectures.

--
Russell King ([email protected]) The developer of ARM Linux
http://www.arm.linux.org.uk/personal/aboutme.html

2002-10-03 22:39:39

by Peter Chubb

[permalink] [raw]
Subject: Re: [PATCH] Large Block Device patch part 5/4

>>>>> "Russell" == Russell King <[email protected]> writes:

Russell> On Thu, Oct 03, 2002 at 03:49:33PM +1000,
Russell> [email protected] wrote:
>> +#ifdef CONFIG_LBD extern u64 __udivdi3(u64, u64); extern u64
>> __umoddi3(u64, u64); +EXPORT_SYMBOL(__udivdi3);
>> +EXPORT_SYMBOL(__umoddi3); +#endif EXPORT_SYMBOL(md_size);
>> EXPORT_SYMBOL(register_md_personality);
>> EXPORT_SYMBOL(unregister_md_personality); @@ -3493,6 +3497,4 @@
>> EXPORT_SYMBOL(md_wakeup_thread); EXPORT_SYMBOL(md_print_devices);
>> EXPORT_SYMBOL(md_interrupt_thread); -EXPORT_SYMBOL(__udivdi3);
>> -EXPORT_SYMBOL(__umoddi3); MODULE_LICENSE("GPL");

Russell> These exports should be performed by the architecture not by
Russell> generic drivers.


1. CONFIG_LBD is defined only for IA32 and PPC32.
2. The exports are temporary until other stuff in the RAID code is
cleaned up.
3. They're only used by the RAID code, and would be the same for all
architectures that use gcc, assuming that CONFIG_LBD were to be turned
on for those architectures.

Russell> Please move them into all architectures.

I'd rather remove them entirely, and am working on that. In the
meantime, they'll stay (probably until Neil Brown gets back from
holiday next week and can help with my RAID problems)

Peter C