openSUSE Commits
Threads by month
- ----- 2025 -----
- 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
August 2014
- 1 participants
- 1258 discussions
Hello community,
here is the log from the commit of package libzypp for openSUSE:Factory checked in at 2014-08-30 18:55:54
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libzypp (Old)
and /work/SRC/openSUSE:Factory/.libzypp.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libzypp"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libzypp/libzypp.changes 2014-08-13 17:19:55.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.libzypp.new/libzypp.changes 2014-08-30 18:56:01.000000000 +0200
@@ -1,0 +2,20 @@
+Fri Aug 29 14:46:25 CEST 2014 - ma(a)suse.de
+
+- PackageProvider: consider toplevel cache if --root or --pkg-cachedir
+ is used.
+- Cleanup orpahned cache dirs only at zypp.conf default locations
+ (bnc#891515)
+- Remove orphaned package caches on refresh (bnc#888919)
+- version 14.27.2 (27)
+
+-------------------------------------------------------------------
+Sun Aug 24 01:16:00 CEST 2014 - ma(a)suse.de
+
+- Update zypp-po.tar.bz2
+
+-------------------------------------------------------------------
+Mon Aug 18 14:01:06 CEST 2014 - ma(a)suse.de
+
+- Update zypp-po.tar.bz2
+
+-------------------------------------------------------------------
Old:
----
libzypp-14.27.1.tar.bz2
New:
----
libzypp-14.27.2.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libzypp.spec ++++++
--- /var/tmp/diff_new_pack.QOD5TT/_old 2014-08-30 18:56:02.000000000 +0200
+++ /var/tmp/diff_new_pack.QOD5TT/_new 2014-08-30 18:56:02.000000000 +0200
@@ -23,7 +23,7 @@
Summary: Package, Patch, Pattern, and Product Management
License: GPL-2.0+
Group: System/Packages
-Version: 14.27.1
+Version: 14.27.2
Release: 0
Source: %{name}-%{version}.tar.bz2
Source1: %{name}-rpmlintrc
++++++ libzypp-14.27.1.tar.bz2 -> libzypp-14.27.2.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-14.27.1/VERSION.cmake new/libzypp-14.27.2/VERSION.cmake
--- old/libzypp-14.27.1/VERSION.cmake 2014-07-31 19:25:11.000000000 +0200
+++ new/libzypp-14.27.2/VERSION.cmake 2014-08-29 14:49:37.000000000 +0200
@@ -61,8 +61,8 @@
SET(LIBZYPP_MAJOR "14")
SET(LIBZYPP_COMPATMINOR "27")
SET(LIBZYPP_MINOR "27")
-SET(LIBZYPP_PATCH "1")
+SET(LIBZYPP_PATCH "2")
#
-# LAST RELEASED: 14.27.1 (27)
+# LAST RELEASED: 14.27.2 (27)
# (The number in parenthesis is LIBZYPP_COMPATMINOR)
#=======
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-14.27.1/devel/devel.ma/Basic.cc new/libzypp-14.27.2/devel/devel.ma/Basic.cc
--- old/libzypp-14.27.1/devel/devel.ma/Basic.cc 2014-07-01 11:30:28.000000000 +0200
+++ new/libzypp-14.27.2/devel/devel.ma/Basic.cc 2014-08-29 14:49:37.000000000 +0200
@@ -153,32 +153,6 @@
USR << __PRETTY_FUNCTION__ << endl;
}
- // Dowmload patch rpm:
- // - path below url reported on start()
- // - expected download size (0 if unknown)
- // - download is interruptable
- virtual void startPatchDownload( const Pathname & /*filename*/, const ByteCount & /*downloadsize*/ )
- {
- USR << __PRETTY_FUNCTION__ << endl;
- }
-
- virtual bool progressPatchDownload( int /*value*/ )
- {
- USR << __PRETTY_FUNCTION__ << endl;
- return true;
- }
-
- virtual void problemPatchDownload( const std::string &/*description*/ )
- {
- USR << __PRETTY_FUNCTION__ << endl;
- }
-
- virtual void finishPatchDownload()
- {
- USR << __PRETTY_FUNCTION__ << endl;
- }
-
-
// return false if the download should be aborted right now
virtual bool progress(int value, Resolvable::constPtr resolvable_ptr)
{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-14.27.1/package/libzypp.changes new/libzypp-14.27.2/package/libzypp.changes
--- old/libzypp-14.27.1/package/libzypp.changes 2014-07-31 19:25:11.000000000 +0200
+++ new/libzypp-14.27.2/package/libzypp.changes 2014-08-29 14:49:37.000000000 +0200
@@ -1,4 +1,24 @@
-------------------------------------------------------------------
+Fri Aug 29 14:46:25 CEST 2014 - ma(a)suse.de
+
+- PackageProvider: consider toplevel cache if --root or --pkg-cachedir
+ is used.
+- Cleanup orpahned cache dirs only at zypp.conf default locations
+ (bnc#891515)
+- Remove orphaned package caches on refresh (bnc#888919)
+- version 14.27.2 (27)
+
+-------------------------------------------------------------------
+Sun Aug 24 01:16:00 CEST 2014 - ma(a)suse.de
+
+- Update zypp-po.tar.bz2
+
+-------------------------------------------------------------------
+Mon Aug 18 14:01:06 CEST 2014 - ma(a)suse.de
+
+- Update zypp-po.tar.bz2
+
+-------------------------------------------------------------------
Thu Jul 31 19:22:56 CEST 2014 - ma(a)suse.de
- Fix gpg key creation/modification date computation to properly
Files old/libzypp-14.27.1/po/zypp-po.tar.bz2 and new/libzypp-14.27.2/po/zypp-po.tar.bz2 differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-14.27.1/zypp/RepoManager.cc new/libzypp-14.27.2/zypp/RepoManager.cc
--- old/libzypp-14.27.1/zypp/RepoManager.cc 2014-07-14 17:49:15.000000000 +0200
+++ new/libzypp-14.27.2/zypp/RepoManager.cc 2014-08-29 14:49:37.000000000 +0200
@@ -399,6 +399,21 @@
return ret;
}
+ std:: ostream & operator<<( std::ostream & str, const RepoManagerOptions & obj )
+ {
+#define OUTS(X) str << " " #X "\t" << obj.X << endl
+ str << "RepoManagerOptions (" << obj.rootDir << ") {" << endl;
+ OUTS( repoRawCachePath );
+ OUTS( repoSolvCachePath );
+ OUTS( repoPackagesCachePath );
+ OUTS( knownReposPath );
+ OUTS( knownServicesPath );
+ OUTS( pluginsPath );
+ str << "}" << endl;
+#undef OUTS
+ return str;
+ }
+
///////////////////////////////////////////////////////////////////
/// \class RepoManager::Impl
/// \brief RepoManager implementation.
@@ -630,6 +645,37 @@
repo::PluginServices(_options.pluginsPath/"services", ServiceCollector(_services));
}
+ ///////////////////////////////////////////////////////////////////
+ namespace {
+ /** Delete \a cachePath_r subdirs not matching known aliases in \a repoEscAliases_r (must be sorted!)
+ * \note bnc#891515: Auto-cleanup only zypp.conf default locations. Otherwise
+ * we'd need some magic file to identify zypp cache directories. Without this
+ * we may easily remove user data (zypper --pkg-cache-dir . download ...)
+ */
+ inline void cleanupNonRepoMetadtaFolders( const Pathname & cachePath_r,
+ const Pathname & defaultCachePath_r,
+ const std::list<std::string> & repoEscAliases_r )
+ {
+ if ( cachePath_r != defaultCachePath_r )
+ return;
+
+ std::list<std::string> entries;
+ if ( filesystem::readdir( entries, cachePath_r, false ) == 0 )
+ {
+ entries.sort();
+ std::set<std::string> oldfiles;
+ set_difference( entries.begin(), entries.end(), repoEscAliases_r.begin(), repoEscAliases_r.end(),
+ std::inserter( oldfiles, oldfiles.end() ) );
+ for ( const std::string & old : oldfiles )
+ {
+ if ( old == Repository::systemRepoAlias() ) // don't remove the @System solv file
+ continue;
+ filesystem::recursive_rmdir( cachePath_r / old );
+ }
+ }
+ }
+ } // namespace
+ ///////////////////////////////////////////////////////////////////
void RepoManager::Impl::init_knownRepositories()
{
MIL << "start construct known repos" << endl;
@@ -682,25 +728,15 @@
}
// delete metadata folders without corresponding repo (e.g. old tmp directories)
+ //
+ // bnc#891515: Auto-cleanup only zypp.conf default locations. Otherwise
+ // we'd need somemagic file to identify zypp cache directories. Without this
+ // we may easily remove user data (zypper --pkg-cache-dir . download ...)
repoEscAliases.sort();
- for ( const Pathname & cachePath : { _options.repoRawCachePath
- , _options.repoSolvCachePath } )
- {
- std::list<std::string> entries;
- if ( filesystem::readdir( entries, cachePath, false ) == 0 )
- {
- entries.sort();
- std::set<std::string> oldfiles;
- set_difference( entries.begin(), entries.end(), repoEscAliases.begin(), repoEscAliases.end(),
- std::inserter( oldfiles, oldfiles.end() ) );
- for ( const std::string & old : oldfiles )
- {
- if ( old == Repository::systemRepoAlias() ) // don't remove the @System solv file
- continue;
- filesystem::recursive_rmdir( cachePath / old );
- }
- }
- }
+ RepoManagerOptions defaultCache( _options.rootDir );
+ cleanupNonRepoMetadtaFolders( _options.repoRawCachePath, defaultCache.repoRawCachePath, repoEscAliases );
+ cleanupNonRepoMetadtaFolders( _options.repoSolvCachePath, defaultCache.repoSolvCachePath, repoEscAliases );
+ cleanupNonRepoMetadtaFolders( _options.repoPackagesCachePath, defaultCache.repoPackagesCachePath, repoEscAliases );
}
MIL << "end construct known repos" << endl;
}
@@ -838,9 +874,6 @@
}
}
- // To test the new matadta create temp dir as sibling of mediarootpath
- filesystem::TmpDir tmpdir( filesystem::TmpDir::makeSibling( mediarootpath ) );
-
repo::RepoType repokind = info.type();
// if unknown: probe it
if ( repokind == RepoType::NONE )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-14.27.1/zypp/ZYppCallbacks.h new/libzypp-14.27.2/zypp/ZYppCallbacks.h
--- old/libzypp-14.27.1/zypp/ZYppCallbacks.h 2014-07-25 12:58:04.000000000 +0200
+++ new/libzypp-14.27.2/zypp/ZYppCallbacks.h 2014-08-29 14:49:37.000000000 +0200
@@ -157,20 +157,20 @@
virtual void finishDeltaApply()
{}
- // Dowmload patch rpm:
- // - path below url reported on start()
- // - expected download size (0 if unknown)
- // - download is interruptable
- virtual void startPatchDownload( const Pathname & /*filename*/, const ByteCount & /*downloadsize*/ )
+ /** \deprecated Unused since 2008 */
+ virtual ZYPP_DEPRECATED void startPatchDownload( const Pathname & /*filename*/, const ByteCount & /*downloadsize*/ )
{}
- virtual bool progressPatchDownload( int /*value*/ )
+ /** \deprecated Unused since 2008 */
+ virtual ZYPP_DEPRECATED bool progressPatchDownload( int /*value*/ )
{ return true; }
- virtual void problemPatchDownload( const std::string &/*description*/ )
+ /** \deprecated Unused since 2008 */
+ virtual ZYPP_DEPRECATED void problemPatchDownload( const std::string &/*description*/ )
{}
- virtual void finishPatchDownload()
+ /** \deprecated Unused since 2008 */
+ virtual ZYPP_DEPRECATED void finishPatchDownload()
{}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-14.27.1/zypp/repo/PackageProvider.cc new/libzypp-14.27.2/zypp/repo/PackageProvider.cc
--- old/libzypp-14.27.1/zypp/repo/PackageProvider.cc 2014-07-01 11:30:28.000000000 +0200
+++ new/libzypp-14.27.2/zypp/repo/PackageProvider.cc 2014-08-29 14:49:37.000000000 +0200
@@ -10,6 +10,7 @@
*
*/
#include <iostream>
+#include <fstream>
#include <sstream>
#include "zypp/repo/PackageDelta.h"
#include "zypp/base/Logger.h"
@@ -23,6 +24,7 @@
#include "zypp/TmpPath.h"
#include "zypp/ZConfig.h"
#include "zypp/RepoInfo.h"
+#include "zypp/RepoManager.h"
using std::endl;
@@ -219,8 +221,37 @@
return ret; // <-- cache hit
}
- // HERE: cache misss, do download:
+ // HERE: cache misss, check toplevel cache or do download:
RepoInfo info = _package->repoInfo();
+
+ // Check toplevel cache
+ {
+ RepoManagerOptions topCache;
+ if ( info.packagesPath().dirname() != topCache.repoPackagesCachePath ) // not using toplevel cache
+ {
+ const OnMediaLocation & loc( _package->location() );
+ if ( ! loc.checksum().empty() ) // no cache hit without checksum
+ {
+ PathInfo pi( topCache.repoPackagesCachePath / info.packagesPath().basename() / loc.filename() );
+ if ( pi.isExist() && loc.checksum() == CheckSum( loc.checksum().type(), std::ifstream( pi.c_str() ) ) )
+ {
+ report()->start( _package, pi.path().asFileUrl() );
+ const Pathname & dest( info.packagesPath() / loc.filename() );
+ if ( filesystem::assert_dir( dest.dirname() ) == 0 && filesystem::hardlinkCopy( pi.path(), dest ) == 0 )
+ {
+ ret = ManagedFile( dest );
+ if ( ! info.keepPackages() )
+ ret.setDispose( filesystem::unlink );
+
+ MIL << "provided Package from toplevel cache " << _package << " at " << ret << endl;
+ report()->finish( _package, repo::DownloadResolvableReport::NO_ERROR, std::string() );
+ return ret; // <-- toplevel cache hit
+ }
+ }
+ }
+ }
+ }
+
// FIXME we only support the first url for now.
if ( info.baseUrlsEmpty() )
ZYPP_THROW(Exception("No url in repository."));
--
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 kdebase4-workspace for openSUSE:Factory checked in at 2014-08-30 18:55:52
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kdebase4-workspace (Old)
and /work/SRC/openSUSE:Factory/.kdebase4-workspace.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kdebase4-workspace"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kdebase4-workspace/kdebase4-workspace.changes 2014-08-20 17:51:35.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kdebase4-workspace.new/kdebase4-workspace.changes 2014-08-30 18:55:56.000000000 +0200
@@ -1,0 +2,7 @@
+Tue Aug 19 22:26:47 UTC 2014 - hrvoje.senjan(a)gmail.com
+
+- Package gui_platform plugins within libs subpackage: the plugin
+ is not shared library but is important for some core features
+ of KDE applications (correct filedialog, style loading, etc)
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kdebase4-workspace.spec ++++++
--- /var/tmp/diff_new_pack.NdinlK/_old 2014-08-30 18:55:59.000000000 +0200
+++ /var/tmp/diff_new_pack.NdinlK/_new 2014-08-30 18:55:59.000000000 +0200
@@ -742,6 +742,8 @@
%exclude %{_kde4_modulesdir}/plugins/designer/ksysguardlsofwidgets.so
%exclude %{_kde4_modulesdir}/plugins/styles
%exclude %{_kde4_modulesdir}/plugins/styles/oxygen.so
+%exclude %{_kde4_modulesdir}/plugins/gui_platform
+%exclude %{_kde4_modulesdir}/plugins/gui_platform/libkde.so
%exclude %{_kde4_servicesdir}/kded/randrmonitor.desktop
%exclude %{_kde4_servicesdir}/kwin
%exclude %{_kde4_servicesdir}/plasma-*-akonadi.desktop
@@ -783,5 +785,6 @@
%{_kde4_libdir}/libsystemsettingsview.so.*
%{_kde4_libdir}/libtaskmanager.so.*
%{_kde4_libdir}/libweather_ion.so.*
+%{_kde4_modulesdir}/plugins/gui_platform/
%changelog
--
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 php5 for openSUSE:Factory checked in at 2014-08-30 18:55:50
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/php5 (Old)
and /work/SRC/openSUSE:Factory/.php5.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "php5"
Changes:
--------
--- /work/SRC/openSUSE:Factory/php5/php5.changes 2014-08-27 22:18:14.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.php5.new/php5.changes 2014-08-30 18:55:54.000000000 +0200
@@ -1,0 +2,33 @@
+Fri Aug 29 09:32:42 UTC 2014 - pgajdos(a)suse.com
+
+- fix CVE-2014-5459 [bnc#893849]
+
+-------------------------------------------------------------------
+Fri Aug 29 06:06:20 UTC 2014 - pgajdos(a)suse.com
+
+- actually, there's no point to install pear from other source
+ than from php tarball
+ * remove source install-pear-nozlib.phar
+
+-------------------------------------------------------------------
+Thu Aug 28 14:57:42 UTC 2014 - pgajdos(a)suse.com
+
+- updated PEAR to 1.9.5, bugfix release
+ see http://pear.php.net/package/PEAR/download
+ for details
+
+-------------------------------------------------------------------
+Thu Aug 28 12:49:25 UTC 2014 - pgajdos(a)suse.com
+
+- updated to 5.6.0:
+ * Most improvements in PHP 5.6.x have no impact on existing code.
+ There are a few incompatibilities and new features that should
+ be considered:
+ http://php.net/manual/en/migration56.php
+- removed patches:
+ * php5-big-file-upload.patch (upstreamed)
+ * php5-suhosin-php55.patch (upstreamed)
+- modified patches:
+ * php5-openssl.patch (refreshed)
+
+-------------------------------------------------------------------
Old:
----
install-pear-nozlib.phar
php-5.5.16.tar.bz2
php5-big-file-upload.patch
php5-suhosin-php55.patch
suhosin-0.9.33.tgz
New:
----
php-5.6.0.tar.xz
suhosin-0.9.36.tgz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ php5.spec ++++++
--- /var/tmp/diff_new_pack.kMLUYs/_old 2014-08-30 18:55:56.000000000 +0200
+++ /var/tmp/diff_new_pack.kMLUYs/_new 2014-08-30 18:55:56.000000000 +0200
@@ -21,9 +21,9 @@
%bcond_with make_test
Name: php5
-%global apiver 20121113
-%global zendver 20121212
-%define suhosin_version 0.9.33
+%global apiver 20131106
+%global zendver 20131226
+%define suhosin_version 0.9.36
%define pkg_name php5
%define with_spell 1
@@ -104,7 +104,7 @@
%define apache2_includedir %(%{apxs2} -q INCLUDEDIR)
%define apache2_serverroot %(%{apxs2} -q PREFIX)
%define need_libxml2_hack %(if [ -e %{_includedir}/libxml/parser.h ]; then if grep -q XML_PARSE_OLDSAX %{_includedir}/libxml/parser.h;then echo 1; else echo 0; fi; else echo 0; fi)
-Version: 5.5.16
+Version: 5.6.0
Release: 0
Provides: php
Provides: php-api = %{apiver}
@@ -136,14 +136,13 @@
Obsoletes: php5-mhash
#Don't mix these packages with php53-* from SLES 11 SP2
Conflicts: php53
-Source0: http://www.php.net/distributions/php-%{version}.tar.bz2
+Source0: http://downloads.php.net/tyrael/php-%{version}.tar.xz
Source1: php-suse-addons.tar.bz2
-Source2: suhosin-%{suhosin_version}.tgz
+Source2: http://download.suhosin.org/suhosin-%{suhosin_version}.tgz
Source4: README.SUSE-pear
Source5: README.macros
Source6: macros.php
-Source7: install-pear-nozlib.phar
-Source8: php-fpm.init
+Source7: php-fpm.init
Source100: build-test.sh
#SUSE specific stuff
Patch0: php5-phpize.patch
@@ -158,24 +157,21 @@
#bugs
# this is from https://raw.github.com/NewEraCracker/suhosin-patches/, check for official
# one from suhosin git
-Patch10: php5-suhosin-php55.patch
-Patch11: php5-mbstring-missing-return.patch
-Patch12: php5-BNC-457056.patch
-Patch13: php5-cloexec.patch
-Patch14: php5-missing-extdeps.patch
+Patch10: php5-mbstring-missing-return.patch
+Patch11: php5-BNC-457056.patch
+Patch12: php5-cloexec.patch
+Patch13: php5-missing-extdeps.patch
# following patch is to fix configure tests for crypt; the aim is to have php
# built against glibc's crypt; problem is, that our glibc doesn't support extended
# DES, so as soon as upstream fixes this, don't forgot to remove extended DES
# from their checking as I indicated in crypt-tests.patch yet, or php will
# silently use his own implementation again
-Patch16: php5-crypt-tests.patch
+Patch14: php5-crypt-tests.patch
# related to previous patch; !(defined(_REENTRANT) || defined(_THREAD_SAFE))
-Patch17: php5-no-reentrant-crypt.patch
-Patch18: php5-format-string-issues.patch
-# following patch connected fixes or workarounds https://bugs.php.net/bug.php?id=44522
-Patch19: php5-big-file-upload.patch
-Patch20: php5-per-mod-log.patch
-Patch21: php5-apache24-updates.patch
+Patch15: php5-no-reentrant-crypt.patch
+Patch16: php5-format-string-issues.patch
+Patch17: php5-per-mod-log.patch
+Patch18: php5-apache24-updates.patch
Url: http://www.php.net
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Summary: PHP5 Core Files
@@ -1300,7 +1296,6 @@
%{__mv} ext/suhosin-%{suhosin_version} ext/suhosin
%{__cp} %{S:4} pear/README.SUSE
%{__cp} %{S:5} .
-%{__cp} %{S:7} pear/
%patch0
%patch1
%patch2
@@ -1311,21 +1306,19 @@
%patch7
%patch8
%patch10
-%patch11
%if %{need_libxml2_hack}
echo "*** APPLY LIBXML2.7 FIX ***"
-%patch12
+%patch11
%else
echo "*** SKIPPING LIBMXL2.7 FIX ***"
%endif
+%patch12
%patch13
%patch14
+%patch15
%patch16
-%patch17
-%patch18
-%patch19 -p1
-%patch20 -p1
-%patch21 -p1
+%patch17 -p1
+%patch18 -p1
# Safety check for API version change.
vapi=`sed -n '/#define PHP_API_VERSION/{s/.* //;p}' main/php.h`
if test "x${vapi}" != "x%{apiver}"; then
@@ -1657,6 +1650,11 @@
sed -i -e "s@$RPM_BUILD_DIR/php-%{version}/build-cli/sapi/cli/php@php@g" %{buildroot}%{_bindir}/phar.phar
rm %{buildroot}%{_bindir}/phar
%{__ln_s} -f %{_bindir}/phar.phar %{buildroot}%{_bindir}/phar
+# CVE-2014-5459, bnc#893849; couldn't find a way to use PHP_PEAR_CACHE_DIR
+# (install-pear is checking if the directory is writable by current user?;
+# unfortunately ENOTIME to figure out)
+%{__sed} -i 's@15:"/tmp/pear/cache"@19:"/var/cache/php-pear"@' %{buildroot}%{php_sysconf}/cli/pear.conf
+grep -c '/var/cache/php-pear' %{buildroot}%{php_sysconf}/cli/pear.conf || exit 1
# Install the macros file:
install -d $RPM_BUILD_ROOT%{_sysconfdir}/rpm
sed -e "s/@PHP_APIVER@/%{apiver}/;s/@PHP_ZENDVER@/%{zendver}/" \
@@ -1666,7 +1664,7 @@
#install fpm init script.
install -d %{buildroot}%{_sysconfdir}/init.d
-install -m 755 -c %{S:8} %{buildroot}%{_sysconfdir}/init.d/php-fpm
+install -m 755 -c %{S:7} %{buildroot}%{_sysconfdir}/init.d/php-fpm
%if %{with_systemd}
install -D -m 0644 ./build-fpm/sapi/fpm/php-fpm.service %{buildroot}%{_unitdir}/php-fpm.service
%if 0%{suse_version} > 1220
++++++ php5-openssl.patch ++++++
--- /var/tmp/diff_new_pack.kMLUYs/_old 2014-08-30 18:55:56.000000000 +0200
+++ /var/tmp/diff_new_pack.kMLUYs/_new 2014-08-30 18:55:56.000000000 +0200
@@ -1,6 +1,8 @@
---- ext/openssl/openssl.c.orig
-+++ ext/openssl/openssl.c
-@@ -1031,6 +1031,7 @@ PHP_MINIT_FUNCTION(openssl)
+Index: ext/openssl/openssl.c
+===================================================================
+--- ext/openssl/openssl.c.orig 2014-07-02 02:23:22.000000000 +0200
++++ ext/openssl/openssl.c 2014-07-30 09:49:25.216474921 +0200
+@@ -1124,6 +1124,7 @@
OpenSSL_add_all_ciphers();
OpenSSL_add_all_digests();
OpenSSL_add_all_algorithms();
@@ -8,16 +10,18 @@
SSL_load_error_strings();
---- ext/openssl/xp_ssl.c.orig
-+++ ext/openssl/xp_ssl.c
-@@ -378,6 +378,10 @@ static inline int php_openssl_setup_cryp
- return -1;
+Index: ext/openssl/xp_ssl.c
+===================================================================
+--- ext/openssl/xp_ssl.c.orig 2014-07-02 02:23:22.000000000 +0200
++++ ext/openssl/xp_ssl.c 2014-07-30 09:57:41.116465493 +0200
+@@ -1383,6 +1383,10 @@
+ return FAILURE;
}
+#ifdef SSL_MODE_RELEASE_BUFFERS
-+ SSL_CTX_set_mode(sslsock->ctx, SSL_MODE_RELEASE_BUFFERS);
++ SSL_CTX_set_mode(sslsock->ctx, SSL_MODE_RELEASE_BUFFERS);
+#endif
+
- #if OPENSSL_VERSION_NUMBER >= 0x0090605fL
- ssl_ctx_options &= ~SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS;
- #endif
+ #if OPENSSL_VERSION_NUMBER >= 0x0090806fL
+ if (GET_VER_OPT("no_ticket") && zend_is_true(*val)) {
+ ssl_ctx_options |= SSL_OP_NO_TICKET;
++++++ suhosin-0.9.33.tgz -> suhosin-0.9.36.tgz ++++++
++++ 9003 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 ca-certificates-mozilla for openSUSE:Factory checked in at 2014-08-30 18:55:49
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ca-certificates-mozilla (Old)
and /work/SRC/openSUSE:Factory/.ca-certificates-mozilla.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ca-certificates-mozilla"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ca-certificates-mozilla/ca-certificates-mozilla.changes 2014-06-25 15:24:00.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.ca-certificates-mozilla.new/ca-certificates-mozilla.changes 2014-08-30 18:55:50.000000000 +0200
@@ -1,0 +2,31 @@
+Tue Aug 26 13:30:12 UTC 2014 - meissner(a)suse.com
+
+- Updated to 2.1 (bnc#888534)
+
+- The following 1024-bit CA certificates were removed
+ - Entrust.net Secure Server Certification Authority
+ - ValiCert Class 1 Policy Validation Authority
+ - ValiCert Class 2 Policy Validation Authority
+ - ValiCert Class 3 Policy Validation Authority
+ - TDC Internet Root CA
+- The following CA certificates were added:
+ - Certification Authority of WoSign
+ - CA 沃通根证书
+ - DigiCert Assured ID Root G2
+ - DigiCert Assured ID Root G3
+ - DigiCert Global Root G2
+ - DigiCert Global Root G3
+ - DigiCert Trusted Root G4
+ - QuoVadis Root CA 1 G3
+ - QuoVadis Root CA 2 G3
+ - QuoVadis Root CA 3 G3
+- The Trust Bits were changed for the following CA certificates
+ - Class 3 Public Primary Certification Authority
+ - Class 3 Public Primary Certification Authority
+ - Class 2 Public Primary Certification Authority - G2
+ - VeriSign Class 2 Public Primary Certification Authority - G3
+ - AC Raíz Certicámara S.A.
+ - NetLock Uzleti (Class B) Tanusitvanykiado
+ - NetLock Expressz (Class C) Tanusitvanykiado
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ca-certificates-mozilla.spec ++++++
--- /var/tmp/diff_new_pack.f3j9RC/_old 2014-08-30 18:55:53.000000000 +0200
+++ /var/tmp/diff_new_pack.f3j9RC/_new 2014-08-30 18:55:53.000000000 +0200
@@ -26,7 +26,7 @@
Name: ca-certificates-mozilla
# Version number is NSS_BUILTINS_LIBRARY_VERSION in this file:
# https://hg.mozilla.org/releases/mozilla-release/raw-file/default/security/n…
-Version: 1.97
+Version: 2.1
Release: 0
Summary: CA certificates for OpenSSL
License: MPL-2.0
++++++ certdata.txt ++++++
++++ 2740 lines (skipped)
++++ between /work/SRC/openSUSE:Factory/ca-certificates-mozilla/certdata.txt
++++ and /work/SRC/openSUSE:Factory/.ca-certificates-mozilla.new/certdata.txt
++++++ nssckbi.h ++++++
--- /var/tmp/diff_new_pack.f3j9RC/_old 2014-08-30 18:55:53.000000000 +0200
+++ /var/tmp/diff_new_pack.f3j9RC/_new 2014-08-30 18:55:53.000000000 +0200
@@ -44,9 +44,9 @@
* whether we may use its full range (0-255) or only 0-99 because
* of the comment in the CK_VERSION type definition.
*/
-#define NSS_BUILTINS_LIBRARY_VERSION_MAJOR 1
-#define NSS_BUILTINS_LIBRARY_VERSION_MINOR 97
-#define NSS_BUILTINS_LIBRARY_VERSION "1.97"
+#define NSS_BUILTINS_LIBRARY_VERSION_MAJOR 2
+#define NSS_BUILTINS_LIBRARY_VERSION_MINOR 1
+#define NSS_BUILTINS_LIBRARY_VERSION "2.1"
/* These version numbers detail the semantic changes to the ckfw engine. */
#define NSS_BUILTINS_HARDWARE_VERSION_MAJOR 1
--
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 tar for openSUSE:Factory checked in at 2014-08-30 16:04:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/tar (Old)
and /work/SRC/openSUSE:Factory/.tar.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "tar"
Changes:
--------
--- /work/SRC/openSUSE:Factory/tar/tar.changes 2014-08-04 15:14:36.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.tar.new/tar.changes 2014-08-30 16:04:46.000000000 +0200
@@ -1,0 +2,5 @@
+Fri Aug 29 19:36:40 UTC 2014 - jengelh(a)inai.de
+
+- Improve on RPM group classification
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ tar.spec ++++++
--- /var/tmp/diff_new_pack.qSMTJ3/_old 2014-08-30 16:04:48.000000000 +0200
+++ /var/tmp/diff_new_pack.qSMTJ3/_new 2014-08-30 16:04:48.000000000 +0200
@@ -24,7 +24,7 @@
Release: 0
Summary: GNU implementation of tar ((t)ape (ar)chiver)
License: GPL-3.0+
-Group: System/Base
+Group: Productivity/Archiving/Backup
Url: http://www.gnu.org/software/tar/
Source0: http://ftp.gnu.org/gnu/tar/%{name}-%{version}.tar.bz2
Source1: http://ftp.gnu.org/gnu/tar/%{name}-%{version}.tar.bz2.sig
--
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 cpio for openSUSE:Factory checked in at 2014-08-30 16:04:07
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/cpio (Old)
and /work/SRC/openSUSE:Factory/.cpio.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "cpio"
Changes:
--------
--- /work/SRC/openSUSE:Factory/cpio/cpio.changes 2014-08-25 12:59:44.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.cpio.new/cpio.changes 2014-08-30 16:04:44.000000000 +0200
@@ -1,0 +2,7 @@
+Fri Aug 29 19:39:35 UTC 2014 - jengelh(a)inai.de
+
+- Improve on RPM group classification (cpio does not compress
+ on its own per se)
+- Remove redundant %clean section
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ cpio.spec ++++++
--- /var/tmp/diff_new_pack.k6CGTK/_old 2014-08-30 16:04:45.000000000 +0200
+++ /var/tmp/diff_new_pack.k6CGTK/_new 2014-08-30 16:04:45.000000000 +0200
@@ -24,7 +24,7 @@
Release: 0
Summary: A Backup and Archiving Utility
License: GPL-3.0
-Group: Productivity/Archiving/Compression
+Group: Productivity/Archiving/Backup
Source: http://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.bz2
Patch2: cpio-use_new_ascii_format.patch
#oouch what a ...?! pieces of code grabed from mt_st package to add missing functionality (e.g. density info)
@@ -115,9 +115,6 @@
%postun
%install_info_delete --info-dir=%{_infodir} %{_infodir}/%{name}.info.gz
-%clean
-rm -rf $RPM_BUILD_ROOT
-
%files
%defattr(-,root,root)
#UsrMerge
--
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 libcthreads for openSUSE:Factory checked in at 2014-08-30 16:04:06
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libcthreads (Old)
and /work/SRC/openSUSE:Factory/.libcthreads.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libcthreads"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libcthreads/libcthreads.changes 2013-10-21 13:44:11.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.libcthreads.new/libcthreads.changes 2014-08-30 16:04:42.000000000 +0200
@@ -1,0 +2,9 @@
+Thu Aug 14 12:45:42 UTC 2014 - Greg.Freemyer(a)gmail.com
+
+- updated to v0~20140105
+ * updated dependencies
+ * 2014 update
+ * updated man pages
+ * Bug fixes for RW lock XP version, with thanks to Phillip Hellewell
+
+-------------------------------------------------------------------
Old:
----
libcthreads-experimental-20130723.tar.gz
New:
----
libcthreads-experimental-20140105.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libcthreads.spec ++++++
--- /var/tmp/diff_new_pack.RHRJ3O/_old 2014-08-30 16:04:44.000000000 +0200
+++ /var/tmp/diff_new_pack.RHRJ3O/_new 2014-08-30 16:04:44.000000000 +0200
@@ -18,7 +18,7 @@
Name: libcthreads
%define lname libcthreads1
-%define timestamp 20130723
+%define timestamp 20140105
Version: 0~%timestamp
Release: 0
Summary: Library for cross-platform C threads functions
@@ -27,7 +27,7 @@
Url: http://code.google.com/p/libcthreads/
#Git-Clone: http://code.google.com/p/libcthreads
-#DL-URL: https://googledrive.com/host/0B3fBvzttpiiSdlBOeGZJeml1T1k/libcthreads-exper…
+#DL-URL: https://googledrive.com/host/0B3fBvzttpiiSdlBOeGZJeml1T1k/libcthreads-exper…
Source: %name-experimental-%timestamp.tar.gz
BuildRequires: pkg-config
BuildRequires: pkgconfig(libcerror) >= 20130904
++++++ libcthreads-experimental-20130723.tar.gz -> libcthreads-experimental-20140105.tar.gz ++++++
++++ 1967 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 yast2-http-server for openSUSE:Factory checked in at 2014-08-30 16:04:06
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-http-server (Old)
and /work/SRC/openSUSE:Factory/.yast2-http-server.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "yast2-http-server"
Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2-http-server/yast2-http-server.changes 2014-07-31 07:42:04.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.yast2-http-server.new/yast2-http-server.changes 2014-08-30 16:04:40.000000000 +0200
@@ -1,0 +2,9 @@
+Fri Aug 29 14:36:49 CEST 2014 - schubi(a)suse.de
+
+- Autoyast conifuration: "main" defines the default server configured in
+ /etc/apache2/default-server.conf. This has already been
+ defined in YaPI::HTTPD and has to be updated only.
+ (bnc#893100)
+- 3.1.2
+
+-------------------------------------------------------------------
Old:
----
yast2-http-server-3.1.1.tar.bz2
New:
----
yast2-http-server-3.1.2.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ yast2-http-server.spec ++++++
--- /var/tmp/diff_new_pack.uK4ETZ/_old 2014-08-30 16:04:42.000000000 +0200
+++ /var/tmp/diff_new_pack.uK4ETZ/_new 2014-08-30 16:04:42.000000000 +0200
@@ -17,7 +17,7 @@
Name: yast2-http-server
-Version: 3.1.1
+Version: 3.1.2
Release: 0
BuildRoot: %{_tmppath}/%{name}-%{version}-build
++++++ yast2-http-server-3.1.1.tar.bz2 -> yast2-http-server-3.1.2.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-http-server-3.1.1/package/yast2-http-server.changes new/yast2-http-server-3.1.2/package/yast2-http-server.changes
--- old/yast2-http-server-3.1.1/package/yast2-http-server.changes 2014-07-30 17:49:43.000000000 +0200
+++ new/yast2-http-server-3.1.2/package/yast2-http-server.changes 2014-08-29 15:09:10.000000000 +0200
@@ -1,4 +1,13 @@
-------------------------------------------------------------------
+Fri Aug 29 14:36:49 CEST 2014 - schubi(a)suse.de
+
+- Autoyast conifuration: "main" defines the default server configured in
+ /etc/apache2/default-server.conf. This has already been
+ defined in YaPI::HTTPD and has to be updated only.
+ (bnc#893100)
+- 3.1.2
+
+-------------------------------------------------------------------
Wed Jul 30 15:03:11 UTC 2014 - cwh(a)suse.com
- replaced given/when by regular if/elsif cascades to get rid of
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-http-server-3.1.1/package/yast2-http-server.spec new/yast2-http-server-3.1.2/package/yast2-http-server.spec
--- old/yast2-http-server-3.1.1/package/yast2-http-server.spec 2014-07-30 17:49:43.000000000 +0200
+++ new/yast2-http-server-3.1.2/package/yast2-http-server.spec 2014-08-29 15:09:10.000000000 +0200
@@ -17,7 +17,7 @@
Name: yast2-http-server
-Version: 3.1.1
+Version: 3.1.2
Release: 0
BuildRoot: %{_tmppath}/%{name}-%{version}-build
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-http-server-3.1.1/src/clients/http-server_auto.rb new/yast2-http-server-3.1.2/src/clients/http-server_auto.rb
--- old/yast2-http-server-3.1.1/src/clients/http-server_auto.rb 2014-07-30 17:49:43.000000000 +0200
+++ new/yast2-http-server-3.1.2/src/clients/http-server_auto.rb 2014-08-29 15:09:10.000000000 +0200
@@ -75,16 +75,17 @@
# Read current state
elsif @func == "Read"
Yast.import "Progress"
+ old_progress = Progress.set(false) #off();
Progress.off
@ret = HttpServer.Read
- Progress.on
+ Progress.set(old_progress)
# Write givven settings
elsif @func == "Write"
Yast.import "Progress"
- Progress.off
+ old_progress = Progress.set(false) #off();
HttpServer.write_only = true
@ret = HttpServer.Write
- Progress.on
+ Progress.set(old_progress)
else
Builtins.y2error("Unknown function: %1", @func)
@ret = false
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-http-server-3.1.1/src/modules/HttpServer.rb new/yast2-http-server-3.1.2/src/modules/HttpServer.rb
--- old/yast2-http-server-3.1.1/src/modules/HttpServer.rb 2014-07-30 17:49:43.000000000 +0200
+++ new/yast2-http-server-3.1.2/src/modules/HttpServer.rb 2014-08-29 15:09:10.000000000 +0200
@@ -243,7 +243,7 @@
end
end
- Progress.set(false) #off();
+ old_progress = Progress.set(false) #off();
SuSEFirewall.Read
if Package.Installed("bind")
if Ops.greater_than(
@@ -271,7 +271,7 @@
Builtins.y2warning("Package bind is not installed.")
end
Builtins.y2internal("DNS running and configured: %1", @configured_dns)
- Progress.set(true) #on();
+ Progress.set(old_progress) #on();
# read current settings from httpd.conf and sysconfig
Progress.NextStage
@@ -310,7 +310,7 @@
Progress.NextStage
# read current settings for firewall and network
- Progress.set(false) #off();
+ old_progress = Progress.set(false) #off();
NetworkInterfaces.Read
# generate the map: static IP -> device
@@ -361,7 +361,7 @@
)
- Progress.set(true) #on();
+ Progress.set(old_progress) #on();
# translators: progress step
ProgressNextStage(_("Finished"))
@@ -380,7 +380,7 @@
# HttpServer read dialog caption
caption = _("Saving HTTP Server Configuration")
- steps = 2
+ steps = 3
# We do not set help text here, because it was set outside
Progress.New(
@@ -431,7 +431,7 @@
YaST::HTTPDData.WriteHosts
Progress.NextStage
Yast.import "SuSEFirewall"
- Progress.set(false) # Progress::off ();
+ old_progress = Progress.set(false) # off();
# always adapt firewall
if YaST::HTTPDData.WriteListen(false) == nil
@@ -452,7 +452,7 @@
SuSEFirewall.Write
DnsServerAPI.Write if @configured_dns
- Progress.set(true)
+ Progress.set(old_progress)
YaST::HTTPDData.WriteModuleList
# in autoyast, quit here
# Wrong, service still has to be enabled...
@@ -583,13 +583,25 @@
end
# setup hosts
- # foreach (string host, list<map<string, any> > desc, s["hosts"]:$[], ``{ YaST::HTTPDData::CreateHost(host,desc); }); // check host name
Builtins.foreach(Ops.get_list(s, "hosts", [])) do |row|
- YaST::HTTPDData.CreateHost(
- Ops.get_string(row, "KEY", ""),
- Ops.get_list(row, "VALUE", [])
- )
- end # check host name
+ # "main" defines the default server configured in
+ # /etc/apache2/default-server.conf. This has already been
+ # defined in YaPI::HTTPD and has to be updated only.
+ # With the CreateHost call an own entry in /etc/apache2/vhosts.d
+ # will be generated.
+ # (bnc#893100)
+ if row["KEY"] == "main"
+ YaST::HTTPDData.ModifyHost(
+ row["KEY"],
+ row["VALUE"] || []
+ )
+ else
+ YaST::HTTPDData.CreateHost(
+ row["KEY"] || "",
+ row["VALUE"] || []
+ )
+ end
+ end
# setup service
if Builtins.haskey(s, "service")
--
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 vim for openSUSE:Factory checked in at 2014-08-30 16:04:02
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/vim (Old)
and /work/SRC/openSUSE:Factory/.vim.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "vim"
Changes:
--------
--- /work/SRC/openSUSE:Factory/vim/vim.changes 2014-07-27 08:25:56.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.vim.new/vim.changes 2014-08-30 16:04:38.000000000 +0200
@@ -1,0 +2,65 @@
+Fri Aug 29 08:01:50 UTC 2014 - coolo(a)suse.com
+
+- fix license for spdx 1.2
+
+-------------------------------------------------------------------
+Wed Aug 27 12:29:19 UTC 2014 - idonmez(a)suse.com
+
+- Use a disabled _service file
+- Remove the un-needed Perl hack in the spec file
+
+-------------------------------------------------------------------
+Mon Aug 25 11:05:19 UTC 2014 - idonmez(a)suse.com
+
+- Use mercurial tags instead of applying patches one by one. This
+ reduces unexpected failures.
+- Updated to revision 417, fixes the following problems
+ * Can't build with Perl on Fedora 20.
+ * Fold does not open after search when there is a CmdwinLeave
+ autocommand.
+ * "foo bar" sorts before "foo" with sort(). (John Little)
+ * Cannot define a command only when it's used.
+ * Cannot build. Warning for shadowed variable. (John Little)
+ * Problem with breakindent/showbreak and tabs.
+ * After splitting a window and setting 'breakindent' the default
+ minimum with is not respected.
+ * Screen updating is slow when using matches.
+ * Inserting text for Visual block mode, with cursor movement,
+ repeats the wrong text. (Aleksandar Ivanov)
+ * Visual block insert breaks a multi-byte character.
+ * Compiler warning for unused argument and unused variable.
+ * Character after "fb" command not mapped if it might be a composing
+ character.
+ * Test 63 fails when run with GUI-only Vim.
+ * Popup menu flickers too much.
+ * When 'equalalways' is set a split may report "no room" even though
+ there is plenty of room.
+ * Title of quickfist list is not kept for setqflist(list, 'r').
+ * Accessing freed memory after using setqflist(list, 'r'). (Lcd)
+ * Loading python may cause Vim to exit.
+ * Get u_undo error when backspacing in Insert mode deletes more than
+ one line break. (Ayberk Ozgur)
+ * Mapping characters may not work after typing Esc in Insert mode.
+ * Bad interaction between preview window and omnifunc.
+ * Test 102 fails when compiled with small features.
+ * When building with tiny or small features building the .mo files
+ fails.
+ * When splitting a window the changelist position is wrong.
+ * "4gro" replaces one character then executes "ooo". (Urtica Dioica)
+ * With 'linebreak' set and 'list' unset a Tab is not counted
+ properly. (Kent Sibilev)
+ * Still sometimes Vim enters Replace mode when starting up.
+ * Advancing pointer over end of a string.
+ * No 'cursorline' highlighting when the cursor is on a line with
+ diff highlighting. (Benjamin Fritz)
+ * Not easy to detect type of command line window.
+ * C indent is wrong below an if with wrapped condition followed by
+ curly braces. (Trevor Powell)
+ * When 'clipboard' is "unnamed", :g/pat/d is very slow. (Praful)
+ * Matchparen only uses the topmost syntax item.
+ * Encryption implementation is messy. Blowfish encryption has a
+ weakness.
+ * Test 72 crashes under certain conditions. (Kazunobu Kuriyama)
+ * Valgrind reports errors when running test 72. (Dominique Pelle)
+
+-------------------------------------------------------------------
Old:
----
vim-7.4-patches.tar.bz2
vim-7.4.tar.bz2
New:
----
_service
vim-7.4.417.hg.6162.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ vim.spec ++++++
--- /var/tmp/diff_new_pack.yW30mD/_old 2014-08-30 16:04:40.000000000 +0200
+++ /var/tmp/diff_new_pack.yW30mD/_new 2014-08-30 16:04:40.000000000 +0200
@@ -17,13 +17,14 @@
%define pkg_version 7.4
-%define official_ptchlvl 373
+%define patchlevel 417
+%define revision 6162
%define VIM_SUBDIR vim74
%define site_runtimepath /usr/share/vim/site
%define make make VIMRCLOC=/etc VIMRUNTIMEDIR=/usr/share/vim/current MAKE="make -e" %{?_smp_mflags}
Name: vim
-Version: 7.4.%{official_ptchlvl}
+Version: 7.4.%{patchlevel}.hg.%{revision}
Release: 0
BuildRequires: db-devel
%if 0%{?suse_version} > 1020
@@ -69,11 +70,11 @@
Recommends: vim-data = %{version}-%{release}
%endif
Summary: Vi IMproved
-License: SUSE-Vim
+License: Vim
Group: Productivity/Editors/Vi
#
Url: http://www.vim.org/
-Source: ftp://ftp.vim.org/pub/vim/unix/vim-%{pkg_version}.tar.bz2
+Source: vim-%{version}.tar.xz
Source3: suse.vimrc
Source4: vimrc_example1
Source5: vimrc_example2
@@ -86,7 +87,6 @@
Source19: gvim.desktop
Source20: spec.skeleton
Source23: apparmor.vim
-Source98: %{name}-7.4-patches.tar.bz2
Source99: %{name}-7.4-rpmlintrc
Patch3: %{name}-7.4-disable_lang_no.patch
Patch4: %{name}-7.3-gvimrc_fontset.patch
@@ -167,14 +167,8 @@
want less features, you might want to install vim instead.
%prep
-%setup -q -n %{VIM_SUBDIR} -b 98
-for p in ../vim-%{pkg_version}-patches/%{pkg_version}*; do
- test -e $p || break
- test ${p#*/%{pkg_version}.} -le %{official_ptchlvl} || exit 1
- echo Patch $p
- patch -s -p0 < $p
-done
-unset p
+%setup -q
+
%patch3 -p1
%patch4 -p1
%patch5 -p1
@@ -194,11 +188,6 @@
%patch101
cp %{SOURCE3} %{SOURCE4} %{SOURCE5} %{SOURCE8} %{SOURCE10} .
-# newer perl? ugly hack to fix build anyway.
-%if 0%{?suse_version} > 1210
-sed -i -e 's/^XS(XS_/XS_INTERNAL(XS_/' src/if_perl.xs
-%endif
-
%build
export CFLAGS="%{optflags} -Wall -pipe -fno-strict-aliasing"
export CFLAGS=${CFLAGS/-D_FORTIFY_SOURCE=2/-D_FORTIFY_SOURCE=1}
++++++ _service ++++++
<services>
<service name="tar_scm" mode="disabled">
<param name="scm">hg</param>
<param name="url">https://code.google.com/p/vim/</param>
<param name="filename">vim</param>
<param name="versionprefix">7.4.417.hg</param>
<param name="revision">v7-4-417</param>
</service>
<service name="recompress" mode="disabled">
<param name="compression">xz</param>
<param name="file">vim*.tar</param>
</service>
</services>
++++++ vim-7.3-filetype_spec.patch ++++++
--- /var/tmp/diff_new_pack.yW30mD/_old 2014-08-30 16:04:40.000000000 +0200
+++ /var/tmp/diff_new_pack.yW30mD/_new 2014-08-30 16:04:40.000000000 +0200
@@ -1,7 +1,8 @@
-diff -rup vim73.orig/runtime/filetype.vim vim73/runtime/filetype.vim
---- vim73.orig/runtime/filetype.vim 2010-08-03 22:44:00.000000000 +0200
-+++ vim73/runtime/filetype.vim 2010-11-21 05:57:07.132983365 +0100
-@@ -1897,7 +1897,7 @@ endfunc
+Index: vim/runtime/filetype.vim
+===================================================================
+--- vim.orig/runtime/filetype.vim
++++ vim/runtime/filetype.vim
+@@ -2038,7 +2038,7 @@ endfunc
" Spec (Linux RPM)
@@ -10,10 +11,11 @@
" Speedup (AspenTech plant simulator)
au BufNewFile,BufRead *.speedup,*.spdata,*.spd setf spup
-diff -rup vim73.orig/runtime/syntax/spec.vim vim73/runtime/syntax/spec.vim
---- vim73.orig/runtime/syntax/spec.vim 2010-05-15 13:03:57.000000000 +0200
-+++ vim73/runtime/syntax/spec.vim 2010-11-21 05:57:07.130970392 +0100
-@@ -104,7 +104,7 @@ syn case ignore
+Index: vim/runtime/syntax/spec.vim
+===================================================================
+--- vim.orig/runtime/syntax/spec.vim
++++ vim/runtime/syntax/spec.vim
+@@ -105,7 +105,7 @@ syn case ignore
"%% PreAmble Section %%
"Copyright and Serial were deprecated by License and Epoch
syn region specPreAmbleDeprecated oneline matchgroup=specError start='^\(Copyright\|Serial\)' end='$' contains=specEmail,specURL,specURLMacro,specLicense,specColon,specVariables,specSpecialChar,specMacroIdentifier
@@ -22,12 +24,12 @@
"%% Description Section %%
syn region specDescriptionArea matchgroup=specSection start='^%description' end='^%'me=e-1 contains=specDescriptionOpts,specEmail,specURL,specNumber,specMacroIdentifier,specComment
-@@ -113,7 +113,7 @@ syn region specDescriptionArea matchgrou
+@@ -114,7 +114,7 @@ syn region specDescriptionArea matchgrou
syn region specPackageArea matchgroup=specSection start='^%package' end='^%'me=e-1 contains=specPackageOpts,specPreAmble,specComment
"%% Scripts Section %%
--syn region specScriptArea matchgroup=specSection start='^%\(prep\|build\|install\|clean\|pre\|postun\|preun\|post\)\>' skip='^%{\|^%\(define\|patch\d*\|configure\|GNUconfigure\|setup\|find_lang\|makeinstall\)\>' end='^%'me=e-1 contains=specSpecialVariables,specVariables,@specCommands,specVariables,shDo,shFor,shCaseEsac,specNoNumberHilite,specCommandOpts,shComment,shIf,specSpecialChar,specMacroIdentifier,specSectionMacroArea,specSectionMacroBracketArea,shOperator,shQuote1,shQuote2
-+syn region specScriptArea matchgroup=specSection start='^%\(prep\|check\|build\|install\|clean\|pre\|postun\|preun\|post\)\>' skip='^%{\|^%\(define\|patch\d*\|configure\|GNUconfigure\|setup\|find_lang\|makeinstall\)\>' end='^%'me=e-1 contains=specSpecialVariables,specVariables,@specCommands,specVariables,shDo,shFor,shCaseEsac,specNoNumberHilite,specCommandOpts,shComment,shIf,specSpecialChar,specMacroIdentifier,specSectionMacroArea,specSectionMacroBracketArea,shOperator,shQuote1,shQuote2
+-syn region specScriptArea matchgroup=specSection start='^%\(prep\|build\|install\|clean\|pre\|postun\|preun\|post\|posttrans\)\>' skip='^%{\|^%\(define\|patch\d*\|configure\|GNUconfigure\|setup\|find_lang\|makeinstall\|make_install\)\>' end='^%'me=e-1 contains=specSpecialVariables,specVariables,@specCommands,specVariables,shDo,shFor,shCaseEsac,specNoNumberHilite,specCommandOpts,shComment,shIf,specSpecialChar,specMacroIdentifier,specSectionMacroArea,specSectionMacroBracketArea,shOperator,shQuote1,shQuote2
++syn region specScriptArea matchgroup=specSection start='^%\(prep\|build\|check\|install\|clean\|pre\|postun\|preun\|post\|posttrans\)\>' skip='^%{\|^%\(define\|patch\d*\|configure\|GNUconfigure\|setup\|find_lang\|makeinstall\|make_install\)\>' end='^%'me=e-1 contains=specSpecialVariables,specVariables,@specCommands,specVariables,shDo,shFor,shCaseEsac,specNoNumberHilite,specCommandOpts,shComment,shIf,specSpecialChar,specMacroIdentifier,specSectionMacroArea,specSectionMacroBracketArea,shOperator,shQuote1,shQuote2
"%% Changelog Section %%
syn region specChangelogArea matchgroup=specSection start='^%changelog' end='^%'me=e-1 contains=specEmail,specURL,specWeekday,specMonth,specNumber,specComment,specLicense
--
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 kernel-source for openSUSE:Factory checked in at 2014-08-30 16:04:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kernel-source (Old)
and /work/SRC/openSUSE:Factory/.kernel-source.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kernel-source"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kernel-source/kernel-debug.changes 2014-08-11 10:08:40.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kernel-source.new/kernel-debug.changes 2014-08-30 16:04:31.000000000 +0200
@@ -1,0 +2,191 @@
+Wed Aug 27 16:45:38 CEST 2014 - mmarek(a)suse.cz
+
+- rpm/config.sh Use the same repository setup as the master branch
+- commit 90bc0f1
+
+-------------------------------------------------------------------
+Tue Aug 26 14:16:14 CEST 2014 - jslaby(a)suse.cz
+
+- rpm/config.sh: build against factory
+- commit 768ed24
+
+-------------------------------------------------------------------
+Tue Aug 26 13:57:20 CEST 2014 - dsterba(a)suse.cz
+
+- Btrfs stable updates.
+ Pending or future 3.16.y fixes
+- Btrfs: read lock extent buffer while walking backrefs.
+- Btrfs: fix compressed write corruption on enospc.
+- Btrfs: fix csum tree corruption, duplicate and outdated
+ checksums.
+- Btrfs: fill_holes: Fix slot number passed to hole_mergeable()
+ call.
+- Btrfs: fix wrong write range for filemap_fdatawrite_range().
+- Btrfs: fix wrong extent mapping for DirectIO.
+- btrfs: Return right extent when fiemap gives unaligned offset
+ and len.
+- Btrfs: ensure tmpfile inode is always persisted with link
+ count of 0.
+- Btrfs: don't monopolize a core when evicting inode.
+- Btrfs: fix task hang under heavy compressed write.
+- Refresh
+ patches.fixes/Btrfs-Fix-memory-corruption-by-ulist_add_merge-on-32.
+- commit c40eb71
+
+-------------------------------------------------------------------
+Thu Aug 21 17:46:08 CEST 2014 - tiwai(a)suse.de
+
+- Btrfs: Fix memory corruption by ulist_add_merge() on 32bit arch
+ (bnc#887046).
+- commit b1e2a41
+
+-------------------------------------------------------------------
+Thu Aug 21 16:48:07 CEST 2014 - mmarek(a)suse.cz
+
+- rpm/kernel-binary.spec.in: Fix the version variables in the generated
+ Makefile (bnc#892973)
+- commit 8331f47
+
+-------------------------------------------------------------------
+Wed Aug 20 17:36:52 CEST 2014 - mmarek(a)suse.cz
+
+- rpm/compress-vmlinux.sh: Do not duplicate the job of brp-99-compress-vmlinux
+- commit e561498
+
+-------------------------------------------------------------------
+Wed Aug 20 12:32:25 CEST 2014 - afaerber(a)suse.de
+
+- config: arm64: Enable RTC_DRV_HID_SENSOR_TIME
+ For consistency across ARM configs.
+ This drags in IIO. For consistency, in turn use:
+ CONFIG_IIO_SIMPLE_DUMMY=m
+ CONFIG_HID_SENSOR_IIO_TRIGGER=m
+ CONFIG_IIO_PERIODIC_RTC_TRIGGER=m
+ CONFIG_IIO_INTERRUPT_TRIGGER=m
+ CONFIG_IIO_SYSFS_TRIGGER=m
+ CONFIG_IIO_BUFFER=y
+ CONFIG_IIO_KFIFO_BUF=m
+ CONFIG_HID_SENSOR_*=m
+- commit 7a6e5f7
+
+-------------------------------------------------------------------
+Wed Aug 20 11:15:39 CEST 2014 - afaerber(a)suse.de
+
+- config: armv6hl: Re-enable DWC2 USB support
+ The config update/cleanup for v3.16-rc3 mistakenly disabled USB_DWC2,
+ which is needed for the Raspberry Pi.
+ Fixes: d2f49e165ca3 ("config: armv6hl: Update config for 3.16-rc3")
+- commit cc9f241
+
+-------------------------------------------------------------------
+Wed Aug 20 10:40:38 CEST 2014 - afaerber(a)suse.de
+
+- config: ARM: Change RTC drivers to built-in
+ Consistently do not build RTC drivers as modules. This fixes subtle
+ differences between armv7hl default and lpae flavors and avoids any
+ timing-related driver initialization issues.
+ To make RTC_DRV_88PM80X built-in, make MFD_88PM800 built-in, too.
+ To make RTC_DRV_PM8XXX built-in, make MFD_PM8921_CORE built-in, too.
+- commit cf526c8
+
+-------------------------------------------------------------------
+Mon Aug 18 15:26:34 CEST 2014 - mmarek(a)suse.cz
+
+- rpm/config.sh: Drop the ARM repo, it is covered by the ports repo
+- commit 84ffa90
+
+-------------------------------------------------------------------
+Mon Aug 18 15:12:21 CEST 2014 - schwab(a)suse.de
+
+- rpm/kernel-binary.spec.in: Fix missing quotes around %build_flavor
+ %build_flavor can be an arbitrary string, so it needs to be quoted for
+ string comparison.
+- commit 0134440
+
+-------------------------------------------------------------------
+Mon Aug 18 13:58:23 CEST 2014 - dvaleev(a)suse.com
+
+- rpm/kernel-obs-build.spec.in: Use dracut for SLE12
+- commit ec64eaf
+
+-------------------------------------------------------------------
+Mon Aug 18 04:50:46 CEST 2014 - afaerber(a)suse.de
+
+- config: armv6hl: Enable DMA_BCM2835
+ Only bcm2835 option missing.
+- commit 1fd2cdd
+
+-------------------------------------------------------------------
+Mon Aug 18 03:41:01 CEST 2014 - afaerber(a)suse.de
+
+- config: armv7hl: Enable DWMAC_SUNXI for lpae flavor as well
+ Without this, the Cubietruck has no network in LPAE mode.
+- commit 4f16280
+
+-------------------------------------------------------------------
+Sun Aug 17 10:28:54 CEST 2014 - jslaby(a)suse.cz
+
+- Linux 3.16.1.
+- commit 9353bcb
+
+-------------------------------------------------------------------
+Wed Aug 13 18:23:31 CEST 2014 - tiwai(a)suse.de
+
+- Revert "config: armv7hl: Disable OMAP DRM"
+ This reverts commit f92487dbd7a305531e4cc54c41609b8f77a1bc30.
+ The previous commit should fix the build error of omapdrm.
+- commit 07174c1
+
+-------------------------------------------------------------------
+Wed Aug 13 18:23:18 CEST 2014 - tiwai(a)suse.de
+
+- drm: omapdrm: fix compiler errors.
+- commit ee3abc8
+
+-------------------------------------------------------------------
+Wed Aug 13 15:20:31 CEST 2014 - afaerber(a)suse.de
+
+- config: armv7hl: Disable OMAP DRM
+ To avoid errors such as:
+ ../drivers/gpu/drm/omapdrm/omap_plane.c: In function 'omap_plane_pre_apply':
+ ../drivers/gpu/drm/omapdrm/omap_plane.c:145:2: error: format '%x' expects argument of type 'unsigned int', but argument 5 has type 'dma_addr_t' [-Werror=format=]
+ DBG("%d,%d %08x %08x", info->pos_x, info->pos_y,
+ ^
+ ../drivers/gpu/drm/omapdrm/omap_plane.c:145:2: error: format '%x' expects argument of type 'unsigned int', but argument 6 has type 'dma_addr_t' [-Werror=format=]
+ cc1: all warnings being treated as errors
+ disable OMAP DRM for now.
+ Two patches were sent upstream by Matwey V. Kornilov but didn't find
+ their way into v3.16. Once patches are applied, revert this commit.
+- commit f92487d
+
+-------------------------------------------------------------------
+Wed Aug 13 14:47:17 CEST 2014 - afaerber(a)suse.de
+
+- config: arm64: Disable ARM64 crypto extensions
+ To avoid build errors such as:
+ ld: cannot find arch/arm64/crypto/aes-glue-ce.o: No such file or directory
+ ../scripts/Makefile.build:411: recipe for target 'arch/arm64/crypto/aes-ce-blk.o' failed
+ disable support for ARM64 crypto extensions for now.
+ A patch was submitted upstream by Andreas Schwab but didn't make it into
+ v3.16. Once that is available, this commit should be reverted.
+- commit 5f99cfd
+
+-------------------------------------------------------------------
+Tue Aug 12 08:50:20 CEST 2014 - schwab(a)suse.de
+
+- config: arm64/default: make rtc-pl03[01] built-in
+- commit 1b1d9da
+
+-------------------------------------------------------------------
+Fri Aug 8 23:31:50 CEST 2014 - jeffm(a)suse.com
+
+- rtsx_usb: export device table (bnc#890096).
+- commit a29135e
+
+-------------------------------------------------------------------
+Fri Aug 8 12:46:34 CEST 2014 - tiwai(a)suse.de
+
+- Delete patches.drivers/drm-cirrus-Use-16bpp-as-default (bnc#890599).
+- commit 820d92f
+
+-------------------------------------------------------------------
@@ -8,0 +200,7 @@
+Tue Aug 5 06:15:41 CEST 2014 - jeffm(a)suse.com
+
+- nfs: nfs3_list_one_acl(): check get_acl() result with
+ IS_ERR_OR_NULL (bko#81111 bnc#889790).
+- commit 258e3b0
++++ 3196 more lines (skipped)
++++ between /work/SRC/openSUSE:Factory/kernel-source/kernel-debug.changes
++++ and /work/SRC/openSUSE:Factory/.kernel-source.new/kernel-debug.changes
kernel-default.changes: same change
kernel-desktop.changes: same change
kernel-docs.changes: same change
kernel-ec2.changes: same change
kernel-lpae.changes: same change
kernel-obs-build.changes: same change
kernel-obs-qa-xen.changes: same change
kernel-obs-qa.changes: same change
kernel-pae.changes: same change
kernel-source.changes: same change
kernel-syms.changes: same change
kernel-vanilla.changes: same change
kernel-xen.changes: same change
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kernel-debug.spec ++++++
--- /var/tmp/diff_new_pack.jHtM3G/_old 2014-08-30 16:04:36.000000000 +0200
+++ /var/tmp/diff_new_pack.jHtM3G/_new 2014-08-30 16:04:36.000000000 +0200
@@ -20,16 +20,16 @@
# needssslcertforbuild
%define srcversion 3.16
-%define patchversion 3.16.0
+%define patchversion 3.16.1
%define variant %{nil}
%define vanilla_only 0
%include %_sourcedir/kernel-spec-macros
%define build_flavor debug
-%define build_default (%build_flavor == "default")
-%define build_xen (%build_flavor == "xen" || %build_flavor == "ec2")
-%define build_vanilla (%build_flavor == "vanilla")
+%define build_default ("%build_flavor" == "default")
+%define build_xen ("%build_flavor" == "xen" || "%build_flavor" == "ec2")
+%define build_vanilla ("%build_flavor" == "vanilla")
%define build_src_dir %my_builddir/linux-%srcversion
%define src_install_dir /usr/src/linux-%kernelrelease%variant
@@ -59,11 +59,11 @@
Summary: A Debug Version of the Kernel
License: GPL-2.0
Group: System/Kernel
-Version: 3.16.0
+Version: 3.16.1
%if 0%{?is_kotd}
-Release: <RELEASE>.g0e31675
+Release: <RELEASE>.g90bc0f1
%else
-Release: 0
+Release: <RELEASE>.g90bc0f1
%endif
Url: http://www.kernel.org/
BuildRequires: bc
@@ -816,7 +816,7 @@
# Recreate the generated Makefile with correct path
sh ../scripts/mkmakefile ../../../linux-%kernelrelease%variant \
%rpm_install_dir/%cpu_arch_flavor \
- $(echo %srcversion | sed -r 's/^([0-9]+)\.([0-9]+)[\.-].*/\1 \2/')
+ $(echo %srcversion | sed -r 's/^([0-9]+)\.([0-9]+).*/\1 \2/')
fi
add_dirs_to_filelist() {
++++++ kernel-default.spec ++++++
--- /var/tmp/diff_new_pack.jHtM3G/_old 2014-08-30 16:04:36.000000000 +0200
+++ /var/tmp/diff_new_pack.jHtM3G/_new 2014-08-30 16:04:36.000000000 +0200
@@ -20,16 +20,16 @@
# needssslcertforbuild
%define srcversion 3.16
-%define patchversion 3.16.0
+%define patchversion 3.16.1
%define variant %{nil}
%define vanilla_only 0
%include %_sourcedir/kernel-spec-macros
%define build_flavor default
-%define build_default (%build_flavor == "default")
-%define build_xen (%build_flavor == "xen" || %build_flavor == "ec2")
-%define build_vanilla (%build_flavor == "vanilla")
+%define build_default ("%build_flavor" == "default")
+%define build_xen ("%build_flavor" == "xen" || "%build_flavor" == "ec2")
+%define build_vanilla ("%build_flavor" == "vanilla")
%define build_src_dir %my_builddir/linux-%srcversion
%define src_install_dir /usr/src/linux-%kernelrelease%variant
@@ -59,11 +59,11 @@
Summary: The Standard Kernel
License: GPL-2.0
Group: System/Kernel
-Version: 3.16.0
+Version: 3.16.1
%if 0%{?is_kotd}
-Release: <RELEASE>.g0e31675
+Release: <RELEASE>.g90bc0f1
%else
-Release: 0
+Release: <RELEASE>.g90bc0f1
%endif
Url: http://www.kernel.org/
BuildRequires: bc
@@ -837,7 +837,7 @@
# Recreate the generated Makefile with correct path
sh ../scripts/mkmakefile ../../../linux-%kernelrelease%variant \
%rpm_install_dir/%cpu_arch_flavor \
- $(echo %srcversion | sed -r 's/^([0-9]+)\.([0-9]+)[\.-].*/\1 \2/')
+ $(echo %srcversion | sed -r 's/^([0-9]+)\.([0-9]+).*/\1 \2/')
fi
add_dirs_to_filelist() {
++++++ kernel-desktop.spec ++++++
--- /var/tmp/diff_new_pack.jHtM3G/_old 2014-08-30 16:04:36.000000000 +0200
+++ /var/tmp/diff_new_pack.jHtM3G/_new 2014-08-30 16:04:36.000000000 +0200
@@ -20,16 +20,16 @@
# needssslcertforbuild
%define srcversion 3.16
-%define patchversion 3.16.0
+%define patchversion 3.16.1
%define variant %{nil}
%define vanilla_only 0
%include %_sourcedir/kernel-spec-macros
%define build_flavor desktop
-%define build_default (%build_flavor == "default")
-%define build_xen (%build_flavor == "xen" || %build_flavor == "ec2")
-%define build_vanilla (%build_flavor == "vanilla")
+%define build_default ("%build_flavor" == "default")
+%define build_xen ("%build_flavor" == "xen" || "%build_flavor" == "ec2")
+%define build_vanilla ("%build_flavor" == "vanilla")
%define build_src_dir %my_builddir/linux-%srcversion
%define src_install_dir /usr/src/linux-%kernelrelease%variant
@@ -59,11 +59,11 @@
Summary: Kernel optimized for the desktop
License: GPL-2.0
Group: System/Kernel
-Version: 3.16.0
+Version: 3.16.1
%if 0%{?is_kotd}
-Release: <RELEASE>.g0e31675
+Release: <RELEASE>.g90bc0f1
%else
-Release: 0
+Release: <RELEASE>.g90bc0f1
%endif
Url: http://www.kernel.org/
BuildRequires: bc
@@ -825,7 +825,7 @@
# Recreate the generated Makefile with correct path
sh ../scripts/mkmakefile ../../../linux-%kernelrelease%variant \
%rpm_install_dir/%cpu_arch_flavor \
- $(echo %srcversion | sed -r 's/^([0-9]+)\.([0-9]+)[\.-].*/\1 \2/')
+ $(echo %srcversion | sed -r 's/^([0-9]+)\.([0-9]+).*/\1 \2/')
fi
add_dirs_to_filelist() {
++++++ kernel-docs.spec ++++++
--- /var/tmp/diff_new_pack.jHtM3G/_old 2014-08-30 16:04:36.000000000 +0200
+++ /var/tmp/diff_new_pack.jHtM3G/_new 2014-08-30 16:04:36.000000000 +0200
@@ -16,7 +16,7 @@
#
-%define patchversion 3.16.0
+%define patchversion 3.16.1
%define variant %{nil}
%include %_sourcedir/kernel-spec-macros
@@ -25,11 +25,11 @@
Summary: Kernel Documentation
License: GPL-2.0
Group: Documentation/Man
-Version: 3.16.0
+Version: 3.16.1
%if 0%{?is_kotd}
-Release: <RELEASE>.g0e31675
+Release: <RELEASE>.g90bc0f1
%else
-Release: 0
+Release: <RELEASE>.g90bc0f1
%endif
BuildRequires: docbook-toys
BuildRequires: docbook-utils
++++++ kernel-ec2.spec ++++++
--- /var/tmp/diff_new_pack.jHtM3G/_old 2014-08-30 16:04:36.000000000 +0200
+++ /var/tmp/diff_new_pack.jHtM3G/_new 2014-08-30 16:04:36.000000000 +0200
@@ -20,16 +20,16 @@
# needssslcertforbuild
%define srcversion 3.16
-%define patchversion 3.16.0
+%define patchversion 3.16.1
%define variant %{nil}
%define vanilla_only 0
%include %_sourcedir/kernel-spec-macros
%define build_flavor ec2
-%define build_default (%build_flavor == "default")
-%define build_xen (%build_flavor == "xen" || %build_flavor == "ec2")
-%define build_vanilla (%build_flavor == "vanilla")
+%define build_default ("%build_flavor" == "default")
+%define build_xen ("%build_flavor" == "xen" || "%build_flavor" == "ec2")
+%define build_vanilla ("%build_flavor" == "vanilla")
%define build_src_dir %my_builddir/linux-%srcversion
%define src_install_dir /usr/src/linux-%kernelrelease%variant
@@ -59,11 +59,11 @@
Summary: The Amazon EC2 Xen Kernel
License: GPL-2.0
Group: System/Kernel
-Version: 3.16.0
+Version: 3.16.1
%if 0%{?is_kotd}
-Release: <RELEASE>.g0e31675
+Release: <RELEASE>.g90bc0f1
%else
-Release: 0
+Release: <RELEASE>.g90bc0f1
%endif
Url: http://www.kernel.org/
BuildRequires: bc
@@ -815,7 +815,7 @@
# Recreate the generated Makefile with correct path
sh ../scripts/mkmakefile ../../../linux-%kernelrelease%variant \
%rpm_install_dir/%cpu_arch_flavor \
- $(echo %srcversion | sed -r 's/^([0-9]+)\.([0-9]+)[\.-].*/\1 \2/')
+ $(echo %srcversion | sed -r 's/^([0-9]+)\.([0-9]+).*/\1 \2/')
fi
add_dirs_to_filelist() {
++++++ kernel-lpae.spec ++++++
--- /var/tmp/diff_new_pack.jHtM3G/_old 2014-08-30 16:04:36.000000000 +0200
+++ /var/tmp/diff_new_pack.jHtM3G/_new 2014-08-30 16:04:36.000000000 +0200
@@ -20,16 +20,16 @@
# needssslcertforbuild
%define srcversion 3.16
-%define patchversion 3.16.0
+%define patchversion 3.16.1
%define variant %{nil}
%define vanilla_only 0
%include %_sourcedir/kernel-spec-macros
%define build_flavor lpae
-%define build_default (%build_flavor == "default")
-%define build_xen (%build_flavor == "xen" || %build_flavor == "ec2")
-%define build_vanilla (%build_flavor == "vanilla")
+%define build_default ("%build_flavor" == "default")
+%define build_xen ("%build_flavor" == "xen" || "%build_flavor" == "ec2")
+%define build_vanilla ("%build_flavor" == "vanilla")
%define build_src_dir %my_builddir/linux-%srcversion
%define src_install_dir /usr/src/linux-%kernelrelease%variant
@@ -59,11 +59,11 @@
Summary: Kernel for LPAE enabled systems
License: GPL-2.0
Group: System/Kernel
-Version: 3.16.0
+Version: 3.16.1
%if 0%{?is_kotd}
-Release: <RELEASE>.g0e31675
+Release: <RELEASE>.g90bc0f1
%else
-Release: 0
+Release: <RELEASE>.g90bc0f1
%endif
Url: http://www.kernel.org/
BuildRequires: bc
@@ -813,7 +813,7 @@
# Recreate the generated Makefile with correct path
sh ../scripts/mkmakefile ../../../linux-%kernelrelease%variant \
%rpm_install_dir/%cpu_arch_flavor \
- $(echo %srcversion | sed -r 's/^([0-9]+)\.([0-9]+)[\.-].*/\1 \2/')
+ $(echo %srcversion | sed -r 's/^([0-9]+)\.([0-9]+).*/\1 \2/')
fi
add_dirs_to_filelist() {
++++++ kernel-obs-build.spec ++++++
--- /var/tmp/diff_new_pack.jHtM3G/_old 2014-08-30 16:04:36.000000000 +0200
+++ /var/tmp/diff_new_pack.jHtM3G/_new 2014-08-30 16:04:36.000000000 +0200
@@ -19,7 +19,7 @@
#!BuildIgnore: post-build-checks
-%define patchversion 3.16.0
+%define patchversion 3.16.1
%define variant %{nil}
%include %_sourcedir/kernel-spec-macros
@@ -34,7 +34,7 @@
BuildRequires: kernel-xen
%endif
ExclusiveArch: aarch64 armv6hl armv7hl %ix86 ppc ppc64 ppc64le s390x x86_64
-%if 0%{?suse_version} < 1320
+%if 0%{?suse_version} < 1315
# For SLE 11
BuildRequires: mkinitrd
BuildRequires: perl-Bootloader
@@ -45,11 +45,11 @@
Summary: package kernel and initrd for OBS VM builds
License: GPL-2.0
Group: SLES
-Version: 3.16.0
+Version: 3.16.1
%if 0%{?is_kotd}
-Release: <RELEASE>.g0e31675
+Release: <RELEASE>.g90bc0f1
%else
-Release: 0
+Release: <RELEASE>.g90bc0f1
%endif
%description
@@ -105,7 +105,7 @@
%define kernel_name Image
%endif
-%if 0%{?suse_version} < 1320
+%if 0%{?suse_version} < 1315
# For SLE 11
/sbin/mkinitrd $ROOT \
-m "$KERNEL_MODULES" \
++++++ kernel-obs-qa-xen.spec ++++++
--- /var/tmp/diff_new_pack.jHtM3G/_old 2014-08-30 16:04:36.000000000 +0200
+++ /var/tmp/diff_new_pack.jHtM3G/_new 2014-08-30 16:04:36.000000000 +0200
@@ -17,7 +17,7 @@
# needsrootforbuild
-%define patchversion 3.16.0
+%define patchversion 3.16.1
%define variant %{nil}
%include %_sourcedir/kernel-spec-macros
@@ -36,11 +36,11 @@
Summary: Basic QA tests for the kernel
License: GPL-2.0
Group: SLES
-Version: 3.16.0
+Version: 3.16.1
%if 0%{?is_kotd}
-Release: <RELEASE>.g0e31675
+Release: <RELEASE>.g90bc0f1
%else
-Release: 0
+Release: <RELEASE>.g90bc0f1
%endif
%description
kernel-obs-qa.spec: same change
++++++ kernel-pae.spec ++++++
--- /var/tmp/diff_new_pack.jHtM3G/_old 2014-08-30 16:04:36.000000000 +0200
+++ /var/tmp/diff_new_pack.jHtM3G/_new 2014-08-30 16:04:36.000000000 +0200
@@ -20,16 +20,16 @@
# needssslcertforbuild
%define srcversion 3.16
-%define patchversion 3.16.0
+%define patchversion 3.16.1
%define variant %{nil}
%define vanilla_only 0
%include %_sourcedir/kernel-spec-macros
%define build_flavor pae
-%define build_default (%build_flavor == "default")
-%define build_xen (%build_flavor == "xen" || %build_flavor == "ec2")
-%define build_vanilla (%build_flavor == "vanilla")
+%define build_default ("%build_flavor" == "default")
+%define build_xen ("%build_flavor" == "xen" || "%build_flavor" == "ec2")
+%define build_vanilla ("%build_flavor" == "vanilla")
%define build_src_dir %my_builddir/linux-%srcversion
%define src_install_dir /usr/src/linux-%kernelrelease%variant
@@ -59,11 +59,11 @@
Summary: Kernel with PAE Support
License: GPL-2.0
Group: System/Kernel
-Version: 3.16.0
+Version: 3.16.1
%if 0%{?is_kotd}
-Release: <RELEASE>.g0e31675
+Release: <RELEASE>.g90bc0f1
%else
-Release: 0
+Release: <RELEASE>.g90bc0f1
%endif
Url: http://www.kernel.org/
BuildRequires: bc
@@ -824,7 +824,7 @@
# Recreate the generated Makefile with correct path
sh ../scripts/mkmakefile ../../../linux-%kernelrelease%variant \
%rpm_install_dir/%cpu_arch_flavor \
- $(echo %srcversion | sed -r 's/^([0-9]+)\.([0-9]+)[\.-].*/\1 \2/')
+ $(echo %srcversion | sed -r 's/^([0-9]+)\.([0-9]+).*/\1 \2/')
fi
add_dirs_to_filelist() {
++++++ kernel-source.spec ++++++
--- /var/tmp/diff_new_pack.jHtM3G/_old 2014-08-30 16:04:36.000000000 +0200
+++ /var/tmp/diff_new_pack.jHtM3G/_new 2014-08-30 16:04:36.000000000 +0200
@@ -18,7 +18,7 @@
%define srcversion 3.16
-%define patchversion 3.16.0
+%define patchversion 3.16.1
%define variant %{nil}
%define vanilla_only 0
@@ -30,11 +30,11 @@
Summary: The Linux Kernel Sources
License: GPL-2.0
Group: Development/Sources
-Version: 3.16.0
+Version: 3.16.1
%if 0%{?is_kotd}
-Release: <RELEASE>.g0e31675
+Release: <RELEASE>.g90bc0f1
%else
-Release: 0
+Release: <RELEASE>.g90bc0f1
%endif
Url: http://www.kernel.org/
AutoReqProv: off
++++++ kernel-syms.spec ++++++
--- /var/tmp/diff_new_pack.jHtM3G/_old 2014-08-30 16:04:36.000000000 +0200
+++ /var/tmp/diff_new_pack.jHtM3G/_new 2014-08-30 16:04:36.000000000 +0200
@@ -24,12 +24,12 @@
Summary: Kernel Symbol Versions (modversions)
License: GPL-2.0
Group: Development/Sources
-Version: 3.16.0
+Version: 3.16.1
%if %using_buildservice
%if 0%{?is_kotd}
-Release: <RELEASE>.g0e31675
+Release: <RELEASE>.g90bc0f1
%else
-Release: 0
+Release: <RELEASE>.g90bc0f1
%endif
%else
%define kernel_source_release %(LC_ALL=C rpm -q kernel-devel%variant-%version --qf "%{RELEASE}" | grep -v 'not installed' || echo 0)
++++++ kernel-vanilla.spec ++++++
--- /var/tmp/diff_new_pack.jHtM3G/_old 2014-08-30 16:04:36.000000000 +0200
+++ /var/tmp/diff_new_pack.jHtM3G/_new 2014-08-30 16:04:36.000000000 +0200
@@ -20,16 +20,16 @@
# needssslcertforbuild
%define srcversion 3.16
-%define patchversion 3.16.0
+%define patchversion 3.16.1
%define variant %{nil}
%define vanilla_only 0
%include %_sourcedir/kernel-spec-macros
%define build_flavor vanilla
-%define build_default (%build_flavor == "default")
-%define build_xen (%build_flavor == "xen" || %build_flavor == "ec2")
-%define build_vanilla (%build_flavor == "vanilla")
+%define build_default ("%build_flavor" == "default")
+%define build_xen ("%build_flavor" == "xen" || "%build_flavor" == "ec2")
+%define build_vanilla ("%build_flavor" == "vanilla")
%define build_src_dir %my_builddir/linux-%srcversion
%define src_install_dir /usr/src/linux-%kernelrelease%variant
@@ -59,11 +59,11 @@
Summary: The Standard Kernel - without any SUSE patches
License: GPL-2.0
Group: System/Kernel
-Version: 3.16.0
+Version: 3.16.1
%if 0%{?is_kotd}
-Release: <RELEASE>.g0e31675
+Release: <RELEASE>.g90bc0f1
%else
-Release: 0
+Release: <RELEASE>.g90bc0f1
%endif
Url: http://www.kernel.org/
BuildRequires: bc
@@ -812,7 +812,7 @@
# Recreate the generated Makefile with correct path
sh ../scripts/mkmakefile ../../../linux-%kernelrelease%variant \
%rpm_install_dir/%cpu_arch_flavor \
- $(echo %srcversion | sed -r 's/^([0-9]+)\.([0-9]+)[\.-].*/\1 \2/')
+ $(echo %srcversion | sed -r 's/^([0-9]+)\.([0-9]+).*/\1 \2/')
fi
add_dirs_to_filelist() {
++++++ kernel-xen.spec ++++++
--- /var/tmp/diff_new_pack.jHtM3G/_old 2014-08-30 16:04:36.000000000 +0200
+++ /var/tmp/diff_new_pack.jHtM3G/_new 2014-08-30 16:04:36.000000000 +0200
@@ -20,16 +20,16 @@
# needssslcertforbuild
%define srcversion 3.16
-%define patchversion 3.16.0
+%define patchversion 3.16.1
%define variant %{nil}
%define vanilla_only 0
%include %_sourcedir/kernel-spec-macros
%define build_flavor xen
-%define build_default (%build_flavor == "default")
-%define build_xen (%build_flavor == "xen" || %build_flavor == "ec2")
-%define build_vanilla (%build_flavor == "vanilla")
+%define build_default ("%build_flavor" == "default")
+%define build_xen ("%build_flavor" == "xen" || "%build_flavor" == "ec2")
+%define build_vanilla ("%build_flavor" == "vanilla")
%define build_src_dir %my_builddir/linux-%srcversion
%define src_install_dir /usr/src/linux-%kernelrelease%variant
@@ -59,11 +59,11 @@
Summary: The Xen Kernel
License: GPL-2.0
Group: System/Kernel
-Version: 3.16.0
+Version: 3.16.1
%if 0%{?is_kotd}
-Release: <RELEASE>.g0e31675
+Release: <RELEASE>.g90bc0f1
%else
-Release: 0
+Release: <RELEASE>.g90bc0f1
%endif
Url: http://www.kernel.org/
BuildRequires: bc
@@ -818,7 +818,7 @@
# Recreate the generated Makefile with correct path
sh ../scripts/mkmakefile ../../../linux-%kernelrelease%variant \
%rpm_install_dir/%cpu_arch_flavor \
- $(echo %srcversion | sed -r 's/^([0-9]+)\.([0-9]+)[\.-].*/\1 \2/')
+ $(echo %srcversion | sed -r 's/^([0-9]+)\.([0-9]+).*/\1 \2/')
fi
add_dirs_to_filelist() {
++++++ compress-vmlinux.sh ++++++
--- /var/tmp/diff_new_pack.jHtM3G/_old 2014-08-30 16:04:37.000000000 +0200
+++ /var/tmp/diff_new_pack.jHtM3G/_new 2014-08-30 16:04:37.000000000 +0200
@@ -2,6 +2,11 @@
set -x
+# Once the brp script is reasonably widespread, we will remove the specfile
+# hack and this script
+if test -x /usr/lib/rpm/brp-suse.d/brp-99-compress-vmlinux; then
+ exit 0
+fi
vmlinux=$1
if test -e "$vmlinux" -a -e "$vmlinux.gz"; then
# Deliberately not using gzip -n; the vmlinux image has a predictable
++++++ config.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/config/arm64/default new/config/arm64/default
--- old/config/arm64/default 2014-08-04 18:50:24.000000000 +0200
+++ new/config/arm64/default 2014-08-20 13:07:13.000000000 +0200
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/arm64 3.16.0 Kernel Configuration
+# Linux/arm64 3.16.1 Kernel Configuration
#
CONFIG_ARM64=y
CONFIG_64BIT=y
@@ -103,7 +103,7 @@
CONFIG_RCU_NOCB_CPU_ALL=y
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
-CONFIG_LOG_BUF_SHIFT=14
+CONFIG_LOG_BUF_SHIFT=18
CONFIG_GENERIC_SCHED_CLOCK=y
CONFIG_CGROUPS=y
# CONFIG_CGROUP_DEBUG is not set
@@ -2425,6 +2425,7 @@
CONFIG_POWER_SUPPLY=y
# CONFIG_POWER_SUPPLY_DEBUG is not set
CONFIG_PDA_POWER=m
+# CONFIG_GENERIC_ADC_BATTERY is not set
# CONFIG_TEST_POWER is not set
CONFIG_BATTERY_DS2760=m
CONFIG_BATTERY_DS2780=m
@@ -2485,6 +2486,7 @@
# CONFIG_SENSORS_HIH6130 is not set
CONFIG_SENSORS_IBMAEM=m
CONFIG_SENSORS_IBMPEX=m
+# CONFIG_SENSORS_IIO_HWMON is not set
CONFIG_SENSORS_IT87=m
# CONFIG_SENSORS_JC42 is not set
# CONFIG_SENSORS_LINEAGE is not set
@@ -3590,8 +3592,8 @@
#
# on-CPU RTC drivers
#
-CONFIG_RTC_DRV_PL030=m
-CONFIG_RTC_DRV_PL031=m
+CONFIG_RTC_DRV_PL030=y
+CONFIG_RTC_DRV_PL031=y
# CONFIG_RTC_DRV_SNVS is not set
# CONFIG_RTC_DRV_MOXART is not set
CONFIG_RTC_DRV_XGENE=y
@@ -3599,7 +3601,7 @@
#
# HID Sensor RTC drivers
#
-# CONFIG_RTC_DRV_HID_SENSOR_TIME is not set
+CONFIG_RTC_DRV_HID_SENSOR_TIME=m
CONFIG_DMADEVICES=y
# CONFIG_DMADEVICES_DEBUG is not set
@@ -3687,6 +3689,75 @@
# CONFIG_LINE6_USB is not set
CONFIG_USB_SERIAL_QUATECH2=m
CONFIG_VT6656=m
+
+#
+# IIO staging drivers
+#
+
+#
+# Accelerometers
+#
+
+#
+# Analog to digital converters
+#
+# CONFIG_AD7291 is not set
+# CONFIG_AD7606 is not set
+
+#
+# Analog digital bi-direction converters
+#
+# CONFIG_ADT7316 is not set
+
+#
+# Capacitance to digital converters
+#
+# CONFIG_AD7150 is not set
+# CONFIG_AD7152 is not set
+# CONFIG_AD7746 is not set
+
+#
+# Direct Digital Synthesis
+#
+
+#
+# Digital gyroscope sensors
+#
+
+#
+# Network Analyzer, Impedance Converters
+#
+# CONFIG_AD5933 is not set
+
+#
+# Light sensors
+#
+# CONFIG_SENSORS_ISL29018 is not set
+# CONFIG_SENSORS_ISL29028 is not set
+# CONFIG_TSL2583 is not set
+# CONFIG_TSL2x7x is not set
+
+#
+# Magnetometer sensors
+#
+# CONFIG_SENSORS_HMC5843 is not set
+
+#
+# Active energy metering IC
+#
+# CONFIG_ADE7854 is not set
+
+#
+# Resolver to digital converters
+#
+
+#
+# Triggers - standalone
+#
+CONFIG_IIO_PERIODIC_RTC_TRIGGER=m
+CONFIG_IIO_SIMPLE_DUMMY=m
+# CONFIG_IIO_SIMPLE_DUMMY_EVENTS is not set
+# CONFIG_IIO_SIMPLE_DUMMY_BUFFER is not set
CONFIG_USB_ENESTORAGE=m
# CONFIG_BCM_WIMAX is not set
CONFIG_FT1000=m
@@ -3787,7 +3858,136 @@
# CONFIG_PM_DEVFREQ is not set
# CONFIG_EXTCON is not set
# CONFIG_MEMORY is not set
-# CONFIG_IIO is not set
+CONFIG_IIO=m
+CONFIG_IIO_BUFFER=y
+# CONFIG_IIO_BUFFER_CB is not set
+CONFIG_IIO_KFIFO_BUF=m
+CONFIG_IIO_TRIGGERED_BUFFER=m
+CONFIG_IIO_TRIGGER=y
+CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
+
+#
+# Accelerometers
+#
+# CONFIG_BMA180 is not set
+CONFIG_HID_SENSOR_ACCEL_3D=m
+# CONFIG_IIO_ST_ACCEL_3AXIS is not set
+# CONFIG_MMA8452 is not set
+
+#
+# Analog to digital converters
+#
+# CONFIG_AD799X is not set
+# CONFIG_MAX1363 is not set
+# CONFIG_MCP3422 is not set
+# CONFIG_NAU7802 is not set
+# CONFIG_TI_ADC081C is not set
+# CONFIG_TI_AM335X_ADC is not set
+# CONFIG_VF610_ADC is not set
+# CONFIG_VIPERBOARD_ADC is not set
+
+#
+# Amplifiers
+#
+
+#
+# Hid Sensor IIO Common
+#
+CONFIG_HID_SENSOR_IIO_COMMON=m
+CONFIG_HID_SENSOR_IIO_TRIGGER=m
+
+#
+# Digital to analog converters
+#
+# CONFIG_AD5064 is not set
+# CONFIG_AD5380 is not set
+# CONFIG_AD5446 is not set
+# CONFIG_MAX517 is not set
+# CONFIG_MCP4725 is not set
+
+#
+# Frequency Synthesizers DDS/PLL
+#
+
+#
+# Clock Generator/Distribution
+#
+
+#
+# Phase-Locked Loop (PLL) frequency synthesizers
+#
+
+#
+# Digital gyroscope sensors
+#
+CONFIG_HID_SENSOR_GYRO_3D=m
+# CONFIG_IIO_ST_GYRO_3AXIS is not set
+# CONFIG_ITG3200 is not set
+
+#
+# Humidity sensors
+#
+# CONFIG_DHT11 is not set
+# CONFIG_SI7005 is not set
+
+#
+# Inertial measurement units
+#
+# CONFIG_INV_MPU6050_IIO is not set
+
+#
+# Light sensors
+#
+# CONFIG_ADJD_S311 is not set
+# CONFIG_APDS9300 is not set
+# CONFIG_CM32181 is not set
+# CONFIG_CM36651 is not set
+# CONFIG_GP2AP020A00F is not set
+CONFIG_HID_SENSOR_ALS=m
+CONFIG_HID_SENSOR_PROX=m
+# CONFIG_LTR501 is not set
+# CONFIG_TCS3472 is not set
+# CONFIG_SENSORS_TSL2563 is not set
+# CONFIG_TSL4531 is not set
+# CONFIG_VCNL4000 is not set
+
+#
+# Magnetometer sensors
+#
+# CONFIG_AK8975 is not set
+# CONFIG_MAG3110 is not set
+CONFIG_HID_SENSOR_MAGNETOMETER_3D=m
+# CONFIG_IIO_ST_MAGN_3AXIS is not set
+
+#
+# Inclinometer sensors
+#
+CONFIG_HID_SENSOR_INCLINOMETER_3D=m
+CONFIG_HID_SENSOR_DEVICE_ROTATION=m
+
+#
+# Triggers - standalone
+#
+CONFIG_IIO_INTERRUPT_TRIGGER=m
+CONFIG_IIO_SYSFS_TRIGGER=m
+
+#
+# Pressure sensors
+#
+CONFIG_HID_SENSOR_PRESS=m
+# CONFIG_MPL115 is not set
+# CONFIG_MPL3115 is not set
+# CONFIG_IIO_ST_PRESS is not set
+
+#
+# Lightning sensors
+#
+
+#
+# Temperature sensors
+#
+# CONFIG_MLX90614 is not set
+# CONFIG_TMP006 is not set
CONFIG_PWM=y
CONFIG_PWM_SYSFS=y
# CONFIG_PWM_FSL_FTM is not set
@@ -4382,7 +4582,6 @@
CONFIG_CRYPTO_CRYPTD=m
CONFIG_CRYPTO_AUTHENC=m
# CONFIG_CRYPTO_TEST is not set
-CONFIG_CRYPTO_ABLK_HELPER=m
#
# Authenticated Encryption with Associated Data
@@ -4474,14 +4673,7 @@
CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=m
CONFIG_PUBLIC_KEY_ALGO_RSA=m
CONFIG_X509_CERTIFICATE_PARSER=m
-CONFIG_ARM64_CRYPTO=y
-CONFIG_CRYPTO_SHA1_ARM64_CE=m
-CONFIG_CRYPTO_SHA2_ARM64_CE=m
-CONFIG_CRYPTO_GHASH_ARM64_CE=m
-CONFIG_CRYPTO_AES_ARM64_CE=m
-CONFIG_CRYPTO_AES_ARM64_CE_CCM=m
-CONFIG_CRYPTO_AES_ARM64_CE_BLK=m
-CONFIG_CRYPTO_AES_ARM64_NEON_BLK=m
+# CONFIG_ARM64_CRYPTO is not set
CONFIG_BINARY_PRINTF=y
#
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/config/armv6hl/default new/config/armv6hl/default
--- old/config/armv6hl/default 2014-08-04 18:50:24.000000000 +0200
+++ new/config/armv6hl/default 2014-08-20 13:07:13.000000000 +0200
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/arm 3.16.0 Kernel Configuration
+# Linux/arm 3.16.1 Kernel Configuration
#
CONFIG_ARM=y
CONFIG_ARM_HAS_SG_CHAIN=y
@@ -3211,7 +3211,7 @@
CONFIG_HTC_PASIC3=m
CONFIG_HTC_I2CPLD=y
CONFIG_MFD_KEMPLD=m
-CONFIG_MFD_88PM800=m
+CONFIG_MFD_88PM800=y
CONFIG_MFD_88PM805=m
CONFIG_MFD_88PM860X=y
# CONFIG_MFD_MAX14577 is not set
@@ -4280,7 +4280,16 @@
CONFIG_USB_MICROTEK=m
# CONFIG_USB_MUSB_HDRC is not set
# CONFIG_USB_DWC3 is not set
-# CONFIG_USB_DWC2 is not set
+CONFIG_USB_DWC2=y
+CONFIG_USB_DWC2_HOST=m
+CONFIG_USB_DWC2_PLATFORM=y
+
+#
+# Gadget mode requires USB Gadget support to be enabled
+#
+CONFIG_USB_DWC2_PERIPHERAL=m
+# CONFIG_USB_DWC2_DEBUG is not set
+# CONFIG_USB_DWC2_TRACK_MISSED_SOFS is not set
# CONFIG_USB_CHIPIDEA is not set
#
@@ -4568,8 +4577,8 @@
# I2C RTC drivers
#
CONFIG_RTC_DRV_88PM860X=y
-CONFIG_RTC_DRV_88PM80X=m
-CONFIG_RTC_DRV_AS3722=m
+CONFIG_RTC_DRV_88PM80X=y
+CONFIG_RTC_DRV_AS3722=y
CONFIG_RTC_DRV_DS1307=y
CONFIG_RTC_DRV_DS1374=y
CONFIG_RTC_DRV_DS1672=y
@@ -4588,7 +4597,7 @@
# CONFIG_RTC_DRV_ISL12057 is not set
CONFIG_RTC_DRV_X1205=y
CONFIG_RTC_DRV_PALMAS=y
-CONFIG_RTC_DRV_PCF2127=m
+CONFIG_RTC_DRV_PCF2127=y
CONFIG_RTC_DRV_PCF8523=y
CONFIG_RTC_DRV_PCF8563=y
CONFIG_RTC_DRV_PCF8583=y
@@ -4681,7 +4690,7 @@
CONFIG_IMX_SDMA=m
CONFIG_IMX_DMA=m
CONFIG_DMA_OMAP=y
-# CONFIG_DMA_BCM2835 is not set
+CONFIG_DMA_BCM2835=m
CONFIG_TI_CPPI41=m
# CONFIG_FSL_EDMA is not set
CONFIG_DMA_ENGINE=y
@@ -5106,7 +5115,7 @@
#
# Inclinometer sensors
#
-# CONFIG_HID_SENSOR_INCLINOMETER_3D is not set
+CONFIG_HID_SENSOR_INCLINOMETER_3D=m
CONFIG_HID_SENSOR_DEVICE_ROTATION=m
#
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/config/armv7hl/default new/config/armv7hl/default
--- old/config/armv7hl/default 2014-08-04 18:50:24.000000000 +0200
+++ new/config/armv7hl/default 2014-08-20 13:07:13.000000000 +0200
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/arm 3.16.0 Kernel Configuration
+# Linux/arm 3.16.1 Kernel Configuration
#
CONFIG_ARM=y
CONFIG_ARM_HAS_SG_CHAIN=y
@@ -4010,7 +4010,7 @@
# CONFIG_LPC_SCH is not set
# CONFIG_MFD_JANZ_CMODIO is not set
CONFIG_MFD_KEMPLD=m
-CONFIG_MFD_88PM800=m
+CONFIG_MFD_88PM800=y
CONFIG_MFD_88PM805=m
CONFIG_MFD_88PM860X=y
# CONFIG_MFD_MAX14577 is not set
@@ -4025,8 +4025,8 @@
# CONFIG_MFD_RETU is not set
# CONFIG_MFD_PCF50633 is not set
CONFIG_UCB1400_CORE=m
-CONFIG_MFD_PM8XXX=m
-CONFIG_MFD_PM8921_CORE=m
+CONFIG_MFD_PM8XXX=y
+CONFIG_MFD_PM8921_CORE=y
# CONFIG_MFD_RDC321X is not set
# CONFIG_MFD_RTSX_PCI is not set
CONFIG_MFD_RTSX_USB=m
@@ -5831,8 +5831,8 @@
# I2C RTC drivers
#
CONFIG_RTC_DRV_88PM860X=y
-CONFIG_RTC_DRV_88PM80X=m
-CONFIG_RTC_DRV_AS3722=m
+CONFIG_RTC_DRV_88PM80X=y
+CONFIG_RTC_DRV_AS3722=y
CONFIG_RTC_DRV_DS1307=y
CONFIG_RTC_DRV_DS1374=y
CONFIG_RTC_DRV_DS1672=y
@@ -5851,7 +5851,7 @@
# CONFIG_RTC_DRV_ISL12057 is not set
CONFIG_RTC_DRV_X1205=y
CONFIG_RTC_DRV_PALMAS=y
-CONFIG_RTC_DRV_PCF2127=m
+CONFIG_RTC_DRV_PCF2127=y
CONFIG_RTC_DRV_PCF8523=y
CONFIG_RTC_DRV_PCF8563=y
CONFIG_RTC_DRV_PCF8583=y
@@ -5878,7 +5878,7 @@
# CONFIG_RTC_DRV_M41T94 is not set
# CONFIG_RTC_DRV_DS1305 is not set
# CONFIG_RTC_DRV_DS1343 is not set
-CONFIG_RTC_DRV_DS1347=m
+CONFIG_RTC_DRV_DS1347=y
# CONFIG_RTC_DRV_DS1390 is not set
# CONFIG_RTC_DRV_MAX6902 is not set
# CONFIG_RTC_DRV_R9701 is not set
@@ -5923,10 +5923,10 @@
CONFIG_RTC_DRV_PL030=y
CONFIG_RTC_DRV_PL031=y
CONFIG_RTC_DRV_VT8500=y
-CONFIG_RTC_DRV_SUNXI=m
-CONFIG_RTC_DRV_MV=m
-CONFIG_RTC_DRV_PM8XXX=m
-CONFIG_RTC_DRV_TEGRA=m
+CONFIG_RTC_DRV_SUNXI=y
+CONFIG_RTC_DRV_MV=y
+CONFIG_RTC_DRV_PM8XXX=y
+CONFIG_RTC_DRV_TEGRA=y
CONFIG_RTC_DRV_MXC=y
CONFIG_RTC_DRV_SNVS=y
# CONFIG_RTC_DRV_MOXART is not set
@@ -6534,7 +6534,7 @@
#
# Inclinometer sensors
#
-# CONFIG_HID_SENSOR_INCLINOMETER_3D is not set
+CONFIG_HID_SENSOR_INCLINOMETER_3D=m
CONFIG_HID_SENSOR_DEVICE_ROTATION=m
#
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/config/armv7hl/lpae new/config/armv7hl/lpae
--- old/config/armv7hl/lpae 2014-08-04 18:50:24.000000000 +0200
+++ new/config/armv7hl/lpae 2014-08-20 13:07:13.000000000 +0200
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/arm 3.16.0 Kernel Configuration
+# Linux/arm 3.16.1 Kernel Configuration
#
CONFIG_ARM=y
CONFIG_ARM_HAS_SG_CHAIN=y
@@ -2385,7 +2385,12 @@
# CONFIG_SMSC911X_ARCH_HOOKS is not set
# CONFIG_SMSC9420 is not set
CONFIG_NET_VENDOR_STMICRO=y
-# CONFIG_STMMAC_ETH is not set
+CONFIG_STMMAC_ETH=m
+CONFIG_STMMAC_PLATFORM=y
+CONFIG_DWMAC_SUNXI=y
+# CONFIG_STMMAC_PCI is not set
+# CONFIG_STMMAC_DEBUG_FS is not set
+# CONFIG_STMMAC_DA is not set
CONFIG_NET_VENDOR_SUN=y
# CONFIG_HAPPYMEAL is not set
# CONFIG_SUNGEM is not set
@@ -3770,7 +3775,7 @@
# CONFIG_LPC_SCH is not set
# CONFIG_MFD_JANZ_CMODIO is not set
CONFIG_MFD_KEMPLD=m
-CONFIG_MFD_88PM800=m
+CONFIG_MFD_88PM800=y
CONFIG_MFD_88PM805=m
CONFIG_MFD_88PM860X=y
# CONFIG_MFD_MAX14577 is not set
@@ -3785,8 +3790,8 @@
# CONFIG_MFD_RETU is not set
# CONFIG_MFD_PCF50633 is not set
CONFIG_UCB1400_CORE=m
-CONFIG_MFD_PM8XXX=m
-CONFIG_MFD_PM8921_CORE=m
+CONFIG_MFD_PM8XXX=y
+CONFIG_MFD_PM8921_CORE=y
# CONFIG_MFD_RDC321X is not set
# CONFIG_MFD_RTSX_PCI is not set
CONFIG_MFD_RTSX_USB=m
@@ -5483,8 +5488,8 @@
# I2C RTC drivers
#
CONFIG_RTC_DRV_88PM860X=y
-CONFIG_RTC_DRV_88PM80X=m
-CONFIG_RTC_DRV_AS3722=m
+CONFIG_RTC_DRV_88PM80X=y
+CONFIG_RTC_DRV_AS3722=y
CONFIG_RTC_DRV_DS1307=y
CONFIG_RTC_DRV_DS1374=y
CONFIG_RTC_DRV_DS1672=y
@@ -5503,7 +5508,7 @@
# CONFIG_RTC_DRV_ISL12057 is not set
CONFIG_RTC_DRV_X1205=y
CONFIG_RTC_DRV_PALMAS=y
-CONFIG_RTC_DRV_PCF2127=m
+CONFIG_RTC_DRV_PCF2127=y
CONFIG_RTC_DRV_PCF8523=y
CONFIG_RTC_DRV_PCF8563=y
CONFIG_RTC_DRV_PCF8583=y
@@ -5571,7 +5576,7 @@
CONFIG_RTC_DRV_PL030=y
CONFIG_RTC_DRV_PL031=y
CONFIG_RTC_DRV_SUNXI=y
-CONFIG_RTC_DRV_PM8XXX=m
+CONFIG_RTC_DRV_PM8XXX=y
CONFIG_RTC_DRV_TEGRA=y
CONFIG_RTC_DRV_SNVS=y
# CONFIG_RTC_DRV_MOXART is not set
@@ -6118,7 +6123,7 @@
#
# Inclinometer sensors
#
-# CONFIG_HID_SENSOR_INCLINOMETER_3D is not set
+CONFIG_HID_SENSOR_INCLINOMETER_3D=m
CONFIG_HID_SENSOR_DEVICE_ROTATION=m
#
++++++ kernel-binary.spec.in ++++++
--- /var/tmp/diff_new_pack.jHtM3G/_old 2014-08-30 16:04:37.000000000 +0200
+++ /var/tmp/diff_new_pack.jHtM3G/_new 2014-08-30 16:04:37.000000000 +0200
@@ -27,9 +27,9 @@
%include %_sourcedir/kernel-spec-macros
%define build_flavor @FLAVOR@
-%define build_default (%build_flavor == "default")
-%define build_xen (%build_flavor == "xen" || %build_flavor == "ec2")
-%define build_vanilla (%build_flavor == "vanilla")
+%define build_default ("%build_flavor" == "default")
+%define build_xen ("%build_flavor" == "xen" || "%build_flavor" == "ec2")
+%define build_vanilla ("%build_flavor" == "vanilla")
%define build_src_dir %my_builddir/linux-%srcversion
%define src_install_dir /usr/src/linux-%kernelrelease%variant
@@ -688,7 +688,7 @@
# Recreate the generated Makefile with correct path
sh ../scripts/mkmakefile ../../../linux-%kernelrelease%variant \
%rpm_install_dir/%cpu_arch_flavor \
- $(echo %srcversion | sed -r 's/^([0-9]+)\.([0-9]+)[\.-].*/\1 \2/')
+ $(echo %srcversion | sed -r 's/^([0-9]+)\.([0-9]+).*/\1 \2/')
fi
add_dirs_to_filelist() {
++++++ kernel-obs-build.spec.in ++++++
--- /var/tmp/diff_new_pack.jHtM3G/_old 2014-08-30 16:04:37.000000000 +0200
+++ /var/tmp/diff_new_pack.jHtM3G/_new 2014-08-30 16:04:37.000000000 +0200
@@ -34,7 +34,7 @@
BuildRequires: kernel-xen
%endif
ExclusiveArch: @ARCHS@
-%if 0%{?suse_version} < 1320
+%if 0%{?suse_version} < 1315
# For SLE 11
BuildRequires: mkinitrd
BuildRequires: perl-Bootloader
@@ -105,7 +105,7 @@
%define kernel_name Image
%endif
-%if 0%{?suse_version} < 1320
+%if 0%{?suse_version} < 1315
# For SLE 11
/sbin/mkinitrd $ROOT \
-m "$KERNEL_MODULES" \
++++++ patches.drivers.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.drivers/drm-cirrus-Use-16bpp-as-default new/patches.drivers/drm-cirrus-Use-16bpp-as-default
--- old/patches.drivers/drm-cirrus-Use-16bpp-as-default 2013-07-23 01:54:52.000000000 +0200
+++ new/patches.drivers/drm-cirrus-Use-16bpp-as-default 1970-01-01 01:00:00.000000000 +0100
@@ -1,49 +0,0 @@
-From: Takashi Iwai <tiwai(a)suse.de>
-Date: Fri, 25 Jan 2013 17:08:03 +0100
-Subject: [PATCH] drm/cirrus: Use 16bpp as default
-Patch-mainline: Submitted
-References: bnc#799216
-
-We've got a bug report that GNOME on QEMU shows wrong colors.
-It turned out that it's because Cairo doesn't support 24bpp well.
-This hasn't been an issue until now because we (at least SUSE and
-Fedora) have a patch to use 16bpp for QEMU in Xorg cirrus UMS driver.
-
-Since cirrus KMS driver is mainly targeted for the use on QEMU/KVM, we
-should choose 16bpp as default, too.
-
-Also, it's not convenient to set the default bpp in multiple places.
-cirrus_fbdev_init() should check the original preferred depth set in
-cirrus_modeset_init().
-
-Bugzilla: https://bugzilla.novell.com/show_bug.cgi?id=799216
-
-Signed-off-by: Takashi Iwai <tiwai(a)suse.de>
-
----
- drivers/gpu/drm/cirrus/cirrus_fbdev.c | 2 +-
- drivers/gpu/drm/cirrus/cirrus_mode.c | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
---- a/drivers/gpu/drm/cirrus/cirrus_fbdev.c
-+++ b/drivers/gpu/drm/cirrus/cirrus_fbdev.c
-@@ -273,7 +273,7 @@ int cirrus_fbdev_init(struct cirrus_devi
- {
- struct cirrus_fbdev *gfbdev;
- int ret;
-- int bpp_sel = 24;
-+ int bpp_sel = cdev->dev->mode_config.preferred_depth;
-
- /*bpp_sel = 8;*/
- gfbdev = kzalloc(sizeof(struct cirrus_fbdev), GFP_KERNEL);
---- a/drivers/gpu/drm/cirrus/cirrus_mode.c
-+++ b/drivers/gpu/drm/cirrus/cirrus_mode.c
-@@ -588,7 +588,7 @@ int cirrus_modeset_init(struct cirrus_de
- cdev->dev->mode_config.max_height = CIRRUS_MAX_FB_HEIGHT;
-
- cdev->dev->mode_config.fb_base = cdev->mc.vram_base;
-- cdev->dev->mode_config.preferred_depth = 24;
-+ cdev->dev->mode_config.preferred_depth = 16;
- /* don't prefer a shadow on virt GPU */
- cdev->dev->mode_config.prefer_shadow = 0;
-
++++++ patches.fixes.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/Btrfs-Fix-memory-corruption-by-ulist_add_merge-on-32 new/patches.fixes/Btrfs-Fix-memory-corruption-by-ulist_add_merge-on-32
--- old/patches.fixes/Btrfs-Fix-memory-corruption-by-ulist_add_merge-on-32 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.fixes/Btrfs-Fix-memory-corruption-by-ulist_add_merge-on-32 2014-08-26 13:57:20.000000000 +0200
@@ -0,0 +1,114 @@
+From 4eb1f66dce6c4dc28dd90a7ffbe6b2b1cb08aa4e Mon Sep 17 00:00:00 2001
+From: Takashi Iwai <tiwai(a)suse.de>
+Date: Mon, 28 Jul 2014 10:57:04 +0200
+Subject: [PATCH] Btrfs: Fix memory corruption by ulist_add_merge() on 32bit arch
+Git-commit: 4eb1f66dce6c4dc28dd90a7ffbe6b2b1cb08aa4e
+Patch-mainline: 3.17-rc1
+References: bnc#887046
+
+We've got bug reports that btrfs crashes when quota is enabled on
+32bit kernel, typically with the Oops like below:
+ BUG: unable to handle kernel NULL pointer dereference at 00000004
+ IP: [<f9234590>] find_parent_nodes+0x360/0x1380 [btrfs]
+ *pde = 00000000
+ Oops: 0000 [#1] SMP
+ CPU: 0 PID: 151 Comm: kworker/u8:2 Tainted: G S W 3.15.2-1.gd43d97e-default #1
+ Workqueue: btrfs-qgroup-rescan normal_work_helper [btrfs]
+ task: f1478130 ti: f147c000 task.ti: f147c000
+ EIP: 0060:[<f9234590>] EFLAGS: 00010213 CPU: 0
+ EIP is at find_parent_nodes+0x360/0x1380 [btrfs]
+ EAX: f147dda8 EBX: f147ddb0 ECX: 00000011 EDX: 00000000
+ ESI: 00000000 EDI: f147dda4 EBP: f147ddf8 ESP: f147dd38
+ DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
+ CR0: 8005003b CR2: 00000004 CR3: 00bf3000 CR4: 00000690
+ Stack:
+ 00000000 00000000 f147dda4 00000050 00000001 00000000 00000001 00000050
+ 00000001 00000000 d3059000 00000001 00000022 000000a8 00000000 00000000
+ 00000000 000000a1 00000000 00000000 00000001 00000000 00000000 11800000
+ Call Trace:
+ [<f923564d>] __btrfs_find_all_roots+0x9d/0xf0 [btrfs]
+ [<f9237bb1>] btrfs_qgroup_rescan_worker+0x401/0x760 [btrfs]
+ [<f9206148>] normal_work_helper+0xc8/0x270 [btrfs]
+ [<c025e38b>] process_one_work+0x11b/0x390
+ [<c025eea1>] worker_thread+0x101/0x340
+ [<c026432b>] kthread+0x9b/0xb0
+ [<c0712a71>] ret_from_kernel_thread+0x21/0x30
+ [<c0264290>] kthread_create_on_node+0x110/0x110
+
+This indicates a NULL corruption in prefs_delayed list. The further
+investigation and bisection pointed that the call of ulist_add_merge()
+results in the corruption.
+
+ulist_add_merge() takes u64 as aux and writes a 64bit value into
+old_aux. The callers of this function in backref.c, however, pass a
+pointer of a pointer to old_aux. That is, the function overwrites
+64bit value on 32bit pointer. This caused a NULL in the adjacent
+variable, in this case, prefs_delayed.
+
+Here is a quick attempt to band-aid over this: a new function,
+ulist_add_merge_ptr() is introduced to pass/store properly a pointer
+value instead of u64. There are still ugly void ** cast remaining
+in the callers because void ** cannot be taken implicitly. But, it's
+safer than explicit cast to u64, anyway.
+
+Bugzilla: https://bugzilla.novell.com/show_bug.cgi?id=887046
+Cc: <stable(a)vger.kernel.org> [v3.11+]
+Signed-off-by: Takashi Iwai <tiwai(a)suse.de>
+Signed-off-by: Chris Mason <clm(a)fb.com>
+
+---
+ fs/btrfs/backref.c | 11 +++++------
+ fs/btrfs/ulist.h | 15 +++++++++++++++
+ 2 files changed, 20 insertions(+), 6 deletions(-)
+
+--- a/fs/btrfs/backref.c
++++ b/fs/btrfs/backref.c
+@@ -276,9 +276,8 @@ static int add_all_parents(struct btrfs_
+ }
+ if (ret > 0)
+ goto next;
+- ret = ulist_add_merge(parents, eb->start,
+- (uintptr_t)eie,
+- (u64 *)&old, GFP_NOFS);
++ ret = ulist_add_merge_ptr(parents, eb->start,
++ eie, (void **)&old, GFP_NOFS);
+ if (ret < 0)
+ break;
+ if (!ret && extent_item_pos) {
+@@ -1011,9 +1010,9 @@ again:
+ goto out;
+ ref->inode_list = eie;
+ }
+- ret = ulist_add_merge(refs, ref->parent,
+- (uintptr_t)ref->inode_list,
+- (u64 *)&eie, GFP_NOFS);
++ ret = ulist_add_merge_ptr(refs, ref->parent,
++ ref->inode_list,
++ (void **)&eie, GFP_NOFS);
+ if (ret < 0)
+ goto out;
+ if (!ret && extent_item_pos) {
+--- a/fs/btrfs/ulist.h
++++ b/fs/btrfs/ulist.h
+@@ -57,6 +57,21 @@ void ulist_free(struct ulist *ulist);
+ int ulist_add(struct ulist *ulist, u64 val, u64 aux, gfp_t gfp_mask);
+ int ulist_add_merge(struct ulist *ulist, u64 val, u64 aux,
+ u64 *old_aux, gfp_t gfp_mask);
++
++/* just like ulist_add_merge() but take a pointer for the aux data */
++static inline int ulist_add_merge_ptr(struct ulist *ulist, u64 val, void *aux,
++ void **old_aux, gfp_t gfp_mask)
++{
++#if BITS_PER_LONG == 32
++ u64 old64 = (uintptr_t)*old_aux;
++ int ret = ulist_add_merge(ulist, val, (uintptr_t)aux, &old64, gfp_mask);
++ *old_aux = (void *)((uintptr_t)old64);
++ return ret;
++#else
++ return ulist_add_merge(ulist, val, (u64)aux, (u64 *)old_aux, gfp_mask);
++#endif
++}
++
+ struct ulist_node *ulist_next(struct ulist *ulist,
+ struct ulist_iterator *uiter);
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/drm-omapdrm-fix-compiler-errors new/patches.fixes/drm-omapdrm-fix-compiler-errors
--- old/patches.fixes/drm-omapdrm-fix-compiler-errors 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.fixes/drm-omapdrm-fix-compiler-errors 2014-08-26 13:57:20.000000000 +0200
@@ -0,0 +1,113 @@
+From 2d31ca3ad7d5d44c8adc7f253c96ce33f3a2e931 Mon Sep 17 00:00:00 2001
+From: Russell King <rmk+kernel(a)arm.linux.org.uk>
+Date: Sat, 12 Jul 2014 10:53:41 +0100
+Subject: [PATCH] drm: omapdrm: fix compiler errors
+Git-commit: 2d31ca3ad7d5d44c8adc7f253c96ce33f3a2e931
+Patch-mainline: 3.17-rc1
+
+Regular randconfig nightly testing has detected problems with omapdrm.
+
+omapdrm fails to build when the kernel is built to support 64-bit DMA
+addresses and/or 64-bit physical addresses due to an assumption about
+the width of these types.
+
+Use %pad to print DMA addresses, rather than %x or %Zx (which is even
+more wrong than %x). Avoid passing a uint32_t pointer into a function
+which expects dma_addr_t pointer.
+
+Drivers/gpu/drm/omapdrm/omap_plane.c: In function 'omap_plane_pre_apply':
+drivers/gpu/drm/omapdrm/omap_plane.c:145:2: error: format '%x' expects argument of type 'unsigned int', but argument 5 has type 'dma_addr_t' [-Werror=format]
+drivers/gpu/drm/omapdrm/omap_plane.c:145:2: error: format '%x' expects argument of type 'unsigned int', but argument 6 has type 'dma_addr_t' [-Werror=format]
+Make[5]: *** [drivers/gpu/drm/omapdrm/omap_plane.o] Error 1
+Drivers/gpu/drm/omapdrm/omap_gem.c: In function 'omap_gem_get_paddr':
+drivers/gpu/drm/omapdrm/omap_gem.c:794:4: error: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'dma_addr_t' [-Werror=format]
+Drivers/gpu/drm/omapdrm/omap_gem.c: In function 'omap_gem_describe':
+drivers/gpu/drm/omapdrm/omap_gem.c:991:4: error: format '%Zx' expects argument of type 'size_t', but argument 7 has type 'dma_addr_t' [-Werror=format]
+Drivers/gpu/drm/omapdrm/omap_gem.c: In function 'omap_gem_init':
+drivers/gpu/drm/omapdrm/omap_gem.c:1470:4: error: format '%x' expects argument of type 'unsigned int', but argument 7 has type 'dma_addr_t' [-Werror=format]
+Make[5]: *** [drivers/gpu/drm/omapdrm/omap_gem.o] Error 1
+Drivers/gpu/drm/omapdrm/omap_dmm_tiler.c: In function 'dmm_txn_append':
+drivers/gpu/drm/omapdrm/omap_dmm_tiler.c:226:2: error: passing argument 3 of 'alloc_dma' from incompatible pointer type [-Werror]
+Make[5]: *** [drivers/gpu/drm/omapdrm/omap_dmm_tiler.o] Error 1
+Make[5]: Target `__build' not remade because of errors.
+Make[4]: *** [drivers/gpu/drm/omapdrm] Error 2
+
+Signed-off-by: Russell King <rmk+kernel(a)arm.linux.org.uk>
+Signed-off-by: Dave Airlie <airlied(a)redhat.com>
+Acked-by: Takashi Iwai <tiwai(a)suse.de>
+
+---
+ drivers/gpu/drm/omapdrm/omap_dmm_tiler.c | 6 ++++--
+ drivers/gpu/drm/omapdrm/omap_gem.c | 10 +++++-----
+ drivers/gpu/drm/omapdrm/omap_plane.c | 4 ++--
+ 3 files changed, 11 insertions(+), 9 deletions(-)
+
+--- a/drivers/gpu/drm/omapdrm/omap_dmm_tiler.c
++++ b/drivers/gpu/drm/omapdrm/omap_dmm_tiler.c
+@@ -199,7 +199,7 @@ static struct dmm_txn *dmm_txn_init(stru
+ static void dmm_txn_append(struct dmm_txn *txn, struct pat_area *area,
+ struct page **pages, uint32_t npages, uint32_t roll)
+ {
+- dma_addr_t pat_pa = 0;
++ dma_addr_t pat_pa = 0, data_pa = 0;
+ uint32_t *data;
+ struct pat *pat;
+ struct refill_engine *engine = txn->engine_handle;
+@@ -223,7 +223,9 @@ static void dmm_txn_append(struct dmm_tx
+ .lut_id = engine->tcm->lut_id,
+ };
+
+- data = alloc_dma(txn, 4*i, &pat->data_pa);
++ data = alloc_dma(txn, 4*i, &data_pa);
++ /* FIXME: what if data_pa is more than 32-bit ? */
++ pat->data_pa = data_pa;
+
+ while (i--) {
+ int n = i + roll;
+--- a/drivers/gpu/drm/omapdrm/omap_gem.c
++++ b/drivers/gpu/drm/omapdrm/omap_gem.c
+@@ -791,7 +791,7 @@ int omap_gem_get_paddr(struct drm_gem_ob
+ omap_obj->paddr = tiler_ssptr(block);
+ omap_obj->block = block;
+
+- DBG("got paddr: %08x", omap_obj->paddr);
++ DBG("got paddr: %pad", &omap_obj->paddr);
+ }
+
+ omap_obj->paddr_cnt++;
+@@ -985,9 +985,9 @@ void omap_gem_describe(struct drm_gem_ob
+
+ off = drm_vma_node_start(&obj->vma_node);
+
+- seq_printf(m, "%08x: %2d (%2d) %08llx %08Zx (%2d) %p %4d",
++ seq_printf(m, "%08x: %2d (%2d) %08llx %pad (%2d) %p %4d",
+ omap_obj->flags, obj->name, obj->refcount.refcount.counter,
+- off, omap_obj->paddr, omap_obj->paddr_cnt,
++ off, &omap_obj->paddr, omap_obj->paddr_cnt,
+ omap_obj->vaddr, omap_obj->roll);
+
+ if (omap_obj->flags & OMAP_BO_TILED) {
+@@ -1467,8 +1467,8 @@ void omap_gem_init(struct drm_device *de
+ entry->paddr = tiler_ssptr(block);
+ entry->block = block;
+
+- DBG("%d:%d: %dx%d: paddr=%08x stride=%d", i, j, w, h,
+- entry->paddr,
++ DBG("%d:%d: %dx%d: paddr=%pad stride=%d", i, j, w, h,
++ &entry->paddr,
+ usergart[i].stride_pfn << PAGE_SHIFT);
+ }
+ }
+--- a/drivers/gpu/drm/omapdrm/omap_plane.c
++++ b/drivers/gpu/drm/omapdrm/omap_plane.c
+@@ -142,8 +142,8 @@ static void omap_plane_pre_apply(struct
+ DBG("%dx%d -> %dx%d (%d)", info->width, info->height,
+ info->out_width, info->out_height,
+ info->screen_width);
+- DBG("%d,%d %08x %08x", info->pos_x, info->pos_y,
+- info->paddr, info->p_uv_addr);
++ DBG("%d,%d %pad %pad", info->pos_x, info->pos_y,
++ &info->paddr, &info->p_uv_addr);
+
+ /* TODO: */
+ ilace = false;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/rtsx_usb-export-device-table new/patches.fixes/rtsx_usb-export-device-table
--- old/patches.fixes/rtsx_usb-export-device-table 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.fixes/rtsx_usb-export-device-table 2014-08-26 13:57:20.000000000 +0200
@@ -0,0 +1,28 @@
+From: Jeff Mahoney <jeffm(a)suse.com>
+Subject: rtsx_usb: export device table
+References: bnc#890096
+Patch-mainline: Submitted to LKML 8 Aug 2014
+
+The rtsx_usb driver contains the table for the devices it supports but
+doesn't export it. As a result, no alias is generated and it doesn't
+get loaded automatically.
+
+Via https://bugzilla.novell.com/show_bug.cgi?id=890096
+
+Reported-by: Marcel Witte <wittemar(a)googlemail.com>
+Signed-off-by: Jeff Mahoney <jeffm(a)suse.com>
+---
+ drivers/mfd/rtsx_usb.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/drivers/mfd/rtsx_usb.c
++++ b/drivers/mfd/rtsx_usb.c
+@@ -744,6 +744,7 @@ static struct usb_device_id rtsx_usb_usb
+ { USB_DEVICE(0x0BDA, 0x0140) },
+ { }
+ };
++MODULE_DEVICE_TABLE(usb, rtsx_usb_usb_ids);
+
+ static struct usb_driver rtsx_usb_driver = {
+ .name = "rtsx_usb",
+
++++++ patches.kernel.org.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.kernel.org/patch-3.16.1 new/patches.kernel.org/patch-3.16.1
--- old/patches.kernel.org/patch-3.16.1 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.kernel.org/patch-3.16.1 2014-08-17 10:28:54.000000000 +0200
@@ -0,0 +1,530 @@
+From: Jiri Slaby <jslaby(a)suse.cz>
+Subject: Linux 3.16.1
+Patch-mainline: 3.16.1
+Git-commit: 093758e3daede29cb4ce6aedb111becf9d4bfc57
+Git-commit: 4ec1b01029b4facb651b8ef70bc20a4be4cebc63
+Git-commit: fe418231b195c205701c0cc550a03f6c9758fd9e
+Git-commit: 5cdceab3d5e02eb69ea0f5d8fa9181800baf6f77
+Git-commit: 4ca9a23765da3260058db3431faf5b4efd8cf926
+Git-commit: 18f38132528c3e603c66ea464727b29e9bbcb91b
+Git-commit: 4d8fdc95c60e90d84c8257a0067ff4b1729a3757
+Git-commit: 757efd32d5ce31f67193cc0e6a56e4dffcc42fb1
+Git-commit: ce7991e8198b80eb6b4441b6f6114bea4a665d66
+Git-commit: d9124268d84a836f14a6ead54ff9d8eee4c43be5
+Git-commit: 06ebb06d49486676272a3c030bfeef4bd969a8e6
+Git-commit: fcdfe3a7fa4cb74391d42b6a26dc07c20dab1d82
+Git-commit: 081e83a78db9b0ae1f5eabc2dedecc865f509b98
+Git-commit: c36c9d50cc6af5c5bfcc195f21b73f55520c15f9
+Git-commit: 1f74e613ded11517db90b2bd57e9464d9e0fb161
+Git-commit: 45a07695bc64b3ab5d6d2215f9677e5b8c05a7d0
+Git-commit: 95cb5745983c222867cc9ac593aebb2ad67d72c0
+
+Signed-off-by: Jiri Slaby <jslaby(a)suse.cz>
+---
+diff --git a/Makefile b/Makefile
+index d0901b46b4bf..87663a2d1d10 100644
+--- a/Makefile
++++ b/Makefile
+@@ -1,8 +1,8 @@
+ VERSION = 3
+ PATCHLEVEL = 16
+-SUBLEVEL = 0
++SUBLEVEL = 1
+ EXTRAVERSION =
+-NAME = Shuffling Zombie Juror
++NAME = Museum of Fishiegoodies
+
+ # *DOCUMENTATION*
+ # To see a list of typical targets execute "make help"
+diff --git a/arch/sparc/include/asm/tlbflush_64.h b/arch/sparc/include/asm/tlbflush_64.h
+index 816d8202fa0a..dea1cfa2122b 100644
+--- a/arch/sparc/include/asm/tlbflush_64.h
++++ b/arch/sparc/include/asm/tlbflush_64.h
+@@ -34,6 +34,8 @@ static inline void flush_tlb_range(struct vm_area_struct *vma,
+ {
+ }
+
++void flush_tlb_kernel_range(unsigned long start, unsigned long end);
++
+ #define __HAVE_ARCH_ENTER_LAZY_MMU_MODE
+
+ void flush_tlb_pending(void);
+@@ -48,11 +50,6 @@ void __flush_tlb_kernel_range(unsigned long start, unsigned long end);
+
+ #ifndef CONFIG_SMP
+
+-#define flush_tlb_kernel_range(start,end) \
+-do { flush_tsb_kernel_range(start,end); \
+- __flush_tlb_kernel_range(start,end); \
+-} while (0)
+-
+ static inline void global_flush_tlb_page(struct mm_struct *mm, unsigned long vaddr)
+ {
+ __flush_tlb_page(CTX_HWBITS(mm->context), vaddr);
+@@ -63,11 +60,6 @@ static inline void global_flush_tlb_page(struct mm_struct *mm, unsigned long vad
+ void smp_flush_tlb_kernel_range(unsigned long start, unsigned long end);
+ void smp_flush_tlb_page(struct mm_struct *mm, unsigned long vaddr);
+
+-#define flush_tlb_kernel_range(start, end) \
+-do { flush_tsb_kernel_range(start,end); \
+- smp_flush_tlb_kernel_range(start, end); \
+-} while (0)
+-
+ #define global_flush_tlb_page(mm, vaddr) \
+ smp_flush_tlb_page(mm, vaddr)
+
+diff --git a/arch/sparc/kernel/ldc.c b/arch/sparc/kernel/ldc.c
+index e01d75d40329..66dacd56bb10 100644
+--- a/arch/sparc/kernel/ldc.c
++++ b/arch/sparc/kernel/ldc.c
+@@ -1336,7 +1336,7 @@ int ldc_connect(struct ldc_channel *lp)
+ if (!(lp->flags & LDC_FLAG_ALLOCED_QUEUES) ||
+ !(lp->flags & LDC_FLAG_REGISTERED_QUEUES) ||
+ lp->hs_state != LDC_HS_OPEN)
+- err = -EINVAL;
++ err = ((lp->hs_state > LDC_HS_OPEN) ? 0 : -EINVAL);
+ else
+ err = start_handshake(lp);
+
+diff --git a/arch/sparc/math-emu/math_32.c b/arch/sparc/math-emu/math_32.c
+index aa4d55b0bdf0..5ce8f2f64604 100644
+--- a/arch/sparc/math-emu/math_32.c
++++ b/arch/sparc/math-emu/math_32.c
+@@ -499,7 +499,7 @@ static int do_one_mathemu(u32 insn, unsigned long *pfsr, unsigned long *fregs)
+ case 0: fsr = *pfsr;
+ if (IR == -1) IR = 2;
+ /* fcc is always fcc0 */
+- fsr &= ~0xc00; fsr |= (IR << 10); break;
++ fsr &= ~0xc00; fsr |= (IR << 10);
+ *pfsr = fsr;
+ break;
+ case 1: rd->s = IR; break;
+diff --git a/arch/sparc/mm/init_64.c b/arch/sparc/mm/init_64.c
+index 16b58ff11e65..2cfb0f25e0ed 100644
+--- a/arch/sparc/mm/init_64.c
++++ b/arch/sparc/mm/init_64.c
+@@ -351,6 +351,10 @@ void update_mmu_cache(struct vm_area_struct *vma, unsigned long address, pte_t *
+
+ mm = vma->vm_mm;
+
++ /* Don't insert a non-valid PTE into the TSB, we'll deadlock. */
++ if (!pte_accessible(mm, pte))
++ return;
++
+ spin_lock_irqsave(&mm->context.lock, flags);
+
+ #if defined(CONFIG_HUGETLB_PAGE) || defined(CONFIG_TRANSPARENT_HUGEPAGE)
+@@ -2619,6 +2623,10 @@ void update_mmu_cache_pmd(struct vm_area_struct *vma, unsigned long addr,
+
+ pte = pmd_val(entry);
+
++ /* Don't insert a non-valid PMD into the TSB, we'll deadlock. */
++ if (!(pte & _PAGE_VALID))
++ return;
++
+ /* We are fabricating 8MB pages using 4MB real hw pages. */
+ pte |= (addr & (1UL << REAL_HPAGE_SHIFT));
+
+@@ -2699,3 +2707,26 @@ void hugetlb_setup(struct pt_regs *regs)
+ }
+ }
+ #endif
++
++#ifdef CONFIG_SMP
++#define do_flush_tlb_kernel_range smp_flush_tlb_kernel_range
++#else
++#define do_flush_tlb_kernel_range __flush_tlb_kernel_range
++#endif
++
++void flush_tlb_kernel_range(unsigned long start, unsigned long end)
++{
++ if (start < HI_OBP_ADDRESS && end > LOW_OBP_ADDRESS) {
++ if (start < LOW_OBP_ADDRESS) {
++ flush_tsb_kernel_range(start, LOW_OBP_ADDRESS);
++ do_flush_tlb_kernel_range(start, LOW_OBP_ADDRESS);
++ }
++ if (end > HI_OBP_ADDRESS) {
++ flush_tsb_kernel_range(end, HI_OBP_ADDRESS);
++ do_flush_tlb_kernel_range(end, HI_OBP_ADDRESS);
++ }
++ } else {
++ flush_tsb_kernel_range(start, end);
++ do_flush_tlb_kernel_range(start, end);
++ }
++}
+diff --git a/drivers/net/ethernet/broadcom/tg3.c b/drivers/net/ethernet/broadcom/tg3.c
+index 8afa579e7c40..a3dd5dc64f4c 100644
+--- a/drivers/net/ethernet/broadcom/tg3.c
++++ b/drivers/net/ethernet/broadcom/tg3.c
+@@ -7830,17 +7830,18 @@ static int tigon3_dma_hwbug_workaround(struct tg3_napi *tnapi,
+
+ static netdev_tx_t tg3_start_xmit(struct sk_buff *, struct net_device *);
+
+-/* Use GSO to workaround a rare TSO bug that may be triggered when the
+- * TSO header is greater than 80 bytes.
++/* Use GSO to workaround all TSO packets that meet HW bug conditions
++ * indicated in tg3_tx_frag_set()
+ */
+-static int tg3_tso_bug(struct tg3 *tp, struct sk_buff *skb)
++static int tg3_tso_bug(struct tg3 *tp, struct tg3_napi *tnapi,
++ struct netdev_queue *txq, struct sk_buff *skb)
+ {
+ struct sk_buff *segs, *nskb;
+ u32 frag_cnt_est = skb_shinfo(skb)->gso_segs * 3;
+
+ /* Estimate the number of fragments in the worst case */
+- if (unlikely(tg3_tx_avail(&tp->napi[0]) <= frag_cnt_est)) {
+- netif_stop_queue(tp->dev);
++ if (unlikely(tg3_tx_avail(tnapi) <= frag_cnt_est)) {
++ netif_tx_stop_queue(txq);
+
+ /* netif_tx_stop_queue() must be done before checking
+ * checking tx index in tg3_tx_avail() below, because in
+@@ -7848,13 +7849,14 @@ static int tg3_tso_bug(struct tg3 *tp, struct sk_buff *skb)
+ * netif_tx_queue_stopped().
+ */
+ smp_mb();
+- if (tg3_tx_avail(&tp->napi[0]) <= frag_cnt_est)
++ if (tg3_tx_avail(tnapi) <= frag_cnt_est)
+ return NETDEV_TX_BUSY;
+
+- netif_wake_queue(tp->dev);
++ netif_tx_wake_queue(txq);
+ }
+
+- segs = skb_gso_segment(skb, tp->dev->features & ~(NETIF_F_TSO | NETIF_F_TSO6));
++ segs = skb_gso_segment(skb, tp->dev->features &
++ ~(NETIF_F_TSO | NETIF_F_TSO6));
+ if (IS_ERR(segs) || !segs)
+ goto tg3_tso_bug_end;
+
+@@ -7930,7 +7932,7 @@ static netdev_tx_t tg3_start_xmit(struct sk_buff *skb, struct net_device *dev)
+ if (!skb_is_gso_v6(skb)) {
+ if (unlikely((ETH_HLEN + hdr_len) > 80) &&
+ tg3_flag(tp, TSO_BUG))
+- return tg3_tso_bug(tp, skb);
++ return tg3_tso_bug(tp, tnapi, txq, skb);
+
+ ip_csum = iph->check;
+ ip_tot_len = iph->tot_len;
+@@ -8061,7 +8063,7 @@ static netdev_tx_t tg3_start_xmit(struct sk_buff *skb, struct net_device *dev)
+ iph->tot_len = ip_tot_len;
+ }
+ tcph->check = tcp_csum;
+- return tg3_tso_bug(tp, skb);
++ return tg3_tso_bug(tp, tnapi, txq, skb);
+ }
+
+ /* If the workaround fails due to memory/mapping
+diff --git a/drivers/net/ethernet/brocade/bna/bnad.c b/drivers/net/ethernet/brocade/bna/bnad.c
+index 3a77f9ead004..556aab75f490 100644
+--- a/drivers/net/ethernet/brocade/bna/bnad.c
++++ b/drivers/net/ethernet/brocade/bna/bnad.c
+@@ -600,9 +600,9 @@ bnad_cq_process(struct bnad *bnad, struct bna_ccb *ccb, int budget)
+ prefetch(bnad->netdev);
+
+ cq = ccb->sw_q;
+- cmpl = &cq[ccb->producer_index];
+
+ while (packets < budget) {
++ cmpl = &cq[ccb->producer_index];
+ if (!cmpl->valid)
+ break;
+ /* The 'valid' field is set by the adapter, only after writing
+diff --git a/drivers/net/macvlan.c b/drivers/net/macvlan.c
+index 958df383068a..ef8a5c20236a 100644
+--- a/drivers/net/macvlan.c
++++ b/drivers/net/macvlan.c
+@@ -646,6 +646,7 @@ static int macvlan_init(struct net_device *dev)
+ (lowerdev->state & MACVLAN_STATE_MASK);
+ dev->features = lowerdev->features & MACVLAN_FEATURES;
+ dev->features |= ALWAYS_ON_FEATURES;
++ dev->vlan_features = lowerdev->vlan_features & MACVLAN_FEATURES;
+ dev->gso_max_size = lowerdev->gso_max_size;
+ dev->iflink = lowerdev->ifindex;
+ dev->hard_header_len = lowerdev->hard_header_len;
+diff --git a/drivers/net/phy/mdio_bus.c b/drivers/net/phy/mdio_bus.c
+index 203651ebccb0..4eaadcfcb0fe 100644
+--- a/drivers/net/phy/mdio_bus.c
++++ b/drivers/net/phy/mdio_bus.c
+@@ -255,7 +255,6 @@ int mdiobus_register(struct mii_bus *bus)
+
+ bus->dev.parent = bus->parent;
+ bus->dev.class = &mdio_bus_class;
+- bus->dev.driver = bus->parent->driver;
+ bus->dev.groups = NULL;
+ dev_set_name(&bus->dev, "%s", bus->id);
+
+diff --git a/drivers/sbus/char/bbc_envctrl.c b/drivers/sbus/char/bbc_envctrl.c
+index 160e7510aca6..0787b9756165 100644
+--- a/drivers/sbus/char/bbc_envctrl.c
++++ b/drivers/sbus/char/bbc_envctrl.c
+@@ -452,6 +452,9 @@ static void attach_one_temp(struct bbc_i2c_bus *bp, struct platform_device *op,
+ if (!tp)
+ return;
+
++ INIT_LIST_HEAD(&tp->bp_list);
++ INIT_LIST_HEAD(&tp->glob_list);
++
+ tp->client = bbc_i2c_attach(bp, op);
+ if (!tp->client) {
+ kfree(tp);
+@@ -497,6 +500,9 @@ static void attach_one_fan(struct bbc_i2c_bus *bp, struct platform_device *op,
+ if (!fp)
+ return;
+
++ INIT_LIST_HEAD(&fp->bp_list);
++ INIT_LIST_HEAD(&fp->glob_list);
++
+ fp->client = bbc_i2c_attach(bp, op);
+ if (!fp->client) {
+ kfree(fp);
+diff --git a/drivers/sbus/char/bbc_i2c.c b/drivers/sbus/char/bbc_i2c.c
+index c7763e482eb2..812b5f0361b6 100644
+--- a/drivers/sbus/char/bbc_i2c.c
++++ b/drivers/sbus/char/bbc_i2c.c
+@@ -300,13 +300,18 @@ static struct bbc_i2c_bus * attach_one_i2c(struct platform_device *op, int index
+ if (!bp)
+ return NULL;
+
++ INIT_LIST_HEAD(&bp->temps);
++ INIT_LIST_HEAD(&bp->fans);
++
+ bp->i2c_control_regs = of_ioremap(&op->resource[0], 0, 0x2, "bbc_i2c_regs");
+ if (!bp->i2c_control_regs)
+ goto fail;
+
+- bp->i2c_bussel_reg = of_ioremap(&op->resource[1], 0, 0x1, "bbc_i2c_bussel");
+- if (!bp->i2c_bussel_reg)
+- goto fail;
++ if (op->num_resources == 2) {
++ bp->i2c_bussel_reg = of_ioremap(&op->resource[1], 0, 0x1, "bbc_i2c_bussel");
++ if (!bp->i2c_bussel_reg)
++ goto fail;
++ }
+
+ bp->waiting = 0;
+ init_waitqueue_head(&bp->wq);
+diff --git a/drivers/tty/serial/sunsab.c b/drivers/tty/serial/sunsab.c
+index 2f57df9a71d9..a1e09c0d46f2 100644
+--- a/drivers/tty/serial/sunsab.c
++++ b/drivers/tty/serial/sunsab.c
+@@ -157,6 +157,15 @@ receive_chars(struct uart_sunsab_port *up,
+ (up->port.line == up->port.cons->index))
+ saw_console_brk = 1;
+
++ if (count == 0) {
++ if (unlikely(stat->sreg.isr1 & SAB82532_ISR1_BRK)) {
++ stat->sreg.isr0 &= ~(SAB82532_ISR0_PERR |
++ SAB82532_ISR0_FERR);
++ up->port.icount.brk++;
++ uart_handle_break(&up->port);
++ }
++ }
++
+ for (i = 0; i < count; i++) {
+ unsigned char ch = buf[i], flag;
+
+diff --git a/include/net/ip_tunnels.h b/include/net/ip_tunnels.h
+index a4daf9eb8562..8dd8cab88b87 100644
+--- a/include/net/ip_tunnels.h
++++ b/include/net/ip_tunnels.h
+@@ -40,6 +40,7 @@ struct ip_tunnel_prl_entry {
+
+ struct ip_tunnel_dst {
+ struct dst_entry __rcu *dst;
++ __be32 saddr;
+ };
+
+ struct ip_tunnel {
+diff --git a/lib/iovec.c b/lib/iovec.c
+index 7a7c2da4cddf..df3abd1eaa4a 100644
+--- a/lib/iovec.c
++++ b/lib/iovec.c
+@@ -85,6 +85,10 @@ EXPORT_SYMBOL(memcpy_toiovecend);
+ int memcpy_fromiovecend(unsigned char *kdata, const struct iovec *iov,
+ int offset, int len)
+ {
++ /* No data? Done! */
++ if (len == 0)
++ return 0;
++
+ /* Skip over the finished iovecs */
+ while (offset >= iov->iov_len) {
+ offset -= iov->iov_len;
+diff --git a/net/batman-adv/fragmentation.c b/net/batman-adv/fragmentation.c
+index f14e54a05691..022d18ab27a6 100644
+--- a/net/batman-adv/fragmentation.c
++++ b/net/batman-adv/fragmentation.c
+@@ -128,6 +128,7 @@ static bool batadv_frag_insert_packet(struct batadv_orig_node *orig_node,
+ {
+ struct batadv_frag_table_entry *chain;
+ struct batadv_frag_list_entry *frag_entry_new = NULL, *frag_entry_curr;
++ struct batadv_frag_list_entry *frag_entry_last = NULL;
+ struct batadv_frag_packet *frag_packet;
+ uint8_t bucket;
+ uint16_t seqno, hdr_size = sizeof(struct batadv_frag_packet);
+@@ -180,11 +181,14 @@ static bool batadv_frag_insert_packet(struct batadv_orig_node *orig_node,
+ ret = true;
+ goto out;
+ }
++
++ /* store current entry because it could be the last in list */
++ frag_entry_last = frag_entry_curr;
+ }
+
+- /* Reached the end of the list, so insert after 'frag_entry_curr'. */
+- if (likely(frag_entry_curr)) {
+- hlist_add_after(&frag_entry_curr->list, &frag_entry_new->list);
++ /* Reached the end of the list, so insert after 'frag_entry_last'. */
++ if (likely(frag_entry_last)) {
++ hlist_add_after(&frag_entry_last->list, &frag_entry_new->list);
+ chain->size += skb->len - hdr_size;
+ chain->timestamp = jiffies;
+ ret = true;
+diff --git a/net/core/skbuff.c b/net/core/skbuff.c
+index c1a33033cbe2..58ff88edbefd 100644
+--- a/net/core/skbuff.c
++++ b/net/core/skbuff.c
+@@ -2976,9 +2976,9 @@ struct sk_buff *skb_segment(struct sk_buff *head_skb,
+ tail = nskb;
+
+ __copy_skb_header(nskb, head_skb);
+- nskb->mac_len = head_skb->mac_len;
+
+ skb_headers_offset_update(nskb, skb_headroom(nskb) - headroom);
++ skb_reset_mac_len(nskb);
+
+ skb_copy_from_linear_data_offset(head_skb, -tnl_hlen,
+ nskb->data - tnl_hlen,
+diff --git a/net/ipv4/ip_tunnel.c b/net/ipv4/ip_tunnel.c
+index 6f9de61dce5f..45920d928341 100644
+--- a/net/ipv4/ip_tunnel.c
++++ b/net/ipv4/ip_tunnel.c
+@@ -69,23 +69,25 @@ static unsigned int ip_tunnel_hash(__be32 key, __be32 remote)
+ }
+
+ static void __tunnel_dst_set(struct ip_tunnel_dst *idst,
+- struct dst_entry *dst)
++ struct dst_entry *dst, __be32 saddr)
+ {
+ struct dst_entry *old_dst;
+
+ dst_clone(dst);
+ old_dst = xchg((__force struct dst_entry **)&idst->dst, dst);
+ dst_release(old_dst);
++ idst->saddr = saddr;
+ }
+
+-static void tunnel_dst_set(struct ip_tunnel *t, struct dst_entry *dst)
++static void tunnel_dst_set(struct ip_tunnel *t,
++ struct dst_entry *dst, __be32 saddr)
+ {
+- __tunnel_dst_set(this_cpu_ptr(t->dst_cache), dst);
++ __tunnel_dst_set(this_cpu_ptr(t->dst_cache), dst, saddr);
+ }
+
+ static void tunnel_dst_reset(struct ip_tunnel *t)
+ {
+- tunnel_dst_set(t, NULL);
++ tunnel_dst_set(t, NULL, 0);
+ }
+
+ void ip_tunnel_dst_reset_all(struct ip_tunnel *t)
+@@ -93,20 +95,25 @@ void ip_tunnel_dst_reset_all(struct ip_tunnel *t)
+ int i;
+
+ for_each_possible_cpu(i)
+- __tunnel_dst_set(per_cpu_ptr(t->dst_cache, i), NULL);
++ __tunnel_dst_set(per_cpu_ptr(t->dst_cache, i), NULL, 0);
+ }
+ EXPORT_SYMBOL(ip_tunnel_dst_reset_all);
+
+-static struct rtable *tunnel_rtable_get(struct ip_tunnel *t, u32 cookie)
++static struct rtable *tunnel_rtable_get(struct ip_tunnel *t,
++ u32 cookie, __be32 *saddr)
+ {
++ struct ip_tunnel_dst *idst;
+ struct dst_entry *dst;
+
+ rcu_read_lock();
+- dst = rcu_dereference(this_cpu_ptr(t->dst_cache)->dst);
++ idst = this_cpu_ptr(t->dst_cache);
++ dst = rcu_dereference(idst->dst);
+ if (dst && !atomic_inc_not_zero(&dst->__refcnt))
+ dst = NULL;
+ if (dst) {
+- if (dst->obsolete && dst->ops->check(dst, cookie) == NULL) {
++ if (!dst->obsolete || dst->ops->check(dst, cookie)) {
++ *saddr = idst->saddr;
++ } else {
+ tunnel_dst_reset(t);
+ dst_release(dst);
+ dst = NULL;
+@@ -367,7 +374,7 @@ static int ip_tunnel_bind_dev(struct net_device *dev)
+
+ if (!IS_ERR(rt)) {
+ tdev = rt->dst.dev;
+- tunnel_dst_set(tunnel, &rt->dst);
++ tunnel_dst_set(tunnel, &rt->dst, fl4.saddr);
+ ip_rt_put(rt);
+ }
+ if (dev->type != ARPHRD_ETHER)
+@@ -610,7 +617,7 @@ void ip_tunnel_xmit(struct sk_buff *skb, struct net_device *dev,
+ init_tunnel_flow(&fl4, protocol, dst, tnl_params->saddr,
+ tunnel->parms.o_key, RT_TOS(tos), tunnel->parms.link);
+
+- rt = connected ? tunnel_rtable_get(tunnel, 0) : NULL;
++ rt = connected ? tunnel_rtable_get(tunnel, 0, &fl4.saddr) : NULL;
+
+ if (!rt) {
+ rt = ip_route_output_key(tunnel->net, &fl4);
+@@ -620,7 +627,7 @@ void ip_tunnel_xmit(struct sk_buff *skb, struct net_device *dev,
+ goto tx_error;
+ }
+ if (connected)
+- tunnel_dst_set(tunnel, &rt->dst);
++ tunnel_dst_set(tunnel, &rt->dst, fl4.saddr);
+ }
+
+ if (rt->dst.dev == dev) {
+diff --git a/net/ipv4/tcp_vegas.c b/net/ipv4/tcp_vegas.c
+index 9a5e05f27f4f..b40ad897f945 100644
+--- a/net/ipv4/tcp_vegas.c
++++ b/net/ipv4/tcp_vegas.c
+@@ -218,7 +218,8 @@ static void tcp_vegas_cong_avoid(struct sock *sk, u32 ack, u32 acked)
+ * This is:
+ * (actual rate in segments) * baseRTT
+ */
+- target_cwnd = tp->snd_cwnd * vegas->baseRTT / rtt;
++ target_cwnd = (u64)tp->snd_cwnd * vegas->baseRTT;
++ do_div(target_cwnd, rtt);
+
+ /* Calculate the difference between the window we had,
+ * and the window we would like to have. This quantity
+diff --git a/net/ipv4/tcp_veno.c b/net/ipv4/tcp_veno.c
+index 27b9825753d1..8276977d2c85 100644
+--- a/net/ipv4/tcp_veno.c
++++ b/net/ipv4/tcp_veno.c
+@@ -144,7 +144,7 @@ static void tcp_veno_cong_avoid(struct sock *sk, u32 ack, u32 acked)
+
+ rtt = veno->minrtt;
+
+- target_cwnd = (tp->snd_cwnd * veno->basertt);
++ target_cwnd = (u64)tp->snd_cwnd * veno->basertt;
+ target_cwnd <<= V_PARAM_SHIFT;
+ do_div(target_cwnd, rtt);
+
+diff --git a/net/sctp/output.c b/net/sctp/output.c
+index 01ab8e0723f0..407ae2bf97b0 100644
+--- a/net/sctp/output.c
++++ b/net/sctp/output.c
+@@ -599,7 +599,7 @@ out:
+ return err;
+ no_route:
+ kfree_skb(nskb);
+- IP_INC_STATS_BH(sock_net(asoc->base.sk), IPSTATS_MIB_OUTNOROUTES);
++ IP_INC_STATS(sock_net(asoc->base.sk), IPSTATS_MIB_OUTNOROUTES);
+
+ /* FIXME: Returning the 'err' will effect all the associations
+ * associated with a socket, although only one of the paths of the
++++++ patches.suse.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/btrfs-0003-read-lock-extent-buffer-while-walking-backrefs.patch new/patches.suse/btrfs-0003-read-lock-extent-buffer-while-walking-backrefs.patch
--- old/patches.suse/btrfs-0003-read-lock-extent-buffer-while-walking-backrefs.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.suse/btrfs-0003-read-lock-extent-buffer-while-walking-backrefs.patch 2014-08-26 13:57:20.000000000 +0200
@@ -0,0 +1,30 @@
+From: Filipe Manana <fdmanana(a)suse.com>
+Date: Wed, 2 Jul 2014 20:07:54 +0100
+Patch-mainline: 3.17
+Git-commit: 6f7ff6d7832c6be13e8c95598884dbc40ad69fb7
+Subject: [PATCH] Btrfs: read lock extent buffer while walking backrefs
+
+Before processing the extent buffer, acquire a read lock on it, so
+that we're safe against concurrent updates on the extent buffer.
+
+Signed-off-by: Filipe Manana <fdmanana(a)suse.com>
+Signed-off-by: Chris Mason <clm(a)fb.com>
+Signed-off-by: David Sterba <dsterba(a)suse.cz>
+---
+ fs/btrfs/backref.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/fs/btrfs/backref.c
++++ b/fs/btrfs/backref.c
+@@ -1001,8 +1001,11 @@ again:
+ ret = -EIO;
+ goto out;
+ }
++ btrfs_tree_read_lock(eb);
++ btrfs_set_lock_blocking_rw(eb, BTRFS_READ_LOCK);
+ ret = find_extent_in_eb(eb, bytenr,
+ *extent_item_pos, &eie);
++ btrfs_tree_read_unlock_blocking(eb);
+ free_extent_buffer(eb);
+ if (ret < 0)
+ goto out;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/btrfs-0006-fix-compressed-write-corruption-on-enospc.patch new/patches.suse/btrfs-0006-fix-compressed-write-corruption-on-enospc.patch
--- old/patches.suse/btrfs-0006-fix-compressed-write-corruption-on-enospc.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.suse/btrfs-0006-fix-compressed-write-corruption-on-enospc.patch 2014-08-26 13:57:20.000000000 +0200
@@ -0,0 +1,41 @@
+From: Liu Bo <bo.li.liu(a)oracle.com>
+Date: Thu, 24 Jul 2014 22:48:05 +0800
+Patch-mainline: 3.17
+Git-commit: ce62003f690dff38d3164a632ec69efa15c32cbf
+Subject: [PATCH] Btrfs: fix compressed write corruption on enospc
+
+When failing to allocate space for the whole compressed extent, we'll
+fallback to uncompressed IO, but we've forgotten to redirty the pages
+which belong to this compressed extent, and these 'clean' pages will
+simply skip 'submit' part and go to endio directly, at last we got data
+corruption as we write nothing.
+
+Signed-off-by: Liu Bo <bo.li.liu(a)oracle.com>
+Tested-By: Martin Steigerwald <martin(a)lichtvoll.de>
+Signed-off-by: Chris Mason <clm(a)fb.com>
+Signed-off-by: David Sterba <dsterba(a)suse.cz>
+---
+ fs/btrfs/inode.c | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+--- a/fs/btrfs/inode.c
++++ b/fs/btrfs/inode.c
+@@ -709,6 +709,18 @@ retry:
+ unlock_extent(io_tree, async_extent->start,
+ async_extent->start +
+ async_extent->ram_size - 1);
++
++ /*
++ * we need to redirty the pages if we decide to
++ * fallback to uncompressed IO, otherwise we
++ * will not submit these pages down to lower
++ * layers.
++ */
++ extent_range_redirty_for_io(inode,
++ async_extent->start,
++ async_extent->start +
++ async_extent->ram_size - 1);
++
+ goto retry;
+ }
+ goto out_free;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/btrfs-0008-fix-csum-tree-corruption-duplicate-and-outdate.patch new/patches.suse/btrfs-0008-fix-csum-tree-corruption-duplicate-and-outdate.patch
--- old/patches.suse/btrfs-0008-fix-csum-tree-corruption-duplicate-and-outdate.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.suse/btrfs-0008-fix-csum-tree-corruption-duplicate-and-outdate.patch 2014-08-26 13:57:20.000000000 +0200
@@ -0,0 +1,104 @@
+From: Filipe Manana <fdmanana(a)suse.com>
+Date: Sat, 9 Aug 2014 21:22:27 +0100
+Patch-mainline: 3.17
+Git-commit: 27b9a8122ff71a8cadfbffb9c4f0694300464f3b
+Subject: [PATCH] Btrfs: fix csum tree corruption, duplicate and outdated
+ checksums
+
+Under rare circumstances we can end up leaving 2 versions of a checksum
+for the same file extent range.
+
+The reason for this is that after calling btrfs_next_leaf we process
+slot 0 of the leaf it returns, instead of processing the slot set in
+path->slots[0]. Most of the time (by far) path->slots[0] is 0, but after
+btrfs_next_leaf() releases the path and before it searches for the next
+leaf, another task might cause a split of the next leaf, which migrates
+some of its keys to the leaf we were processing before calling
+btrfs_next_leaf(). In this case btrfs_next_leaf() returns again the
+same leaf but with path->slots[0] having a slot number corresponding
+to the first new key it got, that is, a slot number that didn't exist
+before calling btrfs_next_leaf(), as the leaf now has more keys than
+it had before. So we must really process the returned leaf starting at
+path->slots[0] always, as it isn't always 0, and the key at slot 0 can
+have an offset much lower than our search offset/bytenr.
+
+For example, consider the following scenario, where we have:
+
+sums->bytenr: 40157184, sums->len: 16384, sums end: 40173568
+four 4kb file data blocks with offsets 40157184, 40161280, 40165376, 40169472
+
+ Leaf N:
+
+ slot = 0 slot = btrfs_header_nritems() - 1
+ |-------------------------------------------------------------------|
+ | [(CSUM CSUM 39239680), size 8] ... [(CSUM CSUM 40116224), size 4] |
+ |-------------------------------------------------------------------|
+
+ Leaf N + 1:
+
+ slot = 0 slot = btrfs_header_nritems() - 1
+ |--------------------------------------------------------------------|
+ | [(CSUM CSUM 40161280), size 32] ... [((CSUM CSUM 40615936), size 8 |
+ |--------------------------------------------------------------------|
+
+Because we are at the last slot of leaf N, we call btrfs_next_leaf() to
+find the next highest key, which releases the current path and then searches
+for that next key. However after releasing the path and before finding that
+next key, the item at slot 0 of leaf N + 1 gets moved to leaf N, due to a call
+to ctree.c:push_leaf_left() (via ctree.c:split_leaf()), and therefore
+btrfs_next_leaf() will returns us a path again with leaf N but with the slot
+pointing to its new last key (CSUM CSUM 40161280). This new version of leaf N
+is then:
+
+ slot = 0 slot = btrfs_header_nritems() - 2 slot = btrfs_header_nritems() - 1
+ |----------------------------------------------------------------------------------------------------|
+ | [(CSUM CSUM 39239680), size 8] ... [(CSUM CSUM 40116224), size 4] [(CSUM CSUM 40161280), size 32] |
+ |----------------------------------------------------------------------------------------------------|
+
+And incorrecly using slot 0, makes us set next_offset to 39239680 and we jump
+into the "insert:" label, which will set tmp to:
+
+ tmp = min((sums->len - total_bytes) >> blocksize_bits,
+ (next_offset - file_key.offset) >> blocksize_bits) =
+ min((16384 - 0) >> 12, (39239680 - 40157184) >> 12) =
+ min(4, (u64)-917504 = 18446744073708634112 >> 12) = 4
+
+and
+
+ ins_size = csum_size * tmp = 4 * 4 = 16 bytes.
+
+In other words, we insert a new csum item in the tree with key
+(CSUM_OBJECTID CSUM_KEY 40157184 = sums->bytenr) that contains the checksums
+for all the data (4 blocks of 4096 bytes each = sums->len). Which is wrong,
+because the item with key (CSUM CSUM 40161280) (the one that was moved from
+leaf N + 1 to the end of leaf N) contains the old checksums of the last 12288
+bytes of our data and won't get those old checksums removed.
+
+So this leaves us 2 different checksums for 3 4kb blocks of data in the tree,
+and breaks the logical rule:
+
+ Key_N+1.offset >= Key_N.offset + length_of_data_its_checksums_cover
+
+An obvious bad effect of this is that a subsequent csum tree lookup to get
+the checksum of any of the blocks with logical offset of 40161280, 40165376
+or 40169472 (the last 3 4kb blocks of file data), will get the old checksums.
+
+Cc: stable(a)vger.kernel.org
+Signed-off-by: Filipe Manana <fdmanana(a)suse.com>
+Signed-off-by: Chris Mason <clm(a)fb.com>
+Signed-off-by: David Sterba <dsterba(a)suse.cz>
+---
+ fs/btrfs/file-item.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/fs/btrfs/file-item.c
++++ b/fs/btrfs/file-item.c
+@@ -756,7 +756,7 @@ again:
+ found_next = 1;
+ if (ret != 0)
+ goto insert;
+- slot = 0;
++ slot = path->slots[0];
+ }
+ btrfs_item_key_to_cpu(path->nodes[0], &found_key, slot);
+ if (found_key.objectid != BTRFS_EXTENT_CSUM_OBJECTID ||
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/btrfs-0011-fill_holes-Fix-slot-number-passed-to-hole_merg.patch new/patches.suse/btrfs-0011-fill_holes-Fix-slot-number-passed-to-hole_merg.patch
--- old/patches.suse/btrfs-0011-fill_holes-Fix-slot-number-passed-to-hole_merg.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.suse/btrfs-0011-fill_holes-Fix-slot-number-passed-to-hole_merg.patch 2014-08-26 13:57:20.000000000 +0200
@@ -0,0 +1,37 @@
+From: chandan <chandan(a)linux.vnet.ibm.com>
+Date: Tue, 1 Jul 2014 12:04:28 +0530
+Patch-mainline: 3.17
+Git-commit: 1707e26d6ab05c477a91d260e31fda7c6c38588e
+Subject: [PATCH] Btrfs: fill_holes: Fix slot number passed to
+ hole_mergeable() call.
+
+For a non-existent key, btrfs_search_slot() sets path->slots[0] to the slot
+where the key could have been present, which in this case would be the slot
+containing the extent item which would be the next neighbor of the file range
+being punched. The current code passes an incremented path->slots[0] and we
+skip to the wrong file extent item. This would mean that we would fail to
+merge the "yet to be created" hole with the next neighboring hole (if one
+exists). Fix this.
+
+Signed-off-by: Chandan Rajendra <chandan(a)linux.vnet.ibm.com>
+Reviewed-by: Wang Shilong <wangsl.fnst(a)cn.fujitsu.com>
+Signed-off-by: Chris Mason <clm(a)fb.com>
+Signed-off-by: David Sterba <dsterba(a)suse.cz>
+---
+ fs/btrfs/file.c | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+--- a/fs/btrfs/file.c
++++ b/fs/btrfs/file.c
+@@ -2112,10 +2112,9 @@ static int fill_holes(struct btrfs_trans
+ goto out;
+ }
+
+- if (hole_mergeable(inode, leaf, path->slots[0]+1, offset, end)) {
++ if (hole_mergeable(inode, leaf, path->slots[0], offset, end)) {
+ u64 num_bytes;
+
+- path->slots[0]++;
+ key.offset = offset;
+ btrfs_set_item_key_safe(root, path, &key);
+ fi = btrfs_item_ptr(leaf, path->slots[0],
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/btrfs-0016-fix-wrong-write-range-for-filemap_fdatawrite_r.patch new/patches.suse/btrfs-0016-fix-wrong-write-range-for-filemap_fdatawrite_r.patch
--- old/patches.suse/btrfs-0016-fix-wrong-write-range-for-filemap_fdatawrite_r.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.suse/btrfs-0016-fix-wrong-write-range-for-filemap_fdatawrite_r.patch 2014-08-26 13:57:20.000000000 +0200
@@ -0,0 +1,30 @@
+From: Wang Shilong <wangsl.fnst(a)cn.fujitsu.com>
+Date: Thu, 17 Jul 2014 11:44:13 +0800
+Patch-mainline: 3.17
+Git-commit: 9a025a0860ccc0f02af153c966bc1f83e5d9fc62
+Subject: [PATCH] Btrfs: fix wrong write range for
+ filemap_fdatawrite_range()
+
+filemap_fdatawrite_range() expect the third arg to be @end
+not @len, fix it.
+
+Signed-off-by: Wang Shilong <wangsl.fnst(a)cn.fujitsu.com>
+Reviewed-by: David Sterba <dsterba(a)suse.cz>
+Signed-off-by: Chris Mason <clm(a)fb.com>
+Signed-off-by: David Sterba <dsterba(a)suse.cz>
+---
+ fs/btrfs/inode.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- a/fs/btrfs/inode.c
++++ b/fs/btrfs/inode.c
+@@ -7534,7 +7534,8 @@ static ssize_t btrfs_direct_IO(int rw, s
+ count = iov_iter_count(iter);
+ if (test_bit(BTRFS_INODE_HAS_ASYNC_EXTENT,
+ &BTRFS_I(inode)->runtime_flags))
+- filemap_fdatawrite_range(inode->i_mapping, offset, count);
++ filemap_fdatawrite_range(inode->i_mapping, offset,
++ offset + count - 1);
+
+ if (rw & WRITE) {
+ /*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/btrfs-0017-fix-wrong-extent-mapping-for-DirectIO.patch new/patches.suse/btrfs-0017-fix-wrong-extent-mapping-for-DirectIO.patch
--- old/patches.suse/btrfs-0017-fix-wrong-extent-mapping-for-DirectIO.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.suse/btrfs-0017-fix-wrong-extent-mapping-for-DirectIO.patch 2014-08-26 13:57:20.000000000 +0200
@@ -0,0 +1,39 @@
+From: Wang Shilong <wangsl.fnst(a)cn.fujitsu.com>
+Date: Thu, 17 Jul 2014 11:44:14 +0800
+Patch-mainline: 3.17
+Git-commit: e2eca69dc6c09d968d69312b9899968a9b03a4a9
+Subject: [PATCH] Btrfs: fix wrong extent mapping for DirectIO
+
+btrfs_next_leaf() will use current leaf's last key to search
+and then return a bigger one. So it may still return a file extent
+item that is smaller than expected value and we will
+get an overflow here for @em->len.
+
+This is easy to reproduce for Btrfs Direct writting, it did not
+cause any problem, because writting will re-insert right mapping later.
+
+However, by hacking code to make DIO support compression, wrong extent
+mapping is kept and it encounter merging failure(EEXIST) quickly.
+
+Fix this problem by looping to find next file extent item that is bigger
+than @start or we could not find anything more.
+
+Signed-off-by: Wang Shilong <wangsl.fnst(a)cn.fujitsu.com>
+Reviewed-by: David Sterba <dsterba(a)suse.cz>
+Signed-off-by: Chris Mason <clm(a)fb.com>
+Signed-off-by: David Sterba <dsterba(a)suse.cz>
+---
+ fs/btrfs/inode.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/fs/btrfs/inode.c
++++ b/fs/btrfs/inode.c
+@@ -6275,6 +6275,8 @@ next:
+ goto not_found;
+ if (start + len <= found_key.offset)
+ goto not_found;
++ if (start > found_key.offset)
++ goto next;
+ em->start = start;
+ em->orig_start = start;
+ em->len = found_key.offset - start;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/btrfs-0018-Return-right-extent-when-fiemap-gives-unaligne.patch new/patches.suse/btrfs-0018-Return-right-extent-when-fiemap-gives-unaligne.patch
--- old/patches.suse/btrfs-0018-Return-right-extent-when-fiemap-gives-unaligne.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.suse/btrfs-0018-Return-right-extent-when-fiemap-gives-unaligne.patch 2014-08-26 13:57:20.000000000 +0200
@@ -0,0 +1,37 @@
+From: Qu Wenruo <quwenruo(a)cn.fujitsu.com>
+Date: Fri, 18 Jul 2014 09:55:43 +0800
+Patch-mainline: 3.17
+Git-commit: 2c91943b5066314a8bb9f0a65584e5e4cd92ea63
+Subject: [PATCH] btrfs: Return right extent when fiemap gives unaligned
+ offset and len.
+
+When page aligned start and len passed to extent_fiemap(), the result is
+good, but when start and len is not aligned, e.g. start = 1 and len =
+4095 is passed to extent_fiemap(), it returns no extent.
+
+The problem is that start and len is all rounded down which causes the
+problem. This patch will round down start and round up (start + len) to
+return right extent.
+
+Reported-by: Chandan Rajendra <chandan(a)linux.vnet.ibm.com>
+Signed-off-by: Qu Wenruo <quwenruo(a)cn.fujitsu.com>
+Reviewed-by: David Sterba <dsterba(a)suse.cz>
+Signed-off-by: Chris Mason <clm(a)fb.com>
+Signed-off-by: David Sterba <dsterba(a)suse.cz>
+---
+ fs/btrfs/extent_io.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/fs/btrfs/extent_io.c
++++ b/fs/btrfs/extent_io.c
+@@ -4213,8 +4213,8 @@ int extent_fiemap(struct inode *inode, s
+ return -ENOMEM;
+ path->leave_spinning = 1;
+
+- start = ALIGN(start, BTRFS_I(inode)->root->sectorsize);
+- len = ALIGN(len, BTRFS_I(inode)->root->sectorsize);
++ start = round_down(start, BTRFS_I(inode)->root->sectorsize);
++ len = round_up(max, BTRFS_I(inode)->root->sectorsize) - start;
+
+ /*
+ * lookup the last file extent. We're not using i_size here
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/btrfs-0025-ensure-tmpfile-inode-is-always-persisted-with-.patch new/patches.suse/btrfs-0025-ensure-tmpfile-inode-is-always-persisted-with-.patch
--- old/patches.suse/btrfs-0025-ensure-tmpfile-inode-is-always-persisted-with-.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.suse/btrfs-0025-ensure-tmpfile-inode-is-always-persisted-with-.patch 2014-08-26 13:57:20.000000000 +0200
@@ -0,0 +1,76 @@
+From: Filipe Manana <fdmanana(a)suse.com>
+Date: Fri, 1 Aug 2014 00:10:32 +0100
+Patch-mainline: 3.17
+Git-commit: 5762b5c958abbecb7fb9f4596a6476d1ce91ecf6
+Subject: [PATCH] Btrfs: ensure tmpfile inode is always persisted with
+ link count of 0
+
+If we open a file with O_TMPFILE, don't do any further operation on
+it (so that the inode item isn't updated) and then force a transaction
+commit, we get a persisted inode item with a link count of 1, and not 0
+as it should be.
+
+Steps to reproduce it (requires a modern xfs_io with -T support):
+
+ $ mkfs.btrfs -f /dev/sdd
+ $ mount -o /dev/sdd /mnt
+ $ xfs_io -T /mnt &
+ $ sync
+
+Then btrfs-debug-tree shows the inode item with a link count of 1:
+
+ $ btrfs-debug-tree /dev/sdd
+ (...)
+ fs tree key (FS_TREE ROOT_ITEM 0)
+ leaf 29556736 items 4 free space 15851 generation 6 owner 5
+ fs uuid f164d01b-1b92-481d-a4e4-435fb0f843d0
+ chunk uuid 0e3d0e56-bcca-4a1c-aa5f-cec2c6f4f7a6
+ item 0 key (256 INODE_ITEM 0) itemoff 16123 itemsize 160
+ inode generation 3 transid 6 size 0 block group 0 mode 40755 links 1
+ item 1 key (256 INODE_REF 256) itemoff 16111 itemsize 12
+ inode ref index 0 namelen 2 name: ..
+ item 2 key (257 INODE_ITEM 0) itemoff 15951 itemsize 160
+ inode generation 6 transid 6 size 0 block group 0 mode 100600 links 1
+ item 3 key (ORPHAN ORPHAN_ITEM 257) itemoff 15951 itemsize 0
+ orphan item
+ checksum tree key (CSUM_TREE ROOT_ITEM 0)
+ (...)
+
+Signed-off-by: Filipe Manana <fdmanana(a)suse.com>
+Signed-off-by: Chris Mason <clm(a)fb.com>
+Signed-off-by: David Sterba <dsterba(a)suse.cz>
+---
+ fs/btrfs/inode.c | 15 +++++++++++++++
+ 1 file changed, 15 insertions(+)
+
+--- a/fs/btrfs/inode.c
++++ b/fs/btrfs/inode.c
+@@ -5606,6 +5606,13 @@ static struct inode *btrfs_new_inode(str
+ }
+
+ /*
++ * O_TMPFILE, set link count to 0, so that after this point,
++ * we fill in an inode item with the correct link count.
++ */
++ if (!name)
++ set_nlink(inode, 0);
++
++ /*
+ * we have to initialize this early, so we can reclaim the inode
+ * number if we fail afterwards in this function.
+ */
+@@ -9013,6 +9020,14 @@ static int btrfs_tmpfile(struct inode *d
+ if (ret)
+ goto out;
+
++ /*
++ * We set number of links to 0 in btrfs_new_inode(), and here we set
++ * it to 1 because d_tmpfile() will issue a warning if the count is 0,
++ * through:
++ *
++ * d_tmpfile() -> inode_dec_link_count() -> drop_nlink()
++ */
++ set_nlink(inode, 1);
+ d_tmpfile(dentry, inode);
+ mark_inode_dirty(inode);
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/btrfs-0027-don-t-monopolize-a-core-when-evicting-inode.patch new/patches.suse/btrfs-0027-don-t-monopolize-a-core-when-evicting-inode.patch
--- old/patches.suse/btrfs-0027-don-t-monopolize-a-core-when-evicting-inode.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.suse/btrfs-0027-don-t-monopolize-a-core-when-evicting-inode.patch 2014-08-26 13:57:20.000000000 +0200
@@ -0,0 +1,80 @@
+From: Filipe Manana <fdmanana(a)suse.com>
+Date: Fri, 8 Aug 2014 02:47:05 +0100
+Patch-mainline: 3.17
+Git-commit: 7064dd5c36187725e7ccfd837e07678ae435d3f5
+Subject: [PATCH] Btrfs: don't monopolize a core when evicting inode
+
+If an inode has a very large number of extent maps, we can spend
+a lot of time freeing them, which triggers a soft lockup warning.
+Therefore reschedule if we need to when freeing the extent maps
+while evicting the inode.
+
+I could trigger this all the time by running xfstests/generic/299 on
+a file system with the no-holes feature enabled. That test creates
+an inode with 11386677 extent maps.
+
+ $ mkfs.btrfs -f -O no-holes $TEST_DEV
+ $ MKFS_OPTIONS="-O no-holes" ./check generic/299
+ generic/299 382s ...
+ Message from syslogd@debian-vm3 at Aug 7 10:44:29 ...
+ kernel:[85304.208017] BUG: soft lockup - CPU#0 stuck for 22s! [umount:25330]
+ 384s
+ Ran: generic/299
+ Passed all 1 tests
+
+ $ dmesg
+ (...)
+ [86304.300017] BUG: soft lockup - CPU#0 stuck for 23s! [umount:25330]
+ (...)
+ [86304.300036] Call Trace:
+ [86304.300036] [<ffffffff81698ba9>] __slab_free+0x54/0x295
+ [86304.300036] [<ffffffffa02ee9cc>] ? free_extent_map+0x5c/0xb0 [btrfs]
+ [86304.300036] [<ffffffff811a6cd2>] kmem_cache_free+0x282/0x2a0
+ [86304.300036] [<ffffffffa02ee9cc>] free_extent_map+0x5c/0xb0 [btrfs]
+ [86304.300036] [<ffffffffa02e3775>] btrfs_evict_inode+0xd5/0x660 [btrfs]
+ [86304.300036] [<ffffffff811e7c8d>] ? __inode_wait_for_writeback+0x6d/0xc0
+ [86304.300036] [<ffffffff816a389b>] ? _raw_spin_unlock+0x2b/0x40
+ [86304.300036] [<ffffffff811d8cbb>] evict+0xab/0x180
+ [86304.300036] [<ffffffff811d8dce>] dispose_list+0x3e/0x60
+ [86304.300036] [<ffffffff811d9b04>] evict_inodes+0xf4/0x110
+ [86304.300036] [<ffffffff811bd953>] generic_shutdown_super+0x53/0x110
+ [86304.300036] [<ffffffff811bdaa6>] kill_anon_super+0x16/0x30
+ [86304.300036] [<ffffffffa02a78ba>] btrfs_kill_super+0x1a/0xa0 [btrfs]
+ [86304.300036] [<ffffffff811bd3a9>] deactivate_locked_super+0x59/0x80
+ [86304.300036] [<ffffffff811be44e>] deactivate_super+0x4e/0x70
+ [86304.300036] [<ffffffff811dec14>] mntput_no_expire+0x174/0x1f0
+ [86304.300036] [<ffffffff811deab7>] ? mntput_no_expire+0x17/0x1f0
+ [86304.300036] [<ffffffff811e0517>] SyS_umount+0x97/0x100
+ (...)
+
+Signed-off-by: Filipe Manana <fdmanana(a)suse.com>
+Reviewed-by: Satoru Takeuchi <takeuchi_satoru(a)jp.fujitsu.com>
+Tested-by: Satoru Takeuchi <takeuchi_satoru(a)jp.fujitsu.com>
+Signed-off-by: Chris Mason <clm(a)fb.com>
+Signed-off-by: David Sterba <dsterba(a)suse.cz>
+---
+ fs/btrfs/inode.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+--- a/fs/btrfs/inode.c
++++ b/fs/btrfs/inode.c
+@@ -4674,6 +4674,11 @@ static void evict_inode_truncate_pages(s
+ clear_bit(EXTENT_FLAG_LOGGING, &em->flags);
+ remove_extent_mapping(map_tree, em);
+ free_extent_map(em);
++ if (need_resched()) {
++ write_unlock(&map_tree->lock);
++ cond_resched();
++ write_lock(&map_tree->lock);
++ }
+ }
+ write_unlock(&map_tree->lock);
+
+@@ -4696,6 +4701,7 @@ static void evict_inode_truncate_pages(s
+ &cached_state, GFP_NOFS);
+ free_extent_state(state);
+
++ cond_resched();
+ spin_lock(&io_tree->lock);
+ }
+ spin_unlock(&io_tree->lock);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/btrfs-0033-fix-task-hang-under-heavy-compressed-write.patch new/patches.suse/btrfs-0033-fix-task-hang-under-heavy-compressed-write.patch
--- old/patches.suse/btrfs-0033-fix-task-hang-under-heavy-compressed-write.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.suse/btrfs-0033-fix-task-hang-under-heavy-compressed-write.patch 2014-08-26 13:57:20.000000000 +0200
@@ -0,0 +1,567 @@
+From: Liu Bo <bo.li.liu(a)oracle.com>
+Date: Fri, 15 Aug 2014 23:36:53 +0800
+Patch-mainline: 3.17
+Git-commit: 9e0af23764344f7f1b68e4eefbe7dc865018b63d
+Subject: [PATCH] Btrfs: fix task hang under heavy compressed write
+
+This has been reported and discussed for a long time, and this hang occurs in
+both 3.15 and 3.16.
+
+Btrfs now migrates to use kernel workqueue, but it introduces this hang problem.
+
+Btrfs has a kind of work queued as an ordered way, which means that its
+ordered_func() must be processed in the way of FIFO, so it usually looks like --
+
+normal_work_helper(arg)
+ work = container_of(arg, struct btrfs_work, normal_work);
+
+ work->func() <---- (we name it work X)
+ for ordered_work in wq->ordered_list
+ ordered_work->ordered_func()
+ ordered_work->ordered_free()
+
+The hang is a rare case, first when we find free space, we get an uncached block
+group, then we go to read its free space cache inode for free space information,
+so it will
+
+file a readahead request
+ btrfs_readpages()
+ for page that is not in page cache
+ __do_readpage()
+ submit_extent_page()
+ btrfs_submit_bio_hook()
+ btrfs_bio_wq_end_io()
+ submit_bio()
+ end_workqueue_bio() <--(ret by the 1st endio)
+ queue a work(named work Y) for the 2nd
+ also the real endio()
+
+So the hang occurs when work Y's work_struct and work X's work_struct happens
+to share the same address.
+
+A bit more explanation,
+
+A,B,C -- struct btrfs_work
+arg -- struct work_struct
+
+kthread:
+worker_thread()
+ pick up a work_struct from @worklist
+ process_one_work(arg)
+ worker->current_work = arg; <-- arg is A->normal_work
+ worker->current_func(arg)
+ normal_work_helper(arg)
+ A = container_of(arg, struct btrfs_work, normal_work);
+
+ A->func()
+ A->ordered_func()
+ A->ordered_free() <-- A gets freed
+
+ B->ordered_func()
+ submit_compressed_extents()
+ find_free_extent()
+ load_free_space_inode()
+ ... <-- (the above readhead stack)
+ end_workqueue_bio()
+ btrfs_queue_work(work C)
+ B->ordered_free()
+
+As if work A has a high priority in wq->ordered_list and there are more ordered
+works queued after it, such as B->ordered_func(), its memory could have been
+freed before normal_work_helper() returns, which means that kernel workqueue
+code worker_thread() still has worker->current_work pointer to be work
+A->normal_work's, ie. arg's address.
+
+Meanwhile, work C is allocated after work A is freed, work C->normal_work
+and work A->normal_work are likely to share the same address(I confirmed this
+with ftrace output, so I'm not just guessing, it's rare though).
+
+When another kthread picks up work C->normal_work to process, and finds our
+kthread is processing it(see find_worker_executing_work()), it'll think
+work C as a collision and skip then, which ends up nobody processing work C.
+
+So the situation is that our kthread is waiting forever on work C.
+
+Besides, there're other cases that can lead to deadlock, but the real problem
+is that all btrfs workqueue shares one work->func, -- normal_work_helper,
+so this makes each workqueue to have its own helper function, but only a
+wraper pf normal_work_helper.
+
+With this patch, I no long hit the above hang.
+
+Signed-off-by: Liu Bo <bo.li.liu(a)oracle.com>
+Signed-off-by: Chris Mason <clm(a)fb.com>
+Signed-off-by: David Sterba <dsterba(a)suse.cz>
+---
+ fs/btrfs/async-thread.c | 44 +++++++++++++++++++++++++++++++--------
+ fs/btrfs/async-thread.h | 28 +++++++++++++++++++++++-
+ fs/btrfs/delayed-inode.c | 4 +--
+ fs/btrfs/disk-io.c | 53 +++++++++++++++++++++++++----------------------
+ fs/btrfs/extent-tree.c | 7 +++---
+ fs/btrfs/inode.c | 35 ++++++++++++++++++++-----------
+ fs/btrfs/ordered-data.c | 1
+ fs/btrfs/qgroup.c | 1
+ fs/btrfs/raid56.c | 9 +++++--
+ fs/btrfs/reada.c | 3 +-
+ fs/btrfs/scrub.c | 14 +++++++-----
+ fs/btrfs/volumes.c | 3 +-
+ 12 files changed, 141 insertions(+), 61 deletions(-)
+
+--- a/fs/btrfs/async-thread.c
++++ b/fs/btrfs/async-thread.c
+@@ -22,7 +22,6 @@
+ #include <linux/list.h>
+ #include <linux/spinlock.h>
+ #include <linux/freezer.h>
+-#include <linux/workqueue.h>
+ #include "async-thread.h"
+ #include "ctree.h"
+
+@@ -55,8 +54,39 @@ struct btrfs_workqueue {
+ struct __btrfs_workqueue *high;
+ };
+
+-static inline struct __btrfs_workqueue
+-*__btrfs_alloc_workqueue(const char *name, int flags, int max_active,
++static void normal_work_helper(struct btrfs_work *work);
++
++#define BTRFS_WORK_HELPER(name) \
++void btrfs_##name(struct work_struct *arg) \
++{ \
++ struct btrfs_work *work = container_of(arg, struct btrfs_work, \
++ normal_work); \
++ normal_work_helper(work); \
++}
++
++BTRFS_WORK_HELPER(worker_helper);
++BTRFS_WORK_HELPER(delalloc_helper);
++BTRFS_WORK_HELPER(flush_delalloc_helper);
++BTRFS_WORK_HELPER(cache_helper);
++BTRFS_WORK_HELPER(submit_helper);
++BTRFS_WORK_HELPER(fixup_helper);
++BTRFS_WORK_HELPER(endio_helper);
++BTRFS_WORK_HELPER(endio_meta_helper);
++BTRFS_WORK_HELPER(endio_meta_write_helper);
++BTRFS_WORK_HELPER(endio_raid56_helper);
++BTRFS_WORK_HELPER(rmw_helper);
++BTRFS_WORK_HELPER(endio_write_helper);
++BTRFS_WORK_HELPER(freespace_write_helper);
++BTRFS_WORK_HELPER(delayed_meta_helper);
++BTRFS_WORK_HELPER(readahead_helper);
++BTRFS_WORK_HELPER(qgroup_rescan_helper);
++BTRFS_WORK_HELPER(extent_refs_helper);
++BTRFS_WORK_HELPER(scrub_helper);
++BTRFS_WORK_HELPER(scrubwrc_helper);
++BTRFS_WORK_HELPER(scrubnc_helper);
++
++static struct __btrfs_workqueue *
++__btrfs_alloc_workqueue(const char *name, int flags, int max_active,
+ int thresh)
+ {
+ struct __btrfs_workqueue *ret = kzalloc(sizeof(*ret), GFP_NOFS);
+@@ -232,13 +262,11 @@ static void run_ordered_work(struct __bt
+ spin_unlock_irqrestore(lock, flags);
+ }
+
+-static void normal_work_helper(struct work_struct *arg)
++static void normal_work_helper(struct btrfs_work *work)
+ {
+- struct btrfs_work *work;
+ struct __btrfs_workqueue *wq;
+ int need_order = 0;
+
+- work = container_of(arg, struct btrfs_work, normal_work);
+ /*
+ * We should not touch things inside work in the following cases:
+ * 1) after work->func() if it has no ordered_free
+@@ -262,7 +290,7 @@ static void normal_work_helper(struct wo
+ trace_btrfs_all_work_done(work);
+ }
+
+-void btrfs_init_work(struct btrfs_work *work,
++void btrfs_init_work(struct btrfs_work *work, btrfs_work_func_t uniq_func,
+ btrfs_func_t func,
+ btrfs_func_t ordered_func,
+ btrfs_func_t ordered_free)
+@@ -270,7 +298,7 @@ void btrfs_init_work(struct btrfs_work *
+ work->func = func;
+ work->ordered_func = ordered_func;
+ work->ordered_free = ordered_free;
+- INIT_WORK(&work->normal_work, normal_work_helper);
++ INIT_WORK(&work->normal_work, uniq_func);
+ INIT_LIST_HEAD(&work->ordered_list);
+ work->flags = 0;
+ }
+--- a/fs/btrfs/async-thread.h
++++ b/fs/btrfs/async-thread.h
+@@ -19,12 +19,14 @@
+
+ #ifndef __BTRFS_ASYNC_THREAD_
+ #define __BTRFS_ASYNC_THREAD_
++#include <linux/workqueue.h>
+
+ struct btrfs_workqueue;
+ /* Internal use only */
+ struct __btrfs_workqueue;
+ struct btrfs_work;
+ typedef void (*btrfs_func_t)(struct btrfs_work *arg);
++typedef void (*btrfs_work_func_t)(struct work_struct *arg);
+
+ struct btrfs_work {
+ btrfs_func_t func;
+@@ -38,11 +40,35 @@ struct btrfs_work {
+ unsigned long flags;
+ };
+
++#define BTRFS_WORK_HELPER_PROTO(name) \
++void btrfs_##name(struct work_struct *arg)
++
++BTRFS_WORK_HELPER_PROTO(worker_helper);
++BTRFS_WORK_HELPER_PROTO(delalloc_helper);
++BTRFS_WORK_HELPER_PROTO(flush_delalloc_helper);
++BTRFS_WORK_HELPER_PROTO(cache_helper);
++BTRFS_WORK_HELPER_PROTO(submit_helper);
++BTRFS_WORK_HELPER_PROTO(fixup_helper);
++BTRFS_WORK_HELPER_PROTO(endio_helper);
++BTRFS_WORK_HELPER_PROTO(endio_meta_helper);
++BTRFS_WORK_HELPER_PROTO(endio_meta_write_helper);
++BTRFS_WORK_HELPER_PROTO(endio_raid56_helper);
++BTRFS_WORK_HELPER_PROTO(rmw_helper);
++BTRFS_WORK_HELPER_PROTO(endio_write_helper);
++BTRFS_WORK_HELPER_PROTO(freespace_write_helper);
++BTRFS_WORK_HELPER_PROTO(delayed_meta_helper);
++BTRFS_WORK_HELPER_PROTO(readahead_helper);
++BTRFS_WORK_HELPER_PROTO(qgroup_rescan_helper);
++BTRFS_WORK_HELPER_PROTO(extent_refs_helper);
++BTRFS_WORK_HELPER_PROTO(scrub_helper);
++BTRFS_WORK_HELPER_PROTO(scrubwrc_helper);
++BTRFS_WORK_HELPER_PROTO(scrubnc_helper);
++
+ struct btrfs_workqueue *btrfs_alloc_workqueue(const char *name,
+ int flags,
+ int max_active,
+ int thresh);
+-void btrfs_init_work(struct btrfs_work *work,
++void btrfs_init_work(struct btrfs_work *work, btrfs_work_func_t helper,
+ btrfs_func_t func,
+ btrfs_func_t ordered_func,
+ btrfs_func_t ordered_free);
+--- a/fs/btrfs/delayed-inode.c
++++ b/fs/btrfs/delayed-inode.c
+@@ -1395,8 +1395,8 @@ static int btrfs_wq_run_delayed_node(str
+ return -ENOMEM;
+
+ async_work->delayed_root = delayed_root;
+- btrfs_init_work(&async_work->work, btrfs_async_run_delayed_root,
+- NULL, NULL);
++ btrfs_init_work(&async_work->work, btrfs_delayed_meta_helper,
++ btrfs_async_run_delayed_root, NULL, NULL);
+ async_work->nr = nr;
+
+ btrfs_queue_work(root->fs_info->delayed_workers, &async_work->work);
+--- a/fs/btrfs/disk-io.c
++++ b/fs/btrfs/disk-io.c
+@@ -39,7 +39,6 @@
+ #include "btrfs_inode.h"
+ #include "volumes.h"
+ #include "print-tree.h"
+-#include "async-thread.h"
+ #include "locking.h"
+ #include "tree-log.h"
+ #include "free-space-cache.h"
+@@ -695,35 +694,41 @@ static void end_workqueue_bio(struct bio
+ {
+ struct end_io_wq *end_io_wq = bio->bi_private;
+ struct btrfs_fs_info *fs_info;
++ struct btrfs_workqueue *wq;
++ btrfs_work_func_t func;
+
+ fs_info = end_io_wq->info;
+ end_io_wq->error = err;
+- btrfs_init_work(&end_io_wq->work, end_workqueue_fn, NULL, NULL);
+
+ if (bio->bi_rw & REQ_WRITE) {
+- if (end_io_wq->metadata == BTRFS_WQ_ENDIO_METADATA)
+- btrfs_queue_work(fs_info->endio_meta_write_workers,
+- &end_io_wq->work);
+- else if (end_io_wq->metadata == BTRFS_WQ_ENDIO_FREE_SPACE)
+- btrfs_queue_work(fs_info->endio_freespace_worker,
+- &end_io_wq->work);
+- else if (end_io_wq->metadata == BTRFS_WQ_ENDIO_RAID56)
+- btrfs_queue_work(fs_info->endio_raid56_workers,
+- &end_io_wq->work);
+- else
+- btrfs_queue_work(fs_info->endio_write_workers,
+- &end_io_wq->work);
++ if (end_io_wq->metadata == BTRFS_WQ_ENDIO_METADATA) {
++ wq = fs_info->endio_meta_write_workers;
++ func = btrfs_endio_meta_write_helper;
++ } else if (end_io_wq->metadata == BTRFS_WQ_ENDIO_FREE_SPACE) {
++ wq = fs_info->endio_freespace_worker;
++ func = btrfs_freespace_write_helper;
++ } else if (end_io_wq->metadata == BTRFS_WQ_ENDIO_RAID56) {
++ wq = fs_info->endio_raid56_workers;
++ func = btrfs_endio_raid56_helper;
++ } else {
++ wq = fs_info->endio_write_workers;
++ func = btrfs_endio_write_helper;
++ }
+ } else {
+- if (end_io_wq->metadata == BTRFS_WQ_ENDIO_RAID56)
+- btrfs_queue_work(fs_info->endio_raid56_workers,
+- &end_io_wq->work);
+- else if (end_io_wq->metadata)
+- btrfs_queue_work(fs_info->endio_meta_workers,
+- &end_io_wq->work);
+- else
+- btrfs_queue_work(fs_info->endio_workers,
+- &end_io_wq->work);
++ if (end_io_wq->metadata == BTRFS_WQ_ENDIO_RAID56) {
++ wq = fs_info->endio_raid56_workers;
++ func = btrfs_endio_raid56_helper;
++ } else if (end_io_wq->metadata) {
++ wq = fs_info->endio_meta_workers;
++ func = btrfs_endio_meta_helper;
++ } else {
++ wq = fs_info->endio_workers;
++ func = btrfs_endio_helper;
++ }
+ }
++
++ btrfs_init_work(&end_io_wq->work, func, end_workqueue_fn, NULL, NULL);
++ btrfs_queue_work(wq, &end_io_wq->work);
+ }
+
+ /*
+@@ -830,7 +835,7 @@ int btrfs_wq_submit_bio(struct btrfs_fs_
+ async->submit_bio_start = submit_bio_start;
+ async->submit_bio_done = submit_bio_done;
+
+- btrfs_init_work(&async->work, run_one_async_start,
++ btrfs_init_work(&async->work, btrfs_worker_helper, run_one_async_start,
+ run_one_async_done, run_one_async_free);
+
+ async->bio_flags = bio_flags;
+--- a/fs/btrfs/extent-tree.c
++++ b/fs/btrfs/extent-tree.c
+@@ -552,7 +552,8 @@ static int cache_block_group(struct btrf
+ caching_ctl->block_group = cache;
+ caching_ctl->progress = cache->key.objectid;
+ atomic_set(&caching_ctl->count, 1);
+- btrfs_init_work(&caching_ctl->work, caching_thread, NULL, NULL);
++ btrfs_init_work(&caching_ctl->work, btrfs_cache_helper,
++ caching_thread, NULL, NULL);
+
+ spin_lock(&cache->lock);
+ /*
+@@ -2749,8 +2750,8 @@ int btrfs_async_run_delayed_refs(struct
+ async->sync = 0;
+ init_completion(&async->wait);
+
+- btrfs_init_work(&async->work, delayed_ref_async_start,
+- NULL, NULL);
++ btrfs_init_work(&async->work, btrfs_extent_refs_helper,
++ delayed_ref_async_start, NULL, NULL);
+
+ btrfs_queue_work(root->fs_info->extent_workers, &async->work);
+
+--- a/fs/btrfs/inode.c
++++ b/fs/btrfs/inode.c
+@@ -1096,8 +1096,10 @@ static int cow_file_range_async(struct i
+ async_cow->end = cur_end;
+ INIT_LIST_HEAD(&async_cow->extents);
+
+- btrfs_init_work(&async_cow->work, async_cow_start,
+- async_cow_submit, async_cow_free);
++ btrfs_init_work(&async_cow->work,
++ btrfs_delalloc_helper,
++ async_cow_start, async_cow_submit,
++ async_cow_free);
+
+ nr_pages = (cur_end - start + PAGE_CACHE_SIZE) >>
+ PAGE_CACHE_SHIFT;
+@@ -1881,7 +1883,8 @@ static int btrfs_writepage_start_hook(st
+
+ SetPageChecked(page);
+ page_cache_get(page);
+- btrfs_init_work(&fixup->work, btrfs_writepage_fixup_worker, NULL, NULL);
++ btrfs_init_work(&fixup->work, btrfs_fixup_helper,
++ btrfs_writepage_fixup_worker, NULL, NULL);
+ fixup->page = page;
+ btrfs_queue_work(root->fs_info->fixup_workers, &fixup->work);
+ return -EBUSY;
+@@ -2822,7 +2825,8 @@ static int btrfs_writepage_end_io_hook(s
+ struct inode *inode = page->mapping->host;
+ struct btrfs_root *root = BTRFS_I(inode)->root;
+ struct btrfs_ordered_extent *ordered_extent = NULL;
+- struct btrfs_workqueue *workers;
++ struct btrfs_workqueue *wq;
++ btrfs_work_func_t func;
+
+ trace_btrfs_writepage_end_io_hook(page, start, end, uptodate);
+
+@@ -2831,13 +2835,17 @@ static int btrfs_writepage_end_io_hook(s
+ end - start + 1, uptodate))
+ return 0;
+
+- btrfs_init_work(&ordered_extent->work, finish_ordered_fn, NULL, NULL);
++ if (btrfs_is_free_space_inode(inode)) {
++ wq = root->fs_info->endio_freespace_worker;
++ func = btrfs_freespace_write_helper;
++ } else {
++ wq = root->fs_info->endio_write_workers;
++ func = btrfs_endio_write_helper;
++ }
+
+- if (btrfs_is_free_space_inode(inode))
+- workers = root->fs_info->endio_freespace_worker;
+- else
+- workers = root->fs_info->endio_write_workers;
+- btrfs_queue_work(workers, &ordered_extent->work);
++ btrfs_init_work(&ordered_extent->work, func, finish_ordered_fn, NULL,
++ NULL);
++ btrfs_queue_work(wq, &ordered_extent->work);
+
+ return 0;
+ }
+@@ -7173,7 +7181,8 @@ again:
+ if (!ret)
+ goto out_test;
+
+- btrfs_init_work(&ordered->work, finish_ordered_fn, NULL, NULL);
++ btrfs_init_work(&ordered->work, btrfs_endio_write_helper,
++ finish_ordered_fn, NULL, NULL);
+ btrfs_queue_work(root->fs_info->endio_write_workers,
+ &ordered->work);
+ out_test:
+@@ -8542,7 +8551,9 @@ struct btrfs_delalloc_work *btrfs_alloc_
+ work->inode = inode;
+ work->wait = wait;
+ work->delay_iput = delay_iput;
+- btrfs_init_work(&work->work, btrfs_run_delalloc_work, NULL, NULL);
++ WARN_ON_ONCE(!inode);
++ btrfs_init_work(&work->work, btrfs_flush_delalloc_helper,
++ btrfs_run_delalloc_work, NULL, NULL);
+
+ return work;
+ }
+--- a/fs/btrfs/ordered-data.c
++++ b/fs/btrfs/ordered-data.c
+@@ -627,6 +627,7 @@ int btrfs_wait_ordered_extents(struct bt
+ spin_unlock(&root->ordered_extent_lock);
+
+ btrfs_init_work(&ordered->flush_work,
++ btrfs_flush_delalloc_helper,
+ btrfs_run_ordered_extent_work, NULL, NULL);
+ list_add_tail(&ordered->work_list, &works);
+ btrfs_queue_work(root->fs_info->flush_workers,
+--- a/fs/btrfs/qgroup.c
++++ b/fs/btrfs/qgroup.c
+@@ -2551,6 +2551,7 @@ qgroup_rescan_init(struct btrfs_fs_info
+ memset(&fs_info->qgroup_rescan_work, 0,
+ sizeof(fs_info->qgroup_rescan_work));
+ btrfs_init_work(&fs_info->qgroup_rescan_work,
++ btrfs_qgroup_rescan_helper,
+ btrfs_qgroup_rescan_worker, NULL, NULL);
+
+ if (ret) {
+--- a/fs/btrfs/raid56.c
++++ b/fs/btrfs/raid56.c
+@@ -1416,7 +1416,8 @@ cleanup:
+
+ static void async_rmw_stripe(struct btrfs_raid_bio *rbio)
+ {
+- btrfs_init_work(&rbio->work, rmw_work, NULL, NULL);
++ btrfs_init_work(&rbio->work, btrfs_rmw_helper,
++ rmw_work, NULL, NULL);
+
+ btrfs_queue_work(rbio->fs_info->rmw_workers,
+ &rbio->work);
+@@ -1424,7 +1425,8 @@ static void async_rmw_stripe(struct btrf
+
+ static void async_read_rebuild(struct btrfs_raid_bio *rbio)
+ {
+- btrfs_init_work(&rbio->work, read_rebuild_work, NULL, NULL);
++ btrfs_init_work(&rbio->work, btrfs_rmw_helper,
++ read_rebuild_work, NULL, NULL);
+
+ btrfs_queue_work(rbio->fs_info->rmw_workers,
+ &rbio->work);
+@@ -1665,7 +1667,8 @@ static void btrfs_raid_unplug(struct blk
+ plug = container_of(cb, struct btrfs_plug_cb, cb);
+
+ if (from_schedule) {
+- btrfs_init_work(&plug->work, unplug_work, NULL, NULL);
++ btrfs_init_work(&plug->work, btrfs_rmw_helper,
++ unplug_work, NULL, NULL);
+ btrfs_queue_work(plug->info->rmw_workers,
+ &plug->work);
+ return;
+--- a/fs/btrfs/reada.c
++++ b/fs/btrfs/reada.c
+@@ -798,7 +798,8 @@ static void reada_start_machine(struct b
+ /* FIXME we cannot handle this properly right now */
+ BUG();
+ }
+- btrfs_init_work(&rmw->work, reada_start_machine_worker, NULL, NULL);
++ btrfs_init_work(&rmw->work, btrfs_readahead_helper,
++ reada_start_machine_worker, NULL, NULL);
+ rmw->fs_info = fs_info;
+
+ btrfs_queue_work(fs_info->readahead_workers, &rmw->work);
+--- a/fs/btrfs/scrub.c
++++ b/fs/btrfs/scrub.c
+@@ -428,8 +428,8 @@ struct scrub_ctx *scrub_setup_ctx(struct
+ sbio->index = i;
+ sbio->sctx = sctx;
+ sbio->page_count = 0;
+- btrfs_init_work(&sbio->work, scrub_bio_end_io_worker,
+- NULL, NULL);
++ btrfs_init_work(&sbio->work, btrfs_scrub_helper,
++ scrub_bio_end_io_worker, NULL, NULL);
+
+ if (i != SCRUB_BIOS_PER_SCTX - 1)
+ sctx->bios[i]->next_free = i + 1;
+@@ -999,8 +999,8 @@ nodatasum_case:
+ fixup_nodatasum->root = fs_info->extent_root;
+ fixup_nodatasum->mirror_num = failed_mirror_index + 1;
+ scrub_pending_trans_workers_inc(sctx);
+- btrfs_init_work(&fixup_nodatasum->work, scrub_fixup_nodatasum,
+- NULL, NULL);
++ btrfs_init_work(&fixup_nodatasum->work, btrfs_scrub_helper,
++ scrub_fixup_nodatasum, NULL, NULL);
+ btrfs_queue_work(fs_info->scrub_workers,
+ &fixup_nodatasum->work);
+ goto out;
+@@ -1616,7 +1616,8 @@ static void scrub_wr_bio_end_io(struct b
+ sbio->err = err;
+ sbio->bio = bio;
+
+- btrfs_init_work(&sbio->work, scrub_wr_bio_end_io_worker, NULL, NULL);
++ btrfs_init_work(&sbio->work, btrfs_scrubwrc_helper,
++ scrub_wr_bio_end_io_worker, NULL, NULL);
+ btrfs_queue_work(fs_info->scrub_wr_completion_workers, &sbio->work);
+ }
+
+@@ -3203,7 +3204,8 @@ static int copy_nocow_pages(struct scrub
+ nocow_ctx->len = len;
+ nocow_ctx->mirror_num = mirror_num;
+ nocow_ctx->physical_for_dev_replace = physical_for_dev_replace;
+- btrfs_init_work(&nocow_ctx->work, copy_nocow_pages_worker, NULL, NULL);
++ btrfs_init_work(&nocow_ctx->work, btrfs_scrubnc_helper,
++ copy_nocow_pages_worker, NULL, NULL);
+ INIT_LIST_HEAD(&nocow_ctx->inodes);
+ btrfs_queue_work(fs_info->scrub_nocow_workers,
+ &nocow_ctx->work);
+--- a/fs/btrfs/volumes.c
++++ b/fs/btrfs/volumes.c
+@@ -5800,7 +5800,8 @@ struct btrfs_device *btrfs_alloc_device(
+ else
+ generate_random_uuid(dev->uuid);
+
+- btrfs_init_work(&dev->work, pending_bios_fn, NULL, NULL);
++ btrfs_init_work(&dev->work, btrfs_submit_helper,
++ pending_bios_fn, NULL, NULL);
+
+ return dev;
+ }
++++++ series.conf ++++++
--- /var/tmp/diff_new_pack.jHtM3G/_old 2014-08-30 16:04:38.000000000 +0200
+++ /var/tmp/diff_new_pack.jHtM3G/_new 2014-08-30 16:04:38.000000000 +0200
@@ -27,6 +27,7 @@
# DO NOT MODIFY THEM!
# Send separate patches upstream if you find a problem...
########################################################
+ patches.kernel.org/patch-3.16.1
########################################################
# Build fixes that apply to the vanilla kernel too.
@@ -250,6 +251,17 @@
########################################################
patches.suse/btrfs-use-correct-device-for-maps.patch
patches.suse/btrfs-check-index-in-extent_buffer_page
+ patches.suse/btrfs-0003-read-lock-extent-buffer-while-walking-backrefs.patch
+ patches.suse/btrfs-0006-fix-compressed-write-corruption-on-enospc.patch
+ patches.fixes/Btrfs-Fix-memory-corruption-by-ulist_add_merge-on-32
+ patches.suse/btrfs-0008-fix-csum-tree-corruption-duplicate-and-outdate.patch
+ patches.suse/btrfs-0011-fill_holes-Fix-slot-number-passed-to-hole_merg.patch
+ patches.suse/btrfs-0016-fix-wrong-write-range-for-filemap_fdatawrite_r.patch
+ patches.suse/btrfs-0017-fix-wrong-extent-mapping-for-DirectIO.patch
+ patches.suse/btrfs-0018-Return-right-extent-when-fiemap-gives-unaligne.patch
+ patches.suse/btrfs-0025-ensure-tmpfile-inode-is-always-persisted-with-.patch
+ patches.suse/btrfs-0027-don-t-monopolize-a-core-when-evicting-inode.patch
+ patches.suse/btrfs-0033-fix-task-hang-under-heavy-compressed-write.patch
########################################################
# Reiserfs Patches
@@ -358,8 +370,8 @@
########################################################
# DRM/Video
########################################################
- patches.drivers/drm-cirrus-Use-16bpp-as-default
patches.fixes/nouveau-fix-race-with-fence-signaling
+ patches.fixes/drm-omapdrm-fix-compiler-errors
########################################################
# video4linux
@@ -395,6 +407,7 @@
########################################################
# USB
########################################################
+ patches.fixes/rtsx_usb-export-device-table
########################################################
# I2C
++++++ source-timestamp ++++++
--- /var/tmp/diff_new_pack.jHtM3G/_old 2014-08-30 16:04:38.000000000 +0200
+++ /var/tmp/diff_new_pack.jHtM3G/_new 2014-08-30 16:04:38.000000000 +0200
@@ -1,3 +1,3 @@
-2014-08-06 15:37:49 +0200
-GIT Revision: 0e31675b91f2087bc1b543ca380779d32dc821ed
-GIT Branch: master
+2014-08-27 16:52:25 +0200
+GIT Revision: 90bc0f1c2238b9aec5a78d9c76dc9663e8fa0316
+GIT Branch: stable
++++++ sysctl.tar.bz2 ++++++
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0