Re: [uml-devel] Re: [PATCH 2.6] 4/7 replace uml_strdup by kstrdup

2005-02-04 Thread Paulo Marques
Blaisorblade wrote:
[...]
For UML, you should probably add the prototype to a good header inside 
arch/um/include (those headers are in the searchpath for every file under 
arch/um) - probably the one which declared uml_strdup. Yes, we have had to 
duplicate prototypes for many functions... for inlines, we've had to provide 
in many case a non-inline version.
Thanks for the tip. I'll have to read the code more carefully to 
understand better where the userspace ends and the kernel begins, so 
that I don't do similar mistakes in the future.

I'll redo the patch and post it for review, probably during next week. I 
don't think there is much hurry, because, even if this gets accepted, it 
should go in only in 2.6.12-rc1-mm1 or something like that, so there is 
still time to review this more carefully.

Thanks for reviewing the patch,
--
Paulo Marques - www.grupopie.com
All that is necessary for the triumph of evil is that good men do nothing.
Edmund Burke (1729 - 1797)
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [uml-devel] Re: [PATCH 2.6] 4/7 replace uml_strdup by kstrdup

2005-02-04 Thread Paulo Marques
Blaisorblade wrote:
[...]
For UML, you should probably add the prototype to a good header inside 
arch/um/include (those headers are in the searchpath for every file under 
arch/um) - probably the one which declared uml_strdup. Yes, we have had to 
duplicate prototypes for many functions... for inlines, we've had to provide 
in many case a non-inline version.
Thanks for the tip. I'll have to read the code more carefully to 
understand better where the userspace ends and the kernel begins, so 
that I don't do similar mistakes in the future.

I'll redo the patch and post it for review, probably during next week. I 
don't think there is much hurry, because, even if this gets accepted, it 
should go in only in 2.6.12-rc1-mm1 or something like that, so there is 
still time to review this more carefully.

Thanks for reviewing the patch,
--
Paulo Marques - www.grupopie.com
All that is necessary for the triumph of evil is that good men do nothing.
Edmund Burke (1729 - 1797)
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [uml-devel] Re: [PATCH 2.6] 4/7 replace uml_strdup by kstrdup

2005-02-03 Thread Blaisorblade
On Wednesday 02 February 2005 12:55, you wrote:
> Pekka Enberg wrote:
> > On Tue,  1 Feb 2005 03:28:31 +, [EMAIL PROTECTED]
> >
> > <[EMAIL PROTECTED]> wrote:
> >>diff -buprN -X dontdiff
> >> vanilla-2.6.11-rc2-bk9/arch/um/os-Linux/drivers/tuntap_user.c
> >> linux-2.6.11-rc2-bk9/arch/um/os-Linux/drivers/tuntap_user.c ---
> >> vanilla-2.6.11-rc2-bk9/arch/um/os-Linux/drivers/tuntap_user.c  
> >> 2004-12-24 21:35:40.0 + +++
> >> linux-2.6.11-rc2-bk9/arch/um/os-Linux/drivers/tuntap_user.c 2005-01-31
> >> 20:39:08.591154025 +
> >
> > [snip]
> >
> >>-   pri->dev_name = uml_strdup(buffer);
> >>+   pri->dev_name = kstrdup(buffer);
> >
> > Please compile-test before submitting.
>
> I'm really sorry about this...
>
> I've compiled with an allyesconfig to validate the changes, but that
> doesn't build the UML parts :(

Well, the answer is to do add a "ARCH=um" to the build commands... you could 
maybe use a "make defconfig ARCH=um" however because UML itself, sometimes, 
does not build with allyesconfig /allmodconfig...

However, that said, there are bigger problems for UML.

Since of its particular nature, it contains some code which is compiled 
against userspace headers. For instance cow_user.c (the list includes 
*_user.c and everything that is explicitly listed in USER_OBJS inside the 
Makefiles)

So, for cow_user.c, when you add  to cow_user.c, you are 
actually making it include /usr/include/linux/string.h...

For UML, you should probably add the prototype to a good header inside 
arch/um/include (those headers are in the searchpath for every file under 
arch/um) - probably the one which declared uml_strdup. Yes, we have had to 
duplicate prototypes for many functions... for inlines, we've had to provide 
in many case a non-inline version.

> Anyway, thanks for pointing this out. I still haven't got feedback
> regarding the acceptance of these patches. If there is a chance they're
> accepted, maybe the best thing to do is to post the series again with
> this correction and the sound patch corrections.

