openSUSE Commits
Threads by month
- ----- 2025 -----
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
September 2012
- 1 participants
- 1211 discussions
Hello community,
here is the log from the commit of package tracker-extras for openSUSE:12.2:Update checked in at 2012-09-28 15:02:18
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:12.2:Update/tracker-extras (Old)
and /work/SRC/openSUSE:12.2:Update/.tracker-extras.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "tracker-extras", Maintainer is ""
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
New:
----
_link
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _link ++++++
<link package='tracker-extras.938' cicount='copy' />
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package tracker.938 for openSUSE:12.2:Update checked in at 2012-09-28 15:02:12
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:12.2:Update/tracker.938 (Old)
and /work/SRC/openSUSE:12.2:Update/.tracker.938.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "tracker.938", Maintainer is ""
Changes:
--------
New Changes file:
--- /dev/null 2012-08-23 02:41:28.555381587 +0200
+++ /work/SRC/openSUSE:12.2:Update/.tracker.938.new/tracker-extras.changes 2012-09-28 15:02:13.000000000 +0200
@@ -0,0 +1,1845 @@
+-------------------------------------------------------------------
+Sat Sep 15 11:48:25 UTC 2012 - zaitor(a)opensuse.org
+
+- Add libtracker-fts-ICU-complx-locale.patch, fixes bnc#780614.
+
+-------------------------------------------------------------------
+Fri Jul 6 16:45:14 UTC 2012 - dimstar(a)opensuse.org
+
+- Update to version 0.14.2:
+ + tracker-extract: Fix compilation of Qt Media Art backend
+ + tracker-extract-gstreamer: Fix invalid pointer access from
+ gst_tag_list_get_string() use
+ + tracker-miner-fs:
+ - Remove failed extractions from queues if
+ g_file_query_info_async() fails.
+ - Removed unused code for dir config root Quark
+ + Bugs fixed:
+ - bgo#676437: TrackerMinerFS: priv->extraction_timer can't be
+ NULL when we update miner progress
+ - bgo#676153: Crash on USB removal during crawling
+ - bgo#676435: Infinite loop in miner
+ - bgo#679313, bgo#674869, bgo#676516, bgo#676213, bgo#675431,
+ bgo#676849, bgo#676433, bgo#676514, bgo#675437.
+ + Updated translations.
+
+-------------------------------------------------------------------
+Thu May 3 19:38:54 UTC 2012 - dimstar(a)opensuse.org
+
+- Update to version 0.14.1:
+ + New Feature: tracker-sandbox, to help with development
+ + libtracker-common: Set G_MESSAGES_DEBUG when verbosity > 2
+ + libtracker-sparql: Set G_MESSAGES_DEBUG when verbosity > 2
+ + libtracker-miner:
+ - Don't abort() if none file:// URI themes are used
+ - Fix unit tests with GLib 2.28
+ + tracker-extract: Add 'max-media-art-width' config option
+ + tracker-extract-oasis:
+ - Support Libreoffice graphic/drawing files (*.odg)
+ - Simplify text extraction and retrieve more content for ODT
+ files
+ + tracker-miner-fs: Do not index non-eligible mount points on
+ startup
+ + tracker-needle: Fix typo when toggling tags fails
+ + build: Error gracefully in autogen.sh when valac is not
+ installed
+ + Bugs fixed: bgo#672308, bgo#672415.
+ + Updated translations.
+- Add tracker-evo-implicit.patch: Include additional header in
+ order to have all the required evo symbols available.
+- Manually create %{buildroot}%{_datadir}/tracker/icons/ in install
+ of tracker.spec, so that it's owned by the tracker subpackage,
+ and other subpackages built from tracker-extras.spec don't have
+ issues with an unowned directory.
+- Fix the fact that tracker libraries require the tracker package,
+ because of private libraries shipped in the tracker package; this
+ effectively made tracker uninstallable (bnc#724554):
+ + Split private libraries from %{_libdir}/tracker-0.14 to
+ separate package libtracker-common-0_14-0. This does not
+ exactly match the SLPP, as the soname of the library is
+ libtracker-common.so.0 (name which is consistent across
+ versions, but the libraries are in a versioned folder, which
+ guarantees parallel installability of different versions.
+ + Add explicit libtracker-common-0_14-0 Requires to
+ libtracker-extract-0_14-0, libtracker-miner-0_14-0 and
+ libtracker-sparql-0_14-0: the Requires autodetection for
+ libraries will be libtracker-common.so.0, but this will exist
+ for several versions of tracker. So we need to help rpm with an
+ explicit Requires on the right version of the package.
+
+-------------------------------------------------------------------
+Fri Mar 9 21:10:27 UTC 2012 - dimstar(a)opensuse.org
+
+- Add tracker-libgrss-0.5.patch: Support and require libgrss 0.5.
+- Add libtool BuildRequires and call to autoreconf, as above patch
+ touches the build system.
+- Remove xz BuildRequires now that it comes for free in the build
+ system.
+
+-------------------------------------------------------------------
+Thu Mar 8 20:55:05 UTC 2012 - dimstar(a)opensuse.org
+
+- Update to version 0.14.0:
+ + firefox, thunderbird:
+ - Do not crash recent versions of Firefox/Thunderbird
+ - Use tracker 0.14 libraries
+ - Mark the plugins as compatible with newer versions of
+ Firefox/Thunderbird
+ + tracker-extract: Use ISO volume ID as title for unknown OS
+ + tracker-miner-evolution: build fixes
+ + tracker-miner-flickr, tracker-miner-rss: Do not autostart the
+ miners on login
+ + tracker-miner-fs: Handle absolute paths in ignored dirs
+ + tracker-needle: Order results properly
+ + Other code changes.
+ + Updated translations.
+- Re-enable evo-plugin: %define build_evo 1.
+
+-------------------------------------------------------------------
+Wed Feb 15 20:47:32 UTC 2012 - dimstar(a)opensuse.org
+
+- Update to version 0.13.1:
+ + New Feature: ISO file extractor
+ + Fix build with glib 2.31
+ + Various other build fixes
+ + libtracker-common: Add new function tracker_file_open_fd()
+ + libtracker-data: Fix dead code with disabled journal
+ + libtracker-miner:
+ - Don't send sparql to tracker-store for missing/cancelled
+ files
+ - Ensure we deal with the canonical copy on ::directory-removed
+ - Improve logging
+ + libtracker-extract:
+ - Do not use tracker_coalesce_strip on constant strings in unit
+ tests
+ - Don't build EXIF tests if we don't have support enabled
+ + tracker-store: Print warning if unable to initialize statistics
+ + tracker-miner-fs:
+ - Fix crash when SIGTERM happens before mainloop is available
+ - Don't index removable media on initial index if disabled
+ + tracker-extract-msoffice: Add debugging aid for when opening
+ file fails
+ + ttl2sgml: Do not call fclose if file is NULL
+ + Bugs fixed: bgo#669546, bgo#666654, bgo#666410, bgo#666678,
+ bgo#666372, bgo#667786, bgo#667787, nokia#286488, nokia#289635,
+ nokia#296009, nokia#290406
+ + Updated translations.
+- Add libosinfo-devel BuildRequires for the new ISO extractor.
+- Add libcue-devel BuildRequires to allow CUE sheet parsing, as we
+ now have this package in Factory.
+
+-------------------------------------------------------------------
+Thu Jan 19 08:48:55 UTC 2012 - vuntz(a)opensuse.org
+
+- Add libjpeg-devel BuildRequires for non-extras builds to build
+ JPEG support in extractors.
+
+-------------------------------------------------------------------
+Fri Dec 16 11:12:46 UTC 2011 - dimstar(a)opensuse.org
+
+- Update to version 0.13.0:
+ + New Feature: CUE sheet parsing is now supported
+ + libtracker-common: New env var TRACKER_USE_CONFIG_FILES to
+ output ini files instead of use GSettings is available
+ + libtracker-miner:
+ - Updated TrackerMinerFS (breaks API/ABI)
+ - Introducing TrackerIndexingTree (to use with TrackerMinerFS)
+ - Albumart renamed to Media art and refactored
+ + tracker-miner-fs: Refactored, mtime checks are +50% faster and
+ indexing slightly improved
+ + Removed GLib unicode parser: it was sub-optimal and unused.
+ + Many other fixes.
+ + Updted translations.
+- Drop tracker-g_thread.patch: fixed upstream.
+- Change License tag to spdx identifier.
+- Rename library packages from *-0_12-0 to *-0_14-0. following
+ upstream SONAME changes.
+- Split typelib files out into typelib-1_0-Tracker-0_14,
+ typelib-1_0-TrackerExtract-0_14 and
+ typelib-1_0-TrackerMiner-0_14 subpackages.
+- Add Requires for new typelib subpackages to devel subpackage.
+
+-------------------------------------------------------------------
+Fri Dec 2 01:11:48 UTC 2011 - dimstar(a)opensuse.org
+
+- Disable evo plugins for now: %define build_evo 0:
+ e-d-s had some major API changes on the camel store and tracker
+ needs to catch up on this again.
+
+-------------------------------------------------------------------
+Sat Nov 26 17:48:05 UTC 2011 - dimstar(a)opensuse.org
+
+- Update to version 0.12.8:
+ + New feature: Added userguide miner
+ + libtracker-data: Ensure that fn:timezone-from-dateTime
+ returns an integer
+ + libtracker-extract:
+ - Do not leak GUnixFDList on errors getting metadata
+ - Call g_simple_async_result_complete*() for all error
+ conditions too getting metadata
+ + libtracker-miner: Avoid blocking other SPARQL buffers from
+ being able to process update arrays
+ + tracker-extract:
+ - Do not close FDs more than once for GIF, TIFF and TEXT
+ extractors
+ - Fixed possible leak TrackerExtractInfos
+ + tracker-extract-albumart: Fixed memory leak with Pixbuf loader
+ + tracker-extract-pdf:
+ - Fixed leak Poppler actions when reading TOC
+ - Fixed uninitialised read warnings in Valgrind
+ + tracker-needle:
+ - Require GTK+ 3.0 in glade file
+ - Now display and allow editing of tags in the tag view
+ - Now find tags as well as other results with search criteria
+ + Bugs fixed: nokia#285537, nokia#291569, nokia#292744,
+ nokia#290406, nokia#285426, nokia#290165, nokia#290480,
+ nokia#291088, nokia#290814, nokia#290249, nokia#289953,
+ nokia#289635, nokia#286656, nokia#286610, nokia#284591,
++++ 1648 more lines (skipped)
++++ between /dev/null
++++ and /work/SRC/openSUSE:12.2:Update/.tracker.938.new/tracker-extras.changes
New Changes file:
tracker.changes: same change
New:
----
README.SUSE.flickr
README.SUSE.rss
libtracker-fts-ICU-complx-locale.patch
pre_checkin.sh
tracker-0.14.2.tar.xz
tracker-evo-implicit.patch
tracker-extras.changes
tracker-extras.spec
tracker-fix-include-sched-idle.patch
tracker-libgrss-0.5.patch
tracker-removeable-media-off.patch
tracker.changes
tracker.spec
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ tracker-extras.spec ++++++
++++ 924 lines (skipped)
tracker.spec: same change
++++++ README.SUSE.flickr ++++++
There is currently no graphical way to configure the Flickr miner.
However, assocation with your Flickr account can be manually done with
a tool like d-feet or any other D-Bus client. See this wiki page for
more information:
http://live.gnome.org/Tracker/Documentation/WebMiners/Association
++++++ README.SUSE.rss ++++++
There is currently no graphical way to configure the RSS miner.
Feed channels have to be registered manually into Tracker.
As an example, the file initial-data.ttl contains feeds that you
can register with this command:
tracker-import initial-data.ttl
The tracker-miner-rss binary also has an --add-feed option.
++++++ libtracker-fts-ICU-complx-locale.patch ++++++
>From 48713ba26af38a15a97fc7ebb0828cd287ef2447 Mon Sep 17 00:00:00 2001
From: Alexandre Rostovtsev <tetromino(a)gentoo.org>
Date: Fri, 20 Jul 2012 14:46:33 +0000
Subject: libtracker-fts: ICU cannot handle complex locale descriptions
ubrk_open expects the name of just a single locale (e.g. "en_US.UTF-8"),
not the full definition of your various locale variables and their
values as returned by glibc's setlocale(LC_ALL, NULL).
Instead, limit ourselves to LC_CTYPE, since after all, that's all we
need to determine word boundaries.
Fixes GB#675660.
---
diff --git a/src/libtracker-fts/tracker-parser-libicu.c b/src/libtracker-fts/tracker-parser-libicu.c
index 7388f69..69f75ed 100644
--- a/src/libtracker-fts/tracker-parser-libicu.c
+++ b/src/libtracker-fts/tracker-parser-libicu.c
@@ -676,7 +676,7 @@ tracker_parser_reset (TrackerParser *parser,
/* Open word-break iterator */
parser->bi = ubrk_open(UBRK_WORD,
- setlocale (LC_ALL, NULL),
+ setlocale (LC_CTYPE, NULL),
parser->utxt,
parser->utxt_size,
&error);
--
cgit v0.9.0.2
++++++ pre_checkin.sh ++++++
#!/bin/sh
cp tracker.changes tracker-extras.changes
sed "s/\(%define *build_extras *\)0/\11/;s/\(^Name: *\)tracker.*/\1tracker-extras/" tracker.spec > tracker-extras.spec
sed -i "
/^Name: *tracker-extras/i \
# Do not edit this auto generated file! Edit tracker.spec.
" tracker-extras.spec
++++++ tracker-evo-implicit.patch ++++++
Index: tracker-0.14.1/src/plugins/evolution/tracker-evolution-plugin.c
===================================================================
--- tracker-0.14.1.orig/src/plugins/evolution/tracker-evolution-plugin.c
+++ tracker-0.14.1/src/plugins/evolution/tracker-evolution-plugin.c
@@ -51,6 +51,7 @@
#include <libemail-engine/mail-config.h>
#include <libemail-engine/mail-ops.h>
#include <libemail-utils/e-account-utils.h>
+#include <mail/e-mail-backend.h>
#elif defined(EVOLUTION_SHELL_3_2)
#include <mail/em-utils.h>
#include <mail/e-mail.h>
++++++ tracker-fix-include-sched-idle.patch ++++++
--- src/libtracker-common/tracker-sched.c 2011-10-06 08:07:14.000000000 -0500
+++ src/libtracker-common/tracker-sched.c.orig 2011-10-13 16:43:03.000000000 -0500
@@ -26,6 +26,7 @@
#endif
#include <errno.h>
+#include <linux/sched.h>
#include <sched.h>
#include <glib.h>
++++++ tracker-libgrss-0.5.patch ++++++
>From d78c684bc16cb845869303b34766003777d8cc39 Mon Sep 17 00:00:00 2001
From: Dominique Leuenberger <dimstar(a)opensuse.org>
Date: Fri, 9 Mar 2012 22:05:26 +0100
Subject: [PATCH] Support and require libgrss-0.5 (Bug #671751)
---
configure.ac | 4 +-
src/miners/rss/tracker-miner-rss.c | 96 ++++++++++++++++++------------------
2 files changed, 50 insertions(+), 50 deletions(-)
diff --git a/configure.ac b/configure.ac
index 30c8253..927b4b9 100644
--- a/configure.ac
+++ b/configure.ac
@@ -189,7 +189,7 @@ LIBSTREAMANALYZER_REQUIRED=0.7.0
GEE_REQUIRED=0.3
TAGLIB_REQUIRED=1.6
GNOME_KEYRING_REQUIRED=2.26
-LIBGRSS_REQUIRED=0.3
+LIBGRSS_REQUIRED=0.5
REST_REQUIRED=0.6
NETWORK_MANAGER_REQUIRED=0.8
GSTREAMER_REQUIRED=0.10.31
@@ -434,7 +434,7 @@ fi
# Check requirements for tracker-miner-rss
TRACKER_MINER_RSS_REQUIRED="glib-2.0 >= $GLIB_REQUIRED
- libgrss-0 >= $LIBGRSS_REQUIRED"
+ libgrss-0.5 >= $LIBGRSS_REQUIRED"
PKG_CHECK_MODULES(TRACKER_MINER_RSS, [$TRACKER_MINER_RSS_REQUIRED],
[have_tracker_miner_rss=yes],
diff --git a/src/miners/rss/tracker-miner-rss.c b/src/miners/rss/tracker-miner-rss.c
index 5d32634..e36084a 100644
--- a/src/miners/rss/tracker-miner-rss.c
+++ b/src/miners/rss/tracker-miner-rss.c
@@ -39,7 +39,7 @@ struct _TrackerMinerRSSPrivate {
gboolean stopped;
gchar *last_status;
- FeedsPool *pool;
+ GrssFeedsPool *pool;
gint now_fetching;
GDBusConnection *connection;
guint graph_updated_id;
@@ -50,14 +50,14 @@ struct _TrackerMinerRSSPrivate {
typedef struct {
TrackerMinerRSS *miner;
- FeedChannel *channel;
+ GrssFeedChannel *channel;
gint timeout_id;
GCancellable *cancellable;
} FeedChannelUpdateData;
typedef struct {
TrackerMinerRSS *miner;
- FeedItem *item;
+ GrssFeedItem *item;
GCancellable *cancellable;
} FeedItemInsertData;
@@ -76,14 +76,14 @@ static void retrieve_and_schedule_feeds (TrackerMinerRSS *mine
static gboolean feed_channel_changed_timeout_cb (gpointer user_data);
static void feed_channel_update_data_free (FeedChannelUpdateData *fcud);
static void feed_item_insert_data_free (FeedItemInsertData *fiid);
-static void feed_fetching_cb (FeedsPool *pool,
- FeedChannel *feed,
+static void feed_fetching_cb (GrssFeedsPool *pool,
+ GrssFeedChannel *feed,
gpointer user_data);
-static void feed_ready_cb (FeedsPool *pool,
- FeedChannel *feed,
+static void feed_ready_cb (GrssFeedsPool *pool,
+ GrssFeedChannel *feed,
GList *items,
gpointer user_data);
-static const gchar *get_message_url (FeedItem *item);
+static const gchar *get_message_url (GrssFeedItem *item);
G_DEFINE_TYPE (TrackerMinerRSS, tracker_miner_rss, TRACKER_TYPE_MINER)
@@ -150,7 +150,7 @@ tracker_miner_rss_init (TrackerMinerRSS *object)
NULL,
(GDestroyNotify) feed_channel_update_data_free);
- priv->pool = feeds_pool_new ();
+ priv->pool = grss_feeds_pool_new ();
g_signal_connect (priv->pool, "feed-fetching", G_CALLBACK (feed_fetching_cb), object);
g_signal_connect (priv->pool, "feed-ready", G_CALLBACK (feed_ready_cb), object);
priv->now_fetching = 0;
@@ -193,7 +193,7 @@ graph_updated_cb (GDBusConnection *connection,
static FeedChannelUpdateData *
feed_channel_update_data_new (TrackerMinerRSS *miner,
- FeedChannel *channel)
+ GrssFeedChannel *channel)
{
FeedChannelUpdateData *fcud;
@@ -235,7 +235,7 @@ feed_channel_update_data_free (FeedChannelUpdateData *fcud)
static FeedItemInsertData *
feed_item_insert_data_new (TrackerMinerRSS *miner,
- FeedItem *item)
+ GrssFeedItem *item)
{
FeedItemInsertData *fiid;
@@ -305,7 +305,7 @@ feed_channel_changed_timeout_cb (gpointer user_data)
now = time (NULL);
uri = g_object_get_data (G_OBJECT (fcud->channel), "subject");
- g_message ("Updating mfo:updatedTime for channel '%s'", feed_channel_get_title (fcud->channel));
+ g_message ("Updating mfo:updatedTime for channel '%s'", grss_feed_channel_get_title (fcud->channel));
/* I hope there will be soon a SPARQL command to just update a
* value instead to delete and re-insert it
@@ -344,13 +344,13 @@ static void
feed_channel_change_updated_time (FeedItemInsertData *fiid)
{
TrackerMinerRSSPrivate *priv;
- FeedChannel *channel;
+ GrssFeedChannel *channel;
FeedChannelUpdateData *fcud;
priv = TRACKER_MINER_RSS_GET_PRIVATE (fiid->miner);
/* Check we don't already have an update request for this channel */
- channel = feed_item_get_parent (fiid->item);
+ channel = grss_feed_item_get_parent (fiid->item);
fcud = g_hash_table_lookup (priv->channel_updates, channel);
if (fcud) {
@@ -371,9 +371,9 @@ feed_channel_change_updated_time (FeedItemInsertData *fiid)
}
static void
-feed_fetching_cb (FeedsPool *pool,
- FeedChannel *channel,
- gpointer user_data)
+feed_fetching_cb (GrssFeedsPool *pool,
+ GrssFeedChannel *channel,
+ gpointer user_data)
{
gint avail;
gdouble prog;
@@ -382,7 +382,7 @@ feed_fetching_cb (FeedsPool *pool,
miner = TRACKER_MINER_RSS (user_data);
priv = TRACKER_MINER_RSS_GET_PRIVATE (miner);
- avail = feeds_pool_get_listened_num (priv->pool);
+ avail = grss_feeds_pool_get_listened_num (priv->pool);
priv->now_fetching++;
@@ -390,7 +390,7 @@ feed_fetching_cb (FeedsPool *pool,
priv->now_fetching = avail;
g_message ("Fetching channel details, source:'%s' (in progress: %d/%d)",
- feed_channel_get_source (channel),
+ grss_feed_channel_get_source (channel),
priv->now_fetching,
avail);
@@ -408,7 +408,7 @@ feed_item_insert_cb (GObject *source,
const gchar *title;
fiid = user_data;
- title = feed_item_get_title (fiid->item);
+ title = grss_feed_item_get_title (fiid->item);
error = NULL;
tracker_sparql_connection_update_finish (TRACKER_SPARQL_CONNECTION (source), result, &error);
@@ -441,7 +441,7 @@ feed_item_check_exists_cb (GObject *source_object,
TrackerSparqlCursor *cursor;
GError *error;
TrackerSparqlBuilder *sparql;
- FeedChannel *channel;
+ GrssFeedChannel *channel;
gboolean has_geolocation;
fiid = user_data;
@@ -475,12 +475,12 @@ feed_item_check_exists_cb (GObject *source_object,
}
url = get_message_url (fiid->item);
- channel = feed_item_get_parent (fiid->item);
+ channel = grss_feed_item_get_parent (fiid->item);
str = tracker_sparql_cursor_get_string (cursor, 0, NULL);
if (str && g_ascii_strcasecmp (str, "true") == 0) {
g_message (" Item already exists '%s'",
- feed_item_get_title (fiid->item));
+ grss_feed_item_get_title (fiid->item));
if (cursor) {
g_object_unref (cursor);
@@ -495,7 +495,7 @@ feed_item_check_exists_cb (GObject *source_object,
sparql = tracker_sparql_builder_new_update ();
- has_geolocation = feed_item_get_geo_point (fiid->item, &latitude, &longitude);
+ has_geolocation = grss_feed_item_get_geo_point (fiid->item, &latitude, &longitude);
tracker_sparql_builder_insert_open (sparql, NULL);
if (has_geolocation) {
@@ -523,7 +523,7 @@ feed_item_check_exists_cb (GObject *source_object,
tracker_sparql_builder_object (sparql, "_:location");
}
- tmp_string = feed_item_get_title (fiid->item);
+ tmp_string = grss_feed_item_get_title (fiid->item);
if (tmp_string != NULL) {
g_message (" Title:'%s'", tmp_string);
@@ -531,7 +531,7 @@ feed_item_check_exists_cb (GObject *source_object,
tracker_sparql_builder_object_unvalidated (sparql, tmp_string);
}
- tmp_string = feed_item_get_description (fiid->item);
+ tmp_string = grss_feed_item_get_description (fiid->item);
if (tmp_string != NULL) {
tracker_sparql_builder_predicate (sparql, "nie:plainTextContent");
tracker_sparql_builder_object_unvalidated (sparql, tmp_string);
@@ -553,7 +553,7 @@ feed_item_check_exists_cb (GObject *source_object,
tracker_sparql_builder_predicate (sparql, "mfo:downloadedTime");
tracker_sparql_builder_object_date (sparql, &t);
- t = feed_item_get_publish_time (fiid->item);
+ t = grss_feed_item_get_publish_time (fiid->item);
tracker_sparql_builder_predicate (sparql, "nie:contentCreated");
tracker_sparql_builder_object_date (sparql, &t);
@@ -579,16 +579,16 @@ feed_item_check_exists_cb (GObject *source_object,
static void
feed_item_check_exists (TrackerMinerRSS *miner,
- FeedItem *item)
+ GrssFeedItem *item)
{
FeedItemInsertData *fiid;
- FeedChannel *feed;
+ GrssFeedChannel *feed;
gchar *query;
gchar *communication_channel;
const gchar *url;
url = get_message_url (item);
- feed = feed_item_get_parent (item);
+ feed = grss_feed_item_get_parent (item);
communication_channel = g_object_get_data (G_OBJECT (feed), "subject");
query = g_strdup_printf ("ASK {"
@@ -610,10 +610,10 @@ feed_item_check_exists (TrackerMinerRSS *miner,
}
static void
-feed_ready_cb (FeedsPool *pool,
- FeedChannel *channel,
- GList *items,
- gpointer user_data)
+feed_ready_cb (GrssFeedsPool *pool,
+ GrssFeedChannel *channel,
+ GList *items,
+ gpointer user_data)
{
TrackerMinerRSS *miner;
TrackerMinerRSSPrivate *priv;
@@ -636,10 +636,10 @@ feed_ready_cb (FeedsPool *pool,
}
g_message ("Verifying channel:'%s' is up to date",
- feed_channel_get_title (channel));
+ grss_feed_channel_get_title (channel));
for (iter = items; iter; iter = iter->next) {
- FeedItem *item = iter->data;
+ GrssFeedItem *item = iter->data;
feed_item_check_exists (miner, item);
}
@@ -654,7 +654,7 @@ feeds_retrieve_cb (GObject *source_object,
TrackerSparqlCursor *cursor;
GError *error = NULL;
TrackerMinerRSSPrivate *priv;
- FeedChannel *chan;
+ GrssFeedChannel *chan;
gint count;
cursor = tracker_sparql_connection_query_finish (TRACKER_SPARQL_CONNECTION (source_object),
@@ -691,12 +691,12 @@ feeds_retrieve_cb (GObject *source_object,
interval = tracker_sparql_cursor_get_string (cursor, 2, NULL);
subject = tracker_sparql_cursor_get_string (cursor, 3, NULL);
- chan = feed_channel_new ();
+ chan = grss_feed_channel_new ();
g_object_set_data_full (G_OBJECT (chan),
"subject",
g_strdup (subject),
g_free);
- feed_channel_set_source (chan, g_strdup (source));
+ grss_feed_channel_set_source (chan, g_strdup (source));
/* TODO How to manage feeds with an update mfo:updateInterval == 0 ?
* Here the interval is forced to be at least 1 minute, but perhaps those
@@ -705,7 +705,7 @@ feeds_retrieve_cb (GObject *source_object,
mins = strtoull (interval, NULL, 10);
if (mins <= 0)
mins = 1;
- feed_channel_set_update_interval (chan, mins);
+ grss_feed_channel_set_update_interval (chan, mins);
g_message (" '%s' (%s) - update interval of %s minutes",
title,
@@ -720,7 +720,7 @@ feeds_retrieve_cb (GObject *source_object,
}
priv = TRACKER_MINER_RSS_GET_PRIVATE (user_data);
- feeds_pool_listen (priv->pool, channels);
+ grss_feeds_pool_listen (priv->pool, channels);
g_object_unref (cursor);
@@ -753,13 +753,13 @@ retrieve_and_schedule_feeds (TrackerMinerRSS *miner)
}
static const gchar *
-get_message_url (FeedItem *item)
+get_message_url (GrssFeedItem *item)
{
const gchar *url;
- feed_item_get_real_source (item, &url, NULL);
+ grss_feed_item_get_real_source (item, &url, NULL);
if (url == NULL)
- url = feed_item_get_source (item);
+ url = grss_feed_item_get_source (item);
return url;
}
@@ -772,7 +772,7 @@ miner_started (TrackerMiner *miner)
priv = TRACKER_MINER_RSS_GET_PRIVATE (miner);
retrieve_and_schedule_feeds (TRACKER_MINER_RSS (miner));
- feeds_pool_switch (priv->pool, TRUE);
+ grss_feeds_pool_switch (priv->pool, TRUE);
}
static void
@@ -781,7 +781,7 @@ miner_stopped (TrackerMiner *miner)
TrackerMinerRSSPrivate *priv;
priv = TRACKER_MINER_RSS_GET_PRIVATE (miner);
- feeds_pool_switch (priv->pool, FALSE);
+ grss_feeds_pool_switch (priv->pool, FALSE);
g_object_set (miner, "progress", 1.0, "status", "Idle", NULL);
}
@@ -791,7 +791,7 @@ miner_paused (TrackerMiner *miner)
TrackerMinerRSSPrivate *priv;
priv = TRACKER_MINER_RSS_GET_PRIVATE (miner);
- feeds_pool_switch (priv->pool, FALSE);
+ grss_feeds_pool_switch (priv->pool, FALSE);
/* Save last status */
g_free (priv->last_status);
@@ -807,7 +807,7 @@ miner_resumed (TrackerMiner *miner)
TrackerMinerRSSPrivate *priv;
priv = TRACKER_MINER_RSS_GET_PRIVATE (miner);
- feeds_pool_switch (priv->pool, TRUE);
+ grss_feeds_pool_switch (priv->pool, TRUE);
/* Resume */
g_object_set (miner, "status", priv->last_status ? priv->last_status : "Idle", NULL);
--
1.7.9.2
++++++ tracker-removeable-media-off.patch ++++++
Index: tracker-0.9.19/src/miners/fs/tracker-config.c
===================================================================
--- tracker-0.9.19.orig/src/miners/fs/tracker-config.c
+++ tracker-0.9.19/src/miners/fs/tracker-config.c
@@ -44,7 +44,7 @@
#define DEFAULT_INITIAL_SLEEP 15 /* 0->1000 */
#define DEFAULT_ENABLE_MONITORS TRUE
#define DEFAULT_THROTTLE 0 /* 0->20 */
-#define DEFAULT_INDEX_REMOVABLE_DEVICES TRUE
+#define DEFAULT_INDEX_REMOVABLE_DEVICES FALSE
#define DEFAULT_INDEX_OPTICAL_DISCS FALSE
#define DEFAULT_INDEX_ON_BATTERY FALSE
#define DEFAULT_INDEX_ON_BATTERY_FIRST_TIME TRUE
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package udev for openSUSE:12.2:Update checked in at 2012-09-28 15:01:55
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:12.2:Update/udev (Old)
and /work/SRC/openSUSE:12.2:Update/.udev.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "udev", Maintainer is "RMilasan(a)suse.com"
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
New:
----
_link
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _link ++++++
<link package='udev.935' cicount='copy' />
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package udev.935 for openSUSE:12.2:Update checked in at 2012-09-28 15:01:51
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:12.2:Update/udev.935 (Old)
and /work/SRC/openSUSE:12.2:Update/.udev.935.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "udev.935", Maintainer is ""
Changes:
--------
New Changes file:
--- /dev/null 2012-08-23 02:41:28.555381587 +0200
+++ /work/SRC/openSUSE:12.2:Update/.udev.935.new/udev.changes 2012-09-28 15:01:53.000000000 +0200
@@ -0,0 +1,2714 @@
+-------------------------------------------------------------------
+Wed Sep 19 11:07:32 UTC 2012 - rmilasan(a)suse.com
+
+- create /dev/root symlink with dynamic rule for systemd (bnc#776882).
+
+-------------------------------------------------------------------
+Thu Aug 9 09:52:28 UTC 2012 - rmilasan(a)suse.com
+
+- Fully drop 0024-libudev-queue.c-simplified-open_queue_file.patch
+ needs way too much work to worth keeping it.
+
+-------------------------------------------------------------------
+Thu Aug 9 08:26:35 UTC 2012 - rmilasan(a)suse.com
+
+- Re-work patch: 0024-libudev-queue.c-simplified-open_queue_file.patch
+
+-------------------------------------------------------------------
+Wed Aug 8 17:36:11 UTC 2012 - rmilasan(a)suse.com
+
+- Upstream: re-initialize builtins in the daemon process,
+ not in the worker.
+ add: 0028-udev-re-initialize-builtins-in-the-daemon-process-no.patch
+
+-------------------------------------------------------------------
+Tue Aug 7 08:34:49 UTC 2012 - rmilasan(a)suse.com
+
+- Patch to fix regression in udev where sg driver is no longer loaded
+ for disc events. Will need a non-udev solution for 12.3 (bnc#761109)
+ add: 0027-udev-fix-sg-autoload-regression.patch
+
+-------------------------------------------------------------------
+Mon Aug 6 13:35:34 UTC 2012 - rmilasan(a)suse.com
+
+- udevd race for netlink events (bnc#774646)
+ add: 0026-udev-netlink-null-rules.patch
+
+-------------------------------------------------------------------
+Sat Aug 4 21:28:58 UTC 2012 - rmilasan(a)suse.com
+
+- keyboard-force-release: Apply to all Fujitso AMILO models
+ add: 0025-keyboard-force-release-Apply-to-all-Fujitso-AMILO-mo.patch
+
+-------------------------------------------------------------------
+Fri Aug 3 10:19:12 UTC 2012 - rmilasan(a)suse.com
+
+- Simplify function open_queue_file.
+ add: 0024-libudev-queue.c-simplified-open_queue_file.patch
+
+-------------------------------------------------------------------
+Thu Aug 2 11:44:09 UTC 2012 - rmilasan(a)suse.com
+
+- Rework 0013-re-enable-by_path-links-for-ata-devices.patch to handle
+ by-path links similar to the scsi devices.
+ Fix rules timestamp race (bnc#772075)
+ add: 0023-udev-fix-rules-timestamp-race.patch
+
+-------------------------------------------------------------------
+Wed Jul 25 08:28:54 UTC 2012 - rmilasan(a)suse.com
+
+- Added several patches from upstream:
+ add: 0019-udev-path_id-export-path-for-platform-block-devices.patch
+ add: 0020-rules-fix-typo-in-42-usb-hid-pm.rules.patch
+ add: 0021-keymap-Add-Dell-Latitude-force-release-quirk.patch
+ add: 0022-keymap-Broaden-ThinkPad-X2.-tablet-match-to-also-app.patch
+
+-------------------------------------------------------------------
+Thu Jul 12 15:56:34 UTC 2012 - rmilasan(a)suse.com
+
+- Fix by-path links for ATA transport (bnc#770910)
+ updated: 0013-re-enable-by_path-links-for-ata-devices.patch
+
+-------------------------------------------------------------------
+Wed Jul 11 13:24:21 UTC 2012 - rmilasan(a)suse.com
+
+- Security: libudev using getenv() in suids (bnc#697103)
+ add: 0015-udev-secure-getenv.patch
+ Added several patches from upstream:
+ add: 0016-udev-ata_id-fixup-all-8-not-only-6-bytes-of-the-fw_revision.patch
+ add: 0017-udev-add-some-O_CLOEXEC.patch
+ add: 0018-udev-static-nodes-fix-default-permissions-if-no-rule.patch
+
+-------------------------------------------------------------------
+Fri Jul 6 14:37:31 UTC 2012 - dmueller(a)suse.com
+
+- move udev.pc to the libudev-devel subpackage, as it causes
+ a pkg-config dependency
+
+-------------------------------------------------------------------
+Wed Jun 27 08:55:59 UTC 2012 - rmilasan(a)suse.com
+
+- Re-enable creation of by-id scsi links for ATA devices. (bnc#769002)
+
+-------------------------------------------------------------------
+Mon Jun 25 06:58:33 UTC 2012 - rmilasan(a)suse.com
+
+- Re-enable creation of by-path links in /dev/disk (bnc#764924).
+
+-------------------------------------------------------------------
+Thu Jun 21 12:22:38 UTC 2012 - rmilasan(a)suse.com
+
+- Added option --enable-rule_generator to configure,
+ without it seems that we don't have the rule generator and
+ 75-persistent-net-generator.rules.
+
+-------------------------------------------------------------------
+Wed Jun 6 09:52:26 UTC 2012 - rmilasan(a)suse.com
+
+- Reinstate TIMEOUT= handling. (bnc#753734)
+ add: 0001-Reinstate-TIMEOUT-handling.patch
+- Added several patches from upstream:
+ add: 0002-udev-limit-minimum-worker-count-to-16.patch
+ add: 0003-keymaps-keyboard-force-release-fix-shebang.patch
+ add: 0004-rules-Limit-USB-autosuspend-on-USB-HID-devices.patch
+ add: 0005-keymap-support-for-Lenovo-IdeaPad-Z570-keyboard.patch
+ add: 0006-keymap-Add-Mio-N890.patch
+ add: 0007-udev-path_id-add-cciss-support.patch
+ add: 0008-udev-path_id-skip-PCI-only-parents-for-block-devices.patch
+ add: 0009-keymap-Add-HP-Compaq-Presario-CQ.patch
+ add: 0010-keymap-Add-Dell-XPS-force-release-quirk.patch
+ add: 0011-keymap-Add-support-for-Lenovo-v480-touchpad-toggle-h.patch
+ add: 0012-keymap-Add-Samsung-90X3A.patch
+
+-------------------------------------------------------------------
+Fri Apr 20 07:55:26 UTC 2012 - rmilasan(a)suse.com
+
+- Don't forget to run mkinitrd_setup first, then mkinitrd.
+
+-------------------------------------------------------------------
+Fri Apr 20 07:46:05 UTC 2012 - rmilasan(a)suse.com
+
+- Added PreReq /sbin/mkinitrd.
+ We need it before we run %post or %postun.
+
+-------------------------------------------------------------------
+Wed Apr 4 08:47:23 UTC 2012 - rmilasan(a)suse.com
+
+- version 182:
+ - extras: ata_id - do not log error if HDIO_GET_IDENTITY fails
+ - extras: path_id - add comment about readdir() rebase logic
+ - rules: Enable USB autosuspend on more USB HID devices
+ - extras: path_id - skip ATA transport class devices
+ - rules: move all rules to top level rules/ dir
+ - rules: delete s390 rules, they will move to s390utils
+ - remove edd_id extra
+ - rules: move 42-qemu-usb.rules to rules/ dir
+ - rules: delete outdated 30-kernel-compat.rules
+ - udev.conf - do not set any value by default
+ - remove udev-acl
+ - rules: do not create by-id/scsi-* links for ATA devices
+ - builtin: path_id - remove dead cciss code
+
+-------------------------------------------------------------------
+Mon Apr 2 15:51:40 UTC 2012 - dvaleev(a)suse.com
+
+- there is no 40-ppc.rules anymore
+
+-------------------------------------------------------------------
+Mon Mar 26 08:51:46 UTC 2012 - rmilasan(a)suse.com
+
+- Added post-install and post-uninstall update of initrd.
+
+-------------------------------------------------------------------
+Mon Mar 26 07:58:53 UTC 2012 - rmilasan(a)suse.com
+
+- Created /lib/firmware and link /usr/lib/firmware, udev looks for
+ firmware now in /usr/lib/firmware.
+
+-------------------------------------------------------------------
+Tue Mar 13 12:07:32 UTC 2012 - rmilasan(a)suse.com
+
+- version 181
+ - boot.udev: root_symlink_rule now creates the rule 10-root-symlink.rules
+ in /run/udev/rules.d and a link to /dev/.udev (for the good old times).
+ - require kmod version 5.
+ - keymap: Add Fujitsu Siemens Amilo Li 2732
+ - ata_id: fix identify string fixup
+ - ata_id: whitespace fixes
+ - keymap: Fix touchpad toggle button on Lenovo Ideapad
+ * version 180:
+ - Bugfixes.
+ * version 179:
+ - Bugfixes.
+ * version 178:
+ - RUN+="socket:.." option is deprecated and should not be used.
+ * version 177:
+ - Bugfixes.
+ * version 176:
+ - 'devtmpfs' filesystem is required now, udev will not create or delete
+ device nodes anymore.
+ - writable /run directory (ususally tmpfs) is required now.
+ - there is no longer a fallback to /dev/.udev.
+ - modules are now loaded directly by linking udev to 'libkmod'.
+ - udev links directly to libblkid now.
+ - 'udevadm control --reload-rules' option has been renamed to '--reload'.
+ * version 175:
+ - Bugfixes.
+ * version 174:
++++ 2517 more lines (skipped)
++++ between /dev/null
++++ and /work/SRC/openSUSE:12.2:Update/.udev.935.new/udev.changes
New:
----
0001-Reinstate-TIMEOUT-handling.patch
0002-udev-limit-minimum-worker-count-to-16.patch
0003-keymaps-keyboard-force-release-fix-shebang.patch
0004-rules-Limit-USB-autosuspend-on-USB-HID-devices.patch
0005-keymap-support-for-Lenovo-IdeaPad-Z570-keyboard.patch
0006-keymap-Add-Mio-N890.patch
0007-udev-path_id-add-cciss-support.patch
0008-udev-path_id-skip-PCI-only-parents-for-block-devices.patch
0009-keymap-Add-HP-Compaq-Presario-CQ.patch
0010-keymap-Add-Dell-XPS-force-release-quirk.patch
0011-keymap-Add-support-for-Lenovo-v480-touchpad-toggle-h.patch
0012-keymap-Add-Samsung-90X3A.patch
0013-re-enable-by_path-links-for-ata-devices.patch
0014-rules-create-by-id-scsi-links-for-ATA-devices.patch
0015-udev-secure-getenv.patch
0016-udev-ata_id-fixup-all-8-not-only-6-bytes-of-the-fw_revision.patch
0017-udev-add-some-O_CLOEXEC.patch
0018-udev-static-nodes-fix-default-permissions-if-no-rule.patch
0019-udev-path_id-export-path-for-platform-block-devices.patch
0020-rules-fix-typo-in-42-usb-hid-pm.rules.patch
0021-keymap-Add-Dell-Latitude-force-release-quirk.patch
0022-keymap-Broaden-ThinkPad-X2.-tablet-match-to-also-app.patch
0023-udev-fix-rules-timestamp-race.patch
0025-keyboard-force-release-Apply-to-all-Fujitso-AMILO-mo.patch
0026-udev-netlink-null-rules.patch
0027-udev-fix-sg-autoload-regression.patch
0028-udev-re-initialize-builtins-in-the-daemon-process-no.patch
baselibs.conf
boot.udev
move-udevd-and-udevadm-back-to-sbin.patch
udev-182.tar.bz2
udev-root-symlink.systemd
udev-rpmlintrc
udev.changes
udev.spec
write_dev_root_rule
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ udev.spec ++++++
#
# spec file for package udev
#
# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
Name: udev
Url: http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html
Version: 182
Release: 0
Summary: A rule-based device node and kernel event manager
License: GPL-2.0+
Group: System/Kernel
PreReq: /bin/pidof /bin/rm /usr/bin/stat %insserv_prereq %fillup_prereq /usr/sbin/groupadd /usr/bin/getent /sbin/mkinitrd
Conflicts: systemd < 39
Conflicts: aaa_base < 11.5
Conflicts: filesystem < 11.5
Conflicts: mkinitrd < 2.7.0
Conflicts: util-linux < 2.16
Conflicts: ConsoleKit < 0.4.1
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: glib2-devel
BuildRequires: gobject-introspection-devel
BuildRequires: gperf
BuildRequires: libacl-devel
BuildRequires: libblkid-devel >= 2.20
BuildRequires: libkmod-devel > 5
BuildRequires: libselinux-devel
BuildRequires: libsepol-devel
BuildRequires: libtool
BuildRequires: libusb-devel
BuildRequires: pciutils-ids
BuildRequires: pkg-config
BuildRequires: usbutils
Source0: ftp://ftp.kernel.org/pub/linux/utils/kernel/hotplug/%{name}-%{version}.tar.…
Source1: udev-rpmlintrc
Source2: baselibs.conf
Source60: boot.udev
Source61: write_dev_root_rule
Source62: udev-root-symlink.systemd
# PATCH-FIX-OPENSUSE move-udevd-and-udevadm-back-to-sbin.patch
Patch0: move-udevd-and-udevadm-back-to-sbin.patch
# PATCH-FIX-OPENSUSE 0001-Reinstate-TIMEOUT-handling.patch
Patch1: 0001-Reinstate-TIMEOUT-handling.patch
# PATCH-FIX-UPSTREAM 0002-udev-limit-minimum-worker-count-to-16.patch
Patch2: 0002-udev-limit-minimum-worker-count-to-16.patch
# PATCH-FIX-UPSTREAM 0003-keymaps-keyboard-force-release-fix-shebang.patch
Patch3: 0003-keymaps-keyboard-force-release-fix-shebang.patch
# PATCH-FIX-UPSTREAM 0004-rules-Limit-USB-autosuspend-on-USB-HID-devices.patch
Patch4: 0004-rules-Limit-USB-autosuspend-on-USB-HID-devices.patch
# PATCH-FIX-UPSTREAM 0005-keymap-support-for-Lenovo-IdeaPad-Z570-keyboard.patch
Patch5: 0005-keymap-support-for-Lenovo-IdeaPad-Z570-keyboard.patch
# PATCH-FIX-UPSTREAM 0006-keymap-Add-Mio-N890.patch
Patch6: 0006-keymap-Add-Mio-N890.patch
# PATCH-FIX-UPSTREAM 0007-udev-path_id-add-cciss-support.patch
Patch7: 0007-udev-path_id-add-cciss-support.patch
# PATCH-FIX-UPSTREAM 0008-udev-path_id-skip-PCI-only-parents-for-block-devices.patch
Patch8: 0008-udev-path_id-skip-PCI-only-parents-for-block-devices.patch
# PATCH-FIX-UPSTREAM 0009-keymap-Add-HP-Compaq-Presario-CQ.patch
Patch9: 0009-keymap-Add-HP-Compaq-Presario-CQ.patch
# PATCH-FIX-UPSTREAM 0010-keymap-Add-Dell-XPS-force-release-quirk.patch
Patch10: 0010-keymap-Add-Dell-XPS-force-release-quirk.patch
# PATCH-FIX-UPSTREAM 0011-keymap-Add-support-for-Lenovo-v480-touchpad-toggle-h.patch
Patch11: 0011-keymap-Add-support-for-Lenovo-v480-touchpad-toggle-h.patch
# PATCH-FIX-UPSTREAM 0012-keymap-Add-Samsung-90X3A.patch
Patch12: 0012-keymap-Add-Samsung-90X3A.patch
# PATCH-FIX-OPENSUSE 0013-re-enable-by_path-links-for-ata-devices.patch
Patch13: 0013-re-enable-by_path-links-for-ata-devices.patch
# PATCH-FIX-OPENSUSE 0014-rules-create-by-id-scsi-links-for-ATA-devices.patch
Patch14: 0014-rules-create-by-id-scsi-links-for-ATA-devices.patch
# PATCH-FIX-OPENSUSE 0015-udev-secure-getenv.patch
Patch15: 0015-udev-secure-getenv.patch
# PATCH-FIX-UPSTREAM 0016-udev-ata_id-fixup-all-8-not-only-6-bytes-of-the-fw_revision.patch
Patch16: 0016-udev-ata_id-fixup-all-8-not-only-6-bytes-of-the-fw_revision.patch
# PATCH-FIX-UPSTREAM 0017-udev-add-some-O_CLOEXEC.patch
Patch17: 0017-udev-add-some-O_CLOEXEC.patch
# PATCH-FIX-UPSTREAM 0018-udev-static-nodes-fix-default-permissions-if-no-rule.patch
Patch18: 0018-udev-static-nodes-fix-default-permissions-if-no-rule.patch
# PATCH-FIX-UPSTREAM 0019-udev-path_id-export-path-for-platform-block-devices.patch
Patch19: 0019-udev-path_id-export-path-for-platform-block-devices.patch
# PATCH-FIX-UPSTREAM 0020-rules-fix-typo-in-42-usb-hid-pm.rules.patch
Patch20: 0020-rules-fix-typo-in-42-usb-hid-pm.rules.patch
# PATCH-FIX-UPSTREAM 0021-keymap-Add-Dell-Latitude-force-release-quirk.patch
Patch21: 0021-keymap-Add-Dell-Latitude-force-release-quirk.patch
# PATCH-FIX-UPSTREAM 0022-keymap-Broaden-ThinkPad-X2.-tablet-match-to-also-app.patch
Patch22: 0022-keymap-Broaden-ThinkPad-X2.-tablet-match-to-also-app.patch
# PATCH-FIX-OPENSUSE 0023-udev-fix-rules-timestamp-race.patch
Patch23: 0023-udev-fix-rules-timestamp-race.patch
# PATCH-FIX-UPSTREAM 0024-libudev-queue.c-simplified-open_queue_file.patch (drop this, needs way more work)
# Patch24: 0024-libudev-queue.c-simplified-open_queue_file.patch
# PATCH-FIX-UPSTREAM 0025-keyboard-force-release-Apply-to-all-Fujitso-AMILO-mo.patch
Patch25: 0025-keyboard-force-release-Apply-to-all-Fujitso-AMILO-mo.patch
# PATCH-FIX-OPENSUSE 0026-udev-netlink-null-rules.patch
Patch26: 0026-udev-netlink-null-rules.patch
# PATCH-FIX-OPENSUSE 0027-udev-fix-sg-autoload-regression.patch
Patch27: 0027-udev-fix-sg-autoload-regression.patch
# PATCH-FIX-UPSTREAM 0028-udev-re-initialize-builtins-in-the-daemon-process-no.patch
Patch28: 0028-udev-re-initialize-builtins-in-the-daemon-process-no.patch
# Upstream First - Policy:
# Never add any patches to this package without the upstream commit id
# in the patch. Any patches added here without a very good reason to make
# an exception will be silently removed with the next version update.
%description
Udev creates and removes device nodes in /dev for devices discovered or
removed from the system. It receives events via kernel netlink messages
and dispatches them according to rules in /lib/udev/rules.d/. Matching
rules may name a device node, create additional symlinks to the node,
call tools to initialize a device, or load needed kernel modules.
%package -n libudev0
Summary: Dynamic library to access udev device information
License: LGPL-2.1+
Group: System/Libraries
Requires: udev = %{version}-%{release}
%description -n libudev0
This package contains the dynamic library libudev, which provides
access to udev device information
%package -n libudev-devel
Summary: Development files for libudev
License: LGPL-2.1+
Group: Development/Libraries/Other
Requires: libudev0 = %{version}-%{release}
%description -n libudev-devel
This package contains the development files for the library libudev, a
dynamic library, which provides access to udev device information.
%package -n libgudev-1_0-0
Summary: GObject library, to access udev device information
License: LGPL-2.1+
Group: System/Libraries
Requires: libudev0 = %{version}-%{release}
%description -n libgudev-1_0-0
This package contains the GObject library libgudev, which provides
access to udev device information.
%package -n typelib-1_0-GUdev-1_0
Summary: GObject library, to access udev device information -- Introspection bindings
License: LGPL-2.1+
Group: System/Libraries
%description -n typelib-1_0-GUdev-1_0
This package provides the GObject Introspection bindings for libgudev, which
provides access to udev device information.
%package -n libgudev-1_0-devel
Summary: Devel package for libgudev
License: LGPL-2.1+
Group: Development/Libraries/Other
Requires: glib2-devel
Requires: libgudev-1_0-0 = %{version}-%{release}
Requires: libudev-devel = %{version}-%{release}
Requires: typelib-1_0-GUdev-1_0 = %{version}-%{release}
%description -n libgudev-1_0-devel
This is the devel package for the GObject library libgudev, which
provides GObject access to udev device information.
%prep
%setup -q
# patching
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
%patch8 -p1
%patch9 -p1
%patch10 -p1
%patch11 -p1
%patch12 -p1
%patch13 -p1
%patch14 -p1
%patch15 -p1
%patch16 -p1
%patch17 -p1
%patch18 -p1
%patch19 -p1
%patch20 -p1
%patch21 -p1
%patch22 -p1
%patch23 -p1
# %patch24 -p1
%patch25 -p1
%patch26 -p1
%patch27 -p1
%patch28 -p1
%build
autoreconf -vfi
# prevent man pages from re-building (xmlto)
find . -name "*.[1-8]" -exec touch '{}' \;
export V=1
%configure \
--sysconfdir=%{_sysconfdir} \
--sbindir=/sbin \
--with-rootlibdir=/%{_lib} \
--libexecdir=/lib \
--docdir=%{_docdir}/udev \
--with-selinux \
--with-systemdsystemunitdir=/lib/systemd/system \
--enable-floppy \
--enable-rule_generator \
CFLAGS="$RPM_OPT_FLAGS"
make %{?_smp_mflags}
%install
make DESTDIR=$RPM_BUILD_ROOT install
rm -f $RPM_BUILD_ROOT/%{_libdir}/libudev.la
rm -f $RPM_BUILD_ROOT/%{_libdir}/libgudev-1.0.la
mkdir -p $RPM_BUILD_ROOT%{_bindir}
ln -sf ../../sbin/udevadm $RPM_BUILD_ROOT%{_bindir}/udevadm
ln -sf ../../sbin/udevd $RPM_BUILD_ROOT/lib/udev/udevd
mkdir -p $RPM_BUILD_ROOT/lib/firmware
mkdir -p $RPM_BUILD_ROOT/%{_prefix}/lib
ln -sf ../../lib/firmware $RPM_BUILD_ROOT/%{_prefix}/lib/firmware
cp -ax README NEWS $RPM_BUILD_ROOT%{_docdir}/udev
install -m755 -D %{S:60} $RPM_BUILD_ROOT/etc/init.d/boot.udev
install -m755 -D %{S:61} $RPM_BUILD_ROOT/lib/udev/write_dev_root_rule
install -m644 -D %{S:62} $RPM_BUILD_ROOT/lib/systemd/system/udev-root-symlink.service
mkdir -p $RPM_BUILD_ROOT/lib/systemd/system/basic.target.wants
ln -sf ../udev-root-symlink.service $RPM_BUILD_ROOT/lib/systemd/system/basic.target.wants
%pre
/usr/bin/getent group tape > /dev/null 2>&1 || /usr/sbin/groupadd -r tape 2> /dev/null
# stop daemon if we are not in a chroot
if test -f /proc/1/exe -a -d /proc/1/root; then
if test "$(stat -Lc '%%D-%%i' /)" = "$(stat -Lc '%%D-%%i' /proc/1/root)"; then
/bin/systemctl stop udev-control.socket udev-kernel.service >/dev/null 2>&1 || :
/sbin/udevadm control --exit >/dev/null 2>&1 || :
fi
fi
%post
%{fillup_and_insserv -Y boot.udev}
# add KERNEL name match to existing persistent net rules
sed -ri '/KERNEL/ ! { s/NAME="(eth|wlan|ath)([0-9]+)"/KERNEL=="\1*", NAME="\1\2"/}' \
/etc/udev/rules.d/70-persistent-net.rules >/dev/null 2>&1 || :
# cleanup old stuff
rm -f /etc/sysconfig/udev
rm -f /etc/udev/rules.d/20-cdrom.rules
rm -f /etc/udev/rules.d/55-cdrom.rules
rm -f /etc/udev/rules.d/65-cdrom.rules
/bin/systemctl daemon-reload >/dev/null 2>&1 || :
# start daemon if we are not in a chroot
if test -f /proc/1/exe -a -d /proc/1/root; then
if test "$(stat -Lc '%%D-%%i' /)" = "$(stat -Lc '%%D-%%i' /proc/1/root)"; then
/bin/systemctl start udev.service >/dev/null 2>&1 || :
/sbin/udevd --daemon >/dev/null 2>&1 || :
fi
fi
[ -x /sbin/mkinitrd_setup ] && /sbin/mkinitrd_setup
if [ -e /var/lib/no_initrd_recreation_by_suspend ]; then
echo "Skipping recreation of existing initial ramdisks, due"
echo "to presence of /var/lib/no_initrd_recreation_by_suspend"
elif [ -x /sbin/mkinitrd ]; then
/sbin/mkinitrd
fi
%postun
%insserv_cleanup
/bin/systemctl daemon-reload >/dev/null 2>&1 || :
[ -x /sbin/mkinitrd_setup ] && /sbin/mkinitrd_setup
if [ -e /var/lib/no_initrd_recreation_by_suspend ]; then
echo "Skipping recreation of existing initial ramdisks, due"
echo "to presence of /var/lib/no_initrd_recreation_by_suspend"
elif [ -x /sbin/mkinitrd ]; then
/sbin/mkinitrd
fi
%post -n libudev0 -p /sbin/ldconfig
%postun -n libudev0 -p /sbin/ldconfig
%post -n libgudev-1_0-0 -p /sbin/ldconfig
%postun -n libgudev-1_0-0 -p /sbin/ldconfig
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(-,root,root)
/sbin/udevd
/sbin/udevadm
%dir %{_bindir}
%{_bindir}/udevadm
%dir /usr/lib/firmware/
%dir /lib/udev/
/lib/udev/*
%dir /lib/udev/keymaps
/lib/udev/keymaps/*
/lib/udev/keyboard-force-release.sh
%dir /lib/udev/rules.d/
/lib/udev/rules.d/*.rules
%{_sysconfdir}/init.d/boot.udev
%dir %{_sysconfdir}/udev/
%dir %{_sysconfdir}/udev/rules.d/
%config(noreplace) %{_sysconfdir}/udev/udev.conf
%{_mandir}/man?/*.[0-9]*
%doc %{_docdir}/udev
%dir /lib/udev/devices/
%dir /lib/systemd/system
/lib/systemd/system/udev*.service
/lib/systemd/system/udev*.socket
%dir /lib/systemd/system/basic.target.wants
/lib/systemd/system/basic.target.wants/udev*.service
%dir /lib/systemd/system/sockets.target.wants
/lib/systemd/system/sockets.target.wants/udev*.socket
%files -n libudev0
%defattr(-,root,root)
/%{_lib}/libudev.so.*
%files -n libudev-devel
%defattr(-,root,root)
%{_includedir}/libudev.h
%{_libdir}/libudev.so
%{_datadir}/pkgconfig/udev.pc
%{_libdir}/pkgconfig/libudev.pc
%dir %{_datadir}/gtk-doc
%dir %{_datadir}/gtk-doc/html
%dir %{_datadir}/gtk-doc/html/libudev
%{_datadir}/gtk-doc/html/libudev/*
%files -n libgudev-1_0-0
%defattr(-,root,root)
/%{_lib}/libgudev-1.0.so.*
%files -n typelib-1_0-GUdev-1_0
%defattr(-,root,root)
%{_libdir}/girepository-1.0/GUdev-1.0.typelib
%files -n libgudev-1_0-devel
%defattr(-,root,root)
%dir %{_includedir}/gudev-1.0
%dir %{_includedir}/gudev-1.0/gudev
%{_includedir}/gudev-1.0/gudev/*.h
%{_libdir}/libgudev-1.0.so
%{_libdir}/pkgconfig/gudev-1.0.pc
%dir %{_datadir}/gtk-doc
%dir %{_datadir}/gtk-doc/html
%dir %{_datadir}/gtk-doc/html/gudev
%{_datadir}/gtk-doc/html/gudev/*
%{_datadir}/gir-1.0/GUdev-1.0.gir
%changelog
++++++ 0001-Reinstate-TIMEOUT-handling.patch ++++++
Without treating events with timeouts specially some drivers would
cause a 30 seconds stall on boot: .
I also received reports of some drivers not working at all, even
after the timeout.
We will remove this patch when more drivers have been fixed in
the kernel (3.4?).
This reverts 43d5c5f03645c4b842659f9b5bd0ae465e885e92 and
57c6f8ae5f52a6e8ffc66a54966346f733dded39.
---
Note: this is mostly a FYI, and whether or not it makes sense
to apply this upstream depends on how big problems other report
regarding this issue.
src/libudev-device.c | 19 +++++++++++++++++++
src/libudev-private.h | 1 +
src/udevd.c | 13 ++++++++++---
4 files changed, 32 insertions(+), 3 deletions(-)
Index: udev-182/src/libudev-device.c
===================================================================
--- udev-182.orig/src/libudev-device.c
+++ udev-182/src/libudev-device.c
@@ -68,6 +68,7 @@ struct udev_device {
struct udev_list tags_list;
unsigned long long int seqnum;
unsigned long long int usec_initialized;
+ int timeout;
int devlink_priority;
int refcount;
dev_t devnum;
@@ -160,6 +161,21 @@ static int udev_device_set_devnum(struct
return 0;
}
+int udev_device_get_timeout(struct udev_device *udev_device)
+{
+ return udev_device->timeout;
+}
+
+static int udev_device_set_timeout(struct udev_device *udev_device, int timeout)
+{
+ char num[32];
+
+ udev_device->timeout = timeout;
+ snprintf(num, sizeof(num), "%u", timeout);
+ udev_device_add_property(udev_device, "TIMEOUT", num);
+ return 0;
+}
+
const char *udev_device_get_devpath_old(struct udev_device *udev_device)
{
return udev_device->devpath_old;
@@ -414,6 +430,8 @@ void udev_device_add_property_from_strin
udev_device_set_devpath_old(udev_device, &property[12]);
} else if (strncmp(property, "SEQNUM=", 7) == 0) {
udev_device_set_seqnum(udev_device, strtoull(&property[7], NULL, 10));
+ } else if (strncmp(property, "TIMEOUT=", 8) == 0) {
+ udev_device_set_timeout(udev_device, strtoull(&property[8], NULL, 10));
} else if (strncmp(property, "IFINDEX=", 8) == 0) {
udev_device_set_ifindex(udev_device, strtoull(&property[8], NULL, 10));
} else if (strncmp(property, "DEVMODE=", 8) == 0) {
@@ -599,6 +617,7 @@ struct udev_device *udev_device_new(stru
udev_list_init(udev, &udev_device->sysattr_value_list, true);
udev_list_init(udev, &udev_device->sysattr_list, false);
udev_list_init(udev, &udev_device->tags_list, true);
+ udev_device->timeout = -1;
udev_device->watch_handle = -1;
/* copy global properties */
udev_list_entry_foreach(list_entry, udev_get_properties_list_entry(udev))
Index: udev-182/src/libudev-private.h
===================================================================
--- udev-182.orig/src/libudev-private.h
+++ udev-182/src/libudev-private.h
@@ -87,6 +87,7 @@ const char *udev_device_get_id_filename(
void udev_device_set_is_initialized(struct udev_device *udev_device);
int udev_device_add_tag(struct udev_device *udev_device, const char *tag);
void udev_device_cleanup_tags_list(struct udev_device *udev_device);
+int udev_device_get_timeout(struct udev_device *udev_device);
unsigned long long udev_device_get_usec_initialized(struct udev_device *udev_device);
void udev_device_set_usec_initialized(struct udev_device *udev_device, unsigned long long usec_initialized);
int udev_device_get_devlink_priority(struct udev_device *udev_device);
Index: udev-182/src/udevd.c
===================================================================
--- udev-182.orig/src/udevd.c
+++ udev-182/src/udevd.c
@@ -401,7 +401,7 @@ out:
}
}
-static void event_run(struct event *event)
+static void event_run(struct event *event, bool force)
{
struct udev_list_node *loop;
@@ -427,7 +427,7 @@ static void event_run(struct event *even
return;
}
- if (children >= children_max) {
+ if (!force && children >= children_max) {
if (children_max > 1)
info(event->udev, "maximum number (%i) of children reached\n", children);
return;
@@ -461,6 +461,13 @@ static int event_queue_insert(struct ude
event->state = EVENT_QUEUED;
udev_list_node_append(&event->node, &event_list);
+
+ /* run all events with a timeout set immediately */
+ if (udev_device_get_timeout(dev) > 0) {
+ event_run(event, true);
+ return 0;
+ }
+
return 0;
}
@@ -577,7 +584,7 @@ static void event_queue_start(struct ude
continue;
}
- event_run(event);
+ event_run(event, false);
}
}
Index: udev-182/TODO
===================================================================
--- udev-182.orig/TODO
+++ udev-182/TODO
@@ -5,6 +5,8 @@
- make gtk-doc optional like kmod
+ - remove TIMEOUT= handling
+
- move /usr/lib/udev/devices/ to tmpfiles
- trigger --subsystem-match=usb/usb_device
++++++ 0002-udev-limit-minimum-worker-count-to-16.patch ++++++
>From d315bba6f6c9d929acdbf3c37cbcf6c9a72365ac Mon Sep 17 00:00:00 2001
From: Kay Sievers <kay(a)vrfy.org>
Date: Mon, 4 Jun 2012 16:40:31 +0200
Subject: [PATCH] udev: limit minimum worker count to 16
---
src/udevd.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
Index: udev-182/src/udevd.c
===================================================================
--- udev-182.orig/src/udevd.c
+++ udev-182/src/udevd.c
@@ -1542,9 +1542,9 @@ int main(int argc, char *argv[])
/* set value depending on the amount of RAM */
if (memsize > 0)
- children_max = 128 + (memsize / 8);
+ children_max = 16 + (memsize / 8);
else
- children_max = 128;
+ children_max = 16;
}
info(udev, "set children_max to %u\n", children_max);
++++++ 0003-keymaps-keyboard-force-release-fix-shebang.patch ++++++
Index: udev-182/src/keymap/keyboard-force-release.sh.in
===================================================================
--- udev-182.orig/src/keymap/keyboard-force-release.sh.in
+++ udev-182/src/keymap/keyboard-force-release.sh.in
@@ -1,4 +1,4 @@
-#!@rootprefix@/bin/sh -e
+#!/bin/sh -e
# read list of scancodes, convert hex to decimal and
# append to the atkbd force_release sysfs attribute
# $1 sysfs devpath for serioX
++++++ 0004-rules-Limit-USB-autosuspend-on-USB-HID-devices.patch ++++++
>From e0386cf2809219bbdd30895f46f1f567b56902b6 Mon Sep 17 00:00:00 2001
From: Matthew Garrett <mjg(a)redhat.com>
Date: Fri, 25 May 2012 10:27:25 -0400
Subject: [PATCH] rules: Limit USB autosuspend on USB HID devices
Some USB ports on external hubs may be reported as "fixed". We only want
to auto-enable this on ports that are internal to the machine, so check
the parent state as well.
---
rules/42-usb-hid-pm.rules | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
Index: udev-182/rules/42-usb-hid-pm.rules
===================================================================
--- udev-182.orig/rules/42-usb-hid-pm.rules
+++ udev-182/rules/42-usb-hid-pm.rules
@@ -46,4 +46,10 @@ ACTION=="add", SUBSYSTEM=="usb", ATTRS{i
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="14dd", ATTR{idProduct}="0002", TEST=="power/control", ATTR{power/control}="auto"
# USB HID devices that are internal to the machine should also be safe to autosuspend
+
+ACTION=="add", SUBSYSTEM=="usb", SUBSYSTEMS=="usb", ATTRS{removable}=="removable", GOTO="usb_hid_pm_end"
+ACTION=="add", SUBSYSTEM=="usb", SUBSYSTEMS=="usb", ATTRS{removable}=="unknown", GOTO="usb_hid_pm_end"
+
ACTION=="add", SUBSYSTEM=="usb", ATTR{bInterfaceClass}=="03", ATTRS{removable}=="fixed", TEST=="../power/control", ATTR{../power/control}="auto"
+
+LABEL="usb_hid_pm_end"
++++++ 0005-keymap-support-for-Lenovo-IdeaPad-Z570-keyboard.patch ++++++
>From 0b270320da4f49bb5cc3c6fb74345eb39817694b Mon Sep 17 00:00:00 2001
From: "Maxim A. Mikityanskiy" <maxtram95(a)gmail.com>
Date: Tue, 22 May 2012 02:11:21 +0200
Subject: [PATCH] keymap: support for Lenovo IdeaPad Z570 keyboard
Index: udev-182/src/keymap/95-keymap.rules
===================================================================
--- udev-182.orig/src/keymap/95-keymap.rules
+++ udev-182/src/keymap/95-keymap.rules
@@ -45,6 +45,7 @@ ENV{DMI_VENDOR}=="", GOTO="keyboard_end"
ENV{DMI_VENDOR}=="LENOVO*", KERNELS=="input*", ATTRS{name}=="ThinkPad Extra Buttons", RUN+="keymap $name module-lenovo"
ENV{DMI_VENDOR}=="LENOVO*", KERNELS=="input*", ATTRS{name}=="Lenovo ThinkPad SL Series extra buttons", RUN+="keymap $name 0x0E bluetooth"
+ENV{DMI_VENDOR}=="LENOVO*", KERNELS=="input*", ATTRS{name}=="Ideapad extra buttons", RUN+="keymap $name 0x42 f23 0x43 f22"
ENV{DMI_VENDOR}=="ASUS*", KERNELS=="input*", ATTRS{name}=="Asus Extra Buttons", ATTR{[dmi/id]product_name}=="W3J", RUN+="keymap $name module-asus-w3j"
ENV{DMI_VENDOR}=="ASUS*", KERNELS=="input*", ATTRS{name}=="Eee PC WMI hotkeys|Asus Laptop Support|Asus*WMI*", RUN+="keymap $name 0x6B f21"
++++++ 0006-keymap-Add-Mio-N890.patch ++++++
>From 0e5ba4e7824566f3cbc33e94776680fab1acc67f Mon Sep 17 00:00:00 2001
From: Martin Pitt <martinpitt(a)gnome.org>
Date: Mon, 14 May 2012 13:06:48 +0200
Subject: [PATCH] keymap: Add Mio N890
https://launchpad.net/bugs/998621
Index: udev-182/src/keymap/95-keyboard-force-release.rules
===================================================================
--- udev-182.orig/src/keymap/95-keyboard-force-release.rules
+++ udev-182/src/keymap/95-keyboard-force-release.rules
@@ -29,6 +29,8 @@ ENV{DMI_VENDOR}=="FOXCONN", ATTR{[dmi/id
ENV{DMI_VENDOR}=="MTC", ATTR{[dmi/id]product_version}=="A0", RUN+="keyboard-force-release.sh $devpath common-volume-keys"
+ENV{DMI_VENDOR}=="Mio Technology", ATTR{[dmi/id]product_name}=="N890", RUN+="keyboard-force-release.sh $devpath common-volume-keys"
+
ENV{DMI_VENDOR}=="PEGATRON CORP.", ATTR{[dmi/id]product_name}=="Spring Peak", RUN+="keyboard-force-release.sh $devpath common-volume-keys"
ENV{DMI_VENDOR}=="TOSHIBA", ATTR{[dmi/id]product_name}=="Satellite [uU]300*|Satellite Pro [uU]300*|Satellite [uU]305*|SATELLITE [uU]500*", RUN+="keyboard-force-release.sh $devpath common-volume-keys"
++++++ 0007-udev-path_id-add-cciss-support.patch ++++++
>From 68acb21d796adf294f2175b525d400bd4ceaef63 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <hare(a)suse.de>
Date: Thu, 10 May 2012 13:18:07 +0200
Subject: [PATCH] udev: path_id - add cciss support
Index: udev-182/src/udev-builtin-path_id.c
===================================================================
--- udev-182.orig/src/udev-builtin-path_id.c
+++ udev-182/src/udev-builtin-path_id.c
@@ -340,6 +340,20 @@ out:
return parent;
}
+static struct udev_device *handle_cciss(struct udev_device *parent, char **path)
+{
+ const char *str;
+ unsigned int controller, disk;
+
+ str = udev_device_get_sysname(parent);
+ if (sscanf(str, "c%ud%u%*s", &controller, &disk) != 2)
+ return NULL;
+
+ path_prepend(path, "cciss-disk%u", disk);
+ parent = skip_subsystem(parent, "cciss");
+ return parent;
+}
+
static void handle_scsi_tape(struct udev_device *dev, char **path)
{
const char *name;
@@ -427,6 +441,8 @@ static int builtin_path_id(struct udev_d
handle_scsi_tape(parent, &path);
} else if (strcmp(subsys, "scsi") == 0) {
parent = handle_scsi(parent, &path);
+ } else if (strcmp(subsys, "cciss") == 0) {
+ parent = handle_cciss(parent, &path);
} else if (strcmp(subsys, "usb") == 0) {
parent = handle_usb(parent, &path);
} else if (strcmp(subsys, "serio") == 0) {
++++++ 0008-udev-path_id-skip-PCI-only-parents-for-block-devices.patch ++++++
>From 7fdd367e6d675d4546074c5dd35bf168d7c17339 Mon Sep 17 00:00:00 2001
From: Kay Sievers <kay(a)vrfy.org>
Date: Mon, 7 May 2012 18:47:58 +0200
Subject: [PATCH] udev: path_id - skip PCI-only-parents for block devices
Index: udev-182/src/udev-builtin-path_id.c
===================================================================
--- udev-182.orig/src/udev-builtin-path_id.c
+++ udev-182/src/udev-builtin-path_id.c
@@ -421,6 +421,7 @@ static int builtin_path_id(struct udev_d
{
struct udev_device *parent;
char *path = NULL;
+ bool some_transport = false;
/* S390 ccw bus */
parent = udev_device_get_parent_with_subsystem_devtype(dev, "ccw", NULL);
@@ -441,10 +442,13 @@ static int builtin_path_id(struct udev_d
handle_scsi_tape(parent, &path);
} else if (strcmp(subsys, "scsi") == 0) {
parent = handle_scsi(parent, &path);
+ some_transport = true;
} else if (strcmp(subsys, "cciss") == 0) {
parent = handle_cciss(parent, &path);
+ some_transport = true;
} else if (strcmp(subsys, "usb") == 0) {
parent = handle_usb(parent, &path);
+ some_transport = true;
} else if (strcmp(subsys, "serio") == 0) {
path_prepend(&path, "serio-%s", udev_device_get_sysnum(parent));
parent = skip_subsystem(parent, "serio");
@@ -467,6 +471,18 @@ static int builtin_path_id(struct udev_d
parent = udev_device_get_parent(parent);
}
+
+ /*
+ * Do not return a single-parent-device-only for block
+ * devices, they might have entire buses behind it which
+ * do not get unique IDs only by using the parent device.
+ */
+ if (!some_transport && (strcmp(udev_device_get_subsystem(dev), "block") == 0)) {
+ free(path);
+ path = NULL;
+ }
+
+
out:
if (path != NULL) {
char tag[UTIL_NAME_SIZE];
++++++ 0009-keymap-Add-HP-Compaq-Presario-CQ.patch ++++++
>From a417efcd33776879befa851bafec9185ef15f53e Mon Sep 17 00:00:00 2001
From: Martin Pitt <martin.pitt(a)ubuntu.com>
Date: Wed, 28 Mar 2012 11:54:00 +0200
Subject: [PATCH] keymap: Add HP Compaq Presario CQ*
https://launchpad.net/bugs/935804
Index: udev-182/src/keymap/95-keymap.rules
===================================================================
--- udev-182.orig/src/keymap/95-keymap.rules
+++ udev-182/src/keymap/95-keymap.rules
@@ -89,6 +89,7 @@ ENV{DMI_VENDOR}=="Hewlett-Packard*", RUN
ENV{DMI_VENDOR}=="Hewlett-Packard*", ATTR{[dmi/id]product_name}=="*[tT][aA][bB][lL][eE][tT]*", RUN+="keymap $name hewlett-packard-tablet"
ENV{DMI_VENDOR}=="Hewlett-Packard*", ATTR{[dmi/id]product_name}=="*[pP][aA][vV][iI][lL][iI][oO][nN]*", RUN+="keymap $name hewlett-packard-pavilion"
ENV{DMI_VENDOR}=="Hewlett-Packard*", ATTR{[dmi/id]product_name}=="*Compaq*|*EliteBook*|*2230s*", RUN+="keymap $name hewlett-packard-compaq_elitebook"
+ENV{DMI_VENDOR}=="Hewlett-Packard*", ATTR{[dmi/id]product_name}=="*Presario*CQ*", RUN+="keymap $name 0xD8 f21 0xD9 f21"
ENV{DMI_VENDOR}=="Hewlett-Packard*", ATTR{[dmi/id]product_name}=="*2510p*|*2530p*|HP G60 Notebook PC", RUN+="keymap $name hewlett-packard-2510p_2530p"
ENV{DMI_VENDOR}=="Hewlett-Packard*", ATTR{[dmi/id]product_name}=="*[tT][xX]2*", RUN+="keymap $name hewlett-packard-tx2"
ENV{DMI_VENDOR}=="Hewlett-Packard", ATTR{[dmi/id]product_name}=="Presario 2100*", RUN+="keymap $name hewlett-packard-presario-2100"
++++++ 0010-keymap-Add-Dell-XPS-force-release-quirk.patch ++++++
>From 84f4fc4215bb6ddaa0b640e731242dd8517a3a79 Mon Sep 17 00:00:00 2001
From: Martin Pitt <martin.pitt(a)ubuntu.com>
Date: Wed, 28 Mar 2012 11:44:19 +0200
Subject: [PATCH] keymap: Add Dell XPS force-release quirk
https://launchpad.net/bugs/910911
Index: udev-182/Makefile.am
===================================================================
--- udev-182.orig/Makefile.am
+++ udev-182/Makefile.am
@@ -585,6 +585,7 @@ dist_udevkeymap_DATA = \
udevkeymapforcereldir = $(libexecdir)/udev/keymaps/force-release
dist_udevkeymapforcerel_DATA = \
src/keymap/force-release-maps/dell-touchpad \
+ src/keymap/force-release-maps/dell-xps \
src/keymap/force-release-maps/hp-other \
src/keymap/force-release-maps/samsung-other \
src/keymap/force-release-maps/common-volume-keys
Index: udev-182/src/keymap/95-keyboard-force-release.rules
===================================================================
--- udev-182.orig/src/keymap/95-keyboard-force-release.rules
+++ udev-182/src/keymap/95-keyboard-force-release.rules
@@ -22,6 +22,7 @@ ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][n
ENV{DMI_VENDOR}=="Dell Inc.", ATTR{[dmi/id]product_name}=="Studio 1557|Studio 1558", RUN+="keyboard-force-release.sh $devpath common-volume-keys"
ENV{DMI_VENDOR}=="Dell Inc.", ATTR{[dmi/id]product_name}=="Latitude E*|Precision M*", RUN+="keyboard-force-release.sh $devpath dell-touchpad"
+ENV{DMI_VENDOR}=="Dell Inc.", ATTR{[dmi/id]product_name}=="XPS*", RUN+="keyboard-force-release.sh $devpath dell-xps"
ENV{DMI_VENDOR}=="FUJITSU SIEMENS", ATTR{[dmi/id]product_name}=="AMILO Si 1848+u|AMILO Xi 2428", RUN+="keyboard-force-release.sh $devpath common-volume-keys"
Index: udev-182/src/keymap/force-release-maps/dell-xps
===================================================================
--- /dev/null
+++ udev-182/src/keymap/force-release-maps/dell-xps
@@ -0,0 +1 @@
+0x8C
++++++ 0011-keymap-Add-support-for-Lenovo-v480-touchpad-toggle-h.patch ++++++
>From a985a8f5477330f79313436a6582154b08192612 Mon Sep 17 00:00:00 2001
From: Ayan George <ayan.george(a)canonical.com>
Date: Wed, 4 Apr 2012 08:38:38 +0200
Subject: [PATCH] keymap: Add support for Lenovo v480 touchpad toggle hotkey.
Index: udev-182/src/keymap/95-keymap.rules
===================================================================
--- udev-182.orig/src/keymap/95-keymap.rules
+++ udev-182/src/keymap/95-keymap.rules
@@ -84,6 +84,7 @@ ENV{DMI_VENDOR}=="LENOVO*", ATTR{[dmi/id
ENV{DMI_VENDOR}=="LENOVO*", ATTR{[dmi/id]product_version}=="*IdeaPad*", RUN+="keymap $name lenovo-ideapad"
ENV{DMI_VENDOR}=="LENOVO*", ATTR{[dmi/id]product_name}=="S10-*", RUN+="keymap $name lenovo-ideapad"
ENV{DMI_VENDOR}=="LENOVO", ATTR{[dmi/id]product_version}=="*IdeaPad Y550*", RUN+="keymap $name 0x95 media 0xA3 play"
+ENV{DMI_VENDOR}=="LENOVO", ATTR{[dmi/id]product_version}=="*Lenovo V480*", RUN+="keymap $name 0xf1 f21"
ENV{DMI_VENDOR}=="Hewlett-Packard*", RUN+="keymap $name hewlett-packard"
ENV{DMI_VENDOR}=="Hewlett-Packard*", ATTR{[dmi/id]product_name}=="*[tT][aA][bB][lL][eE][tT]*", RUN+="keymap $name hewlett-packard-tablet"
++++++ 0012-keymap-Add-Samsung-90X3A.patch ++++++
>From abac5c7976c019be41f187bf97d6acffbe6caa8d Mon Sep 17 00:00:00 2001
From: Vaidas Jablonskis <jablonskis(a)gmail.com>
Date: Wed, 21 Mar 2012 14:51:39 +0100
Subject: [PATCH] keymap: Add Samsung 90X3A
Signed-off-by: Martin Pitt <martin.pitt(a)ubuntu.com>
Index: udev-182/Makefile.am
===================================================================
--- udev-182.orig/Makefile.am
+++ udev-182/Makefile.am
@@ -575,6 +575,7 @@ dist_udevkeymap_DATA = \
src/keymap/keymaps/onkyo \
src/keymap/keymaps/oqo-model2 \
src/keymap/keymaps/samsung-other \
+ src/keymap/keymaps/samsung-90x3a \
src/keymap/keymaps/samsung-sq1us \
src/keymap/keymaps/samsung-sx20s \
src/keymap/keymaps/toshiba-satellite_a100 \
@@ -588,6 +589,7 @@ dist_udevkeymapforcerel_DATA = \
src/keymap/force-release-maps/dell-xps \
src/keymap/force-release-maps/hp-other \
src/keymap/force-release-maps/samsung-other \
+ src/keymap/force-release-maps/samsung-90x3a \
src/keymap/force-release-maps/common-volume-keys
src/keymap/keys.txt: $(INCLUDE_PREFIX)/linux/input.h
Index: udev-182/src/keymap/95-keyboard-force-release.rules
===================================================================
--- udev-182.orig/src/keymap/95-keyboard-force-release.rules
+++ udev-182/src/keymap/95-keyboard-force-release.rules
@@ -19,6 +19,7 @@ DRIVER!="atkbd", GOTO="force_release_end
ENV{DMI_VENDOR}="$attr{[dmi/id]sys_vendor}"
ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", RUN+="keyboard-force-release.sh $devpath samsung-other"
+ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="*90X3A*", RUN+="keyboard-force-release.sh $devpath samsung-90x3a"
ENV{DMI_VENDOR}=="Dell Inc.", ATTR{[dmi/id]product_name}=="Studio 1557|Studio 1558", RUN+="keyboard-force-release.sh $devpath common-volume-keys"
ENV{DMI_VENDOR}=="Dell Inc.", ATTR{[dmi/id]product_name}=="Latitude E*|Precision M*", RUN+="keyboard-force-release.sh $devpath dell-touchpad"
Index: udev-182/src/keymap/95-keymap.rules
===================================================================
--- udev-182.orig/src/keymap/95-keymap.rules
+++ udev-182/src/keymap/95-keymap.rules
@@ -146,6 +146,7 @@ ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][n
ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="*SX20S*", RUN+="keymap $name samsung-sx20s"
ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="SQ1US", RUN+="keymap $name samsung-sq1us"
ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="*700Z*", RUN+="keymap $name 0xBA ejectcd 0x96 keyboardbrightnessup 0x97 keyboardbrightnessdown"
+ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="*90X3A*", RUN+="keymap $name samsung-90x3a"
ENV{DMI_VENDOR}=="TOSHIBA", ATTR{[dmi/id]product_name}=="SATELLITE A100", RUN+="keymap $name toshiba-satellite_a100"
ENV{DMI_VENDOR}=="TOSHIBA", ATTR{[dmi/id]product_name}=="Satellite A110", RUN+="keymap $name toshiba-satellite_a110"
Index: udev-182/src/keymap/force-release-maps/samsung-90x3a
===================================================================
--- /dev/null
+++ udev-182/src/keymap/force-release-maps/samsung-90x3a
@@ -0,0 +1,6 @@
+# list of scancodes (hex or decimal), optional comment
+0xCE # Fn+F8 keyboard backlit up
+0x8D # Fn+F7 keyboard backlit down
+0x97 # Fn+F12 wifi on/off
+0x96 # Fn+F1 performance mode (?)
+0xD5 # Fn+F6 battery life extender
Index: udev-182/src/keymap/keymaps/samsung-90x3a
===================================================================
--- /dev/null
+++ udev-182/src/keymap/keymaps/samsung-90x3a
@@ -0,0 +1,5 @@
+0x96 kbdillumup # Fn+F8 keyboard backlit up
+0x97 kbdillumdown # Fn+F7 keyboard backlit down
+0xD5 wlan # Fn+F12 wifi on/off
+0xCE prog1 # Fn+F1 performance mode
+0x8D prog2 # Fn+F6 battery life extender
++++++ 0013-re-enable-by_path-links-for-ata-devices.patch ++++++
Index: udev-182/src/udev-builtin-path_id.c
===================================================================
--- udev-182.orig/src/udev-builtin-path_id.c
+++ udev-182/src/udev-builtin-path_id.c
@@ -286,6 +286,85 @@ out:
return hostdev;
}
+static struct udev_device *handle_ata(struct udev_device *parent, char **path)
+{
+ struct udev_device *hostdev;
+ int host, bus, target, lun;
+ const char *name;
+ char *base;
+ char *pos;
+ DIR *dir;
+ struct dirent *dent;
+ int basenum, len;
+
+ hostdev = udev_device_get_parent_with_subsystem_devtype(parent, "scsi", "scsi_host");
+ if (hostdev == NULL)
+ return NULL;
+
+ name = udev_device_get_sysname(parent);
+ if (sscanf(name, "%d:%d:%d:%d", &host, &bus, &target, &lun) != 4)
+ return NULL;
+
+ /* rebase ata offset to get the local relative number */
+ basenum = -1;
+ base = strdup(udev_device_get_syspath(hostdev));
+ if (base == NULL)
+ return NULL;
+ pos = strrchr(base, '/');
+ if (pos == NULL) {
+ parent = NULL;
+ goto out;
+ }
+ pos[0] = '\0';
+ len = strlen(base) - 5;
+ if (len <= 0) {
+ parent = NULL;
+ goto out;
+ }
+ base[len] = '\0';
+ dir = opendir(base);
+ if (dir == NULL) {
+ parent = NULL;
+ goto out;
+ }
+ for (dent = readdir(dir); dent != NULL; dent = readdir(dir)) {
+ char *rest;
+ int i;
+
+ if (dent->d_name[0] == '.')
+ continue;
+ if (dent->d_type != DT_DIR && dent->d_type != DT_LNK)
+ continue;
+ if (strncmp(dent->d_name, "ata", 3) != 0)
+ continue;
+ i = strtoul(&dent->d_name[3], &rest, 10);
+
+ /* ata devices start with 1, so decrease by 1 if i is bigger then 0 */
+ if (i > 0)
+ i--;
+ if (rest[0] != '\0')
+ continue;
+ /*
+ * find the smallest number; the host really needs to export its
+ * own instance number per parent device; relying on the global host
+ * enumeration and plainly rebasing the numbers sounds unreliable
+ */
+ if (basenum == -1 || i < basenum)
+ basenum = i;
+ }
+ closedir(dir);
+ if (basenum == -1) {
+ parent = NULL;
+ goto out;
+ }
+ host -= basenum;
+
+ path_prepend(path, "scsi-%u:%u:%u:%u", host, bus, target, lun);
+out:
+ free(base);
+ return hostdev;
+}
+
static struct udev_device *handle_scsi(struct udev_device *parent, char **path)
{
const char *devtype;
@@ -322,16 +401,8 @@ static struct udev_device *handle_scsi(s
goto out;
}
- /*
- * We do not support the ATA transport class, it creates duplicated link
- * names as the fake SCSI host adapters are all separated, they are all
- * re-based as host == 0. ATA should just stop faking two duplicated
- * hierarchies for a single topology and leave the SCSI stuff alone;
- * until that happens, there are no by-path/ links for ATA devices behind
- * an ATA transport class.
- */
if (strstr(name, "/ata") != NULL) {
- parent = NULL;
+ parent = handle_ata(parent, path);
goto out;
}
++++++ 0014-rules-create-by-id-scsi-links-for-ATA-devices.patch ++++++
Index: udev-182/rules/60-persistent-storage.rules
===================================================================
--- udev-182.orig/rules/60-persistent-storage.rules
+++ udev-182/rules/60-persistent-storage.rules
@@ -44,6 +44,10 @@ KERNEL=="cciss*", ENV{DEVTYPE}=="disk",
KERNEL=="sd*|sr*|cciss*", ENV{DEVTYPE}=="disk", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}"
KERNEL=="sd*|cciss*", ENV{DEVTYPE}=="partition", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}-part%n"
+# scsi compat links for ATA devices
+KERNEL=="sd*[!0-9]", ENV{ID_BUS}=="ata", PROGRAM="scsi_id --whitelisted --replace-whitespace -p0x80 -d $devnode", RESULT=="?*", ENV{ID_SCSI_COMPAT}="$result", SYMLINK+="disk/by-id/scsi-$env{ID_SCSI_COMPAT}"
+KERNEL=="sd*[0-9]", ENV{ID_SCSI_COMPAT}=="?*", SYMLINK+="disk/by-id/scsi-$env{ID_SCSI_COMPAT}-part%n"
+
# firewire
KERNEL=="sd*[!0-9]|sr*", ATTRS{ieee1394_id}=="?*", SYMLINK+="disk/by-id/ieee1394-$attr{ieee1394_id}"
KERNEL=="sd*[0-9]", ATTRS{ieee1394_id}=="?*", SYMLINK+="disk/by-id/ieee1394-$attr{ieee1394_id}-part%n"
++++++ 0015-udev-secure-getenv.patch ++++++
Index: udev-182/src/libudev.c
===================================================================
--- udev-182.orig/src/libudev.c
+++ udev-182/src/libudev.c
@@ -135,7 +135,7 @@ UDEV_EXPORT struct udev *udev_new(void)
udev_list_init(udev, &udev->properties_list, true);
/* custom config file */
- env = getenv("UDEV_CONFIG_FILE");
+ env = __secure_getenv("UDEV_CONFIG_FILE");
if (env != NULL) {
if (set_value(&config_file, env) == NULL)
goto err;
@@ -237,7 +237,7 @@ UDEV_EXPORT struct udev *udev_new(void)
}
/* environment overrides config */
- env = getenv("UDEV_LOG");
+ env = __secure_getenv("UDEV_LOG");
if (env != NULL)
udev_set_log_priority(udev, util_log_priority(env));
++++++ 0016-udev-ata_id-fixup-all-8-not-only-6-bytes-of-the-fw_revision.patch ++++++
>From daa9cf546ce7265645ced9592dd54c6b2fc04302 Mon Sep 17 00:00:00 2001
From: Kay Sievers <kay(a)vrfy.org>
Date: Thu, 5 Jul 2012 16:53:08 +0200
Subject: [PATCH] udev: ata_id - fixup all 8 not only 6 bytes of the fw_rev
string
The last two digits are in the wrong order:
$ hdparm -I /dev/sda | grep Revision
4PC10362
$ /lib/udev/ata_id -x /dev/sda | grep REVISION
4PC10326
Index: udev-182/src/ata_id/ata_id.c
===================================================================
--- udev-182.orig/src/ata_id/ata_id.c
+++ udev-182/src/ata_id/ata_id.c
@@ -511,7 +511,7 @@ int main(int argc, char *argv[])
* use and copy it into the hd_driveid struct for convenience
*/
disk_identify_fixup_string (identify, 10, 20); /* serial */
- disk_identify_fixup_string (identify, 23, 6); /* fwrev */
+ disk_identify_fixup_string (identify, 23, 8); /* fwrev */
disk_identify_fixup_string (identify, 27, 40); /* model */
disk_identify_fixup_uint16 (identify, 0); /* configuration */
disk_identify_fixup_uint16 (identify, 75); /* queue depth */
++++++ 0017-udev-add-some-O_CLOEXEC.patch ++++++
>From 47ef94ac5f39db6c5c18be10afe32397a0a8d5cc Mon Sep 17 00:00:00 2001
From: Kay Sievers <kay(a)vrfy.org>
Date: Thu, 5 Jul 2012 17:33:24 +0200
Subject: [PATCH] udev: add some O_CLOEXEC
Index: udev-182/src/cdrom_id/cdrom_id.c
===================================================================
--- udev-182.orig/src/cdrom_id/cdrom_id.c
+++ udev-182/src/cdrom_id/cdrom_id.c
@@ -125,7 +125,7 @@ static bool is_mounted(const char *devic
if (stat(device, &statbuf) < 0)
return -ENODEV;
- fp = fopen("/proc/self/mountinfo", "r");
+ fp = fopen("/proc/self/mountinfo", "re");
if (fp == NULL)
return -ENOSYS;
while (fscanf(fp, "%*s %*s %i:%i %*[^\n]", &maj, &min) == 2) {
Index: udev-182/src/keymap/keymap.c
===================================================================
--- udev-182.orig/src/keymap/keymap.c
+++ udev-182/src/keymap/keymap.c
@@ -409,7 +409,7 @@ int main(int argc, char **argv)
const char *filearg = argv[optind+1];
if (strchr(filearg, '/')) {
/* Keymap file argument is a path */
- FILE *f = fopen(filearg, "r");
+ FILE *f = fopen(filearg, "re");
if (f)
merge_table(fd, f);
else
@@ -419,12 +419,12 @@ int main(int argc, char **argv)
/* Open override file if present, otherwise default file */
char keymap_path[PATH_MAX];
snprintf(keymap_path, sizeof(keymap_path), "%s%s", SYSCONFDIR "/udev/keymaps/", filearg);
- FILE *f = fopen(keymap_path, "r");
+ FILE *f = fopen(keymap_path, "re");
if (f) {
merge_table(fd, f);
} else {
snprintf(keymap_path, sizeof(keymap_path), "%s%s", PKGLIBEXECDIR "/keymaps/", filearg);
- f = fopen(keymap_path, "r");
+ f = fopen(keymap_path, "re");
if (f)
merge_table(fd, f);
else
Index: udev-182/src/libudev-queue-private.c
===================================================================
--- udev-182.orig/src/libudev-queue-private.c
+++ udev-182/src/libudev-queue-private.c
@@ -223,7 +223,7 @@ static int rebuild_queue_file(struct ude
/* create new queue file */
util_strscpyl(filename_tmp, sizeof(filename_tmp), udev_get_run_path(udev_queue_export->udev), "/queue.tmp", NULL);
- new_queue_file = fopen(filename_tmp, "w+");
+ new_queue_file = fopen(filename_tmp, "w+e");
if (new_queue_file == NULL)
goto error;
seqnum = udev_queue_export->seqnum_max;
Index: udev-182/src/udev-event.c
===================================================================
--- udev-182.orig/src/udev-event.c
+++ udev-182/src/udev-event.c
@@ -789,7 +789,7 @@ static void rename_netif_kernel_log(stru
int klog;
FILE *f;
- klog = open("/dev/kmsg", O_WRONLY);
+ klog = open("/dev/kmsg", O_WRONLY|O_CLOEXEC);
if (klog < 0)
return;
Index: udev-182/src/udev-rules.c
===================================================================
--- udev-182.orig/src/udev-rules.c
+++ udev-182/src/udev-rules.c
@@ -749,7 +749,7 @@ static int import_file_into_properties(s
FILE *f;
char line[UTIL_LINE_SIZE];
- f = fopen(filename, "r");
+ f = fopen(filename, "re");
if (f == NULL)
return -1;
while (fgets(line, sizeof(line), f) != NULL)
@@ -1641,7 +1641,7 @@ static int parse_file(struct udev_rules
info(rules->udev, "reading '%s' as rules file\n", filename);
- f = fopen(filename, "r");
+ f = fopen(filename, "re");
if (f == NULL)
return -1;
@@ -2350,7 +2350,7 @@ int udev_rules_apply_to_event(struct ude
FILE *f;
bool imported = false;
- f = fopen("/proc/cmdline", "r");
+ f = fopen("/proc/cmdline", "re");
if (f != NULL) {
char cmdline[4096];
@@ -2639,7 +2639,7 @@ int udev_rules_apply_to_event(struct ude
info(event->udev, "ATTR '%s' writing '%s' %s:%u\n", attr, value,
&rules->buf[rule->rule.filename_off],
rule->rule.filename_line);
- f = fopen(attr, "w");
+ f = fopen(attr, "we");
if (f != NULL) {
if (fprintf(f, "%s", value) <= 0)
err(event->udev, "error writing ATTR{%s}: %m\n", attr);
Index: udev-182/src/udevd.c
===================================================================
--- udev-182.orig/src/udevd.c
+++ udev-182/src/udevd.c
@@ -838,7 +838,7 @@ static void static_dev_create_from_modul
uname(&kernel);
util_strscpyl(modules, sizeof(modules), "/lib/modules/", kernel.release, "/modules.devname", NULL);
- f = fopen(modules, "r");
+ f = fopen(modules, "re");
if (f == NULL)
return;
@@ -1016,7 +1016,7 @@ static int mem_size_mb(void)
char buf[4096];
long int memsize = -1;
- f = fopen("/proc/meminfo", "r");
+ f = fopen("/proc/meminfo", "re");
if (f == NULL)
return -1;
@@ -1054,7 +1054,7 @@ static int convert_db(struct udev *udev)
if (access(filename, F_OK) < 0)
return 0;
- f = fopen("/dev/kmsg", "w");
+ f = fopen("/dev/kmsg", "we");
if (f != NULL) {
fprintf(f, "<30>udevd[%u]: converting old udev database\n", getpid());
fclose(f);
@@ -1285,7 +1285,7 @@ int main(int argc, char *argv[])
* udev.children-max=<number of workers> events are fully serialized if set to 1
*
*/
- f = fopen("/proc/cmdline", "r");
+ f = fopen("/proc/cmdline", "re");
if (f != NULL) {
char cmdline[4096];
@@ -1445,7 +1445,7 @@ int main(int argc, char *argv[])
sd_notify(1, "READY=1");
}
- f = fopen("/dev/kmsg", "w");
+ f = fopen("/dev/kmsg", "we");
if (f != NULL) {
fprintf(f, "<30>udevd[%u]: starting version " VERSION "\n", getpid());
fclose(f);
++++++ 0018-udev-static-nodes-fix-default-permissions-if-no-rule.patch ++++++
>From ef8a2bf6484bb0f82248ceb10a55509a93d82c6b Mon Sep 17 00:00:00 2001
From: Kay Sievers <kay(a)vrfy.org>
Date: Mon, 2 Jul 2012 20:44:05 +0200
Subject: [PATCH] udev: static nodes - fix default permissions if no rules is
given
<falconindy> kay: just curious -- it looks like nodes created by udev from
modules.devname all have 000 perms, and there's nothing in udev that attempts
to change this. is it intended?
<falconindy> c--------- 1 root root 10, 223 Jul 1 23:10 uinput
<kay> falconindy: we might miss the default of 0600
<falconindy> seems like it
<kay> falconindy: stuff that has a rule works i guess
<kay> falconindy: i'll add the 0600 now
Index: udev-182/src/udevd.c
===================================================================
--- udev-182.orig/src/udevd.c
+++ udev-182/src/udevd.c
@@ -876,10 +876,11 @@ static void static_dev_create_from_modul
if (sscanf(devno, "%c%u:%u", &type, &maj, &min) != 3)
continue;
+ mode = 0600;
if (type == 'c')
- mode = S_IFCHR;
+ mode |= S_IFCHR;
else if (type == 'b')
- mode = S_IFBLK;
+ mode |= S_IFBLK;
else
continue;
++++++ 0019-udev-path_id-export-path-for-platform-block-devices.patch ++++++
>From 2a3fe9a75951cb085b81569939f6af3ce2eb2b02 Mon Sep 17 00:00:00 2001
From: Kay Sievers <kay(a)vrfy.org>
Date: Fri, 20 Jul 2012 16:01:13 +0200
Subject: [PATCH] udev: path_id - export path for platform block devices
Enrico Scholz <enrico.scholz(a)sigma-chemnitz.de>
>
> E.g. I have a platform with two sdhci controllers with different purposes.
> First slot is an external slot while second one is internal with a
> non-removable card.
>
> When there is a card in the external slot at boot, the non-removable card is
> named 'mmcblk1'; without the external card it is 'mmcblk0'. Vice versa for the
> external card.
https://bugs.freedesktop.org/show_bug.cgi?id=52309
Index: udev-182/src/udev-builtin-path_id.c
===================================================================
--- udev-182.orig/src/udev-builtin-path_id.c
+++ udev-182/src/udev-builtin-path_id.c
@@ -529,6 +529,7 @@ static int builtin_path_id(struct udev_d
} else if (strcmp(subsys, "platform") == 0) {
path_prepend(&path, "platform-%s", udev_device_get_sysname(parent));
parent = skip_subsystem(parent, "platform");
+ some_transport = true;
} else if (strcmp(subsys, "acpi") == 0) {
path_prepend(&path, "acpi-%s", udev_device_get_sysname(parent));
parent = skip_subsystem(parent, "acpi");
++++++ 0020-rules-fix-typo-in-42-usb-hid-pm.rules.patch ++++++
>From 8432ecabacf15d8b0faf455a99980a42a00b4c08 Mon Sep 17 00:00:00 2001
From: Kay Sievers <kay(a)vrfy.org>
Date: Sat, 14 Jul 2012 00:50:49 +0200
Subject: [PATCH] rules: fix typo in 42-usb-hid-pm.rules
<arjan> can you open the 42-usb-hid-pm.rules file
<arjan> and go to line 46
<arjan> and tell me why ATTR{idProduct}="0002" only has one = and not two (e.g. == ) ?
<kay> arjan: yep
<kay> arjan: bug
Index: udev-182/rules/42-usb-hid-pm.rules
===================================================================
--- udev-182.orig/rules/42-usb-hid-pm.rules
+++ udev-182/rules/42-usb-hid-pm.rules
@@ -43,7 +43,7 @@ ACTION=="add", SUBSYSTEM=="usb", ATTR{id
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="04b3", ATTR{idProduct}=="4012", TEST=="power/control", ATTR{power/control}="auto"
# Raritan Computer, Inc KVM.
-ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="14dd", ATTR{idProduct}="0002", TEST=="power/control", ATTR{power/control}="auto"
+ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="14dd", ATTR{idProduct}=="0002", TEST=="power/control", ATTR{power/control}="auto"
# USB HID devices that are internal to the machine should also be safe to autosuspend
++++++ 0021-keymap-Add-Dell-Latitude-force-release-quirk.patch ++++++
>From 94469041d938809048d6e7a8655c23ed84e0b72a Mon Sep 17 00:00:00 2001
From: Rex Tsai <rex.tsai(a)canonical.com>
Date: Wed, 18 Jul 2012 11:47:13 +0200
Subject: [PATCH] keymap: Add Dell Latitude force-release quirk
Signed-off-by: Martin Pitt <martinpitt(a)gnome.org>
Index: udev-182/src/keymap/95-keyboard-force-release.rules
===================================================================
--- udev-182.orig/src/keymap/95-keyboard-force-release.rules
+++ udev-182/src/keymap/95-keyboard-force-release.rules
@@ -22,7 +22,7 @@ ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][n
ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="*90X3A*", RUN+="keyboard-force-release.sh $devpath samsung-90x3a"
ENV{DMI_VENDOR}=="Dell Inc.", ATTR{[dmi/id]product_name}=="Studio 1557|Studio 1558", RUN+="keyboard-force-release.sh $devpath common-volume-keys"
-ENV{DMI_VENDOR}=="Dell Inc.", ATTR{[dmi/id]product_name}=="Latitude E*|Precision M*", RUN+="keyboard-force-release.sh $devpath dell-touchpad"
+ENV{DMI_VENDOR}=="Dell Inc.", ATTR{[dmi/id]product_name}=="Latitude E*|Latitude *U|Precision M*", RUN+="keyboard-force-release.sh $devpath dell-touchpad"
ENV{DMI_VENDOR}=="Dell Inc.", ATTR{[dmi/id]product_name}=="XPS*", RUN+="keyboard-force-release.sh $devpath dell-xps"
ENV{DMI_VENDOR}=="FUJITSU SIEMENS", ATTR{[dmi/id]product_name}=="AMILO Si 1848+u|AMILO Xi 2428", RUN+="keyboard-force-release.sh $devpath common-volume-keys"
++++++ 0022-keymap-Broaden-ThinkPad-X2.-tablet-match-to-also-app.patch ++++++
>From f84b1a8c3aff81c9d80f47943e116e205c884565 Mon Sep 17 00:00:00 2001
From: Terence Honles <terence(a)honles.com>
Date: Mon, 23 Jul 2012 06:32:46 +0200
Subject: [PATCH] keymap: Broaden ThinkPad X2.. tablet match to also apply to
X230
https://bugs.freedesktop.org/show_bug.cgi?id=52371
Index: udev-182/src/keymap/95-keymap.rules
===================================================================
--- udev-182.orig/src/keymap/95-keymap.rules
+++ udev-182/src/keymap/95-keymap.rules
@@ -80,7 +80,7 @@ ENV{DMI_VENDOR}=="Compaq*", ATTR{[dmi/id
ENV{DMI_VENDOR}=="LENOVO*", ATTR{[dmi/id]product_version}=="*3000*", RUN+="keymap $name lenovo-3000"
ENV{DMI_VENDOR}=="LENOVO*", ATTR{[dmi/id]product_version}=="ThinkPad X6*", ATTR{[dmi/id]product_version}=="* Tablet", RUN+="keymap $name lenovo-thinkpad_x6_tablet"
-ENV{DMI_VENDOR}=="LENOVO*", ATTR{[dmi/id]product_version}=="ThinkPad X2[02]* Tablet*", ATTR{[dmi/id]product_version}=="* Tablet", RUN+="keymap $name lenovo-thinkpad_x200_tablet"
+ENV{DMI_VENDOR}=="LENOVO*", ATTR{[dmi/id]product_version}=="ThinkPad X2* Tablet*", ATTR{[dmi/id]product_version}=="* Tablet", RUN+="keymap $name lenovo-thinkpad_x200_tablet"
ENV{DMI_VENDOR}=="LENOVO*", ATTR{[dmi/id]product_version}=="*IdeaPad*", RUN+="keymap $name lenovo-ideapad"
ENV{DMI_VENDOR}=="LENOVO*", ATTR{[dmi/id]product_name}=="S10-*", RUN+="keymap $name lenovo-ideapad"
ENV{DMI_VENDOR}=="LENOVO", ATTR{[dmi/id]product_version}=="*IdeaPad Y550*", RUN+="keymap $name 0x95 media 0xA3 play"
++++++ 0023-udev-fix-rules-timestamp-race.patch ++++++
--- udev-182.orig/src/udev-rules.c.orig 2012-08-01 14:23:16.000000000 +0000
+++ udev-182/src/udev-rules.c 2012-08-01 14:26:48.000000000 +0000
@@ -1754,6 +1754,7 @@ struct udev_rules *udev_rules_new(struct
struct udev_list_entry *file_loop;
struct token end_token;
char **s;
+ unsigned long long *stamp_usec;
rules = calloc(1, sizeof(struct udev_rules));
if (rules == NULL)
@@ -1795,8 +1796,12 @@ struct udev_rules *udev_rules_new(struct
memset(rules->trie_nodes, 0x00, sizeof(struct trie_node));
rules->trie_nodes_cur = 1;
- for (udev_get_rules_path(udev, &s, NULL); *s != NULL; s++)
+ for (udev_get_rules_path(udev, &s, &stamp_usec); *s != NULL; s++, stamp_usec++) {
+ struct stat stats;
+ if (stat(*s, &stats) == 0)
+ *stamp_usec = ts_usec(&stats.st_mtim);
add_matching_files(udev, &file_list, *s, ".rules");
+ }
/* add all filenames to the string buffer */
udev_list_entry_foreach(file_loop, udev_list_get_entry(&file_list)) {
++++++ 0025-keyboard-force-release-Apply-to-all-Fujitso-AMILO-mo.patch ++++++
>From d4c44191b7cd1d7241aed0cc588f79a9276f2fbc Mon Sep 17 00:00:00 2001
From: Martin Pitt <martinpitt(a)gnome.org>
Date: Fri, 3 Aug 2012 13:50:46 +0200
Subject: [PATCH] keyboard-force-release: Apply to all Fujitso AMILO models
https://launchpad.net/bugs/1011323 reports more AMILO models which need this
quirk; enough to assume that all of them need it, and applying it on working
models does not really hurt.
Index: udev-182/src/keymap/95-keyboard-force-release.rules
===================================================================
--- udev-182.orig/src/keymap/95-keyboard-force-release.rules
+++ udev-182/src/keymap/95-keyboard-force-release.rules
@@ -25,7 +25,7 @@ ENV{DMI_VENDOR}=="Dell Inc.", ATTR{[dmi/
ENV{DMI_VENDOR}=="Dell Inc.", ATTR{[dmi/id]product_name}=="Latitude E*|Latitude *U|Precision M*", RUN+="keyboard-force-release.sh $devpath dell-touchpad"
ENV{DMI_VENDOR}=="Dell Inc.", ATTR{[dmi/id]product_name}=="XPS*", RUN+="keyboard-force-release.sh $devpath dell-xps"
-ENV{DMI_VENDOR}=="FUJITSU SIEMENS", ATTR{[dmi/id]product_name}=="AMILO Si 1848+u|AMILO Xi 2428", RUN+="keyboard-force-release.sh $devpath common-volume-keys"
+ENV{DMI_VENDOR}=="FUJITSU SIEMENS", ATTR{[dmi/id]product_name}=="AMILO*", RUN+="keyboard-force-release.sh $devpath common-volume-keys"
ENV{DMI_VENDOR}=="FOXCONN", ATTR{[dmi/id]product_name}=="QBOOK", RUN+="keyboard-force-release.sh $devpath common-volume-keys"
++++++ 0026-udev-netlink-null-rules.patch ++++++
Index: udev-182/src/udevd.c
===================================================================
--- udev-182.orig/src/udevd.c
+++ udev-182/src/udevd.c
@@ -1683,6 +1683,8 @@ int main(int argc, char *argv[])
dev = udev_monitor_receive_device(monitor);
if (dev != NULL) {
udev_device_set_usec_initialized(dev, now_usec());
+ if (rules == NULL)
+ rules = udev_rules_new(udev, resolve_names);
if (event_queue_insert(dev) < 0)
udev_device_unref(dev);
}
++++++ 0027-udev-fix-sg-autoload-regression.patch ++++++
Index: udev-182/rules/80-drivers.rules
===================================================================
--- udev-182.orig/rules/80-drivers.rules
+++ udev-182/rules/80-drivers.rules
@@ -7,6 +7,7 @@ SUBSYSTEM=="tifm", ENV{TIFM_CARD_TYPE}==
SUBSYSTEM=="tifm", ENV{TIFM_CARD_TYPE}=="MS", IMPORT{builtin}="kmod load tifm_ms"
SUBSYSTEM=="memstick", IMPORT{builtin}="kmod load ms_block mspro_block"
SUBSYSTEM=="i2o", IMPORT{builtin}="kmod load i2o_block"
+SUBSYSTEM=="scsi", ENV{DEVTYPE}=="scsi_device", TEST!="[module/sg]", IMPORT{builtin}="kmod load sg"
SUBSYSTEM=="module", KERNEL=="parport_pc", IMPORT{builtin}="kmod load ppdev"
LABEL="drivers_end"
++++++ 0028-udev-re-initialize-builtins-in-the-daemon-process-no.patch ++++++
>From 7781e063e8e9d3e92e4e158e1588b885808cda24 Mon Sep 17 00:00:00 2001
From: Kay Sievers <kay(a)vrfy.org>
Date: Wed, 8 Aug 2012 16:27:11 +0200
Subject: [PATCH] udev: re-initialize builtins in the daemon process, not in
the worker
Index: udev-182/src/udev-builtin-kmod.c
===================================================================
--- udev-182.orig/src/udev-builtin-kmod.c
+++ udev-182/src/udev-builtin-kmod.c
@@ -23,6 +23,7 @@
#include <stdarg.h>
#include <unistd.h>
#include <string.h>
+#include <assert.h>
#include <errno.h>
#include <fcntl.h>
#include <sys/stat.h>
@@ -39,6 +40,8 @@ static int load_module(struct udev *udev
struct kmod_list *l;
int err;
+ assert(ctx);
+
err = kmod_module_new_from_lookup(ctx, alias, &list);
if (err < 0)
return err;
@@ -76,16 +79,6 @@ static int builtin_kmod(struct udev_devi
struct udev *udev = udev_device_get_udev(dev);
int i;
- if (!ctx) {
- ctx = kmod_new(NULL, NULL);
- if (!ctx)
- return -ENOMEM;
-
- info(udev, "load module index\n");
- kmod_set_log_fn(ctx, udev_kmod_log, udev);
- kmod_load_resources(ctx);
- }
-
if (argc < 3 || strcmp(argv[1], "load")) {
err(udev, "expect: %s load <module>\n", argv[0]);
return EXIT_FAILURE;
@@ -99,7 +92,7 @@ static int builtin_kmod(struct udev_devi
return EXIT_SUCCESS;
}
-/* called at udev startup */
+/* called at udev startup and reload */
static int builtin_kmod_init(struct udev *udev)
{
if (ctx)
@@ -126,9 +119,9 @@ static void builtin_kmod_exit(struct ude
static bool builtin_kmod_validate(struct udev *udev)
{
info(udev, "validate module index\n");
- if (kmod_validate_resources(ctx) != KMOD_RESOURCES_OK)
- return true;
- return false;
+ if (!ctx)
+ return false;
+ return (kmod_validate_resources(ctx) != KMOD_RESOURCES_OK);
}
const struct udev_builtin udev_builtin_kmod = {
Index: udev-182/src/udev-builtin.c
===================================================================
--- udev-182.orig/src/udev-builtin.c
+++ udev-182/src/udev-builtin.c
@@ -25,6 +25,8 @@
#include "udev.h"
+static bool initialized;
+
static const struct udev_builtin *builtins[] = {
[UDEV_BUILTIN_BLKID] = &udev_builtin_blkid,
[UDEV_BUILTIN_FIRMWARE] = &udev_builtin_firmware,
@@ -39,7 +41,10 @@ static const struct udev_builtin *builti
int udev_builtin_init(struct udev *udev)
{
unsigned int i;
- int err;
+ int err = 0;
+
+ if (initialized)
+ return 0;
for (i = 0; i < ARRAY_SIZE(builtins); i++) {
if (builtins[i]->init) {
@@ -48,6 +53,8 @@ int udev_builtin_init(struct udev *udev)
break;
}
}
+
+ initialized = true;
return err;
}
@@ -55,9 +62,14 @@ void udev_builtin_exit(struct udev *udev
{
unsigned int i;
+ if (!initialized)
+ return;
+
for (i = 0; i < ARRAY_SIZE(builtins); i++)
if (builtins[i]->exit)
builtins[i]->exit(udev);
+
+ initialized = false;
}
bool udev_builtin_validate(struct udev *udev)
Index: udev-182/src/udevd.c
===================================================================
--- udev-182.orig/src/udevd.c
+++ udev-182/src/udevd.c
@@ -1670,7 +1670,7 @@ int main(int argc, char *argv[])
worker_kill(udev, 0);
rules = udev_rules_unref(rules);
udev_builtin_exit(udev);
- reload = 0;
+ reload = false;
}
/* event has finished */
@@ -1692,6 +1692,7 @@ int main(int argc, char *argv[])
/* start new events */
if (!udev_list_node_is_empty(&event_list) && !udev_exit && !stop_exec_queue) {
+ udev_builtin_init(udev);
if (rules == NULL)
rules = udev_rules_new(udev, resolve_names);
if (rules != NULL)
++++++ baselibs.conf ++++++
libudev0
libgudev-1_0-0
++++++ boot.udev ++++++
#!/bin/sh
#
### BEGIN INIT INFO
# Provides: boot.udev
# Required-Start:
# Required-Stop:
# Should-Start:
# Should-Stop:
# Default-Start: B
# Default-Stop:
# Short-Description: manage /dev and kernel device-events
# Description: udevd daemon to manage /dev and kernel device events
### END INIT INFO
. /etc/rc.status
PATH="/sbin:/bin"
udev_timeout=180
case "$1" in
start)
# create /dev/root symlink with dynamic rule
if [ -x /lib/udev/write_dev_root_rule ]; then
/lib/udev/write_dev_root_rule
fi
# start udevd
echo -n "Starting udevd: "
/sbin/udevd --daemon
if [ $? -ne 0 ]; then
rc_status -v
rc_exit
fi
rc_status -v
# trigger events for all devices
echo -n "Loading drivers, configuring devices: "
/sbin/udevadm trigger --type=subsystems --action=add
/sbin/udevadm trigger --type=devices --action=add
# wait for events to finish
/sbin/udevadm settle --timeout=$udev_timeout
rc_status -v
;;
stop)
echo -n "Stopping udevd: "
killproc /sbin/udevd
rc_status -v
;;
restart)
echo -n "Restarting udevd: "
killproc /sbin/udevd
/sbin/udevd --daemon
rc_status -v
;;
status)
echo -n "Checking for udevd: "
checkproc /sbin/udevd
rc_status -v
;;
reload)
echo -n "Reloading udev rules: "
/sbin/udevadm control --reload-rules
rc_status -v
;;
force-reload)
echo -n "Restarting udev and reconfiguring all devices: "
killproc /sbin/udevd
rm -rf /dev/.udev /dev/disk
root_symlink_rule
/sbin/udevd --daemon
/sbin/udevadm trigger --action=add
/sbin/udevadm settle --timeout=$udev_timeout
rc_status -v
;;
*)
echo "Usage: $0 {start|stop|restart|status|reload|force-reload}"
exit 1
;;
esac
rc_exit
++++++ move-udevd-and-udevadm-back-to-sbin.patch ++++++
diff -ur udev-182.orig/Makefile.am udev-182/Makefile.am
--- udev-182.orig/Makefile.am 2012-04-04 10:41:31.288555169 +0200
+++ udev-182/Makefile.am 2012-04-04 10:43:15.001036099 +0200
@@ -198,11 +198,9 @@
INSTALL_DATA_HOOKS += systemd-install-hook
endif
-bin_PROGRAMS = \
- udevadm
-
-pkglibexec_PROGRAMS = \
- udevd
+sbin_PROGRAMS = \
+ udevd \
+ udevadm
udev_common_sources = \
src/udev.h \
@@ -316,7 +314,7 @@
# ------------------------------------------------------------------------------
ata_id_SOURCES = src/ata_id/ata_id.c
ata_id_LDADD = libudev-private.la
-pkglibexec_PROGRAMS += ata_id
+pkglibexec_PROGRAMS = ata_id
# ------------------------------------------------------------------------------
cdrom_id_SOURCES = src/cdrom_id/cdrom_id.c
diff -ur udev-182.orig/Makefile.in udev-182/Makefile.in
--- udev-182.orig/Makefile.in 2012-04-04 10:41:31.288555169 +0200
+++ udev-182/Makefile.in 2012-04-04 10:45:42.945720696 +0200
@@ -53,8 +53,11 @@
@WITH_SYSTEMD_TRUE@ src/udev-settle.service
@WITH_SYSTEMD_TRUE@am__append_4 = systemd-install-hook
-bin_PROGRAMS = udevadm$(EXEEXT)
-pkglibexec_PROGRAMS = udevd$(EXEEXT) ata_id$(EXEEXT) cdrom_id$(EXEEXT) \
+
+sbin_PROGRAMS = udevadm$(EXEEXT) \
+ udevd$(EXEEXT)
+
+pkglibexec_PROGRAMS = ata_id$(EXEEXT) cdrom_id$(EXEEXT) \
collect$(EXEEXT) scsi_id$(EXEEXT) v4l_id$(EXEEXT) \
accelerometer$(EXEEXT) $(am__EXEEXT_1) $(am__EXEEXT_2) \
$(am__EXEEXT_3)
@@ -241,7 +244,7 @@
@ENABLE_KEYMAP_TRUE@am__EXEEXT_1 = keymap$(EXEEXT)
@ENABLE_MTD_PROBE_TRUE@am__EXEEXT_2 = mtd_probe$(EXEEXT)
@ENABLE_FLOPPY_TRUE@am__EXEEXT_3 = create_floppy_devices$(EXEEXT)
-PROGRAMS = $(bin_PROGRAMS) $(pkglibexec_PROGRAMS)
+PROGRAMS = $(sbin_PROGRAMS) $(pkglibexec_PROGRAMS)
am_accelerometer_OBJECTS = src/accelerometer/accelerometer.$(OBJEXT)
accelerometer_OBJECTS = $(am_accelerometer_OBJECTS)
accelerometer_DEPENDENCIES = libudev-private.la
@@ -1195,10 +1198,10 @@
$(AM_V_CCLD)$(LINK) $(libudev_private_la_OBJECTS) $(libudev_private_la_LIBADD) $(LIBS)
libudev.la: $(libudev_la_OBJECTS) $(libudev_la_DEPENDENCIES) $(EXTRA_libudev_la_DEPENDENCIES)
$(AM_V_CCLD)$(libudev_la_LINK) -rpath $(libdir) $(libudev_la_OBJECTS) $(libudev_la_LIBADD) $(LIBS)
-install-binPROGRAMS: $(bin_PROGRAMS)
+install-sbinPROGRAMS: $(sbin_PROGRAMS)
@$(NORMAL_INSTALL)
test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
- @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+ @list='$(sbin_PROGRAMS)'; test -n "$(bindir)" || list=; \
for p in $$list; do echo "$$p $$p"; done | \
sed 's/$(EXEEXT)$$//' | \
while read p p1; do if test -f $$p || test -f $$p1; \
@@ -1220,9 +1223,9 @@
} \
; done
-uninstall-binPROGRAMS:
+uninstall-sbinPROGRAMS:
@$(NORMAL_UNINSTALL)
- @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+ @list='$(sbin_PROGRAMS)'; test -n "$(bindir)" || list=; \
files=`for p in $$list; do echo "$$p"; done | \
sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
-e 's/$$/$(EXEEXT)/' `; \
@@ -1230,8 +1233,8 @@
echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
cd "$(DESTDIR)$(bindir)" && rm -f $$files
-clean-binPROGRAMS:
- @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \
+clean-sbinPROGRAMS:
+ @list='$(sbin_PROGRAMS)'; test -n "$$list" || exit 0; \
echo " rm -f" $$list; \
rm -f $$list || exit $$?; \
test -n "$(EXEEXT)" || exit 0; \
++++++ udev-root-symlink.systemd ++++++
[Unit]
Description=create /dev/root symlink with dynamic rule
Before=udev.service
DefaultDependencies=no
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/lib/udev/write_dev_root_rule
++++++ udev-rpmlintrc ++++++
addFilter(".*dangling-symlink /lib/udev/devices/std(in|out|err).*")
addFilter(".*dangling-symlink /lib/udev/devices/core.*")
addFilter(".*dangling-symlink /lib/udev/devices/fd.*")
addFilter(".init-script-without-%stop_on_removal-preun*.*")
addFilter(".*devel-file-in-non-devel-package.*udev.pc.*")
addFilter(".*libgudev-.*shlib-fixed-dependency.*")
++++++ write_dev_root_rule ++++++
#!/bin/sh
eval $(/sbin/udevadm info --export --export-prefix=ROOT_ --device-id-of-file=/)
[ "$ROOT_MAJOR" -gt 0 ] || return
mkdir -m 0755 -p /run/udev/rules.d >/dev/null 2>&1
ln -sf /run/udev /dev/.udev 2>/dev/null || :
echo "ACTION==\"add|change\", SUBSYSTEM==\"block\", \
ENV{MAJOR}==\"$ROOT_MAJOR\", ENV{MINOR}==\"$ROOT_MINOR\", \
SYMLINK+=\"root\"" > /run/udev/rules.d/10-root-symlink.rules
exit 0
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package udev for openSUSE:12.1:Update checked in at 2012-09-28 15:01:50
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:12.1:Update/udev (Old)
and /work/SRC/openSUSE:12.1:Update/.udev.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "udev", Maintainer is "RMilasan(a)suse.com"
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _link ++++++
--- /var/tmp/diff_new_pack.pf3R8h/_old 2012-09-28 15:01:51.000000000 +0200
+++ /var/tmp/diff_new_pack.pf3R8h/_new 2012-09-28 15:01:51.000000000 +0200
@@ -1 +1 @@
-<link package='udev.437' cicount='copy' />
+<link package='udev.935' cicount='copy' />
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package udev.935 for openSUSE:12.1:Update checked in at 2012-09-28 15:01:47
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:12.1:Update/udev.935 (Old)
and /work/SRC/openSUSE:12.1:Update/.udev.935.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "udev.935", Maintainer is ""
Changes:
--------
New Changes file:
--- /dev/null 2012-08-23 02:41:28.555381587 +0200
+++ /work/SRC/openSUSE:12.1:Update/.udev.935.new/udev.changes 2012-09-28 15:01:49.000000000 +0200
@@ -0,0 +1,2508 @@
+-------------------------------------------------------------------
+Wed Sep 19 07:55:40 UTC 2012 - rmilasan(a)suse.com
+
+- create /dev/root symlink with dynamic rule for systemd (bnc#776882).
+- add update of initrd image file in %post and %postun.
+
+-------------------------------------------------------------------
+Mon Apr 2 13:43:42 UTC 2012 - rmilasan(a)suse.com
+
+- Prevent segfault on slow clocks (bnc#738604)
+ added: prevent-segfault-in-slow-clocks.patch
+
+-------------------------------------------------------------------
+Tue Nov 8 15:27:02 UTC 2011 - coolo(a)suse.com
+
+- Added upstream patch to avoid deadlocks, bnc#722858
+
+-------------------------------------------------------------------
+Mon Oct 17 21:19:24 UTC 2011 - gregkh(a)suse.com
+
+- fix issue with missmatched versions of libudev and udev installed at
+ the same time. This recently hit openSUSE:Tumbleweed in a bad way.
+
+-------------------------------------------------------------------
+Sat Sep 17 17:46:34 UTC 2011 - tittiatcoke(a)gmail.com
+
+- Added upstream patch to make bluetooth hid devices working again
+ with Xorg. This patch restores the ID_INPUT=1 and
+ ID_INPUT_{KEY,MOUSE}=1 properties Xorg relies on these properties
+ for cold- and hotplugging of input devices. (bnc#716892)
+
+-------------------------------------------------------------------
+Thu Aug 25 16:12:25 UTC 2011 - fcrozat(a)suse.com
+
+- version 173
+ * enable udev-acl extra (we haven't switched to systemd only)
+ * On systemd systems, udev-acl rules prevent it from running,
+ functionnality has been moved to systemd.
+
+-------------------------------------------------------------------
+Thu Jul 14 07:16:36 UTC 2011 - aj(a)suse.de
+
+- version 172
+ * udev now enables kernel media-presence polling if available.
+ * Libudev enumerate is now able to enumerate a subtree of a given
+ device.
+
+-------------------------------------------------------------------
+Fri May 27 01:46:53 CEST 2011 - kay.sievers(a)novell.com
+
+- version 171
+ - systemd: run udev.service and udev-trigger.service in
+ parallel
+ - path_id: allow to be asked about usb_devices not only
+ usb_interfaces
+ - rules: support substitutions in TAG=
+ - libudev: enumerate - do not ignore other matches when
+ add_match_tag() is used
+ - rules: implement TAGS== match
+ - configure: allow usb.ids location to be specified
+
+-------------------------------------------------------------------
+Thu May 19 23:16:54 CEST 2011 - kay.sievers(a)novell.com
+
+- version 170
+ - fix control message handling which could lead to a failing
+ udevadm control --exit
+
+-------------------------------------------------------------------
+Wed May 18 18:40:32 CEST 2011 - kay.sievers(a)novell.com
+
+- version 169
+ - hid2hci is no longer part of udev, it moved to bluez
+ - mobile-action-modeswitch is disabled, it moved
+ to usb_modeswitch
+ - edd_id is disabled, it depends on disk signatures that
+ might be removed
+ - the event timeout is 60 seconds now
+
+-------------------------------------------------------------------
+Tue Apr 26 21:26:48 CEST 2011 - kay.sievers(a)novell.com
+
+- the udev package is GPLV2+, only libudev is LGPLv2.1+
+
+-------------------------------------------------------------------
+Fri Apr 22 19:00:52 CEST 2011 - kay.sievers(a)novell.com
+
+- version 168
+ - systemd: Reqires= -> Wants=udev.socket
+ - path_id: rework SAS device handling
+ - udevd: rules files - accept empty or /dev/null links
+ - udevd: always use udevd[] log prefix
+ - udevd: netif rename - use ifindex for temporary name
+ - rule-generator: net - ignore Hyper-V virtual interfaces
+ - udevd: get netlink socket from systemd
+ - udevd: log warning if /run is not writable
+ - Avoid spinning up CD on pressing eject button
+ - Run ata_id on non-removable USB devices
+ - systemd: bind udev control socket with systemd
+ - cdrom_id: don't ignore profiles when there is no media
+ - use /run/udev/ if available, fall back to /dev/.udev/
+ - convert old udev database format at udevd startup
+ - udev-acl: add /dev/sgX nodes
+ - remove video4linux1 support (dropped from kernel)
+- drop udev_retry init script (no longer supported)
+- systemd: call daemon-reload where neccessary
+- systemd: start and stop service with systemctl
+- conflict with old mkinitrd version (we need /run)
+- conflict with aaa_base < 11.5
+- conflict with filesystem < 11.5
+- conflict with systemd < 25
+
+-------------------------------------------------------------------
+Sat Feb 12 12:33:10 UTC 2011 - sndirsch(a)novell.com
+
+- removed 79-kms.rules (bnc #609607, comment #42)
+
+-------------------------------------------------------------------
+Thu Feb 10 09:02:58 CET 2011 - kay.sievers(a)novell.com
+
+- version 166
+ - updated keymaps
+ - add qemu usb autosuspend rules
+
+-------------------------------------------------------------------
+Thu Dec 16 13:22:29 CET 2010 - kay.sievers(a)novell.com
+
+- version 165
+ - the database format changed
+ the old format is converted to the new one during update
+ - libudev supports:
+ udev_device_get_is_initialized()
+ udev_enumerate_add_match_is_initialized()
+ - Gudev supports GUdevEnumerator, TAG and timestamps
+
+-------------------------------------------------------------------
+Thu Nov 11 10:09:07 UTC 2010 - coolo(a)novell.com
+
+- own parent dirs for systemd files
+
+-------------------------------------------------------------------
+Sat Oct 23 15:32:13 CEST 2010 - kay.sievers(a)novell.com
+
+- version 164
+ - GUdev moved from /usr to /
+ - cdrom_id fixes
+ - new keymaps
+
+-------------------------------------------------------------------
+Thu Oct 7 15:11:23 CEST 2010 - kay.sievers(a)novell.com
+
+- version 163
+ - cdrom bug fixes
+ - scsi_id ID_TARGET_PORT= export
+ - updated systemd integration
+
+-------------------------------------------------------------------
+Fri Sep 3 13:23:30 CEST 2010 - kay.sievers(a)novell.com
+
+- version 162
+ - cdrom_id bug fixes for DVD media
+ - unconditionally enable udev on systemd bootups
+ - new/updated keymaps
+ - do not create persistent network rules in qemu/kvm
+
+-------------------------------------------------------------------
+Wed Aug 11 15:45:01 CEST 2010 - kay.sievers(a)novell.com
+
+- version 161
+ - fixed device rename dabase file handling
+ - fixed keymaps
+ - improved cdrom_id
+
+-------------------------------------------------------------------
+Sat Jul 24 10:12:46 CEST 2010 - kay.sievers(a)novell.com
+
+- update systemd service installation
+
+-------------------------------------------------------------------
+Wed Jul 14 00:48:53 CEST 2010 - kay.sievers(a)novell.com
+
+- drop systemd-units
+
+-------------------------------------------------------------------
+Wed Jul 14 00:10:12 CEST 2010 - kay.sievers(a)novell.com
+
+- conflict with systemd < 3
+
+-------------------------------------------------------------------
+Mon Jul 12 10:39:54 CEST 2010 - kay.sievers(a)novell.com
+
+- disable boot.udev_retry init script
+
+-------------------------------------------------------------------
+Mon Jul 12 00:01:59 CEST 2010 - kay.sievers(a)novell.com
+
+- Update to version 160
++++ 2311 more lines (skipped)
++++ between /dev/null
++++ and /work/SRC/openSUSE:12.1:Update/.udev.935.new/udev.changes
New:
----
baselibs.conf
boot.udev
prevent-segfault-in-slow-clocks.patch
udev-173.tar.bz2
udev-root-symlink.systemd
udev-rpmlintrc
udev.changes
udev.git-617746e09795575c6258dd075ee7f0a44ce61e1e.patch
udev.git-7944a13a2b8516d5fa354703789f5988cb4299b6.patch
udev.spec
write_dev_root_rule
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ udev.spec ++++++
#
# spec file for package udev
#
# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
Name: udev
Url: http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html
Version: 173
Release: 0
Summary: A rule-based device node and kernel event manager
License: GPL-2.0+
Group: System/Kernel
PreReq: /bin/pidof /bin/rm /usr/bin/stat %insserv_prereq %fillup_prereq /usr/sbin/groupadd /usr/bin/getent /sbin/mkinitrd
Conflicts: systemd < 28
Conflicts: aaa_base < 11.5
Conflicts: filesystem < 11.5
Conflicts: mkinitrd < 2.7.0
Conflicts: util-linux < 2.16
Conflicts: ConsoleKit < 0.4.1
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: glib2-devel
BuildRequires: gobject-introspection-devel
BuildRequires: gperf
BuildRequires: libacl-devel
BuildRequires: libselinux-devel
BuildRequires: libsepol-devel
BuildRequires: libusb-devel
BuildRequires: pciutils-ids
BuildRequires: pkg-config
BuildRequires: usbutils
Source0: ftp://ftp.kernel.org/pub/linux/utils/kernel/hotplug/%{name}-%{version}.tar.…
Source1: udev-rpmlintrc
Source2: baselibs.conf
Source60: boot.udev
Source61: write_dev_root_rule
Source62: udev-root-symlink.systemd
#Patch from upstream to make bluetooth input devices working again.
Patch1: udev.git-617746e09795575c6258dd075ee7f0a44ce61e1e.patch
#PATCH-FIX-UPSTREAM bnc#722858
Patch2: udev.git-7944a13a2b8516d5fa354703789f5988cb4299b6.patch
#PATCH-FIX-UPSTREAM bnc#738604
Patch3: prevent-segfault-in-slow-clocks.patch
# Upstream First - Policy:
# Never add any patches to this package without the upstream commit id
# in the patch. Any patches added here without a very good reason to make
# an exception will be silently removed with the next version update.
%description
Udev creates and removes device nodes in /dev for devices discovered or
removed from the system. It receives events via kernel netlink messages
and dispatches them according to rules in /lib/udev/rules.d/. Matching
rules may name a device node, create additional symlinks to the node,
call tools to initialize a device, or load needed kernel modules.
%package -n libudev0
Summary: Dynamic library to access udev device information
License: LGPL-2.1+
Group: System/Libraries
Requires: udev = %{version}-%{release}
%description -n libudev0
This package contains the dynamic library libudev, which provides
access to udev device information
%package -n libudev-devel
Summary: Development files for libudev
License: LGPL-2.1+
Group: Development/Libraries/Other
Requires: libudev0 = %{version}-%{release}
%description -n libudev-devel
This package contains the development files for the library libudev, a
dynamic library, which provides access to udev device information.
%package -n libgudev-1_0-0
Summary: GObject library, to access udev device information
License: LGPL-2.1+
Group: System/Libraries
Requires: libudev0 = %{version}-%{release}
%description -n libgudev-1_0-0
This package contains the GObject library libgudev, which provides
access to udev device information.
%package -n libgudev-1_0-devel
Summary: Devel package for libgudev
License: LGPL-2.1+
Group: Development/Libraries/Other
Requires: glib2-devel
Requires: libgudev-1_0-0 = %{version}-%{release}
Requires: libudev-devel = %{version}-%{release}
%description -n libgudev-1_0-devel
This is the devel package for the GObject library libgudev, which
provides GObject access to udev device information.
%prep
%setup -q
%patch1 -p1
%patch2 -p1
%patch3 -p1
%build
# prevent man pages from re-building (xmlto)
find . -name "*.[1-8]" -exec touch '{}' \;
export V=1
%configure \
--sysconfdir=%{_sysconfdir} \
--sbindir=/sbin \
--with-rootlibdir=/%{_lib} \
--libexecdir=/lib/udev \
--docdir=%{_docdir}/udev \
--with-selinux \
--with-systemdsystemunitdir=/lib/systemd/system \
--enable-floppy \
--enable-udev_acl \
CFLAGS="$RPM_OPT_FLAGS"
make %{?_smp_mflags}
%install
make DESTDIR=$RPM_BUILD_ROOT install
rm -f $RPM_BUILD_ROOT/%{_libdir}/libudev.la
rm -f $RPM_BUILD_ROOT/%{_libdir}/libgudev-1.0.la
cp -ax README $RPM_BUILD_ROOT%{_docdir}/udev
%ifarch ppc ppc64
cp rules/arch/40-ppc.rules $RPM_BUILD_ROOT/lib/udev/rules.d/
%endif
%ifarch ia64
cp rules/arch/40-ia64.rules $RPM_BUILD_ROOT/lib/udev/rules.d/
%endif
%ifarch s390 s390x
cp rules/arch/40-s390.rules $RPM_BUILD_ROOT/lib/udev/rules.d/
%endif
install -m755 -D %{S:60} $RPM_BUILD_ROOT/etc/init.d/boot.udev
install -m755 -D %{S:61} $RPM_BUILD_ROOT/lib/udev/write_dev_root_rule
install -m644 -D %{S:62} $RPM_BUILD_ROOT/lib/systemd/system/udev-root-symlink.service
mkdir -p $RPM_BUILD_ROOT/lib/systemd/system/basic.target.wants
ln -sf ../udev-root-symlink.service $RPM_BUILD_ROOT/lib/systemd/system/basic.target.wants
%pre
/usr/bin/getent group tape > /dev/null 2>&1 || /usr/sbin/groupadd -r tape 2> /dev/null
# stop daemon if we are not in a chroot
if test -f /proc/1/exe -a -d /proc/1/root; then
if test "$(stat -Lc '%%D-%%i' /)" = "$(stat -Lc '%%D-%%i' /proc/1/root)"; then
/bin/systemctl stop udev-control.socket udev-kernel.service >/dev/null 2>&1 || :
/sbin/udevadm control --exit >/dev/null 2>&1 || :
fi
fi
%post
%{fillup_and_insserv -Y boot.udev}
# add KERNEL name match to existing persistent net rules
sed -ri '/KERNEL/ ! { s/NAME="(eth|wlan|ath)([0-9]+)"/KERNEL=="\1*", NAME="\1\2"/}' \
/etc/udev/rules.d/70-persistent-net.rules >/dev/null 2>&1 || :
# cleanup old stuff
rm -f /etc/sysconfig/udev
rm -f /etc/udev/rules.d/20-cdrom.rules
rm -f /etc/udev/rules.d/55-cdrom.rules
rm -f /etc/udev/rules.d/65-cdrom.rules
/bin/systemctl daemon-reload >/dev/null 2>&1 || :
# start daemon if we are not in a chroot
if test -f /proc/1/exe -a -d /proc/1/root; then
if test "$(stat -Lc '%%D-%%i' /)" = "$(stat -Lc '%%D-%%i' /proc/1/root)"; then
/bin/systemctl start udev.service >/dev/null 2>&1 || :
/sbin/udevd --daemon >/dev/null 2>&1 || :
fi
fi
[ -x /sbin/mkinitrd_setup ] && /sbin/mkinitrd_setup
if [ -e /var/lib/no_initrd_recreation_by_suspend ]; then
echo "Skipping recreation of existing initial ramdisks, due"
echo "to presence of /var/lib/no_initrd_recreation_by_suspend"
elif [ -x /sbin/mkinitrd ]; then
/sbin/mkinitrd
fi
%postun
%insserv_cleanup
/bin/systemctl daemon-reload >/dev/null 2>&1 || :
[ -x /sbin/mkinitrd_setup ] && /sbin/mkinitrd_setup
if [ -e /var/lib/no_initrd_recreation_by_suspend ]; then
echo "Skipping recreation of existing initial ramdisks, due"
echo "to presence of /var/lib/no_initrd_recreation_by_suspend"
elif [ -x /sbin/mkinitrd ]; then
/sbin/mkinitrd
fi
%post -n libudev0 -p /sbin/ldconfig
%postun -n libudev0 -p /sbin/ldconfig
%post -n libgudev-1_0-0 -p /sbin/ldconfig
%postun -n libgudev-1_0-0 -p /sbin/ldconfig
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(-,root,root)
/sbin/udevd
/sbin/udevadm
%dir /lib/udev/
/lib/udev/*
%dir /lib/udev/keymaps
/lib/udev/keymaps/*
/lib/udev/keyboard-force-release.sh
%dir /lib/udev/rules.d/
/lib/udev/rules.d/*.rules
%{_sysconfdir}/init.d/boot.udev
%dir %{_sysconfdir}/udev/
%dir %{_sysconfdir}/udev/rules.d/
%config(noreplace) %{_sysconfdir}/udev/udev.conf
%dir %{_prefix}/lib/ConsoleKit
%dir %{_prefix}/lib/ConsoleKit/run-seat.d
%{_prefix}/lib/ConsoleKit/run-seat.d/udev-acl.ck
%{_mandir}/man?/*.[0-9]*
%{_datadir}/pkgconfig/udev.pc
%doc %{_docdir}/udev
%dir /lib/udev/devices/
%dir /lib/systemd/system
/lib/systemd/system/udev*.service
/lib/systemd/system/udev*.socket
%dir /lib/systemd/system/basic.target.wants
/lib/systemd/system/basic.target.wants/udev*.service
%dir /lib/systemd/system/sockets.target.wants
/lib/systemd/system/sockets.target.wants/udev*.socket
%files -n libudev0
%defattr(-,root,root)
/%{_lib}/libudev.so.*
%files -n libudev-devel
%defattr(-,root,root)
%{_includedir}/libudev.h
%{_libdir}/libudev.so
%{_libdir}/pkgconfig/libudev.pc
%dir %{_datadir}/gtk-doc
%dir %{_datadir}/gtk-doc/html
%dir %{_datadir}/gtk-doc/html/libudev
%{_datadir}/gtk-doc/html/libudev/*
%files -n libgudev-1_0-0
%defattr(-,root,root)
/%{_lib}/libgudev-1.0.so.*
%{_libdir}/girepository-1.0/GUdev-1.0.typelib
%files -n libgudev-1_0-devel
%defattr(-,root,root)
%dir %{_includedir}/gudev-1.0
%dir %{_includedir}/gudev-1.0/gudev
%{_includedir}/gudev-1.0/gudev/*.h
%{_libdir}/libgudev-1.0.so
%{_libdir}/pkgconfig/gudev-1.0.pc
%dir %{_datadir}/gtk-doc
%dir %{_datadir}/gtk-doc/html
%dir %{_datadir}/gtk-doc/html/gudev
%{_datadir}/gtk-doc/html/gudev/*
%{_datadir}/gir-1.0/GUdev-1.0.gir
%changelog
++++++ baselibs.conf ++++++
libudev0
libgudev-1_0-0
++++++ boot.udev ++++++
#!/bin/sh
#
### BEGIN INIT INFO
# Provides: boot.udev
# Required-Start:
# Required-Stop:
# Should-Start:
# Should-Stop:
# Default-Start: B
# Default-Stop:
# Short-Description: manage /dev and kernel device-events
# Description: udevd daemon to manage /dev and kernel device events
### END INIT INFO
. /etc/rc.status
PATH="/sbin:/bin"
udev_timeout=180
case "$1" in
start)
# create /dev/root symlink with dynamic rule
if [ -x /lib/udev/write_dev_root_rule ]; then
/lib/udev/write_dev_root_rule
fi
# start udevd
echo -n "Starting udevd: "
/sbin/udevd --daemon
if [ $? -ne 0 ]; then
rc_status -v
rc_exit
fi
rc_status -v
# trigger events for all devices
echo -n "Loading drivers, configuring devices: "
/sbin/udevadm trigger --type=subsystems --action=add
/sbin/udevadm trigger --type=devices --action=add
# wait for events to finish
/sbin/udevadm settle --timeout=$udev_timeout
rc_status -v
;;
stop)
echo -n "Stopping udevd: "
killproc /sbin/udevd
rc_status -v
;;
restart)
echo -n "Restarting udevd: "
killproc /sbin/udevd
/sbin/udevd --daemon
rc_status -v
;;
status)
echo -n "Checking for udevd: "
checkproc /sbin/udevd
rc_status -v
;;
reload)
echo -n "Reloading udev rules: "
/sbin/udevadm control --reload-rules
rc_status -v
;;
force-reload)
echo -n "Restarting udev and reconfiguring all devices: "
killproc /sbin/udevd
rm -rf /dev/.udev /dev/disk
root_symlink_rule
/sbin/udevd --daemon
/sbin/udevadm trigger --action=add
/sbin/udevadm settle --timeout=$udev_timeout
rc_status -v
;;
*)
echo "Usage: $0 {start|stop|restart|status|reload|force-reload}"
exit 1
;;
esac
rc_exit
++++++ prevent-segfault-in-slow-clocks.patch ++++++
Index: udev-173/udev/udevd.c
===================================================================
--- udev-173.orig/udev/udevd.c
+++ udev-173/udev/udevd.c
@@ -624,9 +624,12 @@ static void worker_returned(int fd_worke
continue;
/* worker returned */
- worker->event->exitcode = msg.exitcode;
- event_queue_delete(worker->event, true);
- worker->event = NULL;
+ /* is some cases this can cause segfault */
+ if (worker->event) {
+ worker->event->exitcode = msg.exitcode;
+ event_queue_delete(worker->event, true);
+ worker->event = NULL;
+ }
if (worker->state != WORKER_KILLED)
worker->state = WORKER_IDLE;
worker_unref(worker);
++++++ udev-root-symlink.systemd ++++++
[Unit]
Description=create /dev/root symlink with dynamic rule
Before=udev.service
DefaultDependencies=no
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/lib/udev/write_dev_root_rule
++++++ udev-rpmlintrc ++++++
addFilter(".*dangling-symlink /lib/udev/devices/std(in|out|err).*")
addFilter(".*dangling-symlink /lib/udev/devices/core.*")
addFilter(".*dangling-symlink /lib/udev/devices/fd.*")
addFilter(".init-script-without-%stop_on_removal-preun*.*")
addFilter(".*devel-file-in-non-devel-package.*udev.pc.*")
addFilter(".*libgudev-.*shlib-fixed-dependency.*")
++++++ udev.git-617746e09795575c6258dd075ee7f0a44ce61e1e.patch ++++++
From: Kay Sievers <kay.sievers(a)vrfy.org>
Date: Thu, 4 Aug 2011 21:25:03 +0000 (+0200)
Subject: rules: move input_id to default rules
X-Git-Url: http://git.kernel.org/?p=linux%2Fhotplug%2Fudev.git;a=commitdiff_plain;h=61…
rules: move input_id to default rules
On Tue, Aug 2, 2011 at 10:56, Thomas Bächler <thomas(a)archlinux.org> wrote:
> Commit c49df20758e0f22778cfc93b598f2929f4c86272 prevented udev from
> creating broken symlinks for bluetooth hid devices. Unfortunately,
> it also removed the ID_INPUT=1 and ID_INPUT_{KEY,MOUSE}=1 properties
> from those devices. Xorg relies on these properties for cold- and
> hotplugging of input devices.
---
diff --git a/rules/rules.d/50-udev-default.rules b/rules/rules.d/50-udev-default.rules
index f5b181d..30267fe 100644
--- a/rules/rules.d/50-udev-default.rules
+++ b/rules/rules.d/50-udev-default.rules
@@ -20,6 +20,7 @@ KERNEL=="null|zero|full|random|urandom", MODE="0666"
KERNEL=="mem|kmem|port|nvram", GROUP="kmem", MODE="0640"
# input
+SUBSYSTEM=="input", ENV{ID_INPUT}=="", IMPORT{program}="input_id %p"
KERNEL=="mouse*|mice|event*", MODE="0640"
KERNEL=="ts[0-9]*|uinput", MODE="0640"
KERNEL=="js[0-9]*", MODE="0644"
@@ -50,7 +51,7 @@ SUBSYSTEM=="firewire", ATTR{units}=="*0x00b09d:0x00010*", GROUP="video"
SUBSYSTEM=="firewire", ATTR{units}=="*0x00a02d:0x010001*", GROUP="video"
SUBSYSTEM=="firewire", ATTR{units}=="*0x00a02d:0x014001*", GROUP="video"
-# libusb device nodes
+# 'libusb' device nodes
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", MODE="0664"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{ID_USB_INTERFACES}=="", IMPORT{program}="usb_id --export %p"
diff --git a/rules/rules.d/60-persistent-input.rules b/rules/rules.d/60-persistent-input.rules
index 65a6381..e7611f5 100644
--- a/rules/rules.d/60-persistent-input.rules
+++ b/rules/rules.d/60-persistent-input.rules
@@ -4,7 +4,6 @@ ACTION=="remove", GOTO="persistent_input_end"
SUBSYSTEM!="input", GOTO="persistent_input_end"
SUBSYSTEMS=="bluetooth", GOTO="persistent_input_end"
-ENV{ID_INPUT}=="", IMPORT{program}="input_id %p"
SUBSYSTEMS=="usb", ENV{ID_BUS}=="", IMPORT{program}="usb_id --export %p"
# determine class name for persistent symlinks
++++++ udev.git-7944a13a2b8516d5fa354703789f5988cb4299b6.patch ++++++
commit 7944a13a2b8516d5fa354703789f5988cb4299b6
Author: Steve Langasek <steve.langasek(a)canonical.com>
Date: Sat Oct 8 02:14:09 2011 -0700
udevd: exit - process events before signals in worker
When a worker receives both a signal and a udev event in the same epoll_wait
run, the event must be processed first because the udev parent considers the
event already dispatched. If we process the signal first and exit, udevd
times out after 60 seconds waiting for a response from an already-dead
worker.
Ref: https://bugs.launchpad.net/bugs/818177
Signed-off-by: Steve Langasek <steve.langasek(a)canonical.com>
diff --git a/udev/udevd.c b/udev/udevd.c
index 77aec9d..b65b53f 100644
--- a/udev/udevd.c
+++ b/udev/udevd.c
@@ -347,6 +347,7 @@ static void worker_new(struct event *event)
for (i = 0; i < fdcount; i++) {
if (ev[i].data.fd == fd_monitor && ev[i].events & EPOLLIN) {
dev = udev_monitor_receive_device(worker_monitor);
+ break;
} else if (ev[i].data.fd == fd_signal && ev[i].events & EPOLLIN) {
struct signalfd_siginfo fdsi;
ssize_t size;
++++++ write_dev_root_rule ++++++
#!/bin/sh
eval $(/sbin/udevadm info --export --export-prefix=ROOT_ --device-id-of-file=/)
[ "$ROOT_MAJOR" -gt 0 ] || return
mkdir -m 0755 -p /run/udev/rules.d >/dev/null 2>&1
ln -sf /run/udev /dev/.udev 2>/dev/null || :
echo "ACTION==\"add|change\", SUBSYSTEM==\"block\", \
ENV{MAJOR}==\"$ROOT_MAJOR\", ENV{MINOR}==\"$ROOT_MINOR\", \
SYMLINK+=\"root\"" > /run/udev/rules.d/10-root-symlink.rules
exit 0
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package installation-images for openSUSE:Factory checked in at 2012-09-27 21:22:00
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/installation-images (Old)
and /work/SRC/openSUSE:Factory/.installation-images.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "installation-images", Maintainer is "snwint(a)suse.com"
Changes:
--------
--- /work/SRC/openSUSE:Factory/installation-images/installation-images.changes 2012-09-25 15:25:12.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.installation-images.new/installation-images.changes 2012-09-27 21:22:01.000000000 +0200
@@ -1,0 +2,5 @@
+Thu Sep 27 15:03:07 UTC 2012 - coolo(a)suse.com
+
+- adjust to package changes
+
+-------------------------------------------------------------------
New:
----
installation-images-13.55.diff
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ installation-images.spec ++++++
--- /var/tmp/diff_new_pack.AJ0wic/_old 2012-09-27 21:22:05.000000000 +0200
+++ /var/tmp/diff_new_pack.AJ0wic/_new 2012-09-27 21:22:05.000000000 +0200
@@ -368,6 +368,7 @@
Version: 13.55
Release: 0
Source: installation-images-13.55.tar.bz2
+Patch0: installation-images-13.55.diff
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%define _binary_payload w.ufdio
@@ -430,6 +431,7 @@
%prep
%setup
+%patch0 -p1
rm -f /usr/lib/build/checks/04-check-filelist
%build
++++++ installation-images-13.55.diff ++++++
Index: installation-images-13.55/data/initrd/initrd.file_list
===================================================================
--- installation-images-13.55.orig/data/initrd/initrd.file_list
+++ installation-images-13.55/data/initrd/initrd.file_list
@@ -213,7 +213,7 @@ libssh2-*:
libcares2:
/
-libidn:
+libidn*:
/usr/lib*
libldap-*-*:
Index: installation-images-13.55/data/rescue/rescue.file_list
===================================================================
--- installation-images-13.55.orig/data/rescue/rescue.file_list
+++ installation-images-13.55/data/rescue/rescue.file_list
@@ -639,7 +639,7 @@ libssh2-*:
libcares*:
/
-libidn:
+libidn*:
/
bind-utils:
Index: installation-images-13.55/data/root/root.file_list
===================================================================
--- installation-images-13.55.orig/data/root/root.file_list
+++ installation-images-13.55/data/root/root.file_list
@@ -884,7 +884,7 @@ libassuan*:
libzypp:
/
-libidn:
+libidn*:
/
libsqlite*-*:
@@ -1152,9 +1152,6 @@ if arch ne 's390' && arch ne 's390x'
libxcb-dri2-*:
/
- libxcb-xfixes*:
- /
-
fontconfig:
/etc/fonts/*.conf
/etc/fonts/conf.d
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package xen for openSUSE:Factory checked in at 2012-09-27 13:55:51
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xen (Old)
and /work/SRC/openSUSE:Factory/.xen.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xen", Maintainer is "CARNOLD(a)suse.com"
Changes:
--------
--- /work/SRC/openSUSE:Factory/xen/xen.changes 2012-08-26 11:35:45.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.xen.new/xen.changes 2012-09-27 13:55:56.000000000 +0200
@@ -1,0 +2,91 @@
+Tue Sep 25 14:24:29 CEST 2012 - ohering(a)suse.de
+
+- pygrub: always append --args
+ 25941-pygrub_always_append_--args.patch
+
+-------------------------------------------------------------------
+Mon Sep 24 16:41:58 CEST 2012 - ohering(a)suse.de
+
+- use BuildRequires: gcc46 only in sles11sp2 or 12.1 to fix build
+ in 11.4
+
+-------------------------------------------------------------------
+Wed Sep 19 09:43:42 MDT 2012 - carnold(a)novell.com
+
+- Upstream patches from Jan
+ 25833-32on64-bogus-pt_base-adjust.patch
+ 25835-adjust-rcu-lock-domain.patch
+ 25836-VT-d-S3-MSI-resume.patch
+ 25850-tmem-xsa-15-1.patch
+ 25851-tmem-xsa-15-2.patch
+ 25852-tmem-xsa-15-3.patch
+ 25853-tmem-xsa-15-4.patch
+ 25854-tmem-xsa-15-5.patch
+ 25855-tmem-xsa-15-6.patch
+ 25856-tmem-xsa-15-7.patch
+ 25857-tmem-xsa-15-8.patch
+ 25858-tmem-xsa-15-9.patch
+ 25859-tmem-missing-break.patch
+ 25860-tmem-cleanup.patch
+ 25861-x86-early-fixmap.patch
+ 25862-sercon-non-com.patch
+ 25863-sercon-ehci-dbgp.patch
+ 25864-sercon-unused.patch
+ 25866-sercon-ns16550-pci-irq.patch
+ 25867-sercon-ns16550-parse.patch
+ 25874-x86-EFI-chain-cfg.patch
+ 25909-xenpm-consistent.patch
+
+-------------------------------------------------------------------
+Tue Sep 18 16:16:04 MDT 2012 - carnold(a)novell.com
+
+- Fixed the 32bit build.
+
+-------------------------------------------------------------------
+Mon Sep 17 09:02:37 MDT 2012 - carnold(a)novell.com
+
+- Update to Xen 4.2.0 FCS c/s 25844
+
+-------------------------------------------------------------------
+Fri Sep 7 19:23:15 CEST 2012 - ohering(a)suse.de
+
+- unmodified_drivers: handle IRQF_SAMPLE_RANDOM, it was removed
+ in 3.6-rc1
+
+-------------------------------------------------------------------
+Wed Sep 5 11:36:24 MDT 2012 - jfehlig(a)suse.com
+
+- bnc#778105 - first XEN-PV VM fails to spawn
+ xend: Increase wait time for disk to appear in host bootloader
+ Modified existing xen-domUloader.diff
+
+-------------------------------------------------------------------
+Thu Aug 30 14:08:45 MDT 2012 - carnold(a)novell.com
+
+- Disable the snapshot patches. Snapshot only supported the qcow2
+ image format which was poorly implemented qemu 0.10.2. Snapshot
+ support may be restored in the future when the newer upstream
+ qemu is used by Xen.
+
+-------------------------------------------------------------------
+Tue Aug 28 16:31:18 CEST 2012 - ohering(a)suse.de
+
+- bnc#776995 - attaching scsi control luns with pvscsi
+ - xend/pvscsi: fix passing of SCSI control LUNs
+ xen-bug776995-pvscsi-no-devname.patch
+ - xend/pvscsi: fix usage of persistant device names for SCSI devices
+ xen-bug776995-pvscsi-persistent-names.patch
+ - xend/pvscsi: update sysfs parser for Linux 3.0
+ xen-bug776995-pvscsi-sysfs-parser.patch
+
+-------------------------------------------------------------------
+Thu Aug 23 15:47:24 MDT 2012 - carnold(a)novell.com
+
+- Update to Xen 4.2.0 RC3+ c/s 25779
+
+-------------------------------------------------------------------
+Tue Aug 21 13:54:45 MDT 2012 - carnold(a)novell.com
+
+- Update to Xen 4.2.0 RC2+ c/s 25765
+
+-------------------------------------------------------------------
Old:
----
22998-x86-get_page_from_l1e-retcode.patch
22999-x86-mod_l1_entry-retcode.patch
23000-x86-mod_l2_entry-retcode.patch
23050-xentrace_dynamic_tracebuffer_allocation.patch
23074-pfn.h.patch
23091-xentrace_fix_t_info_pages_calculation..patch
23092-xentrace_print_calculated_numbers_in_calculate_tbuf_size.patch
23093-xentrace_remove_gdprintk_usage_since_they_are_not_in_guest_context.patch
23094-xentrace_update_comments.patch
23095-xentrace_use_consistent_printk_prefix.patch
23096-x86-hpet-no-cpumask_lock.patch
23099-x86-rwlock-scalability.patch
23103-x86-pirq-guest-eoi-check.patch
23127-vtd-bios-settings.patch
23128-xentrace_correct_formula_to_calculate_t_info_pages.patch
23129-xentrace_remove_unneeded_debug_printk.patch
23173-xentrace_Move_register_cpu_notifier_call_into_boot-time_init..patch
23199-amd-iommu-unmapped-intr-fault.patch
23236-svm-decode-assist-invlpg.patch
23239-xentrace_correct_overflow_check_for_number_of_per-cpu_trace_pages.patch
23246-x86-xsave-enable.patch
23303-cpufreq-misc.patch
23308-xentrace_Move_the_global_variable_t_info_first_offset_into_calculate_tbuf_size.patch
23309-xentrace_Mark_data_size___read_mostly_because_its_only_written_once.patch
23310-xentrace_Remove_unneeded_cast_when_assigning_pointer_value_to_dst.patch
23334-amd-fam12+14-vpmu.patch
23383-libxc-rm-static-vars.patch
23404-xentrace_reduce_trace_buffer_size_to_something_mfn_offset_can_reach.patch
23405-xentrace_fix_type_of_offset_to_avoid_ouf-of-bounds_access.patch
23406-xentrace_update___insert_record_to_copy_the_trace_record_to_individual_mfns.patch
23407-xentrace_allocate_non-contiguous_per-cpu_trace_buffers.patch
23462-libxc-cpu-feature.patch
23506-x86_Disable_set_gpfn_from_mfn_until_m2p_table_is_allocated..patch
23507-xenpaging_update_machine_to_phys_mapping_during_page_deallocation.patch
23508-vmx-proc-based-ctls-probe.patch
23509-x86_32_Fix_build_Define_machine_to_phys_mapping_valid.patch
23562-xenpaging_remove_unused_spinlock_in_pager.patch
23571-vtd-fault-verbosity.patch
23574-x86-dom0-compressed-ELF.patch
23575-x86-DMI.patch
23576-x86_show_page_walk_also_for_early_page_faults.patch
23577-tools_merge_several_bitop_functions_into_xc_bitops.h.patch
23578-xenpaging_add_xs_handle_to_struct_xenpaging.patch
23579-xenpaging_drop_xc.c_remove_ASSERT.patch
23580-xenpaging_drop_xc.c_remove_xc_platform_info_t.patch
23581-xenpaging_drop_xc.c_remove_xc_wait_for_event.patch
23582-xenpaging_drop_xc.c_move_xc_mem_paging_flush_ioemu_cache.patch
23583-xenpaging_drop_xc.c_move_xc_wait_for_event_or_timeout.patch
23584-xenpaging_drop_xc.c_remove_xc_files.patch
23585-xenpaging_correct_dropping_of_pages_to_avoid_full_ring_buffer.patch
23586-xenpaging_do_not_bounce_p2mt_back_to_the_hypervisor.patch
23587-xenpaging_remove_srand_call.patch
23588-xenpaging_remove_return_values_from_functions_that_can_not_fail.patch
23589-xenpaging_catch_xc_mem_paging_resume_errors.patch
23590-xenpaging_remove_local_domain_id_variable.patch
23591-xenpaging_move_num_pages_into_xenpaging_struct.patch
23592-xenpaging_start_paging_in_the_middle_of_gfn_range.patch
23593-xenpaging_pass_integer_to_xenpaging_populate_page.patch
23594-xenpaging_add_helper_function_for_unlinking_pagefile.patch
23595-xenpaging_add_watch_thread_to_catch_guest_shutdown.patch
23596-xenpaging_implement_stopping_of_pager_by_sending_SIGTERM-SIGINT.patch
23597-xenpaging_remove_private_mem_event.h.patch
23599-tools_fix_build_after_recent_xenpaging_changes.patch
23613-EFI-headers.patch
23614-x86_64-EFI-boot.patch
23615-x86_64-EFI-runtime.patch
23616-x86_64-EFI-MPS.patch
23643-xentrace_Allow_tracing_to_be_enabled_at_boot.patch
23676-x86_64-image-map-bounds.patch
23697-pygrub-grub2.patch
23719-xentrace_update___trace_var_comment.patch
23723-x86-CMOS-lock.patch
23735-guest-dom0-cap.patch
23747-mmcfg-base-address.patch
23749-mmcfg-reservation.patch
23771-x86-ioapic-clear-pin.patch
23772-x86-trampoline.patch
23774-x86_64-EFI-EDD.patch
23782-x86-ioapic-clear-irr.patch
23783-ACPI-set-_PDC-bits.patch
23800-x86_64-guest-addr-range.patch
23804-x86-IPI-counts.patch
23817-mem_event_add_ref_counting_for_free_requestslots.patch
23818-mem_event_use_mem_event_mark_and_pause_in_mem_event_check_ring.patch
23827-xenpaging_use_batch_of_pages_during_final_page-in.patch
23841-mem_event_pass_mem_event_domain_pointer_to_mem_event_functions.patch
23842-mem_event_use_different_ringbuffers_for_share_paging_and_access.patch
23874-xenpaging_track_number_of_paged_pages_in_struct_domain.patch
23897-x86-mce-offline-again.patch
23904-xenpaging_use_p2m-get_entry_in_p2m_mem_paging_functions.patch
23905-xenpaging_fix_locking_in_p2m_mem_paging_functions.patch
23906-xenpaging_remove_confusing_comment_from_p2m_mem_paging_populate.patch
23933-pt-bus2bridge-update.patch
23943-xenpaging_clear_page_content_after_evict.patch
23944-pygrub-debug.patch
23949-constify_vcpu_set_affinitys_second_parameter.patch
23953-xenpaging_handle_evict_failures.patch
23957-cpufreq-error-paths.patch
23978-xenpaging_check_p2mt_in_p2m_mem_paging_functions.patch
23979-xenpaging_document_p2m_mem_paging_functions.patch
23980-xenpaging_disallow_paging_in_a_PoD_guest.patch
23993-x86-microcode-amd-fix-23871.patch
23999-pygrub-grub2.patch
24064-pygrub-HybridISO.patch
24104-waitqueue_Double_size_of_x86_shadow_stack..patch
24105-xenpaging_compare_domain_pointer_in_p2m_mem_paging_populate.patch
24106-mem_event_check_capabilities_only_once.patch
24123-x86-cpuidle-quiesce.patch
24124-x86-microcode-amd-quiesce.patch
24138-xenpaging_munmap_all_pages_after_page-in.patch
24153-x86-emul-feature-checks.patch
24171-x86waitqueue_Allocate_whole_page_for_shadow_stack..patch
24178-debug_Add_domain-vcpu_pause_count_info_to_d_key..patch
24195-waitqueue_Detect_saved-stack_overflow_and_crash_the_guest..patch
24196-waitqueue_Reorder_prepare_to_wait_so_that_vcpu_is_definitely_on_the.patch
24197-x86-waitqueue_Because_we_have_per-cpu_stacks_we_must_wake_up_on_teh.patch
24208-xenpaging_remove_filename_from_comment.patch
24209-xenpaging_remove_obsolete_comment_in_resume_path.patch
24210-xenpaging_use_PERROR_to_print_errno.patch
24211-xenpaging_simplify_file_op.patch
24212-xenpaging_print_gfn_in_failure_case.patch
24213-xenpaging_update_xenpaging_init.patch
24214-xenpaging_remove_xc_dominfo_t_from_paging_t.patch
24215-xenpaging_track_the_number_of_paged-out_pages.patch
24216-xenpaging_move_page_add-resume_loops_into_its_own_function..patch
24217-xenpaging_improve_mainloop_exit_handling.patch
24218-libxc_add_bitmap_clear_function.patch
24219-xenpaging_retry_unpageable_gfns.patch
24220-xenpaging_install_into_LIBEXEC_dir.patch
24221-xenpaging_add_XEN_PAGING_DIR_-_libxl_xenpaging_dir_path.patch
24222-xenpaging_use_guests_tot_pages_as_working_target.patch
24223-xenpaging_watch_the_guests_memory-target-tot_pages_xenstore_value.patch
24224-xenpaging_add_cmdline_interface_for_pager.patch
24225-xenpaging_improve_policy_mru_list_handling.patch
24226-xenpaging_add_debug_to_show_received_watch_event..patch
24227-xenpaging_restrict_pagefile_permissions.patch
24231-waitqueue_Implement_wake_up_nroneall..patch
24232-waitqueue_Hold_a_reference_to_a_domain_on_a_waitqueue..patch
24269-mem_event_move_mem_event_domain_out_of_struct_domain.patch
24270-Free_d-mem_event_on_domain_destruction..patch
24272-xenpaging_Fix_c-s_235070a29c8c3ddf7_update_machine_to_phys_mapping_during_page_deallocation.patch
24275-x86-emul-lzcnt.patch
24277-x86-dom0-features.patch
24278-x86-dom0-no-PCID.patch
24318-x86-mm_Fix_checks_during_foreign_mapping_of_paged_pages.patch
24327-After_preparing_a_page_for_page-in_allow_immediate_fill-in_of_the_page_contents.patch
24328-Tools_Libxc_wrappers_to_automatically_fill_in_page_oud_page_contents_on_prepare.patch
24329-Teach_xenpaging_to_use_the_new_and_non-racy_xc_mem_paging_load_interface.patch
24359-x86-domU-features.patch
24360-x86-pv-domU-no-PCID.patch
24391-x86-pcpu-version.patch
24401-pygrub-scrolling.patch
24402-pygrub-edit-fix.patch
24459-libxl-vifname.patch
24466-libxc_Only_retry_mapping_pages_when_ENOENT_is_returned.patch
24478-libxl_add_feature_flag_to_xenstore_for_XS_RESET_WATCHES.patch
24566-tools-libxc_fix_error_handling_in_xc_mem_paging_load.patch
24586-x86-mm_Properly_account_for_paged_out_pages.patch
24609-tools-libxc_handle_fallback_in_linux_privcmd_map_foreign_bulk_properly.patch
24610-xenpaging_make_file_op_largefile_aware.patch
24706-pygrub-extlinux.patch
24780-x86-paging-use-clear_guest.patch
24781-x86-vmce-mcg_ctl.patch
24805-x86-MSI-X-dom0-ro.patch
24886-x86-vmce-mcg_ctl-default.patch
24887-x86-vmce-sr.patch
25041-tapdisk2-create-init-name.patch
25196-x86-HAP-PAT-sr.patch
25247-SVM-no-rdtsc-intercept.patch
25267-x86-text-unlikely.patch
25269-x86-vMCE-addr-misc-write.patch
25382-x86-masked-MCE-masking-NMI.patch
25387-amd-iommu-workaround-73x.patch
25430-x86-AMD-Fam15-reenable-topoext.patch
25431-x86-EDD-MBR-sig-check.patch
25459-page-list-splice.patch
25479-x86-boot-trampoline-remove.patch
25485-x86_64-canonical-checks.patch
25589-pygrub-size-limits.patch
25616-x86-MCi_CTL-default.patch
disable-xl-when-using-xend.patch
dom-print.patch
hotplug.losetup.patch
ioemu-9868-MSI-X.patch
ioemu-9869-MSI-X-init.patch
ioemu-9873-MSI-X-fix-unregister_iomem.patch
ioemu-9877-MSI-X-device-cleanup.patch
ipxe-gcc45-warnings.patch
ipxe-ipv4-fragment.patch
snapshot-ioemu-delete.patch
snapshot-ioemu-restore.patch
snapshot-ioemu-save.patch
snapshot-without-pv-fix.patch
snapshot-xend.patch
tools-kboot.diff
tools-xc_kexec.diff
vif-bridge.mtu.patch
x86_64-allow-unsafe-adjust.patch
xen-4.1.3-testing-src.tar.bz2
xen-config.diff
xen-unstable.misc.linux_privcmd_map_foreign_bulk.retry_paged.patch
xenpaging.autostart.patch
xenpaging.doc.patch
xenpaging.error-handling.patch
xenpaging.evict_fail_fast_forward.patch
xenpaging.evict_mmap_readonly.patch
xenpaging.guest-memusage.patch
xenpaging.mem_event-use-wait_queue.patch
xenpaging.mmap-before-nominate.patch
xenpaging.p2m_is_paged.patch
xenpaging.qemu.flush-cache.patch
xenpaging.speedup-page-in.gfn_to_slot.patch
xenpaging.speedup-page-out.evict_pages.free_slot_stack.patch
xenpaging.speedup-page-out.patch
xenpaging.speedup-page-out.policy_choose_victim.patch
xenpaging.speedup-page-out.resume_pages.find_next_bit_set.patch
xenpaging.versioned-interface.patch
xenpaging.waitqueue-paging.patch
xenstored.XS_RESET_WATCHES.patch
xl-create-pv-with-qcow2-img.patch
xm-test-cleanup.diff
New:
----
25833-32on64-bogus-pt_base-adjust.patch
25835-adjust-rcu-lock-domain.patch
25836-VT-d-S3-MSI-resume.patch
25850-tmem-xsa-15-1.patch
25851-tmem-xsa-15-2.patch
25852-tmem-xsa-15-3.patch
25853-tmem-xsa-15-4.patch
25854-tmem-xsa-15-5.patch
25855-tmem-xsa-15-6.patch
25856-tmem-xsa-15-7.patch
25857-tmem-xsa-15-8.patch
25858-tmem-xsa-15-9.patch
25859-tmem-missing-break.patch
25860-tmem-cleanup.patch
25861-x86-early-fixmap.patch
25862-sercon-non-com.patch
25863-sercon-ehci-dbgp.patch
25864-sercon-unused.patch
25866-sercon-ns16550-pci-irq.patch
25867-sercon-ns16550-parse.patch
25874-x86-EFI-chain-cfg.patch
25909-xenpm-consistent.patch
25941-pygrub_always_append_--args.patch
ipxe.tar.bz2
pv-driver-build.patch
qemu-xen-dir-remote.tar.bz2
qemu-xen-traditional-dir-remote.tar.bz2
seabios-dir-remote.tar.bz2
x86-dom-print.patch
xen-4.2.0-testing-src.tar.bz2
xen-bug776995-pvscsi-no-devname.patch
xen-bug776995-pvscsi-persistent-names.patch
xen-bug776995-pvscsi-sysfs-parser.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xen.spec ++++++
++++ 971 lines (skipped)
++++ between /work/SRC/openSUSE:Factory/xen/xen.spec
++++ and /work/SRC/openSUSE:Factory/.xen.new/xen.spec
++++++ 25833-32on64-bogus-pt_base-adjust.patch ++++++
# HG changeset patch
# User Jan Beulich <jbeulich(a)suse.com>
# Date 1347022899 -7200
# Node ID bb85bbccb1c9d802c92dd3fe00841368966ff623
# Parent e3b51948114ec1e2b2eece415b32e26ff857acde
x86/32-on-64: adjust Dom0 initial page table layout
Drop the unnecessary reservation of the L4 page for 32on64 Dom0, and
allocate its L3 first (to match behavior when running identical bit-
width hypervisor and Dom0 kernel).
Reported-by: Konrad Rzeszutek Wilk <konrad.wilk(a)oracle.com>
Signed-off-by: Jan Beulich <jbeulich(a)suse.com>
Acked-by: Keir Fraser <keir(a)xen.org>
--- a/xen/arch/x86/domain_build.c
+++ b/xen/arch/x86/domain_build.c
@@ -510,7 +510,7 @@ int __init construct_dom0(
#define NR(_l,_h,_s) \
(((((_h) + ((1UL<<(_s))-1)) & ~((1UL<<(_s))-1)) - \
((_l) & ~((1UL<<(_s))-1))) >> (_s))
- if ( (1 + /* # L4 */
+ if ( (!is_pv_32on64_domain(d) + /* # L4 */
NR(v_start, v_end, L4_PAGETABLE_SHIFT) + /* # L3 */
(!is_pv_32on64_domain(d) ?
NR(v_start, v_end, L3_PAGETABLE_SHIFT) : /* # L2 */
@@ -756,6 +756,8 @@ int __init construct_dom0(
panic("Not enough RAM for domain 0 PML4.\n");
page->u.inuse.type_info = PGT_l4_page_table|PGT_validated|1;
l4start = l4tab = page_to_virt(page);
+ maddr_to_page(mpt_alloc)->u.inuse.type_info = PGT_l3_page_table;
+ l3start = __va(mpt_alloc); mpt_alloc += PAGE_SIZE;
}
copy_page(l4tab, idle_pg_table);
l4tab[0] = l4e_empty(); /* zap trampoline mapping */
@@ -787,9 +789,13 @@ int __init construct_dom0(
l2tab += l2_table_offset(v_start);
if ( !((unsigned long)l3tab & (PAGE_SIZE-1)) )
{
- maddr_to_page(mpt_alloc)->u.inuse.type_info =
- PGT_l3_page_table;
- l3start = l3tab = __va(mpt_alloc); mpt_alloc += PAGE_SIZE;
+ if ( count || !l3start )
+ {
+ maddr_to_page(mpt_alloc)->u.inuse.type_info =
+ PGT_l3_page_table;
+ l3start = __va(mpt_alloc); mpt_alloc += PAGE_SIZE;
+ }
+ l3tab = l3start;
clear_page(l3tab);
if ( count == 0 )
l3tab += l3_table_offset(v_start);
@@ -938,7 +944,7 @@ int __init construct_dom0(
if ( !vinitrd_start && initrd_len )
si->flags |= SIF_MOD_START_PFN;
si->flags |= (xen_processor_pmbits << 8) & SIF_PM_MASK;
- si->pt_base = vpt_start + 2 * PAGE_SIZE * !!is_pv_32on64_domain(d);
+ si->pt_base = vpt_start;
si->nr_pt_frames = nr_pt_pages;
si->mfn_list = vphysmap_start;
snprintf(si->magic, sizeof(si->magic), "xen-3.0-x86_%d%s",
++++++ 25835-adjust-rcu-lock-domain.patch ++++++
# HG changeset patch
# User Jan Beulich <jbeulich(a)suse.com>
# Date 1347033492 -7200
# Node ID c70d70d85306b3e4a0538353be131100c5ee38d5
# Parent 0376c85caaf34fe3cc8c3327f7a1d9ecd6f070b4
adjust a few RCU domain locking calls
x86's do_physdev_op() had a case where the locking was entirely
superfluous. Its physdev_map_pirq() further had a case where the lock
was being obtained too early, needlessly complicating early exit paths.
Grant table code had two open coded instances of
rcu_lock_target_domain_by_id(), and a third code section could be
consolidated by using the newly introduced helper function.
The memory hypercall code had two more instances of open coding
rcu_lock_target_domain_by_id(), but note that here this is not just
cleanup, but also fixes an error return path in memory_exchange() to
actually return an error.
Signed-off-by: Jan Beulich <jbeulich(a)suse.com>
Acked-by: Keir Fraser <keir(a)xen.org>
--- a/xen/arch/x86/physdev.c
+++ b/xen/arch/x86/physdev.c
@@ -90,14 +90,10 @@ static int physdev_hvm_map_pirq(
int physdev_map_pirq(domid_t domid, int type, int *index, int *pirq_p,
struct msi_info *msi)
{
- struct domain *d;
+ struct domain *d = current->domain;
int pirq, irq, ret = 0;
void *map_data = NULL;
- ret = rcu_lock_target_domain_by_id(domid, &d);
- if ( ret )
- return ret;
-
if ( domid == DOMID_SELF && is_hvm_domain(d) )
{
/*
@@ -105,14 +101,15 @@ int physdev_map_pirq(domid_t domid, int
* calls back into itself and deadlocks on hvm_domain.irq_lock.
*/
if ( !is_hvm_pv_evtchn_domain(d) )
- {
- ret = -EINVAL;
- goto free_domain;
- }
- ret = physdev_hvm_map_pirq(d, type, index, pirq_p);
- goto free_domain;
+ return -EINVAL;
+
+ return physdev_hvm_map_pirq(d, type, index, pirq_p);
}
+ ret = rcu_lock_target_domain_by_id(domid, &d);
+ if ( ret )
+ return ret;
+
if ( !IS_PRIV_FOR(current->domain, d) )
{
ret = -EPERM;
@@ -696,13 +693,12 @@ ret_t do_physdev_op(int cmd, XEN_GUEST_H
}
case PHYSDEVOP_get_free_pirq: {
struct physdev_get_free_pirq out;
- struct domain *d;
+ struct domain *d = v->domain;
ret = -EFAULT;
if ( copy_from_guest(&out, arg, 1) != 0 )
break;
- d = rcu_lock_current_domain();
spin_lock(&d->event_lock);
ret = get_free_pirq(d, out.type);
@@ -717,7 +713,6 @@ ret_t do_physdev_op(int cmd, XEN_GUEST_H
}
spin_unlock(&d->event_lock);
- rcu_unlock_domain(d);
if ( ret >= 0 )
{
--- a/xen/common/grant_table.c
+++ b/xen/common/grant_table.c
@@ -24,7 +24,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-#include <xen/config.h>
+#include <xen/err.h>
#include <xen/iocap.h>
#include <xen/lib.h>
#include <xen/sched.h>
@@ -195,6 +195,30 @@ double_gt_unlock(struct grant_table *lgt
spin_unlock(&rgt->lock);
}
+static struct domain *gt_lock_target_domain_by_id(domid_t dom)
+{
+ struct domain *d;
+ int rc = GNTST_general_error;
+
+ switch ( rcu_lock_target_domain_by_id(dom, &d) )
+ {
+ case 0:
+ return d;
+
+ case -ESRCH:
+ gdprintk(XENLOG_INFO, "Bad domid %d.\n", dom);
+ rc = GNTST_bad_domain;
+ break;
+
+ case -EPERM:
+ rc = GNTST_permission_denied;
+ break;
+ }
+
+ ASSERT(rc < 0 && -rc <= MAX_ERRNO);
+ return ERR_PTR(rc);
+}
+
static inline int
__get_maptrack_handle(
struct grant_table *t)
@@ -1261,7 +1285,6 @@ gnttab_setup_table(
struct grant_table *gt;
int i;
unsigned long gmfn;
- domid_t dom;
if ( count != 1 )
return -EINVAL;
@@ -1281,25 +1304,11 @@ gnttab_setup_table(
goto out1;
}
- dom = op.dom;
- if ( dom == DOMID_SELF )
+ d = gt_lock_target_domain_by_id(op.dom);
+ if ( IS_ERR(d) )
{
- d = rcu_lock_current_domain();
- }
- else
- {
- if ( unlikely((d = rcu_lock_domain_by_id(dom)) == NULL) )
- {
- gdprintk(XENLOG_INFO, "Bad domid %d.\n", dom);
- op.status = GNTST_bad_domain;
- goto out1;
- }
-
- if ( unlikely(!IS_PRIV_FOR(current->domain, d)) )
- {
- op.status = GNTST_permission_denied;
- goto out2;
- }
+ op.status = PTR_ERR(d);
+ goto out1;
}
if ( xsm_grant_setup(current->domain, d) )
@@ -1352,7 +1361,6 @@ gnttab_query_size(
{
struct gnttab_query_size op;
struct domain *d;
- domid_t dom;
int rc;
if ( count != 1 )
@@ -1364,25 +1372,11 @@ gnttab_query_size(
return -EFAULT;
}
- dom = op.dom;
- if ( dom == DOMID_SELF )
- {
- d = rcu_lock_current_domain();
- }
- else
+ d = gt_lock_target_domain_by_id(op.dom);
+ if ( IS_ERR(d) )
{
- if ( unlikely((d = rcu_lock_domain_by_id(dom)) == NULL) )
- {
- gdprintk(XENLOG_INFO, "Bad domid %d.\n", dom);
- op.status = GNTST_bad_domain;
- goto query_out;
- }
-
- if ( unlikely(!IS_PRIV_FOR(current->domain, d)) )
- {
- op.status = GNTST_permission_denied;
- goto query_out_unlock;
- }
+ op.status = PTR_ERR(d);
+ goto query_out;
}
rc = xsm_grant_query_size(current->domain, d);
@@ -2251,15 +2245,10 @@ gnttab_get_status_frames(XEN_GUEST_HANDL
return -EFAULT;
}
- rc = rcu_lock_target_domain_by_id(op.dom, &d);
- if ( rc < 0 )
+ d = gt_lock_target_domain_by_id(op.dom);
+ if ( IS_ERR(d) )
{
- if ( rc == -ESRCH )
- op.status = GNTST_bad_domain;
- else if ( rc == -EPERM )
- op.status = GNTST_permission_denied;
- else
- op.status = GNTST_general_error;
+ op.status = PTR_ERR(d);
goto out1;
}
rc = xsm_grant_setup(current->domain, d);
--- a/xen/common/memory.c
+++ b/xen/common/memory.c
@@ -329,22 +329,9 @@ static long memory_exchange(XEN_GUEST_HA
out_chunk_order = exch.in.extent_order - exch.out.extent_order;
}
- if ( likely(exch.in.domid == DOMID_SELF) )
- {
- d = rcu_lock_current_domain();
- }
- else
- {
- if ( (d = rcu_lock_domain_by_id(exch.in.domid)) == NULL )
- goto fail_early;
-
- if ( !IS_PRIV_FOR(current->domain, d) )
- {
- rcu_unlock_domain(d);
- rc = -EPERM;
- goto fail_early;
- }
- }
+ rc = rcu_lock_target_domain_by_id(exch.in.domid, &d);
+ if ( rc )
+ goto fail_early;
memflags |= MEMF_bits(domain_clamp_alloc_bitsize(
d,
@@ -583,20 +570,8 @@ long do_memory_op(unsigned long cmd, XEN
&& (reservation.mem_flags & XENMEMF_populate_on_demand) )
args.memflags |= MEMF_populate_on_demand;
- if ( likely(reservation.domid == DOMID_SELF) )
- {
- d = rcu_lock_current_domain();
- }
- else
- {
- if ( (d = rcu_lock_domain_by_id(reservation.domid)) == NULL )
- return start_extent;
- if ( !IS_PRIV_FOR(current->domain, d) )
- {
- rcu_unlock_domain(d);
- return start_extent;
- }
- }
+ if ( unlikely(rcu_lock_target_domain_by_id(reservation.domid, &d)) )
+ return start_extent;
args.domain = d;
rc = xsm_memory_adjust_reservation(current->domain, d);
++++++ 25836-VT-d-S3-MSI-resume.patch ++++++
# HG changeset patch
# User Jan Beulich <jbeulich(a)suse.com>
# Date 1347263130 -7200
# Node ID 7d216f026f71022186196a75244e97cf3864f50b
# Parent c70d70d85306b3e4a0538353be131100c5ee38d5
VT-d: split .ack and .disable DMA-MSI actors
Calling irq_complete_move() from .disable is wrong, breaking S3 resume.
Comparing with all other .ack actors, it was also missing a call to
move_{native,masked}_irq(). As the actor is masking its interrupt
anyway (albeit it's not immediately obvious why), the latter is the
better choice.
Signed-off-by: Jan Beulich <jbeulich(a)suse.com>
Acked-by: Keir Fraser <keir(a)xen.org>
Acked-by Xiantao Zhang <xiantao.zhang(a)intel.com>
--- a/xen/drivers/passthrough/vtd/iommu.c
+++ b/xen/drivers/passthrough/vtd/iommu.c
@@ -1040,8 +1040,6 @@ static void dma_msi_mask(struct irq_desc
unsigned long flags;
struct iommu *iommu = desc->action->dev_id;
- irq_complete_move(desc);
-
/* mask it */
spin_lock_irqsave(&iommu->register_lock, flags);
dmar_writel(iommu->reg, DMAR_FECTL_REG, DMA_FECTL_IM);
@@ -1054,6 +1052,13 @@ static unsigned int dma_msi_startup(stru
return 0;
}
+static void dma_msi_ack(struct irq_desc *desc)
+{
+ irq_complete_move(desc);
+ dma_msi_mask(desc);
+ move_masked_irq(desc);
+}
+
static void dma_msi_end(struct irq_desc *desc, u8 vector)
{
dma_msi_unmask(desc);
@@ -1115,7 +1120,7 @@ static hw_irq_controller dma_msi_type =
.shutdown = dma_msi_mask,
.enable = dma_msi_unmask,
.disable = dma_msi_mask,
- .ack = dma_msi_mask,
+ .ack = dma_msi_ack,
.end = dma_msi_end,
.set_affinity = dma_msi_set_affinity,
};
++++++ 25850-tmem-xsa-15-1.patch ++++++
# HG changeset patch
# User Ian Campbell <ian.campbell(a)citrix.com>
# Date 1347365190 -7200
# Node ID 0dba5a8886556f1b92e59eb19c570ad1704037f6
# Parent 90533f3b6babfda56edbbefda47c46b391204132
tmem: only allow tmem control operations from privileged domains
This is part of XSA-15 / CVE-2012-3497.
Signed-off-by: Ian Campbell <ian.campbell(a)citrix.com>
Committed-by: Jan Beulich <jbeulich(a)suse.com>
--- a/xen/common/tmem.c
+++ b/xen/common/tmem.c
@@ -2541,10 +2541,8 @@ static NOINLINE int do_tmem_control(stru
OID *oidp = (OID *)(&op->u.ctrl.oid[0]);
if (!tmh_current_is_privileged())
- {
- /* don't fail... mystery: sometimes dom0 fails here */
- /* return -EPERM; */
- }
+ return -EPERM;
+
switch(subop)
{
case TMEMC_THAW:
++++++ 25851-tmem-xsa-15-2.patch ++++++
# HG changeset patch
# User Ian Campbell <ian.campbell(a)citrix.com>
# Date 1347365203 -7200
# Node ID fcf567acc92ae57f4adfbe967b01a2ba0390c08f
# Parent 0dba5a8886556f1b92e59eb19c570ad1704037f6
tmem: consistently make pool_id a uint32_t
Treating it as an int could allow a malicious guest to provide a
negative pool_Id, by passing the MAX_POOLS_PER_DOMAIN limit check and
allowing access to the negative offsets of the pool array.
This is part of XSA-15 / CVE-2012-3497.
Signed-off-by: Ian Campbell <ian.campbell(a)citrix.com>
Committed-by: Jan Beulich <jbeulich(a)suse.com>
--- a/xen/common/tmem.c
+++ b/xen/common/tmem.c
@@ -2417,7 +2417,7 @@ static NOINLINE int tmemc_save_subop(int
return rc;
}
-static NOINLINE int tmemc_save_get_next_page(int cli_id, int pool_id,
+static NOINLINE int tmemc_save_get_next_page(int cli_id, uint32_t pool_id,
tmem_cli_va_t buf, uint32_t bufsize)
{
client_t *client = tmh_client_from_cli_id(cli_id);
@@ -2509,7 +2509,7 @@ out:
return ret;
}
-static int tmemc_restore_put_page(int cli_id, int pool_id, OID *oidp,
+static int tmemc_restore_put_page(int cli_id, uint32_t pool_id, OID *oidp,
uint32_t index, tmem_cli_va_t buf, uint32_t bufsize)
{
client_t *client = tmh_client_from_cli_id(cli_id);
@@ -2521,7 +2521,7 @@ static int tmemc_restore_put_page(int cl
return do_tmem_put(pool,oidp,index,0,0,0,bufsize,buf.p);
}
-static int tmemc_restore_flush_page(int cli_id, int pool_id, OID *oidp,
+static int tmemc_restore_flush_page(int cli_id, uint32_t pool_id, OID *oidp,
uint32_t index)
{
client_t *client = tmh_client_from_cli_id(cli_id);
++++++ 25852-tmem-xsa-15-3.patch ++++++
# HG changeset patch
# User Ian Campbell <ian.campbell(a)citrix.com>
# Date 1347365214 -7200
# Node ID d189d99ef00c1e197321593d13282e1b57eb4a38
# Parent fcf567acc92ae57f4adfbe967b01a2ba0390c08f
tmem: check the pool_id is valid when destroying a tmem pool
This is part of XSA-15 / CVE-2012-3497.
Signed-off-by: Ian Campbell <ian.campbell(a)citrix.com>
Committed-by: Jan Beulich <jbeulich(a)suse.com>
--- a/xen/common/tmem.c
+++ b/xen/common/tmem.c
@@ -1870,6 +1870,8 @@ static NOINLINE int do_tmem_destroy_pool
if ( client->pools == NULL )
return 0;
+ if ( pool_id >= MAX_POOLS_PER_DOMAIN )
+ return 0;
if ( (pool = client->pools[pool_id]) == NULL )
return 0;
client->pools[pool_id] = NULL;
++++++ 25853-tmem-xsa-15-4.patch ++++++
# HG changeset patch
# User Ian Campbell <ian.campbell(a)citrix.com>
# Date 1347365847 -7200
# Node ID f53c5aadbba9d389f4a7d83f308499e22d1d1eda
# Parent d189d99ef00c1e197321593d13282e1b57eb4a38
tmem: check for a valid client ("domain") in the save subops
This is part of XSA-15 / CVE-2012-3497.
Signed-off-by: Ian Campbell <ian.campbell(a)citrix.com>
Acked-by: Jan Beulich <jbeulich(a)suse.com>
Acked-by: Dan Magenheimer <dan.magenheimer(a)oracle.com>
Committed-by: Jan Beulich <jbeulich(a)suse.com>
--- a/xen/common/tmem.c
+++ b/xen/common/tmem.c
@@ -2379,12 +2379,18 @@ static NOINLINE int tmemc_save_subop(int
rc = MAX_POOLS_PER_DOMAIN;
break;
case TMEMC_SAVE_GET_CLIENT_WEIGHT:
+ if ( client == NULL )
+ break;
rc = client->weight == -1 ? -2 : client->weight;
break;
case TMEMC_SAVE_GET_CLIENT_CAP:
+ if ( client == NULL )
+ break;
rc = client->cap == -1 ? -2 : client->cap;
break;
case TMEMC_SAVE_GET_CLIENT_FLAGS:
+ if ( client == NULL )
+ break;
rc = (client->compress ? TMEM_CLIENT_COMPRESS : 0 ) |
(client->was_frozen ? TMEM_CLIENT_FROZEN : 0 );
break;
@@ -2408,6 +2414,8 @@ static NOINLINE int tmemc_save_subop(int
*uuid = pool->uuid[1];
rc = 0;
case TMEMC_SAVE_END:
+ if ( client == NULL )
+ break;
client->live_migrating = 0;
if ( !list_empty(&client->persistent_invalidated_list) )
list_for_each_entry_safe(pgp,pgp2,
++++++ 25854-tmem-xsa-15-5.patch ++++++
# HG changeset patch
# User Jan Beulich <jbeulich(a)suse.com>
# Date 1347365869 -7200
# Node ID ccd60ed6c555e1816cac448fcb20a84533977b43
# Parent f53c5aadbba9d389f4a7d83f308499e22d1d1eda
tmem: don't access guest memory without using the accessors intended for this
This is not permitted, not even for buffers coming from Dom0 (and it
would also break the moment Dom0 runs in HVM mode). An implication from
the changes here is that tmh_copy_page() can't be used anymore for
control operations calling tmh_copy_{from,to}_client() (as those pass
the buffer by virtual address rather than MFN).
Note that tmemc_save_get_next_page() previously didn't set the returned
handle's pool_id field, while the new code does. It need to be
confirmed that this is not a problem (otherwise the copy-out operation
will require further tmh_...() abstractions to be added).
Further note that the patch removes (rather than adjusts) an invalid
call to unmap_domain_page() (no matching map_domain_page()) from
tmh_compress_from_client() and adds a missing one to an error return
path in tmh_copy_from_client().
Finally note that the patch adds a previously missing return statement
to cli_get_page() (without which that function could de-reference a
NULL pointer, triggerable from guest mode).
This is part of XSA-15 / CVE-2012-3497.
Signed-off-by: Jan Beulich <jbeulich(a)suse.com>
Acked-by: Dan Magenheimer <dan.magenheimer(a)oracle.com>
--- a/xen/common/tmem.c
+++ b/xen/common/tmem.c
@@ -388,11 +388,13 @@ static NOINLINE int pcd_copy_to_client(t
pcd = pgp->pcd;
if ( pgp->size < PAGE_SIZE && pgp->size != 0 &&
pcd->size < PAGE_SIZE && pcd->size != 0 )
- ret = tmh_decompress_to_client(cmfn, pcd->cdata, pcd->size, NULL);
+ ret = tmh_decompress_to_client(cmfn, pcd->cdata, pcd->size,
+ tmh_cli_buf_null);
else if ( tmh_tze_enabled() && pcd->size < PAGE_SIZE )
ret = tmh_copy_tze_to_client(cmfn, pcd->tze, pcd->size);
else
- ret = tmh_copy_to_client(cmfn, pcd->pfp, 0, 0, PAGE_SIZE, NULL);
+ ret = tmh_copy_to_client(cmfn, pcd->pfp, 0, 0, PAGE_SIZE,
+ tmh_cli_buf_null);
tmem_read_unlock(&pcd_tree_rwlocks[firstbyte]);
return ret;
}
@@ -1444,7 +1446,7 @@ static inline void tmem_ensure_avail_pag
/************ TMEM CORE OPERATIONS ************************************/
static NOINLINE int do_tmem_put_compress(pgp_t *pgp, tmem_cli_mfn_t cmfn,
- void *cva)
+ tmem_cli_va_t clibuf)
{
void *dst, *p;
size_t size;
@@ -1463,7 +1465,7 @@ static NOINLINE int do_tmem_put_compress
if ( pgp->pfp != NULL )
pgp_free_data(pgp, pgp->us.obj->pool);
START_CYC_COUNTER(compress);
- ret = tmh_compress_from_client(cmfn, &dst, &size, cva);
+ ret = tmh_compress_from_client(cmfn, &dst, &size, clibuf);
if ( (ret == -EFAULT) || (ret == 0) )
goto out;
else if ( (size == 0) || (size >= tmem_subpage_maxsize()) ) {
@@ -1490,7 +1492,8 @@ out:
}
static NOINLINE int do_tmem_dup_put(pgp_t *pgp, tmem_cli_mfn_t cmfn,
- pagesize_t tmem_offset, pagesize_t pfn_offset, pagesize_t len, void *cva)
+ pagesize_t tmem_offset, pagesize_t pfn_offset, pagesize_t len,
+ tmem_cli_va_t clibuf)
{
pool_t *pool;
obj_t *obj;
@@ -1512,7 +1515,7 @@ static NOINLINE int do_tmem_dup_put(pgp_
/* can we successfully manipulate pgp to change out the data? */
if ( len != 0 && client->compress && pgp->size != 0 )
{
- ret = do_tmem_put_compress(pgp,cmfn,cva);
+ ret = do_tmem_put_compress(pgp, cmfn, clibuf);
if ( ret == 1 )
goto done;
else if ( ret == 0 )
@@ -1530,7 +1533,8 @@ copy_uncompressed:
goto failed_dup;
pgp->size = 0;
/* tmh_copy_from_client properly handles len==0 and offsets != 0 */
- ret = tmh_copy_from_client(pgp->pfp,cmfn,tmem_offset,pfn_offset,len,0);
+ ret = tmh_copy_from_client(pgp->pfp, cmfn, tmem_offset, pfn_offset, len,
+ tmh_cli_buf_null);
if ( ret == -EFAULT )
goto bad_copy;
if ( tmh_dedup_enabled() && !is_persistent(pool) )
@@ -1582,7 +1586,7 @@ cleanup:
static NOINLINE int do_tmem_put(pool_t *pool,
OID *oidp, uint32_t index,
tmem_cli_mfn_t cmfn, pagesize_t tmem_offset,
- pagesize_t pfn_offset, pagesize_t len, void *cva)
+ pagesize_t pfn_offset, pagesize_t len, tmem_cli_va_t clibuf)
{
obj_t *obj = NULL, *objfound = NULL, *objnew = NULL;
pgp_t *pgp = NULL, *pgpdel = NULL;
@@ -1596,7 +1600,8 @@ static NOINLINE int do_tmem_put(pool_t *
{
ASSERT_SPINLOCK(&objfound->obj_spinlock);
if ((pgp = pgp_lookup_in_obj(objfound, index)) != NULL)
- return do_tmem_dup_put(pgp,cmfn,tmem_offset,pfn_offset,len,cva);
+ return do_tmem_dup_put(pgp, cmfn, tmem_offset, pfn_offset, len,
+ clibuf);
}
/* no puts allowed into a frozen pool (except dup puts) */
@@ -1631,7 +1636,7 @@ static NOINLINE int do_tmem_put(pool_t *
if ( len != 0 && client->compress )
{
ASSERT(pgp->pfp == NULL);
- ret = do_tmem_put_compress(pgp,cmfn,cva);
+ ret = do_tmem_put_compress(pgp, cmfn, clibuf);
if ( ret == 1 )
goto insert_page;
if ( ret == -ENOMEM )
@@ -1655,7 +1660,8 @@ copy_uncompressed:
goto delete_and_free;
}
/* tmh_copy_from_client properly handles len==0 (TMEM_NEW_PAGE) */
- ret = tmh_copy_from_client(pgp->pfp,cmfn,tmem_offset,pfn_offset,len,cva);
+ ret = tmh_copy_from_client(pgp->pfp, cmfn, tmem_offset, pfn_offset, len,
+ clibuf);
if ( ret == -EFAULT )
goto bad_copy;
if ( tmh_dedup_enabled() && !is_persistent(pool) )
@@ -1725,12 +1731,13 @@ free:
static NOINLINE int do_tmem_get(pool_t *pool, OID *oidp, uint32_t index,
tmem_cli_mfn_t cmfn, pagesize_t tmem_offset,
- pagesize_t pfn_offset, pagesize_t len, void *cva)
+ pagesize_t pfn_offset, pagesize_t len, tmem_cli_va_t clibuf)
{
obj_t *obj;
pgp_t *pgp;
client_t *client = pool->client;
DECL_LOCAL_CYC_COUNTER(decompress);
+ int rc = -EFAULT;
if ( !_atomic_read(pool->pgp_count) )
return -EEMPTY;
@@ -1755,16 +1762,18 @@ static NOINLINE int do_tmem_get(pool_t *
if ( tmh_dedup_enabled() && !is_persistent(pool) &&
pgp->firstbyte != NOT_SHAREABLE )
{
- if ( pcd_copy_to_client(cmfn, pgp) == -EFAULT )
+ rc = pcd_copy_to_client(cmfn, pgp);
+ if ( rc <= 0 )
goto bad_copy;
} else if ( pgp->size != 0 ) {
START_CYC_COUNTER(decompress);
- if ( tmh_decompress_to_client(cmfn, pgp->cdata,
- pgp->size, cva) == -EFAULT )
+ rc = tmh_decompress_to_client(cmfn, pgp->cdata,
+ pgp->size, clibuf);
+ if ( rc <= 0 )
goto bad_copy;
END_CYC_COUNTER(decompress);
} else if ( tmh_copy_to_client(cmfn, pgp->pfp, tmem_offset,
- pfn_offset, len, cva) == -EFAULT)
+ pfn_offset, len, clibuf) == -EFAULT)
goto bad_copy;
if ( is_ephemeral(pool) )
{
@@ -1804,8 +1813,7 @@ static NOINLINE int do_tmem_get(pool_t *
bad_copy:
/* this should only happen if the client passed a bad mfn */
failed_copies++;
- return -EFAULT;
-
+ return rc;
}
static NOINLINE int do_tmem_flush_page(pool_t *pool, OID *oidp, uint32_t index)
@@ -2345,7 +2353,6 @@ static NOINLINE int tmemc_save_subop(int
pool_t *pool = (client == NULL || pool_id >= MAX_POOLS_PER_DOMAIN)
? NULL : client->pools[pool_id];
uint32_t p;
- uint64_t *uuid;
pgp_t *pgp, *pgp2;
int rc = -1;
@@ -2409,9 +2416,7 @@ static NOINLINE int tmemc_save_subop(int
case TMEMC_SAVE_GET_POOL_UUID:
if ( pool == NULL )
break;
- uuid = (uint64_t *)buf.p;
- *uuid++ = pool->uuid[0];
- *uuid = pool->uuid[1];
+ tmh_copy_to_client_buf(buf, pool->uuid, 2);
rc = 0;
case TMEMC_SAVE_END:
if ( client == NULL )
@@ -2436,7 +2441,7 @@ static NOINLINE int tmemc_save_get_next_
pgp_t *pgp;
OID oid;
int ret = 0;
- struct tmem_handle *h;
+ struct tmem_handle h;
unsigned int pagesize = 1 << (pool->pageshift+12);
if ( pool == NULL || is_ephemeral(pool) )
@@ -2467,11 +2472,13 @@ static NOINLINE int tmemc_save_get_next_
pgp_t,us.pool_pers_pages);
pool->cur_pgp = pgp;
oid = pgp->us.obj->oid;
- h = (struct tmem_handle *)buf.p;
- *(OID *)&h->oid[0] = oid;
- h->index = pgp->index;
- buf.p = (void *)(h+1);
- ret = do_tmem_get(pool, &oid, h->index,0,0,0,pagesize,buf.p);
+ h.pool_id = pool_id;
+ BUILD_BUG_ON(sizeof(h.oid) != sizeof(oid));
+ memcpy(h.oid, oid.oid, sizeof(h.oid));
+ h.index = pgp->index;
+ tmh_copy_to_client_buf(buf, &h, 1);
+ tmh_client_buf_add(buf, sizeof(h));
+ ret = do_tmem_get(pool, &oid, pgp->index, 0, 0, 0, pagesize, buf);
out:
tmem_spin_unlock(&pers_lists_spinlock);
@@ -2483,7 +2490,7 @@ static NOINLINE int tmemc_save_get_next_
{
client_t *client = tmh_client_from_cli_id(cli_id);
pgp_t *pgp;
- struct tmem_handle *h;
+ struct tmem_handle h;
int ret = 0;
if ( client == NULL )
@@ -2509,10 +2516,11 @@ static NOINLINE int tmemc_save_get_next_
pgp_t,client_inv_pages);
client->cur_pgp = pgp;
}
- h = (struct tmem_handle *)buf.p;
- h->pool_id = pgp->pool_id;
- *(OID *)&h->oid = pgp->inv_oid;
- h->index = pgp->index;
+ h.pool_id = pgp->pool_id;
+ BUILD_BUG_ON(sizeof(h.oid) != sizeof(pgp->inv_oid));
+ memcpy(h.oid, pgp->inv_oid.oid, sizeof(h.oid));
+ h.index = pgp->index;
+ tmh_copy_to_client_buf(buf, &h, 1);
ret = 1;
out:
tmem_spin_unlock(&pers_lists_spinlock);
@@ -2528,7 +2536,7 @@ static int tmemc_restore_put_page(int cl
if ( pool == NULL )
return -1;
- return do_tmem_put(pool,oidp,index,0,0,0,bufsize,buf.p);
+ return do_tmem_put(pool, oidp, index, 0, 0, 0, bufsize, buf);
}
static int tmemc_restore_flush_page(int cli_id, uint32_t pool_id, OID *oidp,
@@ -2732,19 +2740,19 @@ EXPORT long do_tmem_op(tmem_cli_op_t uop
break;
case TMEM_NEW_PAGE:
tmem_ensure_avail_pages();
- rc = do_tmem_put(pool, oidp,
- op.u.gen.index, op.u.gen.cmfn, 0, 0, 0, NULL);
+ rc = do_tmem_put(pool, oidp, op.u.gen.index, op.u.gen.cmfn, 0, 0, 0,
+ tmh_cli_buf_null);
break;
case TMEM_PUT_PAGE:
tmem_ensure_avail_pages();
- rc = do_tmem_put(pool, oidp,
- op.u.gen.index, op.u.gen.cmfn, 0, 0, PAGE_SIZE, NULL);
+ rc = do_tmem_put(pool, oidp, op.u.gen.index, op.u.gen.cmfn, 0, 0,
+ PAGE_SIZE, tmh_cli_buf_null);
if (rc == 1) succ_put = 1;
else non_succ_put = 1;
break;
case TMEM_GET_PAGE:
rc = do_tmem_get(pool, oidp, op.u.gen.index, op.u.gen.cmfn,
- 0, 0, PAGE_SIZE, 0);
+ 0, 0, PAGE_SIZE, tmh_cli_buf_null);
if (rc == 1) succ_get = 1;
else non_succ_get = 1;
break;
@@ -2763,13 +2771,13 @@ EXPORT long do_tmem_op(tmem_cli_op_t uop
case TMEM_READ:
rc = do_tmem_get(pool, oidp, op.u.gen.index, op.u.gen.cmfn,
op.u.gen.tmem_offset, op.u.gen.pfn_offset,
- op.u.gen.len,0);
+ op.u.gen.len, tmh_cli_buf_null);
break;
case TMEM_WRITE:
rc = do_tmem_put(pool, oidp,
op.u.gen.index, op.u.gen.cmfn,
op.u.gen.tmem_offset, op.u.gen.pfn_offset,
- op.u.gen.len, NULL);
+ op.u.gen.len, tmh_cli_buf_null);
break;
case TMEM_XCHG:
/* need to hold global lock to ensure xchg is atomic */
--- a/xen/common/tmem_xen.c
+++ b/xen/common/tmem_xen.c
@@ -51,6 +51,7 @@ DECL_CYC_COUNTER(pg_copy);
#define LZO_DSTMEM_PAGES 2
static DEFINE_PER_CPU_READ_MOSTLY(unsigned char *, workmem);
static DEFINE_PER_CPU_READ_MOSTLY(unsigned char *, dstmem);
+static DEFINE_PER_CPU_READ_MOSTLY(void *, scratch_page);
#ifdef COMPARE_COPY_PAGE_SSE2
#include <asm/flushtlb.h> /* REMOVE ME AFTER TEST */
@@ -115,6 +116,7 @@ static inline void *cli_get_page(tmem_cl
{
if ( page )
put_page(page);
+ return NULL;
}
if ( cli_write && !get_page_type(page, PGT_writable_page) )
@@ -144,12 +146,12 @@ static inline void cli_put_page(tmem_cli
EXPORT int tmh_copy_from_client(pfp_t *pfp,
tmem_cli_mfn_t cmfn, pagesize_t tmem_offset,
- pagesize_t pfn_offset, pagesize_t len, void *cli_va)
+ pagesize_t pfn_offset, pagesize_t len, tmem_cli_va_t clibuf)
{
unsigned long tmem_mfn, cli_mfn = 0;
- void *tmem_va;
+ char *tmem_va, *cli_va = NULL;
pfp_t *cli_pfp = NULL;
- bool_t tmemc = cli_va != NULL; /* if true, cli_va is control-op buffer */
+ int rc = 1;
ASSERT(pfp != NULL);
tmem_mfn = page_to_mfn(pfp);
@@ -160,62 +162,76 @@ EXPORT int tmh_copy_from_client(pfp_t *p
unmap_domain_page(tmem_va);
return 1;
}
- if ( !tmemc )
+ if ( guest_handle_is_null(clibuf) )
{
cli_va = cli_get_page(cmfn, &cli_mfn, &cli_pfp, 0);
if ( cli_va == NULL )
+ {
+ unmap_domain_page(tmem_va);
return -EFAULT;
+ }
}
mb();
- if (len == PAGE_SIZE && !tmem_offset && !pfn_offset)
+ if ( len == PAGE_SIZE && !tmem_offset && !pfn_offset && cli_va )
tmh_copy_page(tmem_va, cli_va);
else if ( (tmem_offset+len <= PAGE_SIZE) &&
(pfn_offset+len <= PAGE_SIZE) )
- memcpy((char *)tmem_va+tmem_offset,(char *)cli_va+pfn_offset,len);
- if ( !tmemc )
+ {
+ if ( cli_va )
+ memcpy(tmem_va + tmem_offset, cli_va + pfn_offset, len);
+ else if ( copy_from_guest_offset(tmem_va + tmem_offset, clibuf,
+ pfn_offset, len) )
+ rc = -EFAULT;
+ }
+ if ( cli_va )
cli_put_page(cmfn, cli_va, cli_pfp, cli_mfn, 0);
unmap_domain_page(tmem_va);
- return 1;
+ return rc;
}
EXPORT int tmh_compress_from_client(tmem_cli_mfn_t cmfn,
- void **out_va, size_t *out_len, void *cli_va)
+ void **out_va, size_t *out_len, tmem_cli_va_t clibuf)
{
int ret = 0;
unsigned char *dmem = this_cpu(dstmem);
unsigned char *wmem = this_cpu(workmem);
+ char *scratch = this_cpu(scratch_page);
pfp_t *cli_pfp = NULL;
unsigned long cli_mfn = 0;
- bool_t tmemc = cli_va != NULL; /* if true, cli_va is control-op buffer */
+ void *cli_va = NULL;
if ( dmem == NULL || wmem == NULL )
return 0; /* no buffer, so can't compress */
- if ( !tmemc )
+ if ( guest_handle_is_null(clibuf) )
{
cli_va = cli_get_page(cmfn, &cli_mfn, &cli_pfp, 0);
if ( cli_va == NULL )
return -EFAULT;
}
+ else if ( !scratch )
+ return 0;
+ else if ( copy_from_guest(scratch, clibuf, PAGE_SIZE) )
+ return -EFAULT;
mb();
- ret = lzo1x_1_compress(cli_va, PAGE_SIZE, dmem, out_len, wmem);
+ ret = lzo1x_1_compress(cli_va ?: scratch, PAGE_SIZE, dmem, out_len, wmem);
ASSERT(ret == LZO_E_OK);
*out_va = dmem;
- if ( !tmemc )
+ if ( cli_va )
cli_put_page(cmfn, cli_va, cli_pfp, cli_mfn, 0);
- unmap_domain_page(cli_va);
return 1;
}
EXPORT int tmh_copy_to_client(tmem_cli_mfn_t cmfn, pfp_t *pfp,
- pagesize_t tmem_offset, pagesize_t pfn_offset, pagesize_t len, void *cli_va)
+ pagesize_t tmem_offset, pagesize_t pfn_offset, pagesize_t len,
+ tmem_cli_va_t clibuf)
{
unsigned long tmem_mfn, cli_mfn = 0;
- void *tmem_va;
+ char *tmem_va, *cli_va = NULL;
pfp_t *cli_pfp = NULL;
- bool_t tmemc = cli_va != NULL; /* if true, cli_va is control-op buffer */
+ int rc = 1;
ASSERT(pfp != NULL);
- if ( !tmemc )
+ if ( guest_handle_is_null(clibuf) )
{
cli_va = cli_get_page(cmfn, &cli_mfn, &cli_pfp, 1);
if ( cli_va == NULL )
@@ -223,37 +239,48 @@ EXPORT int tmh_copy_to_client(tmem_cli_m
}
tmem_mfn = page_to_mfn(pfp);
tmem_va = map_domain_page(tmem_mfn);
- if (len == PAGE_SIZE && !tmem_offset && !pfn_offset)
+ if ( len == PAGE_SIZE && !tmem_offset && !pfn_offset && cli_va )
tmh_copy_page(cli_va, tmem_va);
else if ( (tmem_offset+len <= PAGE_SIZE) && (pfn_offset+len <= PAGE_SIZE) )
- memcpy((char *)cli_va+pfn_offset,(char *)tmem_va+tmem_offset,len);
+ {
+ if ( cli_va )
+ memcpy(cli_va + pfn_offset, tmem_va + tmem_offset, len);
+ else if ( copy_to_guest_offset(clibuf, pfn_offset,
+ tmem_va + tmem_offset, len) )
+ rc = -EFAULT;
+ }
unmap_domain_page(tmem_va);
- if ( !tmemc )
+ if ( cli_va )
cli_put_page(cmfn, cli_va, cli_pfp, cli_mfn, 1);
mb();
- return 1;
+ return rc;
}
EXPORT int tmh_decompress_to_client(tmem_cli_mfn_t cmfn, void *tmem_va,
- size_t size, void *cli_va)
+ size_t size, tmem_cli_va_t clibuf)
{
unsigned long cli_mfn = 0;
pfp_t *cli_pfp = NULL;
+ void *cli_va = NULL;
+ char *scratch = this_cpu(scratch_page);
size_t out_len = PAGE_SIZE;
- bool_t tmemc = cli_va != NULL; /* if true, cli_va is control-op buffer */
int ret;
- if ( !tmemc )
+ if ( guest_handle_is_null(clibuf) )
{
cli_va = cli_get_page(cmfn, &cli_mfn, &cli_pfp, 1);
if ( cli_va == NULL )
return -EFAULT;
}
- ret = lzo1x_decompress_safe(tmem_va, size, cli_va, &out_len);
+ else if ( !scratch )
+ return 0;
+ ret = lzo1x_decompress_safe(tmem_va, size, cli_va ?: scratch, &out_len);
ASSERT(ret == LZO_E_OK);
ASSERT(out_len == PAGE_SIZE);
- if ( !tmemc )
+ if ( cli_va )
cli_put_page(cmfn, cli_va, cli_pfp, cli_mfn, 1);
+ else if ( copy_to_guest(clibuf, scratch, PAGE_SIZE) )
+ return -EFAULT;
mb();
return 1;
}
@@ -423,6 +450,11 @@ static int cpu_callback(
struct page_info *p = alloc_domheap_pages(0, workmem_order, 0);
per_cpu(workmem, cpu) = p ? page_to_virt(p) : NULL;
}
+ if ( per_cpu(scratch_page, cpu) == NULL )
+ {
+ struct page_info *p = alloc_domheap_page(NULL, 0);
+ per_cpu(scratch_page, cpu) = p ? page_to_virt(p) : NULL;
+ }
break;
}
case CPU_DEAD:
@@ -439,6 +471,11 @@ static int cpu_callback(
free_domheap_pages(p, workmem_order);
per_cpu(workmem, cpu) = NULL;
}
+ if ( per_cpu(scratch_page, cpu) != NULL )
+ {
+ free_domheap_page(virt_to_page(per_cpu(scratch_page, cpu)));
+ per_cpu(scratch_page, cpu) = NULL;
+ }
break;
}
default:
--- a/xen/include/xen/tmem_xen.h
+++ b/xen/include/xen/tmem_xen.h
@@ -482,27 +482,33 @@ static inline int tmh_get_tmemop_from_cl
return copy_from_guest(op, uops, 1);
}
+#define tmh_cli_buf_null guest_handle_from_ptr(NULL, char)
+
static inline void tmh_copy_to_client_buf_offset(tmem_cli_va_t clibuf, int off,
char *tmembuf, int len)
{
copy_to_guest_offset(clibuf,off,tmembuf,len);
}
+#define tmh_copy_to_client_buf(clibuf, tmembuf, cnt) \
+ copy_to_guest(guest_handle_cast(clibuf, void), tmembuf, cnt)
+
+#define tmh_client_buf_add guest_handle_add_offset
+
#define TMH_CLI_ID_NULL ((cli_id_t)((domid_t)-1L))
#define tmh_cli_id_str "domid"
#define tmh_client_str "domain"
-extern int tmh_decompress_to_client(tmem_cli_mfn_t,void*,size_t,void*);
+int tmh_decompress_to_client(tmem_cli_mfn_t, void *, size_t, tmem_cli_va_t);
-extern int tmh_compress_from_client(tmem_cli_mfn_t,void**,size_t *,void*);
+int tmh_compress_from_client(tmem_cli_mfn_t, void **, size_t *, tmem_cli_va_t);
-extern int tmh_copy_from_client(pfp_t *pfp,
- tmem_cli_mfn_t cmfn, pagesize_t tmem_offset,
- pagesize_t pfn_offset, pagesize_t len, void *cva);
+int tmh_copy_from_client(pfp_t *, tmem_cli_mfn_t, pagesize_t tmem_offset,
+ pagesize_t pfn_offset, pagesize_t len, tmem_cli_va_t);
-extern int tmh_copy_to_client(tmem_cli_mfn_t cmfn, pfp_t *pfp,
- pagesize_t tmem_offset, pagesize_t pfn_offset, pagesize_t len, void *cva);
+int tmh_copy_to_client(tmem_cli_mfn_t, pfp_t *, pagesize_t tmem_offset,
+ pagesize_t pfn_offset, pagesize_t len, tmem_cli_va_t);
extern int tmh_copy_tze_to_client(tmem_cli_mfn_t cmfn, void *tmem_va, pagesize_t len);
++++++ 25855-tmem-xsa-15-6.patch ++++++
# HG changeset patch
# User Jan Beulich <jbeulich(a)suse.com>
# Date 1347365879 -7200
# Node ID 33b8c42a87ec2fa6e6533dd9ee7603f732b168f5
# Parent ccd60ed6c555e1816cac448fcb20a84533977b43
tmem: detect arithmetic overflow in tmh_copy_{from,to}_client()
This implies adjusting callers to deal with errors other than -EFAULT
and removing some comments which would otherwise become stale.
Reported-by: Tim Deegan <tim(a)xen.org>
Signed-off-by: Jan Beulich <jbeulich(a)suse.com>
Acked-by: Dan Magenheimer <dan.magenheimer(a)oracle.com>
--- a/xen/common/tmem.c
+++ b/xen/common/tmem.c
@@ -1535,7 +1535,7 @@ copy_uncompressed:
/* tmh_copy_from_client properly handles len==0 and offsets != 0 */
ret = tmh_copy_from_client(pgp->pfp, cmfn, tmem_offset, pfn_offset, len,
tmh_cli_buf_null);
- if ( ret == -EFAULT )
+ if ( ret < 0 )
goto bad_copy;
if ( tmh_dedup_enabled() && !is_persistent(pool) )
{
@@ -1556,9 +1556,7 @@ done:
return 1;
bad_copy:
- /* this should only happen if the client passed a bad mfn */
failed_copies++;
- ret = -EFAULT;
goto cleanup;
failed_dup:
@@ -1662,7 +1660,7 @@ copy_uncompressed:
/* tmh_copy_from_client properly handles len==0 (TMEM_NEW_PAGE) */
ret = tmh_copy_from_client(pgp->pfp, cmfn, tmem_offset, pfn_offset, len,
clibuf);
- if ( ret == -EFAULT )
+ if ( ret < 0 )
goto bad_copy;
if ( tmh_dedup_enabled() && !is_persistent(pool) )
{
@@ -1702,8 +1700,6 @@ insert_page:
return 1;
bad_copy:
- /* this should only happen if the client passed a bad mfn */
- ret = -EFAULT;
failed_copies++;
delete_and_free:
@@ -1737,7 +1733,7 @@ static NOINLINE int do_tmem_get(pool_t *
pgp_t *pgp;
client_t *client = pool->client;
DECL_LOCAL_CYC_COUNTER(decompress);
- int rc = -EFAULT;
+ int rc;
if ( !_atomic_read(pool->pgp_count) )
return -EEMPTY;
@@ -1761,20 +1757,20 @@ static NOINLINE int do_tmem_get(pool_t *
ASSERT(pgp->size != -1);
if ( tmh_dedup_enabled() && !is_persistent(pool) &&
pgp->firstbyte != NOT_SHAREABLE )
- {
rc = pcd_copy_to_client(cmfn, pgp);
- if ( rc <= 0 )
- goto bad_copy;
- } else if ( pgp->size != 0 ) {
+ else if ( pgp->size != 0 )
+ {
START_CYC_COUNTER(decompress);
rc = tmh_decompress_to_client(cmfn, pgp->cdata,
pgp->size, clibuf);
- if ( rc <= 0 )
- goto bad_copy;
END_CYC_COUNTER(decompress);
- } else if ( tmh_copy_to_client(cmfn, pgp->pfp, tmem_offset,
- pfn_offset, len, clibuf) == -EFAULT)
+ }
+ else
+ rc = tmh_copy_to_client(cmfn, pgp->pfp, tmem_offset,
+ pfn_offset, len, clibuf);
+ if ( rc <= 0 )
goto bad_copy;
+
if ( is_ephemeral(pool) )
{
if ( is_private(pool) )
@@ -1811,7 +1807,6 @@ static NOINLINE int do_tmem_get(pool_t *
return 1;
bad_copy:
- /* this should only happen if the client passed a bad mfn */
failed_copies++;
return rc;
}
--- a/xen/common/tmem_xen.c
+++ b/xen/common/tmem_xen.c
@@ -153,6 +153,8 @@ EXPORT int tmh_copy_from_client(pfp_t *p
pfp_t *cli_pfp = NULL;
int rc = 1;
+ if ( tmem_offset > PAGE_SIZE || pfn_offset > PAGE_SIZE || len > PAGE_SIZE )
+ return -EINVAL;
ASSERT(pfp != NULL);
tmem_mfn = page_to_mfn(pfp);
tmem_va = map_domain_page(tmem_mfn);
@@ -183,6 +185,8 @@ EXPORT int tmh_copy_from_client(pfp_t *p
pfn_offset, len) )
rc = -EFAULT;
}
+ else if ( len )
+ rc = -EINVAL;
if ( cli_va )
cli_put_page(cmfn, cli_va, cli_pfp, cli_mfn, 0);
unmap_domain_page(tmem_va);
@@ -230,6 +234,8 @@ EXPORT int tmh_copy_to_client(tmem_cli_m
pfp_t *cli_pfp = NULL;
int rc = 1;
+ if ( tmem_offset > PAGE_SIZE || pfn_offset > PAGE_SIZE || len > PAGE_SIZE )
+ return -EINVAL;
ASSERT(pfp != NULL);
if ( guest_handle_is_null(clibuf) )
{
@@ -249,6 +255,8 @@ EXPORT int tmh_copy_to_client(tmem_cli_m
tmem_va + tmem_offset, len) )
rc = -EFAULT;
}
+ else if ( len )
+ rc = -EINVAL;
unmap_domain_page(tmem_va);
if ( cli_va )
cli_put_page(cmfn, cli_va, cli_pfp, cli_mfn, 1);
++++++ 25856-tmem-xsa-15-7.patch ++++++
# HG changeset patch
# User Jan Beulich <jbeulich(a)suse.com>
# Date 1347365888 -7200
# Node ID 83b97a59888b6d2d0f984b8403bd5764dd55c10c
# Parent 33b8c42a87ec2fa6e6533dd9ee7603f732b168f5
tmem: properly drop lock on error path in do_tmem_get()
Also remove a bogus assertion.
Reported-by: Tim Deegan <tim(a)xen.org>
Signed-off-by: Jan Beulich <jbeulich(a)suse.com>
Acked-by: Dan Magenheimer <dan.magenheimer(a)oracle.com>
--- a/xen/common/tmem.c
+++ b/xen/common/tmem.c
@@ -1790,7 +1790,6 @@ static NOINLINE int do_tmem_get(pool_t *
list_del(&pgp->us.client_eph_pages);
list_add_tail(&pgp->us.client_eph_pages,&client->ephemeral_page_list);
tmem_spin_unlock(&eph_lists_spinlock);
- ASSERT(obj != NULL);
obj->last_client = tmh_get_cli_id_from_current();
}
}
@@ -1807,6 +1806,8 @@ static NOINLINE int do_tmem_get(pool_t *
return 1;
bad_copy:
+ obj->no_evict = 0;
+ tmem_spin_unlock(&obj->obj_spinlock);
failed_copies++;
return rc;
}
++++++ 25857-tmem-xsa-15-8.patch ++++++
# HG changeset patch
# User Jan Beulich <jbeulich(a)suse.com>
# Date 1347365906 -7200
# Node ID 109ea6a0c23aa0c5df79e3f5658162aed959ffcf
# Parent 83b97a59888b6d2d0f984b8403bd5764dd55c10c
tmem: properly drop lock on error path in do_tmem_op()
Reported-by: Tim Deegan <tim(a)xen.org>
Signed-off-by: Jan Beulich <jbeulich(a)suse.com>
Acked-by: Dan Magenheimer <dan.magenheimer(a)oracle.com>
--- a/xen/common/tmem.c
+++ b/xen/common/tmem.c
@@ -2659,13 +2659,19 @@ EXPORT long do_tmem_op(tmem_cli_op_t uop
if ( client != NULL && tmh_client_is_dying(client) )
{
rc = -ENODEV;
- goto out;
+ if ( tmh_lock_all )
+ goto out;
+ simple_error:
+ errored_tmem_ops++;
+ return rc;
}
if ( unlikely(tmh_get_tmemop_from_client(&op, uops) != 0) )
{
printk("tmem: can't get tmem struct from %s\n",client_str);
rc = -EFAULT;
+ if ( !tmh_lock_all )
+ goto simple_error;
goto out;
}
++++++ 25858-tmem-xsa-15-9.patch ++++++
# HG changeset patch
# User Jan Beulich <jbeulich(a)suse.com>
# Date 1347365916 -7200
# Node ID 0520982a602a3ac06dd5bc573ddaff5edc9c6987
# Parent 109ea6a0c23aa0c5df79e3f5658162aed959ffcf
tmem: reduce severity of log messages
Otherwise they can be used by a guest to spam the hypervisor log with
all settings at their defaults.
Signed-off-by: Jan Beulich <jbeulich(a)suse.com>
Acked-by: Zhenzhong Duan <zhenzhong.duan(a)oracle.com>
--- a/xen/common/tmem.c
+++ b/xen/common/tmem.c
@@ -1107,7 +1107,7 @@ static int shared_pool_join(pool_t *pool
sl->client = new_client;
list_add_tail(&sl->share_list, &pool->share_list);
if ( new_client->cli_id != pool->client->cli_id )
- printk("adding new %s %d to shared pool owned by %s %d\n",
+ tmh_client_info("adding new %s %d to shared pool owned by %s %d\n",
client_str, new_client->cli_id, client_str, pool->client->cli_id);
return ++pool->shared_count;
}
@@ -1137,7 +1137,7 @@ static NOINLINE void shared_pool_reassig
old_client->eph_count -= _atomic_read(pool->pgp_count);
list_splice_init(&old_client->ephemeral_page_list,
&new_client->ephemeral_page_list);
- printk("reassigned shared pool from %s=%d to %s=%d pool_id=%d\n",
+ tmh_client_info("reassigned shared pool from %s=%d to %s=%d pool_id=%d\n",
cli_id_str, old_client->cli_id, cli_id_str, new_client->cli_id, poolid);
pool->pool_id = poolid;
}
@@ -1173,7 +1173,7 @@ static NOINLINE int shared_pool_quit(poo
}
return 0;
}
- printk("tmem: no match unsharing pool, %s=%d\n",
+ tmh_client_warn("tmem: no match unsharing pool, %s=%d\n",
cli_id_str,pool->client->cli_id);
return -1;
}
@@ -1184,17 +1184,18 @@ static void pool_flush(pool_t *pool, cli
ASSERT(pool != NULL);
if ( (is_shared(pool)) && (shared_pool_quit(pool,cli_id) > 0) )
{
- printk("tmem: %s=%d no longer using shared pool %d owned by %s=%d\n",
+ tmh_client_warn("tmem: %s=%d no longer using shared pool %d owned by %s=%d\n",
cli_id_str, cli_id, pool->pool_id, cli_id_str,pool->client->cli_id);
return;
}
- printk("%s %s-%s tmem pool ",destroy?"destroying":"flushing",
- is_persistent(pool) ? "persistent" : "ephemeral" ,
- is_shared(pool) ? "shared" : "private");
- printk("%s=%d pool_id=%d\n", cli_id_str,pool->client->cli_id,pool->pool_id);
+ tmh_client_info("%s %s-%s tmem pool %s=%d pool_id=%d\n",
+ destroy ? "destroying" : "flushing",
+ is_persistent(pool) ? "persistent" : "ephemeral" ,
+ is_shared(pool) ? "shared" : "private",
+ cli_id_str, pool->client->cli_id, pool->pool_id);
if ( pool->client->live_migrating )
{
- printk("can't %s pool while %s is live-migrating\n",
+ tmh_client_warn("can't %s pool while %s is live-migrating\n",
destroy?"destroy":"flush", client_str);
return;
}
@@ -1213,21 +1214,22 @@ static client_t *client_create(cli_id_t
client_t *client = tmh_alloc_infra(sizeof(client_t),__alignof__(client_t));
int i;
- printk("tmem: initializing tmem capability for %s=%d...",cli_id_str,cli_id);
+ tmh_client_info("tmem: initializing tmem capability for %s=%d...",
+ cli_id_str, cli_id);
if ( client == NULL )
{
- printk("failed... out of memory\n");
+ tmh_client_err("failed... out of memory\n");
goto fail;
}
memset(client,0,sizeof(client_t));
if ( (client->tmh = tmh_client_init(cli_id)) == NULL )
{
- printk("failed... can't allocate host-dependent part of client\n");
+ tmh_client_err("failed... can't allocate host-dependent part of client\n");
goto fail;
}
if ( !tmh_set_client_from_id(client, client->tmh, cli_id) )
{
- printk("failed... can't set client\n");
+ tmh_client_err("failed... can't set client\n");
goto fail;
}
client->cli_id = cli_id;
@@ -1249,7 +1251,7 @@ static client_t *client_create(cli_id_t
client->eph_count = client->eph_count_max = 0;
client->total_cycles = 0; client->succ_pers_puts = 0;
client->succ_eph_gets = 0; client->succ_pers_gets = 0;
- printk("ok\n");
+ tmh_client_info("ok\n");
return client;
fail:
@@ -1903,32 +1905,33 @@ static NOINLINE int do_tmem_new_pool(cli
cli_id = tmh_get_cli_id_from_current();
else
cli_id = this_cli_id;
- printk("tmem: allocating %s-%s tmem pool for %s=%d...",
+ tmh_client_info("tmem: allocating %s-%s tmem pool for %s=%d...",
persistent ? "persistent" : "ephemeral" ,
shared ? "shared" : "private", cli_id_str, cli_id);
if ( specversion != TMEM_SPEC_VERSION )
{
- printk("failed... unsupported spec version\n");
+ tmh_client_err("failed... unsupported spec version\n");
return -EPERM;
}
if ( pagebits != (PAGE_SHIFT - 12) )
{
- printk("failed... unsupported pagesize %d\n",1<<(pagebits+12));
+ tmh_client_err("failed... unsupported pagesize %d\n",
+ 1 << (pagebits + 12));
return -EPERM;
}
if ( flags & TMEM_POOL_PRECOMPRESSED )
{
- printk("failed... precompression flag set but unsupported\n");
+ tmh_client_err("failed... precompression flag set but unsupported\n");
return -EPERM;
}
if ( flags & TMEM_POOL_RESERVED_BITS )
{
- printk("failed... reserved bits must be zero\n");
+ tmh_client_err("failed... reserved bits must be zero\n");
return -EPERM;
}
if ( (pool = pool_alloc()) == NULL )
{
- printk("failed... out of memory\n");
+ tmh_client_err("failed... out of memory\n");
return -ENOMEM;
}
if ( this_cli_id != CLI_ID_NULL )
@@ -1947,7 +1950,7 @@ static NOINLINE int do_tmem_new_pool(cli
break;
if ( d_poolid >= MAX_POOLS_PER_DOMAIN )
{
- printk("failed... no more pool slots available for this %s\n",
+ tmh_client_err("failed... no more pool slots available for this %s\n",
client_str);
goto fail;
}
@@ -1977,9 +1980,8 @@ static NOINLINE int do_tmem_new_pool(cli
{
if ( shpool->uuid[0] == uuid_lo && shpool->uuid[1] == uuid_hi )
{
- printk("(matches shared pool uuid=%"PRIx64".%"PRIx64") ",
- uuid_hi, uuid_lo);
- printk("pool_id=%d\n",d_poolid);
+ tmh_client_info("(matches shared pool uuid=%"PRIx64".%"PRIx64") pool_id=%d\n",
+ uuid_hi, uuid_lo, d_poolid);
client->pools[d_poolid] = global_shared_pools[s_poolid];
shared_pool_join(global_shared_pools[s_poolid], client);
pool_free(pool);
@@ -1991,7 +1993,7 @@ static NOINLINE int do_tmem_new_pool(cli
}
if ( first_unused_s_poolid == MAX_GLOBAL_SHARED_POOLS )
{
- printk("tmem: failed... no global shared pool slots available\n");
+ tmh_client_warn("tmem: failed... no global shared pool slots available\n");
goto fail;
}
else
@@ -2007,7 +2009,7 @@ static NOINLINE int do_tmem_new_pool(cli
pool->pool_id = d_poolid;
pool->persistent = persistent;
pool->uuid[0] = uuid_lo; pool->uuid[1] = uuid_hi;
- printk("pool_id=%d\n",d_poolid);
+ tmh_client_info("pool_id=%d\n", d_poolid);
return d_poolid;
fail:
@@ -2030,14 +2032,15 @@ static int tmemc_freeze_pools(cli_id_t c
{
list_for_each_entry(client,&global_client_list,client_list)
client_freeze(client,freeze);
- printk("tmem: all pools %s for all %ss\n",s,client_str);
+ tmh_client_info("tmem: all pools %s for all %ss\n", s, client_str);
}
else
{
if ( (client = tmh_client_from_cli_id(cli_id)) == NULL)
return -1;
client_freeze(client,freeze);
- printk("tmem: all pools %s for %s=%d\n",s,cli_id_str,cli_id);
+ tmh_client_info("tmem: all pools %s for %s=%d\n",
+ s, cli_id_str, cli_id);
}
return 0;
}
@@ -2048,7 +2051,7 @@ static int tmemc_flush_mem(cli_id_t cli_
if ( cli_id != CLI_ID_NULL )
{
- printk("tmem: %s-specific flush not supported yet, use --all\n",
+ tmh_client_warn("tmem: %s-specific flush not supported yet, use --all\n",
client_str);
return -1;
}
@@ -2261,13 +2264,15 @@ static int tmemc_set_var_one(client_t *c
case TMEMC_SET_WEIGHT:
old_weight = client->weight;
client->weight = arg1;
- printk("tmem: weight set to %d for %s=%d\n",arg1,cli_id_str,cli_id);
+ tmh_client_info("tmem: weight set to %d for %s=%d\n",
+ arg1, cli_id_str, cli_id);
atomic_sub(old_weight,&client_weight_total);
atomic_add(client->weight,&client_weight_total);
break;
case TMEMC_SET_CAP:
client->cap = arg1;
- printk("tmem: cap set to %d for %s=%d\n",arg1,cli_id_str,cli_id);
+ tmh_client_info("tmem: cap set to %d for %s=%d\n",
+ arg1, cli_id_str, cli_id);
break;
case TMEMC_SET_COMPRESS:
#ifdef __i386__
@@ -2275,17 +2280,17 @@ static int tmemc_set_var_one(client_t *c
#endif
if ( tmh_dedup_enabled() )
{
- printk("tmem: compression %s for all %ss, cannot be changed "
- "when tmem_dedup is enabled\n",
- tmh_compression_enabled() ? "enabled" : "disabled",client_str);
+ tmh_client_warn("tmem: compression %s for all %ss, cannot be changed when tmem_dedup is enabled\n",
+ tmh_compression_enabled() ? "enabled" : "disabled",
+ client_str);
return -1;
}
client->compress = arg1 ? 1 : 0;
- printk("tmem: compression %s for %s=%d\n",
+ tmh_client_info("tmem: compression %s for %s=%d\n",
arg1 ? "enabled" : "disabled",cli_id_str,cli_id);
break;
default:
- printk("tmem: unknown subop %d for tmemc_set_var\n",subop);
+ tmh_client_warn("tmem: unknown subop %d for tmemc_set_var\n", subop);
return -1;
}
return 0;
@@ -2668,7 +2673,7 @@ EXPORT long do_tmem_op(tmem_cli_op_t uop
if ( unlikely(tmh_get_tmemop_from_client(&op, uops) != 0) )
{
- printk("tmem: can't get tmem struct from %s\n",client_str);
+ tmh_client_err("tmem: can't get tmem struct from %s\n", client_str);
rc = -EFAULT;
if ( !tmh_lock_all )
goto simple_error;
@@ -2702,7 +2707,8 @@ EXPORT long do_tmem_op(tmem_cli_op_t uop
tmem_write_lock_set = 1;
if ( (client = client_create(tmh_get_cli_id_from_current())) == NULL )
{
- printk("tmem: can't create tmem structure for %s\n",client_str);
+ tmh_client_err("tmem: can't create tmem structure for %s\n",
+ client_str);
rc = -ENOMEM;
goto out;
}
@@ -2726,8 +2732,8 @@ EXPORT long do_tmem_op(tmem_cli_op_t uop
if ( ((uint32_t)op.pool_id >= MAX_POOLS_PER_DOMAIN) ||
((pool = client->pools[op.pool_id]) == NULL) )
{
+ tmh_client_err("tmem: operation requested on uncreated pool\n");
rc = -ENODEV;
- printk("tmem: operation requested on uncreated pool\n");
goto out;
}
ASSERT_SENTINEL(pool,POOL);
@@ -2783,11 +2789,11 @@ EXPORT long do_tmem_op(tmem_cli_op_t uop
break;
case TMEM_XCHG:
/* need to hold global lock to ensure xchg is atomic */
- printk("tmem_xchg op not implemented yet\n");
+ tmh_client_warn("tmem_xchg op not implemented yet\n");
rc = 0;
break;
default:
- printk("tmem: op %d not implemented\n", op.cmd);
+ tmh_client_warn("tmem: op %d not implemented\n", op.cmd);
rc = 0;
break;
}
--- a/xen/include/xen/tmem_xen.h
+++ b/xen/include/xen/tmem_xen.h
@@ -512,6 +512,9 @@ int tmh_copy_to_client(tmem_cli_mfn_t, p
extern int tmh_copy_tze_to_client(tmem_cli_mfn_t cmfn, void *tmem_va, pagesize_t len);
+#define tmh_client_err(fmt, args...) printk(XENLOG_G_ERR fmt, ##args)
+#define tmh_client_warn(fmt, args...) printk(XENLOG_G_WARNING fmt, ##args)
+#define tmh_client_info(fmt, args...) printk(XENLOG_G_INFO fmt, ##args)
#define TMEM_PERF
#ifdef TMEM_PERF
++++++ 25859-tmem-missing-break.patch ++++++
# HG changeset patch
# User Dan Magenheimer <dan.magenheimer(a)oracle.com>
# Date 1347365943 -7200
# Node ID 16e0392c6594b1757bbaa82076630a73d843229b
# Parent 0520982a602a3ac06dd5bc573ddaff5edc9c6987
tmem: fixup 2010 cleanup patch that breaks tmem save/restore
20918:a3fa6d444b25 "Fix domain reference leaks" (in Feb 2010, by Jan)
does some cleanup in addition to the leak fixes. Unfortunately, that
cleanup inadvertently resulted in an incorrect fallthrough in a switch
statement which breaks tmem save/restore.
That broken patch was apparently applied to 4.0-testing and 4.1-testing
so those are broken as well.
What is the process now for requesting back-patches to 4.0 and 4.1?
(Side note: This does not by itself entirely fix save/restore in 4.2.)
Signed-off-by: Dan Magenheimer <dan.magenheimer(a)oracle.com>
Signed-off-by: Jan Beulich <jbeulich(a)suse.com>
Committed-by: Jan Beulich <jbeulich(a)suse.com>
--- a/xen/common/tmem.c
+++ b/xen/common/tmem.c
@@ -2419,6 +2419,7 @@ static NOINLINE int tmemc_save_subop(int
break;
tmh_copy_to_client_buf(buf, pool->uuid, 2);
rc = 0;
+ break;
case TMEMC_SAVE_END:
if ( client == NULL )
break;
@@ -2429,6 +2430,7 @@ static NOINLINE int tmemc_save_subop(int
pgp_free_from_inv_list(client,pgp);
client->frozen = client->was_frozen;
rc = 0;
+ break;
}
return rc;
}
++++++ 25860-tmem-cleanup.patch ++++++
# HG changeset patch
# User Jan Beulich <jbeulich(a)suse.com>
# Date 1347365969 -7200
# Node ID e4cb8411161043c726f699252cc761e77853e820
# Parent 16e0392c6594b1757bbaa82076630a73d843229b
tmem: cleanup
- one more case of checking for a specific rather than any error
- drop no longer needed first parameter from cli_put_page()
- drop a redundant cast
Signed-off-by: Jan Beulich <jbeulich(a)suse.com>
Acked-by: Dan Magenheimer <dan.magenheimer(a)oracle.com>
--- a/xen/common/tmem.c
+++ b/xen/common/tmem.c
@@ -1468,7 +1468,7 @@ static NOINLINE int do_tmem_put_compress
pgp_free_data(pgp, pgp->us.obj->pool);
START_CYC_COUNTER(compress);
ret = tmh_compress_from_client(cmfn, &dst, &size, clibuf);
- if ( (ret == -EFAULT) || (ret == 0) )
+ if ( ret <= 0 )
goto out;
else if ( (size == 0) || (size >= tmem_subpage_maxsize()) ) {
ret = 0;
--- a/xen/common/tmem_xen.c
+++ b/xen/common/tmem_xen.c
@@ -97,7 +97,7 @@ static inline void *cli_get_page(tmem_cl
return NULL;
}
-static inline void cli_put_page(tmem_cli_mfn_t cmfn, void *cli_va, pfp_t *cli_pfp,
+static inline void cli_put_page(void *cli_va, pfp_t *cli_pfp,
unsigned long cli_mfn, bool_t mark_dirty)
{
ASSERT(0);
@@ -126,20 +126,20 @@ static inline void *cli_get_page(tmem_cl
}
*pcli_mfn = page_to_mfn(page);
- *pcli_pfp = (pfp_t *)page;
+ *pcli_pfp = page;
return map_domain_page(*pcli_mfn);
}
-static inline void cli_put_page(tmem_cli_mfn_t cmfn, void *cli_va, pfp_t *cli_pfp,
+static inline void cli_put_page(void *cli_va, pfp_t *cli_pfp,
unsigned long cli_mfn, bool_t mark_dirty)
{
if ( mark_dirty )
{
- put_page_and_type((struct page_info *)cli_pfp);
+ put_page_and_type(cli_pfp);
paging_mark_dirty(current->domain,cli_mfn);
}
else
- put_page((struct page_info *)cli_pfp);
+ put_page(cli_pfp);
unmap_domain_page(cli_va);
}
#endif
@@ -188,7 +188,7 @@ EXPORT int tmh_copy_from_client(pfp_t *p
else if ( len )
rc = -EINVAL;
if ( cli_va )
- cli_put_page(cmfn, cli_va, cli_pfp, cli_mfn, 0);
+ cli_put_page(cli_va, cli_pfp, cli_mfn, 0);
unmap_domain_page(tmem_va);
return rc;
}
@@ -221,7 +221,7 @@ EXPORT int tmh_compress_from_client(tmem
ASSERT(ret == LZO_E_OK);
*out_va = dmem;
if ( cli_va )
- cli_put_page(cmfn, cli_va, cli_pfp, cli_mfn, 0);
+ cli_put_page(cli_va, cli_pfp, cli_mfn, 0);
return 1;
}
@@ -259,7 +259,7 @@ EXPORT int tmh_copy_to_client(tmem_cli_m
rc = -EINVAL;
unmap_domain_page(tmem_va);
if ( cli_va )
- cli_put_page(cmfn, cli_va, cli_pfp, cli_mfn, 1);
+ cli_put_page(cli_va, cli_pfp, cli_mfn, 1);
mb();
return rc;
}
@@ -286,7 +286,7 @@ EXPORT int tmh_decompress_to_client(tmem
ASSERT(ret == LZO_E_OK);
ASSERT(out_len == PAGE_SIZE);
if ( cli_va )
- cli_put_page(cmfn, cli_va, cli_pfp, cli_mfn, 1);
+ cli_put_page(cli_va, cli_pfp, cli_mfn, 1);
else if ( copy_to_guest(clibuf, scratch, PAGE_SIZE) )
return -EFAULT;
mb();
@@ -310,7 +310,7 @@ EXPORT int tmh_copy_tze_to_client(tmem_c
memcpy((char *)cli_va,(char *)tmem_va,len);
if ( len < PAGE_SIZE )
memset((char *)cli_va+len,0,PAGE_SIZE-len);
- cli_put_page(cmfn, cli_va, cli_pfp, cli_mfn, 1);
+ cli_put_page(cli_va, cli_pfp, cli_mfn, 1);
mb();
return 1;
}
++++++ 25861-x86-early-fixmap.patch ++++++
# HG changeset patch
# User Jan Beulich <jbeulich(a)suse.com>
# Date 1347371120 -7200
# Node ID 51c2d7c83cbc2a0357ce112a463f91d354dcdba9
# Parent e4cb8411161043c726f699252cc761e77853e820
x86: allow early use of fixmaps
As a prerequisite for adding an EHCI debug port based console
implementation, set up the page tables needed for (a sub-portion of)
the fixmaps together with other boot time page table construction.
Signed-off-by: Jan Beulich <jbeulich(a)suse.com>
Acked-by: Keir Fraser <keir(a)xen.org>
--- a/xen/arch/x86/boot/head.S
+++ b/xen/arch/x86/boot/head.S
@@ -3,6 +3,7 @@
#include <public/xen.h>
#include <asm/asm_defns.h>
#include <asm/desc.h>
+#include <asm/fixmap.h>
#include <asm/page.h>
#include <asm/msr.h>
@@ -136,6 +137,9 @@ __start:
add $8,%edx
add $(1<<L2_PAGETABLE_SHIFT),%eax
loop 1b
+ /* Initialise L2 fixmap page directory entry. */
+ mov $(sym_phys(l1_fixmap)+7),%eax
+ mov %eax,sym_phys(l2_fixmap) + l2_table_offset(FIXADDR_TOP-1)*8
/* Initialise L3 identity-map page directory entries. */
mov $sym_phys(l3_identmap),%edi
mov $(sym_phys(l2_identmap)+7),%eax
@@ -144,9 +148,11 @@ __start:
add $8,%edi
add $PAGE_SIZE,%eax
loop 1b
- /* Initialise L3 xen-map page directory entry. */
+ /* Initialise L3 xen-map and fixmap page directory entries. */
mov $(sym_phys(l2_xenmap)+7),%eax
mov %eax,sym_phys(l3_xenmap) + l3_table_offset(XEN_VIRT_START)*8
+ mov $(sym_phys(l2_fixmap)+7),%eax
+ mov %eax,sym_phys(l3_xenmap) + l3_table_offset(FIXADDR_TOP-1)*8
/* Initialise L3 boot-map page directory entry. */
mov $(sym_phys(l2_bootmap)+7),%eax
mov %eax,sym_phys(l3_bootmap) + 0*8
@@ -172,6 +178,9 @@ __start:
add $(1<<L2_PAGETABLE_SHIFT),%eax
cmp $(16<<20)+0xe3,%eax
jne 1b
+ /* Initialise L2 fixmap page directory entry. */
+ mov $(sym_phys(l1_fixmap)+7),%eax
+ mov %eax,sym_phys(idle_pg_table_l2) + l2_table_offset(FIXADDR_TOP-1)*8
#endif
/* Initialize 4kB mappings of first 2MB or 4MB of memory. */
--- a/xen/arch/x86/efi/boot.c
+++ b/xen/arch/x86/efi/boot.c
@@ -17,6 +17,9 @@
#include <xen/vga.h>
#include <asm/e820.h>
#include <asm/edd.h>
+#define __ASSEMBLY__ /* avoid pulling in ACPI stuff (conflicts with EFI) */
+#include <asm/fixmap.h>
+#undef __ASSEMBLY__
#include <asm/mm.h>
#include <asm/msr.h>
#include <asm/processor.h>
@@ -1123,14 +1126,19 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SY
slot &= L2_PAGETABLE_ENTRIES - 1;
l2_bootmap[slot] = l2e_from_paddr(addr, __PAGE_HYPERVISOR|_PAGE_PSE);
}
+ /* Initialise L2 fixmap page directory entry. */
+ l2_fixmap[l2_table_offset(FIXADDR_TOP - 1)] =
+ l2e_from_paddr((UINTN)l1_fixmap, __PAGE_HYPERVISOR);
/* Initialise L3 identity-map page directory entries. */
for ( i = 0; i < ARRAY_SIZE(l2_identmap) / L2_PAGETABLE_ENTRIES; ++i )
l3_identmap[i] = l3e_from_paddr((UINTN)(l2_identmap +
i * L2_PAGETABLE_ENTRIES),
__PAGE_HYPERVISOR);
- /* Initialise L3 xen-map page directory entry. */
+ /* Initialise L3 xen-map and fixmap page directory entries. */
l3_xenmap[l3_table_offset(XEN_VIRT_START)] =
l3e_from_paddr((UINTN)l2_xenmap, __PAGE_HYPERVISOR);
+ l3_xenmap[l3_table_offset(FIXADDR_TOP - 1)] =
+ l3e_from_paddr((UINTN)l2_fixmap, __PAGE_HYPERVISOR);
/* Initialise L3 boot-map page directory entries. */
l3_bootmap[l3_table_offset(xen_phys_start)] =
l3e_from_paddr((UINTN)l2_bootmap, __PAGE_HYPERVISOR);
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -130,6 +130,10 @@
l1_pgentry_t __attribute__ ((__section__ (".bss.page_aligned")))
l1_identmap[L1_PAGETABLE_ENTRIES];
+/* Mapping of the fixmap space needed early. */
+l1_pgentry_t __attribute__ ((__section__ (".bss.page_aligned")))
+ l1_fixmap[L1_PAGETABLE_ENTRIES];
+
#define MEM_LOG(_f, _a...) gdprintk(XENLOG_WARNING , _f "\n" , ## _a)
/*
--- a/xen/arch/x86/x86_64/mm.c
+++ b/xen/arch/x86/x86_64/mm.c
@@ -65,6 +65,10 @@ l3_pgentry_t __attribute__ ((__section__
l2_pgentry_t __attribute__ ((__section__ (".bss.page_aligned")))
l2_xenmap[L2_PAGETABLE_ENTRIES];
+/* Enough page directories to map the early fixmap space. */
+l2_pgentry_t __attribute__ ((__section__ (".bss.page_aligned")))
+ l2_fixmap[L2_PAGETABLE_ENTRIES];
+
/* Enough page directories to map into the bottom 1GB. */
l3_pgentry_t __attribute__ ((__section__ (".bss.page_aligned")))
l3_bootmap[L3_PAGETABLE_ENTRIES];
--- a/xen/include/asm-x86/config.h
+++ b/xen/include/asm-x86/config.h
@@ -315,7 +315,7 @@ extern unsigned char boot_edid_info[128]
#define MACHPHYS_MBYTES 16 /* 1 MB needed per 1 GB memory */
#define FRAMETABLE_MBYTES (MACHPHYS_MBYTES * 6)
-#define IOREMAP_VIRT_END 0UL
+#define IOREMAP_VIRT_END _AC(0,UL)
#define IOREMAP_VIRT_START (IOREMAP_VIRT_END - (IOREMAP_MBYTES<<20))
#define DIRECTMAP_VIRT_END IOREMAP_VIRT_START
#define DIRECTMAP_VIRT_START (DIRECTMAP_VIRT_END - (DIRECTMAP_MBYTES<<20))
--- a/xen/include/asm-x86/fixmap.h
+++ b/xen/include/asm-x86/fixmap.h
@@ -13,12 +13,17 @@
#define _ASM_FIXMAP_H
#include <xen/config.h>
+#include <asm/page.h>
+
+#define FIXADDR_TOP (IOREMAP_VIRT_END - PAGE_SIZE)
+
+#ifndef __ASSEMBLY__
+
#include <xen/pfn.h>
#include <xen/kexec.h>
#include <xen/iommu.h>
#include <asm/apicdef.h>
#include <asm/acpi.h>
-#include <asm/page.h>
#include <asm/amd-iommu.h>
#include <asm/msi.h>
#include <acpi/apei.h>
@@ -66,7 +71,6 @@ enum fixed_addresses {
__end_of_fixed_addresses
};
-#define FIXADDR_TOP (IOREMAP_VIRT_END - PAGE_SIZE)
#define FIXADDR_SIZE (__end_of_fixed_addresses << PAGE_SHIFT)
#define FIXADDR_START (FIXADDR_TOP - FIXADDR_SIZE)
@@ -90,4 +94,6 @@ static inline unsigned long virt_to_fix(
return __virt_to_fix(vaddr);
}
+#endif /* __ASSEMBLY__ */
+
#endif
--- a/xen/include/asm-x86/page.h
+++ b/xen/include/asm-x86/page.h
@@ -1,6 +1,8 @@
#ifndef __X86_PAGE_H__
#define __X86_PAGE_H__
+#include <xen/const.h>
+
/*
* It is important that the masks are signed quantities. This ensures that
* the compiler sign-extends a 32-bit mask to 64 bits if that is required.
@@ -306,13 +308,15 @@ extern l2_pgentry_t idle_pg_table_l2[
extern l2_pgentry_t *compat_idle_pg_table_l2;
extern unsigned int m2p_compat_vstart;
extern l2_pgentry_t l2_xenmap[L2_PAGETABLE_ENTRIES],
+ l2_fixmap[L2_PAGETABLE_ENTRIES],
l2_bootmap[L2_PAGETABLE_ENTRIES];
extern l3_pgentry_t l3_xenmap[L3_PAGETABLE_ENTRIES],
l3_identmap[L3_PAGETABLE_ENTRIES],
l3_bootmap[L3_PAGETABLE_ENTRIES];
#endif
extern l2_pgentry_t l2_identmap[4*L2_PAGETABLE_ENTRIES];
-extern l1_pgentry_t l1_identmap[L1_PAGETABLE_ENTRIES];
+extern l1_pgentry_t l1_identmap[L1_PAGETABLE_ENTRIES],
+ l1_fixmap[L1_PAGETABLE_ENTRIES];
void paging_init(void);
void setup_idle_pagetable(void);
#endif /* !defined(__ASSEMBLY__) */
--- /dev/null
+++ b/xen/include/xen/const.h
@@ -0,0 +1,24 @@
+/* const.h: Macros for dealing with constants. */
+
+#ifndef __XEN_CONST_H__
+#define __XEN_CONST_H__
+
+/* Some constant macros are used in both assembler and
+ * C code. Therefore we cannot annotate them always with
+ * 'UL' and other type specifiers unilaterally. We
+ * use the following macros to deal with this.
+ *
+ * Similarly, _AT() will cast an expression with a type in C, but
+ * leave it unchanged in asm.
+ */
+
+#ifdef __ASSEMBLY__
+#define _AC(X,Y) X
+#define _AT(T,X) X
+#else
+#define __AC(X,Y) (X##Y)
+#define _AC(X,Y) __AC(X,Y)
+#define _AT(T,X) ((T)(X))
+#endif
+
+#endif /* __XEN_CONST_H__ */
++++++ 25862-sercon-non-com.patch ++++++
# HG changeset patch
# User Jan Beulich <jbeulich(a)suse.com>
# Date 1347371236 -7200
# Node ID 776a23fa0e938e4cf3307fc2e3b3f1a9488a5927
# Parent 51c2d7c83cbc2a0357ce112a463f91d354dcdba9
console: prepare for non-COMn port support
Widen SERHND_IDX (and use it where needed), introduce a flush low level
driver method, and remove unnecessary peeking of the common code at the
(driver specific) serial port identification string in the "console="
command line option value.
Signed-off-by: Jan Beulich <jbeulich(a)suse.com>
Acked-by: Keir Fraser <keir(a)xen.org>
--- a/xen/arch/x86/smpboot.c
+++ b/xen/arch/x86/smpboot.c
@@ -1017,7 +1017,7 @@ void __init smp_intr_init(void)
* Also ensure serial interrupts are high priority. We do not
* want them to be blocked by unacknowledged guest-bound interrupts.
*/
- for ( seridx = 0; seridx < 2; seridx++ )
+ for ( seridx = 0; seridx <= SERHND_IDX; seridx++ )
{
if ( (irq = serial_irq(seridx)) < 0 )
continue;
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -539,6 +539,7 @@ void printk(const char *fmt, ...)
void __init console_init_preirq(void)
{
char *p;
+ int sh;
serial_init_preirq();
@@ -551,8 +552,9 @@ void __init console_init_preirq(void)
vga_init();
else if ( !strncmp(p, "none", 4) )
continue;
- else if ( strncmp(p, "com", 3) ||
- (sercon_handle = serial_parse_handle(p)) == -1 )
+ else if ( (sh = serial_parse_handle(p)) >= 0 )
+ sercon_handle = sh;
+ else
{
char *q = strchr(p, ',');
if ( q != NULL )
--- a/xen/drivers/char/serial.c
+++ b/xen/drivers/char/serial.c
@@ -22,9 +22,11 @@ size_param("serial_tx_buffer", serial_tx
#define mask_serial_rxbuf_idx(_i) ((_i)&(serial_rxbufsz-1))
#define mask_serial_txbuf_idx(_i) ((_i)&(serial_txbufsz-1))
-static struct serial_port com[2] = {
- { .rx_lock = SPIN_LOCK_UNLOCKED, .tx_lock = SPIN_LOCK_UNLOCKED },
- { .rx_lock = SPIN_LOCK_UNLOCKED, .tx_lock = SPIN_LOCK_UNLOCKED }
+static struct serial_port com[SERHND_IDX + 1] = {
+ [0 ... SERHND_IDX] = {
+ .rx_lock = SPIN_LOCK_UNLOCKED,
+ .tx_lock = SPIN_LOCK_UNLOCKED
+ }
};
void serial_rx_interrupt(struct serial_port *port, struct cpu_user_regs *regs)
@@ -81,6 +83,8 @@ void serial_tx_interrupt(struct serial_p
port->driver->putc(
port, port->txbuf[mask_serial_txbuf_idx(port->txbufc++)]);
}
+ if ( i && port->driver->flush )
+ port->driver->flush(port);
}
spin_unlock(&port->tx_lock);
@@ -175,6 +179,9 @@ void serial_putc(int handle, char c)
__serial_putc(port, c);
+ if ( port->driver->flush )
+ port->driver->flush(port);
+
spin_unlock_irqrestore(&port->tx_lock, flags);
}
@@ -206,6 +213,9 @@ void serial_puts(int handle, const char
__serial_putc(port, c);
}
+ if ( port->driver->flush )
+ port->driver->flush(port);
+
spin_unlock_irqrestore(&port->tx_lock, flags);
}
@@ -261,10 +271,10 @@ int __init serial_parse_handle(char *con
switch ( conf[3] )
{
case '1':
- handle = 0;
+ handle = SERHND_COM1;
break;
case '2':
- handle = 1;
+ handle = SERHND_COM2;
break;
default:
goto fail;
@@ -365,6 +375,8 @@ void serial_start_sync(int handle)
port->driver->putc(
port, port->txbuf[mask_serial_txbuf_idx(port->txbufc++)]);
}
+ if ( port->driver->flush )
+ port->driver->flush(port);
}
spin_unlock_irqrestore(&port->tx_lock, flags);
--- a/xen/include/xen/serial.h
+++ b/xen/include/xen/serial.h
@@ -60,6 +60,8 @@ struct uart_driver {
int (*tx_empty)(struct serial_port *);
/* Put a character onto the serial line. */
void (*putc)(struct serial_port *, char);
+ /* Flush accumulated characters. */
+ void (*flush)(struct serial_port *);
/* Get a character from the serial line: returns 0 if none available. */
int (*getc)(struct serial_port *, char *);
/* Get IRQ number for this port's serial line: returns -1 if none. */
@@ -67,10 +69,12 @@ struct uart_driver {
};
/* 'Serial handles' are composed from the following fields. */
-#define SERHND_IDX (1<<0) /* COM1 or COM2? */
-#define SERHND_HI (1<<1) /* Mux/demux each transferred char by MSB. */
-#define SERHND_LO (1<<2) /* Ditto, except that the MSB is cleared. */
-#define SERHND_COOKED (1<<3) /* Newline/carriage-return translation? */
+#define SERHND_IDX (3<<0) /* COM1 or COM2? */
+# define SERHND_COM1 (0<<0)
+# define SERHND_COM2 (1<<0)
+#define SERHND_HI (1<<2) /* Mux/demux each transferred char by MSB. */
+#define SERHND_LO (1<<3) /* Ditto, except that the MSB is cleared. */
+#define SERHND_COOKED (1<<4) /* Newline/carriage-return translation? */
/* Two-stage initialisation (before/after IRQ-subsystem initialisation). */
void serial_init_preirq(void);
++++++ 25863-sercon-ehci-dbgp.patch ++++++
++++ 1778 lines (skipped)
++++++ 25864-sercon-unused.patch ++++++
# HG changeset patch
# User Jan Beulich <jbeulich(a)suse.com>
# Date 1347371512 -7200
# Node ID e1380b5311ccee14eb47d7badb75339933d42249
# Parent 0d0c55a1975db9c6cac2e9259b5ebea7a7bdbaec
serial: avoid fully initializing unused consoles
Defer calling the drivers' post-IRQ initialization functions (generally
doing allocation of transmit buffers) until it is known that the
respective console is actually going to be used.
Signed-off-by: Jan Beulich <jbeulich(a)suse.com>
Acked-by: Keir Fraser <keir(a)xen.org>
--- a/xen/drivers/char/ehci-dbgp.c
+++ b/xen/drivers/char/ehci-dbgp.c
@@ -1391,7 +1391,8 @@ static int ehci_dbgp_check_release(struc
printk(XENLOG_INFO "Releasing EHCI debug port at %02x:%02x.%u\n",
dbgp->bus, dbgp->slot, dbgp->func);
- kill_timer(&dbgp->timer);
+ if ( dbgp->timer.function )
+ kill_timer(&dbgp->timer);
dbgp->ehci_debug = NULL;
ctrl = readl(&ehci_debug->control);
--- a/xen/drivers/char/serial.c
+++ b/xen/drivers/char/serial.c
@@ -29,6 +29,8 @@ static struct serial_port com[SERHND_IDX
}
};
+static bool_t __read_mostly post_irq;
+
void serial_rx_interrupt(struct serial_port *port, struct cpu_user_regs *regs)
{
char c;
@@ -263,14 +265,12 @@ char serial_getc(int handle)
int __init serial_parse_handle(char *conf)
{
- int handle;
+ int handle, flags = 0;
if ( !strncmp(conf, "dbgp", 4) && (!conf[4] || conf[4] == ',') )
{
- if ( !com[SERHND_DBGP].driver )
- goto fail;
-
- return SERHND_DBGP | SERHND_COOKED;
+ handle = SERHND_DBGP;
+ goto common;
}
if ( strncmp(conf, "com", 3) )
@@ -288,17 +288,25 @@ int __init serial_parse_handle(char *con
goto fail;
}
- if ( !com[handle].driver )
- goto fail;
-
if ( conf[4] == 'H' )
- handle |= SERHND_HI;
+ flags |= SERHND_HI;
else if ( conf[4] == 'L' )
- handle |= SERHND_LO;
+ flags |= SERHND_LO;
- handle |= SERHND_COOKED;
+ common:
+ if ( !com[handle].driver )
+ goto fail;
+
+ if ( !post_irq )
+ com[handle].state = serial_parsed;
+ else if ( com[handle].state != serial_initialized )
+ {
+ if ( com[handle].driver->init_postirq )
+ com[handle].driver->init_postirq(&com[handle]);
+ com[handle].state = serial_initialized;
+ }
- return handle;
+ return handle | flags | SERHND_COOKED;
fail:
return -1;
@@ -450,8 +458,13 @@ void __init serial_init_postirq(void)
{
int i;
for ( i = 0; i < ARRAY_SIZE(com); i++ )
- if ( com[i].driver && com[i].driver->init_postirq )
- com[i].driver->init_postirq(&com[i]);
+ if ( com[i].state == serial_parsed )
+ {
+ if ( com[i].driver->init_postirq )
+ com[i].driver->init_postirq(&com[i]);
+ com[i].state = serial_initialized;
+ }
+ post_irq = 1;
}
void __init serial_endboot(void)
@@ -475,7 +488,7 @@ void serial_suspend(void)
{
int i;
for ( i = 0; i < ARRAY_SIZE(com); i++ )
- if ( com[i].driver && com[i].driver->suspend )
+ if ( com[i].state == serial_initialized && com[i].driver->suspend )
com[i].driver->suspend(&com[i]);
}
@@ -483,7 +496,7 @@ void serial_resume(void)
{
int i;
for ( i = 0; i < ARRAY_SIZE(com); i++ )
- if ( com[i].driver && com[i].driver->resume )
+ if ( com[i].state == serial_initialized && com[i].driver->resume )
com[i].driver->resume(&com[i]);
}
--- a/xen/include/xen/serial.h
+++ b/xen/include/xen/serial.h
@@ -25,10 +25,17 @@ extern unsigned int serial_txbufsz;
struct uart_driver;
+enum serial_port_state {
+ serial_unused,
+ serial_parsed,
+ serial_initialized
+};
+
struct serial_port {
/* Uart-driver parameters. */
struct uart_driver *driver;
void *uart;
+ enum serial_port_state state;
/* Number of characters the port can hold for transmit. */
int tx_fifo_size;
/* Transmit data buffer (interrupt-driven uart). */
++++++ 25866-sercon-ns16550-pci-irq.patch ++++++
# HG changeset patch
# User Jan Beulich <jbeulich(a)suse.com>
# Date 1347371733 -7200
# Node ID ee12dc357fbecbb0517798f395d14bf1764c6766
# Parent 5fb5b3b70e34ef278d06aff27878b4b8e6d9145f
ns16550: PCI initialization adjustments
Besides single-port serial cards, also accept multi-port ones and such
providing mixed functionality (e.g. also having a parallel port).
Reading PCI_INTERRUPT_PIN before ACPI gets enabled generally produces
an incorrect IRQ (below 16, whereas after enabling ACPI it frequently
would end up at a higher one), so this is useful (almost) only when a
system already boots in ACPI mode.
Signed-off-by: Jan Beulich <jbeulich(a)suse.com>
Acked-by: Keir Fraser <keir(a)xen.org>
--- a/xen/drivers/char/ns16550.c
+++ b/xen/drivers/char/ns16550.c
@@ -449,7 +449,6 @@ static int __init check_existence(struct
static int
pci_uart_config (struct ns16550 *uart, int skip_amt, int bar_idx)
{
- uint16_t class;
uint32_t bar, len;
int b, d, f;
@@ -460,9 +459,15 @@ pci_uart_config (struct ns16550 *uart, i
{
for ( f = 0; f < 0x8; f++ )
{
- class = pci_conf_read16(0, b, d, f, PCI_CLASS_DEVICE);
- if ( class != 0x700 )
+ switch ( pci_conf_read16(0, b, d, f, PCI_CLASS_DEVICE) )
+ {
+ case 0x0700: /* single port serial */
+ case 0x0702: /* multi port serial */
+ case 0x0780: /* other (e.g serial+parallel) */
+ break;
+ default:
continue;
+ }
bar = pci_conf_read32(0, b, d, f,
PCI_BASE_ADDRESS_0 + bar_idx*4);
@@ -485,7 +490,8 @@ pci_uart_config (struct ns16550 *uart, i
uart->bar = bar;
uart->bar_idx = bar_idx;
uart->io_base = bar & 0xfffe;
- uart->irq = 0;
+ uart->irq = pci_conf_read8(0, b, d, f, PCI_INTERRUPT_PIN) ?
+ pci_conf_read8(0, b, d, f, PCI_INTERRUPT_LINE) : 0;
return 0;
}
++++++ 25867-sercon-ns16550-parse.patch ++++++
# HG changeset patch
# User Jan Beulich <jbeulich(a)suse.com>
# Date 1347371805 -7200
# Node ID b22f184e1a3cac03abeed92ec4b74235fd0881f4
# Parent ee12dc357fbecbb0517798f395d14bf1764c6766
ns16550: command line parsing adjustments
Allow intermediate parts of the command line options to be absent
(expressed by two immediately succeeding commas).
Signed-off-by: Jan Beulich <jbeulich(a)suse.com>
Acked-by: Keir Fraser <keir(a)xen.org>
--- a/docs/misc/xen-command-line.markdown
+++ b/docs/misc/xen-command-line.markdown
@@ -199,7 +199,7 @@ If set, override Xen's calculation of th
If set, override Xen's default choice for the platform timer.
### com1,com2
-> `= <baud>[/<clock_hz>][,DPS[,<io-base>[,<irq>[,<port-bdf>[,<bridge-bdf>]]]] | pci | amt ] `
+> `= <baud>[/<clock_hz>][,[DPS][,[<io-base>|pci|amt][,[<irq>][,[<port-bdf>][,[<bridge-bdf>]]]]]]`
Both option `com1` and `com2` follow the same format.
--- a/xen/drivers/char/ns16550.c
+++ b/xen/drivers/char/ns16550.c
@@ -536,26 +536,23 @@ static void __init ns16550_parse_port_co
else if ( (baud = simple_strtoul(conf, &conf, 10)) != 0 )
uart->baud = baud;
- if ( *conf == '/')
+ if ( *conf == '/' )
{
conf++;
uart->clock_hz = simple_strtoul(conf, &conf, 0) << 4;
}
- if ( *conf != ',' )
- goto config_parsed;
- conf++;
-
- uart->data_bits = simple_strtoul(conf, &conf, 10);
+ if ( *conf == ',' && *++conf != ',' )
+ {
+ uart->data_bits = simple_strtoul(conf, &conf, 10);
- uart->parity = parse_parity_char(*conf);
- conf++;
+ uart->parity = parse_parity_char(*conf);
- uart->stop_bits = simple_strtoul(conf, &conf, 10);
+ uart->stop_bits = simple_strtoul(conf + 1, &conf, 10);
+ }
- if ( *conf == ',' )
+ if ( *conf == ',' && *++conf != ',' )
{
- conf++;
if ( strncmp(conf, "pci", 3) == 0 )
{
if ( pci_uart_config(uart, 1/* skip AMT */, uart - ns16550_com) )
@@ -572,24 +569,21 @@ static void __init ns16550_parse_port_co
{
uart->io_base = simple_strtoul(conf, &conf, 0);
}
+ }
- if ( *conf == ',' )
- {
- conf++;
- uart->irq = simple_strtoul(conf, &conf, 10);
- if ( *conf == ',' )
- {
- conf++;
- uart->ps_bdf_enable = 1;
- parse_pci_bdf(&conf, &uart->ps_bdf[0]);
- if ( *conf == ',' )
- {
- conf++;
- uart->pb_bdf_enable = 1;
- parse_pci_bdf(&conf, &uart->pb_bdf[0]);
- }
- }
- }
+ if ( *conf == ',' && *++conf != ',' )
+ uart->irq = simple_strtol(conf, &conf, 10);
+
+ if ( *conf == ',' && *++conf != ',' )
+ {
+ uart->ps_bdf_enable = 1;
+ parse_pci_bdf(&conf, &uart->ps_bdf[0]);
+ }
+
+ if ( *conf == ',' && *++conf != ',' )
+ {
+ uart->pb_bdf_enable = 1;
+ parse_pci_bdf(&conf, &uart->pb_bdf[0]);
}
config_parsed:
++++++ 25874-x86-EFI-chain-cfg.patch ++++++
# HG changeset patch
# User Jan Beulich <jbeulich(a)suse.com>
# Date 1347437974 -7200
# Node ID 8c0aa97d529a55de2ab96be1a5a6e9ed6a9c6bf0
# Parent ac8f4afccd6c6786a3fd5691e8b0c9b38c47e994
x86-64/EFI: allow chaining of config files
Namely when making use the CONFIG_XEN_COMPAT_* options in the legacy
Linux kernels, newer kernels may not be compatible with older
hypervisors, so trying to boot such a combination makes little sense.
Booting older kernels on newer hypervisors, however, has to always
work.
With the way xen.efi looks for its configuration file, allowing
individual configuration files to refer only to compatible kernels,
and referring from an older- to a newer-hypervisor one (the kernels
of which will, as said, necessarily be compatible with the older
hypervisor) allows to greatly reduce redundancy at least in
development environments where one frequently wants multiple
hypervisors and kernles to be installed in parallel.
Signed-off-by: Jan Beulich <jbeulich(a)suse.com>
Acked-by: Keir Fraser <keir(a)xen.org>
--- a/docs/misc/efi.markdown
+++ b/docs/misc/efi.markdown
@@ -75,6 +75,13 @@ Specifies an XSM module to load.
Specifies a CPU microcode blob to load.
+###`chain=<filename>`
+
+Specifies an alternate configuration file to use in case the specified section
+(and in particular its `kernel=` setting) can't be found in the default (or
+specified) configuration file. This is only meaningful in the [global] section
+and really not meant to be used together with the `-cfg=` command line option.
+
Filenames must be specified relative to the location of the EFI binary.
Extra options to be passed to Xen can also be specified on the command line,
--- a/xen/arch/x86/efi/boot.c
+++ b/xen/arch/x86/efi/boot.c
@@ -797,7 +797,26 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SY
else
section.s = get_value(&cfg, "global", "default");
- name.s = get_value(&cfg, section.s, "kernel");
+ for ( ; ; )
+ {
+ name.s = get_value(&cfg, section.s, "kernel");
+ if ( name.s )
+ break;
+ name.s = get_value(&cfg, "global", "chain");
+ if ( !name.s )
+ break;
+ efi_bs->FreePages(cfg.addr, PFN_UP(cfg.size));
+ cfg.addr = 0;
+ if ( !read_file(dir_handle, s2w(&name), &cfg) )
+ {
+ PrintStr(L"Chained configuration file '");
+ PrintStr(name.w);
+ efi_bs->FreePool(name.w);
+ blexit(L"'not found\r\n");
+ }
+ pre_parse(&cfg);
+ efi_bs->FreePool(name.w);
+ }
if ( !name.s )
blexit(L"No Dom0 kernel image specified\r\n");
split_value(name.s);
++++++ 25909-xenpm-consistent.patch ++++++
++++ 630 lines (skipped)
++++++ 25941-pygrub_always_append_--args.patch ++++++
changeset: 25941:795c493fe561
user: Olaf Hering <olaf(a)aepfle.de>
date: Tue Sep 25 11:03:51 2012 +0100
files: tools/pygrub/src/pygrub
description:
pygrub: always append --args
If a bootloader entry in menu.lst has no additional kernel command line
options listed and the domU.cfg has 'bootargs="--args=something"' the
additional arguments from the config file are not passed to the kernel.
The reason for that incorrect behaviour is that run_grub appends arg
only if the parsed config file has arguments listed.
Fix this by appending args from image section and the config file separatly.
To avoid adding to a NoneType initialize grubcfg['args'] to an empty string.
This does not change behaviour but simplifies the code which appends the
string.
Signed-off-by: Olaf Hering <olaf(a)aepfle.de>
Acked-by: Ian Campbell <ian.campbell(a)citrix.com>
Committed-by: Ian Campbell <ian.campbell(a)citrix.com>
diff -r c8d65d91a6f2 -r 795c493fe561 tools/pygrub/src/pygrub
--- a/tools/pygrub/src/pygrub Tue Sep 25 08:38:14 2012 +0200
+++ b/tools/pygrub/src/pygrub Tue Sep 25 11:03:51 2012 +0100
@@ -615,13 +615,15 @@ def run_grub(file, entry, fs, arg):
except IndexError:
img = g.cf.images[0]
- grubcfg = { "kernel": None, "ramdisk": None, "args": None }
+ grubcfg = { "kernel": None, "ramdisk": None, "args": "" }
grubcfg["kernel"] = img.kernel[1]
if img.initrd:
grubcfg["ramdisk"] = img.initrd[1]
if img.args:
- grubcfg["args"] = img.args + " " + arg
+ grubcfg["args"] += img.args
+ if arg:
+ grubcfg["args"] += " " + args
return grubcfg
++++++ 32on64-extra-mem.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:03.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:03.000000000 +0200
@@ -1,8 +1,8 @@
-Index: xen-4.1.2-testing/tools/python/xen/xend/XendDomainInfo.py
+Index: xen-4.2.0-testing/tools/python/xen/xend/XendDomainInfo.py
===================================================================
---- xen-4.1.2-testing.orig/tools/python/xen/xend/XendDomainInfo.py
-+++ xen-4.1.2-testing/tools/python/xen/xend/XendDomainInfo.py
-@@ -2932,7 +2932,7 @@ class XendDomainInfo:
+--- xen-4.2.0-testing.orig/tools/python/xen/xend/XendDomainInfo.py
++++ xen-4.2.0-testing/tools/python/xen/xend/XendDomainInfo.py
+@@ -2939,7 +2939,7 @@ class XendDomainInfo:
self.guest_bitsize = self.image.getBitSize()
# Make sure there's enough RAM available for the domain
++++++ altgr_2.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:03.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:03.000000000 +0200
@@ -29,10 +29,10 @@
Signed-off by Chunyan Liu (cyliu(a)novell.com)
-Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/vnc.c
+Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/vnc.c
===================================================================
---- xen-4.1.2-testing.orig/tools/ioemu-qemu-xen/vnc.c
-+++ xen-4.1.2-testing/tools/ioemu-qemu-xen/vnc.c
+--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/vnc.c
++++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/vnc.c
@@ -1308,6 +1308,9 @@ static void do_key_event(VncState *vs, i
shift_keys = vs->modifiers_state[0x2a] | vs->modifiers_state[0x36];
altgr_keys = vs->modifiers_state[0xb8];
++++++ bdrv_default_rwflag.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:03.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:03.000000000 +0200
@@ -1,11 +1,11 @@
Subject: modify default read/write flag in bdrv_init.
Signed-off by Chunyan Liu <cyliu(a)novell.com>
-Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/vl.c
+Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/vl.c
===================================================================
---- xen-4.1.2-testing.orig/tools/ioemu-qemu-xen/vl.c
-+++ xen-4.1.2-testing/tools/ioemu-qemu-xen/vl.c
-@@ -2617,6 +2617,8 @@ int drive_init(struct drive_opt *arg, in
+--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/vl.c
++++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/vl.c
+@@ -2627,6 +2627,8 @@ int drive_init(struct drive_opt *arg, in
strncpy(drives_table[nb_drives].serial, serial, sizeof(serial));
nb_drives++;
@@ -14,7 +14,7 @@
switch(type) {
case IF_IDE:
case IF_XEN:
-@@ -2630,6 +2632,7 @@ int drive_init(struct drive_opt *arg, in
+@@ -2640,6 +2642,7 @@ int drive_init(struct drive_opt *arg, in
break;
case MEDIA_CDROM:
bdrv_set_type_hint(bdrv, BDRV_TYPE_CDROM);
@@ -22,7 +22,7 @@
break;
}
break;
-@@ -2650,7 +2653,6 @@ int drive_init(struct drive_opt *arg, in
+@@ -2660,7 +2663,6 @@ int drive_init(struct drive_opt *arg, in
}
if (!file[0])
return -2;
++++++ bdrv_open2_fix_flags.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:03.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:03.000000000 +0200
@@ -1,7 +1,7 @@
-Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/block.c
+Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/block.c
===================================================================
---- xen-4.1.2-testing.orig/tools/ioemu-qemu-xen/block.c
-+++ xen-4.1.2-testing/tools/ioemu-qemu-xen/block.c
+--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/block.c
++++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/block.c
@@ -350,7 +350,7 @@ int bdrv_file_open(BlockDriverState **pb
int bdrv_open(BlockDriverState *bs, const char *filename, int flags)
@@ -28,10 +28,10 @@
ret = drv->bdrv_open(bs, filename, open_flags);
if ((ret == -EACCES || ret == -EPERM) && !(flags & BDRV_O_FILE)) {
ret = drv->bdrv_open(bs, filename, open_flags & ~BDRV_O_RDWR);
-Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/hw/usb-msd.c
+Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/usb-msd.c
===================================================================
---- xen-4.1.2-testing.orig/tools/ioemu-qemu-xen/hw/usb-msd.c
-+++ xen-4.1.2-testing/tools/ioemu-qemu-xen/hw/usb-msd.c
+--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/hw/usb-msd.c
++++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/usb-msd.c
@@ -551,7 +551,7 @@ USBDevice *usb_msd_init(const char *file
s = qemu_mallocz(sizeof(MSDState));
@@ -41,10 +41,10 @@
goto fail;
s->bs = bdrv;
*pbs = bdrv;
-Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/qemu-img.c
+Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/qemu-img.c
===================================================================
---- xen-4.1.2-testing.orig/tools/ioemu-qemu-xen/qemu-img.c
-+++ xen-4.1.2-testing/tools/ioemu-qemu-xen/qemu-img.c
+--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/qemu-img.c
++++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/qemu-img.c
@@ -32,7 +32,7 @@
#endif
++++++ bdrv_open2_flags_2.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:03.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:03.000000000 +0200
@@ -1,8 +1,8 @@
-Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c
+Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/xen_blktap.c
===================================================================
---- xen-4.1.2-testing.orig/tools/ioemu-qemu-xen/hw/xen_blktap.c
-+++ xen-4.1.2-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c
-@@ -237,6 +237,7 @@ static int open_disk(struct td_state *s,
+--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/hw/xen_blktap.c
++++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/xen_blktap.c
+@@ -225,6 +225,7 @@ static int open_disk(struct td_state *s,
BlockDriver* drv;
char* devname;
static int devnumber = 0;
@@ -10,7 +10,7 @@
int i;
DPRINTF("Opening %s as blktap%d\n", path, devnumber);
-@@ -259,7 +260,7 @@ static int open_disk(struct td_state *s,
+@@ -247,7 +248,7 @@ static int open_disk(struct td_state *s,
DPRINTF("%s driver specified\n", drv ? drv->format_name : "No");
/* Open the image */
@@ -19,11 +19,11 @@
fprintf(stderr, "Could not open image file %s\n", path);
return -ENOMEM;
}
-Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/xenstore.c
+Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/xenstore.c
===================================================================
---- xen-4.1.2-testing.orig/tools/ioemu-qemu-xen/xenstore.c
-+++ xen-4.1.2-testing/tools/ioemu-qemu-xen/xenstore.c
-@@ -136,7 +136,8 @@ static void insert_media(void *opaque)
+--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/xenstore.c
++++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/xenstore.c
+@@ -133,7 +133,8 @@ static void insert_media(void *opaque)
else
format = &bdrv_raw;
@@ -33,7 +33,7 @@
#ifdef CONFIG_STUBDOM
{
char *buf, *backend, *params_path, *params;
-@@ -511,7 +512,8 @@ void xenstore_parse_domain_config(int hv
+@@ -508,7 +509,8 @@ void xenstore_parse_domain_config(int hv
}
for (i = 0; i < num; i++) {
@@ -43,7 +43,7 @@
/* read the backend path */
xenstore_get_backend_path(&bpath, "vbd", danger_path, hvm_domid, e_danger[i]);
if (bpath == NULL)
-@@ -597,6 +599,17 @@ void xenstore_parse_domain_config(int hv
+@@ -594,6 +596,17 @@ void xenstore_parse_domain_config(int hv
format = &bdrv_raw;
}
@@ -61,7 +61,7 @@
#if 0
/* Phantom VBDs are disabled because the use of paths
* from guest-controlled areas in xenstore is unsafe.
-@@ -664,7 +677,7 @@ void xenstore_parse_domain_config(int hv
+@@ -661,7 +674,7 @@ void xenstore_parse_domain_config(int hv
#ifdef CONFIG_STUBDOM
if (pasprintf(&danger_buf, "%s/device/vbd/%s", danger_path, e_danger[i]) == -1)
continue;
@@ -70,12 +70,3 @@
pstrcpy(bs->filename, sizeof(bs->filename), params);
}
#else
-@@ -716,7 +729,7 @@ void xenstore_parse_domain_config(int hv
-
- fprintf(stderr, "Using file %s in read-%s mode\n", bs->filename, is_readonly ? "only" : "write");
-
-- if (bdrv_open2(bs, params, BDRV_O_CACHE_WB /* snapshot and write-back */, format) < 0) {
-+ if (bdrv_open2(bs, params, flags|BDRV_O_CACHE_WB /* snapshot and write-back */, format) < 0) {
- fprintf(stderr, "qemu: could not open vbd '%s' or hard disk image '%s' (drv '%s' format '%s')\n", buf, params, drv ? drv : "?", format ? format->format_name : "0");
- } else {
- char* snapshot = get_snapshot_name(atoi(e_danger[i]));
++++++ blktap-close-fifos.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:03.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:03.000000000 +0200
@@ -1,8 +1,8 @@
-Index: xen-4.1.2-testing/tools/blktap/drivers/blktapctrl.c
+Index: xen-4.2.0-testing/tools/blktap/drivers/blktapctrl.c
===================================================================
---- xen-4.1.2-testing.orig/tools/blktap/drivers/blktapctrl.c
-+++ xen-4.1.2-testing/tools/blktap/drivers/blktapctrl.c
-@@ -280,7 +280,7 @@ static int del_disktype(blkif_t *blkif)
+--- xen-4.2.0-testing.orig/tools/blktap/drivers/blktapctrl.c
++++ xen-4.2.0-testing/tools/blktap/drivers/blktapctrl.c
+@@ -282,7 +282,7 @@ static int del_disktype(blkif_t *blkif)
* qemu-dm instance. We may close the file handle only if there is
* no other disk left for this domain.
*/
++++++ blktap-disable-debug-printf.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:03.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:03.000000000 +0200
@@ -1,8 +1,8 @@
-Index: xen-4.1.2-testing/tools/blktap/drivers/blktapctrl.c
+Index: xen-4.2.0-testing/tools/blktap/drivers/blktapctrl.c
===================================================================
---- xen-4.1.2-testing.orig/tools/blktap/drivers/blktapctrl.c
-+++ xen-4.1.2-testing/tools/blktap/drivers/blktapctrl.c
-@@ -59,6 +59,9 @@
+--- xen-4.2.0-testing.orig/tools/blktap/drivers/blktapctrl.c
++++ xen-4.2.0-testing/tools/blktap/drivers/blktapctrl.c
+@@ -61,6 +61,9 @@
#include "list.h"
#include "xs_api.h" /* for xs_fire_next_watch() */
@@ -12,11 +12,11 @@
#define PIDFILE "/var/run/blktapctrl.pid"
#define NUM_POLL_FDS 2
-Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c
+Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/xen_blktap.c
===================================================================
---- xen-4.1.2-testing.orig/tools/ioemu-qemu-xen/hw/xen_blktap.c
-+++ xen-4.1.2-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c
-@@ -48,7 +48,7 @@
+--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/hw/xen_blktap.c
++++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/xen_blktap.c
+@@ -46,7 +46,7 @@
#define BLKTAP_CTRL_DIR "/var/run/tap"
/* If enabled, print debug messages to stderr */
++++++ blktap-pv-cdrom.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:03.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:03.000000000 +0200
@@ -1,7 +1,7 @@
-Index: xen-4.1.2-testing/tools/blktap/drivers/block-cdrom.c
+Index: xen-4.2.0-testing/tools/blktap/drivers/block-cdrom.c
===================================================================
--- /dev/null
-+++ xen-4.1.2-testing/tools/blktap/drivers/block-cdrom.c
++++ xen-4.2.0-testing/tools/blktap/drivers/block-cdrom.c
@@ -0,0 +1,535 @@
+/* block-cdrom.c
+ *
@@ -538,10 +538,10 @@
+ .td_get_parent_id = tdcdrom_get_parent_id,
+ .td_validate_parent = tdcdrom_validate_parent
+};
-Index: xen-4.1.2-testing/xen/include/public/io/cdromif.h
+Index: xen-4.2.0-testing/xen/include/public/io/cdromif.h
===================================================================
--- /dev/null
-+++ xen-4.1.2-testing/xen/include/public/io/cdromif.h
++++ xen-4.2.0-testing/xen/include/public/io/cdromif.h
@@ -0,0 +1,122 @@
+/******************************************************************************
+ * cdromif.h
@@ -665,23 +665,23 @@
+ sizeof(struct vcd_generic_command) - sizeof(struct request_sense))
+
+#endif
-Index: xen-4.1.2-testing/tools/blktap/drivers/Makefile
+Index: xen-4.2.0-testing/tools/blktap/drivers/Makefile
===================================================================
---- xen-4.1.2-testing.orig/tools/blktap/drivers/Makefile
-+++ xen-4.1.2-testing/tools/blktap/drivers/Makefile
-@@ -28,8 +28,9 @@ CFLAGS += -DMEMSHR
- MEMSHRLIBS += $(MEMSHR_DIR)/libmemshr.a
- endif
+--- xen-4.2.0-testing.orig/tools/blktap/drivers/Makefile
++++ xen-4.2.0-testing/tools/blktap/drivers/Makefile
+@@ -37,8 +37,9 @@ endif
+ CFLAGS += $(PTHREAD_CFLAGS)
+ LDFLAGS += $(PTHREAD_LDFLAGS)
--LDLIBS_blktapctrl := $(MEMSHRLIBS) $(LDLIBS_libxenctrl) $(LDLIBS_libxenstore) -L../lib -lblktap -lrt -lm -lpthread
--LDLIBS_img := $(LIBAIO_DIR)/libaio.a $(CRYPT_LIB) -lpthread -lz
+-LDLIBS_blktapctrl := $(MEMSHRLIBS) $(LDLIBS_libxenctrl) $(LDLIBS_libxenstore) -L../lib -lblktap -lrt -lm $(PTHREAD_LIBS)
+-LDLIBS_img := $(AIOLIBS) $(CRYPT_LIB) $(PTHREAD_LIBS) -lz
+LDLIBS_xen := $(LDLIBS_libxenctrl) $(LDLIBS_libxenstore)
-+LDLIBS_blktapctrl := $(MEMSHRLIBS) $(LDLIBS_xen) -L../lib -lblktap -lrt -lm -lpthread
-+LDLIBS_img := $(LIBAIO_DIR)/libaio.a $(CRYPT_LIB) -lpthread -lz $(LDLIBS_xen)
++LDLIBS_blktapctrl := $(MEMSHRLIBS) $(LDLIBS_xen) -L../lib -lblktap -lrt -lm $(PTHREAD_LIBS)
++LDLIBS_img := $(AIOLIBS) $(CRYPT_LIB) $(PTHREAD_LIBS) -lz $(LDLIBS_xen)
BLK-OBJS-y := block-aio.o
BLK-OBJS-y += block-sync.o
-@@ -37,6 +38,7 @@ BLK-OBJS-y += block-vmdk.o
+@@ -46,6 +47,7 @@ BLK-OBJS-y += block-vmdk.o
BLK-OBJS-y += block-ram.o
BLK-OBJS-y += block-qcow.o
BLK-OBJS-y += block-qcow2.o
@@ -689,10 +689,10 @@
BLK-OBJS-y += aes.o
BLK-OBJS-y += tapaio.o
BLK-OBJS-$(CONFIG_Linux) += blk_linux.o
-Index: xen-4.1.2-testing/tools/blktap/drivers/tapdisk.h
+Index: xen-4.2.0-testing/tools/blktap/drivers/tapdisk.h
===================================================================
---- xen-4.1.2-testing.orig/tools/blktap/drivers/tapdisk.h
-+++ xen-4.1.2-testing/tools/blktap/drivers/tapdisk.h
+--- xen-4.2.0-testing.orig/tools/blktap/drivers/tapdisk.h
++++ xen-4.2.0-testing/tools/blktap/drivers/tapdisk.h
@@ -137,6 +137,9 @@ struct tap_disk {
int (*td_get_parent_id) (struct disk_driver *dd, struct disk_id *id);
int (*td_validate_parent)(struct disk_driver *dd,
@@ -737,11 +737,11 @@
};
typedef struct driver_list_entry {
-Index: xen-4.1.2-testing/tools/blktap/lib/blktaplib.h
+Index: xen-4.2.0-testing/tools/blktap/lib/blktaplib.h
===================================================================
---- xen-4.1.2-testing.orig/tools/blktap/lib/blktaplib.h
-+++ xen-4.1.2-testing/tools/blktap/lib/blktaplib.h
-@@ -225,6 +225,7 @@ typedef struct msg_pid {
+--- xen-4.2.0-testing.orig/tools/blktap/lib/blktaplib.h
++++ xen-4.2.0-testing/tools/blktap/lib/blktaplib.h
+@@ -220,6 +220,7 @@ typedef struct msg_pid {
#define DISK_TYPE_RAM 3
#define DISK_TYPE_QCOW 4
#define DISK_TYPE_QCOW2 5
@@ -749,23 +749,23 @@
/* xenstore/xenbus: */
#define DOMNAME "Domain-0"
-Index: xen-4.1.2-testing/xen/include/public/io/blkif.h
+Index: xen-4.2.0-testing/xen/include/public/io/blkif.h
===================================================================
---- xen-4.1.2-testing.orig/xen/include/public/io/blkif.h
-+++ xen-4.1.2-testing/xen/include/public/io/blkif.h
-@@ -80,7 +80,7 @@
+--- xen-4.2.0-testing.orig/xen/include/public/io/blkif.h
++++ xen-4.2.0-testing/xen/include/public/io/blkif.h
+@@ -379,7 +379,7 @@
* Used in SLES sources for device specific command packet
* contained within the request. Reserved for that purpose.
*/
-#define BLKIF_OP_RESERVED_1 4
+#define BLKIF_OP_PACKET 4
/*
- * Recognised only if "feature-trim" is present in backend xenbus info.
- * The "feature-trim" node contains a boolean indicating whether trim
-Index: xen-4.1.2-testing/tools/blktap/drivers/tapdisk.c
+ * Indicate to the backend device that a region of storage is no longer in
+ * use, and may be discarded at any time without impact to the client. If
+Index: xen-4.2.0-testing/tools/blktap/drivers/tapdisk.c
===================================================================
---- xen-4.1.2-testing.orig/tools/blktap/drivers/tapdisk.c
-+++ xen-4.1.2-testing/tools/blktap/drivers/tapdisk.c
+--- xen-4.2.0-testing.orig/tools/blktap/drivers/tapdisk.c
++++ xen-4.2.0-testing/tools/blktap/drivers/tapdisk.c
@@ -735,6 +735,22 @@ static void get_io_request(struct td_sta
goto out;
}
@@ -789,10 +789,10 @@
default:
DPRINTF("Unknown block operation\n");
break;
-Index: xen-4.1.2-testing/tools/python/xen/xend/server/BlktapController.py
+Index: xen-4.2.0-testing/tools/python/xen/xend/server/BlktapController.py
===================================================================
---- xen-4.1.2-testing.orig/tools/python/xen/xend/server/BlktapController.py
-+++ xen-4.1.2-testing/tools/python/xen/xend/server/BlktapController.py
+--- xen-4.2.0-testing.orig/tools/python/xen/xend/server/BlktapController.py
++++ xen-4.2.0-testing/tools/python/xen/xend/server/BlktapController.py
@@ -15,6 +15,7 @@ blktap1_disk_types = [
'ram',
'qcow',
++++++ blktap.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:03.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:03.000000000 +0200
@@ -1,11 +1,11 @@
bug #239173
bug #242953
-Index: xen-4.1.2-testing/tools/python/xen/xend/XendDomainInfo.py
+Index: xen-4.2.0-testing/tools/python/xen/xend/XendDomainInfo.py
===================================================================
---- xen-4.1.2-testing.orig/tools/python/xen/xend/XendDomainInfo.py
-+++ xen-4.1.2-testing/tools/python/xen/xend/XendDomainInfo.py
-@@ -3296,7 +3296,7 @@ class XendDomainInfo:
+--- xen-4.2.0-testing.orig/tools/python/xen/xend/XendDomainInfo.py
++++ xen-4.2.0-testing/tools/python/xen/xend/XendDomainInfo.py
+@@ -3301,7 +3301,7 @@ class XendDomainInfo:
(fn, BOOTLOADER_LOOPBACK_DEVICE))
vbd = {
@@ -14,10 +14,10 @@
'device': BOOTLOADER_LOOPBACK_DEVICE,
}
-Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/xenstore.c
+Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/xenstore.c
===================================================================
---- xen-4.1.2-testing.orig/tools/ioemu-qemu-xen/xenstore.c
-+++ xen-4.1.2-testing/tools/ioemu-qemu-xen/xenstore.c
+--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/xenstore.c
++++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/xenstore.c
@@ -447,9 +447,9 @@ void xenstore_parse_domain_config(int hv
{
char **e_danger = NULL;
++++++ blktapctrl-default-to-ioemu.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:03.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:03.000000000 +0200
@@ -1,7 +1,7 @@
-Index: xen-4.1.2-testing/tools/blktap/drivers/tapdisk.h
+Index: xen-4.2.0-testing/tools/blktap/drivers/tapdisk.h
===================================================================
---- xen-4.1.2-testing.orig/tools/blktap/drivers/tapdisk.h
-+++ xen-4.1.2-testing/tools/blktap/drivers/tapdisk.h
+--- xen-4.2.0-testing.orig/tools/blktap/drivers/tapdisk.h
++++ xen-4.2.0-testing/tools/blktap/drivers/tapdisk.h
@@ -168,7 +168,7 @@ static disk_info_t aio_disk = {
"raw image (aio)",
"aio",
++++++ bridge-bonding.diff ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:03.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:03.000000000 +0200
@@ -1,8 +1,8 @@
-Index: xen-4.1.2-testing/tools/hotplug/Linux/network-bridge
+Index: xen-4.2.0-testing/tools/hotplug/Linux/network-bridge
===================================================================
---- xen-4.1.2-testing.orig/tools/hotplug/Linux/network-bridge
-+++ xen-4.1.2-testing/tools/hotplug/Linux/network-bridge
-@@ -249,6 +249,9 @@ op_start () {
+--- xen-4.2.0-testing.orig/tools/hotplug/Linux/network-bridge
++++ xen-4.2.0-testing/tools/hotplug/Linux/network-bridge
+@@ -251,6 +251,9 @@ op_start () {
claim_lock "network-bridge"
@@ -12,7 +12,7 @@
vlans=$(find_active_vlans "${netdev}")
for vlan in $vlans ; do ifdown $vlan ; done
-@@ -266,18 +269,32 @@ op_start () {
+@@ -268,18 +271,32 @@ op_start () {
ip link set ${netdev} down
ip addr flush ${netdev}
fi
++++++ bridge-opensuse.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:03.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:03.000000000 +0200
@@ -1,8 +1,8 @@
-Index: xen-4.1.2-testing/tools/hotplug/Linux/network-bridge
+Index: xen-4.2.0-testing/tools/hotplug/Linux/network-bridge
===================================================================
---- xen-4.1.2-testing.orig/tools/hotplug/Linux/network-bridge
-+++ xen-4.1.2-testing/tools/hotplug/Linux/network-bridge
-@@ -278,19 +278,19 @@ op_stop () {
+--- xen-4.2.0-testing.orig/tools/hotplug/Linux/network-bridge
++++ xen-4.2.0-testing/tools/hotplug/Linux/network-bridge
+@@ -280,19 +280,19 @@ op_stop () {
transfer_addrs ${bridge} ${pdev}
if ! ifdown ${bridge}; then
get_ip_info ${bridge}
++++++ bridge-record-creation.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:03.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:03.000000000 +0200
@@ -1,8 +1,8 @@
-Index: xen-4.1.2-testing/tools/hotplug/Linux/network-bridge
+Index: xen-4.2.0-testing/tools/hotplug/Linux/network-bridge
===================================================================
---- xen-4.1.2-testing.orig/tools/hotplug/Linux/network-bridge
-+++ xen-4.1.2-testing/tools/hotplug/Linux/network-bridge
-@@ -257,6 +257,11 @@ op_start () {
+--- xen-4.2.0-testing.orig/tools/hotplug/Linux/network-bridge
++++ xen-4.2.0-testing/tools/hotplug/Linux/network-bridge
+@@ -259,6 +259,11 @@ op_start () {
create_bridge ${tdev}
@@ -14,7 +14,7 @@
preiftransfer ${netdev}
transfer_addrs ${netdev} ${tdev}
# Remember slaves for bonding interface.
-@@ -338,6 +343,13 @@ op_stop () {
+@@ -340,6 +345,13 @@ op_stop () {
ip link set ${pdev} name ${netdev}
do_ifup ${netdev}
++++++ bridge-vlan.diff ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:03.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:03.000000000 +0200
@@ -1,8 +1,8 @@
-Index: xen-4.1.2-testing/tools/hotplug/Linux/network-bridge
+Index: xen-4.2.0-testing/tools/hotplug/Linux/network-bridge
===================================================================
---- xen-4.1.2-testing.orig/tools/hotplug/Linux/network-bridge
-+++ xen-4.1.2-testing/tools/hotplug/Linux/network-bridge
-@@ -193,6 +193,28 @@ antispoofing () {
+--- xen-4.2.0-testing.orig/tools/hotplug/Linux/network-bridge
++++ xen-4.2.0-testing/tools/hotplug/Linux/network-bridge
+@@ -195,6 +195,28 @@ antispoofing () {
iptables -A FORWARD -m physdev --physdev-in ${pdev} -j ACCEPT
}
@@ -31,7 +31,7 @@
# Usage: show_status dev bridge
# Print ifconfig and routes.
show_status () {
-@@ -227,6 +249,9 @@ op_start () {
+@@ -229,6 +251,9 @@ op_start () {
claim_lock "network-bridge"
@@ -41,7 +41,7 @@
create_bridge ${tdev}
preiftransfer ${netdev}
-@@ -254,6 +279,8 @@ op_start () {
+@@ -256,6 +281,8 @@ op_start () {
add_to_bridge2 ${bridge} ${pdev}
do_ifup ${bridge}
@@ -50,7 +50,7 @@
if [ ${antispoof} = 'yes' ] ; then
antispoofing
fi
-@@ -275,6 +302,9 @@ op_stop () {
+@@ -277,6 +304,9 @@ op_stop () {
claim_lock "network-bridge"
@@ -60,7 +60,7 @@
transfer_addrs ${bridge} ${pdev}
if ! ifdown ${bridge}; then
get_ip_info ${bridge}
-@@ -291,6 +321,8 @@ op_stop () {
+@@ -293,6 +323,8 @@ op_stop () {
ip link set ${pdev} name ${netdev}
do_ifup ${netdev}
++++++ build-tapdisk-ioemu.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:03.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:03.000000000 +0200
@@ -15,10 +15,10 @@
tapdisk-ioemu.c | 17 -----------------
4 files changed, 17 insertions(+), 26 deletions(-)
-Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/Makefile
+Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/Makefile
===================================================================
---- xen-4.1.2-testing.orig/tools/ioemu-qemu-xen/Makefile
-+++ xen-4.1.2-testing/tools/ioemu-qemu-xen/Makefile
+--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/Makefile
++++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/Makefile
@@ -46,14 +46,6 @@ $(filter %-user,$(SUBDIR_RULES)): libqem
recurse-all: $(SUBDIR_RULES)
@@ -56,10 +56,10 @@
######################################################################
# libqemu_common.a: Target independent part of system emulation. The
# long term path is to suppress *all* target specific code in case of
-Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/configure
+Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/configure
===================================================================
---- xen-4.1.2-testing.orig/tools/ioemu-qemu-xen/configure
-+++ xen-4.1.2-testing/tools/ioemu-qemu-xen/configure
+--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/configure
++++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/configure
@@ -1511,7 +1511,7 @@ bsd)
;;
esac
@@ -69,10 +69,10 @@
if test `expr "$target_list" : ".*softmmu.*"` != 0 ; then
tools="qemu-img\$(EXESUF) $tools"
if [ "$linux" = "yes" ] ; then
-Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/qemu-tool.c
+Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/qemu-tool.c
===================================================================
---- xen-4.1.2-testing.orig/tools/ioemu-qemu-xen/qemu-tool.c
-+++ xen-4.1.2-testing/tools/ioemu-qemu-xen/qemu-tool.c
+--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/qemu-tool.c
++++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/qemu-tool.c
@@ -68,7 +68,7 @@ void qemu_bh_delete(QEMUBH *bh)
qemu_free(bh);
}
@@ -82,10 +82,10 @@
IOCanRWHandler *fd_read_poll,
IOHandler *fd_read,
IOHandler *fd_write,
-Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/tapdisk-ioemu.c
+Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/tapdisk-ioemu.c
===================================================================
---- xen-4.1.2-testing.orig/tools/ioemu-qemu-xen/tapdisk-ioemu.c
-+++ xen-4.1.2-testing/tools/ioemu-qemu-xen/tapdisk-ioemu.c
+--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/tapdisk-ioemu.c
++++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/tapdisk-ioemu.c
@@ -12,34 +12,12 @@
extern void qemu_aio_init(void);
++++++ capslock_enable.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:03.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:03.000000000 +0200
@@ -1,7 +1,7 @@
-Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/vnc.c
+Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/vnc.c
===================================================================
---- xen-4.1.2-testing.orig/tools/ioemu-qemu-xen/vnc.c
-+++ xen-4.1.2-testing/tools/ioemu-qemu-xen/vnc.c
+--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/vnc.c
++++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/vnc.c
@@ -1342,6 +1342,11 @@ static void do_key_event(VncState *vs, i
}
break;
++++++ cdrom-removable.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:03.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:03.000000000 +0200
@@ -1,7 +1,7 @@
-Index: xen-4.1.2-testing/tools/python/xen/xend/server/HalDaemon.py
+Index: xen-4.2.0-testing/tools/python/xen/xend/server/HalDaemon.py
===================================================================
--- /dev/null
-+++ xen-4.1.2-testing/tools/python/xen/xend/server/HalDaemon.py
++++ xen-4.2.0-testing/tools/python/xen/xend/server/HalDaemon.py
@@ -0,0 +1,243 @@
+#!/usr/bin/env python
+# -*- mode: python; -*-
@@ -246,10 +246,10 @@
+ print 'Falling off end'
+
+
-Index: xen-4.1.2-testing/tools/python/xen/xend/server/Hald.py
+Index: xen-4.2.0-testing/tools/python/xen/xend/server/Hald.py
===================================================================
--- /dev/null
-+++ xen-4.1.2-testing/tools/python/xen/xend/server/Hald.py
++++ xen-4.2.0-testing/tools/python/xen/xend/server/Hald.py
@@ -0,0 +1,125 @@
+#============================================================================
+# This library is free software; you can redistribute it and/or
@@ -376,10 +376,10 @@
+ watcher.run()
+ time.sleep(10)
+ watcher.shutdown()
-Index: xen-4.1.2-testing/tools/python/xen/xend/server/SrvServer.py
+Index: xen-4.2.0-testing/tools/python/xen/xend/server/SrvServer.py
===================================================================
---- xen-4.1.2-testing.orig/tools/python/xen/xend/server/SrvServer.py
-+++ xen-4.1.2-testing/tools/python/xen/xend/server/SrvServer.py
+--- xen-4.2.0-testing.orig/tools/python/xen/xend/server/SrvServer.py
++++ xen-4.2.0-testing/tools/python/xen/xend/server/SrvServer.py
@@ -57,6 +57,7 @@ from xen.web.SrvDir import SrvDir
from SrvRoot import SrvRoot
@@ -397,10 +397,10 @@
def create():
root = SrvDir()
-Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/xenstore.c
+Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/xenstore.c
===================================================================
---- xen-4.1.2-testing.orig/tools/ioemu-qemu-xen/xenstore.c
-+++ xen-4.1.2-testing/tools/ioemu-qemu-xen/xenstore.c
+--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/xenstore.c
++++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/xenstore.c
@@ -18,6 +18,7 @@
#include "exec-all.h"
#include "sysemu.h"
++++++ change-vnc-passwd.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:03.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:03.000000000 +0200
@@ -2,10 +2,10 @@
Signed-off-by: Chunyan Liu <cyliu(a)novell.com>
-Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/vl.c
+Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/vl.c
===================================================================
---- xen-4.1.2-testing.orig/tools/ioemu-qemu-xen/vl.c
-+++ xen-4.1.2-testing/tools/ioemu-qemu-xen/vl.c
+--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/vl.c
++++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/vl.c
@@ -200,7 +200,7 @@ DriveInfo drives_table[MAX_DRIVES+1];
int nb_drives;
enum vga_retrace_method vga_retrace_method = VGA_RETRACE_DUMB;
@@ -15,10 +15,10 @@
int nographic;
static int curses;
static int sdl;
-Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/vnc.c
+Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/vnc.c
===================================================================
---- xen-4.1.2-testing.orig/tools/ioemu-qemu-xen/vnc.c
-+++ xen-4.1.2-testing/tools/ioemu-qemu-xen/vnc.c
+--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/vnc.c
++++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/vnc.c
@@ -2591,6 +2591,7 @@ int vnc_display_password(DisplayState *d
if (password && password[0]) {
if (!(vs->password = qemu_strdup(password)))
@@ -27,11 +27,11 @@
}
return 0;
-Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/xenstore.c
+Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/xenstore.c
===================================================================
---- xen-4.1.2-testing.orig/tools/ioemu-qemu-xen/xenstore.c
-+++ xen-4.1.2-testing/tools/ioemu-qemu-xen/xenstore.c
-@@ -25,6 +25,7 @@
+--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/xenstore.c
++++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/xenstore.c
+@@ -24,6 +24,7 @@
#include "qemu-timer.h"
#include "qemu-xen.h"
@@ -39,7 +39,7 @@
struct xs_handle *xsh = NULL;
static char *media_filename[MAX_DRIVES+1];
static QEMUTimer *insert_timer = NULL;
-@@ -1006,6 +1007,19 @@ static void xenstore_process_dm_command_
+@@ -937,6 +938,19 @@ static void xenstore_process_dm_command_
} else if (!strncmp(command, "continue", len)) {
fprintf(logfile, "dm-command: continue after state save\n");
xen_pause_requested = 0;
@@ -59,11 +59,11 @@
} else if (!strncmp(command, "usb-add", len)) {
fprintf(logfile, "dm-command: usb-add a usb device\n");
if (pasprintf(&path,
-Index: xen-4.1.2-testing/tools/python/xen/xend/XendDomainInfo.py
+Index: xen-4.2.0-testing/tools/python/xen/xend/XendDomainInfo.py
===================================================================
---- xen-4.1.2-testing.orig/tools/python/xen/xend/XendDomainInfo.py
-+++ xen-4.1.2-testing/tools/python/xen/xend/XendDomainInfo.py
-@@ -1488,6 +1488,20 @@ class XendDomainInfo:
+--- xen-4.2.0-testing.orig/tools/python/xen/xend/XendDomainInfo.py
++++ xen-4.2.0-testing/tools/python/xen/xend/XendDomainInfo.py
+@@ -1490,6 +1490,20 @@ class XendDomainInfo:
target = max_target
self.setMemoryTarget(target)
@@ -84,10 +84,10 @@
def setMemoryTarget(self, target):
"""Set the memory target of this domain.
@param target: In MiB.
-Index: xen-4.1.2-testing/tools/python/xen/xend/server/XMLRPCServer.py
+Index: xen-4.2.0-testing/tools/python/xen/xend/server/XMLRPCServer.py
===================================================================
---- xen-4.1.2-testing.orig/tools/python/xen/xend/server/XMLRPCServer.py
-+++ xen-4.1.2-testing/tools/python/xen/xend/server/XMLRPCServer.py
+--- xen-4.2.0-testing.orig/tools/python/xen/xend/server/XMLRPCServer.py
++++ xen-4.2.0-testing/tools/python/xen/xend/server/XMLRPCServer.py
@@ -95,7 +95,7 @@ methods = ['device_create', 'device_conf
'destroyDevice','getDeviceSxprs',
'setMemoryTarget', 'setName', 'setVCpuCount', 'shutdown',
@@ -97,10 +97,10 @@
exclude = ['domain_create', 'domain_restore']
-Index: xen-4.1.2-testing/tools/python/xen/xm/main.py
+Index: xen-4.2.0-testing/tools/python/xen/xm/main.py
===================================================================
---- xen-4.1.2-testing.orig/tools/python/xen/xm/main.py
-+++ xen-4.1.2-testing/tools/python/xen/xm/main.py
+--- xen-4.2.0-testing.orig/tools/python/xen/xm/main.py
++++ xen-4.2.0-testing/tools/python/xen/xm/main.py
@@ -21,6 +21,7 @@
"""Grand unified management application for Xen.
@@ -109,7 +109,7 @@
import atexit
import cmd
import os
-@@ -289,6 +290,9 @@ SUBCOMMAND_HELP = {
+@@ -281,6 +282,9 @@ SUBCOMMAND_HELP = {
'getenforce' : ('', 'Returns the current enforcing mode for the Flask XSM module (Enforcing,Permissive)'),
'setenforce' : ('[ (Enforcing|1) | (Permissive|0) ]',
'Modifies the current enforcing mode for the Flask XSM module'),
@@ -119,7 +119,7 @@
}
SUBCOMMAND_OPTIONS = {
-@@ -421,6 +425,7 @@ common_commands = [
+@@ -406,6 +410,7 @@ common_commands = [
"usb-del",
"domstate",
"vcpu-set",
@@ -127,7 +127,7 @@
]
domain_commands = [
-@@ -462,6 +467,7 @@ domain_commands = [
+@@ -443,6 +448,7 @@ domain_commands = [
"vcpu-list",
"vcpu-pin",
"vcpu-set",
@@ -135,7 +135,7 @@
]
host_commands = [
-@@ -3881,6 +3887,10 @@ def xm_cpupool_migrate(args):
+@@ -3806,6 +3812,10 @@ def xm_cpupool_migrate(args):
else:
server.xend.cpu_pool.migrate(domname, poolname)
@@ -146,7 +146,7 @@
commands = {
"shell": xm_shell,
-@@ -3993,6 +4003,8 @@ commands = {
+@@ -3914,6 +3924,8 @@ commands = {
"usb-del": xm_usb_del,
#domstate
"domstate": xm_domstate,
++++++ change_home_server.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:03.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:03.000000000 +0200
@@ -1,8 +1,8 @@
-Index: xen-4.1.2-testing/tools/python/xen/xend/XendDomainInfo.py
+Index: xen-4.2.0-testing/tools/python/xen/xend/XendDomainInfo.py
===================================================================
---- xen-4.1.2-testing.orig/tools/python/xen/xend/XendDomainInfo.py
-+++ xen-4.1.2-testing/tools/python/xen/xend/XendDomainInfo.py
-@@ -3132,6 +3132,11 @@ class XendDomainInfo:
+--- xen-4.2.0-testing.orig/tools/python/xen/xend/XendDomainInfo.py
++++ xen-4.2.0-testing/tools/python/xen/xend/XendDomainInfo.py
+@@ -3139,6 +3139,11 @@ class XendDomainInfo:
self._cleanup_phantom_devs(paths)
self._cleanupVm()
++++++ check_device_status.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:03.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:03.000000000 +0200
@@ -5,10 +5,10 @@
returned. To fix this problem, we do not depend on ev.wait() result, but read
xenstore directly to get correct device status.
-Index: xen-4.1.2-testing/tools/python/xen/xend/server/DevController.py
+Index: xen-4.2.0-testing/tools/python/xen/xend/server/DevController.py
===================================================================
---- xen-4.1.2-testing.orig/tools/python/xen/xend/server/DevController.py
-+++ xen-4.1.2-testing/tools/python/xen/xend/server/DevController.py
+--- xen-4.2.0-testing.orig/tools/python/xen/xend/server/DevController.py
++++ xen-4.2.0-testing/tools/python/xen/xend/server/DevController.py
@@ -149,7 +149,10 @@ class DevController:
(status, err) = self.waitForBackend(devid)
++++++ checkpoint-rename.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:03.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:03.000000000 +0200
@@ -1,7 +1,7 @@
-Index: xen-4.1.2-testing/tools/python/xen/xend/XendCheckpoint.py
+Index: xen-4.2.0-testing/tools/python/xen/xend/XendCheckpoint.py
===================================================================
---- xen-4.1.2-testing.orig/tools/python/xen/xend/XendCheckpoint.py
-+++ xen-4.1.2-testing/tools/python/xen/xend/XendCheckpoint.py
+--- xen-4.2.0-testing.orig/tools/python/xen/xend/XendCheckpoint.py
++++ xen-4.2.0-testing/tools/python/xen/xend/XendCheckpoint.py
@@ -172,7 +172,7 @@ def save(fd, dominfo, network, live, dst
dominfo.destroy()
dominfo.testDeviceComplete()
++++++ del_usb_xend_entry.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:03.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:03.000000000 +0200
@@ -1,8 +1,8 @@
-Index: xen-4.1.2-testing/tools/python/xen/xend/XendDomainInfo.py
+Index: xen-4.2.0-testing/tools/python/xen/xend/XendDomainInfo.py
===================================================================
---- xen-4.1.2-testing.orig/tools/python/xen/xend/XendDomainInfo.py
-+++ xen-4.1.2-testing/tools/python/xen/xend/XendDomainInfo.py
-@@ -1296,8 +1296,15 @@ class XendDomainInfo:
+--- xen-4.2.0-testing.orig/tools/python/xen/xend/XendDomainInfo.py
++++ xen-4.2.0-testing/tools/python/xen/xend/XendDomainInfo.py
+@@ -1298,8 +1298,15 @@ class XendDomainInfo:
frontpath = self.getDeviceController(deviceClass).frontendPath(dev)
backpath = xstransact.Read(frontpath, "backend")
thread.start_new_thread(self.getDeviceController(deviceClass).finishDeviceCleanup, (backpath, path))
++++++ disable_emulated_device.diff ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:03.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:03.000000000 +0200
@@ -1,7 +1,7 @@
-Index: xen-4.1.3-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
+Index: xen-4.2.0-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
===================================================================
---- xen-4.1.3-testing.orig/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
-+++ xen-4.1.3-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
+--- xen-4.2.0-testing.orig/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
++++ xen-4.2.0-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
@@ -424,6 +424,11 @@ static int __devinit platform_pci_init(s
platform_mmio = mmio_addr;
platform_mmiolen = mmio_len;
++++++ domu-usb-controller.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:03.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:03.000000000 +0200
@@ -1,8 +1,8 @@
-Index: xen-4.1.2-testing/tools/python/xen/xend/XendConfig.py
+Index: xen-4.2.0-testing/tools/python/xen/xend/XendConfig.py
===================================================================
---- xen-4.1.2-testing.orig/tools/python/xen/xend/XendConfig.py
-+++ xen-4.1.2-testing/tools/python/xen/xend/XendConfig.py
-@@ -1874,7 +1874,14 @@ class XendConfig(dict):
+--- xen-4.2.0-testing.orig/tools/python/xen/xend/XendConfig.py
++++ xen-4.2.0-testing/tools/python/xen/xend/XendConfig.py
+@@ -1875,7 +1875,14 @@ class XendConfig(dict):
ports = sxp.child(dev_sxp, 'port')
for port in ports[1:]:
try:
++++++ hibernate.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:03.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:03.000000000 +0200
@@ -1,14 +1,12 @@
-Index: xen-4.1.2-testing/tools/firmware/hvmloader/acpi/dsdt.asl
+Index: xen-4.2.0-testing/tools/firmware/hvmloader/acpi/ssdt_s3.asl
===================================================================
---- xen-4.1.2-testing.orig/tools/firmware/hvmloader/acpi/dsdt.asl
-+++ xen-4.1.2-testing/tools/firmware/hvmloader/acpi/dsdt.asl
-@@ -30,21 +30,9 @@ DefinitionBlock ("DSDT.aml", "DSDT", 2,
- /*
- * S3 (suspend-to-ram), S4 (suspend-to-disc) and S5 (power-off) type codes:
- * must match piix4 emulation.
-+ * Turn off support for s3 and s4 sleep states to deal with SVVP tests.
-+ * This is what MSFT does on HyperV.
- */
+--- xen-4.2.0-testing.orig/tools/firmware/hvmloader/acpi/ssdt_s3.asl
++++ xen-4.2.0-testing/tools/firmware/hvmloader/acpi/ssdt_s3.asl
+@@ -20,13 +20,9 @@
+
+ DefinitionBlock ("SSDT_S3.aml", "SSDT", 2, "Xen", "HVM", 0)
+ {
+- /* Must match piix emulation */
- Name (\_S3, Package (0x04)
- {
- 0x01, /* PM1a_CNT.SLP_TYP */
@@ -16,6 +14,21 @@
- 0x0, /* reserved */
- 0x0 /* reserved */
- })
++ /*
++ * Turn off support for s3 sleep state to deal with SVVP tests.
++ * This is what MSFT does on HyperV.
++ */
+ }
+
+Index: xen-4.2.0-testing/tools/firmware/hvmloader/acpi/ssdt_s4.asl
+===================================================================
+--- xen-4.2.0-testing.orig/tools/firmware/hvmloader/acpi/ssdt_s4.asl
++++ xen-4.2.0-testing/tools/firmware/hvmloader/acpi/ssdt_s4.asl
+@@ -20,13 +20,9 @@
+
+ DefinitionBlock ("SSDT_S4.aml", "SSDT", 2, "Xen", "HVM", 0)
+ {
+- /* Must match piix emulation */
- Name (\_S4, Package (0x04)
- {
- 0x00, /* PM1a_CNT.SLP_TYP */
@@ -23,6 +36,9 @@
- 0x00, /* reserved */
- 0x00 /* reserved */
- })
- Name (\_S5, Package (0x04)
- {
- 0x00, /* PM1a_CNT.SLP_TYP */
++ /*
++ * Turn off support for s4 sleep state to deal with SVVP tests.
++ * This is what MSFT does on HyperV.
++ */
+ }
+
++++++ hv_extid_compatibility.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:03.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:03.000000000 +0200
@@ -1,7 +1,7 @@
-Index: xen-4.1.2-testing/tools/python/xen/xend/XendConfig.py
+Index: xen-4.2.0-testing/tools/python/xen/xend/XendConfig.py
===================================================================
---- xen-4.1.2-testing.orig/tools/python/xen/xend/XendConfig.py
-+++ xen-4.1.2-testing/tools/python/xen/xend/XendConfig.py
+--- xen-4.2.0-testing.orig/tools/python/xen/xend/XendConfig.py
++++ xen-4.2.0-testing/tools/python/xen/xend/XendConfig.py
@@ -159,6 +159,7 @@ XENAPI_PLATFORM_CFG_TYPES = {
'nographic': int,
'nomigrate': int,
@@ -19,11 +19,11 @@
if 'viridian' not in self['platform']:
self['platform']['viridian'] = 0
if 'rtc_timeoffset' not in self['platform']:
-Index: xen-4.1.2-testing/tools/python/xen/xend/image.py
+Index: xen-4.2.0-testing/tools/python/xen/xend/image.py
===================================================================
---- xen-4.1.2-testing.orig/tools/python/xen/xend/image.py
-+++ xen-4.1.2-testing/tools/python/xen/xend/image.py
-@@ -839,6 +839,7 @@ class HVMImageHandler(ImageHandler):
+--- xen-4.2.0-testing.orig/tools/python/xen/xend/image.py
++++ xen-4.2.0-testing/tools/python/xen/xend/image.py
+@@ -828,6 +828,7 @@ class HVMImageHandler(ImageHandler):
self.apic = int(vmConfig['platform'].get('apic', 0))
self.acpi = int(vmConfig['platform'].get('acpi', 0))
@@ -31,10 +31,10 @@
self.guest_os_type = vmConfig['platform'].get('guest_os_type')
self.memory_sharing = int(vmConfig['memory_sharing'])
try:
-Index: xen-4.1.2-testing/tools/python/xen/xm/create.py
+Index: xen-4.2.0-testing/tools/python/xen/xm/create.py
===================================================================
---- xen-4.1.2-testing.orig/tools/python/xen/xm/create.py
-+++ xen-4.1.2-testing/tools/python/xen/xm/create.py
+--- xen-4.2.0-testing.orig/tools/python/xen/xm/create.py
++++ xen-4.2.0-testing/tools/python/xen/xm/create.py
@@ -242,6 +242,10 @@ gopts.var('viridian', val='VIRIDIAN',
use="""Expose Viridian interface to x86 HVM guest?
(Default is 0).""")
@@ -46,7 +46,7 @@
gopts.var('acpi', val='ACPI',
fn=set_int, default=1,
use="Disable or enable ACPI of HVM domain.")
-@@ -1106,7 +1110,7 @@ def configure_hvm(config_image, vals):
+@@ -1111,7 +1115,7 @@ def configure_hvm(config_image, vals):
'timer_mode',
'usb', 'usbdevice',
'vcpus', 'vnc', 'vncconsole', 'vncdisplay', 'vnclisten',
@@ -55,7 +55,7 @@
'watchdog', 'watchdog_action',
'xauthority', 'xen_extended_power_mgmt', 'xen_platform_pci',
'memory_sharing' ]
-@@ -1116,6 +1120,10 @@ def configure_hvm(config_image, vals):
+@@ -1121,6 +1125,10 @@ def configure_hvm(config_image, vals):
config_image.append([a, vals.__dict__[a]])
if vals.vncpasswd is not None:
config_image.append(['vncpasswd', vals.vncpasswd])
++++++ init.xendomains ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:03.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:03.000000000 +0200
@@ -21,17 +21,11 @@
. /etc/rc.status
rc_reset
+LOCKFILE=/var/lock/subsys/xendomains
XENDOM_CONFIG=/etc/sysconfig/xendomains
RETCODE_FILE=/tmp/xendomains.rc.$$
xm_cmd=echo
-# See docs/misc/distro_mapping.txt
-if [ -d /var/lock/subsys ]; then
- LOCKFILE=/var/lock/subsys/xendomains
-else
- LOCKFILE=/var/lock/xendomains
-fi
-
. "$XENDOM_CONFIG"
shopt -s dotglob nullglob
++++++ ioemu-7615-qcow2-fix-alloc_cluster_link_l2.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:03.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:03.000000000 +0200
@@ -17,10 +17,10 @@
Signed-off-by: Kevin Wolf <kwolf(a)redhat.com>
-Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/block-qcow2.c
+Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/block-qcow2.c
===================================================================
---- xen-4.1.2-testing.orig/tools/ioemu-qemu-xen/block-qcow2.c
-+++ xen-4.1.2-testing/tools/ioemu-qemu-xen/block-qcow2.c
+--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/block-qcow2.c
++++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/block-qcow2.c
@@ -916,7 +916,7 @@ static int alloc_cluster_link_l2(BlockDr
goto err;
++++++ ioemu-bdrv-open-CACHE_WB.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -1,8 +1,8 @@
-Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c
+Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/xen_blktap.c
===================================================================
---- xen-4.1.2-testing.orig/tools/ioemu-qemu-xen/hw/xen_blktap.c
-+++ xen-4.1.2-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c
-@@ -259,8 +259,11 @@ static int open_disk(struct td_state *s,
+--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/hw/xen_blktap.c
++++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/xen_blktap.c
+@@ -247,8 +247,11 @@ static int open_disk(struct td_state *s,
drv = blktap_drivers[i].drv;
DPRINTF("%s driver specified\n", drv ? drv->format_name : "No");
++++++ ioemu-blktap-barriers.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -1,7 +1,7 @@
-Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c
+Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/xen_blktap.c
===================================================================
---- xen-4.1.2-testing.orig/tools/ioemu-qemu-xen/hw/xen_blktap.c
-+++ xen-4.1.2-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c
+--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/hw/xen_blktap.c
++++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/xen_blktap.c
@@ -360,6 +360,15 @@ static void qemu_send_responses(void* op
}
++++++ ioemu-blktap-fv-init.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -1,8 +1,8 @@
-Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/hw/xen_machine_fv.c
+Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/xen_machine_fv.c
===================================================================
---- xen-4.1.2-testing.orig/tools/ioemu-qemu-xen/hw/xen_machine_fv.c
-+++ xen-4.1.2-testing/tools/ioemu-qemu-xen/hw/xen_machine_fv.c
-@@ -269,6 +269,7 @@ void qemu_invalidate_entry(uint8_t *buff
+--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/hw/xen_machine_fv.c
++++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/xen_machine_fv.c
+@@ -270,6 +270,7 @@ void qemu_invalidate_entry(uint8_t *buff
#endif /* defined(MAPCACHE) */
@@ -10,7 +10,7 @@
static void xen_init_fv(ram_addr_t ram_size, int vga_ram_size,
const char *boot_device,
-@@ -294,6 +295,11 @@ static void xen_init_fv(ram_addr_t ram_s
+@@ -295,6 +296,11 @@ static void xen_init_fv(ram_addr_t ram_s
}
#endif
++++++ ioemu-blktap-image-format.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -15,11 +15,11 @@
hw/xen_blktap.h | 14 ++++++++++++++
2 files changed, 33 insertions(+), 3 deletions(-)
-Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c
+Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/xen_blktap.c
===================================================================
---- xen-4.1.2-testing.orig/tools/ioemu-qemu-xen/hw/xen_blktap.c
-+++ xen-4.1.2-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c
-@@ -230,9 +230,10 @@ static int map_new_dev(struct td_state *
+--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/hw/xen_blktap.c
++++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/xen_blktap.c
+@@ -218,9 +218,10 @@ static int map_new_dev(struct td_state *
return -1;
}
@@ -31,7 +31,7 @@
char* devname;
static int devnumber = 0;
int i;
-@@ -242,7 +243,22 @@ static int open_disk(struct td_state *s,
+@@ -230,7 +231,22 @@ static int open_disk(struct td_state *s,
bs = bdrv_new(devname);
free(devname);
@@ -64,11 +64,11 @@
msglen = sizeof(msg_hdr_t);
msg->type = CTLMSG_IMG_FAIL;
msg->len = msglen;
-Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/hw/xen_blktap.h
+Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/xen_blktap.h
===================================================================
---- xen-4.1.2-testing.orig/tools/ioemu-qemu-xen/hw/xen_blktap.h
-+++ xen-4.1.2-testing/tools/ioemu-qemu-xen/hw/xen_blktap.h
-@@ -53,4 +53,18 @@ typedef struct fd_list_entry {
+--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/hw/xen_blktap.h
++++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/xen_blktap.h
+@@ -52,4 +52,18 @@ typedef struct fd_list_entry {
int init_blktap(void);
++++++ ioemu-blktap-zero-size.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -12,11 +12,11 @@
hw/xen_blktap.c | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
-Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c
+Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/xen_blktap.c
===================================================================
---- xen-4.1.2-testing.orig/tools/ioemu-qemu-xen/hw/xen_blktap.c
-+++ xen-4.1.2-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c
-@@ -268,6 +268,12 @@ static int open_disk(struct td_state *s,
+--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/hw/xen_blktap.c
++++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/xen_blktap.c
+@@ -256,6 +256,12 @@ static int open_disk(struct td_state *s,
s->size = bs->total_sectors;
s->sector_size = 512;
@@ -28,11 +28,11 @@
+
s->info = ((s->flags & TD_RDONLY) ? VDISK_READONLY : 0);
- return 0;
-Index: xen-4.1.2-testing/tools/python/xen/xend/server/DevController.py
+ #ifndef QEMU_TOOL
+Index: xen-4.2.0-testing/tools/python/xen/xend/server/DevController.py
===================================================================
---- xen-4.1.2-testing.orig/tools/python/xen/xend/server/DevController.py
-+++ xen-4.1.2-testing/tools/python/xen/xend/server/DevController.py
+--- xen-4.2.0-testing.orig/tools/python/xen/xend/server/DevController.py
++++ xen-4.2.0-testing/tools/python/xen/xend/server/DevController.py
@@ -155,7 +155,7 @@ class DevController:
(devid, self.deviceClass))
++++++ ioemu-debuginfo.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -1,7 +1,7 @@
-Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/Makefile
+Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/Makefile
===================================================================
---- xen-4.1.2-testing.orig/tools/ioemu-qemu-xen/Makefile
-+++ xen-4.1.2-testing/tools/ioemu-qemu-xen/Makefile
+--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/Makefile
++++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/Makefile
@@ -243,7 +243,7 @@ endif
install: all $(if $(BUILD_DOCS),install-doc)
mkdir -p "$(DESTDIR)$(bindir)"
@@ -11,10 +11,10 @@
endif
ifneq ($(BLOBS),)
mkdir -p "$(DESTDIR)$(datadir)"
-Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/Makefile.target
+Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/Makefile.target
===================================================================
---- xen-4.1.2-testing.orig/tools/ioemu-qemu-xen/Makefile.target
-+++ xen-4.1.2-testing/tools/ioemu-qemu-xen/Makefile.target
+--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/Makefile.target
++++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/Makefile.target
@@ -755,7 +755,7 @@ clean:
install: all install-hook
++++++ ioemu-disable-emulated-ide-if-pv.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -1,7 +1,7 @@
-Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/qemu-xen.h
+Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/qemu-xen.h
===================================================================
---- xen-4.1.2-testing.orig/tools/ioemu-qemu-xen/qemu-xen.h
-+++ xen-4.1.2-testing/tools/ioemu-qemu-xen/qemu-xen.h
+--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/qemu-xen.h
++++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/qemu-xen.h
@@ -1,6 +1,8 @@
#ifndef QEMU_XEN_H
#define QEMU_XEN_H
@@ -11,7 +11,7 @@
/* vl.c */
extern int restore;
extern int vga_ram_size;
-@@ -75,7 +77,7 @@ void handle_buffered_pio(void);
+@@ -65,7 +67,7 @@ void handle_buffered_pio(void);
/* xenstore.c */
void xenstore_init(void);
uint32_t xenstore_read_target(void);
@@ -20,11 +20,11 @@
int xenstore_parse_disable_pf_config(void);
int xenstore_fd(void);
void xenstore_process_event(void *opaque);
-Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/vl.c
+Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/vl.c
===================================================================
---- xen-4.1.2-testing.orig/tools/ioemu-qemu-xen/vl.c
-+++ xen-4.1.2-testing/tools/ioemu-qemu-xen/vl.c
-@@ -5852,9 +5852,9 @@ int main(int argc, char **argv, char **e
+--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/vl.c
++++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/vl.c
+@@ -5862,9 +5862,9 @@ int main(int argc, char **argv, char **e
if ((msg = xenbus_read(XBT_NIL, "domid", &domid_s)))
fprintf(stderr,"Can not read our own domid: %s\n", msg);
else
@@ -36,11 +36,11 @@
#endif /* CONFIG_STUBDOM */
}
-Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/xenstore.c
+Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/xenstore.c
===================================================================
---- xen-4.1.2-testing.orig/tools/ioemu-qemu-xen/xenstore.c
-+++ xen-4.1.2-testing/tools/ioemu-qemu-xen/xenstore.c
-@@ -448,7 +448,7 @@ void xenstore_init(void)
+--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/xenstore.c
++++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/xenstore.c
+@@ -445,7 +445,7 @@ void xenstore_init(void)
}
}
@@ -49,7 +49,7 @@
{
char **e_danger = NULL;
char *buf = NULL;
-@@ -761,15 +761,19 @@ void xenstore_parse_domain_config(int hv
+@@ -733,15 +733,19 @@ void xenstore_parse_domain_config(int hv
#endif
++++++ ioemu-disable-scsi.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -1,7 +1,7 @@
-Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/hw/xen_platform.c
+Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/xen_platform.c
===================================================================
---- xen-4.1.2-testing.orig/tools/ioemu-qemu-xen/hw/xen_platform.c
-+++ xen-4.1.2-testing/tools/ioemu-qemu-xen/hw/xen_platform.c
+--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/hw/xen_platform.c
++++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/xen_platform.c
@@ -359,6 +359,8 @@ static void platform_ioport_write(void *
case 4:
fprintf(logfile, "Disconnect IDE hard disk...\n");
@@ -11,11 +11,11 @@
fprintf(logfile, "Disconnect netifs...\n");
pci_unplug_netifs();
fprintf(logfile, "Shutdown taps...\n");
-Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/qemu-xen.h
+Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/qemu-xen.h
===================================================================
---- xen-4.1.2-testing.orig/tools/ioemu-qemu-xen/qemu-xen.h
-+++ xen-4.1.2-testing/tools/ioemu-qemu-xen/qemu-xen.h
-@@ -57,6 +57,7 @@ void unset_vram_mapping(void *opaque);
+--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/qemu-xen.h
++++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/qemu-xen.h
+@@ -47,6 +47,7 @@ void unset_vram_mapping(void *opaque);
#endif
void pci_unplug_netifs(void);
@@ -23,10 +23,10 @@
void destroy_hvm_domain(void);
void unregister_iomem(target_phys_addr_t start);
-Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/hw/pci.c
+Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/pci.c
===================================================================
---- xen-4.1.2-testing.orig/tools/ioemu-qemu-xen/hw/pci.c
-+++ xen-4.1.2-testing/tools/ioemu-qemu-xen/hw/pci.c
+--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/hw/pci.c
++++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/pci.c
@@ -871,6 +871,50 @@ void pci_unplug_netifs(void)
}
}
++++++ ioemu-vnc-resize.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -1,7 +1,7 @@
-Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/vnc.c
+Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/vnc.c
===================================================================
---- xen-4.1.2-testing.orig/tools/ioemu-qemu-xen/vnc.c
-+++ xen-4.1.2-testing/tools/ioemu-qemu-xen/vnc.c
+--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/vnc.c
++++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/vnc.c
@@ -1734,6 +1734,25 @@ static int protocol_client_msg(VncState
}
++++++ ioemu-watchdog-ib700-timer.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -14,10 +14,10 @@
Signed-off-by: Markus Armbruster <armbru(a)redhat.com>
Signed-off-by: Anthony Liguori <aliguori(a)us.ibm.com>
-Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/hw/wdt_ib700.c
+Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/wdt_ib700.c
===================================================================
---- xen-4.1.2-testing.orig/tools/ioemu-qemu-xen/hw/wdt_ib700.c
-+++ xen-4.1.2-testing/tools/ioemu-qemu-xen/hw/wdt_ib700.c
+--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/hw/wdt_ib700.c
++++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/wdt_ib700.c
@@ -93,6 +93,7 @@ static int ib700_load(QEMUFile *f, void
/* Create and initialize a virtual IB700 during PC creation. */
static void ib700_pc_init(PCIBus *unused)
++++++ ioemu-watchdog-linkage.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -7,10 +7,10 @@
Signed-off-by: Markus Armbruster <armbru(a)redhat.com>
Signed-off-by: Anthony Liguori <aliguori(a)us.ibm.com>
-Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/hw/watchdog.c
+Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/watchdog.c
===================================================================
---- xen-4.1.2-testing.orig/tools/ioemu-qemu-xen/hw/watchdog.c
-+++ xen-4.1.2-testing/tools/ioemu-qemu-xen/hw/watchdog.c
+--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/hw/watchdog.c
++++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/watchdog.c
@@ -26,6 +26,16 @@
#include "sysemu.h"
#include "hw/watchdog.h"
@@ -28,10 +28,10 @@
static LIST_HEAD(watchdog_list, WatchdogTimerModel) watchdog_list;
void watchdog_add_model(WatchdogTimerModel *model)
-Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/hw/watchdog.h
+Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/watchdog.h
===================================================================
---- xen-4.1.2-testing.orig/tools/ioemu-qemu-xen/hw/watchdog.h
-+++ xen-4.1.2-testing/tools/ioemu-qemu-xen/hw/watchdog.h
+--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/hw/watchdog.h
++++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/watchdog.h
@@ -27,13 +27,6 @@
extern void wdt_i6300esb_init(void);
extern void wdt_ib700_init(void);
@@ -57,10 +57,10 @@
/* in hw/watchdog.c */
extern int select_watchdog(const char *p);
extern int select_watchdog_action(const char *action);
-Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/vl.c
+Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/vl.c
===================================================================
---- xen-4.1.2-testing.orig/tools/ioemu-qemu-xen/vl.c
-+++ xen-4.1.2-testing/tools/ioemu-qemu-xen/vl.c
+--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/vl.c
++++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/vl.c
@@ -250,8 +250,6 @@ int no_shutdown = 0;
int cursor_hide = 1;
int graphic_rotate = 0;
++++++ ioemu-watchdog-support.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -10,10 +10,10 @@
Signed-off-by: Richard W.M. Jones <rjones(a)redhat.com>
Signed-off-by: Anthony Liguori <aliguori(a)us.ibm.com>
-Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/Makefile.target
+Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/Makefile.target
===================================================================
---- xen-4.1.2-testing.orig/tools/ioemu-qemu-xen/Makefile.target
-+++ xen-4.1.2-testing/tools/ioemu-qemu-xen/Makefile.target
+--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/Makefile.target
++++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/Makefile.target
@@ -580,6 +580,10 @@ OBJS += e1000.o
# Serial mouse
OBJS += msmouse.o
@@ -25,10 +25,10 @@
ifeq ($(TARGET_BASE_ARCH), i386)
# Hardware support
ifdef CONFIG_AUDIO
-Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/hw/pc.c
+Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/pc.c
===================================================================
---- xen-4.1.2-testing.orig/tools/ioemu-qemu-xen/hw/pc.c
-+++ xen-4.1.2-testing/tools/ioemu-qemu-xen/hw/pc.c
+--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/hw/pc.c
++++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/pc.c
@@ -41,6 +41,7 @@
#include "virtio-balloon.h"
#include "virtio-console.h"
@@ -46,10 +46,10 @@
for(i = 0; i < nb_nics; i++) {
NICInfo *nd = &nd_table[i];
-Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/hw/watchdog.c
+Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/watchdog.c
===================================================================
--- /dev/null
-+++ xen-4.1.2-testing/tools/ioemu-qemu-xen/hw/watchdog.c
++++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/watchdog.c
@@ -0,0 +1,136 @@
+/*
+ * Virtual hardware watchdog.
@@ -187,10 +187,10 @@
+ wdt_ib700_init();
+ wdt_i6300esb_init();
+}
-Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/hw/watchdog.h
+Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/watchdog.h
===================================================================
--- /dev/null
-+++ xen-4.1.2-testing/tools/ioemu-qemu-xen/hw/watchdog.h
++++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/watchdog.h
@@ -0,0 +1,65 @@
+/*
+ * Virtual hardware watchdog.
@@ -257,10 +257,10 @@
+extern void register_watchdogs(void);
+
+#endif /* QEMU_WATCHDOG_H */
-Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/hw/wdt_i6300esb.c
+Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/wdt_i6300esb.c
===================================================================
--- /dev/null
-+++ xen-4.1.2-testing/tools/ioemu-qemu-xen/hw/wdt_i6300esb.c
++++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/wdt_i6300esb.c
@@ -0,0 +1,470 @@
+/*
+ * Virtual hardware watchdog.
@@ -732,10 +732,10 @@
+{
+ watchdog_add_model(&model);
+}
-Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/hw/wdt_ib700.c
+Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/wdt_ib700.c
===================================================================
--- /dev/null
-+++ xen-4.1.2-testing/tools/ioemu-qemu-xen/hw/wdt_ib700.c
++++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/wdt_ib700.c
@@ -0,0 +1,112 @@
+/*
+ * Virtual hardware watchdog.
@@ -849,10 +849,10 @@
+ watchdog_add_model(&model);
+ timer = qemu_new_timer(vm_clock, ib700_timer_expired, NULL);
+}
-Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/monitor.c
+Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/monitor.c
===================================================================
---- xen-4.1.2-testing.orig/tools/ioemu-qemu-xen/monitor.c
-+++ xen-4.1.2-testing/tools/ioemu-qemu-xen/monitor.c
+--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/monitor.c
++++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/monitor.c
@@ -26,6 +26,7 @@
#include "hw/pcmcia.h"
#include "hw/pc.h"
@@ -884,10 +884,10 @@
{ "cpu_set", "is", do_cpu_set_nr,
"cpu [online|offline]", "change cpu state" },
{ NULL, NULL, },
-Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/vl.c
+Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/vl.c
===================================================================
---- xen-4.1.2-testing.orig/tools/ioemu-qemu-xen/vl.c
-+++ xen-4.1.2-testing/tools/ioemu-qemu-xen/vl.c
+--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/vl.c
++++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/vl.c
@@ -30,6 +30,7 @@
#include "hw/isa.h"
#include "hw/baum.h"
@@ -905,7 +905,7 @@
const char *option_rom[MAX_OPTION_ROMS];
int nb_option_roms;
int semihosting_enabled = 0;
-@@ -4167,6 +4170,10 @@ static void help(int exitcode)
+@@ -4177,6 +4180,10 @@ static void help(int exitcode)
"-startdate select initial date of the clock\n"
"-icount [N|auto]\n"
" enable virtual instruction counter with 2^N clock ticks per instruction\n"
@@ -916,7 +916,7 @@
"-echr chr set terminal escape character instead of ctrl-a\n"
"-virtioconsole c\n"
" set virtio console\n"
-@@ -4314,6 +4321,8 @@ enum {
+@@ -4324,6 +4331,8 @@ enum {
QEMU_OPTION_localtime,
QEMU_OPTION_startdate,
QEMU_OPTION_icount,
@@ -925,7 +925,7 @@
QEMU_OPTION_echr,
QEMU_OPTION_virtiocon,
QEMU_OPTION_show_cursor,
-@@ -4440,6 +4449,8 @@ static const QEMUOption qemu_options[] =
+@@ -4450,6 +4459,8 @@ static const QEMUOption qemu_options[] =
{ "localtime", 0, QEMU_OPTION_localtime },
{ "startdate", HAS_ARG, QEMU_OPTION_startdate },
{ "icount", HAS_ARG, QEMU_OPTION_icount },
@@ -934,7 +934,7 @@
{ "echr", HAS_ARG, QEMU_OPTION_echr },
{ "virtioconsole", HAS_ARG, QEMU_OPTION_virtiocon },
{ "show-cursor", 0, QEMU_OPTION_show_cursor },
-@@ -4941,6 +4952,8 @@ int main(int argc, char **argv, char **e
+@@ -4951,6 +4962,8 @@ int main(int argc, char **argv, char **e
tb_size = 0;
autostart= 1;
@@ -943,7 +943,7 @@
optind = 1;
for(;;) {
if (optind >= argc)
-@@ -5315,6 +5328,17 @@ int main(int argc, char **argv, char **e
+@@ -5325,6 +5338,17 @@ int main(int argc, char **argv, char **e
serial_devices[serial_device_index] = optarg;
serial_device_index++;
break;
++++++ ipxe-enable-nics.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -1,17 +1,9 @@
-Index: xen-4.1.2-testing/tools/firmware/etherboot/Config
+Index: xen-4.2.0-testing/tools/firmware/etherboot/Config
===================================================================
---- xen-4.1.2-testing.orig/tools/firmware/etherboot/Config
-+++ xen-4.1.2-testing/tools/firmware/etherboot/Config
-@@ -1,11 +1,8 @@
-
--NICS = rtl8139 8086100e
+--- xen-4.2.0-testing.orig/tools/firmware/etherboot/Config
++++ xen-4.2.0-testing/tools/firmware/etherboot/Config
+@@ -1,3 +1,4 @@
+NICS = rtl8139 8086100e eepro100 e1000 pcnet32 10ec8029
CFLAGS += -UPXE_DHCP_STRICT
CFLAGS += -DPXE_DHCP_STRICT
-
- CFLAGS += -UNO_POST_PROMPT
- CFLAGS += -DNO_POST_PROMPT
--
--CFLAGS += -UCONSOLE_SERIAL
--CFLAGS += -DCONSOLE_SERIAL=1
++++++ kernel-boot-hvm.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -4,10 +4,10 @@
Signed-off-by: Chunyan Liu <cyliu(a)novell.com>
-Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/block.c
+Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/block.c
===================================================================
---- xen-4.1.2-testing.orig/tools/ioemu-qemu-xen/block.c
-+++ xen-4.1.2-testing/tools/ioemu-qemu-xen/block.c
+--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/block.c
++++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/block.c
@@ -596,6 +596,16 @@ int bdrv_read(BlockDriverState *bs, int6
if (bdrv_check_request(bs, sector_num, nb_sectors))
@@ -79,10 +79,10 @@
ret = drv->bdrv_aio_write(bs, sector_num, buf, nb_sectors, cb, opaque);
if (ret) {
-Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/block_int.h
+Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/block_int.h
===================================================================
---- xen-4.1.2-testing.orig/tools/ioemu-qemu-xen/block_int.h
-+++ xen-4.1.2-testing/tools/ioemu-qemu-xen/block_int.h
+--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/block_int.h
++++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/block_int.h
@@ -122,6 +122,9 @@ struct BlockDriverState {
BlockDriver *drv; /* NULL means no media */
void *opaque;
@@ -93,10 +93,10 @@
char filename[1024];
char backing_file[1024]; /* if non zero, the image is a diff of
this file image */
-Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/hw/pc.c
+Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/pc.c
===================================================================
---- xen-4.1.2-testing.orig/tools/ioemu-qemu-xen/hw/pc.c
-+++ xen-4.1.2-testing/tools/ioemu-qemu-xen/hw/pc.c
+--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/hw/pc.c
++++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/pc.c
@@ -474,45 +474,28 @@ static void bochs_bios_init(void)
/* Generate an initial boot sector which sets state and jump to
@@ -231,10 +231,10 @@
cpu_irq = qemu_allocate_irqs(pic_irq_request, NULL, 1);
i8259 = i8259_init(cpu_irq[0]);
ferr_irq = i8259[13];
-Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/block.h
+Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/block.h
===================================================================
---- xen-4.1.2-testing.orig/tools/ioemu-qemu-xen/block.h
-+++ xen-4.1.2-testing/tools/ioemu-qemu-xen/block.h
+--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/block.h
++++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/block.h
@@ -82,6 +82,7 @@ int64_t bdrv_getlength(BlockDriverState
void bdrv_get_geometry(BlockDriverState *bs, uint64_t *nb_sectors_ptr);
void bdrv_guess_geometry(BlockDriverState *bs, int *pcyls, int *pheads, int *psecs);
++++++ libxen_permissive.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -1,7 +1,7 @@
-Index: xen-4.1.2-testing/tools/libxen/src/xen_common.c
+Index: xen-4.2.0-testing/tools/libxen/src/xen_common.c
===================================================================
---- xen-4.1.2-testing.orig/tools/libxen/src/xen_common.c
-+++ xen-4.1.2-testing/tools/libxen/src/xen_common.c
+--- xen-4.2.0-testing.orig/tools/libxen/src/xen_common.c
++++ xen-4.2.0-testing/tools/libxen/src/xen_common.c
@@ -904,8 +904,15 @@ static void parse_into(xen_session *s, x
0 != strcmp((char *)value_node->children->name, "struct") ||
value_node->children->children == NULL)
++++++ log-guest-console.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -6,10 +6,10 @@
hw/xen_console.c | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 71 insertions(+), 0 deletions(-)
-Index: xen-4.1.3-testing/tools/ioemu-qemu-xen/hw/xen_console.c
+Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/xen_console.c
===================================================================
---- xen-4.1.3-testing.orig/tools/ioemu-qemu-xen/hw/xen_console.c
-+++ xen-4.1.3-testing/tools/ioemu-qemu-xen/hw/xen_console.c
+--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/hw/xen_console.c
++++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/xen_console.c
@@ -38,6 +38,8 @@
#include "qemu-char.h"
#include "xen_backend.h"
++++++ magic_ioport_compat.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -2,10 +2,10 @@
Signed-off-by: K. Y. Srinivasan <ksrinivasan(a)novell.com>
-Index: xen-4.1.2-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
+Index: xen-4.2.0-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
===================================================================
---- xen-4.1.2-testing.orig/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
-+++ xen-4.1.2-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
+--- xen-4.2.0-testing.orig/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
++++ xen-4.2.0-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
@@ -321,7 +321,10 @@ static int check_platform_magic(struct d
if (magic != XEN_IOPORT_MAGIC_VAL) {
++++++ minios-fixups.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -1,8 +1,8 @@
-Index: xen-4.1.2-testing/extras/mini-os/lib/math.c
+Index: xen-4.2.0-testing/extras/mini-os/lib/math.c
===================================================================
---- xen-4.1.2-testing.orig/extras/mini-os/lib/math.c
-+++ xen-4.1.2-testing/extras/mini-os/lib/math.c
-@@ -187,6 +187,7 @@ __qdivrem(uint64_t uq, uint64_t vq, uint
+--- xen-4.2.0-testing.orig/extras/mini-os/lib/math.c
++++ xen-4.2.0-testing/extras/mini-os/lib/math.c
+@@ -190,6 +190,7 @@ __qdivrem(u_quad_t uq, u_quad_t vq, u_qu
* and thus
* m = 4 - n <= 2
*/
++++++ multi-xvdp.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -5,10 +5,10 @@
loopback devices so more than one instance of bootloader can be run
concurrently.
-Index: xen-4.1.2-testing/tools/python/xen/xend/XendDomainInfo.py
+Index: xen-4.2.0-testing/tools/python/xen/xend/XendDomainInfo.py
===================================================================
---- xen-4.1.2-testing.orig/tools/python/xen/xend/XendDomainInfo.py
-+++ xen-4.1.2-testing/tools/python/xen/xend/XendDomainInfo.py
+--- xen-4.2.0-testing.orig/tools/python/xen/xend/XendDomainInfo.py
++++ xen-4.2.0-testing/tools/python/xen/xend/XendDomainInfo.py
@@ -74,7 +74,7 @@ from xen.xend.XendPSCSI import XendPSCSI
from xen.xend.XendDSCSI import XendDSCSI, XendDSCSI_HBA
@@ -18,7 +18,7 @@
xc = xen.lowlevel.xc.xc()
xoptions = XendOptions.instance()
-@@ -3301,33 +3301,38 @@ class XendDomainInfo:
+@@ -3308,33 +3308,38 @@ class XendDomainInfo:
# This is a file, not a device. pygrub can cope with a
# file if it's raw, but if it's QCOW or other such formats
# used through blktap, then we need to mount it first.
++++++ network-nat-open-SuSEfirewall2-FORWARD.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -1,9 +1,9 @@
Open SuSEfirewall2 FORWARD rule when use xen nat
-Index: xen-4.1.2-testing/tools/hotplug/Linux/network-nat
+Index: xen-4.2.0-testing/tools/hotplug/Linux/network-nat
===================================================================
---- xen-4.1.2-testing.orig/tools/hotplug/Linux/network-nat
-+++ xen-4.1.2-testing/tools/hotplug/Linux/network-nat
+--- xen-4.2.0-testing.orig/tools/hotplug/Linux/network-nat
++++ xen-4.2.0-testing/tools/hotplug/Linux/network-nat
@@ -83,6 +83,7 @@ function dhcp_stop()
op_start() {
echo 1 >/proc/sys/net/ipv4/ip_forward
++++++ network-nat.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -1,7 +1,7 @@
-Index: xen-4.1.2-testing/tools/hotplug/Linux/network-nat
+Index: xen-4.2.0-testing/tools/hotplug/Linux/network-nat
===================================================================
---- xen-4.1.2-testing.orig/tools/hotplug/Linux/network-nat
-+++ xen-4.1.2-testing/tools/hotplug/Linux/network-nat
+--- xen-4.2.0-testing.orig/tools/hotplug/Linux/network-nat
++++ xen-4.2.0-testing/tools/hotplug/Linux/network-nat
@@ -1,4 +1,4 @@
-#!/bin/bash -x
+#!/bin/bash
++++++ pv-driver-build.patch ++++++
Index: xen-4.2.0-testing/unmodified_drivers/linux-2.6/blkfront/Kbuild
===================================================================
--- xen-4.2.0-testing.orig/unmodified_drivers/linux-2.6/blkfront/Kbuild
+++ xen-4.2.0-testing/unmodified_drivers/linux-2.6/blkfront/Kbuild
@@ -3,3 +3,4 @@ include $(M)/overrides.mk
obj-m += xen-vbd.o
xen-vbd-objs := blkfront.o vbd.o
+xen-vbd-objs += $(patsubst %.c,%.o,$(notdir $(wildcard $(src)/vcd.c)))
++++++ pvdrv-import-shared-info.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -1,5 +1,7 @@
---- a/unmodified_drivers/linux-2.6/platform-pci/evtchn.c
-+++ b/unmodified_drivers/linux-2.6/platform-pci/evtchn.c
+Index: xen-4.2.0-testing/unmodified_drivers/linux-2.6/platform-pci/evtchn.c
+===================================================================
+--- xen-4.2.0-testing.orig/unmodified_drivers/linux-2.6/platform-pci/evtchn.c
++++ xen-4.2.0-testing/unmodified_drivers/linux-2.6/platform-pci/evtchn.c
@@ -40,7 +40,9 @@
#include <xen/platform-compat.h>
#endif
@@ -10,8 +12,10 @@
#define is_valid_evtchn(x) ((x) != 0)
#define evtchn_from_irq(x) (irq_evtchn[irq].evtchn)
---- a/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
-+++ b/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
+Index: xen-4.2.0-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
+===================================================================
+--- xen-4.2.0-testing.orig/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
++++ xen-4.2.0-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
@@ -76,7 +76,6 @@ static uint64_t callback_via;
static int __devinit init_xen_info(void)
{
@@ -40,8 +44,10 @@
return 0;
}
---- a/unmodified_drivers/linux-2.6/platform-pci/platform-pci.h
-+++ b/unmodified_drivers/linux-2.6/platform-pci/platform-pci.h
+Index: xen-4.2.0-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.h
+===================================================================
+--- xen-4.2.0-testing.orig/unmodified_drivers/linux-2.6/platform-pci/platform-pci.h
++++ xen-4.2.0-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.h
@@ -27,6 +27,11 @@
unsigned long alloc_xen_mmio(unsigned long len);
void platform_pci_resume(void);
++++++ pvdrv_emulation_control.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -1,7 +1,7 @@
-Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/hw/xen_platform.c
+Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/xen_platform.c
===================================================================
---- xen-4.1.2-testing.orig/tools/ioemu-qemu-xen/hw/xen_platform.c
-+++ xen-4.1.2-testing/tools/ioemu-qemu-xen/hw/xen_platform.c
+--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/hw/xen_platform.c
++++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/xen_platform.c
@@ -365,6 +365,19 @@ static void platform_ioport_write(void *
net_tap_shutdown_all();
fprintf(logfile, "Done.\n");
++++++ qemu-dm-segfault.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -1,7 +1,7 @@
-Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/hw/ide.c
+Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/ide.c
===================================================================
---- xen-4.1.2-testing.orig/tools/ioemu-qemu-xen/hw/ide.c
-+++ xen-4.1.2-testing/tools/ioemu-qemu-xen/hw/ide.c
+--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/hw/ide.c
++++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/ide.c
@@ -935,8 +935,9 @@ static inline void ide_dma_submit_check(
static inline void ide_set_irq(IDEState *s)
++++++ qemu-security-etch1.diff ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -1,7 +1,7 @@
-Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/hw/ne2000.c
+Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/ne2000.c
===================================================================
---- xen-4.1.2-testing.orig/tools/ioemu-qemu-xen/hw/ne2000.c
-+++ xen-4.1.2-testing/tools/ioemu-qemu-xen/hw/ne2000.c
+--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/hw/ne2000.c
++++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/ne2000.c
@@ -218,7 +218,7 @@ static int ne2000_can_receive(void *opaq
NE2000State *s = opaque;
@@ -11,10 +11,10 @@
return !ne2000_buffer_full(s);
}
-Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/hw/pc.c
+Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/pc.c
===================================================================
---- xen-4.1.2-testing.orig/tools/ioemu-qemu-xen/hw/pc.c
-+++ xen-4.1.2-testing/tools/ioemu-qemu-xen/hw/pc.c
+--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/hw/pc.c
++++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/pc.c
@@ -413,7 +413,8 @@ static void bochs_bios_write(void *opaqu
case 0x400:
case 0x401:
++++++ serial-split.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -1,7 +1,7 @@
-Index: xen-4.1.2-testing/tools/misc/serial-split/Makefile
+Index: xen-4.2.0-testing/tools/misc/serial-split/Makefile
===================================================================
--- /dev/null
-+++ xen-4.1.2-testing/tools/misc/serial-split/Makefile
++++ xen-4.2.0-testing/tools/misc/serial-split/Makefile
@@ -0,0 +1,20 @@
+CC ?= gcc
+CFLAGS ?= -Wall -Os
@@ -23,10 +23,10 @@
+
+%.o: %.c Makefile
+ $(CC) $(CFLAGS) -c -o $@ $<
-Index: xen-4.1.2-testing/tools/misc/serial-split/serial-split.c
+Index: xen-4.2.0-testing/tools/misc/serial-split/serial-split.c
===================================================================
--- /dev/null
-+++ xen-4.1.2-testing/tools/misc/serial-split/serial-split.c
++++ xen-4.2.0-testing/tools/misc/serial-split/serial-split.c
@@ -0,0 +1,422 @@
+/*
+ * serial-split.c
++++++ stdvga-cache.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -1,7 +1,7 @@
-Index: xen-4.1.2-testing/xen/arch/x86/hvm/stdvga.c
+Index: xen-4.2.0-testing/xen/arch/x86/hvm/stdvga.c
===================================================================
---- xen-4.1.2-testing.orig/xen/arch/x86/hvm/stdvga.c
-+++ xen-4.1.2-testing/xen/arch/x86/hvm/stdvga.c
+--- xen-4.2.0-testing.orig/xen/arch/x86/hvm/stdvga.c
++++ xen-4.2.0-testing/xen/arch/x86/hvm/stdvga.c
@@ -135,7 +135,10 @@ static int stdvga_outb(uint64_t addr, ui
/* When in standard vga mode, emulate here all writes to the vram buffer
++++++ stubdom.tar.bz2 ++++++
/work/SRC/openSUSE:Factory/xen/stubdom.tar.bz2 /work/SRC/openSUSE:Factory/.xen.new/stubdom.tar.bz2 differ: char 11, line 1
++++++ supported_module.diff ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -2,10 +2,10 @@
Signed-off-by: K. Y. Srinivasan <ksrinivasan(a)novell.com>
-Index: xen-4.1.2-testing/unmodified_drivers/linux-2.6/Module.supported
+Index: xen-4.2.0-testing/unmodified_drivers/linux-2.6/Module.supported
===================================================================
--- /dev/null
-+++ xen-4.1.2-testing/unmodified_drivers/linux-2.6/Module.supported
++++ xen-4.2.0-testing/unmodified_drivers/linux-2.6/Module.supported
@@ -0,0 +1,6 @@
+xen-vbd
+xen-platform-pci
++++++ suspend_evtchn_lock.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -6,10 +6,10 @@
Signed-off-by: Chunyan Liu <cyliu(a)suse.com>
-Index: xen-4.1.2-testing/tools/libxc/xc_suspend.c
+Index: xen-4.2.0-testing/tools/libxc/xc_suspend.c
===================================================================
---- xen-4.1.2-testing.orig/tools/libxc/xc_suspend.c
-+++ xen-4.1.2-testing/tools/libxc/xc_suspend.c
+--- xen-4.2.0-testing.orig/tools/libxc/xc_suspend.c
++++ xen-4.2.0-testing/tools/libxc/xc_suspend.c
@@ -16,8 +16,43 @@
#include "xc_private.h"
++++++ tapdisk-ioemu-logfile.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -11,10 +11,10 @@
tapdisk-ioemu.c | 19 +++++++++++++------
1 files changed, 13 insertions(+), 6 deletions(-)
-Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/tapdisk-ioemu.c
+Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/tapdisk-ioemu.c
===================================================================
---- xen-4.1.2-testing.orig/tools/ioemu-qemu-xen/tapdisk-ioemu.c
-+++ xen-4.1.2-testing/tools/ioemu-qemu-xen/tapdisk-ioemu.c
+--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/tapdisk-ioemu.c
++++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/tapdisk-ioemu.c
@@ -78,15 +78,22 @@ int main(void)
struct timeval tv;
void *old_fd_start = NULL;
++++++ tapdisk-ioemu-shutdown-fix.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -16,11 +16,11 @@
tapdisk-ioemu.c | 13 ++++++++++---
2 files changed, 14 insertions(+), 4 deletions(-)
-Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c
+Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/xen_blktap.c
===================================================================
---- xen-4.1.2-testing.orig/tools/ioemu-qemu-xen/hw/xen_blktap.c
-+++ xen-4.1.2-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c
-@@ -67,6 +67,7 @@ int read_fd;
+--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/hw/xen_blktap.c
++++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/xen_blktap.c
+@@ -65,6 +65,7 @@ int read_fd;
int write_fd;
static pid_t process;
@@ -46,10 +46,10 @@
case CTLMSG_PID:
memset(buf, 0x00, MSG_SIZE);
-Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/tapdisk-ioemu.c
+Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/tapdisk-ioemu.c
===================================================================
---- xen-4.1.2-testing.orig/tools/ioemu-qemu-xen/tapdisk-ioemu.c
-+++ xen-4.1.2-testing/tools/ioemu-qemu-xen/tapdisk-ioemu.c
+--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/tapdisk-ioemu.c
++++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/tapdisk-ioemu.c
@@ -14,6 +14,7 @@ extern void qemu_aio_init(void);
extern void qemu_aio_poll(void);
++++++ tmp-initscript-modprobe.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -1,25 +1,46 @@
-Index: xen-4.1.3-testing/tools/hotplug/Linux/init.d/xencommons
+Index: xen-4.2.0-testing/tools/hotplug/Linux/init.d/xencommons
===================================================================
---- xen-4.1.3-testing.orig/tools/hotplug/Linux/init.d/xencommons
-+++ xen-4.1.3-testing/tools/hotplug/Linux/init.d/xencommons
-@@ -62,6 +62,20 @@ do_start () {
- modprobe evtchn 2>/dev/null
- modprobe gntdev 2>/dev/null
+--- xen-4.2.0-testing.orig/tools/hotplug/Linux/init.d/xencommons
++++ xen-4.2.0-testing/tools/hotplug/Linux/init.d/xencommons
+@@ -60,21 +60,26 @@ do_start () {
+ local time=0
+ local timeout=30
-+ # Load XEN backend modules
-+ # NB: They could be loaded later, e.g. when dom0 hotplug events occur,
-+ # but for now it's safest to have them loaded here.
+- modprobe xen-evtchn 2>/dev/null
+- modprobe xen-gntdev 2>/dev/null
+- modprobe xen-gntalloc 2>/dev/null
+- modprobe xen-blkback 2>/dev/null
+- modprobe xen-netback 2>/dev/null
+- modprobe xen-pciback 2>/dev/null
+- modprobe evtchn 2>/dev/null
+- modprobe gntdev 2>/dev/null
+- modprobe netbk 2>/dev/null
+- modprobe blkbk 2>/dev/null
+- modprobe xen-scsibk 2>/dev/null
+- modprobe usbbk 2>/dev/null
+- modprobe pciback 2>/dev/null
+- modprobe xen-acpi-processor 2>/dev/null
+- modprobe blktap2 2>/dev/null || modprobe blktap 2>/dev/null
++ #modprobe xen-evtchn 2>/dev/null
++ #modprobe xen-gntdev 2>/dev/null
++ #modprobe xen-gntalloc 2>/dev/null
++ #modprobe xen-blkback 2>/dev/null
++ #modprobe xen-netback 2>/dev/null
++ #modprobe xen-pciback 2>/dev/null
+ modprobe evtchn 2>/dev/null || true
+ modprobe gntdev 2>/dev/null || true
-+ modprobe blktap 2>/dev/null || true
-+ modprobe blkbk 2>/dev/null || true
++ modprobe gntalloc 2>/dev/null || true
+ modprobe netbk 2>/dev/null || true
++ modprobe blkbk 2>/dev/null || true
++ modprobe xen-scsibk 2>/dev/null || true
+ modprobe usbbk 2>/dev/null || true
++ modprobe pciback 2>/dev/null || true
++ modprobe xen-acpi-processor 2>/dev/null || true
++ modprobe blktap2 2>/dev/null || modprobe blktap 2>/dev/null || true
+ # xenblk (frontend module) is needed in dom0, allowing it to use vbds
+ modprobe xenblk 2>/dev/null || true
+ # support xl create pv guest with qcow/qcow2 disk image
+ modprobe nbd max_part=8 2>/dev/null || true
-+
+ mkdir -p /var/run/xen
+
if ! `xenstore-read -s / >/dev/null 2>&1`
- then
- test -z "$XENSTORED_ROOTDIR" && XENSTORED_ROOTDIR="/var/lib/xenstored"
++++++ tmp_build.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -1,16 +1,16 @@
-Index: xen-4.1.2-testing/tools/xenstore/Makefile
+Index: xen-4.2.0-testing/tools/xenstore/Makefile
===================================================================
---- xen-4.1.2-testing.orig/tools/xenstore/Makefile
-+++ xen-4.1.2-testing/tools/xenstore/Makefile
-@@ -58,6 +58,7 @@ $(CLIENTS_DOMU): xenstore
+--- xen-4.2.0-testing.orig/tools/xenstore/Makefile
++++ xen-4.2.0-testing/tools/xenstore/Makefile
+@@ -72,6 +72,7 @@ $(CLIENTS_DOMU): xenstore
xenstore: xenstore_client.o $(LIBXENSTORE)
- $(CC) $(CFLAGS) $(LDFLAGS) $< -L. -lxenstore $(SOCKET_LIBS) -o $@
+ $(CC) $(LDFLAGS) $< $(LDLIBS_libxenstore) $(SOCKET_LIBS) -o $@ $(APPEND_LDFLAGS)
+ $(CC) $(CFLAGS) $(LDFLAGS) -Wl,--build-id=uuid $< -L. -lxenstore $(SOCKET_LIBS) -o domu-$@
xenstore-control: xenstore_control.o $(LIBXENSTORE)
- $(CC) $(CFLAGS) $(LDFLAGS) $< -L. -lxenstore $(SOCKET_LIBS) -o $@
-@@ -106,10 +107,11 @@ install: all
+ $(CC) $(LDFLAGS) $< $(LDLIBS_libxenstore) $(SOCKET_LIBS) -o $@ $(APPEND_LDFLAGS)
+@@ -121,10 +122,11 @@ install: all
$(INSTALL_PROG) xenstore-control $(DESTDIR)$(BINDIR)
$(INSTALL_PROG) xenstore $(DESTDIR)$(BINDIR)
set -e ; for c in $(CLIENTS) ; do \
++++++ tools-watchdog-support.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -1,7 +1,7 @@
-Index: xen-4.1.3-testing/tools/python/xen/xm/create.py
+Index: xen-4.2.0-testing/tools/python/xen/xm/create.py
===================================================================
---- xen-4.1.3-testing.orig/tools/python/xen/xm/create.py
-+++ xen-4.1.3-testing/tools/python/xen/xm/create.py
+--- xen-4.2.0-testing.orig/tools/python/xen/xm/create.py
++++ xen-4.2.0-testing/tools/python/xen/xm/create.py
@@ -535,6 +535,21 @@ gopts.var('usbdevice', val='NAME',
fn=set_value, default='',
use="Name of USB device to add?")
@@ -24,7 +24,7 @@
gopts.var('description', val='NAME',
fn=set_value, default='',
use="Description of a domain")
-@@ -1092,6 +1107,7 @@ def configure_hvm(config_image, vals):
+@@ -1097,6 +1112,7 @@ def configure_hvm(config_image, vals):
'usb', 'usbdevice',
'vcpus', 'vnc', 'vncconsole', 'vncdisplay', 'vnclisten',
'vncunused', 'viridian', 'vpt_align',
@@ -32,10 +32,10 @@
'xauthority', 'xen_extended_power_mgmt', 'xen_platform_pci',
'memory_sharing' ]
-Index: xen-4.1.3-testing/tools/python/xen/xm/xenapi_create.py
+Index: xen-4.2.0-testing/tools/python/xen/xm/xenapi_create.py
===================================================================
---- xen-4.1.3-testing.orig/tools/python/xen/xm/xenapi_create.py
-+++ xen-4.1.3-testing/tools/python/xen/xm/xenapi_create.py
+--- xen-4.2.0-testing.orig/tools/python/xen/xm/xenapi_create.py
++++ xen-4.2.0-testing/tools/python/xen/xm/xenapi_create.py
@@ -1113,7 +1113,9 @@ class sxp2xml:
'xen_platform_pci',
'tsc_mode'
@@ -47,11 +47,11 @@
]
platform_configs = []
-Index: xen-4.1.3-testing/tools/python/xen/xend/image.py
+Index: xen-4.2.0-testing/tools/python/xen/xend/image.py
===================================================================
---- xen-4.1.3-testing.orig/tools/python/xen/xend/image.py
-+++ xen-4.1.3-testing/tools/python/xen/xend/image.py
-@@ -866,7 +866,8 @@ class HVMImageHandler(ImageHandler):
+--- xen-4.2.0-testing.orig/tools/python/xen/xend/image.py
++++ xen-4.2.0-testing/tools/python/xen/xend/image.py
+@@ -855,7 +855,8 @@ class HVMImageHandler(ImageHandler):
dmargs = [ 'boot', 'fda', 'fdb', 'soundhw',
'localtime', 'serial', 'stdvga', 'isa',
@@ -61,7 +61,7 @@
for a in dmargs:
v = vmConfig['platform'].get(a)
-@@ -874,6 +875,7 @@ class HVMImageHandler(ImageHandler):
+@@ -863,6 +864,7 @@ class HVMImageHandler(ImageHandler):
# python doesn't allow '-' in variable names
if a == 'stdvga': a = 'std-vga'
if a == 'keymap': a = 'k'
@@ -69,11 +69,11 @@
# Handle booleans gracefully
if a in ['localtime', 'std-vga', 'isa', 'usb', 'acpi']:
-Index: xen-4.1.3-testing/tools/python/xen/xend/XendConfig.py
+Index: xen-4.2.0-testing/tools/python/xen/xend/XendConfig.py
===================================================================
---- xen-4.1.3-testing.orig/tools/python/xen/xend/XendConfig.py
-+++ xen-4.1.3-testing/tools/python/xen/xend/XendConfig.py
-@@ -191,6 +191,8 @@ XENAPI_PLATFORM_CFG_TYPES = {
+--- xen-4.2.0-testing.orig/tools/python/xen/xend/XendConfig.py
++++ xen-4.2.0-testing/tools/python/xen/xend/XendConfig.py
+@@ -192,6 +192,8 @@ XENAPI_PLATFORM_CFG_TYPES = {
'xen_platform_pci': int,
"gfx_passthru": int,
'oos' : int,
@@ -82,68 +82,59 @@
}
# Xen API console 'other_config' keys.
-Index: xen-4.1.3-testing/tools/libxl/libxl_dm.c
+Index: xen-4.2.0-testing/tools/libxl/libxl_dm.c
===================================================================
---- xen-4.1.3-testing.orig/tools/libxl/libxl_dm.c
-+++ xen-4.1.3-testing/tools/libxl/libxl_dm.c
-@@ -117,6 +117,12 @@ static char ** libxl_build_device_model_
- flexarray_vappend(dm_args, "-usbdevice", info->usbdevice, NULL);
+--- xen-4.2.0-testing.orig/tools/libxl/libxl_dm.c
++++ xen-4.2.0-testing/tools/libxl/libxl_dm.c
+@@ -196,6 +196,12 @@ static char ** libxl__build_device_model
+ "-usbdevice", b_info->u.hvm.usbdevice, NULL);
}
}
-+ if (info->watchdog || info->watchdog_action) {
++ if (b_info->u.hvm.watchdog || b_info->u.hvm.watchdog_action) {
+ flexarray_append(dm_args, "-watchdog");
-+ if (info->watchdog_action) {
-+ flexarray_vappend(dm_args, "-watchdog-action", info->watchdog_action, NULL);
++ if (b_info->u.hvm.watchdog_action) {
++ flexarray_vappend(dm_args, "-watchdog-action", b_info->u.hvm.watchdog_action, NULL);
+ }
+ }
- if (info->soundhw) {
- flexarray_vappend(dm_args, "-soundhw", info->soundhw, NULL);
+ if (b_info->u.hvm.soundhw) {
+ flexarray_vappend(dm_args, "-soundhw", b_info->u.hvm.soundhw, NULL);
}
-@@ -253,6 +259,12 @@ static char ** libxl_build_device_model_
- flexarray_vappend(dm_args, "-usbdevice", info->usbdevice, NULL);
+@@ -449,6 +455,12 @@ static char ** libxl__build_device_model
+ "-usbdevice", b_info->u.hvm.usbdevice, NULL);
}
}
-+ if (info->watchdog || info->watchdog_action) {
++ if (b_info->u.hvm.watchdog || b_info->u.hvm.watchdog_action) {
+ flexarray_append(dm_args, "-watchdog");
-+ if (info->watchdog_action) {
-+ flexarray_vappend(dm_args, "-watchdog-action", info->watchdog_action, NULL);
++ if (b_info->u.hvm.watchdog_action) {
++ flexarray_vappend(dm_args, "-watchdog-action", b_info->u.hvm.watchdog_action, NULL);
+ }
+ }
- if (info->soundhw) {
- flexarray_vappend(dm_args, "-soundhw", info->soundhw, NULL);
+ if (b_info->u.hvm.soundhw) {
+ flexarray_vappend(dm_args, "-soundhw", b_info->u.hvm.soundhw, NULL);
}
-Index: xen-4.1.3-testing/tools/libxl/libxl.idl
+Index: xen-4.2.0-testing/tools/libxl/libxl_types.idl
===================================================================
---- xen-4.1.3-testing.orig/tools/libxl/libxl.idl
-+++ xen-4.1.3-testing/tools/libxl/libxl.idl
-@@ -166,6 +166,8 @@ libxl_device_model_info = Struct("device
- ("vcpu_avail", integer, False, "vcpus actually available"),
- ("xen_platform_pci", integer, False, "enable/disable the xen platform pci device"),
- ("extra", libxl_string_list, False, "extra parameters pass directly to qemu, NULL terminated"),
-+ ("watchdog", string, False, "the watchdog device, ib700 or i6300esb"),
-+ ("watchdog_action", string, False, "action to take when the watchdog timer expires"),
- ],
- comment=
- """Device Model information.
-Index: xen-4.1.3-testing/tools/libxl/xl_cmdimpl.c
-===================================================================
---- xen-4.1.3-testing.orig/tools/libxl/xl_cmdimpl.c
-+++ xen-4.1.3-testing/tools/libxl/xl_cmdimpl.c
-@@ -365,6 +365,8 @@ static void printf_info(int domid,
- printf("\t\t\t(usb %d)\n", dm_info->usb);
- printf("\t\t\t(usbdevice %s)\n", dm_info->usbdevice);
- printf("\t\t\t(apic %d)\n", dm_info->apic);
-+ printf("\t\t\t(watchdog %s)\n", dm_info->watchdog);
-+ printf("\t\t\t(watchdog_action %s)\n", dm_info->watchdog_action);
- printf("\t\t)\n");
- } else {
- printf("\t\t(linux %d)\n", b_info->hvm);
-@@ -1158,6 +1160,8 @@ skip_vfb:
- xlu_cfg_replace_string (config, "soundhw", &dm_info->soundhw);
- if (!xlu_cfg_get_long (config, "xen_platform_pci", &l))
- dm_info->xen_platform_pci = l;
-+ xlu_cfg_replace_string (config, "watchdog", &dm_info->watchdog);
-+ xlu_cfg_replace_string (config, "watchdog_action", &dm_info->watchdog_action);
+--- xen-4.2.0-testing.orig/tools/libxl/libxl_types.idl
++++ xen-4.2.0-testing/tools/libxl/libxl_types.idl
+@@ -319,6 +319,8 @@ libxl_domain_build_info = Struct("domain
+ ("usbdevice", string),
+ ("soundhw", string),
+ ("xen_platform_pci", libxl_defbool),
++ ("watchdog", string),
++ ("watchdog_action", string),
+ ])),
+ ("pv", Struct(None, [("kernel", string),
+ ("slack_memkb", MemKB),
+Index: xen-4.2.0-testing/tools/libxl/xl_cmdimpl.c
+===================================================================
+--- xen-4.2.0-testing.orig/tools/libxl/xl_cmdimpl.c
++++ xen-4.2.0-testing/tools/libxl/xl_cmdimpl.c
+@@ -1405,6 +1405,8 @@ skip_vfb:
+ xlu_cfg_replace_string (config, "soundhw", &b_info->u.hvm.soundhw, 0);
+ xlu_cfg_get_defbool(config, "xen_platform_pci",
+ &b_info->u.hvm.xen_platform_pci, 0);
++ xlu_cfg_replace_string (config, "watchdog", &b_info->u.hvm.watchdog, 0);
++ xlu_cfg_replace_string (config, "watchdog_action", &b_info->u.hvm.watchdog_action, 0);
+ }
- if (!xlu_cfg_get_list(config, "device_model_args", &dmargs, &nr_dmargs, 0))
- {
+ xlu_cfg_destroy(config);
++++++ udev-rules.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -1,11 +1,11 @@
-Index: xen-4.1.2-testing/tools/hotplug/Linux/xen-backend.rules
+Index: xen-4.2.0-testing/tools/hotplug/Linux/xen-backend.rules
===================================================================
---- xen-4.1.2-testing.orig/tools/hotplug/Linux/xen-backend.rules
-+++ xen-4.1.2-testing/tools/hotplug/Linux/xen-backend.rules
+--- xen-4.2.0-testing.orig/tools/hotplug/Linux/xen-backend.rules
++++ xen-4.2.0-testing/tools/hotplug/Linux/xen-backend.rules
@@ -13,4 +13,5 @@ KERNEL=="blktap-control", NAME="xen/blkt
KERNEL=="gntdev", NAME="xen/%k", MODE="0600"
KERNEL=="pci_iomul", NAME="xen/%k", MODE="0600"
KERNEL=="tapdev[a-z]*", NAME="xen/blktap-2/tapdev%m", MODE="0600"
--SUBSYSTEM=="net", KERNEL=="tap*", ACTION=="add", RUN+="/etc/xen/scripts/vif-setup $env{ACTION} type_if=tap"
-+SUBSYSTEM=="net", KERNEL=="tap*", ACTION=="add", TEST=="/proc/xen", RUN+="/etc/xen/scripts/vif-setup $env{ACTION} type_if=tap"
+-SUBSYSTEM=="net", KERNEL=="vif*-emu", ACTION=="add", ENV{UDEV_CALL}="1", RUN+="/etc/xen/scripts/vif-setup $env{ACTION} type_if=tap"
++SUBSYSTEM=="net", KERNEL=="vif*-emu", ACTION=="add", ENV{UDEV_CALL}="1", TEST=="/proc/xen" RUN+="/etc/xen/scripts/vif-setup $env{ACTION} type_if=tap"
+KERNELS=="xen", KERNEL=="xvd*", SUBSYSTEM=="block", OPTIONS+="last_rule"
++++++ usb-list.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -15,10 +15,10 @@
http://www.gossamer-threads.com/lists/xen/devel/181021?search_string=usb-li…
-Index: xen-4.1.2-testing/tools/python/xen/xm/main.py
+Index: xen-4.2.0-testing/tools/python/xen/xm/main.py
===================================================================
---- xen-4.1.2-testing.orig/tools/python/xen/xm/main.py
-+++ xen-4.1.2-testing/tools/python/xen/xm/main.py
+--- xen-4.2.0-testing.orig/tools/python/xen/xm/main.py
++++ xen-4.2.0-testing/tools/python/xen/xm/main.py
@@ -2629,10 +2629,22 @@ def xm_usb_list(args):
ni = parse_dev_info(x[1])
ni['idx'] = int(x[0])
++++++ vif-bridge-no-iptables.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -1,7 +1,7 @@
-Index: xen-4.1.2-testing/tools/hotplug/Linux/vif-bridge
+Index: xen-4.2.0-testing/tools/hotplug/Linux/vif-bridge
===================================================================
---- xen-4.1.2-testing.orig/tools/hotplug/Linux/vif-bridge
-+++ xen-4.1.2-testing/tools/hotplug/Linux/vif-bridge
+--- xen-4.2.0-testing.orig/tools/hotplug/Linux/vif-bridge
++++ xen-4.2.0-testing/tools/hotplug/Linux/vif-bridge
@@ -101,9 +101,9 @@ case "$command" in
;;
esac
@@ -13,5 +13,5 @@
+# handle_iptable
+#fi
- log debug "Successful vif-bridge $command for $dev, bridge $bridge."
- if [ "$type_if" = vif -a "$command" = "online" ]
+ call_hooks vif post
+
++++++ vif-bridge-tap-fix.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -10,10 +10,10 @@
Signed-off-by: Jim Fehlig <jfehlig(a)suse.com>
-Index: xen-4.1.2-testing/tools/hotplug/Linux/vif-bridge
+Index: xen-4.2.0-testing/tools/hotplug/Linux/vif-bridge
===================================================================
---- xen-4.1.2-testing.orig/tools/hotplug/Linux/vif-bridge
-+++ xen-4.1.2-testing/tools/hotplug/Linux/vif-bridge
+--- xen-4.2.0-testing.orig/tools/hotplug/Linux/vif-bridge
++++ xen-4.2.0-testing/tools/hotplug/Linux/vif-bridge
@@ -32,6 +32,13 @@
dir=$(dirname "$0")
. "$dir/vif-common.sh"
++++++ vif-route-ifup.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -4,10 +4,10 @@
tools/hotplug/Linux/vif-route-ifup | 34 ++++++++++++++++++++++++++++++++++
3 files changed, 55 insertions(+), 1 deletion(-)
-Index: xen-4.1.2-testing/tools/examples/xend-config.sxp
+Index: xen-4.2.0-testing/tools/examples/xend-config.sxp
===================================================================
---- xen-4.1.2-testing.orig/tools/examples/xend-config.sxp
-+++ xen-4.1.2-testing/tools/examples/xend-config.sxp
+--- xen-4.2.0-testing.orig/tools/examples/xend-config.sxp
++++ xen-4.2.0-testing/tools/examples/xend-config.sxp
@@ -200,6 +200,26 @@
#(network-script network-route)
#(vif-script vif-route)
@@ -35,10 +35,10 @@
## Use the following if network traffic is routed with NAT, as an alternative
# to the settings for bridged networking given above.
-Index: xen-4.1.2-testing/tools/hotplug/Linux/Makefile
+Index: xen-4.2.0-testing/tools/hotplug/Linux/Makefile
===================================================================
---- xen-4.1.2-testing.orig/tools/hotplug/Linux/Makefile
-+++ xen-4.1.2-testing/tools/hotplug/Linux/Makefile
+--- xen-4.2.0-testing.orig/tools/hotplug/Linux/Makefile
++++ xen-4.2.0-testing/tools/hotplug/Linux/Makefile
@@ -11,7 +11,7 @@ XENCOMMONS_SYSCONFIG = init.d/sysconfig.
# Xen script dir and scripts to go there.
@@ -48,10 +48,10 @@
XEN_SCRIPTS += network-nat vif-nat
XEN_SCRIPTS += vif2
XEN_SCRIPTS += vif-setup
-Index: xen-4.1.2-testing/tools/hotplug/Linux/vif-route-ifup
+Index: xen-4.2.0-testing/tools/hotplug/Linux/vif-route-ifup
===================================================================
--- /dev/null
-+++ xen-4.1.2-testing/tools/hotplug/Linux/vif-route-ifup
++++ xen-4.2.0-testing/tools/hotplug/Linux/vif-route-ifup
@@ -0,0 +1,34 @@
+#!/bin/bash
+#============================================================================
++++++ x86-cpufreq-report.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -1,7 +1,7 @@
--- a/xen/arch/x86/platform_hypercall.c
+++ b/xen/arch/x86/platform_hypercall.c
-@@ -23,7 +23,7 @@
- #include <xen/cpu.h>
+@@ -25,7 +25,7 @@
+ #include <xen/irq.h>
#include <asm/current.h>
#include <public/platform.h>
-#include <acpi/cpufreq/processor_perf.h>
@@ -9,11 +9,10 @@
#include <asm/edd.h>
#include <asm/mtrr.h>
#include <asm/io_apic.h>
-@@ -565,6 +565,42 @@ ret_t do_platform_op(XEN_GUEST_HANDLE(xe
- op->u.mem_add.epfn,
- op->u.mem_add.pxm);
- break;
-+
+@@ -639,6 +639,41 @@ ret_t do_platform_op(XEN_GUEST_HANDLE(xe
+ }
+ break;
+
+ case XENPF_get_cpu_freq:
+ case XENPF_get_cpu_freq_min:
+ case XENPF_get_cpu_freq_max:
@@ -54,9 +53,9 @@
break;
--- a/xen/include/public/platform.h
+++ b/xen/include/public/platform.h
-@@ -466,6 +466,16 @@ struct xenpf_mem_hotadd
- uint32_t flags;
- };
+@@ -504,6 +504,16 @@ struct xenpf_core_parking {
+ typedef struct xenpf_core_parking xenpf_core_parking_t;
+ DEFINE_XEN_GUEST_HANDLE(xenpf_core_parking_t);
+#define XENPF_get_cpu_freq ('N' << 24)
+#define XENPF_get_cpu_freq_min (XENPF_get_cpu_freq + 1)
@@ -68,13 +67,13 @@
+ uint32_t freq; /* in kHz */
+};
+
- struct xen_platform_op {
- uint32_t cmd;
- uint32_t interface_version; /* XENPF_INTERFACE_VERSION */
-@@ -487,6 +497,7 @@ struct xen_platform_op {
- struct xenpf_cpu_ol cpu_ol;
+ /*
+ * ` enum neg_errnoval
+ * ` HYPERVISOR_platform_op(const struct xen_platform_op*);
+@@ -530,6 +540,7 @@ struct xen_platform_op {
struct xenpf_cpu_hotadd cpu_add;
struct xenpf_mem_hotadd mem_add;
+ struct xenpf_core_parking core_parking;
+ struct xenpf_get_cpu_freq get_cpu_freq;
uint8_t pad[128];
} u;
++++++ x86-dom-print.patch ++++++
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -148,15 +148,30 @@ void dump_pageframe_info(struct domain *
printk("Memory pages belonging to domain %u:\n", d->domain_id);
- if ( d->tot_pages >= 10 )
+ if ( d->tot_pages >= 10 && d->is_dying < DOMDYING_dead )
{
printk(" DomPage list too long to display\n");
}
else
{
+ unsigned long total[PGT_type_mask
+ / (PGT_type_mask & -PGT_type_mask) + 1] = {};
+
spin_lock(&d->page_alloc_lock);
page_list_for_each ( page, &d->page_list )
{
+ unsigned int index = (page->u.inuse.type_info & PGT_type_mask)
+ / (PGT_type_mask & -PGT_type_mask);
+
+ if ( ++total[index] > 16 )
+ {
+ switch ( page->u.inuse.type_info & PGT_type_mask )
+ {
+ case PGT_none:
+ case PGT_writable_page:
+ continue;
+ }
+ }
printk(" DomPage %p: caf=%08lx, taf=%" PRtype_info "\n",
_p(page_to_mfn(page)),
page->count_info, page->u.inuse.type_info);
++++++ x86-extra-trap-info.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -1,68 +1,6 @@
---- a/xen/arch/x86/x86_32/entry.S
-+++ b/xen/arch/x86/x86_32/entry.S
-@@ -390,29 +390,41 @@ UNLIKELY_END(bounce_vm86_3)
- movl %eax,UREGS_eip+4(%esp)
- ret
- _ASM_EXTABLE(.Lft6, domain_crash_synchronous)
-- _ASM_EXTABLE(.Lft7, domain_crash_synchronous)
-- _ASM_EXTABLE(.Lft8, domain_crash_synchronous)
-- _ASM_EXTABLE(.Lft9, domain_crash_synchronous)
-- _ASM_EXTABLE(.Lft10, domain_crash_synchronous)
-- _ASM_EXTABLE(.Lft11, domain_crash_synchronous)
-- _ASM_EXTABLE(.Lft12, domain_crash_synchronous)
-+ _ASM_EXTABLE(.Lft7, domain_crash_page_fault)
-+ _ASM_EXTABLE(.Lft8, domain_crash_page_fault_4)
-+ _ASM_EXTABLE(.Lft9, domain_crash_page_fault_8)
-+ _ASM_EXTABLE(.Lft10, domain_crash_page_fault_12)
-+ _ASM_EXTABLE(.Lft11, domain_crash_page_fault)
-+ _ASM_EXTABLE(.Lft12, domain_crash_page_fault_4)
- _ASM_EXTABLE(.Lft13, domain_crash_synchronous)
-- _ASM_EXTABLE(.Lft14, domain_crash_synchronous)
-- _ASM_EXTABLE(.Lft15, domain_crash_synchronous)
-- _ASM_EXTABLE(.Lft16, domain_crash_synchronous)
-- _ASM_EXTABLE(.Lft17, domain_crash_synchronous)
-- _ASM_EXTABLE(.Lft18, domain_crash_synchronous)
-- _ASM_EXTABLE(.Lft19, domain_crash_synchronous)
-- _ASM_EXTABLE(.Lft20, domain_crash_synchronous)
-- _ASM_EXTABLE(.Lft21, domain_crash_synchronous)
-- _ASM_EXTABLE(.Lft22, domain_crash_synchronous)
-- _ASM_EXTABLE(.Lft23, domain_crash_synchronous)
-- _ASM_EXTABLE(.Lft24, domain_crash_synchronous)
-- _ASM_EXTABLE(.Lft25, domain_crash_synchronous)
-+ _ASM_EXTABLE(.Lft14, domain_crash_page_fault)
-+ _ASM_EXTABLE(.Lft15, domain_crash_page_fault_4)
-+ _ASM_EXTABLE(.Lft16, domain_crash_page_fault_8)
-+ _ASM_EXTABLE(.Lft17, domain_crash_page_fault)
-+ _ASM_EXTABLE(.Lft18, domain_crash_page_fault)
-+ _ASM_EXTABLE(.Lft19, domain_crash_page_fault_4)
-+ _ASM_EXTABLE(.Lft20, domain_crash_page_fault_8)
-+ _ASM_EXTABLE(.Lft21, domain_crash_page_fault_12)
-+ _ASM_EXTABLE(.Lft22, domain_crash_page_fault)
-+ _ASM_EXTABLE(.Lft23, domain_crash_page_fault_4)
-+ _ASM_EXTABLE(.Lft24, domain_crash_page_fault_8)
-+ _ASM_EXTABLE(.Lft25, domain_crash_page_fault_12)
-
-+.section .rodata,"a"
- domain_crash_synchronous_string:
- .asciz "domain_crash_sync called from entry.S (%lx)\n"
-+.previous
-
-+domain_crash_page_fault_12:
-+ addl $4,%esi
-+domain_crash_page_fault_8:
-+ addl $4,%esi
-+domain_crash_page_fault_4:
-+ addl $4,%esi
-+domain_crash_page_fault:
-+ pushl %esi
-+ call show_page_walk
-+ addl $4,%esp
- domain_crash_synchronous:
- pushl $domain_crash_synchronous_string
- call printk
--- a/xen/arch/x86/x86_64/entry.S
+++ b/xen/arch/x86/x86_64/entry.S
-@@ -430,22 +430,35 @@ UNLIKELY_END(bounce_failsafe)
+@@ -427,22 +427,35 @@ UNLIKELY_END(bounce_failsafe)
jz domain_crash_synchronous
movq %rax,UREGS_rip+8(%rsp)
ret
@@ -91,7 +29,7 @@
+ _ASM_EXTABLE(.Lft12, domain_crash_page_fault_8)
+ _ASM_EXTABLE(.Lft13, domain_crash_page_fault)
-+.section .rodata,"a"
++.section .rodata, "a", @progbits
domain_crash_synchronous_string:
.asciz "domain_crash_sync called from entry.S\n"
+.previous
++++++ x86-ioapic-ack-default.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -1,24 +1,16 @@
Change default IO-APIC ack mode for single IO-APIC systems to old-style.
-Index: xen-4.1.3-testing/xen/arch/x86/io_apic.c
-===================================================================
---- xen-4.1.3-testing.orig/xen/arch/x86/io_apic.c
-+++ xen-4.1.3-testing/xen/arch/x86/io_apic.c
-@@ -1680,7 +1680,7 @@ static unsigned int startup_level_ioapic
- return 0; /* don't check for pending */
- }
-
--int __read_mostly ioapic_ack_new = 1;
-+int __read_mostly ioapic_ack_new = -1;
- static void setup_ioapic_ack(char *s)
- {
- if ( !strcmp(s, "old") )
-@@ -2187,6 +2187,8 @@ void __init setup_IO_APIC(void)
- else
+--- a/xen/arch/x86/io_apic.c
++++ b/xen/arch/x86/io_apic.c
+@@ -2013,7 +2013,10 @@ void __init setup_IO_APIC(void)
io_apic_irqs = ~PIC_IRQS;
-+ if (ioapic_ack_new < 0)
-+ ioapic_ack_new = (nr_ioapics > 1);
printk("ENABLING IO-APIC IRQs\n");
- printk(" -> Using %s ACK method\n", ioapic_ack_new ? "new" : "old");
+- printk(" -> Using %s ACK method\n", ioapic_ack_new ? "new" : "old");
++ if (!directed_eoi_enabled && !ioapic_ack_forced) {
++ ioapic_ack_new = (nr_ioapics > 1);
++ printk(" -> Using %s ACK method\n", ioapic_ack_new ? "new" : "old");
++ }
+ /*
+ * Set up IO-APIC IRQ routing.
++++++ xen-4.1.3-testing-src.tar.bz2 -> xen-4.2.0-testing-src.tar.bz2 ++++++
/work/SRC/openSUSE:Factory/xen/xen-4.1.3-testing-src.tar.bz2 /work/SRC/openSUSE:Factory/.xen.new/xen-4.2.0-testing-src.tar.bz2 differ: char 11, line 1
++++++ xen-api-auth.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -1,7 +1,7 @@
-Index: xen-4.1.2-testing/tools/python/xen/xend/XendAuthSessions.py
+Index: xen-4.2.0-testing/tools/python/xen/xend/XendAuthSessions.py
===================================================================
---- xen-4.1.2-testing.orig/tools/python/xen/xend/XendAuthSessions.py
-+++ xen-4.1.2-testing/tools/python/xen/xend/XendAuthSessions.py
+--- xen-4.2.0-testing.orig/tools/python/xen/xend/XendAuthSessions.py
++++ xen-4.2.0-testing/tools/python/xen/xend/XendAuthSessions.py
@@ -84,7 +84,7 @@ class XendAuthSessions:
# if PAM doesn't exist, let's ignore it
return False
++++++ xen-bug776995-pvscsi-no-devname.patch ++++++
xend/pvscsi: fix passing of SCSI control LUNs
Currently pvscsi can not pass SCSI devices that have just a scsi_generic node.
In the following example sg3 is a control LUN for the disk sdd.
But vscsi=['4:0:2:0,0:0:0:0'] does not work because the internal 'devname'
variable remains None. Later writing p-devname to xenstore fails because None
is not a valid string variable.
Since devname is used for just informational purpose use sg also as devname.
carron:~ $ lsscsi -g
[0:0:0:0] disk ATA FK0032CAAZP HPF2 /dev/sda /dev/sg0
[4:0:0:0] disk HP P2000G3 FC/iSCSI T100 /dev/sdb /dev/sg1
[4:0:1:0] disk HP P2000G3 FC/iSCSI T100 /dev/sdc /dev/sg2
[4:0:2:0] storage HP HSV400 0950 - /dev/sg3
[4:0:2:1] disk HP HSV400 0950 /dev/sdd /dev/sg4
[4:0:3:0] storage HP HSV400 0950 - /dev/sg5
[4:0:3:1] disk HP HSV400 0950 /dev/sde /dev/sg6
---
tools/python/xen/util/vscsi_util.py | 2 ++
1 file changed, 2 insertions(+)
Index: xen-4.1.2-testing/tools/python/xen/util/vscsi_util.py
===================================================================
--- xen-4.1.2-testing.orig/tools/python/xen/util/vscsi_util.py
+++ xen-4.1.2-testing/tools/python/xen/util/vscsi_util.py
@@ -105,6 +105,8 @@ def _vscsi_get_scsidevices_by_lsscsi(opt
devname = None
try:
sg = s[-1].split('/dev/')[1]
+ if devname is None:
+ devname = sg
scsi_id = _vscsi_get_scsiid(sg)
except IndexError:
sg = None
++++++ xen-bug776995-pvscsi-persistent-names.patch ++++++
xend/pvscsi: fix usage of persistant device names for SCSI devices
Currently the callers of vscsi_get_scsidevices() do not pass a mask
string. This will call "lsscsi -g '[]'", which causes a lsscsi syntax
error. As a result the sysfs parser _vscsi_get_scsidevices() is used.
But this parser is broken and the specified names in the config file are
not found.
Using a mask '*' if no mask was given will call lsscsi correctly and the
following config is parsed correctly:
vscsi=['/dev/sg3,0:0:0:0','/dev/disk/by-id/wwn-0x600508b4000cf1c30000800000410000,0:0:0:1']
---
tools/python/xen/util/vscsi_util.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
Index: xen-4.2.0-testing/tools/python/xen/util/vscsi_util.py
===================================================================
--- xen-4.2.0-testing.orig/tools/python/xen/util/vscsi_util.py
+++ xen-4.2.0-testing/tools/python/xen/util/vscsi_util.py
@@ -148,7 +148,7 @@ def _vscsi_get_scsidevices_by_sysfs():
return devices
-def vscsi_get_scsidevices(mask=""):
+def vscsi_get_scsidevices(mask="*"):
""" get all scsi devices information """
devices = _vscsi_get_scsidevices_by_lsscsi("[%s]" % mask)
@@ -277,7 +277,7 @@ def get_scsi_device(pHCTL):
return _make_scsi_record(scsi_info)
return None
-def get_all_scsi_devices(mask=""):
+def get_all_scsi_devices(mask="*"):
scsi_records = []
for scsi_info in vscsi_get_scsidevices(mask):
scsi_record = _make_scsi_record(scsi_info)
++++++ xen-bug776995-pvscsi-sysfs-parser.patch ++++++
xend/pvscsi: update sysfs parser for Linux 3.0
The sysfs parser for /sys/bus/scsi/devices understands only the layout
of kernel version 2.6.16. This looks as follows:
/sys/bus/scsi/devices/1:0:0:0/block:sda is a symlink to /sys/block/sda/
/sys/bus/scsi/devices/1:0:0:0/scsi_generic:sg1 is a symlink to /sys/class/scsi_generic/sg1
Both directories contain a 'dev' file with the major:minor information.
This patch updates the used regex strings to match also the colon to
make it more robust against possible future changes.
In kernel version 3.0 the layout changed:
/sys/bus/scsi/devices/ contains now additional symlinks to directories
such as host1 and target1:0:0. This patch ignores these as they do not
point to the desired scsi devices. They just clutter the devices array.
The directory layout in '1:0:0:0' changed as well, the 'type:name'
notation was replaced with 'type/name' directories:
/sys/bus/scsi/devices/1:0:0:0/block/sda/
/sys/bus/scsi/devices/1:0:0:0/scsi_generic/sg1/
Both directories contain a 'dev' file with the major:minor information.
This patch adds additional code to walk the subdir to find the 'dev'
file to make sure the given subdirectory is really the kernel name.
In addition this patch makes sure devname is not None.
---
tools/python/xen/util/vscsi_util.py | 26 +++++++++++++++++++++-----
1 file changed, 21 insertions(+), 5 deletions(-)
Index: xen-4.1.2-testing/tools/python/xen/util/vscsi_util.py
===================================================================
--- xen-4.1.2-testing.orig/tools/python/xen/util/vscsi_util.py
+++ xen-4.1.2-testing/tools/python/xen/util/vscsi_util.py
@@ -130,20 +130,36 @@ def _vscsi_get_scsidevices_by_sysfs():
for dirpath, dirnames, files in os.walk(sysfs_mnt + SYSFS_SCSI_PATH):
for hctl in dirnames:
+ if len(hctl.split(':')) != 4:
+ continue
paths = os.path.join(dirpath, hctl)
devname = None
sg = None
scsi_id = None
for f in os.listdir(paths):
realpath = os.path.realpath(os.path.join(paths, f))
- if re.match('^block', f) or \
- re.match('^tape', f) or \
- re.match('^scsi_changer', f) or \
- re.match('^onstream_tape', f):
+ if re.match('^block:', f) or \
+ re.match('^tape:', f) or \
+ re.match('^scsi_changer:', f) or \
+ re.match('^onstream_tape:', f):
devname = os.path.basename(realpath)
+ elif f == "block" or \
+ f == "tape" or \
+ f == "scsi_changer" or \
+ f == "onstream_tape":
+ for dir in os.listdir(os.path.join(paths, f)):
+ if os.path.exists(os.path.join(paths, f, dir, "dev")):
+ devname = os.path.basename(dir)
- if re.match('^scsi_generic', f):
+ if re.match('^scsi_generic:', f):
sg = os.path.basename(realpath)
+ elif f == "scsi_generic":
+ for dir in os.listdir(os.path.join(paths, f)):
+ if os.path.exists(os.path.join(paths, f, dir, "dev")):
+ sg = os.path.basename(dir)
+ if sg:
+ if devname is None:
+ devname = sg
scsi_id = _vscsi_get_scsiid(sg)
devices.append([hctl, devname, sg, scsi_id])
++++++ xen-changeset.diff ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -1,13 +1,13 @@
-Index: xen-4.1.2-testing/xen/Makefile
+Index: xen-4.2.0-testing/xen/Makefile
===================================================================
---- xen-4.1.2-testing.orig/xen/Makefile
-+++ xen-4.1.2-testing/xen/Makefile
+--- xen-4.2.0-testing.orig/xen/Makefile
++++ xen-4.2.0-testing/xen/Makefile
@@ -1,3 +1,4 @@
+export XEN_CHANGESET = unavailable
# This is the correct place to edit the build version.
# All other places this is stored (eg. compile.h) should be autogenerated.
export XEN_VERSION = 4
-@@ -97,7 +98,7 @@ delete-unfresh-files:
+@@ -112,7 +113,7 @@ delete-unfresh-files:
@rm -f $@1 $@2
# compile.h contains dynamic build info. Rebuilt on every 'make' invocation.
@@ -16,7 +16,7 @@
@sed -e 's/@@date@@/$(shell LC_ALL=C date)/g' \
-e 's/@@time@@/$(shell LC_ALL=C date +%T)/g' \
-e 's/@@whoami@@/$(XEN_WHOAMI)/g' \
-@@ -107,10 +108,9 @@ include/xen/compile.h: include/xen/compi
+@@ -122,10 +123,9 @@ include/xen/compile.h: include/xen/compi
-e 's/@@version@@/$(XEN_VERSION)/g' \
-e 's/@@subversion@@/$(XEN_SUBVERSION)/g' \
-e 's/@@extraversion@@/$(XEN_EXTRAVERSION)/g' \
++++++ xen-cpupool-xl-config-format.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -1,7 +1,7 @@
-Index: xen-4.1.2-testing/tools/python/xen/xm/cpupool.py
+Index: xen-4.2.0-testing/tools/python/xen/xm/cpupool.py
===================================================================
---- xen-4.1.2-testing.orig/tools/python/xen/xm/cpupool.py
-+++ xen-4.1.2-testing/tools/python/xen/xm/cpupool.py
+--- xen-4.2.0-testing.orig/tools/python/xen/xm/cpupool.py
++++ xen-4.2.0-testing/tools/python/xen/xm/cpupool.py
@@ -157,9 +157,17 @@ def make_cpus_config(cfg_cpus):
# ["0,2","1,3"] -> [[0,2],[1,3]]
# ["0-3,^1","1-4,^2"] -> [[0,2,3],[1,3,4]]
++++++ xen-destdir.diff ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -1,72 +1,39 @@
-Index: xen-4.1.2-testing/docs/Makefile
+Index: xen-4.2.0-testing/tools/pygrub/Makefile
===================================================================
---- xen-4.1.2-testing.orig/docs/Makefile
-+++ xen-4.1.2-testing/docs/Makefile
-@@ -90,7 +90,8 @@ install: all
- $(INSTALL_DIR) $(DESTDIR)$(MANDIR)
- cp -dR man1 $(DESTDIR)$(MANDIR)
- cp -dR man5 $(DESTDIR)$(MANDIR)
-- [ ! -d html ] || cp -dR html $(DESTDIR)$(DOCDIR)
-+ $(INSTALL_DIR) $(DESTDIR)$(DOCDIR)/html
-+ cp -dR html.done/* $(DESTDIR)$(DOCDIR)/html
-
- pdf/%.pdf: ps/%.ps
- $(INSTALL_DIR) $(@D)
-@@ -114,3 +115,9 @@ html/%/index.html: src/%.tex
- $(LATEX2HTML) -split 0 -show_section_numbers -toc_depth 3 -nonavigation \
- -numbered_footnotes -local_icons -noinfo -math -dir $(@D) \
- $< 1>/dev/null 2>/dev/null
-+ rm -rf html.done/$*/
-+ mkdir -p html.done/$*/
-+ cp html/$*/*.html html/$*/*.css html/$*/*.png html.done/$*/
-+ ln -sf $*.html html.done/$*/index.html
-+ rm -rf html/
-+
-Index: xen-4.1.2-testing/tools/security/Makefile
-===================================================================
---- xen-4.1.2-testing.orig/tools/security/Makefile
-+++ xen-4.1.2-testing/tools/security/Makefile
-@@ -60,8 +60,8 @@ install: all $(ACM_CONFIG_FILE)
- $(INSTALL_DATA) $(ACM_INST_HTML) $(DESTDIR)$(ACM_SECGEN_HTMLDIR)
- $(INSTALL_DIR) $(DESTDIR)$(ACM_SECGEN_CGIDIR)
- $(INSTALL_PROG) $(ACM_INST_CGI) $(DESTDIR)$(ACM_SECGEN_CGIDIR)
-- $(PYTHON) python/setup.py install $(PYTHON_PREFIX_ARG) \
-- --root="$(DESTDIR)" --force
-+ $(PYTHON) python/setup.py install \
-+ --prefix="/usr" --root="$(DESTDIR)" --force
- else
- .PHONY: all
- all:
-Index: xen-4.1.2-testing/tools/pygrub/Makefile
-===================================================================
---- xen-4.1.2-testing.orig/tools/pygrub/Makefile
-+++ xen-4.1.2-testing/tools/pygrub/Makefile
-@@ -11,7 +11,7 @@ build:
+--- xen-4.2.0-testing.orig/tools/pygrub/Makefile
++++ xen-4.2.0-testing/tools/pygrub/Makefile
+@@ -11,12 +11,12 @@ build:
.PHONY: install
install: all
CC="$(CC)" CFLAGS="$(CFLAGS)" $(PYTHON) setup.py install \
-- $(PYTHON_PREFIX_ARG) --root="$(DESTDIR)" --force
-+ --prefix="/usr" --root="$(DESTDIR)" --force
- $(INSTALL_PYTHON_PROG) src/pygrub $(DESTDIR)/$(BINDIR)/pygrub
+- $(PYTHON_PREFIX_ARG) --root="$(DESTDIR)" \
++ --prefix="/usr" --root="$(DESTDIR)" \
+ --install-scripts=$(PRIVATE_BINDIR) --force
$(INSTALL_DIR) $(DESTDIR)/var/run/xend/boot
-
-Index: xen-4.1.2-testing/tools/python/Makefile
-===================================================================
---- xen-4.1.2-testing.orig/tools/python/Makefile
-+++ xen-4.1.2-testing/tools/python/Makefile
-@@ -65,7 +65,7 @@ refresh-po: $(POTFILE)
+ set -e; if [ "`readlink -f $(DESTDIR)/$(BINDIR)`" != \
+ "`readlink -f $(PRIVATE_BINDIR)`" ]; then \
+- ln -sf $(PRIVATE_BINDIR)/pygrub $(DESTDIR)/$(BINDIR); \
++ $(INSTALL_PYTHON_PROG) src/pygrub $(DESTDIR)/$(BINDIR)/pygrub; \
+ fi
+
+ .PHONY: clean
+Index: xen-4.2.0-testing/tools/python/Makefile
+===================================================================
+--- xen-4.2.0-testing.orig/tools/python/Makefile
++++ xen-4.2.0-testing/tools/python/Makefile
+@@ -21,7 +21,7 @@ build: genpath genwrap.py $(XEN_ROOT)/to
.PHONY: install
- install: install-messages install-dtd
+ install: install-dtd
CC="$(CC)" CFLAGS="$(CFLAGS)" $(PYTHON) setup.py install \
- $(PYTHON_PREFIX_ARG) --root="$(DESTDIR)" --force
+ --prefix="/usr" --root="$(DESTDIR)" --force
install-dtd: all
$(INSTALL_DIR) $(DESTDIR)$(SHAREDIR)/xen
-Index: xen-4.1.2-testing/tools/xenstore/Makefile
+Index: xen-4.2.0-testing/tools/xenstore/Makefile
===================================================================
---- xen-4.1.2-testing.orig/tools/xenstore/Makefile
-+++ xen-4.1.2-testing/tools/xenstore/Makefile
+--- xen-4.2.0-testing.orig/tools/xenstore/Makefile
++++ xen-4.2.0-testing/tools/xenstore/Makefile
@@ -10,6 +10,7 @@ CFLAGS += $(CFLAGS_libxenctrl)
CLIENTS := xenstore-exists xenstore-list xenstore-read xenstore-rm xenstore-chmod
@@ -75,7 +42,7 @@
XENSTORED_OBJS = xenstored_core.o xenstored_watch.o xenstored_domain.o xenstored_transaction.o xs_lib.o talloc.o utils.o tdb.o hashtable.o
-@@ -32,7 +33,7 @@ ALL_TARGETS = libxenstore.so libxenstore
+@@ -38,7 +39,7 @@ endif
all: $(ALL_TARGETS)
.PHONY: clients
@@ -84,7 +51,7 @@
ifeq ($(CONFIG_SunOS),y)
xenstored_probes.h: xenstored_probes.d
-@@ -52,6 +53,9 @@ xenstored: $(XENSTORED_OBJS)
+@@ -66,6 +67,9 @@ xenstored.a: $(XENSTORED_OBJS)
$(CLIENTS): xenstore
ln -f xenstore $@
@@ -92,26 +59,26 @@
+ ln -f xenstore $@
+
xenstore: xenstore_client.o $(LIBXENSTORE)
- $(CC) $(CFLAGS) $(LDFLAGS) $< -L. -lxenstore $(SOCKET_LIBS) -o $@
+ $(CC) $(LDFLAGS) $< $(LDLIBS_libxenstore) $(SOCKET_LIBS) -o $@ $(APPEND_LDFLAGS)
-@@ -79,7 +83,7 @@ clean:
+@@ -93,7 +97,7 @@ clean:
rm -f *.a *.o *.opic *.so* xenstored_probes.h
rm -f xenstored xs_random xs_stress xs_crashme
- rm -f xs_tdb_dump xenstore-control
+ rm -f xs_tdb_dump xenstore-control init-xenstore-domain
- rm -f xenstore $(CLIENTS)
-+ rm -f $(CLIENTS) $(CLIENTS_DOMU)
++ rm -f xenstore $(CLIENTS) $(CLIENTS_DOMU)
$(RM) $(DEPS)
.PHONY: TAGS
-@@ -95,6 +99,7 @@ install: all
- $(INSTALL_DIR) $(DESTDIR)$(BINDIR)
+@@ -110,6 +114,7 @@ install: all
$(INSTALL_DIR) $(DESTDIR)$(SBINDIR)
$(INSTALL_DIR) $(DESTDIR)$(INCLUDEDIR)
+ $(INSTALL_DIR) $(DESTDIR)$(INCLUDEDIR)/xenstore-compat
+ $(INSTALL_DIR) $(DESTDIR)/bin
$(INSTALL_DIR) $(DESTDIR)/var/run/xenstored
$(INSTALL_DIR) $(DESTDIR)/var/lib/xenstored
$(INSTALL_PROG) xenstored $(DESTDIR)$(SBINDIR)
-@@ -103,6 +108,9 @@ install: all
+@@ -118,6 +123,9 @@ install: all
set -e ; for c in $(CLIENTS) ; do \
ln -f $(DESTDIR)$(BINDIR)/xenstore $(DESTDIR)$(BINDIR)/$${c} ; \
done
@@ -121,10 +88,10 @@
$(INSTALL_DIR) $(DESTDIR)$(LIBDIR)
$(INSTALL_PROG) libxenstore.so.$(MAJOR).$(MINOR) $(DESTDIR)$(LIBDIR)
ln -sf libxenstore.so.$(MAJOR).$(MINOR) $(DESTDIR)$(LIBDIR)/libxenstore.so.$(MAJOR)
-Index: xen-4.1.2-testing/tools/hotplug/Linux/Makefile
+Index: xen-4.2.0-testing/tools/hotplug/Linux/Makefile
===================================================================
---- xen-4.1.2-testing.orig/tools/hotplug/Linux/Makefile
-+++ xen-4.1.2-testing/tools/hotplug/Linux/Makefile
+--- xen-4.2.0-testing.orig/tools/hotplug/Linux/Makefile
++++ xen-4.2.0-testing/tools/hotplug/Linux/Makefile
@@ -41,18 +41,6 @@ endif
UDEV_RULES_DIR = $(CONFIG_DIR)/udev
UDEV_RULES = xen-backend.rules xend.rules
@@ -167,3 +134,39 @@
$(INSTALL_PROG) init.d/xen-watchdog $(DESTDIR)$(INITD_DIR)
.PHONY: install-scripts
+Index: xen-4.2.0-testing/tools/firmware/etherboot/Makefile
+===================================================================
+--- xen-4.2.0-testing.orig/tools/firmware/etherboot/Makefile
++++ xen-4.2.0-testing/tools/firmware/etherboot/Makefile
+@@ -28,12 +28,12 @@ all: $(ROMS)
+ $(MAKE) -C $D/src bin/$(*F).rom
+
+ $T:
+- if ! wget -O _$T $(IPXE_TARBALL_URL); then \
+- $(GIT) clone $(IPXE_GIT_URL) $D.git; \
+- (cd $D.git && $(GIT) archive --format=tar --prefix=$D/ \
+- $(IPXE_GIT_TAG) | gzip >../_$T); \
+- rm -rf $D.git; \
+- fi
++ #if ! wget -O _$T $(IPXE_TARBALL_URL); then \
++ # $(GIT) clone $(IPXE_GIT_URL) $D.git; \
++ # (cd $D.git && $(GIT) archive --format=tar --prefix=$D/ \
++ # $(IPXE_GIT_TAG) | gzip >../_$T); \
++ # rm -rf $D.git; \
++ #fi
+ mv _$T $T
+
+ $D/src/arch/i386/Makefile: $T Config
+Index: xen-4.2.0-testing/tools/Makefile
+===================================================================
+--- xen-4.2.0-testing.orig/tools/Makefile
++++ xen-4.2.0-testing/tools/Makefile
+@@ -187,7 +187,7 @@ subdir-all-qemu-xen-dir: qemu-xen-dir-fi
+ source=.; \
+ fi; \
+ cd qemu-xen-dir; \
+- $$source/configure --enable-xen --target-list=i386-softmmu \
++ CFLAGS= $$source/configure --enable-xen --target-list=i386-softmmu \
+ --source-path=$$source \
+ --extra-cflags="-I$(XEN_ROOT)/tools/include \
+ -I$(XEN_ROOT)/tools/libxc \
++++++ xen-disable-qemu-monitor.diff ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -5,10 +5,10 @@
commands that can read/write dom0's state.
-Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/monitor.c
+Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/monitor.c
===================================================================
---- xen-4.1.2-testing.orig/tools/ioemu-qemu-xen/monitor.c
-+++ xen-4.1.2-testing/tools/ioemu-qemu-xen/monitor.c
+--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/monitor.c
++++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/monitor.c
@@ -1497,6 +1497,7 @@ static const term_cmd_t term_cmds[] = {
"device|all", "commit changes to the disk images (if -snapshot is used) or backing files" },
{ "info", "s?", do_info,
++++++ xen-domUloader.diff ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -1,7 +1,7 @@
-Index: xen-4.1.2-testing/tools/python/xen/xend/server/DevController.py
+Index: xen-4.2.0-testing/tools/python/xen/xend/server/DevController.py
===================================================================
---- xen-4.1.2-testing.orig/tools/python/xen/xend/server/DevController.py
-+++ xen-4.1.2-testing/tools/python/xen/xend/server/DevController.py
+--- xen-4.2.0-testing.orig/tools/python/xen/xend/server/DevController.py
++++ xen-4.2.0-testing/tools/python/xen/xend/server/DevController.py
@@ -592,6 +592,31 @@ class DevController:
return (Missing, None)
@@ -34,10 +34,10 @@
def backendPath(self, backdom, devid):
"""Construct backend path given the backend domain and device id.
-Index: xen-4.1.2-testing/tools/python/xen/xend/XendBootloader.py
+Index: xen-4.2.0-testing/tools/python/xen/xend/XendBootloader.py
===================================================================
---- xen-4.1.2-testing.orig/tools/python/xen/xend/XendBootloader.py
-+++ xen-4.1.2-testing/tools/python/xen/xend/XendBootloader.py
+--- xen-4.2.0-testing.orig/tools/python/xen/xend/XendBootloader.py
++++ xen-4.2.0-testing/tools/python/xen/xend/XendBootloader.py
@@ -12,7 +12,7 @@
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
@@ -64,7 +64,7 @@
+ raise VmError(msg)
+
+ avail = False
-+ for i in xrange(1, 100):
++ for i in xrange(1, 500):
+ avail = os.access(disk, os.R_OK)
+ if avail:
+ break
@@ -75,10 +75,10 @@
log.error(msg)
raise VmError(msg)
-Index: xen-4.1.2-testing/tools/python/xen/xend/XendDomainInfo.py
+Index: xen-4.2.0-testing/tools/python/xen/xend/XendDomainInfo.py
===================================================================
---- xen-4.1.2-testing.orig/tools/python/xen/xend/XendDomainInfo.py
-+++ xen-4.1.2-testing/tools/python/xen/xend/XendDomainInfo.py
+--- xen-4.2.0-testing.orig/tools/python/xen/xend/XendDomainInfo.py
++++ xen-4.2.0-testing/tools/python/xen/xend/XendDomainInfo.py
@@ -2333,6 +2333,10 @@ class XendDomainInfo:
deviceClass, config = self.info['devices'].get(dev_uuid)
self._waitForDevice(deviceClass, config['devid'])
@@ -90,7 +90,7 @@
def _waitForDevice_destroy(self, deviceClass, devid, backpath):
return self.getDeviceController(deviceClass).waitForDevice_destroy(
devid, backpath)
-@@ -3278,7 +3282,8 @@ class XendDomainInfo:
+@@ -3283,7 +3287,8 @@ class XendDomainInfo:
from xen.xend import XendDomain
dom0 = XendDomain.instance().privilegedDomain()
mounted_vbd_uuid = dom0.create_vbd(vbd, disk);
@@ -100,7 +100,7 @@
fn = BOOTLOADER_LOOPBACK_DEVICE
try:
-@@ -3288,10 +3293,10 @@ class XendDomainInfo:
+@@ -3293,10 +3298,10 @@ class XendDomainInfo:
if mounted:
log.info("Unmounting %s from %s." %
(fn, BOOTLOADER_LOOPBACK_DEVICE))
++++++ xen-fixme-doc.diff ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -1,7 +1,7 @@
-Index: xen-4.1.2-testing/docs/man/xmdomain.cfg.pod.5
+Index: xen-4.2.0-testing/docs/man/xmdomain.cfg.pod.5
===================================================================
---- xen-4.1.2-testing.orig/docs/man/xmdomain.cfg.pod.5
-+++ xen-4.1.2-testing/docs/man/xmdomain.cfg.pod.5
+--- xen-4.2.0-testing.orig/docs/man/xmdomain.cfg.pod.5
++++ xen-4.2.0-testing/docs/man/xmdomain.cfg.pod.5
@@ -335,16 +335,10 @@ at hda1, which is the root filesystem.
=item I<NFS Root>
@@ -19,11 +19,11 @@
=back
=head1 SEE ALSO
-Index: xen-4.1.2-testing/docs/man/xm.pod.1
+Index: xen-4.2.0-testing/docs/man/xm.pod.1
===================================================================
---- xen-4.1.2-testing.orig/docs/man/xm.pod.1
-+++ xen-4.1.2-testing/docs/man/xm.pod.1
-@@ -295,7 +295,8 @@ scheduling by the Xen hypervisor.
+--- xen-4.2.0-testing.orig/docs/man/xm.pod.1
++++ xen-4.2.0-testing/docs/man/xm.pod.1
+@@ -299,7 +299,8 @@ scheduling by the Xen hypervisor.
=item B<s - shutdown>
@@ -33,7 +33,7 @@
=item B<c - crashed>
-@@ -308,8 +309,6 @@ restart on crash. See L<xmdomain.cfg> f
+@@ -312,8 +313,6 @@ restart on crash. See L<xmdomain.cfg> f
The domain is in process of dying, but hasn't completely shutdown or
crashed.
@@ -42,7 +42,7 @@
=back
B<NOTES>
-@@ -733,8 +732,6 @@ Xen ships with a number of domain schedu
+@@ -737,8 +736,6 @@ Xen ships with a number of domain schedu
time with the B<sched=> parameter on the Xen command line. By
default B<credit> is used for scheduling.
@@ -51,7 +51,7 @@
=over 4
=item B<sched-credit> [ B<-d> I<domain-id> [ B<-w>[B<=>I<WEIGHT>] | B<-c>[B<=>I<CAP>] ] ]
-@@ -784,8 +781,6 @@ The normal EDF scheduling usage in nanos
+@@ -788,8 +785,6 @@ The normal EDF scheduling usage in nanos
The normal EDF scheduling usage in nanoseconds
@@ -60,7 +60,7 @@
=item I<latency-hint>
Scaled period if domain is doing heavy I/O.
-@@ -935,9 +930,6 @@ the default setting in xend-config.sxp f
+@@ -939,9 +934,6 @@ the default setting in xend-config.sxp f
Passes the specified IP Address to the adapter on creation.
@@ -70,7 +70,7 @@
=item B<mac=>I<macaddr>
The MAC address that the domain will see on its Ethernet device. If
-@@ -963,9 +955,6 @@ Removes the network device from the doma
+@@ -967,9 +959,6 @@ Removes the network device from the doma
I<devid> is the virtual interface device number within the domain
(i.e. the 3 in vif22.3).
@@ -80,13 +80,3 @@
=item B<network-list> [B<-l>|B<--long>]> I<domain-id>
List virtual network interfaces for a domain. The returned output is
-@@ -988,9 +977,6 @@ formatted as a list or as an S-Expressio
-
- The Virtual Network interfaces for Xen.
-
--FIXME: This needs a lot more explanation, or it needs to be ripped
--out entirely.
--
- =over 4
-
- =item B<vnet-list> [B<-l>|B<--long>]
++++++ xen-hvm-default-bridge.diff ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -1,7 +1,7 @@
-Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/net.h
+Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/net.h
===================================================================
---- xen-4.1.2-testing.orig/tools/ioemu-qemu-xen/net.h
-+++ xen-4.1.2-testing/tools/ioemu-qemu-xen/net.h
+--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/net.h
++++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/net.h
@@ -107,8 +107,8 @@ void net_host_device_add(const char *dev
void net_host_device_remove(int vlan_id, const char *device);
@@ -13,10 +13,10 @@
#endif
#ifdef __sun__
#define SMBD_COMMAND "/usr/sfw/sbin/smbd"
-Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/net.c
+Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/net.c
===================================================================
---- xen-4.1.2-testing.orig/tools/ioemu-qemu-xen/net.c
-+++ xen-4.1.2-testing/tools/ioemu-qemu-xen/net.c
+--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/net.c
++++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/net.c
@@ -1759,9 +1759,10 @@ int net_client_init(const char *device,
}
if (get_param_value(script_arg, sizeof(script_arg), "scriptarg", p) == 0 &&
@@ -30,10 +30,10 @@
}
} else
#endif
-Index: xen-4.1.2-testing/tools/python/xen/xend/image.py
+Index: xen-4.2.0-testing/tools/python/xen/xend/image.py
===================================================================
---- xen-4.1.2-testing.orig/tools/python/xen/xend/image.py
-+++ xen-4.1.2-testing/tools/python/xen/xend/image.py
+--- xen-4.2.0-testing.orig/tools/python/xen/xend/image.py
++++ xen-4.2.0-testing/tools/python/xen/xend/image.py
@@ -912,11 +912,13 @@ class HVMImageHandler(ImageHandler):
mac = devinfo.get('mac')
if mac is None:
@@ -48,13 +48,13 @@
+ if bridge:
+ net += ",bridge=%s" % bridge
+ ret.append(net)
- vifname = devinfo.get('vifname')
- if vifname:
- vifname = "tap-" + vifname
-Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/i386-dm/qemu-ifup-Linux
+ vifname = "vif%d.%d-emu" % (self.vm.getDomid(), nics-1)
+ ret.append("-net")
+ if osdep.tapif_script is not None:
+Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/i386-dm/qemu-ifup-Linux
===================================================================
---- xen-4.1.2-testing.orig/tools/ioemu-qemu-xen/i386-dm/qemu-ifup-Linux
-+++ xen-4.1.2-testing/tools/ioemu-qemu-xen/i386-dm/qemu-ifup-Linux
+--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/i386-dm/qemu-ifup-Linux
++++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/i386-dm/qemu-ifup-Linux
@@ -1,36 +1,22 @@
#!/bin/sh
++++++ xen-hvm-default-pae.diff ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -1,10 +1,10 @@
PAE must be on for 64-on-64 to work at all.
-Index: xen-4.1.2-testing/tools/python/xen/xend/image.py
+Index: xen-4.2.0-testing/tools/python/xen/xend/image.py
===================================================================
---- xen-4.1.2-testing.orig/tools/python/xen/xend/image.py
-+++ xen-4.1.2-testing/tools/python/xen/xend/image.py
-@@ -1030,7 +1030,7 @@ class X86_HVM_ImageHandler(HVMImageHandl
+--- xen-4.2.0-testing.orig/tools/python/xen/xend/image.py
++++ xen-4.2.0-testing/tools/python/xen/xend/image.py
+@@ -1038,7 +1038,7 @@ class X86_HVM_ImageHandler(HVMImageHandl
def configure(self, vmConfig):
HVMImageHandler.configure(self, vmConfig)
++++++ xen-ioemu-hvm-pv-support.diff ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -1,7 +1,7 @@
-Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/hw/xen_platform.c
+Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/xen_platform.c
===================================================================
---- xen-4.1.2-testing.orig/tools/ioemu-qemu-xen/hw/xen_platform.c
-+++ xen-4.1.2-testing/tools/ioemu-qemu-xen/hw/xen_platform.c
+--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/hw/xen_platform.c
++++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/xen_platform.c
@@ -30,6 +30,8 @@
#include "qemu-xen.h"
#include "net.h"
++++++ xen-max-free-mem.diff ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -1,7 +1,7 @@
-Index: xen-4.1.2-testing/tools/python/xen/xend/XendNode.py
+Index: xen-4.2.0-testing/tools/python/xen/xend/XendNode.py
===================================================================
---- xen-4.1.2-testing.orig/tools/python/xen/xend/XendNode.py
-+++ xen-4.1.2-testing/tools/python/xen/xend/XendNode.py
+--- xen-4.2.0-testing.orig/tools/python/xen/xend/XendNode.py
++++ xen-4.2.0-testing/tools/python/xen/xend/XendNode.py
@@ -949,11 +949,35 @@ class XendNode:
info['cpu_mhz'] = info['cpu_khz'] / 1000
@@ -51,10 +51,10 @@
]
if show_numa != 0:
-Index: xen-4.1.2-testing/tools/python/xen/xend/balloon.py
+Index: xen-4.2.0-testing/tools/python/xen/xend/balloon.py
===================================================================
---- xen-4.1.2-testing.orig/tools/python/xen/xend/balloon.py
-+++ xen-4.1.2-testing/tools/python/xen/xend/balloon.py
+--- xen-4.2.0-testing.orig/tools/python/xen/xend/balloon.py
++++ xen-4.2.0-testing/tools/python/xen/xend/balloon.py
@@ -43,6 +43,8 @@ SLEEP_TIME_GROWTH = 0.1
# label actually shown in the PROC_XEN_BALLOON file.
#labels = { 'current' : 'Current allocation',
@@ -88,10 +88,10 @@
def free(need_mem, dominfo):
"""Balloon out memory from the privileged domain so that there is the
specified required amount (in KiB) free.
-Index: xen-4.1.2-testing/tools/python/xen/xend/XendDomainInfo.py
+Index: xen-4.2.0-testing/tools/python/xen/xend/XendDomainInfo.py
===================================================================
---- xen-4.1.2-testing.orig/tools/python/xen/xend/XendDomainInfo.py
-+++ xen-4.1.2-testing/tools/python/xen/xend/XendDomainInfo.py
+--- xen-4.2.0-testing.orig/tools/python/xen/xend/XendDomainInfo.py
++++ xen-4.2.0-testing/tools/python/xen/xend/XendDomainInfo.py
@@ -1459,6 +1459,27 @@ class XendDomainInfo:
pci_conf = self.info['devices'][dev_uuid][1]
return map(pci_dict_to_bdf_str, pci_conf['devs'])
@@ -120,10 +120,10 @@
def setMemoryTarget(self, target):
"""Set the memory target of this domain.
@param target: In MiB.
-Index: xen-4.1.2-testing/tools/python/xen/xend/server/SrvDomain.py
+Index: xen-4.2.0-testing/tools/python/xen/xend/server/SrvDomain.py
===================================================================
---- xen-4.1.2-testing.orig/tools/python/xen/xend/server/SrvDomain.py
-+++ xen-4.1.2-testing/tools/python/xen/xend/server/SrvDomain.py
+--- xen-4.2.0-testing.orig/tools/python/xen/xend/server/SrvDomain.py
++++ xen-4.2.0-testing/tools/python/xen/xend/server/SrvDomain.py
@@ -187,7 +187,7 @@ class SrvDomain(SrvDir):
++++++ xen-minimum-restart-time.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -1,10 +1,10 @@
References: bnc#661298
-Index: xen-4.1.2-testing/tools/python/xen/xend/XendConstants.py
+Index: xen-4.2.0-testing/tools/python/xen/xend/XendConstants.py
===================================================================
---- xen-4.1.2-testing.orig/tools/python/xen/xend/XendConstants.py
-+++ xen-4.1.2-testing/tools/python/xen/xend/XendConstants.py
-@@ -92,7 +92,7 @@ DOM_STATES_OLD = [
+--- xen-4.2.0-testing.orig/tools/python/xen/xend/XendConstants.py
++++ xen-4.2.0-testing/tools/python/xen/xend/XendConstants.py
+@@ -94,7 +94,7 @@ DOM_STATES_OLD = [
SHUTDOWN_TIMEOUT = (60.0 * 5)
"""Minimum time between domain restarts in seconds."""
++++++ xen-no-dummy-nfs-ip.diff ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -1,8 +1,8 @@
-Index: xen-4.1.2-testing/tools/python/xen/xm/create.py
+Index: xen-4.2.0-testing/tools/python/xen/xm/create.py
===================================================================
---- xen-4.1.2-testing.orig/tools/python/xen/xm/create.py
-+++ xen-4.1.2-testing/tools/python/xen/xm/create.py
-@@ -1337,9 +1337,8 @@ def preprocess_access_control(vals):
+--- xen-4.2.0-testing.orig/tools/python/xen/xm/create.py
++++ xen-4.2.0-testing/tools/python/xen/xm/create.py
+@@ -1342,9 +1342,8 @@ def preprocess_access_control(vals):
def preprocess_ip(vals):
if vals.ip or vals.dhcp != 'off':
++++++ xen-paths.diff ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -1,7 +1,7 @@
-Index: xen-4.1.2-testing/tools/python/xen/xm/create.py
+Index: xen-4.2.0-testing/tools/python/xen/xm/create.py
===================================================================
---- xen-4.1.2-testing.orig/tools/python/xen/xm/create.py
-+++ xen-4.1.2-testing/tools/python/xen/xm/create.py
+--- xen-4.2.0-testing.orig/tools/python/xen/xm/create.py
++++ xen-4.2.0-testing/tools/python/xen/xm/create.py
@@ -73,7 +73,7 @@ gopts.opt('quiet', short='q',
use="Quiet.")
@@ -11,11 +11,11 @@
use="Search path for configuration scripts. "
"The value of PATH is a colon-separated directory list.")
-Index: xen-4.1.2-testing/docs/man/xm.pod.1
+Index: xen-4.2.0-testing/docs/man/xm.pod.1
===================================================================
---- xen-4.1.2-testing.orig/docs/man/xm.pod.1
-+++ xen-4.1.2-testing/docs/man/xm.pod.1
-@@ -75,7 +75,7 @@ in the config file. See L<xmdomain.cfg>
+--- xen-4.2.0-testing.orig/docs/man/xm.pod.1
++++ xen-4.2.0-testing/docs/man/xm.pod.1
+@@ -79,7 +79,7 @@ in the config file. See L<xmdomain.cfg>
format, and possible options used in either the configfile or for I<vars>.
I<configfile> can either be an absolute path to a file, or a relative
@@ -24,7 +24,7 @@
Create will return B<as soon> as the domain is started. This B<does
not> mean the guest OS in the domain has actually booted, or is
-@@ -156,7 +156,7 @@ B<EXAMPLES>
+@@ -160,7 +160,7 @@ B<EXAMPLES>
xm create Fedora4
@@ -33,10 +33,10 @@
soon as it is run.
=item I<without config file>
-Index: xen-4.1.2-testing/docs/man/xmdomain.cfg.pod.5
+Index: xen-4.2.0-testing/docs/man/xmdomain.cfg.pod.5
===================================================================
---- xen-4.1.2-testing.orig/docs/man/xmdomain.cfg.pod.5
-+++ xen-4.1.2-testing/docs/man/xmdomain.cfg.pod.5
+--- xen-4.2.0-testing.orig/docs/man/xmdomain.cfg.pod.5
++++ xen-4.2.0-testing/docs/man/xmdomain.cfg.pod.5
@@ -4,9 +4,9 @@ xmdomain.cfg - xm domain config file for
=head1 SYNOPSIS
++++++ xen-qemu-iscsi-fix.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -1,7 +1,7 @@
-Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/xenstore.c
+Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/xenstore.c
===================================================================
---- xen-4.1.2-testing.orig/tools/ioemu-qemu-xen/xenstore.c
-+++ xen-4.1.2-testing/tools/ioemu-qemu-xen/xenstore.c
+--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/xenstore.c
++++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/xenstore.c
@@ -449,7 +449,7 @@ void xenstore_parse_domain_config(int hv
char *buf = NULL;
char *fpath = NULL, *bpath = NULL, *btype = NULL,
@@ -65,12 +65,12 @@
format = &bdrv_host_device;
else
format = &bdrv_raw;
-+ } else if (!strcmp(drv,"iscsi")) {
-+ format = &bdrv_raw;
-+ } else if (!strcmp(drv,"npiv")) {
-+ format = &bdrv_raw;
-+ } else if (!strcmp(drv,"dmmd")) {
-+ format = &bdrv_raw;
++ } else if (!strcmp(drv,"iscsi")) {
++ format = &bdrv_raw;
++ } else if (!strcmp(drv,"npiv")) {
++ format = &bdrv_raw;
++ } else if (!strcmp(drv,"dmmd")) {
++ format = &bdrv_raw;
} else {
format = bdrv_find_format(drv);
if (!format) {
++++++ xen-rpmoptflags.diff ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -1,20 +1,20 @@
-Index: xen-4.1.2-testing/tools/blktap/drivers/Makefile
+Index: xen-4.2.0-testing/tools/blktap/drivers/Makefile
===================================================================
---- xen-4.1.2-testing.orig/tools/blktap/drivers/Makefile
-+++ xen-4.1.2-testing/tools/blktap/drivers/Makefile
-@@ -6,7 +6,6 @@ QCOW_UTIL = img2qcow qcow2raw qcow-cr
- LIBAIO_DIR = ../../libaio/src
- MEMSHR_DIR = ../../memshr
+--- xen-4.2.0-testing.orig/tools/blktap/drivers/Makefile
++++ xen-4.2.0-testing/tools/blktap/drivers/Makefile
+@@ -4,7 +4,6 @@ include $(XEN_ROOT)/tools/Rules.mk
+ IBIN = blktapctrl tapdisk
+ QCOW_UTIL = img2qcow qcow2raw qcow-create
-CFLAGS += -Werror
CFLAGS += -Wno-unused
CFLAGS += -I../lib
CFLAGS += $(CFLAGS_libxenctrl)
-Index: xen-4.1.2-testing/Config.mk
+Index: xen-4.2.0-testing/Config.mk
===================================================================
---- xen-4.1.2-testing.orig/Config.mk
-+++ xen-4.1.2-testing/Config.mk
-@@ -14,7 +14,7 @@ SHELL ?= /bin/sh
+--- xen-4.2.0-testing.orig/Config.mk
++++ xen-4.2.0-testing/Config.mk
+@@ -24,7 +24,7 @@ SHELL ?= /bin/sh
# Tools to run on system hosting the build
HOSTCC = gcc
++++++ xen-utils-0.1.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xen-utils-0.1/Makefile new/xen-utils-0.1/Makefile
--- old/xen-utils-0.1/Makefile 2011-06-10 16:40:22.000000000 +0200
+++ new/xen-utils-0.1/Makefile 2012-05-22 22:05:30.000000000 +0200
@@ -12,10 +12,11 @@
CFLAGS += -I. -D_DEBUG -D_GNU_SOURCE
ifdef XEN_INTREE_BUILD
-XEN_ROOT=../..
+#XEN_ROOT=../..
+XEN_XC = $(XEN_ROOT)/tools/python/xen/lowlevel/xc
include $(XEN_ROOT)/tools/Rules.mk
CFLAGS += -I $(XEN_XC)
-CFLAGS += -I $(XEN_XENSTORE)
+CFLAGS += -I $(XEN_XENSTORE) -I $(XEN_XENSTORE)/compat
CFLAGS += $(CFLAGS_libxenctrl)
CFLAGS += $(CFLAGS_libxenstore)
LIBS += $(LDFLAGS_libxenctrl) $(LDLIBS_libxenctrl)
++++++ xen-warnings-unused.diff ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -1,36 +1,6 @@
---- a/tools/libxc/xc_tmem.c
-+++ b/tools/libxc/xc_tmem.c
-@@ -390,7 +390,8 @@ static int xc_tmem_restore_new_pool(
-
- int xc_tmem_restore(xc_interface *xch, int dom, int io_fd)
- {
-- uint32_t save_max_pools, save_version;
-+ uint32_t save_version;
-+ uint32_t __attribute__((__unused__)) save_max_pools;
- uint32_t this_max_pools, this_version;
- uint32_t pool_id;
- uint32_t minusone;
---- a/tools/libxc/xc_domain_restore.c
-+++ b/tools/libxc/xc_domain_restore.c
-@@ -1098,7 +1098,6 @@ int xc_domain_restore(xc_interface *xch,
- int vcpuextstate = 0;
- uint32_t vcpuextstate_size = 0;
- unsigned long mfn, pfn;
-- unsigned int prev_pc;
- int nraces = 0;
-
- /* The new domain's shared-info frame number. */
-@@ -1262,7 +1261,6 @@ int xc_domain_restore(xc_interface *xch,
- * Now simply read each saved frame into its new machine frame.
- * We uncanonicalise page tables as we go.
- */
-- prev_pc = 0;
-
- n = m = 0;
- loadpages:
--- a/tools/misc/gtraceview.c
+++ b/tools/misc/gtraceview.c
-@@ -622,7 +622,8 @@ void crt_init(void)
+@@ -621,7 +621,8 @@ void crt_init(void)
void nr_addch(int nr, int ch)
{
int i;
@@ -77,7 +47,7 @@
console_type type = CONSOLE_INVAL;
--- a/tools/xenstat/xentop/xentop.c
+++ b/tools/xenstat/xentop/xentop.c
-@@ -272,7 +272,8 @@ static void fail(const char *str)
+@@ -278,7 +278,8 @@ static void fail(const char *str)
/* Return the row containing the cursor. */
static int current_row(void)
{
@@ -87,7 +57,7 @@
getyx(stdscr, y, x);
return y;
}
-@@ -280,7 +281,8 @@ static int current_row(void)
+@@ -286,7 +287,8 @@ static int current_row(void)
/* Return the number of lines on the screen. */
static int lines(void)
{
@@ -99,7 +69,7 @@
}
--- a/tools/libxl/libxlu_cfg.c
+++ b/tools/libxl/libxlu_cfg.c
-@@ -348,7 +348,7 @@ char *xlu__cfgl_dequote(CfgParseContext
+@@ -406,7 +406,7 @@ char *xlu__cfgl_dequote(CfgParseContext
#define NUMERIC_CHAR(minlen,maxlen,base,basetext) do{ \
char numbuf[(maxlen)+1], *ep; \
@@ -108,38 +78,9 @@
\
strncpy(numbuf,p,(maxlen)); \
numbuf[(maxlen)]= 0; \
---- a/tools/libxl/libxl.c
-+++ b/tools/libxl/libxl.c
-@@ -221,7 +221,7 @@ int libxl_domain_rename(libxl_ctx *ctx,
- int libxl_domain_resume(libxl_ctx *ctx, uint32_t domid)
- {
- libxl__gc gc = LIBXL_INIT_GC(ctx);
-- int rc = 0;
-+ int __attribute__((__unused__)) rc = 0;
-
- if (libxl__domain_is_hvm(ctx, domid)) {
- LIBXL__LOG(ctx, LIBXL__LOG_DEBUG, "Called domain_resume on "
-@@ -1303,7 +1303,7 @@ libxl_nicinfo *libxl_list_nics(libxl_ctx
- {
- libxl__gc gc = LIBXL_INIT_GC(ctx);
- char *dompath, *nic_path_fe;
-- char **l, **list;
-+ char **l;
- char *val, *tok;
- unsigned int nb_nics, i;
- libxl_nicinfo *res, *nics;
-@@ -1311,7 +1311,7 @@ libxl_nicinfo *libxl_list_nics(libxl_ctx
- dompath = libxl__xs_get_dompath(&gc, domid);
- if (!dompath)
- goto err;
-- list = l = libxl__xs_directory(&gc, XBT_NULL,
-+ l = libxl__xs_directory(&gc, XBT_NULL,
- libxl__sprintf(&gc, "%s/device/vif", dompath), &nb_nics);
- if (!l)
- goto err;
--- a/tools/libxl/libxl_pci.c
+++ b/tools/libxl/libxl_pci.c
-@@ -240,7 +240,7 @@ static int libxl_create_pci_backend(libx
+@@ -71,7 +71,7 @@ int libxl__create_pci_backend(libxl__gc
flexarray_t *front = NULL;
flexarray_t *back = NULL;
libxl__device device;
@@ -148,7 +89,7 @@
front = flexarray_make(16, 1);
if (!front)
-@@ -249,8 +249,6 @@ static int libxl_create_pci_backend(libx
+@@ -80,8 +80,6 @@ int libxl__create_pci_backend(libxl__gc
if (!back)
goto out;
@@ -159,41 +100,14 @@
/* add pci device */
--- a/tools/libxl/libxl_dom.c
+++ b/tools/libxl/libxl_dom.c
-@@ -268,14 +268,13 @@ int libxl__build_hvm(libxl_ctx *ctx, uin
- libxl_domain_build_info *info, libxl_domain_build_state *state)
- {
- libxl__gc gc = LIBXL_INIT_GC(ctx);
-- int ret, rc = ERROR_INVAL;
-+ int ret;
-
- if (info->kernel.mapped) {
- LIBXL__LOG_ERRNO(ctx, LIBXL__LOG_ERROR, "libxl__build_hvm kernel cannot be mmapped");
- goto out;
- }
-
-- rc = ERROR_FAIL;
- ret = xc_hvm_build_target_mem(
- ctx->xch,
- domid,
-@@ -293,7 +292,6 @@ int libxl__build_hvm(libxl_ctx *ctx, uin
+@@ -565,7 +565,6 @@ int libxl__build_hvm(libxl__gc *gc, uint
LIBXL__LOG_ERRNOVAL(ctx, LIBXL__LOG_ERROR, ret, "hvm build set params failed");
goto out;
}
- rc = 0;
out:
- libxl__free_all(&gc);
- return 0;
---- a/tools/libxl/libxl_utils.c
-+++ b/tools/libxl/libxl_utils.c
-@@ -531,7 +531,7 @@ int libxl_devid_to_device_disk(libxl_ctx
- libxl__gc gc = LIBXL_INIT_GC(ctx);
- char *val;
- char *dompath, *diskpath, *be_path;
-- unsigned int devid_n;
-+ unsigned int __attribute__((__unused__)) devid_n;
- int rc = ERROR_INVAL;
-
- devid_n = libxl__device_disk_dev_number(devid);
+ return rc;
+ }
--- a/tools/debugger/gdbsx/gx/gx_comm.c
+++ b/tools/debugger/gdbsx/gx/gx_comm.c
@@ -163,7 +163,7 @@ readchar(void)
@@ -207,7 +121,7 @@
return *bufp++ & 0x7f;
--- a/tools/python/xen/lowlevel/checkpoint/libcheckpoint.c
+++ b/tools/python/xen/lowlevel/checkpoint/libcheckpoint.c
-@@ -820,7 +820,7 @@ static int create_suspend_thread(checkpo
+@@ -836,7 +836,7 @@ static int create_suspend_thread(checkpo
static void stop_suspend_thread(checkpoint_state* s)
{
@@ -228,29 +142,18 @@
int l;
status = fread(&buf, 1, sizeof(*h), rtnl);
---- a/xen/arch/x86/msi.c
-+++ b/xen/arch/x86/msi.c
-@@ -799,7 +799,7 @@ static void __pci_disable_msi(struct msi
- {
- struct pci_dev *dev;
- int pos;
-- u16 control;
-+ u16 __attribute__((__unused__)) control;
- u8 bus, slot, func;
-
- dev = entry->dev;
--- a/xen/common/cpupool.c
+++ b/xen/common/cpupool.c
-@@ -356,7 +356,7 @@ int cpupool_add_domain(struct domain *d,
+@@ -371,7 +371,7 @@ int cpupool_add_domain(struct domain *d,
{
struct cpupool *c;
- int rc = 1;
+ int rc;
- int n_dom = 0;
+ int __attribute__((__unused__)) n_dom = 0;
if ( poolid == CPUPOOLID_NONE )
return 0;
-@@ -380,8 +380,8 @@ int cpupool_add_domain(struct domain *d,
+@@ -399,8 +399,8 @@ int cpupool_add_domain(struct domain *d,
*/
void cpupool_rm_domain(struct domain *d)
{
@@ -261,20 +164,9 @@
if ( d->cpupool == NULL )
return;
---- a/xen/common/grant_table.c
-+++ b/xen/common/grant_table.c
-@@ -769,7 +769,7 @@ __gnttab_unmap_common(
- struct domain *ld, *rd;
- struct active_grant_entry *act;
- s16 rc = 0;
-- u32 old_pin;
-+ u32 __attribute__((__unused__)) old_pin;
-
- ld = current->domain;
-
--- a/xen/common/kexec.c
+++ b/xen/common/kexec.c
-@@ -573,7 +573,8 @@ static int kexec_exec(XEN_GUEST_HANDLE(v
+@@ -817,7 +817,8 @@ static int kexec_exec(XEN_GUEST_HANDLE(v
{
xen_kexec_exec_t exec;
xen_kexec_image_t *image;
@@ -284,52 +176,9 @@
if ( unlikely(copy_from_guest(&exec, uarg, 1)) )
return -EFAULT;
---- a/xen/drivers/passthrough/vtd/intremap.c
-+++ b/xen/drivers/passthrough/vtd/intremap.c
-@@ -367,7 +367,7 @@ unsigned int io_apic_read_remap_rte(
- unsigned int ioapic_pin = (reg - 0x10) / 2;
- int index;
- struct IO_xAPIC_route_entry old_rte = { 0 };
-- struct IO_APIC_route_remap_entry *remap_rte;
-+ struct IO_APIC_route_remap_entry __attribute__((__unused__)) *remap_rte;
- int rte_upper = (reg & 1) ? 1 : 0;
- struct iommu *iommu = ioapic_to_iommu(IO_APIC_ID(apic));
- struct ir_ctrl *ir_ctrl = iommu_ir_ctrl(iommu);
-@@ -870,7 +870,7 @@ int iommu_enable_x2apic_IR(void)
-
- for_each_drhd_unit ( drhd )
- {
-- struct qi_ctrl *qi_ctrl = NULL;
-+ struct qi_ctrl __attribute__((__unused__)) *qi_ctrl = NULL;
-
- iommu = drhd->iommu;
- qi_ctrl = iommu_qi_ctrl(iommu);
---- a/xen/common/sched_credit2.c
-+++ b/xen/common/sched_credit2.c
-@@ -1854,7 +1854,8 @@ static void deactivate_runqueue(struct c
-
- static void init_pcpu(const struct scheduler *ops, int cpu)
- {
-- int rqi, old_rqi, flags;
-+ int rqi, flags;
-+ int __attribute__((__unused__)) old_rqi;
- struct csched_private *prv = CSCHED_PRIV(ops);
- struct csched_runqueue_data *rqd;
- spinlock_t *old_lock;
---- a/xen/common/unlzo.c
-+++ b/xen/common/unlzo.c
-@@ -68,7 +68,7 @@ static int INIT parse_header(u8 *input,
- {
- int l;
- u8 *parse = input;
-- u8 level = 0;
-+ u8 __attribute__((__unused__)) level = 0;
- u16 version;
-
- /* read magic: 9 first bits */
--- a/xen/arch/x86/time.c
+++ b/xen/arch/x86/time.c
-@@ -1009,7 +1009,8 @@ static void local_time_calibration(void)
+@@ -1012,7 +1012,8 @@ static void local_time_calibration(void)
* System timestamps, extrapolated from local and master oscillators,
* taken during this calibration and the previous calibration.
*/
@@ -339,20 +188,9 @@
s_time_t prev_master_stime, curr_master_stime;
/* TSC timestamps taken during this calibration and prev calibration. */
---- a/xen/arch/x86/cpu/amd.c
-+++ b/xen/arch/x86/cpu/amd.c
-@@ -394,7 +394,7 @@ static void __devinit init_amd(struct cp
- {
- u32 l, h;
- int mbytes = num_physpages >> (20-PAGE_SHIFT);
-- int r;
-+ int __attribute__((__unused__)) r;
-
- #ifdef CONFIG_SMP
- unsigned long long value;
--- a/xen/arch/x86/mm/p2m.c
+++ b/xen/arch/x86/mm/p2m.c
-@@ -2341,7 +2341,7 @@ p2m_remove_page(struct p2m_domain *p2m,
+@@ -483,7 +483,7 @@ p2m_remove_page(struct p2m_domain *p2m,
unsigned int page_order)
{
unsigned long i;
@@ -361,61 +199,9 @@
p2m_type_t t;
p2m_access_t a;
-@@ -2410,7 +2410,7 @@ guest_physmap_mark_populate_on_demand(st
- struct p2m_domain *p2m = p2m_get_hostp2m(d);
- unsigned long i;
- p2m_type_t ot;
-- mfn_t omfn;
-+ mfn_t __attribute__((__unused__)) omfn;
- int pod_count = 0;
- int rc = 0;
-
---- a/xen/arch/x86/hvm/emulate.c
-+++ b/xen/arch/x86/hvm/emulate.c
-@@ -59,7 +59,7 @@ static int hvmemul_do_io(
- ioreq_t *p = get_ioreq(curr);
- unsigned long ram_gfn = paddr_to_pfn(ram_gpa);
- p2m_type_t p2mt;
-- mfn_t ram_mfn;
-+ mfn_t __attribute__((__unused__)) ram_mfn;
- int rc;
-
- /* Check for paged out page */
---- a/xen/arch/x86/hvm/hvm.c
-+++ b/xen/arch/x86/hvm/hvm.c
-@@ -286,7 +286,8 @@ void hvm_migrate_timers(struct vcpu *v)
-
- void hvm_migrate_pirqs(struct vcpu *v)
- {
-- int pirq, irq;
-+ int pirq;
-+ int __attribute__((__unused__)) irq;
- struct irq_desc *desc;
- struct domain *d = v->domain;
- struct hvm_irq_dpci *hvm_irq_dpci = d->arch.hvm_domain.irq.dpci;
-@@ -3722,7 +3723,7 @@ long do_hvm_op(unsigned long op, XEN_GUE
- {
- p2m_type_t t;
- p2m_type_t nt;
-- mfn_t mfn;
-+ mfn_t __attribute__((__unused__)) mfn;
- mfn = gfn_to_mfn_unshare(p2m, pfn, &t, 0);
- if ( p2m_is_paging(t) )
- {
---- a/xen/arch/x86/acpi/cpu_idle.c
-+++ b/xen/arch/x86/acpi/cpu_idle.c
-@@ -279,7 +279,7 @@ static void acpi_processor_ffh_cstate_en
-
- static void acpi_idle_do_entry(struct acpi_processor_cx *cx)
- {
-- int unused;
-+ int __attribute__((__unused__)) unused;
-
- switch ( cx->entry_method )
- {
--- a/xen/arch/x86/cpu/intel_cacheinfo.c
+++ b/xen/arch/x86/cpu/intel_cacheinfo.c
-@@ -170,7 +170,8 @@ unsigned int __cpuinit init_intel_cachei
+@@ -169,7 +169,8 @@ unsigned int __cpuinit init_intel_cachei
unsigned int trace = 0, l1i = 0, l1d = 0, l2 = 0, l3 = 0; /* Cache sizes */
unsigned int new_l1d = 0, new_l1i = 0; /* Cache sizes from cpuid(4) */
unsigned int new_l2 = 0, new_l3 = 0, i; /* Cache sizes from cpuid(4) */
@@ -425,20 +211,9 @@
if (c->cpuid_level > 3) {
static int is_initialized;
---- a/xen/arch/x86/mm/mem_sharing.c
-+++ b/xen/arch/x86/mm/mem_sharing.c
-@@ -375,7 +375,7 @@ int mem_sharing_debug_gfn(struct domain
- {
- p2m_type_t p2mt;
- mfn_t mfn;
-- struct page_info *page;
-+ struct page_info __attribute__((__unused__)) *page;
-
- mfn = gfn_to_mfn(p2m_get_hostp2m(d), gfn, &p2mt);
- page = mfn_to_page(mfn);
--- a/xen/arch/x86/hvm/viridian.c
+++ b/xen/arch/x86/hvm/viridian.c
-@@ -270,7 +270,7 @@ int rdmsr_viridian_regs(uint32_t idx, ui
+@@ -317,7 +317,7 @@ int rdmsr_viridian_regs(uint32_t idx, ui
int viridian_hypercall(struct cpu_user_regs *regs)
{
int mode = hvm_guest_x86_mode(current);
@@ -449,7 +224,7 @@
union hypercall_input {
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
-@@ -4943,7 +4943,7 @@ static int ptwr_emulated_update(
+@@ -4973,7 +4973,7 @@ static int ptwr_emulated_update(
{
unsigned long mfn;
unsigned long unaligned_addr = addr;
@@ -458,57 +233,9 @@
l1_pgentry_t pte, ol1e, nl1e, *pl1e;
struct vcpu *v = current;
struct domain *d = v->domain;
---- a/xen/arch/x86/x86_64/mm.c
-+++ b/xen/arch/x86/x86_64/mm.c
-@@ -436,7 +436,8 @@ void destroy_m2p_mapping(struct mem_hota
- static int setup_compat_m2p_table(struct mem_hotadd_info *info)
- {
- unsigned long i, va, smap, emap, rwva, epfn = info->epfn;
-- unsigned int n, memflags;
-+ unsigned int n;
-+ unsigned int __attribute__((__unused__)) memflags;
- l3_pgentry_t *l3_ro_mpt = NULL;
- l2_pgentry_t *l2_ro_mpt = NULL;
- struct page_info *l1_pg;
---- a/xen/arch/x86/cpu/mcheck/mce.c
-+++ b/xen/arch/x86/cpu/mcheck/mce.c
-@@ -151,7 +151,6 @@ static struct mcinfo_bank *mca_init_bank
- struct mc_info *mi, int bank)
- {
- struct mcinfo_bank *mib;
-- uint64_t addr=0, misc = 0;
-
- if (!mi)
- return NULL;
-@@ -170,7 +169,6 @@ static struct mcinfo_bank *mca_init_bank
- mib->common.size = sizeof (struct mcinfo_bank);
- mib->mc_bank = bank;
-
-- addr = misc = 0;
- if (mib->mc_status & MCi_STATUS_MISCV)
- mib->mc_misc = mca_rdmsr(MSR_IA32_MCx_MISC(bank));
-
-@@ -281,7 +279,7 @@ mctelem_cookie_t mcheck_mca_logout(enum
- recover = (mc_recoverable_scan)? 1: 0;
-
- for (i = 0; i < 32 && i < nr_mce_banks; i++) {
-- struct mcinfo_bank *mib; /* on stack */
-+ struct mcinfo_bank __attribute__((__unused__)) *mib; /* on stack */
-
- /* Skip bank if corresponding bit in bankmask is clear */
- if (!mcabanks_test(i, bankmask))
-@@ -1215,7 +1213,7 @@ static void x86_mc_msrinject(void *data)
- {
- struct xen_mc_msrinject *mci = data;
- struct mcinfo_msr *msr;
-- struct cpuinfo_x86 *c;
-+ struct cpuinfo_x86 __attribute__((__unused__)) *c;
- uint64_t hwcr = 0;
- int intpose;
- int i;
--- a/xen/common/tmem.c
+++ b/xen/common/tmem.c
-@@ -1351,7 +1351,8 @@ obj_unlock:
+@@ -1352,7 +1352,8 @@ obj_unlock:
static int tmem_evict(void)
{
client_t *client = tmh_client_from_current();
@@ -518,8 +245,8 @@
obj_t *obj;
pool_t *pool;
int ret = 0;
-@@ -1588,7 +1589,8 @@ static NOINLINE int do_tmem_put(pool_t *
- pagesize_t pfn_offset, pagesize_t len, void *cva)
+@@ -1589,7 +1590,8 @@ static NOINLINE int do_tmem_put(pool_t *
+ pagesize_t pfn_offset, pagesize_t len, tmem_cli_va_t clibuf)
{
obj_t *obj = NULL, *objfound = NULL, *objnew = NULL;
- pgp_t *pgp = NULL, *pgpdel = NULL;
@@ -530,25 +257,25 @@
--- a/xen/common/tmem_xen.c
+++ b/xen/common/tmem_xen.c
-@@ -177,7 +177,7 @@ EXPORT int tmh_copy_from_client(pfp_t *p
+@@ -196,7 +196,7 @@ EXPORT int tmh_copy_from_client(pfp_t *p
EXPORT int tmh_compress_from_client(tmem_cli_mfn_t cmfn,
- void **out_va, size_t *out_len, void *cli_va)
+ void **out_va, size_t *out_len, tmem_cli_va_t clibuf)
{
- int ret = 0;
+ int __attribute__((__unused__)) ret = 0;
unsigned char *dmem = this_cpu(dstmem);
unsigned char *wmem = this_cpu(workmem);
- pfp_t *cli_pfp = NULL;
-@@ -237,7 +237,7 @@ EXPORT int tmh_decompress_to_client(tmem
- pfp_t *cli_pfp = NULL;
+ char *scratch = this_cpu(scratch_page);
+@@ -272,7 +272,7 @@ EXPORT int tmh_decompress_to_client(tmem
+ void *cli_va = NULL;
+ char *scratch = this_cpu(scratch_page);
size_t out_len = PAGE_SIZE;
- bool_t tmemc = cli_va != NULL; /* if true, cli_va is control-op buffer */
- int ret;
+ int __attribute__((__unused__)) ret;
- if ( !tmemc )
+ if ( guest_handle_is_null(clibuf) )
{
-@@ -366,15 +366,17 @@ static void tmh_persistent_pool_page_put
+@@ -405,15 +405,17 @@ static void tmh_persistent_pool_page_put
EXPORT tmh_client_t *tmh_client_init(cli_id_t cli_id)
{
tmh_client_t *tmh;
@@ -567,17 +294,6 @@
tmh->persistent_pool = xmem_pool_create(name, tmh_persistent_pool_page_get,
tmh_persistent_pool_page_put, PAGE_SIZE, 0, PAGE_SIZE);
if ( tmh->persistent_pool == NULL )
---- a/xen/arch/x86/cpu/mcheck/vmce.c
-+++ b/xen/arch/x86/cpu/mcheck/vmce.c
-@@ -625,7 +625,7 @@ int is_vmce_ready(struct mcinfo_bank *ba
- */
- int unmmap_broken_page(struct domain *d, mfn_t mfn, unsigned long gfn)
- {
-- mfn_t r_mfn;
-+ mfn_t __attribute__((__unused__)) r_mfn;
- struct p2m_domain *p2m;
- p2m_type_t pt;
-
--- a/xen/arch/x86/mm/shadow/multi.c
+++ b/xen/arch/x86/mm/shadow/multi.c
@@ -124,7 +124,7 @@ set_shadow_status(struct vcpu *v, mfn_t
@@ -589,7 +305,7 @@
SHADOW_PRINTK("d=%d, v=%d, gmfn=%05lx, type=%08x, smfn=%05lx\n",
d->domain_id, v->vcpu_id, mfn_x(gmfn),
-@@ -4447,7 +4447,7 @@ sh_update_cr3(struct vcpu *v, int do_loc
+@@ -4438,7 +4438,7 @@ sh_update_cr3(struct vcpu *v, int do_loc
int sh_rm_write_access_from_sl1p(struct vcpu *v, mfn_t gmfn,
mfn_t smfn, unsigned long off)
{
@@ -600,7 +316,7 @@
--- a/xen/arch/x86/domain_build.c
+++ b/xen/arch/x86/domain_build.c
-@@ -378,8 +378,7 @@ int __init construct_dom0(
+@@ -377,8 +377,7 @@ int __init construct_dom0(
return rc;
/* compatibility check */
@@ -612,7 +328,7 @@
case 3: /* x86_32p */
--- a/xen/arch/x86/traps.c
+++ b/xen/arch/x86/traps.c
-@@ -1858,7 +1858,11 @@ static int emulate_privileged_op(struct
+@@ -1910,7 +1910,11 @@ static int emulate_privileged_op(struct
struct vcpu *v = current;
unsigned long *reg, eip = regs->eip;
u8 opcode, modrm_reg = 0, modrm_rm = 0, rep_prefix = 0, lock = 0, rex = 0;
++++++ xen-warnings.diff ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -1,7 +1,7 @@
-Index: xen-4.1.2-testing/tools/misc/miniterm/miniterm.c
+Index: xen-4.2.0-testing/tools/misc/miniterm/miniterm.c
===================================================================
---- xen-4.1.2-testing.orig/tools/misc/miniterm/miniterm.c
-+++ xen-4.1.2-testing/tools/misc/miniterm/miniterm.c
+--- xen-4.2.0-testing.orig/tools/misc/miniterm/miniterm.c
++++ xen-4.2.0-testing/tools/misc/miniterm/miniterm.c
@@ -157,7 +157,7 @@ int main(int argc, char **argv)
case 0:
close(1); /* stdout not needed */
@@ -35,10 +35,10 @@
break;
}
-Index: xen-4.1.2-testing/tools/libxc/xc_dom_elfloader.c
+Index: xen-4.2.0-testing/tools/libxc/xc_dom_elfloader.c
===================================================================
---- xen-4.1.2-testing.orig/tools/libxc/xc_dom_elfloader.c
-+++ xen-4.1.2-testing/tools/libxc/xc_dom_elfloader.c
+--- xen-4.2.0-testing.orig/tools/libxc/xc_dom_elfloader.c
++++ xen-4.2.0-testing/tools/libxc/xc_dom_elfloader.c
@@ -228,8 +228,9 @@ static int xc_dom_load_elf_symtab(struct
if ( load )
@@ -50,24 +50,24 @@
elf_section_start(elf, shdr2),
size);
}
-Index: xen-4.1.2-testing/tools/xenstore/Makefile
+Index: xen-4.2.0-testing/tools/xenstore/Makefile
===================================================================
---- xen-4.1.2-testing.orig/tools/xenstore/Makefile
-+++ xen-4.1.2-testing/tools/xenstore/Makefile
+--- xen-4.2.0-testing.orig/tools/xenstore/Makefile
++++ xen-4.2.0-testing/tools/xenstore/Makefile
@@ -4,7 +4,7 @@ include $(XEN_ROOT)/tools/Rules.mk
MAJOR = 3.0
- MINOR = 0
+ MINOR = 1
-CFLAGS += -Werror
+CFLAGS += -Werror -fno-strict-aliasing
CFLAGS += -I.
CFLAGS += $(CFLAGS_libxenctrl)
-Index: xen-4.1.2-testing/tools/xenstore/xenstored_core.c
+Index: xen-4.2.0-testing/tools/xenstore/xenstored_core.c
===================================================================
---- xen-4.1.2-testing.orig/tools/xenstore/xenstored_core.c
-+++ xen-4.1.2-testing/tools/xenstore/xenstored_core.c
-@@ -77,8 +77,8 @@ static void check_store(void);
+--- xen-4.2.0-testing.orig/tools/xenstore/xenstored_core.c
++++ xen-4.2.0-testing/tools/xenstore/xenstored_core.c
+@@ -79,8 +79,8 @@ static void check_store(void);
int quota_nb_entry_per_domain = 1000;
int quota_nb_watch_per_domain = 128;
@@ -78,7 +78,7 @@
TDB_CONTEXT *tdb_context(struct connection *conn)
{
-@@ -130,7 +130,7 @@ void trace(const char *fmt, ...)
+@@ -134,7 +134,7 @@ void trace(const char *fmt, ...)
va_list arglist;
char *str;
char sbuf[1024];
@@ -87,7 +87,7 @@
if (tracefd < 0)
return;
-@@ -200,7 +200,7 @@ void trace_destroy(const void *data, con
+@@ -204,7 +204,7 @@ void trace_destroy(const void *data, con
static void trigger_reopen_log(int signal __attribute__((unused)))
{
char c = 'A';
@@ -96,7 +96,7 @@
dummy = write(reopen_log_pipe[1], &c, 1);
}
-@@ -1786,10 +1786,10 @@ int main(int argc, char *argv[])
+@@ -1807,10 +1807,10 @@ int main(int argc, char *argv[])
remove_local = false;
break;
case 'S':
@@ -109,11 +109,11 @@
break;
case 'T':
tracefile = optarg;
-Index: xen-4.1.2-testing/tools/xenstore/xenstored_domain.c
+Index: xen-4.2.0-testing/tools/xenstore/xenstored_domain.c
===================================================================
---- xen-4.1.2-testing.orig/tools/xenstore/xenstored_domain.c
-+++ xen-4.1.2-testing/tools/xenstore/xenstored_domain.c
-@@ -213,7 +213,7 @@ void handle_event(void)
+--- xen-4.2.0-testing.orig/tools/xenstore/xenstored_domain.c
++++ xen-4.2.0-testing/tools/xenstore/xenstored_domain.c
+@@ -241,7 +241,7 @@ void handle_event(void)
{
evtchn_port_t port;
@@ -122,7 +122,7 @@
barf_perror("Failed to read from event fd");
if (port == virq_port)
-@@ -562,7 +562,7 @@ static int dom0_init(void)
+@@ -603,7 +603,7 @@ static int dom0_init(void)
struct domain *dom0;
port = xenbus_evtchn();
@@ -131,10 +131,10 @@
return -1;
dom0 = new_domain(NULL, 0, port);
-Index: xen-4.1.2-testing/tools/xenstore/xenstored_transaction.c
+Index: xen-4.2.0-testing/tools/xenstore/xenstored_transaction.c
===================================================================
---- xen-4.1.2-testing.orig/tools/xenstore/xenstored_transaction.c
-+++ xen-4.1.2-testing/tools/xenstore/xenstored_transaction.c
+--- xen-4.2.0-testing.orig/tools/xenstore/xenstored_transaction.c
++++ xen-4.2.0-testing/tools/xenstore/xenstored_transaction.c
@@ -82,7 +82,7 @@ struct transaction
struct list_head changed_domains;
};
@@ -144,10 +144,10 @@
static unsigned int generation;
/* Return tdb context to use for this connection. */
-Index: xen-4.1.2-testing/tools/xenstore/xenstore_client.c
+Index: xen-4.2.0-testing/tools/xenstore/xenstore_client.c
===================================================================
---- xen-4.1.2-testing.orig/tools/xenstore/xenstore_client.c
-+++ xen-4.1.2-testing/tools/xenstore/xenstore_client.c
+--- xen-4.2.0-testing.orig/tools/xenstore/xenstore_client.c
++++ xen-4.2.0-testing/tools/xenstore/xenstore_client.c
@@ -255,7 +255,7 @@ do_chmod(char *path, struct xs_permissio
char **xsval = xs_directory(xsh, xth, path, &xsval_n);
@@ -157,10 +157,10 @@
for (i = 0; i < xsval_n; i++) {
snprintf(buf, MAX_PATH_LEN, "%s/%s", path, xsval[i]);
-Index: xen-4.1.2-testing/tools/libxen/src/xen_common.c
+Index: xen-4.2.0-testing/tools/libxen/src/xen_common.c
===================================================================
---- xen-4.1.2-testing.orig/tools/libxen/src/xen_common.c
-+++ xen-4.1.2-testing/tools/libxen/src/xen_common.c
+--- xen-4.2.0-testing.orig/tools/libxen/src/xen_common.c
++++ xen-4.2.0-testing/tools/libxen/src/xen_common.c
@@ -1057,6 +1057,8 @@ static size_t size_of_member(const abstr
default:
assert(false);
@@ -179,10 +179,10 @@
}
-Index: xen-4.1.2-testing/tools/blktap2/drivers/block-remus.c
+Index: xen-4.2.0-testing/tools/blktap2/drivers/block-remus.c
===================================================================
---- xen-4.1.2-testing.orig/tools/blktap2/drivers/block-remus.c
-+++ xen-4.1.2-testing/tools/blktap2/drivers/block-remus.c
+--- xen-4.2.0-testing.orig/tools/blktap2/drivers/block-remus.c
++++ xen-4.2.0-testing/tools/blktap2/drivers/block-remus.c
@@ -1636,7 +1636,7 @@ static int tdremus_open(td_driver_t *dri
td_flag_t flags)
{
@@ -192,10 +192,10 @@
RPRINTF("opening %s\n", name);
-Index: xen-4.1.2-testing/tools/blktap/lib/blktaplib.h
+Index: xen-4.2.0-testing/tools/blktap/lib/blktaplib.h
===================================================================
---- xen-4.1.2-testing.orig/tools/blktap/lib/blktaplib.h
-+++ xen-4.1.2-testing/tools/blktap/lib/blktaplib.h
+--- xen-4.2.0-testing.orig/tools/blktap/lib/blktaplib.h
++++ xen-4.2.0-testing/tools/blktap/lib/blktaplib.h
@@ -196,6 +196,7 @@ typedef struct msg_pid {
} msg_pid_t;
@@ -204,10 +204,10 @@
#define WRITE 1
/*Control Messages between manager and tapdev*/
-Index: xen-4.1.2-testing/tools/blktap2/include/blktaplib.h
+Index: xen-4.2.0-testing/tools/blktap2/include/blktaplib.h
===================================================================
---- xen-4.1.2-testing.orig/tools/blktap2/include/blktaplib.h
-+++ xen-4.1.2-testing/tools/blktap2/include/blktaplib.h
+--- xen-4.2.0-testing.orig/tools/blktap2/include/blktaplib.h
++++ xen-4.2.0-testing/tools/blktap2/include/blktaplib.h
@@ -190,6 +190,7 @@ typedef struct msg_lock {
} msg_lock_t;
@@ -216,11 +216,11 @@
#define WRITE 1
/*Control Messages between manager and tapdev*/
-Index: xen-4.1.2-testing/tools/blktap/lib/Makefile
+Index: xen-4.2.0-testing/tools/blktap/lib/Makefile
===================================================================
---- xen-4.1.2-testing.orig/tools/blktap/lib/Makefile
-+++ xen-4.1.2-testing/tools/blktap/lib/Makefile
-@@ -28,6 +28,8 @@ OBJS_PIC = $(SRCS:.c=.opic)
+--- xen-4.2.0-testing.orig/tools/blktap/lib/Makefile
++++ xen-4.2.0-testing/tools/blktap/lib/Makefile
+@@ -24,6 +24,8 @@ OBJS_PIC = $(SRCS:.c=.opic)
IBINS :=
LIB = libblktap.a libblktap.so.$(MAJOR).$(MINOR)
@@ -229,7 +229,7 @@
.PHONY: all
all: $(LIB)
-@@ -36,7 +38,8 @@ all: $(LIB)
+@@ -32,7 +34,8 @@ all: $(LIB)
install: all
$(INSTALL_DIR) $(DESTDIR)$(LIBDIR)
$(INSTALL_DIR) $(DESTDIR)$(INCLUDEDIR)
@@ -239,12 +239,12 @@
ln -sf libblktap.so.$(MAJOR).$(MINOR) $(DESTDIR)$(LIBDIR)/libblktap.so.$(MAJOR)
ln -sf libblktap.so.$(MAJOR) $(DESTDIR)$(LIBDIR)/libblktap.so
$(INSTALL_DATA) blktaplib.h $(DESTDIR)$(INCLUDEDIR)
-Index: xen-4.1.2-testing/tools/blktap2/vhd/lib/Makefile
+Index: xen-4.2.0-testing/tools/blktap2/vhd/lib/Makefile
===================================================================
---- xen-4.1.2-testing.orig/tools/blktap2/vhd/lib/Makefile
-+++ xen-4.1.2-testing/tools/blktap2/vhd/lib/Makefile
-@@ -49,6 +49,8 @@ LIB-OBJS = $(patsubst %.c,%.o,$(
- LIB-OBJS += $(LVM-UTIL-OBJ)
+--- xen-4.2.0-testing.orig/tools/blktap2/vhd/lib/Makefile
++++ xen-4.2.0-testing/tools/blktap2/vhd/lib/Makefile
+@@ -52,6 +52,8 @@ LIB-OBJS += $(LVM-UTIL-OBJ)
+ LIB-PICOBJS = $(patsubst %.o,%.opic,$(LIB-OBJS))
LIBVHD = libvhd.a libvhd.so.$(LIBVHD-MAJOR).$(LIBVHD-MINOR)
+LIBVHD_SO = libvhd.so.$(LIBVHD-MAJOR).$(LIBVHD-MINOR)
@@ -252,11 +252,12 @@
all: build
-@@ -63,7 +65,8 @@ libvhd.a: $(LIB-OBJS)
+@@ -68,8 +70,8 @@ libvhd.so.$(LIBVHD-MAJOR).$(LIBVHD-MINOR
install: all
$(INSTALL_DIR) -p $(DESTDIR)$(INST-DIR)
-- $(INSTALL_PROG) $(LIBVHD) $(DESTDIR)$(INST-DIR)
+- $(INSTALL_PROG) libvhd.a $(DESTDIR)$(INST-DIR)
+- $(INSTALL_PROG) libvhd.so.$(LIBVHD-MAJOR).$(LIBVHD-MINOR) $(DESTDIR)$(INST-DIR)
+ $(INSTALL_PROG) $(LIBVHD_SO) $(DESTDIR)$(INST-DIR)
+ $(INSTALL_DATA) $(LIBVHD_AR) $(DESTDIR)$(INST-DIR)
ln -sf libvhd.so.$(LIBVHD-MAJOR).$(LIBVHD-MINOR) $(DESTDIR)$(INST-DIR)/libvhd.so.$(LIBVHD-MAJOR)
++++++ xen-xm-top-needs-root.diff ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -1,10 +1,10 @@
From: Charles Coffing <ccoffing(a)novell.com>
Upstream: no
-Index: xen-4.1.2-testing/tools/python/xen/xm/main.py
+Index: xen-4.2.0-testing/tools/python/xen/xm/main.py
===================================================================
---- xen-4.1.2-testing.orig/tools/python/xen/xm/main.py
-+++ xen-4.1.2-testing/tools/python/xen/xm/main.py
+--- xen-4.2.0-testing.orig/tools/python/xen/xm/main.py
++++ xen-4.2.0-testing/tools/python/xen/xm/main.py
@@ -2201,6 +2201,10 @@ def xm_debug_keys(args):
def xm_top(args):
arg_check(args, "top", 0)
++++++ xen-xmexample-vti.diff ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -1,12 +1,12 @@
-Index: xen-4.1.2-testing/tools/examples/Makefile
+Index: xen-4.2.0-testing/tools/examples/Makefile
===================================================================
---- xen-4.1.2-testing.orig/tools/examples/Makefile
-+++ xen-4.1.2-testing/tools/examples/Makefile
+--- xen-4.2.0-testing.orig/tools/examples/Makefile
++++ xen-4.2.0-testing/tools/examples/Makefile
@@ -18,7 +18,6 @@ XEN_CONFIGS += xmexample.hvm
XEN_CONFIGS += xmexample.hvm-stubdom
XEN_CONFIGS += xmexample.pv-grub
XEN_CONFIGS += xmexample.nbd
-XEN_CONFIGS += xmexample.vti
+ XEN_CONFIGS += xlexample.hvm
+ XEN_CONFIGS += xlexample.pvlinux
XEN_CONFIGS += xend-pci-quirks.sxp
- XEN_CONFIGS += xend-pci-permissive.sxp
- XEN_CONFIGS += xl.conf
++++++ xen-xmexample.diff ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -1,9 +1,9 @@
Change various example paths in the config files to match SUSE.
-Index: xen-4.1.2-testing/tools/examples/xmexample1
+Index: xen-4.2.0-testing/tools/examples/xmexample1
===================================================================
---- xen-4.1.2-testing.orig/tools/examples/xmexample1
-+++ xen-4.1.2-testing/tools/examples/xmexample1
+--- xen-4.2.0-testing.orig/tools/examples/xmexample1
++++ xen-4.2.0-testing/tools/examples/xmexample1
@@ -7,11 +7,17 @@
#============================================================================
@@ -61,10 +61,10 @@
#----------------------------------------------------------------------------
# Configure the behaviour when a domain exits. There are three 'reasons'
-Index: xen-4.1.2-testing/tools/examples/xmexample2
+Index: xen-4.2.0-testing/tools/examples/xmexample2
===================================================================
---- xen-4.1.2-testing.orig/tools/examples/xmexample2
-+++ xen-4.1.2-testing/tools/examples/xmexample2
+--- xen-4.2.0-testing.orig/tools/examples/xmexample2
++++ xen-4.2.0-testing/tools/examples/xmexample2
@@ -35,11 +35,17 @@ xm_vars.var('vmid',
xm_vars.check()
@@ -122,10 +122,10 @@
#----------------------------------------------------------------------------
# Configure the behaviour when a domain exits. There are three 'reasons'
-Index: xen-4.1.2-testing/tools/examples/xmexample3
+Index: xen-4.2.0-testing/tools/examples/xmexample3
===================================================================
---- xen-4.1.2-testing.orig/tools/examples/xmexample3
-+++ xen-4.1.2-testing/tools/examples/xmexample3
+--- xen-4.2.0-testing.orig/tools/examples/xmexample3
++++ xen-4.2.0-testing/tools/examples/xmexample3
@@ -35,11 +35,17 @@ xm_vars.var('vmid',
xm_vars.check()
@@ -148,10 +148,10 @@
# The domain build function. Default is 'linux'.
#builder='linux'
-Index: xen-4.1.2-testing/tools/examples/xmexample.hvm
+Index: xen-4.2.0-testing/tools/examples/xmexample.hvm
===================================================================
---- xen-4.1.2-testing.orig/tools/examples/xmexample.hvm
-+++ xen-4.1.2-testing/tools/examples/xmexample.hvm
+--- xen-4.2.0-testing.orig/tools/examples/xmexample.hvm
++++ xen-4.2.0-testing/tools/examples/xmexample.hvm
@@ -64,11 +64,26 @@ name = "ExampleHVMDomain"
#cpus = "0-3,5,^1" # all vcpus run on cpus 0,2,3,5
#cpus = ["2", "3"] # VCPU0 runs on CPU2, VCPU1 runs on CPU3
@@ -193,10 +193,10 @@
#----------------------------------------------------------------------------
# Configure the behaviour when a domain exits. There are three 'reasons'
-Index: xen-4.1.2-testing/docs/man/xmdomain.cfg.pod.5
+Index: xen-4.2.0-testing/docs/man/xmdomain.cfg.pod.5
===================================================================
---- xen-4.1.2-testing.orig/docs/man/xmdomain.cfg.pod.5
-+++ xen-4.1.2-testing/docs/man/xmdomain.cfg.pod.5
+--- xen-4.2.0-testing.orig/docs/man/xmdomain.cfg.pod.5
++++ xen-4.2.0-testing/docs/man/xmdomain.cfg.pod.5
@@ -38,13 +38,13 @@ file.
The kernel image for the domain. The format of the parameter is the
@@ -232,11 +232,11 @@
at hda1, which is the root filesystem.
=item I<NFS Root>
-Index: xen-4.1.2-testing/docs/man/xm.pod.1
+Index: xen-4.2.0-testing/docs/man/xm.pod.1
===================================================================
---- xen-4.1.2-testing.orig/docs/man/xm.pod.1
-+++ xen-4.1.2-testing/docs/man/xm.pod.1
-@@ -161,8 +161,8 @@ soon as it is run.
+--- xen-4.2.0-testing.orig/docs/man/xm.pod.1
++++ xen-4.2.0-testing/docs/man/xm.pod.1
+@@ -165,8 +165,8 @@ soon as it is run.
=item I<without config file>
@@ -247,10 +247,10 @@
name=ramdisk vif='' vcpus=1 \
memory=64 root=/dev/ram0
-Index: xen-4.1.2-testing/tools/examples/xmexample.hvm-stubdom
+Index: xen-4.2.0-testing/tools/examples/xmexample.hvm-stubdom
===================================================================
---- xen-4.1.2-testing.orig/tools/examples/xmexample.hvm-stubdom
-+++ xen-4.1.2-testing/tools/examples/xmexample.hvm-stubdom
+--- xen-4.2.0-testing.orig/tools/examples/xmexample.hvm-stubdom
++++ xen-4.2.0-testing/tools/examples/xmexample.hvm-stubdom
@@ -55,11 +55,26 @@ name = "xmexample.hvm"
#cpus = "0-3,5,^1" # all vcpus run on cpus 0,2,3,5
#cpus = ["2", "3"] # VCPU0 runs on CPU2, VCPU1 runs on CPU3
@@ -283,10 +283,10 @@
#----------------------------------------------------------------------------
# Define the disk devices you want the domain to have access to, and
-Index: xen-4.1.2-testing/tools/examples/xmexample.pv-grub
+Index: xen-4.2.0-testing/tools/examples/xmexample.pv-grub
===================================================================
---- xen-4.1.2-testing.orig/tools/examples/xmexample.pv-grub
-+++ xen-4.1.2-testing/tools/examples/xmexample.pv-grub
+--- xen-4.2.0-testing.orig/tools/examples/xmexample.pv-grub
++++ xen-4.2.0-testing/tools/examples/xmexample.pv-grub
@@ -53,11 +53,11 @@ name = "ExampleDomain"
#
# or optionally override backend, bridge, ip, mac, script, type, or vifname:
@@ -301,10 +301,10 @@
vif = [ '' ]
-Index: xen-4.1.2-testing/tools/examples/xmexample.vti
+Index: xen-4.2.0-testing/tools/examples/xmexample.vti
===================================================================
---- xen-4.1.2-testing.orig/tools/examples/xmexample.vti
-+++ xen-4.1.2-testing/tools/examples/xmexample.vti
+--- xen-4.2.0-testing.orig/tools/examples/xmexample.vti
++++ xen-4.2.0-testing/tools/examples/xmexample.vti
@@ -40,11 +40,26 @@ name = "ExampleVTIDomain"
# In Windows OS, smaller size shows better performance.
#vhpt = 23
++++++ xen.no-default-runlevel-4.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -3,69 +3,13 @@
He is responsible to create all required symlinks in this private runlevel.
---
- tools/hotplug/Linux/init.d/xen-watchdog | 2 +-
- tools/hotplug/Linux/init.d/xencommons | 2 +-
- tools/hotplug/Linux/init.d/xend | 2 +-
- tools/hotplug/Linux/init.d/xendomains | 2 +-
tools/xenballoon/xenballoond.init | 2 +-
- 5 files changed, 5 insertions(+), 5 deletions(-)
+ 1 files changed, 1 insertions(+), 1 deletions(-)
-Index: xen-4.1.2-testing/tools/hotplug/Linux/init.d/xen-watchdog
+Index: xen-4.2.0-testing/tools/xenballoon/xenballoond.init
===================================================================
---- xen-4.1.2-testing.orig/tools/hotplug/Linux/init.d/xen-watchdog
-+++ xen-4.1.2-testing/tools/hotplug/Linux/init.d/xen-watchdog
-@@ -10,7 +10,7 @@
- # Should-Start: xend
- # Required-Stop: $syslog $remote_fs
- # Should-Stop: xend
--# Default-Start: 2 3 4 5
-+# Default-Start: 2 3 5
- # Default-Stop: 0 1 6
- # Short-Description: Start/stop xen-watchdog
- # Description: Run domain watchdog daemon.
-Index: xen-4.1.2-testing/tools/hotplug/Linux/init.d/xencommons
-===================================================================
---- xen-4.1.2-testing.orig/tools/hotplug/Linux/init.d/xencommons
-+++ xen-4.1.2-testing/tools/hotplug/Linux/init.d/xencommons
-@@ -12,7 +12,7 @@
- # Should-Start:
- # Required-Stop: $syslog $remote_fs
- # Should-Stop:
--# Default-Start: 2 3 4 5
-+# Default-Start: 2 3 5
- # Default-Stop: 0 1 6
- # Short-Description: Start/stop xenstored and xenconsoled
- # Description: Starts and stops the daemons neeeded for xl/xend
-Index: xen-4.1.2-testing/tools/hotplug/Linux/init.d/xend
-===================================================================
---- xen-4.1.2-testing.orig/tools/hotplug/Linux/init.d/xend
-+++ xen-4.1.2-testing/tools/hotplug/Linux/init.d/xend
-@@ -12,7 +12,7 @@
- # Should-Start:
- # Required-Stop: $syslog $remote_fs xenstored xenconsoled
- # Should-Stop:
--# Default-Start: 2 3 4 5
-+# Default-Start: 2 3 5
- # Default-Stop: 0 1 6
- # Short-Description: Start/stop xend
- # Description: Starts and stops the Xen control daemon.
-Index: xen-4.1.2-testing/tools/hotplug/Linux/init.d/xendomains
-===================================================================
---- xen-4.1.2-testing.orig/tools/hotplug/Linux/init.d/xendomains
-+++ xen-4.1.2-testing/tools/hotplug/Linux/init.d/xendomains
-@@ -20,7 +20,7 @@
- # Should-Start: xend
- # Required-Stop: $syslog $remote_fs xenstored xenconsoled
- # Should-Stop: xend
--# Default-Start: 2 3 4 5
-+# Default-Start: 2 3 5
- # Default-Stop: 0 1 6
- # Short-Description: Start/stop secondary xen domains
- # Description: Start / stop domains automatically when domain 0
-Index: xen-4.1.2-testing/tools/xenballoon/xenballoond.init
-===================================================================
---- xen-4.1.2-testing.orig/tools/xenballoon/xenballoond.init
-+++ xen-4.1.2-testing/tools/xenballoon/xenballoond.init
+--- xen-4.2.0-testing.orig/tools/xenballoon/xenballoond.init
++++ xen-4.2.0-testing/tools/xenballoon/xenballoond.init
@@ -14,7 +14,7 @@
# Should-Start:
# Required-Stop: $syslog $remote_fs
++++++ xen.sles11sp1.fate311487.xen_platform_pci.dmistring.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -9,10 +9,10 @@
unmodified_drivers/linux-2.6/platform-pci/platform-pci.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
-Index: xen-4.1.3-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
+Index: xen-4.2.0-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
===================================================================
---- xen-4.1.3-testing.orig/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
-+++ xen-4.1.3-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
+--- xen-4.2.0-testing.orig/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
++++ xen-4.2.0-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
@@ -27,6 +27,7 @@
#include <linux/pci.h>
#include <linux/init.h>
++++++ xenalyze.gcc46.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -18,10 +18,10 @@
xenalyze.hg/xenalyze.c | 21 ---------------------
1 file changed, 21 deletions(-)
-Index: xen-4.1.2-testing/xenalyze.hg/xenalyze.c
+Index: xen-4.2.0-testing/xenalyze.hg/xenalyze.c
===================================================================
---- xen-4.1.2-testing.orig/xenalyze.hg/xenalyze.c
-+++ xen-4.1.2-testing/xenalyze.hg/xenalyze.c
+--- xen-4.2.0-testing.orig/xenalyze.hg/xenalyze.c
++++ xen-4.2.0-testing/xenalyze.hg/xenalyze.c
@@ -2016,8 +2016,6 @@ float weighted_percentile(float * A, /*
float X, t1;
unsigned long long t2;
++++++ xenapi-console-protocol.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -1,8 +1,8 @@
-Index: xen-4.1.2-testing/tools/python/xen/xend/XendDomainInfo.py
+Index: xen-4.2.0-testing/tools/python/xen/xend/XendDomainInfo.py
===================================================================
---- xen-4.1.2-testing.orig/tools/python/xen/xend/XendDomainInfo.py
-+++ xen-4.1.2-testing/tools/python/xen/xend/XendDomainInfo.py
-@@ -3935,6 +3935,14 @@ class XendDomainInfo:
+--- xen-4.2.0-testing.orig/tools/python/xen/xend/XendDomainInfo.py
++++ xen-4.2.0-testing/tools/python/xen/xend/XendDomainInfo.py
+@@ -3940,6 +3940,14 @@ class XendDomainInfo:
if not config.has_key('backend'):
config['backend'] = "00000000-0000-0000-0000-000000000000"
++++++ xencommons-proc-xen.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -15,11 +15,11 @@
tools/hotplug/Linux/init.d/xencommons | 20 ++++++++++++++++----
1 file changed, 16 insertions(+), 4 deletions(-)
-Index: xen-4.1.3-testing/tools/hotplug/Linux/init.d/xencommons
+Index: xen-4.2.0-testing/tools/hotplug/Linux/init.d/xencommons
===================================================================
---- xen-4.1.3-testing.orig/tools/hotplug/Linux/init.d/xencommons
-+++ xen-4.1.3-testing/tools/hotplug/Linux/init.d/xencommons
-@@ -27,27 +27,30 @@ fi
+--- xen-4.2.0-testing.orig/tools/hotplug/Linux/init.d/xencommons
++++ xen-4.2.0-testing/tools/hotplug/Linux/init.d/xencommons
+@@ -27,6 +27,7 @@ fi
test -f $xencommons_config/xencommons && . $xencommons_config/xencommons
XENCONSOLED_PIDFILE=/var/run/xenconsoled.pid
@@ -27,35 +27,32 @@
shopt -s extglob
# not running in Xen dom0 or domU
- if ! test -d /proc/xen ; then
-- exit 0
-+ exit 0
+@@ -34,10 +35,15 @@ if ! test -d /proc/xen ; then
+ exit 0
fi
++# not running in Xen dom0 or domU
++if ! test -d /proc/xen ; then
++ exit 0
++fi
++
# mount xenfs in dom0 or domU with a pv_ops kernel
if test "x$1" = xstart && \
- ! test -f /proc/xen/capabilities && \
- ! grep '^xenfs ' /proc/mounts >/dev/null;
-+ ! test -f $XEN_CAPABILITIES && \
-+ ! grep -q '^xenfs ' /proc/mounts ;
++ ! test -f $XEN_CAPABILITIES && \
++ ! grep -q '^xenfs ' /proc/mounts ;
then
-- mount -t xenfs xenfs /proc/xen
-+ mount -t xenfs xenfs /proc/xen
+ mount -t xenfs xenfs /proc/xen
fi
-
+@@ -45,8 +51,8 @@ fi
# run this script only in dom0:
--# no capabilities file in xenlinux domU kernel
--# empty capabilities file in pv_ops domU kernel
+ # no capabilities file in xenlinux domU kernel
+ # empty capabilities file in pv_ops domU kernel
-if test -f /proc/xen/capabilities && \
- ! grep -q "control_d" /proc/xen/capabilities ; then
-- exit 0
-+# no capabilities file in xenlinux kernel
-+if ! test -f $XEN_CAPABILITIES ; then
-+ exit 0
-+fi
-+# empty capabilities file in pv_ops kernel
-+if ! grep -q "control_d" $XEN_CAPABILITIES ; then
-+ exit 0
++if test -f $XEN_CAPABILITIES && \
++ ! grep -q "control_d" $XEN_CAPABILITIES ; then
+ exit 0
fi
- do_start () {
++++++ xenconsole-no-multiple-connections.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -1,7 +1,7 @@
-Index: xen-4.1.2-testing/tools/console/client/main.c
+Index: xen-4.2.0-testing/tools/console/client/main.c
===================================================================
---- xen-4.1.2-testing.orig/tools/console/client/main.c
-+++ xen-4.1.2-testing/tools/console/client/main.c
+--- xen-4.2.0-testing.orig/tools/console/client/main.c
++++ xen-4.2.0-testing/tools/console/client/main.c
@@ -96,6 +96,7 @@ static int get_pty_fd(struct xs_handle *
* Assumes there is already a watch set in the store for this path. */
{
++++++ xend-config-enable-dump-comment.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -4,10 +4,10 @@
tools/examples/xend-config.sxp | 3 +++
1 file changed, 3 insertions(+)
-Index: xen-4.1.2-testing/tools/examples/xend-config.sxp
+Index: xen-4.2.0-testing/tools/examples/xend-config.sxp
===================================================================
---- xen-4.1.2-testing.orig/tools/examples/xend-config.sxp
-+++ xen-4.1.2-testing/tools/examples/xend-config.sxp
+--- xen-4.2.0-testing.orig/tools/examples/xend-config.sxp
++++ xen-4.2.0-testing/tools/examples/xend-config.sxp
@@ -250,6 +250,9 @@
(dom0-cpus 0)
++++++ xend-config.diff ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -1,7 +1,7 @@
-Index: xen-4.1.2-testing/tools/hotplug/Linux/init.d/sysconfig.xendomains
+Index: xen-4.2.0-testing/tools/hotplug/Linux/init.d/sysconfig.xendomains
===================================================================
---- xen-4.1.2-testing.orig/tools/hotplug/Linux/init.d/sysconfig.xendomains
-+++ xen-4.1.2-testing/tools/hotplug/Linux/init.d/sysconfig.xendomains
+--- xen-4.2.0-testing.orig/tools/hotplug/Linux/init.d/sysconfig.xendomains
++++ xen-4.2.0-testing/tools/hotplug/Linux/init.d/sysconfig.xendomains
@@ -1,4 +1,4 @@
-## Path: System/xen
+## Path: System/Virtualization
@@ -16,21 +16,10 @@
#
XENDOMAINS_AUTO=/etc/xen/auto
-@@ -109,9 +108,8 @@ XENDOMAINS_AUTO=/etc/xen/auto
- # files in XENDOMAINS_AUTO will be treated according to XENDOMAINS_SYSRQ,
- # XENDOMAINS_MIGRATE, XENDOMAINS_SAVE, XENDMAINS_SHUTDOWN; otherwise
- # all running domains will be.
--# Note that the name matching is somewhat fuzzy.
- #
--XENDOMAINS_AUTO_ONLY=false
-+XENDOMAINS_AUTO_ONLY=true
-
- ## Type: integer
- ## Default: 300
-Index: xen-4.1.2-testing/tools/examples/xend-config.sxp
+Index: xen-4.2.0-testing/tools/examples/xend-config.sxp
===================================================================
---- xen-4.1.2-testing.orig/tools/examples/xend-config.sxp
-+++ xen-4.1.2-testing/tools/examples/xend-config.sxp
+--- xen-4.2.0-testing.orig/tools/examples/xend-config.sxp
++++ xen-4.2.0-testing/tools/examples/xend-config.sxp
@@ -58,11 +58,12 @@
++++++ xend-console-port-restore.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -3,11 +3,11 @@
From: Chunyan Liu <cyliu(a)novell.com>
-Index: xen-4.1.2-testing/tools/python/xen/xend/XendCheckpoint.py
+Index: xen-4.2.0-testing/tools/python/xen/xend/XendCheckpoint.py
===================================================================
---- xen-4.1.2-testing.orig/tools/python/xen/xend/XendCheckpoint.py
-+++ xen-4.1.2-testing/tools/python/xen/xend/XendCheckpoint.py
-@@ -405,8 +405,7 @@ def restore(xd, fd, dominfo = None, paus
+--- xen-4.2.0-testing.orig/tools/python/xen/xend/XendCheckpoint.py
++++ xen-4.2.0-testing/tools/python/xen/xend/XendCheckpoint.py
+@@ -329,8 +329,7 @@ def restore(xd, fd, dominfo = None, paus
restore_image.setCpuid()
# xc_restore will wait for source to close connection
@@ -15,13 +15,13 @@
- dominfo.completeRestore(handler.store_mfn, handler.console_mfn)
+ dominfo.completeRestore(handler.store_mfn, handler.console_mfn, console_port)
- wait_devs(dominfo)
-
-Index: xen-4.1.2-testing/tools/python/xen/xend/XendDomainInfo.py
+ #
+ # We shouldn't hold the domains_lock over a waitForDevices
+Index: xen-4.2.0-testing/tools/python/xen/xend/XendDomainInfo.py
===================================================================
---- xen-4.1.2-testing.orig/tools/python/xen/xend/XendDomainInfo.py
-+++ xen-4.1.2-testing/tools/python/xen/xend/XendDomainInfo.py
-@@ -3055,7 +3055,7 @@ class XendDomainInfo:
+--- xen-4.2.0-testing.orig/tools/python/xen/xend/XendDomainInfo.py
++++ xen-4.2.0-testing/tools/python/xen/xend/XendDomainInfo.py
+@@ -3062,7 +3062,7 @@ class XendDomainInfo:
# TODO: recategorise - called from XendCheckpoint
#
@@ -30,10 +30,10 @@
log.debug("XendDomainInfo.completeRestore")
-@@ -3066,6 +3066,7 @@ class XendDomainInfo:
+@@ -3073,6 +3073,7 @@ class XendDomainInfo:
self.image = image.create(self, self.info)
if self.image:
- self._createDevices(True)
+ self.image.createDeviceModel(True)
+ self.console_port = console_port
self._storeDomDetails()
self._registerWatches()
++++++ xend-core-dump-loc.diff ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -1,7 +1,7 @@
-Index: xen-4.1.2-testing/tools/python/xen/xend/XendDomainInfo.py
+Index: xen-4.2.0-testing/tools/python/xen/xend/XendDomainInfo.py
===================================================================
---- xen-4.1.2-testing.orig/tools/python/xen/xend/XendDomainInfo.py
-+++ xen-4.1.2-testing/tools/python/xen/xend/XendDomainInfo.py
+--- xen-4.2.0-testing.orig/tools/python/xen/xend/XendDomainInfo.py
++++ xen-4.2.0-testing/tools/python/xen/xend/XendDomainInfo.py
@@ -2304,7 +2304,7 @@ class XendDomainInfo:
# To prohibit directory traversal
based_name = os.path.basename(self.info['name_label'])
++++++ xend-cpuid.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -9,11 +9,11 @@
This patch skips the first conversion, and uses only the custom
cpuid{_check} conversion methods called later. It is not pretty, but
is the least invasive fix in this complex code.
-Index: xen-4.1.2-testing/tools/python/xen/xend/XendConfig.py
+Index: xen-4.2.0-testing/tools/python/xen/xend/XendConfig.py
===================================================================
---- xen-4.1.2-testing.orig/tools/python/xen/xend/XendConfig.py
-+++ xen-4.1.2-testing/tools/python/xen/xend/XendConfig.py
-@@ -1125,6 +1125,10 @@ class XendConfig(dict):
+--- xen-4.2.0-testing.orig/tools/python/xen/xend/XendConfig.py
++++ xen-4.2.0-testing/tools/python/xen/xend/XendConfig.py
+@@ -1126,6 +1126,10 @@ class XendConfig(dict):
else:
for name, typ in XENAPI_CFG_TYPES.items():
if name in self and self[name] not in (None, []):
++++++ xend-devid-or-name.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -11,10 +11,10 @@
Signed-off-by: Jim Fehlig <jfehlig(a)novell.com>
-Index: xen-4.1.2-testing/tools/python/xen/xend/XendDomainInfo.py
+Index: xen-4.2.0-testing/tools/python/xen/xend/XendDomainInfo.py
===================================================================
---- xen-4.1.2-testing.orig/tools/python/xen/xend/XendDomainInfo.py
-+++ xen-4.1.2-testing/tools/python/xen/xend/XendDomainInfo.py
+--- xen-4.2.0-testing.orig/tools/python/xen/xend/XendDomainInfo.py
++++ xen-4.2.0-testing/tools/python/xen/xend/XendDomainInfo.py
@@ -1203,6 +1203,9 @@ class XendDomainInfo:
except ValueError:
pass
++++++ xend-disable-internal-logrotate.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -5,10 +5,10 @@
tools/python/xen/xend/XendLogging.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-Index: xen-4.1.2-testing/tools/python/xen/xend/XendLogging.py
+Index: xen-4.2.0-testing/tools/python/xen/xend/XendLogging.py
===================================================================
---- xen-4.1.2-testing.orig/tools/python/xen/xend/XendLogging.py
-+++ xen-4.1.2-testing/tools/python/xen/xend/XendLogging.py
+--- xen-4.2.0-testing.orig/tools/python/xen/xend/XendLogging.py
++++ xen-4.2.0-testing/tools/python/xen/xend/XendLogging.py
@@ -76,7 +76,7 @@ if 'TRACE' not in logging.__dict__:
log = logging.getLogger("xend")
++++++ xend-domain-lock-sfex.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -1,7 +1,7 @@
-Index: xen-4.1.2-testing/tools/examples/xend-config.sxp
+Index: xen-4.2.0-testing/tools/examples/xend-config.sxp
===================================================================
---- xen-4.1.2-testing.orig/tools/examples/xend-config.sxp
-+++ xen-4.1.2-testing/tools/examples/xend-config.sxp
+--- xen-4.2.0-testing.orig/tools/examples/xend-config.sxp
++++ xen-4.2.0-testing/tools/examples/xend-config.sxp
@@ -357,7 +357,7 @@
# path /<xend-domain-lock-path>/<vm-uuid>
# Return 0 on success, non-zero on error.
@@ -23,10 +23,10 @@
# If we have a very big scsi device configuration, start of xend is slow,
# because xend scans all the device paths to build its internal PSCSI device
# list. If we need only a few devices for assigning to a guest, we can reduce
-Index: xen-4.1.2-testing/tools/hotplug/Linux/Makefile
+Index: xen-4.2.0-testing/tools/hotplug/Linux/Makefile
===================================================================
---- xen-4.1.2-testing.orig/tools/hotplug/Linux/Makefile
-+++ xen-4.1.2-testing/tools/hotplug/Linux/Makefile
+--- xen-4.2.0-testing.orig/tools/hotplug/Linux/Makefile
++++ xen-4.2.0-testing/tools/hotplug/Linux/Makefile
@@ -23,6 +23,7 @@ XEN_SCRIPTS += xen-hotplug-cleanup
XEN_SCRIPTS += external-device-migrate
XEN_SCRIPTS += vscsi
@@ -35,10 +35,10 @@
XEN_SCRIPT_DATA = xen-script-common.sh locking.sh logging.sh
XEN_SCRIPT_DATA += xen-hotplug-common.sh xen-network-common.sh vif-common.sh
XEN_SCRIPT_DATA += block-common.sh vtpm-common.sh vtpm-hotplug-common.sh
-Index: xen-4.1.2-testing/tools/hotplug/Linux/domain-lock
+Index: xen-4.2.0-testing/tools/hotplug/Linux/domain-lock
===================================================================
---- xen-4.1.2-testing.orig/tools/hotplug/Linux/domain-lock
-+++ xen-4.1.2-testing/tools/hotplug/Linux/domain-lock
+--- xen-4.2.0-testing.orig/tools/hotplug/Linux/domain-lock
++++ xen-4.2.0-testing/tools/hotplug/Linux/domain-lock
@@ -4,7 +4,7 @@ basedir=$(dirname "$0")
usage() {
@@ -48,10 +48,10 @@
echo ""
echo "-l lock"
echo "-u unlock"
-Index: xen-4.1.2-testing/tools/hotplug/Linux/domain-lock-sfex
+Index: xen-4.2.0-testing/tools/hotplug/Linux/domain-lock-sfex
===================================================================
--- /dev/null
-+++ xen-4.1.2-testing/tools/hotplug/Linux/domain-lock-sfex
++++ xen-4.2.0-testing/tools/hotplug/Linux/domain-lock-sfex
@@ -0,0 +1,166 @@
+#!/bin/bash
+
@@ -219,11 +219,11 @@
+;;
+esac
+
-Index: xen-4.1.2-testing/tools/python/xen/xend/XendDomainInfo.py
+Index: xen-4.2.0-testing/tools/python/xen/xend/XendDomainInfo.py
===================================================================
---- xen-4.1.2-testing.orig/tools/python/xen/xend/XendDomainInfo.py
-+++ xen-4.1.2-testing/tools/python/xen/xend/XendDomainInfo.py
-@@ -4519,8 +4519,14 @@ class XendDomainInfo:
+--- xen-4.2.0-testing.orig/tools/python/xen/xend/XendDomainInfo.py
++++ xen-4.2.0-testing/tools/python/xen/xend/XendDomainInfo.py
+@@ -4526,8 +4526,14 @@ class XendDomainInfo:
# Return name of host contained in lock file.
def get_lock_host(self, path):
@@ -240,7 +240,7 @@
hostname = "unknown"
try:
-@@ -4542,6 +4548,16 @@ class XendDomainInfo:
+@@ -4549,6 +4555,16 @@ class XendDomainInfo:
path = xoptions.get_xend_domain_lock_path()
path = os.path.join(path, self.get_uuid())
@@ -257,7 +257,7 @@
try:
if not os.path.exists(path):
mkdir.parents(path, stat.S_IRWXU)
-@@ -4549,12 +4565,7 @@ class XendDomainInfo:
+@@ -4556,12 +4572,7 @@ class XendDomainInfo:
log.exception("%s could not be created." % path)
raise XendError("%s could not be created." % path)
@@ -271,7 +271,7 @@
if status != 0:
log.debug("Failed to aqcuire lock: status = %d" % status)
raise XendError("The VM is locked and appears to be running on host %s." % self.get_lock_host(path))
-@@ -4571,12 +4582,18 @@ class XendDomainInfo:
+@@ -4578,12 +4589,18 @@ class XendDomainInfo:
path = xoptions.get_xend_domain_lock_path()
path = os.path.join(path, self.get_uuid())
@@ -296,10 +296,10 @@
if status != 0:
log.exception("Failed to release lock: status = %s" % status)
try:
-Index: xen-4.1.2-testing/tools/python/xen/xend/XendNode.py
+Index: xen-4.2.0-testing/tools/python/xen/xend/XendNode.py
===================================================================
---- xen-4.1.2-testing.orig/tools/python/xen/xend/XendNode.py
-+++ xen-4.1.2-testing/tools/python/xen/xend/XendNode.py
+--- xen-4.2.0-testing.orig/tools/python/xen/xend/XendNode.py
++++ xen-4.2.0-testing/tools/python/xen/xend/XendNode.py
@@ -162,6 +162,7 @@ class XendNode:
self._init_cpu_pools()
@@ -326,10 +326,10 @@
def add_network(self, interface):
# TODO
log.debug("add_network(): Not implemented.")
-Index: xen-4.1.2-testing/tools/python/xen/xend/XendOptions.py
+Index: xen-4.2.0-testing/tools/python/xen/xend/XendOptions.py
===================================================================
---- xen-4.1.2-testing.orig/tools/python/xen/xend/XendOptions.py
-+++ xen-4.1.2-testing/tools/python/xen/xend/XendOptions.py
+--- xen-4.2.0-testing.orig/tools/python/xen/xend/XendOptions.py
++++ xen-4.2.0-testing/tools/python/xen/xend/XendOptions.py
@@ -164,6 +164,9 @@ class XendOptions:
"""Default script to acquire/release domain lock"""
xend_domain_lock_utility = auxbin.scripts_dir() + "/domain-lock"
++++++ xend-domain-lock.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -8,10 +8,10 @@
tools/python/xen/xend/XendOptions.py | 29 +++++++++++
7 files changed, 290 insertions(+)
-Index: xen-4.1.2-testing/tools/examples/xend-config.sxp
+Index: xen-4.2.0-testing/tools/examples/xend-config.sxp
===================================================================
---- xen-4.1.2-testing.orig/tools/examples/xend-config.sxp
-+++ xen-4.1.2-testing/tools/examples/xend-config.sxp
+--- xen-4.2.0-testing.orig/tools/examples/xend-config.sxp
++++ xen-4.2.0-testing/tools/examples/xend-config.sxp
@@ -324,6 +324,65 @@
# device assignment could really work properly even after we do this.
#(pci-passthrough-strict-check yes)
@@ -78,10 +78,10 @@
# If we have a very big scsi device configuration, start of xend is slow,
# because xend scans all the device paths to build its internal PSCSI device
# list. If we need only a few devices for assigning to a guest, we can reduce
-Index: xen-4.1.2-testing/tools/hotplug/Linux/Makefile
+Index: xen-4.2.0-testing/tools/hotplug/Linux/Makefile
===================================================================
---- xen-4.1.2-testing.orig/tools/hotplug/Linux/Makefile
-+++ xen-4.1.2-testing/tools/hotplug/Linux/Makefile
+--- xen-4.2.0-testing.orig/tools/hotplug/Linux/Makefile
++++ xen-4.2.0-testing/tools/hotplug/Linux/Makefile
@@ -22,6 +22,7 @@ XEN_SCRIPTS += vtpm vtpm-delete
XEN_SCRIPTS += xen-hotplug-cleanup
XEN_SCRIPTS += external-device-migrate
@@ -90,10 +90,10 @@
XEN_SCRIPT_DATA = xen-script-common.sh locking.sh logging.sh
XEN_SCRIPT_DATA += xen-hotplug-common.sh xen-network-common.sh vif-common.sh
XEN_SCRIPT_DATA += block-common.sh vtpm-common.sh vtpm-hotplug-common.sh
-Index: xen-4.1.2-testing/tools/hotplug/Linux/domain-lock
+Index: xen-4.2.0-testing/tools/hotplug/Linux/domain-lock
===================================================================
--- /dev/null
-+++ xen-4.1.2-testing/tools/hotplug/Linux/domain-lock
++++ xen-4.2.0-testing/tools/hotplug/Linux/domain-lock
@@ -0,0 +1,83 @@
+#!/bin/bash
+
@@ -178,10 +178,10 @@
+ get_status $vm_path
+ ;;
+esac
-Index: xen-4.1.2-testing/tools/hotplug/Linux/vm-monitor
+Index: xen-4.2.0-testing/tools/hotplug/Linux/vm-monitor
===================================================================
--- /dev/null
-+++ xen-4.1.2-testing/tools/hotplug/Linux/vm-monitor
++++ xen-4.2.0-testing/tools/hotplug/Linux/vm-monitor
@@ -0,0 +1,41 @@
+#!/bin/bash
+
@@ -224,20 +224,20 @@
+elif [ $0 = "$basedir/vm-monitor" ]; then
+ monitor $*
+fi
-Index: xen-4.1.2-testing/tools/python/xen/xend/XendCheckpoint.py
+Index: xen-4.2.0-testing/tools/python/xen/xend/XendCheckpoint.py
===================================================================
---- xen-4.1.2-testing.orig/tools/python/xen/xend/XendCheckpoint.py
-+++ xen-4.1.2-testing/tools/python/xen/xend/XendCheckpoint.py
-@@ -133,6 +133,8 @@ def save(fd, dominfo, network, live, dst
- dominfo.shutdown('suspend')
- dominfo.waitForSuspend()
- if line in ('suspend', 'suspended'):
-+ if checkpoint == False:
-+ dominfo.release_running_lock(domain_name)
- dominfo.migrateDevices(network, dst, DEV_MIGRATE_STEP2,
- domain_name)
- log.info("Domain %d suspended.", dominfo.getDomid())
-@@ -412,6 +414,7 @@ def restore(xd, fd, dominfo = None, paus
+--- xen-4.2.0-testing.orig/tools/python/xen/xend/XendCheckpoint.py
++++ xen-4.2.0-testing/tools/python/xen/xend/XendCheckpoint.py
+@@ -130,6 +130,8 @@ def save(fd, dominfo, network, live, dst
+ dominfo.shutdown('suspend')
+ dominfo.waitForSuspend()
+ if line in ('suspend', 'suspended'):
++ if checkpoint == False:
++ dominfo.release_running_lock(domain_name)
+ dominfo.migrateDevices(network, dst, DEV_MIGRATE_STEP2,
+ domain_name)
+ log.info("Domain %d suspended.", dominfo.getDomid())
+@@ -353,6 +355,7 @@ def restore(xd, fd, dominfo = None, paus
if not paused:
dominfo.unpause()
@@ -245,10 +245,10 @@
return dominfo
except Exception, exn:
dominfo.destroy()
-Index: xen-4.1.2-testing/tools/python/xen/xend/XendDomainInfo.py
+Index: xen-4.2.0-testing/tools/python/xen/xend/XendDomainInfo.py
===================================================================
---- xen-4.1.2-testing.orig/tools/python/xen/xend/XendDomainInfo.py
-+++ xen-4.1.2-testing/tools/python/xen/xend/XendDomainInfo.py
+--- xen-4.2.0-testing.orig/tools/python/xen/xend/XendDomainInfo.py
++++ xen-4.2.0-testing/tools/python/xen/xend/XendDomainInfo.py
@@ -470,6 +470,7 @@ class XendDomainInfo:
if self._stateGet() in (XEN_API_VM_POWER_STATE_HALTED, XEN_API_VM_POWER_STATE_SUSPENDED, XEN_API_VM_POWER_STATE_CRASHED):
@@ -257,7 +257,7 @@
XendTask.log_progress(0, 30, self._constructDomain)
XendTask.log_progress(31, 60, self._initDomain)
-@@ -3003,6 +3004,11 @@ class XendDomainInfo:
+@@ -3010,6 +3011,11 @@ class XendDomainInfo:
self._stateSet(DOM_STATE_HALTED)
self.domid = None # Do not push into _stateSet()!
@@ -269,7 +269,7 @@
finally:
self.refresh_shutdown_lock.release()
-@@ -4511,6 +4517,74 @@ class XendDomainInfo:
+@@ -4518,6 +4524,74 @@ class XendDomainInfo:
def has_device(self, dev_class, dev_uuid):
return (dev_uuid in self.info['%s_refs' % dev_class.lower()])
@@ -344,10 +344,10 @@
def __str__(self):
return '<domain id=%s name=%s memory=%s state=%s>' % \
(str(self.domid), self.info['name_label'],
-Index: xen-4.1.2-testing/tools/python/xen/xend/XendOptions.py
+Index: xen-4.2.0-testing/tools/python/xen/xend/XendOptions.py
===================================================================
---- xen-4.1.2-testing.orig/tools/python/xen/xend/XendOptions.py
-+++ xen-4.1.2-testing/tools/python/xen/xend/XendOptions.py
+--- xen-4.2.0-testing.orig/tools/python/xen/xend/XendOptions.py
++++ xen-4.2.0-testing/tools/python/xen/xend/XendOptions.py
@@ -154,6 +154,17 @@ class XendOptions:
use loose check automatically if necessary."""
pci_dev_assign_strict_check_default = True
++++++ xend-migration-domname-fix.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -4,10 +4,10 @@
destroyed but there is still VM entry in xenstore.
Signed-off-by: Chunyan Liu <cyliu(a)novell.com>
-Index: xen-4.1.2-testing/tools/python/xen/xend/XendDomainInfo.py
+Index: xen-4.2.0-testing/tools/python/xen/xend/XendDomainInfo.py
===================================================================
---- xen-4.1.2-testing.orig/tools/python/xen/xend/XendDomainInfo.py
-+++ xen-4.1.2-testing/tools/python/xen/xend/XendDomainInfo.py
+--- xen-4.2.0-testing.orig/tools/python/xen/xend/XendDomainInfo.py
++++ xen-4.2.0-testing/tools/python/xen/xend/XendDomainInfo.py
@@ -1947,6 +1947,8 @@ class XendDomainInfo:
self.info['name_label'] = name
if to_store:
@@ -17,10 +17,10 @@
def getName(self):
return self.info['name_label']
-Index: xen-4.1.2-testing/tools/python/xen/xend/XendCheckpoint.py
+Index: xen-4.2.0-testing/tools/python/xen/xend/XendCheckpoint.py
===================================================================
---- xen-4.1.2-testing.orig/tools/python/xen/xend/XendCheckpoint.py
-+++ xen-4.1.2-testing/tools/python/xen/xend/XendCheckpoint.py
+--- xen-4.2.0-testing.orig/tools/python/xen/xend/XendCheckpoint.py
++++ xen-4.2.0-testing/tools/python/xen/xend/XendCheckpoint.py
@@ -172,7 +172,10 @@ def save(fd, dominfo, network, live, dst
dominfo.destroy()
dominfo.testDeviceComplete()
++++++ xend-sysconfig.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -1,8 +1,8 @@
-Index: xen-4.1.2-testing/tools/hotplug/Linux/init.d/sysconfig.xencommons
+Index: xen-4.2.0-testing/tools/hotplug/Linux/init.d/sysconfig.xencommons
===================================================================
---- xen-4.1.2-testing.orig/tools/hotplug/Linux/init.d/sysconfig.xencommons
-+++ xen-4.1.2-testing/tools/hotplug/Linux/init.d/sysconfig.xencommons
-@@ -1,11 +1,24 @@
+--- xen-4.2.0-testing.orig/tools/hotplug/Linux/init.d/sysconfig.xencommons
++++ xen-4.2.0-testing/tools/hotplug/Linux/init.d/sysconfig.xencommons
+@@ -1,14 +1,30 @@
+## Path: System/Virtualization
+## Type: string
+## Default: "none"
@@ -11,6 +11,12 @@
#XENCONSOLED_TRACE=[none|guest|hv|all]
+## Type: string
++## Default: xenstored
++#
+ # Select xenstored implementation
+ #XENSTORED=[oxenstored|xenstored]
+
++## Type: string
+## Default: Not defined, tracing off
+#
# Log xenstored messages
++++++ xend-vcpu-affinity-fix.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -1,8 +1,8 @@
-Index: xen-4.1.2-testing/tools/python/xen/xend/XendDomainInfo.py
+Index: xen-4.2.0-testing/tools/python/xen/xend/XendDomainInfo.py
===================================================================
---- xen-4.1.2-testing.orig/tools/python/xen/xend/XendDomainInfo.py
-+++ xen-4.1.2-testing/tools/python/xen/xend/XendDomainInfo.py
-@@ -2778,7 +2778,10 @@ class XendDomainInfo:
+--- xen-4.2.0-testing.orig/tools/python/xen/xend/XendDomainInfo.py
++++ xen-4.2.0-testing/tools/python/xen/xend/XendDomainInfo.py
+@@ -2785,7 +2785,10 @@ class XendDomainInfo:
from xen.xend import XendDomain
doms = XendDomain.instance().list('all')
for dom in filter (lambda d: d.domid != self.domid, doms):
++++++ xm-create-maxmem.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -4,10 +4,10 @@
From: Dario Abatianni <dabatianni(a)novell.com>
-Index: xen-4.1.2-testing/tools/python/xen/xm/xenapi_create.py
+Index: xen-4.2.0-testing/tools/python/xen/xm/xenapi_create.py
===================================================================
---- xen-4.1.2-testing.orig/tools/python/xen/xm/xenapi_create.py
-+++ xen-4.1.2-testing/tools/python/xen/xm/xenapi_create.py
+--- xen-4.2.0-testing.orig/tools/python/xen/xm/xenapi_create.py
++++ xen-4.2.0-testing/tools/python/xen/xm/xenapi_create.py
@@ -764,7 +764,7 @@ class sxp2xml:
if get_child_by_name(config, "maxmem"):
++++++ xm-create-xflag.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -1,7 +1,7 @@
-Index: xen-4.1.2-testing/tools/python/xen/xm/create.py
+Index: xen-4.2.0-testing/tools/python/xen/xm/create.py
===================================================================
---- xen-4.1.2-testing.orig/tools/python/xen/xm/create.py
-+++ xen-4.1.2-testing/tools/python/xen/xm/create.py
+--- xen-4.2.0-testing.orig/tools/python/xen/xm/create.py
++++ xen-4.2.0-testing/tools/python/xen/xm/create.py
@@ -36,7 +36,7 @@ from xen.xend.server.DevConstants import
from xen.util import blkif
from xen.util import vscsi_util
@@ -11,7 +11,7 @@
from xen.util import utils, auxbin
from xen.util.pci import dev_dict_to_sxp, \
parse_pci_name_extended, PciDeviceParseError
-@@ -1528,7 +1528,7 @@ def main(argv):
+@@ -1533,7 +1533,7 @@ def main(argv):
except IOError, exn:
raise OptionError("Cannot read file %s: %s" % (config, exn[1]))
@@ -20,23 +20,19 @@
from xen.xm.xenapi_create import sxp2xml
sxp2xml_inst = sxp2xml()
doc = sxp2xml_inst.convert_sxp_to_xml(config, transient=True)
-@@ -1536,9 +1536,9 @@ def main(argv):
+@@ -1541,7 +1541,7 @@ def main(argv):
if opts.vals.dryrun and not opts.is_xml:
SXPPrettyPrint.prettyprint(config)
- if opts.vals.xmldryrun and serverType == SERVER_XEN_API:
-- from xml.dom.ext import PrettyPrint as XMLPrettyPrint
-- XMLPrettyPrint(doc)
+ if opts.vals.xmldryrun:
-+ xml_as_string = doc.toprettyxml()
-+ print("%s" % xml_as_string)
+ print doc.toprettyxml()
if opts.vals.dryrun or opts.vals.xmldryrun:
- return
-Index: xen-4.1.2-testing/tools/python/xen/xend/XendAPIConstants.py
+Index: xen-4.2.0-testing/tools/python/xen/xend/XendAPIConstants.py
===================================================================
---- xen-4.1.2-testing.orig/tools/python/xen/xend/XendAPIConstants.py
-+++ xen-4.1.2-testing/tools/python/xen/xend/XendAPIConstants.py
+--- xen-4.2.0-testing.orig/tools/python/xen/xend/XendAPIConstants.py
++++ xen-4.2.0-testing/tools/python/xen/xend/XendAPIConstants.py
@@ -45,8 +45,10 @@ XEN_API_ON_NORMAL_EXIT = [
XEN_API_ON_CRASH_BEHAVIOUR = [
'destroy',
++++++ xm-save-check-file.patch ++++++
--- /var/tmp/diff_new_pack.bfGyWN/_old 2012-09-27 13:56:04.000000000 +0200
+++ /var/tmp/diff_new_pack.bfGyWN/_new 2012-09-27 13:56:04.000000000 +0200
@@ -1,7 +1,7 @@
-Index: xen-4.1.2-testing/tools/python/xen/xend/XendAPI.py
+Index: xen-4.2.0-testing/tools/python/xen/xend/XendAPI.py
===================================================================
---- xen-4.1.2-testing.orig/tools/python/xen/xend/XendAPI.py
-+++ xen-4.1.2-testing/tools/python/xen/xend/XendAPI.py
+--- xen-4.2.0-testing.orig/tools/python/xen/xend/XendAPI.py
++++ xen-4.2.0-testing/tools/python/xen/xend/XendAPI.py
@@ -1959,10 +1959,10 @@ class XendAPI(object):
bool(live), port, node, ssl, bool(chs))
return xen_api_success_void()
@@ -15,10 +15,10 @@
return xen_api_success_void()
def VM_restore(self, _, src, paused):
-Index: xen-4.1.2-testing/tools/python/xen/xend/XendDomain.py
+Index: xen-4.2.0-testing/tools/python/xen/xend/XendDomain.py
===================================================================
---- xen-4.1.2-testing.orig/tools/python/xen/xend/XendDomain.py
-+++ xen-4.1.2-testing/tools/python/xen/xend/XendDomain.py
+--- xen-4.2.0-testing.orig/tools/python/xen/xend/XendDomain.py
++++ xen-4.2.0-testing/tools/python/xen/xend/XendDomain.py
@@ -1505,7 +1505,7 @@ class XendDomain:
pass
sock.close()
@@ -38,10 +38,10 @@
if dominfo.getDomid() == DOM0_ID:
raise XendError("Cannot save privileged domain %s" % str(domid))
if dominfo._stateGet() != DOM_STATE_RUNNING:
-Index: xen-4.1.2-testing/tools/python/xen/xm/main.py
+Index: xen-4.2.0-testing/tools/python/xen/xm/main.py
===================================================================
---- xen-4.1.2-testing.orig/tools/python/xen/xm/main.py
-+++ xen-4.1.2-testing/tools/python/xen/xm/main.py
+--- xen-4.2.0-testing.orig/tools/python/xen/xm/main.py
++++ xen-4.2.0-testing/tools/python/xen/xm/main.py
@@ -121,7 +121,7 @@ SUBCOMMAND_HELP = {
'reset' : ('<Domain>', 'Reset a domain.'),
'restore' : ('<CheckpointFile> [-p]',
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package xkeyboard-config for openSUSE:Factory checked in at 2012-09-27 13:43:54
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xkeyboard-config (Old)
and /work/SRC/openSUSE:Factory/.xkeyboard-config.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xkeyboard-config", Maintainer is "sndirsch(a)suse.com"
Changes:
--------
--- /work/SRC/openSUSE:Factory/xkeyboard-config/xkeyboard-config.changes 2012-07-23 10:44:54.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.xkeyboard-config.new/xkeyboard-config.changes 2012-09-27 13:43:55.000000000 +0200
@@ -1,0 +2,9 @@
+Wed Sep 26 15:17:29 UTC 2012 - tobias.johannes.klausmann(a)mni.thm.de
+
+- Update to version 2.7:
+ + Several bugs fixed, most notably - the issue with functional
+ keys and Shift.
+ + Unneeded .dir files are not generated any more.
+ + Some translations are updated!
+
+-------------------------------------------------------------------
Old:
----
xkeyboard-config-2.5.1.tar.bz2
New:
----
xkeyboard-config-2.7.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xkeyboard-config.spec ++++++
--- /var/tmp/diff_new_pack.gIs8Pt/_old 2012-09-27 13:43:57.000000000 +0200
+++ /var/tmp/diff_new_pack.gIs8Pt/_new 2012-09-27 13:43:57.000000000 +0200
@@ -28,10 +28,10 @@
Provides: XFree86:/etc/X11/xkb/symbols/us
Provides: xorg-x11:/etc/X11/xkb/symbols/us
PreReq: /bin/ln /bin/rm
-Version: 2.5.1
+Version: 2.7
Release: 0
Summary: The X Keyboard Extension
-License: GPL-2.0+ ; LGPL-2.1+ ; MIT
+License: GPL-2.0+ and LGPL-2.1+ and MIT
Group: System/X11/Utilities
Source: http://xorg.freedesktop.org/releases/individual/data/%{name}-%{version}.tar…
Patch100: p_suse.diff
++++++ xkeyboard-config-2.5.1.tar.bz2 -> xkeyboard-config-2.7.tar.bz2 ++++++
++++ 107858 lines of diff (skipped)
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package rubygem-yard for openSUSE:Factory checked in at 2012-09-27 13:43:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-yard (Old)
and /work/SRC/openSUSE:Factory/.rubygem-yard.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-yard", Maintainer is "DMacVicar(a)suse.com"
Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-yard/rubygem-yard.changes 2012-05-07 22:51:50.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.rubygem-yard.new/rubygem-yard.changes 2012-09-27 13:43:46.000000000 +0200
@@ -1,0 +2,7 @@
+Thu Sep 27 08:54:42 UTC 2012 - coolo(a)suse.com
+
+- update to 0.8.2.1:
+ * See ChangeLog for details (git log basically)
+- switch to new gem2rpm template
+
+-------------------------------------------------------------------
Old:
----
yard-0.7.5.gem
New:
----
yard-0.8.2.1.gem
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rubygem-yard.spec ++++++
--- /var/tmp/diff_new_pack.dXyYdf/_old 2012-09-27 13:43:48.000000000 +0200
+++ /var/tmp/diff_new_pack.dXyYdf/_new 2012-09-27 13:43:48.000000000 +0200
@@ -17,19 +17,18 @@
Name: rubygem-yard
-Version: 0.7.5
+Version: 0.8.2.1
Release: 0
-Summary: Documentation tool for consistent and usable documentation in Ruby
-License: MIT
-Group: Development/Languages/Ruby
-Url: http://yardoc.org
%define mod_name yard
%define mod_full_name %{mod_name}-%{version}
-Source: %{mod_full_name}.gem
-BuildRequires: rubygems_with_buildroot_patch
-Provides: %{name}-0_7 = %{version}
+
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-%rubygems_requires
+BuildRequires: ruby-macros >= 1
+Url: http://yardoc.org
+Source: %{mod_full_name}.gem
+Summary: Documentation tool for consistent and usable documentation in Ruby.
+License: MIT
+Group: Development/Languages/Ruby
%description
YARD is a documentation generation tool for the Ruby programming language.
@@ -55,9 +54,14 @@
Test::Unit or RSpec files, useful for developers.
%prep
+#gem_unpack
+#if you need patches, apply them here and replace the # with a % sign in the surrounding lines
+#gem_build
+
%build
+
%install
-%gem_install %{SOURCE0}
+%gem_install -f
%files
%defattr(-,root,root,-)
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0