[Pkg-xen-changes] r368 - in trunk/xen-3.0/debian: . patches

Bastian Blank waldi at costa.debian.org
Thu Oct 26 14:21:53 CEST 2006


Author: waldi
Date: Thu Oct 26 12:21:52 2006
New Revision: 368

Added:
   trunk/xen-3.0/debian/patches/not-reinvent-udev.dpatch   (contents, props changed)
Modified:
   trunk/xen-3.0/debian/changelog
   trunk/xen-3.0/debian/patches/00list

Log:
* debian/changelog: Update.
* debian/patches/00list: Add not-reinvent-udev.
* debian/patches/not-reinvent-udev.dpatch: Add.


Modified: trunk/xen-3.0/debian/changelog
==============================================================================
--- trunk/xen-3.0/debian/changelog	(original)
+++ trunk/xen-3.0/debian/changelog	Thu Oct 26 12:21:52 2006
@@ -1,3 +1,9 @@
+xen-3.0 (3.0.3-0-2) UNRELEASED; urgency=low
+
+  * Remove device recreate code. 
+
+ -- Bastian Blank <waldi at debian.org>  Thu, 26 Oct 2006 11:54:01 +0000
+
 xen-3.0 (3.0.3-0-1) unstable; urgency=low
 
   * New upstream version.

Modified: trunk/xen-3.0/debian/patches/00list
==============================================================================
--- trunk/xen-3.0/debian/patches/00list	(original)
+++ trunk/xen-3.0/debian/patches/00list	Thu Oct 26 12:21:52 2006
@@ -7,3 +7,4 @@
 qemu-arch
 blktap-disable
 path-relative
+not-reinvent-udev

Added: trunk/xen-3.0/debian/patches/not-reinvent-udev.dpatch
==============================================================================
--- (empty file)
+++ trunk/xen-3.0/debian/patches/not-reinvent-udev.dpatch	Thu Oct 26 12:21:52 2006
@@ -0,0 +1,108 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## not-reinvent-udev.dpatch by Bastian Blank <waldi at debian.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: No description.
+
+ at DPATCH@
+diff -urNad xen-3.0~/tools/libxc/xc_linux.c xen-3.0/tools/libxc/xc_linux.c
+--- xen-3.0~/tools/libxc/xc_linux.c	2006-10-20 10:26:02.000000000 +0000
++++ xen-3.0/tools/libxc/xc_linux.c	2006-10-26 12:16:12.835625388 +0000
+@@ -133,97 +133,14 @@
+                       (unsigned long)hypercall);
+ }
+ 
+-#define MTAB "/proc/mounts"
+-#define MAX_PATH 255
+-#define _STR(x) #x
+-#define STR(x) _STR(x)
+-
+-static int find_sysfsdir(char *sysfsdir)
+-{
+-    FILE *fp;
+-    char type[MAX_PATH + 1];
+-
+-    if ( (fp = fopen(MTAB, "r")) == NULL )
+-        return -1;
+-
+-    while ( fscanf(fp, "%*s %"
+-                   STR(MAX_PATH)
+-                   "s %"
+-                   STR(MAX_PATH)
+-                   "s %*s %*d %*d\n",
+-                   sysfsdir, type) == 2 )
+-    {
+-        if ( strncmp(type, "sysfs", 5) == 0 )
+-            break;
+-    }
+-
+-    fclose(fp);
+-
+-    return ((strncmp(type, "sysfs", 5) == 0) ? 0 : -1);
+-}
+-
+-int xc_find_device_number(const char *name)
+-{
+-    FILE *fp;
+-    int i, major, minor;
+-    char sysfsdir[MAX_PATH + 1];
+-    static char *classlist[] = { "xen", "misc" };
+-
+-    for ( i = 0; i < (sizeof(classlist) / sizeof(classlist[0])); i++ )
+-    {
+-        if ( find_sysfsdir(sysfsdir) < 0 )
+-            goto not_found;
+-
+-        /* <base>/class/<classname>/<devname>/dev */
+-        strncat(sysfsdir, "/class/", MAX_PATH);
+-        strncat(sysfsdir, classlist[i], MAX_PATH);
+-        strncat(sysfsdir, "/", MAX_PATH);
+-        strncat(sysfsdir, name, MAX_PATH);
+-        strncat(sysfsdir, "/dev", MAX_PATH);
+-
+-        if ( (fp = fopen(sysfsdir, "r")) != NULL )
+-            goto found;
+-    }
+-
+- not_found:
+-    errno = -ENOENT;
+-    return -1;
+-
+- found:
+-    if ( fscanf(fp, "%d:%d", &major, &minor) != 2 )
+-    {
+-        fclose(fp);
+-        goto not_found;
+-    }
+-
+-    fclose(fp);
+-
+-    return makedev(major, minor);
+-}
+-
+ #define EVTCHN_DEV_NAME  "/dev/xen/evtchn"
+ 
+ int xc_evtchn_open(void)
+ {
+-    struct stat st;
+     int fd;
+-    int devnum;
+-
+-    devnum = xc_find_device_number("evtchn");
+-
+-    /* Make sure any existing device file links to correct device. */
+-    if ( (lstat(EVTCHN_DEV_NAME, &st) != 0) || !S_ISCHR(st.st_mode) ||
+-         (st.st_rdev != devnum) )
+-        (void)unlink(EVTCHN_DEV_NAME);
+ 
+- reopen:
+     if ( (fd = open(EVTCHN_DEV_NAME, O_RDWR)) == -1 )
+     {
+-        if ( (errno == ENOENT) &&
+-            ((mkdir("/dev/xen", 0755) == 0) || (errno == EEXIST)) &&
+-             (mknod(EVTCHN_DEV_NAME, S_IFCHR|0600, devnum) == 0) )
+-            goto reopen;
+-
+         PERROR("Could not open event channel interface");
+         return -1;
+     }



More information about the Pkg-xen-changes mailing list