-- 
Paolo Giarrusso, aka Blaisorblade
Linux registered user n. 292729
http://www.user-mode-linux.org/~blaisorblade


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [uml-devel] Re: [PATCH 2.6] 4/7 replace uml_strdup by kstrdup

2005-02-03 Thread Blaisorblade
On Wednesday 02 February 2005 12:55, you wrote:
 Pekka Enberg wrote:
  On Tue,  1 Feb 2005 03:28:31 +, [EMAIL PROTECTED]
 
  [EMAIL PROTECTED] wrote:
 diff -buprN -X dontdiff
  vanilla-2.6.11-rc2-bk9/arch/um/os-Linux/drivers/tuntap_user.c
  linux-2.6.11-rc2-bk9/arch/um/os-Linux/drivers/tuntap_user.c ---
  vanilla-2.6.11-rc2-bk9/arch/um/os-Linux/drivers/tuntap_user.c  
  2004-12-24 21:35:40.0 + +++
  linux-2.6.11-rc2-bk9/arch/um/os-Linux/drivers/tuntap_user.c 2005-01-31
  20:39:08.591154025 +
 
  [snip]
 
 -   pri-dev_name = uml_strdup(buffer);
 +   pri-dev_name = kstrdup(buffer);
 
  Please compile-test before submitting.

 I'm really sorry about this...

 I've compiled with an allyesconfig to validate the changes, but that
 doesn't build the UML parts :(

Well, the answer is to do add a ARCH=um to the build commands... you could 
maybe use a make defconfig ARCH=um however because UML itself, sometimes, 
does not build with allyesconfig /allmodconfig...

However, that said, there are bigger problems for UML.

Since of its particular nature, it contains some code which is compiled 
against userspace headers. For instance cow_user.c (the list includes 
*_user.c and everything that is explicitly listed in USER_OBJS inside the 
Makefiles)

So, for cow_user.c, when you add linux/string.h to cow_user.c, you are 
actually making it include /usr/include/linux/string.h...

For UML, you should probably add the prototype to a good header inside 
arch/um/include (those headers are in the searchpath for every file under 
arch/um) - probably the one which declared uml_strdup. Yes, we have had to 
duplicate prototypes for many functions... for inlines, we've had to provide 
in many case a non-inline version.

 Anyway, thanks for pointing this out. I still haven't got feedback
 regarding the acceptance of these patches. If there is a chance they're
 accepted, maybe the best thing to do is to post the series again with
 this correction and the sound patch corrections.

-- 
Paolo Giarrusso, aka Blaisorblade
Linux registered user n. 292729
http://www.user-mode-linux.org/~blaisorblade


-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH 2.6] 4/7 replace uml_strdup by kstrdup

2005-02-02 Thread Paulo Marques
Pekka Enberg wrote:
On Tue,  1 Feb 2005 03:28:31 +, [EMAIL PROTECTED]
<[EMAIL PROTECTED]> wrote:
diff -buprN -X dontdiff 
vanilla-2.6.11-rc2-bk9/arch/um/os-Linux/drivers/tuntap_user.c 
linux-2.6.11-rc2-bk9/arch/um/os-Linux/drivers/tuntap_user.c
--- vanilla-2.6.11-rc2-bk9/arch/um/os-Linux/drivers/tuntap_user.c   
2004-12-24 21:35:40.0 +
+++ linux-2.6.11-rc2-bk9/arch/um/os-Linux/drivers/tuntap_user.c 2005-01-31 
20:39:08.591154025 +

[snip]

-   pri->dev_name = uml_strdup(buffer);
+   pri->dev_name = kstrdup(buffer);

Please compile-test before submitting.
I'm really sorry about this...
I've compiled with an allyesconfig to validate the changes, but that 
doesn't build the UML parts :(

Anyway, thanks for pointing this out. I still haven't got feedback 
regarding the acceptance of these patches. If there is a chance they're 
accepted, maybe the best thing to do is to post the series again with 
this correction and the sound patch corrections.

--
Paulo Marques - www.grupopie.com
All that is necessary for the triumph of evil is that good men do nothing.
Edmund Burke (1729 - 1797)
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH 2.6] 4/7 replace uml_strdup by kstrdup

2005-02-02 Thread Paulo Marques
Pekka Enberg wrote:
On Tue,  1 Feb 2005 03:28:31 +, [EMAIL PROTECTED]
[EMAIL PROTECTED] wrote:
diff -buprN -X dontdiff 
vanilla-2.6.11-rc2-bk9/arch/um/os-Linux/drivers/tuntap_user.c 
linux-2.6.11-rc2-bk9/arch/um/os-Linux/drivers/tuntap_user.c
--- vanilla-2.6.11-rc2-bk9/arch/um/os-Linux/drivers/tuntap_user.c   
2004-12-24 21:35:40.0 +
+++ linux-2.6.11-rc2-bk9/arch/um/os-Linux/drivers/tuntap_user.c 2005-01-31 
20:39:08.591154025 +

[snip]

-   pri-dev_name = uml_strdup(buffer);
+   pri-dev_name = kstrdup(buffer);

Please compile-test before submitting.
I'm really sorry about this...
I've compiled with an allyesconfig to validate the changes, but that 
doesn't build the UML parts :(

Anyway, thanks for pointing this out. I still haven't got feedback 
regarding the acceptance of these patches. If there is a chance they're 
accepted, maybe the best thing to do is to post the series again with 
this correction and the sound patch corrections.

--
Paulo Marques - www.grupopie.com
All that is necessary for the triumph of evil is that good men do nothing.
Edmund Burke (1729 - 1797)
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH 2.6] 4/7 replace uml_strdup by kstrdup

2005-02-01 Thread Pekka Enberg
On Tue,  1 Feb 2005 03:28:31 +, [EMAIL PROTECTED]
<[EMAIL PROTECTED]> wrote:
> diff -buprN -X dontdiff 
> vanilla-2.6.11-rc2-bk9/arch/um/os-Linux/drivers/tuntap_user.c 
> linux-2.6.11-rc2-bk9/arch/um/os-Linux/drivers/tuntap_user.c
> --- vanilla-2.6.11-rc2-bk9/arch/um/os-Linux/drivers/tuntap_user.c   
> 2004-12-24 21:35:40.0 +
> +++ linux-2.6.11-rc2-bk9/arch/um/os-Linux/drivers/tuntap_user.c 2005-01-31 
> 20:39:08.591154025 +

[snip]

> -   pri->dev_name = uml_strdup(buffer);
> +   pri->dev_name = kstrdup(buffer);

Please compile-test before submitting.

   Pekka
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH 2.6] 4/7 replace uml_strdup by kstrdup

2005-02-01 Thread Pekka Enberg
On Tue,  1 Feb 2005 03:28:31 +, [EMAIL PROTECTED]
[EMAIL PROTECTED] wrote:
 diff -buprN -X dontdiff 
 vanilla-2.6.11-rc2-bk9/arch/um/os-Linux/drivers/tuntap_user.c 
 linux-2.6.11-rc2-bk9/arch/um/os-Linux/drivers/tuntap_user.c
 --- vanilla-2.6.11-rc2-bk9/arch/um/os-Linux/drivers/tuntap_user.c   
 2004-12-24 21:35:40.0 +
 +++ linux-2.6.11-rc2-bk9/arch/um/os-Linux/drivers/tuntap_user.c 2005-01-31 
 20:39:08.591154025 +

[snip]

 -   pri-dev_name = uml_strdup(buffer);
 +   pri-dev_name = kstrdup(buffer);

Please compile-test before submitting.

   Pekka
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH 2.6] 4/7 replace uml_strdup by kstrdup

2005-01-31 Thread

This patch removes the strdup implementation in the UML architecture
(uml_strdup), and updates it to use the kstrdup library function.

Signed-off-by: Paulo Marques <[EMAIL PROTECTED]>

--
Paulo Marques - www.grupopie.com
 
All that is necessary for the triumph of evil is that good men do nothing.
Edmund Burke (1729 - 1797)
diff -buprN -X dontdiff vanilla-2.6.11-rc2-bk9/arch/um/drivers/cow_sys.h linux-2.6.11-rc2-bk9/arch/um/drivers/cow_sys.h
--- vanilla-2.6.11-rc2-bk9/arch/um/drivers/cow_sys.h	2005-01-31 20:05:17.0 +
+++ linux-2.6.11-rc2-bk9/arch/um/drivers/cow_sys.h	2005-01-31 20:40:01.713782823 +
@@ -18,11 +18,6 @@ static inline void cow_free(void *ptr)
 
 #define cow_printf printk
 
-static inline char *cow_strdup(char *str)
-{
-	return(uml_strdup(str));
-}
-
 static inline int cow_seek_file(int fd, unsigned long long offset)
 {
 	return(os_seek_file(fd, offset));
diff -buprN -X dontdiff vanilla-2.6.11-rc2-bk9/arch/um/drivers/cow_user.c linux-2.6.11-rc2-bk9/arch/um/drivers/cow_user.c
--- vanilla-2.6.11-rc2-bk9/arch/um/drivers/cow_user.c	2005-01-31 20:05:17.0 +
+++ linux-2.6.11-rc2-bk9/arch/um/drivers/cow_user.c	2005-01-31 20:39:08.587154730 +
@@ -7,6 +7,7 @@
 #include 
 #include 
 #include 
+#include 
 
 #include "os.h"
 
@@ -313,7 +314,7 @@ int read_cow_header(int (*reader)(__u64,
 		goto out;
 	}
 	err = -ENOMEM;
-	*backing_file_out = cow_strdup(file);
+	*backing_file_out = kstrdup(file, GFP_KERNEL);
 	if(*backing_file_out == NULL){
 		cow_printf("read_cow_header - failed to allocate backing "
 			   "file\n");
diff -buprN -X dontdiff vanilla-2.6.11-rc2-bk9/arch/um/drivers/line.c linux-2.6.11-rc2-bk9/arch/um/drivers/line.c
--- vanilla-2.6.11-rc2-bk9/arch/um/drivers/line.c	2005-01-31 20:05:17.0 +
+++ linux-2.6.11-rc2-bk9/arch/um/drivers/line.c	2005-01-31 20:39:08.587154730 +
@@ -9,6 +9,7 @@
 #include "linux/kd.h"
 #include "linux/interrupt.h"
 #include "linux/devfs_fs_kernel.h"
+#include "linux/string.h"
 #include "asm/uaccess.h"
 #include "chan_kern.h"
 #include "irq_user.h"
@@ -445,10 +446,10 @@ int line_setup(struct line *lines, int n
 
 int line_config(struct line *lines, int num, char *str)
 {
-	char *new = uml_strdup(str);
+	char *new = kstrdup(str, GFP_KERNEL);
 
 	if(new == NULL){
-		printk("line_config - uml_strdup failed\n");
+		printk("line_config - kstrdup failed\n");
 		return(-ENOMEM);
 	}
 	return(!line_setup(lines, num, new, 0));
@@ -555,9 +556,9 @@ void lines_init(struct line *lines, int 
 		INIT_LIST_HEAD(>chan_list);
 		sema_init(>sem, 1);
 		if(line->init_str != NULL){
-			line->init_str = uml_strdup(line->init_str);
+			line->init_str = kstrdup(line->init_str, GFP_KERNEL);
 			if(line->init_str == NULL)
-printk("lines_init - uml_strdup returned "
+printk("lines_init - kstrdup returned "
    "NULL\n");
 		}
 	}
diff -buprN -X dontdiff vanilla-2.6.11-rc2-bk9/arch/um/drivers/mconsole_kern.c linux-2.6.11-rc2-bk9/arch/um/drivers/mconsole_kern.c
--- vanilla-2.6.11-rc2-bk9/arch/um/drivers/mconsole_kern.c	2005-01-31 20:05:17.0 +
+++ linux-2.6.11-rc2-bk9/arch/um/drivers/mconsole_kern.c	2005-01-31 20:39:08.588154554 +
@@ -20,6 +20,7 @@
 #include "linux/namei.h"
 #include "linux/proc_fs.h"
 #include "linux/syscalls.h"
+#include "linux/string.h"
 #include "asm/irq.h"
 #include "asm/uaccess.h"
 #include "user_util.h"
@@ -483,7 +484,7 @@ int mconsole_init(void)
 	}
 
 	if(notify_socket != NULL){
-		notify_socket = uml_strdup(notify_socket);
+		notify_socket = kstrdup(notify_socket, GFP_KERNEL);
 		if(notify_socket != NULL)
 			mconsole_notify(notify_socket, MCONSOLE_SOCKET,
 	mconsole_socket_name, 
diff -buprN -X dontdiff vanilla-2.6.11-rc2-bk9/arch/um/drivers/net_kern.c linux-2.6.11-rc2-bk9/arch/um/drivers/net_kern.c
--- vanilla-2.6.11-rc2-bk9/arch/um/drivers/net_kern.c	2005-01-31 20:05:17.0 +
+++ linux-2.6.11-rc2-bk9/arch/um/drivers/net_kern.c	2005-01-31 20:39:08.589154377 +
@@ -20,6 +20,7 @@
 #include "linux/ctype.h"
 #include "linux/bootmem.h"
 #include "linux/ethtool.h"
+#include "linux/string.h"
 #include "asm/uaccess.h"
 #include "user_util.h"
 #include "kern_util.h"
@@ -602,7 +603,7 @@ static int net_config(char *str)
 	err = eth_parse(str, , );
 	if(err) return(err);
 
-	str = uml_strdup(str);
+	str = kstrdup(str, GFP_KERNEL);
 	if(str == NULL){
 		printk(KERN_ERR "net_config failed to strdup string\n");
 		return(-1);
diff -buprN -X dontdiff vanilla-2.6.11-rc2-bk9/arch/um/drivers/ubd_kern.c linux-2.6.11-rc2-bk9/arch/um/drivers/ubd_kern.c
--- vanilla-2.6.11-rc2-bk9/arch/um/drivers/ubd_kern.c	2005-01-31 20:05:17.0 +
+++ linux-2.6.11-rc2-bk9/arch/um/drivers/ubd_kern.c	2005-01-31 20:39:08.589154377 +
@@ -35,6 +35,7 @@
 #include "linux/blkpg.h"
 #include "linux/genhd.h"
 #include "linux/spinlock.h"
+#include "linux/string.h"
 #include "asm/segment.h"
 #include "asm/uaccess.h"
 #include "asm/irq.h"
@@ -722,7 +723,7 @@ static int ubd_config(char *str)
 {
 	int n, err;
 
-	str 

[PATCH 2.6] 4/7 replace uml_strdup by kstrdup

2005-01-31 Thread

This patch removes the strdup implementation in the UML architecture
(uml_strdup), and updates it to use the kstrdup library function.

Signed-off-by: Paulo Marques [EMAIL PROTECTED]

--
Paulo Marques - www.grupopie.com
 
All that is necessary for the triumph of evil is that good men do nothing.
Edmund Burke (1729 - 1797)
diff -buprN -X dontdiff vanilla-2.6.11-rc2-bk9/arch/um/drivers/cow_sys.h linux-2.6.11-rc2-bk9/arch/um/drivers/cow_sys.h
--- vanilla-2.6.11-rc2-bk9/arch/um/drivers/cow_sys.h	2005-01-31 20:05:17.0 +
+++ linux-2.6.11-rc2-bk9/arch/um/drivers/cow_sys.h	2005-01-31 20:40:01.713782823 +
@@ -18,11 +18,6 @@ static inline void cow_free(void *ptr)
 
 #define cow_printf printk
 
-static inline char *cow_strdup(char *str)
-{
-	return(uml_strdup(str));
-}
-
 static inline int cow_seek_file(int fd, unsigned long long offset)
 {
 	return(os_seek_file(fd, offset));
diff -buprN -X dontdiff vanilla-2.6.11-rc2-bk9/arch/um/drivers/cow_user.c linux-2.6.11-rc2-bk9/arch/um/drivers/cow_user.c
--- vanilla-2.6.11-rc2-bk9/arch/um/drivers/cow_user.c	2005-01-31 20:05:17.0 +
+++ linux-2.6.11-rc2-bk9/arch/um/drivers/cow_user.c	2005-01-31 20:39:08.587154730 +
@@ -7,6 +7,7 @@
 #include sys/param.h
 #include sys/user.h
 #include netinet/in.h
+#include linux/string.h
 
 #include os.h
 
@@ -313,7 +314,7 @@ int read_cow_header(int (*reader)(__u64,
 		goto out;
 	}
 	err = -ENOMEM;
-	*backing_file_out = cow_strdup(file);
+	*backing_file_out = kstrdup(file, GFP_KERNEL);
 	if(*backing_file_out == NULL){
 		cow_printf(read_cow_header - failed to allocate backing 
 			   file\n);
diff -buprN -X dontdiff vanilla-2.6.11-rc2-bk9/arch/um/drivers/line.c linux-2.6.11-rc2-bk9/arch/um/drivers/line.c
--- vanilla-2.6.11-rc2-bk9/arch/um/drivers/line.c	2005-01-31 20:05:17.0 +
+++ linux-2.6.11-rc2-bk9/arch/um/drivers/line.c	2005-01-31 20:39:08.587154730 +
@@ -9,6 +9,7 @@
 #include linux/kd.h
 #include linux/interrupt.h
 #include linux/devfs_fs_kernel.h
+#include linux/string.h
 #include asm/uaccess.h
 #include chan_kern.h
 #include irq_user.h
@@ -445,10 +446,10 @@ int line_setup(struct line *lines, int n
 
 int line_config(struct line *lines, int num, char *str)
 {
-	char *new = uml_strdup(str);
+	char *new = kstrdup(str, GFP_KERNEL);
 
 	if(new == NULL){
-		printk(line_config - uml_strdup failed\n);
+		printk(line_config - kstrdup failed\n);
 		return(-ENOMEM);
 	}
 	return(!line_setup(lines, num, new, 0));
@@ -555,9 +556,9 @@ void lines_init(struct line *lines, int 
 		INIT_LIST_HEAD(line-chan_list);
 		sema_init(line-sem, 1);
 		if(line-init_str != NULL){
-			line-init_str = uml_strdup(line-init_str);
+			line-init_str = kstrdup(line-init_str, GFP_KERNEL);
 			if(line-init_str == NULL)
-printk(lines_init - uml_strdup returned 
+printk(lines_init - kstrdup returned 
    NULL\n);
 		}
 	}
diff -buprN -X dontdiff vanilla-2.6.11-rc2-bk9/arch/um/drivers/mconsole_kern.c linux-2.6.11-rc2-bk9/arch/um/drivers/mconsole_kern.c
--- vanilla-2.6.11-rc2-bk9/arch/um/drivers/mconsole_kern.c	2005-01-31 20:05:17.0 +
+++ linux-2.6.11-rc2-bk9/arch/um/drivers/mconsole_kern.c	2005-01-31 20:39:08.588154554 +
@@ -20,6 +20,7 @@
 #include linux/namei.h
 #include linux/proc_fs.h
 #include linux/syscalls.h
+#include linux/string.h
 #include asm/irq.h
 #include asm/uaccess.h
 #include user_util.h
@@ -483,7 +484,7 @@ int mconsole_init(void)
 	}
 
 	if(notify_socket != NULL){
-		notify_socket = uml_strdup(notify_socket);
+		notify_socket = kstrdup(notify_socket, GFP_KERNEL);
 		if(notify_socket != NULL)
 			mconsole_notify(notify_socket, MCONSOLE_SOCKET,
 	mconsole_socket_name, 
diff -buprN -X dontdiff vanilla-2.6.11-rc2-bk9/arch/um/drivers/net_kern.c linux-2.6.11-rc2-bk9/arch/um/drivers/net_kern.c
--- vanilla-2.6.11-rc2-bk9/arch/um/drivers/net_kern.c	2005-01-31 20:05:17.0 +
+++ linux-2.6.11-rc2-bk9/arch/um/drivers/net_kern.c	2005-01-31 20:39:08.589154377 +
@@ -20,6 +20,7 @@
 #include linux/ctype.h
 #include linux/bootmem.h
 #include linux/ethtool.h
+#include linux/string.h
 #include asm/uaccess.h
 #include user_util.h
 #include kern_util.h
@@ -602,7 +603,7 @@ static int net_config(char *str)
 	err = eth_parse(str, n, str);
 	if(err) return(err);
 
-	str = uml_strdup(str);
+	str = kstrdup(str, GFP_KERNEL);
 	if(str == NULL){
 		printk(KERN_ERR net_config failed to strdup string\n);
 		return(-1);
diff -buprN -X dontdiff vanilla-2.6.11-rc2-bk9/arch/um/drivers/ubd_kern.c linux-2.6.11-rc2-bk9/arch/um/drivers/ubd_kern.c
--- vanilla-2.6.11-rc2-bk9/arch/um/drivers/ubd_kern.c	2005-01-31 20:05:17.0 +
+++ linux-2.6.11-rc2-bk9/arch/um/drivers/ubd_kern.c	2005-01-31 20:39:08.589154377 +
@@ -35,6 +35,7 @@
 #include linux/blkpg.h
 #include linux/genhd.h
 #include linux/spinlock.h
+#include linux/string.h
 #include asm/segment.h
 #include asm/uaccess.h
 #include asm/irq.h
@@ -722,7 +723,7 @@ static int ubd_config(char *str)
 {
 	int n, err;
 
-	str = uml_strdup(str);
+