Hello community,
here is the log from the commit of package kernel-source
checked in at Wed Dec 3 16:35:50 CET 2008.
--------
--- kernel-source/kernel-debug.changes 2008-12-02 01:28:28.000000000 +0100
+++ /mounts/work_src_done/STABLE/kernel-source/kernel-debug.changes 2008-12-02 22:29:17.000000000 +0100
@@ -1,0 +2,66 @@
+Tue Dec 2 17:53:44 CET 2008 - mmarek@suse.cz
+
+- rpm/get_release_number.sh.in, scripts/tar-up.sh: append first
+ eight digits of the commit id to the release string. This makes
+ it easier to match rpm release numbers with commits.
+
+-------------------------------------------------------------------
+Tue Dec 2 17:38:41 CET 2008 - mszeredi@suse.de
+
+- patches.fixes/af_unix-soft-lockup-fix.patch: net: Fix soft
+ lockups/OOM issues w/ unix garbage collector (bnc#449739
+ CVE-2008-5300).
+
+-------------------------------------------------------------------
+Tue Dec 2 16:57:59 CET 2008 - hare@suse.de
+
+- patches.drivers/qla2xxx-8.02.01.02.11.0-k9-update: qla2xxx:
+ additional fixes/updates for SLES11 (bnc#450197).
+- patches.fixes/scsi-fixup-failfast-definitions: fc_transport:
+ fix old bug on bitflag definitions (bnc#447814).
+
+-------------------------------------------------------------------
+Tue Dec 2 16:28:04 CET 2008 - goldwyn@suse.de
+
+- patches.suse/novfs-map-drives-correctly.diff
+- patches.suse/novfs-merge-changes.diff: Modified to revert
+ some changes in novfs_set_map_drive()
+- patches.suse/novfs-clear-mappeddrives.patch: Unlink mapped
+ drives on exit (bnc#449451).
+
+-------------------------------------------------------------------
+Tue Dec 2 14:22:23 CET 2008 - mmarek@suse.cz
+
+- supported.conf: mark ocfs2 as unsupported, a supported variant
+ will be provided in a separate KMP (bnc#449824)
+
+-------------------------------------------------------------------
+Tue Dec 2 14:04:44 CET 2008 - olh@suse.de
+
+- patches.drivers/ehca-rejecting-dynamic-mem-add-remove.patch:
+ update error message (bnc#448301 - LTC50134)
+
+-------------------------------------------------------------------
+Tue Dec 2 13:27:21 CET 2008 - hare@suse.de
+
+- Update config files for S/390: Disable FCoE and sync
+ default and s390.
+- supported.conf: Mark KVM as supported.
+
+-------------------------------------------------------------------
+Tue Dec 2 08:13:10 CET 2008 - jjolly@suse.de
+
+- ...and added the patches to the series.conf (bnc#450096)
+
+-------------------------------------------------------------------
+Tue Dec 2 08:03:44 CET 2008 - jjolly@suse.de
+
+- patches.arch/s390-05-01-zfcp-message-linebreak.patch: zfcp:
+ Wrong placement of linebreak in message (bnc#450096).
+- patches.arch/s390-05-02-zfcp-invalid-non-null-return.patch:
+ zfcp: invalid return value on failing fsf_req creation
+ (bnc#450096).
+- patches.arch/s390-05-03-zfcp-wka-port.patch: zfcp: Fix opening
+ of wka ports (bnc#450096).
+
+-------------------------------------------------------------------
kernel-default.changes: same change
kernel-dummy.changes: same change
kernel-kdump.changes: same change
kernel-pae.changes: same change
kernel-ppc64.changes: same change
kernel-ps3.changes: same change
kernel-s390.changes: same change
kernel-source.changes: same change
kernel-syms.changes: same change
kernel-trace.changes: same change
kernel-vanilla.changes: same change
kernel-xen.changes: same change
calling whatdependson for head-i586
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kernel-debug.spec ++++++
--- /var/tmp/diff_new_pack.b13669/_old 2008-12-03 16:30:09.000000000 +0100
+++ /var/tmp/diff_new_pack.b13669/_new 2008-12-03 16:30:09.000000000 +0100
@@ -63,7 +63,7 @@
Name: kernel-debug
Summary: A Debug Version of the Kernel
Version: 2.6.27.7
-Release: 7
+Release: 8
License: GPL v2 only
Group: System/Kernel
Url: http://www.kernel.org/
@@ -212,8 +212,8 @@
-Source Timestamp: 2008-12-01 20:13:26 +0100
-GIT Revision: c3f1fb158c919afddd154665f42d53e39c485197
+Source Timestamp: 2008-12-02 22:27:33 +0100
+GIT Revision: a1ce8005f2a7afb3456dd4a47b67cdc23488d0d0
%prep
if ! [ -e %_sourcedir/linux-2.6.27.tar.bz2 ]; then
@@ -704,8 +704,8 @@
-Source Timestamp: 2008-12-01 20:13:26 +0100
-GIT Revision: c3f1fb158c919afddd154665f42d53e39c485197
+Source Timestamp: 2008-12-02 22:27:33 +0100
+GIT Revision: a1ce8005f2a7afb3456dd4a47b67cdc23488d0d0
%preun base -f preun-base.sh
@@ -746,8 +746,8 @@
-Source Timestamp: 2008-12-01 20:13:26 +0100
-GIT Revision: c3f1fb158c919afddd154665f42d53e39c485197
+Source Timestamp: 2008-12-02 22:27:33 +0100
+GIT Revision: a1ce8005f2a7afb3456dd4a47b67cdc23488d0d0
%preun extra -f preun-extra.sh
@@ -775,8 +775,8 @@
-Source Timestamp: 2008-12-01 20:13:26 +0100
-GIT Revision: c3f1fb158c919afddd154665f42d53e39c485197
+Source Timestamp: 2008-12-02 22:27:33 +0100
+GIT Revision: a1ce8005f2a7afb3456dd4a47b67cdc23488d0d0
%files -n kernel-debug-man
%defattr(-,root,root)
@@ -785,6 +785,45 @@
%endif
%changelog
+* Tue Dec 02 2008 mmarek@suse.cz
+- rpm/get_release_number.sh.in, scripts/tar-up.sh: append first
+ eight digits of the commit id to the release string. This makes
+ it easier to match rpm release numbers with commits.
+* Tue Dec 02 2008 mszeredi@suse.de
+- patches.fixes/af_unix-soft-lockup-fix.patch: net: Fix soft
+ lockups/OOM issues w/ unix garbage collector (bnc#449739
+ CVE-2008-5300).
+* Tue Dec 02 2008 hare@suse.de
+- patches.drivers/qla2xxx-8.02.01.02.11.0-k9-update: qla2xxx:
+ additional fixes/updates for SLES11 (bnc#450197).
+- patches.fixes/scsi-fixup-failfast-definitions: fc_transport:
+ fix old bug on bitflag definitions (bnc#447814).
+* Tue Dec 02 2008 goldwyn@suse.de
+- patches.suse/novfs-map-drives-correctly.diff
+- patches.suse/novfs-merge-changes.diff: Modified to revert
+ some changes in novfs_set_map_drive()
+- patches.suse/novfs-clear-mappeddrives.patch: Unlink mapped
+ drives on exit (bnc#449451).
+* Tue Dec 02 2008 mmarek@suse.cz
+- supported.conf: mark ocfs2 as unsupported, a supported variant
+ will be provided in a separate KMP (bnc#449824)
+* Tue Dec 02 2008 olh@suse.de
+- patches.drivers/ehca-rejecting-dynamic-mem-add-remove.patch:
+ update error message (bnc#448301 - LTC50134)
+* Tue Dec 02 2008 hare@suse.de
+- Update config files for S/390: Disable FCoE and sync
+ default and s390.
+- supported.conf: Mark KVM as supported.
+* Tue Dec 02 2008 jjolly@suse.de
+- ...and added the patches to the series.conf (bnc#450096)
+* Tue Dec 02 2008 jjolly@suse.de
+- patches.arch/s390-05-01-zfcp-message-linebreak.patch: zfcp:
+ Wrong placement of linebreak in message (bnc#450096).
+- patches.arch/s390-05-02-zfcp-invalid-non-null-return.patch:
+ zfcp: invalid return value on failing fsf_req creation
+ (bnc#450096).
+- patches.arch/s390-05-03-zfcp-wka-port.patch: zfcp: Fix opening
+ of wka ports (bnc#450096).
* Mon Dec 01 2008 kkeil@suse.de
- patches.drivers/cxgb3-Add-1G-fiber-support: cxgb3: Add 1G
fiber support.
kernel-default.spec: same change
++++++ kernel-dummy.spec ++++++
--- /var/tmp/diff_new_pack.b13669/_old 2008-12-03 16:30:10.000000000 +0100
+++ /var/tmp/diff_new_pack.b13669/_new 2008-12-03 16:30:10.000000000 +0100
@@ -23,7 +23,7 @@
Name: kernel-dummy
Summary: Internal dummy package for synchronizing release numbers
Version: 2.6.27.7
-Release: 7
+Release: 8
License: GPL v2 only
Group: System/Kernel
AutoReqProv: off
@@ -36,8 +36,8 @@
--------
Andreas Gruenbacher
-Source Timestamp: 2008-12-01 20:13:26 +0100
-GIT Revision: c3f1fb158c919afddd154665f42d53e39c485197
+Source Timestamp: 2008-12-02 22:27:33 +0100
+GIT Revision: a1ce8005f2a7afb3456dd4a47b67cdc23488d0d0
%install
rm -rf %buildroot
@@ -49,6 +49,45 @@
/etc/dummy
%changelog
+* Tue Dec 02 2008 mmarek@suse.cz
+- rpm/get_release_number.sh.in, scripts/tar-up.sh: append first
+ eight digits of the commit id to the release string. This makes
+ it easier to match rpm release numbers with commits.
+* Tue Dec 02 2008 mszeredi@suse.de
+- patches.fixes/af_unix-soft-lockup-fix.patch: net: Fix soft
+ lockups/OOM issues w/ unix garbage collector (bnc#449739
+ CVE-2008-5300).
+* Tue Dec 02 2008 hare@suse.de
+- patches.drivers/qla2xxx-8.02.01.02.11.0-k9-update: qla2xxx:
+ additional fixes/updates for SLES11 (bnc#450197).
+- patches.fixes/scsi-fixup-failfast-definitions: fc_transport:
+ fix old bug on bitflag definitions (bnc#447814).
+* Tue Dec 02 2008 goldwyn@suse.de
+- patches.suse/novfs-map-drives-correctly.diff
+- patches.suse/novfs-merge-changes.diff: Modified to revert
+ some changes in novfs_set_map_drive()
+- patches.suse/novfs-clear-mappeddrives.patch: Unlink mapped
+ drives on exit (bnc#449451).
+* Tue Dec 02 2008 mmarek@suse.cz
+- supported.conf: mark ocfs2 as unsupported, a supported variant
+ will be provided in a separate KMP (bnc#449824)
+* Tue Dec 02 2008 olh@suse.de
+- patches.drivers/ehca-rejecting-dynamic-mem-add-remove.patch:
+ update error message (bnc#448301 - LTC50134)
+* Tue Dec 02 2008 hare@suse.de
+- Update config files for S/390: Disable FCoE and sync
+ default and s390.
+- supported.conf: Mark KVM as supported.
+* Tue Dec 02 2008 jjolly@suse.de
+- ...and added the patches to the series.conf (bnc#450096)
+* Tue Dec 02 2008 jjolly@suse.de
+- patches.arch/s390-05-01-zfcp-message-linebreak.patch: zfcp:
+ Wrong placement of linebreak in message (bnc#450096).
+- patches.arch/s390-05-02-zfcp-invalid-non-null-return.patch:
+ zfcp: invalid return value on failing fsf_req creation
+ (bnc#450096).
+- patches.arch/s390-05-03-zfcp-wka-port.patch: zfcp: Fix opening
+ of wka ports (bnc#450096).
* Mon Dec 01 2008 kkeil@suse.de
- patches.drivers/cxgb3-Add-1G-fiber-support: cxgb3: Add 1G
fiber support.
++++++ kernel-kdump.spec ++++++
--- /var/tmp/diff_new_pack.b13669/_old 2008-12-03 16:30:10.000000000 +0100
+++ /var/tmp/diff_new_pack.b13669/_new 2008-12-03 16:30:10.000000000 +0100
@@ -63,7 +63,7 @@
Name: kernel-kdump
Summary: kernel for kdump
Version: 2.6.27.7
-Release: 7
+Release: 8
License: GPL v2 only
Group: System/Kernel
Url: http://www.kernel.org/
@@ -211,8 +211,8 @@
-Source Timestamp: 2008-12-01 20:13:26 +0100
-GIT Revision: c3f1fb158c919afddd154665f42d53e39c485197
+Source Timestamp: 2008-12-02 22:27:33 +0100
+GIT Revision: a1ce8005f2a7afb3456dd4a47b67cdc23488d0d0
%prep
if ! [ -e %_sourcedir/linux-2.6.27.tar.bz2 ]; then
@@ -705,8 +705,8 @@
-Source Timestamp: 2008-12-01 20:13:26 +0100
-GIT Revision: c3f1fb158c919afddd154665f42d53e39c485197
+Source Timestamp: 2008-12-02 22:27:33 +0100
+GIT Revision: a1ce8005f2a7afb3456dd4a47b67cdc23488d0d0
%preun base -f preun-base.sh
@@ -749,8 +749,8 @@
-Source Timestamp: 2008-12-01 20:13:26 +0100
-GIT Revision: c3f1fb158c919afddd154665f42d53e39c485197
+Source Timestamp: 2008-12-02 22:27:33 +0100
+GIT Revision: a1ce8005f2a7afb3456dd4a47b67cdc23488d0d0
%preun extra -f preun-extra.sh
@@ -780,8 +780,8 @@
-Source Timestamp: 2008-12-01 20:13:26 +0100
-GIT Revision: c3f1fb158c919afddd154665f42d53e39c485197
+Source Timestamp: 2008-12-02 22:27:33 +0100
+GIT Revision: a1ce8005f2a7afb3456dd4a47b67cdc23488d0d0
%files -n kernel-kdump-man
%defattr(-,root,root)
@@ -790,6 +790,45 @@
%endif
%changelog
+* Tue Dec 02 2008 mmarek@suse.cz
+- rpm/get_release_number.sh.in, scripts/tar-up.sh: append first
+ eight digits of the commit id to the release string. This makes
+ it easier to match rpm release numbers with commits.
+* Tue Dec 02 2008 mszeredi@suse.de
+- patches.fixes/af_unix-soft-lockup-fix.patch: net: Fix soft
+ lockups/OOM issues w/ unix garbage collector (bnc#449739
+ CVE-2008-5300).
+* Tue Dec 02 2008 hare@suse.de
+- patches.drivers/qla2xxx-8.02.01.02.11.0-k9-update: qla2xxx:
+ additional fixes/updates for SLES11 (bnc#450197).
+- patches.fixes/scsi-fixup-failfast-definitions: fc_transport:
+ fix old bug on bitflag definitions (bnc#447814).
+* Tue Dec 02 2008 goldwyn@suse.de
+- patches.suse/novfs-map-drives-correctly.diff
+- patches.suse/novfs-merge-changes.diff: Modified to revert
+ some changes in novfs_set_map_drive()
+- patches.suse/novfs-clear-mappeddrives.patch: Unlink mapped
+ drives on exit (bnc#449451).
+* Tue Dec 02 2008 mmarek@suse.cz
+- supported.conf: mark ocfs2 as unsupported, a supported variant
+ will be provided in a separate KMP (bnc#449824)
+* Tue Dec 02 2008 olh@suse.de
+- patches.drivers/ehca-rejecting-dynamic-mem-add-remove.patch:
+ update error message (bnc#448301 - LTC50134)
+* Tue Dec 02 2008 hare@suse.de
+- Update config files for S/390: Disable FCoE and sync
+ default and s390.
+- supported.conf: Mark KVM as supported.
+* Tue Dec 02 2008 jjolly@suse.de
+- ...and added the patches to the series.conf (bnc#450096)
+* Tue Dec 02 2008 jjolly@suse.de
+- patches.arch/s390-05-01-zfcp-message-linebreak.patch: zfcp:
+ Wrong placement of linebreak in message (bnc#450096).
+- patches.arch/s390-05-02-zfcp-invalid-non-null-return.patch:
+ zfcp: invalid return value on failing fsf_req creation
+ (bnc#450096).
+- patches.arch/s390-05-03-zfcp-wka-port.patch: zfcp: Fix opening
+ of wka ports (bnc#450096).
* Mon Dec 01 2008 kkeil@suse.de
- patches.drivers/cxgb3-Add-1G-fiber-support: cxgb3: Add 1G
fiber support.
kernel-pae.spec: same change
++++++ kernel-ppc64.spec ++++++
--- /var/tmp/diff_new_pack.b13669/_old 2008-12-03 16:30:11.000000000 +0100
+++ /var/tmp/diff_new_pack.b13669/_new 2008-12-03 16:30:11.000000000 +0100
@@ -63,7 +63,7 @@
Name: kernel-ppc64
Summary: Kernel for ppc64 Systems
Version: 2.6.27.7
-Release: 7
+Release: 8
License: GPL v2 only
Group: System/Kernel
Url: http://www.kernel.org/
@@ -224,8 +224,8 @@
Tom Gall
see /usr/src/linux/CREDITS for more details.
-Source Timestamp: 2008-12-01 20:13:26 +0100
-GIT Revision: c3f1fb158c919afddd154665f42d53e39c485197
+Source Timestamp: 2008-12-02 22:27:33 +0100
+GIT Revision: a1ce8005f2a7afb3456dd4a47b67cdc23488d0d0
%prep
if ! [ -e %_sourcedir/linux-2.6.27.tar.bz2 ]; then
@@ -729,8 +729,8 @@
Tom Gall
see /usr/src/linux/CREDITS for more details.
-Source Timestamp: 2008-12-01 20:13:26 +0100
-GIT Revision: c3f1fb158c919afddd154665f42d53e39c485197
+Source Timestamp: 2008-12-02 22:27:33 +0100
+GIT Revision: a1ce8005f2a7afb3456dd4a47b67cdc23488d0d0
%preun base -f preun-base.sh
@@ -784,8 +784,8 @@
Tom Gall
see /usr/src/linux/CREDITS for more details.
-Source Timestamp: 2008-12-01 20:13:26 +0100
-GIT Revision: c3f1fb158c919afddd154665f42d53e39c485197
+Source Timestamp: 2008-12-02 22:27:33 +0100
+GIT Revision: a1ce8005f2a7afb3456dd4a47b67cdc23488d0d0
%preun extra -f preun-extra.sh
@@ -826,8 +826,8 @@
Tom Gall
see /usr/src/linux/CREDITS for more details.
-Source Timestamp: 2008-12-01 20:13:26 +0100
-GIT Revision: c3f1fb158c919afddd154665f42d53e39c485197
+Source Timestamp: 2008-12-02 22:27:33 +0100
+GIT Revision: a1ce8005f2a7afb3456dd4a47b67cdc23488d0d0
%files -n kernel-ppc64-man
%defattr(-,root,root)
@@ -836,6 +836,45 @@
%endif
%changelog
+* Tue Dec 02 2008 mmarek@suse.cz
+- rpm/get_release_number.sh.in, scripts/tar-up.sh: append first
+ eight digits of the commit id to the release string. This makes
+ it easier to match rpm release numbers with commits.
+* Tue Dec 02 2008 mszeredi@suse.de
+- patches.fixes/af_unix-soft-lockup-fix.patch: net: Fix soft
+ lockups/OOM issues w/ unix garbage collector (bnc#449739
+ CVE-2008-5300).
+* Tue Dec 02 2008 hare@suse.de
+- patches.drivers/qla2xxx-8.02.01.02.11.0-k9-update: qla2xxx:
+ additional fixes/updates for SLES11 (bnc#450197).
+- patches.fixes/scsi-fixup-failfast-definitions: fc_transport:
+ fix old bug on bitflag definitions (bnc#447814).
+* Tue Dec 02 2008 goldwyn@suse.de
+- patches.suse/novfs-map-drives-correctly.diff
+- patches.suse/novfs-merge-changes.diff: Modified to revert
+ some changes in novfs_set_map_drive()
+- patches.suse/novfs-clear-mappeddrives.patch: Unlink mapped
+ drives on exit (bnc#449451).
+* Tue Dec 02 2008 mmarek@suse.cz
+- supported.conf: mark ocfs2 as unsupported, a supported variant
+ will be provided in a separate KMP (bnc#449824)
+* Tue Dec 02 2008 olh@suse.de
+- patches.drivers/ehca-rejecting-dynamic-mem-add-remove.patch:
+ update error message (bnc#448301 - LTC50134)
+* Tue Dec 02 2008 hare@suse.de
+- Update config files for S/390: Disable FCoE and sync
+ default and s390.
+- supported.conf: Mark KVM as supported.
+* Tue Dec 02 2008 jjolly@suse.de
+- ...and added the patches to the series.conf (bnc#450096)
+* Tue Dec 02 2008 jjolly@suse.de
+- patches.arch/s390-05-01-zfcp-message-linebreak.patch: zfcp:
+ Wrong placement of linebreak in message (bnc#450096).
+- patches.arch/s390-05-02-zfcp-invalid-non-null-return.patch:
+ zfcp: invalid return value on failing fsf_req creation
+ (bnc#450096).
+- patches.arch/s390-05-03-zfcp-wka-port.patch: zfcp: Fix opening
+ of wka ports (bnc#450096).
* Mon Dec 01 2008 kkeil@suse.de
- patches.drivers/cxgb3-Add-1G-fiber-support: cxgb3: Add 1G
fiber support.
++++++ kernel-ps3.spec ++++++
--- /var/tmp/diff_new_pack.b13669/_old 2008-12-03 16:30:12.000000000 +0100
+++ /var/tmp/diff_new_pack.b13669/_new 2008-12-03 16:30:12.000000000 +0100
@@ -63,7 +63,7 @@
Name: kernel-ps3
Summary: kernel for ps3 bootloader
Version: 2.6.27.7
-Release: 7
+Release: 8
License: GPL v2 only
Group: System/Kernel
Url: http://www.kernel.org/
@@ -206,8 +206,8 @@
-Source Timestamp: 2008-12-01 20:13:26 +0100
-GIT Revision: c3f1fb158c919afddd154665f42d53e39c485197
+Source Timestamp: 2008-12-02 22:27:33 +0100
+GIT Revision: a1ce8005f2a7afb3456dd4a47b67cdc23488d0d0
%prep
if ! [ -e %_sourcedir/linux-2.6.27.tar.bz2 ]; then
@@ -697,8 +697,8 @@
-Source Timestamp: 2008-12-01 20:13:26 +0100
-GIT Revision: c3f1fb158c919afddd154665f42d53e39c485197
+Source Timestamp: 2008-12-02 22:27:33 +0100
+GIT Revision: a1ce8005f2a7afb3456dd4a47b67cdc23488d0d0
%preun base -f preun-base.sh
@@ -738,8 +738,8 @@
-Source Timestamp: 2008-12-01 20:13:26 +0100
-GIT Revision: c3f1fb158c919afddd154665f42d53e39c485197
+Source Timestamp: 2008-12-02 22:27:33 +0100
+GIT Revision: a1ce8005f2a7afb3456dd4a47b67cdc23488d0d0
%preun extra -f preun-extra.sh
@@ -769,8 +769,8 @@
-Source Timestamp: 2008-12-01 20:13:26 +0100
-GIT Revision: c3f1fb158c919afddd154665f42d53e39c485197
+Source Timestamp: 2008-12-02 22:27:33 +0100
+GIT Revision: a1ce8005f2a7afb3456dd4a47b67cdc23488d0d0
%files -n kernel-ps3-man
%defattr(-,root,root)
@@ -779,6 +779,45 @@
%endif
%changelog
+* Tue Dec 02 2008 mmarek@suse.cz
+- rpm/get_release_number.sh.in, scripts/tar-up.sh: append first
+ eight digits of the commit id to the release string. This makes
+ it easier to match rpm release numbers with commits.
+* Tue Dec 02 2008 mszeredi@suse.de
+- patches.fixes/af_unix-soft-lockup-fix.patch: net: Fix soft
+ lockups/OOM issues w/ unix garbage collector (bnc#449739
+ CVE-2008-5300).
+* Tue Dec 02 2008 hare@suse.de
+- patches.drivers/qla2xxx-8.02.01.02.11.0-k9-update: qla2xxx:
+ additional fixes/updates for SLES11 (bnc#450197).
+- patches.fixes/scsi-fixup-failfast-definitions: fc_transport:
+ fix old bug on bitflag definitions (bnc#447814).
+* Tue Dec 02 2008 goldwyn@suse.de
+- patches.suse/novfs-map-drives-correctly.diff
+- patches.suse/novfs-merge-changes.diff: Modified to revert
+ some changes in novfs_set_map_drive()
+- patches.suse/novfs-clear-mappeddrives.patch: Unlink mapped
+ drives on exit (bnc#449451).
+* Tue Dec 02 2008 mmarek@suse.cz
+- supported.conf: mark ocfs2 as unsupported, a supported variant
+ will be provided in a separate KMP (bnc#449824)
+* Tue Dec 02 2008 olh@suse.de
+- patches.drivers/ehca-rejecting-dynamic-mem-add-remove.patch:
+ update error message (bnc#448301 - LTC50134)
+* Tue Dec 02 2008 hare@suse.de
+- Update config files for S/390: Disable FCoE and sync
+ default and s390.
+- supported.conf: Mark KVM as supported.
+* Tue Dec 02 2008 jjolly@suse.de
+- ...and added the patches to the series.conf (bnc#450096)
+* Tue Dec 02 2008 jjolly@suse.de
+- patches.arch/s390-05-01-zfcp-message-linebreak.patch: zfcp:
+ Wrong placement of linebreak in message (bnc#450096).
+- patches.arch/s390-05-02-zfcp-invalid-non-null-return.patch:
+ zfcp: invalid return value on failing fsf_req creation
+ (bnc#450096).
+- patches.arch/s390-05-03-zfcp-wka-port.patch: zfcp: Fix opening
+ of wka ports (bnc#450096).
* Mon Dec 01 2008 kkeil@suse.de
- patches.drivers/cxgb3-Add-1G-fiber-support: cxgb3: Add 1G
fiber support.
kernel-s390.spec: same change
++++++ kernel-source.spec ++++++
--- /var/tmp/diff_new_pack.b13669/_old 2008-12-03 16:30:13.000000000 +0100
+++ /var/tmp/diff_new_pack.b13669/_new 2008-12-03 16:30:14.000000000 +0100
@@ -30,7 +30,7 @@
Name: kernel-source
Summary: The Linux Kernel Sources
Version: 2.6.27.7
-Release: 7
+Release: 8
License: GPL v2 only
Group: Development/Sources
AutoReqProv: off
@@ -117,8 +117,8 @@
see /usr/src/linux/CREDITS for more details.
-Source Timestamp: 2008-12-01 20:13:26 +0100
-GIT Revision: c3f1fb158c919afddd154665f42d53e39c485197
+Source Timestamp: 2008-12-02 22:27:33 +0100
+GIT Revision: a1ce8005f2a7afb3456dd4a47b67cdc23488d0d0
%prep
if ! [ -e %_sourcedir/linux-2.6.27.tar.bz2 ]; then
@@ -274,6 +274,45 @@
%files -f kernel-source.files
%changelog
+* Tue Dec 02 2008 mmarek@suse.cz
+- rpm/get_release_number.sh.in, scripts/tar-up.sh: append first
+ eight digits of the commit id to the release string. This makes
+ it easier to match rpm release numbers with commits.
+* Tue Dec 02 2008 mszeredi@suse.de
+- patches.fixes/af_unix-soft-lockup-fix.patch: net: Fix soft
+ lockups/OOM issues w/ unix garbage collector (bnc#449739
+ CVE-2008-5300).
+* Tue Dec 02 2008 hare@suse.de
+- patches.drivers/qla2xxx-8.02.01.02.11.0-k9-update: qla2xxx:
+ additional fixes/updates for SLES11 (bnc#450197).
+- patches.fixes/scsi-fixup-failfast-definitions: fc_transport:
+ fix old bug on bitflag definitions (bnc#447814).
+* Tue Dec 02 2008 goldwyn@suse.de
+- patches.suse/novfs-map-drives-correctly.diff
+- patches.suse/novfs-merge-changes.diff: Modified to revert
+ some changes in novfs_set_map_drive()
+- patches.suse/novfs-clear-mappeddrives.patch: Unlink mapped
+ drives on exit (bnc#449451).
+* Tue Dec 02 2008 mmarek@suse.cz
+- supported.conf: mark ocfs2 as unsupported, a supported variant
+ will be provided in a separate KMP (bnc#449824)
+* Tue Dec 02 2008 olh@suse.de
+- patches.drivers/ehca-rejecting-dynamic-mem-add-remove.patch:
+ update error message (bnc#448301 - LTC50134)
+* Tue Dec 02 2008 hare@suse.de
+- Update config files for S/390: Disable FCoE and sync
+ default and s390.
+- supported.conf: Mark KVM as supported.
+* Tue Dec 02 2008 jjolly@suse.de
+- ...and added the patches to the series.conf (bnc#450096)
+* Tue Dec 02 2008 jjolly@suse.de
+- patches.arch/s390-05-01-zfcp-message-linebreak.patch: zfcp:
+ Wrong placement of linebreak in message (bnc#450096).
+- patches.arch/s390-05-02-zfcp-invalid-non-null-return.patch:
+ zfcp: invalid return value on failing fsf_req creation
+ (bnc#450096).
+- patches.arch/s390-05-03-zfcp-wka-port.patch: zfcp: Fix opening
+ of wka ports (bnc#450096).
* Mon Dec 01 2008 kkeil@suse.de
- patches.drivers/cxgb3-Add-1G-fiber-support: cxgb3: Add 1G
fiber support.
++++++ kernel-syms.spec ++++++
--- /var/tmp/diff_new_pack.b13669/_old 2008-12-03 16:30:14.000000000 +0100
+++ /var/tmp/diff_new_pack.b13669/_new 2008-12-03 16:30:14.000000000 +0100
@@ -29,7 +29,7 @@
Name: kernel-syms
Summary: Kernel Symbol Versions (modversions)
Version: 2.6.27.7
-Release: 7
+Release: 8
License: GPL v2 only
Group: Development/Sources
AutoReqProv: off
@@ -94,8 +94,8 @@
see /usr/src/linux/CREDITS for more details.
-Source Timestamp: 2008-12-01 20:13:26 +0100
-GIT Revision: c3f1fb158c919afddd154665f42d53e39c485197
+Source Timestamp: 2008-12-02 22:27:33 +0100
+GIT Revision: a1ce8005f2a7afb3456dd4a47b67cdc23488d0d0
%prep
echo "Architecture symbol(s):" %symbols
@@ -152,6 +152,45 @@
/lib/modules/*/build
%changelog
+* Tue Dec 02 2008 mmarek@suse.cz
+- rpm/get_release_number.sh.in, scripts/tar-up.sh: append first
+ eight digits of the commit id to the release string. This makes
+ it easier to match rpm release numbers with commits.
+* Tue Dec 02 2008 mszeredi@suse.de
+- patches.fixes/af_unix-soft-lockup-fix.patch: net: Fix soft
+ lockups/OOM issues w/ unix garbage collector (bnc#449739
+ CVE-2008-5300).
+* Tue Dec 02 2008 hare@suse.de
+- patches.drivers/qla2xxx-8.02.01.02.11.0-k9-update: qla2xxx:
+ additional fixes/updates for SLES11 (bnc#450197).
+- patches.fixes/scsi-fixup-failfast-definitions: fc_transport:
+ fix old bug on bitflag definitions (bnc#447814).
+* Tue Dec 02 2008 goldwyn@suse.de
+- patches.suse/novfs-map-drives-correctly.diff
+- patches.suse/novfs-merge-changes.diff: Modified to revert
+ some changes in novfs_set_map_drive()
+- patches.suse/novfs-clear-mappeddrives.patch: Unlink mapped
+ drives on exit (bnc#449451).
+* Tue Dec 02 2008 mmarek@suse.cz
+- supported.conf: mark ocfs2 as unsupported, a supported variant
+ will be provided in a separate KMP (bnc#449824)
+* Tue Dec 02 2008 olh@suse.de
+- patches.drivers/ehca-rejecting-dynamic-mem-add-remove.patch:
+ update error message (bnc#448301 - LTC50134)
+* Tue Dec 02 2008 hare@suse.de
+- Update config files for S/390: Disable FCoE and sync
+ default and s390.
+- supported.conf: Mark KVM as supported.
+* Tue Dec 02 2008 jjolly@suse.de
+- ...and added the patches to the series.conf (bnc#450096)
+* Tue Dec 02 2008 jjolly@suse.de
+- patches.arch/s390-05-01-zfcp-message-linebreak.patch: zfcp:
+ Wrong placement of linebreak in message (bnc#450096).
+- patches.arch/s390-05-02-zfcp-invalid-non-null-return.patch:
+ zfcp: invalid return value on failing fsf_req creation
+ (bnc#450096).
+- patches.arch/s390-05-03-zfcp-wka-port.patch: zfcp: Fix opening
+ of wka ports (bnc#450096).
* Mon Dec 01 2008 kkeil@suse.de
- patches.drivers/cxgb3-Add-1G-fiber-support: cxgb3: Add 1G
fiber support.
++++++ kernel-trace.spec ++++++
--- /var/tmp/diff_new_pack.b13669/_old 2008-12-03 16:30:14.000000000 +0100
+++ /var/tmp/diff_new_pack.b13669/_new 2008-12-03 16:30:14.000000000 +0100
@@ -63,7 +63,7 @@
Name: kernel-trace
Summary: The Realtime Linux Kernel
Version: 2.6.27.7
-Release: 7
+Release: 8
License: GPL v2 only
Group: System/Kernel
Url: http://www.kernel.org/
@@ -217,8 +217,8 @@
see /usr/src/linux/CREDITS for more details.
-Source Timestamp: 2008-12-01 20:13:26 +0100
-GIT Revision: c3f1fb158c919afddd154665f42d53e39c485197
+Source Timestamp: 2008-12-02 22:27:33 +0100
+GIT Revision: a1ce8005f2a7afb3456dd4a47b67cdc23488d0d0
%prep
if ! [ -e %_sourcedir/linux-2.6.27.tar.bz2 ]; then
@@ -712,8 +712,8 @@
see /usr/src/linux/CREDITS for more details.
-Source Timestamp: 2008-12-01 20:13:26 +0100
-GIT Revision: c3f1fb158c919afddd154665f42d53e39c485197
+Source Timestamp: 2008-12-02 22:27:33 +0100
+GIT Revision: a1ce8005f2a7afb3456dd4a47b67cdc23488d0d0
%preun base -f preun-base.sh
@@ -757,8 +757,8 @@
see /usr/src/linux/CREDITS for more details.
-Source Timestamp: 2008-12-01 20:13:26 +0100
-GIT Revision: c3f1fb158c919afddd154665f42d53e39c485197
+Source Timestamp: 2008-12-02 22:27:33 +0100
+GIT Revision: a1ce8005f2a7afb3456dd4a47b67cdc23488d0d0
%preun extra -f preun-extra.sh
@@ -791,8 +791,8 @@
see /usr/src/linux/CREDITS for more details.
-Source Timestamp: 2008-12-01 20:13:26 +0100
-GIT Revision: c3f1fb158c919afddd154665f42d53e39c485197
+Source Timestamp: 2008-12-02 22:27:33 +0100
+GIT Revision: a1ce8005f2a7afb3456dd4a47b67cdc23488d0d0
%files -n kernel-trace-man
%defattr(-,root,root)
@@ -801,6 +801,45 @@
%endif
%changelog
+* Tue Dec 02 2008 mmarek@suse.cz
+- rpm/get_release_number.sh.in, scripts/tar-up.sh: append first
+ eight digits of the commit id to the release string. This makes
+ it easier to match rpm release numbers with commits.
+* Tue Dec 02 2008 mszeredi@suse.de
+- patches.fixes/af_unix-soft-lockup-fix.patch: net: Fix soft
+ lockups/OOM issues w/ unix garbage collector (bnc#449739
+ CVE-2008-5300).
+* Tue Dec 02 2008 hare@suse.de
+- patches.drivers/qla2xxx-8.02.01.02.11.0-k9-update: qla2xxx:
+ additional fixes/updates for SLES11 (bnc#450197).
+- patches.fixes/scsi-fixup-failfast-definitions: fc_transport:
+ fix old bug on bitflag definitions (bnc#447814).
+* Tue Dec 02 2008 goldwyn@suse.de
+- patches.suse/novfs-map-drives-correctly.diff
+- patches.suse/novfs-merge-changes.diff: Modified to revert
+ some changes in novfs_set_map_drive()
+- patches.suse/novfs-clear-mappeddrives.patch: Unlink mapped
+ drives on exit (bnc#449451).
+* Tue Dec 02 2008 mmarek@suse.cz
+- supported.conf: mark ocfs2 as unsupported, a supported variant
+ will be provided in a separate KMP (bnc#449824)
+* Tue Dec 02 2008 olh@suse.de
+- patches.drivers/ehca-rejecting-dynamic-mem-add-remove.patch:
+ update error message (bnc#448301 - LTC50134)
+* Tue Dec 02 2008 hare@suse.de
+- Update config files for S/390: Disable FCoE and sync
+ default and s390.
+- supported.conf: Mark KVM as supported.
+* Tue Dec 02 2008 jjolly@suse.de
+- ...and added the patches to the series.conf (bnc#450096)
+* Tue Dec 02 2008 jjolly@suse.de
+- patches.arch/s390-05-01-zfcp-message-linebreak.patch: zfcp:
+ Wrong placement of linebreak in message (bnc#450096).
+- patches.arch/s390-05-02-zfcp-invalid-non-null-return.patch:
+ zfcp: invalid return value on failing fsf_req creation
+ (bnc#450096).
+- patches.arch/s390-05-03-zfcp-wka-port.patch: zfcp: Fix opening
+ of wka ports (bnc#450096).
* Mon Dec 01 2008 kkeil@suse.de
- patches.drivers/cxgb3-Add-1G-fiber-support: cxgb3: Add 1G
fiber support.
++++++ kernel-vanilla.spec ++++++
--- /var/tmp/diff_new_pack.b13669/_old 2008-12-03 16:30:15.000000000 +0100
+++ /var/tmp/diff_new_pack.b13669/_new 2008-12-03 16:30:15.000000000 +0100
@@ -63,7 +63,7 @@
Name: kernel-vanilla
Summary: The Standard Kernel - without any SUSE patches
Version: 2.6.27.7
-Release: 7
+Release: 8
License: GPL v2 only
Group: System/Kernel
Url: http://www.kernel.org/
@@ -227,8 +227,8 @@
-Source Timestamp: 2008-12-01 20:13:26 +0100
-GIT Revision: c3f1fb158c919afddd154665f42d53e39c485197
+Source Timestamp: 2008-12-02 22:27:33 +0100
+GIT Revision: a1ce8005f2a7afb3456dd4a47b67cdc23488d0d0
%prep
if ! [ -e %_sourcedir/linux-2.6.27.tar.bz2 ]; then
@@ -716,8 +716,8 @@
-Source Timestamp: 2008-12-01 20:13:26 +0100
-GIT Revision: c3f1fb158c919afddd154665f42d53e39c485197
+Source Timestamp: 2008-12-02 22:27:33 +0100
+GIT Revision: a1ce8005f2a7afb3456dd4a47b67cdc23488d0d0
%preun base -f preun-base.sh
@@ -755,8 +755,8 @@
-Source Timestamp: 2008-12-01 20:13:26 +0100
-GIT Revision: c3f1fb158c919afddd154665f42d53e39c485197
+Source Timestamp: 2008-12-02 22:27:33 +0100
+GIT Revision: a1ce8005f2a7afb3456dd4a47b67cdc23488d0d0
%preun extra -f preun-extra.sh
@@ -783,8 +783,8 @@
-Source Timestamp: 2008-12-01 20:13:26 +0100
-GIT Revision: c3f1fb158c919afddd154665f42d53e39c485197
+Source Timestamp: 2008-12-02 22:27:33 +0100
+GIT Revision: a1ce8005f2a7afb3456dd4a47b67cdc23488d0d0
%files -n kernel-vanilla-man
%defattr(-,root,root)
@@ -793,6 +793,45 @@
%endif
%changelog
+* Tue Dec 02 2008 mmarek@suse.cz
+- rpm/get_release_number.sh.in, scripts/tar-up.sh: append first
+ eight digits of the commit id to the release string. This makes
+ it easier to match rpm release numbers with commits.
+* Tue Dec 02 2008 mszeredi@suse.de
+- patches.fixes/af_unix-soft-lockup-fix.patch: net: Fix soft
+ lockups/OOM issues w/ unix garbage collector (bnc#449739
+ CVE-2008-5300).
+* Tue Dec 02 2008 hare@suse.de
+- patches.drivers/qla2xxx-8.02.01.02.11.0-k9-update: qla2xxx:
+ additional fixes/updates for SLES11 (bnc#450197).
+- patches.fixes/scsi-fixup-failfast-definitions: fc_transport:
+ fix old bug on bitflag definitions (bnc#447814).
+* Tue Dec 02 2008 goldwyn@suse.de
+- patches.suse/novfs-map-drives-correctly.diff
+- patches.suse/novfs-merge-changes.diff: Modified to revert
+ some changes in novfs_set_map_drive()
+- patches.suse/novfs-clear-mappeddrives.patch: Unlink mapped
+ drives on exit (bnc#449451).
+* Tue Dec 02 2008 mmarek@suse.cz
+- supported.conf: mark ocfs2 as unsupported, a supported variant
+ will be provided in a separate KMP (bnc#449824)
+* Tue Dec 02 2008 olh@suse.de
+- patches.drivers/ehca-rejecting-dynamic-mem-add-remove.patch:
+ update error message (bnc#448301 - LTC50134)
+* Tue Dec 02 2008 hare@suse.de
+- Update config files for S/390: Disable FCoE and sync
+ default and s390.
+- supported.conf: Mark KVM as supported.
+* Tue Dec 02 2008 jjolly@suse.de
+- ...and added the patches to the series.conf (bnc#450096)
+* Tue Dec 02 2008 jjolly@suse.de
+- patches.arch/s390-05-01-zfcp-message-linebreak.patch: zfcp:
+ Wrong placement of linebreak in message (bnc#450096).
+- patches.arch/s390-05-02-zfcp-invalid-non-null-return.patch:
+ zfcp: invalid return value on failing fsf_req creation
+ (bnc#450096).
+- patches.arch/s390-05-03-zfcp-wka-port.patch: zfcp: Fix opening
+ of wka ports (bnc#450096).
* Mon Dec 01 2008 kkeil@suse.de
- patches.drivers/cxgb3-Add-1G-fiber-support: cxgb3: Add 1G
fiber support.
kernel-xen.spec: same change
++++++ build-source-timestamp ++++++
--- /var/tmp/diff_new_pack.b13669/_old 2008-12-03 16:30:16.000000000 +0100
+++ /var/tmp/diff_new_pack.b13669/_new 2008-12-03 16:30:16.000000000 +0100
@@ -1,2 +1,2 @@
-2008-12-01 20:13:26 +0100
-GIT Revision: c3f1fb158c919afddd154665f42d53e39c485197
+2008-12-02 22:27:33 +0100
+GIT Revision: a1ce8005f2a7afb3456dd4a47b67cdc23488d0d0
++++++ config.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/config/s390/default new/config/s390/default
--- old/config/s390/default 2008-11-24 20:18:12.000000000 +0100
+++ new/config/s390/default 2008-12-02 14:24:14.000000000 +0100
@@ -16,6 +16,7 @@
CONFIG_GENERIC_BUG=y
CONFIG_NO_IOMEM=y
CONFIG_NO_DMA=y
+CONFIG_PGSTE=y
CONFIG_S390=y
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
@@ -141,6 +142,7 @@
# CONFIG_DEFAULT_CFQ is not set
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="deadline"
+CONFIG_PREEMPT_NOTIFIERS=y
CONFIG_CLASSIC_RCU=y
#
@@ -733,10 +735,10 @@
CONFIG_SCSI_SRP_ATTRS=m
CONFIG_SCSI_SRP_TGT_ATTRS=y
CONFIG_SCSI_LOWLEVEL=y
-CONFIG_LIBFC=m
-CONFIG_FCOE=m
CONFIG_ISCSI_TCP=m
# CONFIG_SCSI_CXGB3_ISCSI is not set
+# CONFIG_LIBFC is not set
+# CONFIG_FCOE is not set
CONFIG_SCSI_DEBUG=m
CONFIG_ZFCP=m
CONFIG_SCSI_DH=m
@@ -1304,7 +1306,7 @@
CONFIG_PLIST=y
CONFIG_HAVE_KVM=y
CONFIG_VIRTUALIZATION=y
-# CONFIG_KVM is not set
+CONFIG_KVM=m
CONFIG_VIRTIO=y
CONFIG_VIRTIO_RING=y
CONFIG_VIRTIO_BALLOON=m
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/config/s390/s390 new/config/s390/s390
--- old/config/s390/s390 2008-11-24 20:18:12.000000000 +0100
+++ new/config/s390/s390 2008-12-02 14:24:14.000000000 +0100
@@ -173,7 +173,7 @@
# CONFIG_MARCH_Z9_109 is not set
# CONFIG_MARCH_Z10 is not set
CONFIG_PACK_STACK=y
-CONFIG_SMALL_STACK=y
+# CONFIG_SMALL_STACK is not set
CONFIG_CHECK_STACK=y
CONFIG_STACK_GUARD=256
CONFIG_WARN_STACK=y
@@ -628,7 +628,6 @@
CONFIG_FIB_RULES=y
CONFIG_RFKILL=m
CONFIG_NET_9P=m
-CONFIG_NET_9P_VIRTIO=m
# CONFIG_NET_9P_DEBUG is not set
CONFIG_NETVM=y
# CONFIG_PCMCIA is not set
@@ -661,7 +660,9 @@
CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=32768
CONFIG_BLK_DEV_XIP=y
-# CONFIG_CDROM_PKTCDVD is not set
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
CONFIG_ATA_OVER_ETH=m
CONFIG_CIPHER_TWOFISH=m
@@ -676,7 +677,6 @@
CONFIG_DASD_FBA=m
CONFIG_DASD_DIAG=m
CONFIG_DASD_EER=y
-CONFIG_VIRTIO_BLK=m
CONFIG_MISC_DEVICES=y
CONFIG_EEPROM_93CX6=m
CONFIG_ENCLOSURE_SERVICES=m
@@ -727,10 +727,10 @@
CONFIG_SCSI_SRP_ATTRS=m
CONFIG_SCSI_SRP_TGT_ATTRS=y
CONFIG_SCSI_LOWLEVEL=y
-CONFIG_LIBFC=m
-CONFIG_FCOE=m
CONFIG_ISCSI_TCP=m
# CONFIG_SCSI_CXGB3_ISCSI is not set
+# CONFIG_LIBFC is not set
+# CONFIG_FCOE is not set
CONFIG_SCSI_DEBUG=m
CONFIG_ZFCP=m
CONFIG_SCSI_DH=m
@@ -805,7 +805,6 @@
# CONFIG_NETCONSOLE is not set
# CONFIG_NETPOLL is not set
# CONFIG_NET_POLL_CONTROLLER is not set
-CONFIG_VIRTIO_NET=m
#
# Character devices
@@ -814,10 +813,7 @@
CONFIG_UNIX98_PTYS=y
CONFIG_LEGACY_PTYS=y
CONFIG_LEGACY_PTY_COUNT=0
-CONFIG_HVC_DRIVER=y
-CONFIG_VIRTIO_CONSOLE=m
CONFIG_HW_RANDOM=m
-CONFIG_HW_RANDOM_VIRTIO=m
# CONFIG_R3964 is not set
CONFIG_RAW_DRIVER=m
CONFIG_MAX_RAW_DEVS=256
@@ -1000,7 +996,7 @@
CONFIG_ROMFS_FS=m
CONFIG_SYSV_FS=m
CONFIG_UFS_FS=m
-CONFIG_UFS_FS_WRITE=y
+# CONFIG_UFS_FS_WRITE is not set
# CONFIG_UFS_DEBUG is not set
CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_NFS_FS=m
@@ -1295,7 +1291,4 @@
CONFIG_TEXTSEARCH_BM=m
CONFIG_TEXTSEARCH_FSM=m
CONFIG_PLIST=y
-CONFIG_VIRTUALIZATION=y
-CONFIG_VIRTIO=m
-CONFIG_VIRTIO_RING=m
-CONFIG_VIRTIO_BALLOON=m
+# CONFIG_VIRTUALIZATION is not set
++++++ get_release_number.sh ++++++
--- /var/tmp/diff_new_pack.b13669/_old 2008-12-03 16:30:19.000000000 +0100
+++ /var/tmp/diff_new_pack.b13669/_new 2008-12-03 16:30:19.000000000 +0100
@@ -1,12 +1,13 @@
#! /bin/sh
prefix=
suffix=
+commit=a1ce8005
if [ "$3" = kernel-dummy -o -n "$suffix" ]; then
[ -n "$suffix" ] || suffix=$2
while [ "$suffix" != "${suffix#[^0-9]*.}" ]; do
suffix=${suffix#[^0-9]*.}
done
- echo $prefix$suffix
+ echo $prefix$suffix${commit:+_}$commit
else
echo "pkg:kernel-dummy"
fi
++++++ kabi.tar.bz2 ++++++
++++++ minmem ++++++
--- /var/tmp/diff_new_pack.b13669/_old 2008-12-03 16:30:22.000000000 +0100
+++ /var/tmp/diff_new_pack.b13669/_new 2008-12-03 16:30:22.000000000 +0100
@@ -1 +1 @@
-2096000
+1048576
++++++ needed_space_in_mb ++++++
--- /var/tmp/diff_new_pack.b13669/_old 2008-12-03 16:30:23.000000000 +0100
+++ /var/tmp/diff_new_pack.b13669/_new 2008-12-03 16:30:23.000000000 +0100
@@ -1 +1 @@
-6000
+6144
++++++ patches.addon.tar.bz2 ++++++
++++++ patches.apparmor.tar.bz2 ++++++
++++++ patches.arch.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.arch/s390-05-01-zfcp-message-linebreak.patch new/patches.arch/s390-05-01-zfcp-message-linebreak.patch
--- old/patches.arch/s390-05-01-zfcp-message-linebreak.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.arch/s390-05-01-zfcp-message-linebreak.patch 2008-12-02 14:24:14.000000000 +0100
@@ -0,0 +1,37 @@
+From: Gerald Schaefer
+Subject: zfcp: Wrong placement of linebreak in message
+References: bnc#450096
+
+Symptom: Closing parenthesis missing in message output.
+Problem: Typo in message.
+Solution: Fix message text, put the parenthesis before the
+ linebreak.
+
+Acked-by: John Jolly
+---
+ Documentation/kmsg/s390/zfcp | 2 +-
+ drivers/s390/scsi/zfcp_fsf.c | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+--- a/drivers/s390/scsi/zfcp_fsf.c 2008-11-26 10:51:05.000000000 +0100
++++ b/drivers/s390/scsi/zfcp_fsf.c 2008-11-26 10:51:06.000000000 +0100
+@@ -1903,7 +1903,7 @@ static void zfcp_fsf_open_unit_handler(s
+ dev_err(&adapter->ccw_device->dev,
+ "Shared read-write access not "
+ "supported (unit 0x%016Lx, port "
+- "0x%016Lx\n)",
++ "0x%016Lx)\n",
+ (unsigned long long)unit->fcp_lun,
+ (unsigned long long)unit->port->wwpn);
+ zfcp_erp_unit_failed(unit, 36, req);
+--- a/Documentation/kmsg/s390/zfcp 2008-11-26 10:12:47.000000000 +0100
++++ b/Documentation/kmsg/s390/zfcp 2008-11-26 10:53:58.000000000 +0100
+@@ -753,7 +753,7 @@
+ */
+
+ /*?
+- * Text: "%s: Shared read-write access not supported (unit 0x%016Lx, port 0x%016Lx\n)"
++ * Text: "%s: Shared read-write access not supported (unit 0x%016Lx, port 0x%016Lx)\n"
+ * Severity: Error
+ * Parameter:
+ * @1: bus ID of the zfcp device
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.arch/s390-05-02-zfcp-invalid-non-null-return.patch new/patches.arch/s390-05-02-zfcp-invalid-non-null-return.patch
--- old/patches.arch/s390-05-02-zfcp-invalid-non-null-return.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.arch/s390-05-02-zfcp-invalid-non-null-return.patch 2008-12-02 14:24:14.000000000 +0100
@@ -0,0 +1,41 @@
+From: Gerald Schaefer
+Subject: zfcp: invalid return value on failing fsf_req creation
+References: bnc#450096
+
+Symptom: I/O stops unrecoverably
+Problem: An ERR_PTR is returned where a NULL value is expected
+Solution: Fix the two instances
+
+Acked-by: John Jolly
+---
+ drivers/s390/scsi/zfcp_fsf.c | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+Index: linux-sles11/drivers/s390/scsi/zfcp_fsf.c
+===================================================================
+--- linux-sles11.orig/drivers/s390/scsi/zfcp_fsf.c
++++ linux-sles11/drivers/s390/scsi/zfcp_fsf.c
+@@ -932,8 +932,10 @@ struct zfcp_fsf_req *zfcp_fsf_abort_fcp_
+ goto out;
+ req = zfcp_fsf_req_create(adapter, FSF_QTCB_ABORT_FCP_CMND,
+ req_flags, adapter->pool.fsf_req_abort);
+- if (IS_ERR(req))
++ if (IS_ERR(req)) {
++ req = NULL;
+ goto out;
++ }
+
+ if (unlikely(!(atomic_read(&unit->status) &
+ ZFCP_STATUS_COMMON_UNBLOCKED)))
+@@ -2448,8 +2450,10 @@ struct zfcp_fsf_req *zfcp_fsf_send_fcp_c
+ goto out;
+ req = zfcp_fsf_req_create(adapter, FSF_QTCB_FCP_CMND, req_flags,
+ adapter->pool.fsf_req_scsi);
+- if (IS_ERR(req))
++ if (IS_ERR(req)) {
++ req = NULL;
+ goto out;
++ }
+
+ req->status |= ZFCP_STATUS_FSFREQ_TASK_MANAGEMENT;
+ req->data = unit;
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.arch/s390-05-03-zfcp-wka-port.patch new/patches.arch/s390-05-03-zfcp-wka-port.patch
--- old/patches.arch/s390-05-03-zfcp-wka-port.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.arch/s390-05-03-zfcp-wka-port.patch 2008-12-02 14:24:14.000000000 +0100
@@ -0,0 +1,43 @@
+From: Gerald Schaefer
+Subject: zfcp: Fix opening of wka ports
+References: bnc#450096
+
+Symptom: Opening the wka port twice in parallel leads to error
+ recovery.
+Problem: Two port_open requests are sent and the second one
+ invalidates the existing port handle. Using the wrong
+ port handle later is unexpected and starts error
+ recovery.
+Solution: Change the status check to only issue one port_open
+ request and do not accidentally overwrite the existing
+ port handle.
+
+Acked-by: John Jolly
+---
+
+ drivers/s390/scsi/zfcp_fc.c | 3 ++-
+ drivers/s390/scsi/zfcp_fsf.c | 1 +
+ 2 files changed, 3 insertions(+), 1 deletion(-)
+
+--- a/drivers/s390/scsi/zfcp_fc.c 2008-11-26 15:05:49.000000000 +0100
++++ b/drivers/s390/scsi/zfcp_fc.c 2008-11-26 15:13:11.000000000 +0100
+@@ -52,7 +52,8 @@ static int zfcp_wka_port_get(struct zfcp
+ if (mutex_lock_interruptible(&wka_port->mutex))
+ return -ERESTARTSYS;
+
+- if (wka_port->status != ZFCP_WKA_PORT_ONLINE) {
++ if (wka_port->status == ZFCP_WKA_PORT_OFFLINE ||
++ wka_port->status == ZFCP_WKA_PORT_CLOSING) {
+ wka_port->status = ZFCP_WKA_PORT_OPENING;
+ if (zfcp_fsf_open_wka_port(wka_port))
+ wka_port->status = ZFCP_WKA_PORT_OFFLINE;
+--- a/drivers/s390/scsi/zfcp_fsf.c 2008-11-26 15:05:51.000000000 +0100
++++ b/drivers/s390/scsi/zfcp_fsf.c 2008-11-26 15:13:11.000000000 +0100
+@@ -1588,6 +1588,7 @@ static void zfcp_fsf_open_wka_port_handl
+ wka_port->status = ZFCP_WKA_PORT_OFFLINE;
+ break;
+ case FSF_PORT_ALREADY_OPEN:
++ break;
+ case FSF_GOOD:
+ wka_port->handle = header->port_handle;
+ wka_port->status = ZFCP_WKA_PORT_ONLINE;
++++++ patches.drivers.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.drivers/ehca-rejecting-dynamic-mem-add-remove.patch new/patches.drivers/ehca-rejecting-dynamic-mem-add-remove.patch
--- old/patches.drivers/ehca-rejecting-dynamic-mem-add-remove.patch 2008-11-18 14:05:53.000000000 +0100
+++ new/patches.drivers/ehca-rejecting-dynamic-mem-add-remove.patch 2008-12-02 14:24:14.000000000 +0100
@@ -13,8 +13,8 @@
Signed-off-by: Olaf Hering
---
- drivers/infiniband/hw/ehca/ehca_main.c | 48 +++++++++++++++++++++++++++++++++
- 1 file changed, 48 insertions(+)
+ drivers/infiniband/hw/ehca/ehca_main.c | 46 +++++++++++++++++++++++++++++++++
+ 1 file changed, 46 insertions(+)
--- a/drivers/infiniband/hw/ehca/ehca_main.c
+++ b/drivers/infiniband/hw/ehca/ehca_main.c
@@ -27,7 +27,7 @@
#include "ehca_classes.h"
#include "ehca_iverbs.h"
#include "ehca_mrmw.h"
-@@ -964,6 +966,41 @@ void ehca_poll_eqs(unsigned long data)
+@@ -964,6 +966,39 @@ void ehca_poll_eqs(unsigned long data)
spin_unlock(&shca_list_lock);
}
@@ -53,9 +53,7 @@
+ spin_unlock(&shca_list_lock);
+ if (printk_timed_ratelimit(&ehca_dmem_warn_time,
+ 30 * 1000))
-+ ehca_gen_err("DMEM operations are not allowed"
-+ "as long as an ehca adapter is"
-+ "attached to the LPAR");
++ ehca_gen_err("DMEM operations are not allowed in conjunction with eHCA");
+ return NOTIFY_BAD;
+ }
+ }
@@ -69,7 +67,7 @@
static int __init ehca_module_init(void)
{
int ret;
-@@ -991,6 +1028,12 @@ static int __init ehca_module_init(void)
+@@ -991,6 +1026,12 @@ static int __init ehca_module_init(void)
goto module_init2;
}
@@ -82,7 +80,7 @@
if (ehca_poll_all_eqs != 1) {
ehca_gen_err("WARNING!!!");
ehca_gen_err("It is possible to lose interrupts.");
-@@ -1003,6 +1046,9 @@ static int __init ehca_module_init(void)
+@@ -1003,6 +1044,9 @@ static int __init ehca_module_init(void)
return 0;
@@ -92,7 +90,7 @@
module_init2:
ehca_destroy_slab_caches();
-@@ -1018,6 +1064,8 @@ static void __exit ehca_module_exit(void
+@@ -1018,6 +1062,8 @@ static void __exit ehca_module_exit(void
ibmebus_unregister_driver(&ehca_driver);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.drivers/qla2xxx-8.02.01.02.11.0-k9-update new/patches.drivers/qla2xxx-8.02.01.02.11.0-k9-update
--- old/patches.drivers/qla2xxx-8.02.01.02.11.0-k9-update 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.drivers/qla2xxx-8.02.01.02.11.0-k9-update 2008-12-02 22:27:33.000000000 +0100
@@ -0,0 +1,1453 @@
+From: David Wagner
+Subject: qla2xxx: additional fixes/updates for SLES11
+References: bnc#450197
+
+Here's some additional updates/corrections to qla2xxx for SLES11.
+Should apply cleanly to the beta6 driver sources.
+
+ [PATCH 1/5] qla2xxx: Add ISP84xx firmware-update support.
+ [PATCH 2/5] qla2xxx: Add CT/ELS passthru support.
+ [PATCH 3/5] qla2xxx: Use correct value for max vport in LOOP topology.
+ [PATCH 4/5] qla2xxx: Correction of struct qla_flt_location.
+ [PATCH 5/5] qla2xxx: Update version number to 8.02.01.02.11.0-k9.
+
+Corresponding upstream patches are queued in our local tree for
+for the next merge window (post 2.6.28).
+
+Signed-off-by: David Vasquez
+Signed-off-by: Hannes Reinecke
+
+diff --git a/drivers/scsi/qla2xxx/Makefile b/drivers/scsi/qla2xxx/Makefile
+index c51fd1f..01ed81c 100644
+--- a/drivers/scsi/qla2xxx/Makefile
++++ b/drivers/scsi/qla2xxx/Makefile
+@@ -1,4 +1,5 @@
+ qla2xxx-y := qla_os.o qla_init.o qla_mbx.o qla_iocb.o qla_isr.o qla_gs.o \
+- qla_dbg.o qla_sup.o qla_attr.o qla_mid.o qla_dfs.o
++ qla_dbg.o qla_sup.o qla_attr.o qla_mid.o qla_dfs.o \
++ qla_nlnk.o
+
+ obj-$(CONFIG_SCSI_QLA_FC) += qla2xxx.o
+diff --git a/drivers/scsi/qla2xxx/qla_attr.c b/drivers/scsi/qla2xxx/qla_attr.c
+index ed73196..6d5210e 100644
+--- a/drivers/scsi/qla2xxx/qla_attr.c
++++ b/drivers/scsi/qla2xxx/qla_attr.c
+@@ -454,6 +454,287 @@ static struct bin_attribute sysfs_sfp_attr = {
+ .read = qla2x00_sysfs_read_sfp,
+ };
+
++static fc_port_t *
++qla2x00_find_port(struct scsi_qla_host *ha, uint8_t *pn)
++{
++ fc_port_t *fcport;
++
++ list_for_each_entry(fcport, &ha->fcports, list)
++ if (!memcmp(pn, fcport->port_name, sizeof(fcport->port_name)))
++ return fcport;
++
++ return NULL;
++}
++
++static void
++qla2x00_wait_for_passthru_completion(struct scsi_qla_host *ha)
++{
++ if (!wait_for_completion_timeout(&ha->pass_thru_intr_comp, 10 * HZ)) {
++ DEBUG2(qla_printk(KERN_WARNING, ha,
++ "Passthru request timed out.\n"));
++ ha->isp_ops->fw_dump(ha, 0);
++ }
++}
++
++static ssize_t
++qla2x00_sysfs_read_els(struct kobject *kobj, struct bin_attribute *bin_attr,
++ char *buf, loff_t off, size_t count)
++{
++ struct scsi_qla_host *ha = shost_priv(dev_to_shost(container_of(kobj,
++ struct device, kobj)));
++
++ if (!IS_FWI2_CAPABLE(ha))
++ return 0;
++
++ if (!ha->pass_thru_cmd_in_process || !ha->pass_thru_cmd_result) {
++ DEBUG2(qla_printk(KERN_WARNING, ha,
++ "Passthru ELS response is not available.\n"));
++ return 0;
++ }
++
++ memcpy(buf, ha->pass_thru, count);
++
++ ha->pass_thru_cmd_result = 0;
++ ha->pass_thru_cmd_in_process = 0;
++
++ return count;
++}
++
++static ssize_t
++qla2x00_sysfs_write_els(struct kobject *kobj, struct bin_attribute *bin_attr,
++ char *buf, loff_t off, size_t count)
++{
++ struct scsi_qla_host *ha = shost_priv(dev_to_shost(container_of(kobj,
++ struct device, kobj)));
++ struct els_request *request = (struct els_request *) buf;
++ struct els_entry_24xx *els_iocb;
++ unsigned long flags;
++ uint16_t nextlid = 0;
++ fc_port_t *fcport;
++
++ count -= sizeof(request->header);
++
++ if (!IS_FWI2_CAPABLE(ha) ||
++ atomic_read(&ha->loop_state) != LOOP_READY)
++ goto els_error0;
++
++ if (count < sizeof(request->ct_iu)) {
++ DEBUG2(qla_printk(KERN_WARNING, ha,
++ "Passthru ELS buffer insufficient size %ld...\n", count));
++ goto els_error0;
++ }
++
++ if (ha->pass_thru_cmd_in_process || ha->pass_thru_cmd_result) {
++ DEBUG2(qla_printk(KERN_WARNING, ha,
++ "Passthru ELS request is already progress\n"));
++ goto els_error0;
++ }
++
++ fcport = qla2x00_find_port(ha, request->header.WWPN);
++ if (!fcport) {
++ DEBUG2(qla_printk(KERN_WARNING, ha,
++ "Passthru ELS request failed find port\n"));
++ goto els_error0;
++ }
++
++ if (qla2x00_fabric_login(ha, fcport, &nextlid)) {
++ DEBUG2(qla_printk(KERN_WARNING, ha,
++ "Passthru ELS request failed to login port %06X\n",
++ fcport->d_id.b24));
++ goto els_error0;
++ }
++
++ ha->pass_thru_cmd_in_process = 1;
++ spin_lock_irqsave(&ha->hardware_lock, flags);
++
++ els_iocb = (void *)qla2x00_req_pkt(ha);
++ if (els_iocb == NULL) {
++ DEBUG2(qla_printk(KERN_WARNING, ha,
++ "Passthru ELS request failed to get request packet\n"));
++ goto els_error1;
++ }
++
++ if (count > PAGE_SIZE) {
++ DEBUG2(qla_printk(KERN_INFO, ha,
++ "Passthru ELS request excessive size %ld...\n", count));
++ count = PAGE_SIZE;
++ }
++
++ memset(ha->pass_thru, 0, PAGE_SIZE);
++ memcpy(ha->pass_thru, &request->ct_iu, count);
++
++ els_iocb->entry_type = ELS_IOCB_TYPE;
++ els_iocb->entry_count = 1;
++ els_iocb->sys_define = 0;
++ els_iocb->entry_status = 0;
++ els_iocb->nport_handle = cpu_to_le16(fcport->loop_id);
++ els_iocb->tx_dsd_count = __constant_cpu_to_le16(1);
++ els_iocb->vp_index = ha->vp_idx;
++ els_iocb->sof_type = EST_SOFI3;
++ els_iocb->rx_dsd_count = __constant_cpu_to_le16(1);
++ els_iocb->opcode = 0;
++ els_iocb->port_id[0] = fcport->d_id.b.al_pa;
++ els_iocb->port_id[1] = fcport->d_id.b.area;
++ els_iocb->port_id[2] = fcport->d_id.b.domain;
++ els_iocb->control_flags = __constant_cpu_to_le16(0);
++ els_iocb->rx_byte_count = cpu_to_le32(PAGE_SIZE);
++ els_iocb->tx_byte_count = cpu_to_le32(count);
++ els_iocb->tx_address[0] = cpu_to_le32(LSD(ha->pass_thru_dma));
++ els_iocb->tx_address[1] = cpu_to_le32(MSD(ha->pass_thru_dma));
++ els_iocb->tx_len = els_iocb->tx_byte_count;
++ els_iocb->rx_address[0] = cpu_to_le32(LSD(ha->pass_thru_dma));
++ els_iocb->rx_address[1] = cpu_to_le32(MSD(ha->pass_thru_dma));
++ els_iocb->rx_len = els_iocb->rx_byte_count;
++
++ wmb();
++ qla2x00_isp_cmd(ha);
++
++ spin_unlock_irqrestore(&ha->hardware_lock, flags);
++ qla2x00_wait_for_passthru_completion(ha);
++
++ return count;
++
++els_error1:
++ ha->pass_thru_cmd_in_process = 0;
++ spin_unlock_irqrestore(&ha->hardware_lock, flags);
++els_error0:
++ DEBUG2(qla_printk(KERN_WARNING, ha,
++ "Passthru ELS failed on scsi(%ld)\n", ha->host_no));
++ return 0;
++}
++
++static struct bin_attribute sysfs_els_attr = {
++ .attr = {
++ .name = "els",
++ .mode = S_IRUSR | S_IWUSR,
++ .owner = THIS_MODULE,
++ },
++ .size = 0,
++ .read = qla2x00_sysfs_read_els,
++ .write = qla2x00_sysfs_write_els,
++};
++
++static ssize_t
++qla2x00_sysfs_read_ct(struct kobject *kobj, struct bin_attribute *bin_attr,
++ char *buf, loff_t off, size_t count)
++{
++ struct scsi_qla_host *ha = shost_priv(dev_to_shost(container_of(kobj,
++ struct device, kobj)));
++
++ if (!IS_FWI2_CAPABLE(ha))
++ return 0;
++
++ if (!ha->pass_thru_cmd_in_process || !ha->pass_thru_cmd_result) {
++ DEBUG2(qla_printk(KERN_WARNING, ha,
++ "Passthru CT response is not available.\n"));
++ return 0;
++ }
++
++ memcpy(buf, ha->pass_thru, count);
++
++ ha->pass_thru_cmd_result = 0;
++ ha->pass_thru_cmd_in_process = 0;
++
++ return count;
++}
++
++static ssize_t
++qla2x00_sysfs_write_ct(struct kobject *kobj, struct bin_attribute *bin_attr,
++ char *buf, loff_t off, size_t count)
++{
++ struct scsi_qla_host *ha = shost_priv(dev_to_shost(container_of(kobj,
++ struct device, kobj)));
++ struct fc_ct_request *request = (struct fc_ct_request *) buf;
++ struct ct_entry_24xx *ct_iocb;
++ unsigned long flags;
++
++ if (!IS_FWI2_CAPABLE(ha) ||
++ atomic_read(&ha->loop_state) != LOOP_READY)
++ goto ct_error0;
++
++ if (count < sizeof(request->ct_iu)) {
++ DEBUG2(qla_printk(KERN_WARNING, ha,
++ "Passthru CT buffer insufficient size %ld...\n", count));
++ goto ct_error0;
++ }
++
++ if (ha->pass_thru_cmd_in_process || ha->pass_thru_cmd_result) {
++ DEBUG2(qla_printk(KERN_WARNING, ha,
++ "Passthru CT request is already progress\n"));
++ goto ct_error0;
++ }
++
++ if (qla2x00_mgmt_svr_login(ha)) {
++ DEBUG2(qla_printk(KERN_WARNING, ha,
++ "Passthru CT request failed to login management server\n"));
++ goto ct_error0;
++ }
++
++ ha->pass_thru_cmd_in_process = 1;
++ spin_lock_irqsave(&ha->hardware_lock, flags);
++
++ ct_iocb = (void *)qla2x00_req_pkt(ha);
++ if (ct_iocb == NULL) {
++ DEBUG2(qla_printk(KERN_WARNING, ha,
++ "Passthru CT request failed to get request packet\n"));
++ goto ct_error1;
++ }
++
++ if (count > PAGE_SIZE) {
++ DEBUG2(qla_printk(KERN_INFO, ha,
++ "Passthru CT request excessive size %ld...\n", count));
++ count = PAGE_SIZE;
++ }
++
++ memset(ha->pass_thru, 0, PAGE_SIZE);
++ memcpy(ha->pass_thru, &request->ct_iu, count);
++
++ ct_iocb->entry_type = CT_IOCB_TYPE;
++ ct_iocb->entry_count = 1;
++ ct_iocb->entry_status = 0;
++ ct_iocb->comp_status = __constant_cpu_to_le16(0);
++ ct_iocb->nport_handle = cpu_to_le16(ha->mgmt_svr_loop_id);
++ ct_iocb->cmd_dsd_count = __constant_cpu_to_le16(1);
++ ct_iocb->vp_index = ha->vp_idx;
++ ct_iocb->timeout = __constant_cpu_to_le16(25);
++ ct_iocb->rsp_dsd_count = __constant_cpu_to_le16(1);
++ ct_iocb->rsp_byte_count = cpu_to_le32(PAGE_SIZE);
++ ct_iocb->cmd_byte_count = cpu_to_le32(count);
++ ct_iocb->dseg_0_address[0] = cpu_to_le32(LSD(ha->pass_thru_dma));
++ ct_iocb->dseg_0_address[1] = cpu_to_le32(MSD(ha->pass_thru_dma));
++ ct_iocb->dseg_0_len = ct_iocb->cmd_byte_count;
++ ct_iocb->dseg_1_address[0] = cpu_to_le32(LSD(ha->pass_thru_dma));
++ ct_iocb->dseg_1_address[1] = cpu_to_le32(MSD(ha->pass_thru_dma));
++ ct_iocb->dseg_1_len = ct_iocb->rsp_byte_count;
++
++ wmb();
++ qla2x00_isp_cmd(ha);
++
++ spin_unlock_irqrestore(&ha->hardware_lock, flags);
++ qla2x00_wait_for_passthru_completion(ha);
++
++ return count;
++
++ct_error1:
++ ha->pass_thru_cmd_in_process = 0;
++ spin_unlock_irqrestore(&ha->hardware_lock, flags);
++ct_error0:
++ DEBUG2(qla_printk(KERN_WARNING, ha,
++ "Passthru CT failed on scsi(%ld)\n", ha->host_no));
++ return 0;
++}
++
++static struct bin_attribute sysfs_ct_attr = {
++ .attr = {
++ .name = "ct",
++ .mode = S_IRUSR | S_IWUSR,
++ .owner = THIS_MODULE,
++ },
++ .size = 0,
++ .read = qla2x00_sysfs_read_ct,
++ .write = qla2x00_sysfs_write_ct,
++};
++
+ static struct sysfs_entry {
+ char *name;
+ struct bin_attribute *attr;
+@@ -465,6 +746,8 @@ static struct sysfs_entry {
+ { "optrom_ctl", &sysfs_optrom_ctl_attr, },
+ { "vpd", &sysfs_vpd_attr, 1 },
+ { "sfp", &sysfs_sfp_attr, 1 },
++ { "els", &sysfs_els_attr, 1 },
++ { "ct", &sysfs_ct_attr, 1 },
+ { NULL },
+ };
+
+@@ -797,6 +1080,27 @@ qla2x00_total_isp_aborts_show(struct device *dev,
+ ha->qla_stats.total_isp_aborts);
+ }
+
++static ssize_t
++qla24xx_84xx_fw_version_show(struct device *dev,
++ struct device_attribute *attr, char *buf)
++{
++ int rval = QLA_SUCCESS;
++ uint16_t status[2] = {0, 0};
++ scsi_qla_host_t *ha = shost_priv(class_to_shost(dev));
++
++ if (IS_QLA84XX(ha) && ha->cs84xx) {
++ if (ha->cs84xx->op_fw_version == 0) {
++ rval = qla84xx_verify_chip(ha, status);
++ }
++
++ if ((rval == QLA_SUCCESS) && (status[0] == 0))
++ return snprintf(buf, PAGE_SIZE, "%u\n",
++ (uint32_t)ha->cs84xx->op_fw_version);
++ }
++
++ return snprintf(buf, PAGE_SIZE, "\n");
++}
++
+ static DEVICE_ATTR(driver_version, S_IRUGO, qla2x00_drvr_version_show, NULL);
+ static DEVICE_ATTR(fw_version, S_IRUGO, qla2x00_fw_version_show, NULL);
+ static DEVICE_ATTR(serial_num, S_IRUGO, qla2x00_serial_num_show, NULL);
+@@ -821,6 +1125,8 @@ static DEVICE_ATTR(optrom_fw_version, S_IRUGO, qla2x00_optrom_fw_version_show,
+ NULL);
+ static DEVICE_ATTR(total_isp_aborts, S_IRUGO, qla2x00_total_isp_aborts_show,
+ NULL);
++static DEVICE_ATTR(84xx_fw_version, S_IRUGO, qla24xx_84xx_fw_version_show,
++ NULL);
+
+ struct device_attribute *qla2x00_host_attrs[] = {
+ &dev_attr_driver_version,
+@@ -840,6 +1146,7 @@ struct device_attribute *qla2x00_host_attrs[] = {
+ &dev_attr_optrom_fcode_version,
+ &dev_attr_optrom_fw_version,
+ &dev_attr_total_isp_aborts,
++ &dev_attr_84xx_fw_version,
+ NULL,
+ };
+
+diff --git a/drivers/scsi/qla2xxx/qla_def.h b/drivers/scsi/qla2xxx/qla_def.h
+index a45e333..851dc96 100644
+--- a/drivers/scsi/qla2xxx/qla_def.h
++++ b/drivers/scsi/qla2xxx/qla_def.h
+@@ -94,6 +94,89 @@
+ #define LSD(x) ((uint32_t)((uint64_t)(x)))
+ #define MSD(x) ((uint32_t)((((uint64_t)(x)) >> 16) >> 16))
+
++/* ELS PT request buffer = 32 bytes */
++#define EXT_ELS_PT_REQ_WWPN_VALID 0x1
++#define EXT_ELS_PT_REQ_WWNN_VALID 0x2
++#define EXT_ELS_PT_REQ_PID_VALID 0x4
++
++struct ext_els_pt_req {
++ uint8_t WWNN[8];
++ uint8_t WWPN[8];
++ uint8_t Id[4];
++ uint16_t ValidMask;
++ uint16_t Lid;
++ uint16_t Rxid;
++ uint16_t AccRjt;
++ uint32_t Reserved;
++};
++
++/* CT IU */
++struct ct_iu {
++ uint8_t revision;
++ uint8_t in_id[3];
++ uint8_t gs_type;
++ uint8_t gs_subtype;
++ uint8_t options;
++ uint8_t reserved0;
++ uint16_t command;
++ uint16_t max_rsp_size;
++ uint8_t fragment_id;
++ uint8_t reserved1[3];
++};
++
++/* CT request format */
++struct fc_ct_request {
++ struct ct_iu ct_iu;
++ union {
++ struct {
++ uint8_t reserved;
++ uint8_t port_id[3];
++ } port_id;
++
++ struct {
++ uint8_t port_type;
++ uint8_t domain;
++ uint8_t area;
++ uint8_t reserved;
++ } gid_pt;
++
++ struct {
++ uint8_t reserved;
++ uint8_t port_id[3];
++ uint8_t fc4_types[32];
++ } rft_id;
++
++ struct {
++ uint8_t reserved;
++ uint8_t port_id[3];
++ uint16_t reserved2;
++ uint8_t fc4_feature;
++ uint8_t fc4_type;
++ } rff_id;
++
++ struct {
++ uint8_t reserved;
++ uint8_t port_id[3];
++ uint8_t node_name[8];
++ } rnn_id;
++
++ struct {
++ uint8_t node_name[8];
++ uint8_t name_len;
++ uint8_t sym_node_name[255];
++ } rsnn_nn;
++
++ struct {
++ uint8_t hba_indentifier[8];
++ } ghat;
++ } extended;
++};
++
++/* ELS request format */
++struct els_request {
++ struct ext_els_pt_req header;
++ struct ct_iu ct_iu;
++};
+
+ /*
+ * I/O register
+@@ -2161,6 +2244,14 @@ struct qla_statistics {
+ uint64_t output_bytes;
+ };
+
++#include "qla_nlnk.h"
++/* place holder for fw buffer parameters for netlink */
++struct qlfc_fw {
++ void *fw_buf;
++ dma_addr_t fw_dma;
++ uint32_t len;
++};
++
+ /*
+ * Linux Host Adapter structure
+ */
+@@ -2426,6 +2517,8 @@ typedef struct scsi_qla_host {
+ /* SNS command interfaces for 2200. */
+ struct sns_cmd_pkt *sns_cmd;
+ dma_addr_t sns_cmd_dma;
++ char *pass_thru;
++ dma_addr_t pass_thru_dma;
+
+ #define SFP_DEV_SIZE 256
+ #define SFP_BLOCK_SIZE 64
+@@ -2467,6 +2560,7 @@ typedef struct scsi_qla_host {
+ struct mutex vport_lock; /* Virtual port synchronization */
+ struct completion mbx_cmd_comp; /* Serialize mbx access */
+ struct completion mbx_intr_comp; /* Used for completion notification */
++ struct completion pass_thru_intr_comp; /* For pass thru notification */
+
+ uint32_t mbx_flags;
+ #define MBX_IN_PROGRESS BIT_0
+@@ -2608,8 +2702,13 @@ typedef struct scsi_qla_host {
+ uint16_t max_npiv_vports; /* 63 or 125 per topoloty */
+ int cur_vport_count;
+
++ /* pass throuth support */
++ int pass_thru_cmd_result;
++ int pass_thru_cmd_in_process;
++
+ struct qla_chip_state_84xx *cs84xx;
+ struct qla_statistics qla_stats;
++ struct qlfc_fw fw_buf;
+ } scsi_qla_host_t;
+
+
+diff --git a/drivers/scsi/qla2xxx/qla_fw.h b/drivers/scsi/qla2xxx/qla_fw.h
+index d1d1420..0ccf534 100644
+--- a/drivers/scsi/qla2xxx/qla_fw.h
++++ b/drivers/scsi/qla2xxx/qla_fw.h
+@@ -1212,9 +1212,10 @@ struct qla_fdt_layout {
+
+ struct qla_flt_location {
+ uint8_t sig[4];
+- uint32_t start_lo;
+- uint32_t start_hi;
+- uint16_t unused;
++ uint16_t start_lo;
++ uint16_t start_hi;
++ uint8_t version;
++ uint8_t unused[5];
+ uint16_t checksum;
+ };
+
+diff --git a/drivers/scsi/qla2xxx/qla_gbl.h b/drivers/scsi/qla2xxx/qla_gbl.h
+index 753dbe6..de1efc6 100644
+--- a/drivers/scsi/qla2xxx/qla_gbl.h
++++ b/drivers/scsi/qla2xxx/qla_gbl.h
+@@ -121,6 +121,8 @@ extern int qla2x00_start_scsi(srb_t *sp);
+ extern int qla24xx_start_scsi(srb_t *sp);
+ int qla2x00_marker(scsi_qla_host_t *, uint16_t, uint16_t, uint8_t);
+ int __qla2x00_marker(scsi_qla_host_t *, uint16_t, uint16_t, uint8_t);
++extern request_t *qla2x00_req_pkt(scsi_qla_host_t *);
++extern void qla2x00_isp_cmd(scsi_qla_host_t *ha);
+
+ /*
+ * Global Function Prototypes in qla_mbx.c source file.
+@@ -154,6 +156,10 @@ extern int
+ qla2x00_issue_iocb(scsi_qla_host_t *, void *, dma_addr_t, size_t);
+
+ extern int
++qla2x00_issue_iocb_timeout(scsi_qla_host_t *, void *, dma_addr_t, size_t,
++ uint32_t);
++
++extern int
+ qla2x00_abort_command(scsi_qla_host_t *, srb_t *);
+
+ extern int
+@@ -258,6 +264,8 @@ qla2x00_set_idma_speed(scsi_qla_host_t *, uint16_t, uint16_t, uint16_t *);
+
+ extern int qla84xx_verify_chip(struct scsi_qla_host *, uint16_t *);
+
++extern int qla84xx_reset(struct scsi_qla_host *, uint32_t);
++
+ /*
+ * Global Function Prototypes in qla_isr.c source file.
+ */
+@@ -327,6 +335,8 @@ extern void qla24xx_fw_dump(scsi_qla_host_t *, int);
+ extern void qla25xx_fw_dump(scsi_qla_host_t *, int);
+ extern void qla2x00_dump_regs(scsi_qla_host_t *);
+ extern void qla2x00_dump_buffer(uint8_t *, uint32_t);
++extern void qla2x00_print_byte_buf(void *, size_t, size_t);
++extern void qla2x00_print_word_buf(void *, size_t, size_t);
+
+ /*
+ * Global Function Prototypes in qla_gs.c source file.
+@@ -347,6 +357,7 @@ extern int qla2x00_fdmi_register(scsi_qla_host_t *);
+ extern int qla2x00_gfpn_id(scsi_qla_host_t *, sw_info_t *);
+ extern int qla2x00_gpsc(scsi_qla_host_t *, sw_info_t *);
+ extern void qla2x00_get_sym_node_name(scsi_qla_host_t *, uint8_t *);
++extern int qla2x00_mgmt_svr_login(scsi_qla_host_t *);
+
+ /*
+ * Global Function Prototypes in qla_attr.c source file.
+@@ -363,6 +374,13 @@ extern void qla2x00_alloc_sysfs_attr(scsi_qla_host_t *);
+ extern void qla2x00_free_sysfs_attr(scsi_qla_host_t *);
+
+ /*
++ * Global functions in qla_nlk.c
++ */
++extern int ql_nl_register(void);
++extern void ql_nl_unregister(void);
++extern void qla_free_nlnk_dmabuf(scsi_qla_host_t *);
++
++/*
+ * Global Function Prototypes in qla_dfs.c source file.
+ */
+ extern int qla2x00_dfs_setup(scsi_qla_host_t *);
+diff --git a/drivers/scsi/qla2xxx/qla_gs.c b/drivers/scsi/qla2xxx/qla_gs.c
+index c2a4bfb..ceef231 100644
+--- a/drivers/scsi/qla2xxx/qla_gs.c
++++ b/drivers/scsi/qla2xxx/qla_gs.c
+@@ -1093,7 +1093,7 @@ qla2x00_sns_rnn_id(scsi_qla_host_t *ha)
+ *
+ * Returns 0 on success.
+ */
+-static int
++int
+ qla2x00_mgmt_svr_login(scsi_qla_host_t *ha)
+ {
+ int ret;
+diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c
+index ad2dd8c..407e87a 100644
+--- a/drivers/scsi/qla2xxx/qla_init.c
++++ b/drivers/scsi/qla2xxx/qla_init.c
+@@ -1241,8 +1241,11 @@ qla2x00_init_rings(scsi_qla_host_t *ha)
+
+ DEBUG(printk("scsi(%ld): Issue init firmware.\n", ha->host_no));
+
+- if (ha->flags.npiv_supported)
++ if (ha->flags.npiv_supported) {
++ if (ha->operating_mode == LOOP)
++ ha->max_npiv_vports = MIN_MULTI_ID_FABRIC - 1;
+ mid_init_cb->count = cpu_to_le16(ha->max_npiv_vports);
++ }
+
+ mid_init_cb->options = __constant_cpu_to_le16(BIT_1);
+
+diff --git a/drivers/scsi/qla2xxx/qla_iocb.c b/drivers/scsi/qla2xxx/qla_iocb.c
+index 85bc0a4..352517d 100644
+--- a/drivers/scsi/qla2xxx/qla_iocb.c
++++ b/drivers/scsi/qla2xxx/qla_iocb.c
+@@ -11,8 +11,6 @@
+
+ #include
+
+-static request_t *qla2x00_req_pkt(scsi_qla_host_t *ha);
+-static void qla2x00_isp_cmd(scsi_qla_host_t *ha);
+
+ /**
+ * qla2x00_get_cmd_direction() - Determine control_flag data direction.
+@@ -476,7 +474,7 @@ qla2x00_marker(scsi_qla_host_t *ha, uint16_t loop_id, uint16_t lun,
+ *
+ * Returns NULL if function failed, else, a pointer to the request packet.
+ */
+-static request_t *
++request_t *
+ qla2x00_req_pkt(scsi_qla_host_t *ha)
+ {
+ device_reg_t __iomem *reg = ha->iobase;
+@@ -546,7 +544,7 @@ qla2x00_req_pkt(scsi_qla_host_t *ha)
+ *
+ * Note: The caller must hold the hardware lock before calling this routine.
+ */
+-static void
++void
+ qla2x00_isp_cmd(scsi_qla_host_t *ha)
+ {
+ device_reg_t __iomem *reg = ha->iobase;
+diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c
+index a76efd9..758d0ee 100644
+--- a/drivers/scsi/qla2xxx/qla_isr.c
++++ b/drivers/scsi/qla2xxx/qla_isr.c
+@@ -1443,6 +1443,27 @@ qla24xx_process_response_queue(struct scsi_qla_host *ha)
+ case STATUS_CONT_TYPE:
+ qla2x00_status_cont_entry(ha, (sts_cont_entry_t *)pkt);
+ break;
++ case MS_IOCB_TYPE:
++ if (ha->pass_thru_cmd_result)
++ DEBUG2(qla_printk(KERN_INFO, ha,
++ "Passthru cmd result on.\n"));
++ if (!ha->pass_thru_cmd_in_process)
++ DEBUG2(qla_printk(KERN_INFO, ha,
++ "Passthru in process off.\n"));
++
++ ha->pass_thru_cmd_result = 1;
++ complete(&ha->pass_thru_intr_comp);
++ break;
++ case ELS_IOCB_TYPE:
++ if (ha->pass_thru_cmd_result)
++ DEBUG2(qla_printk(KERN_INFO, ha,
++ "Passthru cmd result on.\n"));
++ if (!ha->pass_thru_cmd_in_process)
++ DEBUG2(qla_printk(KERN_INFO, ha,
++ "Passthru in process off.\n"));
++
++ ha->pass_thru_cmd_result = 1;
++ complete(&ha->pass_thru_intr_comp);
+ case VP_RPT_ID_IOCB_TYPE:
+ qla24xx_report_id_acquisition(ha,
+ (struct vp_rpt_id_entry_24xx *)pkt);
+diff --git a/drivers/scsi/qla2xxx/qla_mbx.c b/drivers/scsi/qla2xxx/qla_mbx.c
+index 3402746..9d78629 100644
+--- a/drivers/scsi/qla2xxx/qla_mbx.c
++++ b/drivers/scsi/qla2xxx/qla_mbx.c
+@@ -681,7 +681,7 @@ qla2x00_verify_checksum(scsi_qla_host_t *ha, uint32_t risc_addr)
+ * Context:
+ * Kernel context.
+ */
+-static int
++int
+ qla2x00_issue_iocb_timeout(scsi_qla_host_t *ha, void *buffer,
+ dma_addr_t phys_addr, size_t size, uint32_t tov)
+ {
+@@ -2946,6 +2946,33 @@ qla2x00_dump_ram(scsi_qla_host_t *ha, dma_addr_t req_dma, uint32_t addr,
+
+ /* 84XX Support **************************************************************/
+
++/*
++ * qla84xx_reset
++ * Resets the QLA8432
++ */
++int
++qla84xx_reset(struct scsi_qla_host *ha, uint32_t diag_fw)
++{
++ int rval;
++ mbx_cmd_t mc;
++ mbx_cmd_t *mcp = &mc;
++
++ mcp->mb[0] = MBC_ISP84XX_RESET;
++ mcp->mb[1] = diag_fw;
++ mcp->out_mb = MBX_1 | MBX_0;
++ mcp->in_mb = MBX_1 | MBX_0;
++ mcp->tov = MBX_TOV_SECONDS;
++ mcp->flags = 0;
++
++ rval = qla2x00_mailbox_command(ha, mcp);
++
++ if (rval != QLA_SUCCESS)
++ DEBUG2_16(printk("%s(%ld): failed mb[0]=0x%x mb[1]=0x%x\n",
++ __func__, ha->host_no, mcp->mb[0], mcp->mb[1]));
++
++ return (rval);
++}
++
+ struct cs84xx_mgmt_cmd {
+ union {
+ struct verify_chip_entry_84xx req;
+diff --git a/drivers/scsi/qla2xxx/qla_nlnk.c b/drivers/scsi/qla2xxx/qla_nlnk.c
+new file mode 100644
+index 0000000..2ab339d
+--- /dev/null
++++ b/drivers/scsi/qla2xxx/qla_nlnk.c
+@@ -0,0 +1,434 @@
++/*
++ * QLogic Fibre Channel HBA Driver
++ * Copyright (c) 2003-2005 QLogic Corporation
++ *
++ * See LICENSE.qla2xxx for copyright and licensing details.
++ */
++
++#include "qla_def.h"
++#include
++#include
++#include "qla_nlnk.h"
++
++static struct sock *ql_fc_nl_sock = NULL;
++static int ql_fc_nl_event(struct notifier_block *this,
++ unsigned long event, void *ptr);
++
++static struct notifier_block ql_fc_nl_notifier = {
++ .notifier_call = ql_fc_nl_event,
++};
++
++/*
++ * local functions
++ */
++static int ql_fc_proc_nl_rcv_msg(struct sk_buff *skb,
++ struct nlmsghdr *nlh, int rcvlen);
++static int ql_fc_nl_rsp(uint32_t pid, uint32_t seq, uint32_t type,
++ void *hdr, int hdr_len, void *payload, int size);
++
++static int qla84xx_update_fw(struct scsi_qla_host *ha, int rlen,
++ struct msg_update_fw *upd_fw)
++{
++ struct qlfc_fw *qlfw;
++ struct verify_chip_entry_84xx *mn;
++ dma_addr_t mn_dma;
++ int ret = 0;
++ uint32_t fw_ver;
++ uint16_t options;
++
++ if (rlen < (sizeof(struct msg_update_fw) + upd_fw->len +
++ offsetof(struct qla_fc_msg, u))){
++ DEBUG2_16(printk(KERN_ERR "%s(%lu): invalid len\n",
++ __func__, ha->host_no));
++ return -EINVAL;
++ }
++
++ qlfw = &ha->fw_buf;
++ if (!upd_fw->offset) {
++ if (qlfw->fw_buf || !upd_fw->fw_len ||
++ upd_fw->len > upd_fw->fw_len) {
++ DEBUG2_16(printk(KERN_ERR "%s(%lu): invalid offset or "
++ "fw_len\n", __func__, ha->host_no));
++ return -EINVAL;
++ } else {
++ qlfw->fw_buf = dma_alloc_coherent(&ha->pdev->dev,
++ upd_fw->fw_len, &qlfw->fw_dma,
++ GFP_KERNEL);
++ if (qlfw->fw_buf == NULL) {
++ DEBUG2_16(printk(KERN_ERR "%s: dma alloc "
++ "failed%lu\n", __func__, ha->host_no));
++ return (-ENOMEM);
++ }
++ qlfw->len = upd_fw->fw_len;
++ }
++ fw_ver = le32_to_cpu(*((uint32_t *)
++ ((uint32_t *)upd_fw->fw_bytes + 2)));
++ if (!fw_ver) {
++ DEBUG2_16(printk(KERN_ERR "%s(%lu): invalid fw "
++ "revision 0x%x\n", __func__, ha->host_no, fw_ver));
++ return -EINVAL;
++ }
++ } else {
++ /* make sure we have a buffer allocated */
++ if (!qlfw->fw_buf || upd_fw->fw_len != qlfw->len ||
++ ((upd_fw->offset + upd_fw->len) > upd_fw->fw_len)){
++ DEBUG2_16(printk(KERN_ERR "%s(%lu): invalid size of "
++ "offset=0 expected\n", __func__, ha->host_no));
++ return -EINVAL;
++ }
++ }
++ /* Copy the firmware into DMA Buffer */
++ memcpy(((uint8_t *)qlfw->fw_buf + upd_fw->offset),
++ upd_fw->fw_bytes, upd_fw->len);
++
++ if ((upd_fw->offset+upd_fw->len) != qlfw->len)
++ return 0;
++
++ mn = dma_pool_alloc(ha->s_dma_pool, GFP_KERNEL, &mn_dma);
++ if (mn == NULL) {
++ DEBUG2_16(printk(KERN_ERR "%s: dma alloc for fw buffer "
++ "failed%lu\n", __func__, ha->host_no));
++ return -ENOMEM;
++ }
++
++ fw_ver = le32_to_cpu(*((uint32_t *)((uint32_t *)qlfw->fw_buf + 2)));
++
++ /* Create iocb and issue it */
++ memset(mn, 0, sizeof(*mn));
++
++ mn->entry_type = VERIFY_CHIP_IOCB_TYPE;
++ mn->entry_count = 1;
++
++ options = VCO_FORCE_UPDATE | VCO_END_OF_DATA;
++ if (upd_fw->diag_fw)
++ options |= VCO_DIAG_FW;
++ mn->options = cpu_to_le16(options);
++
++ mn->fw_ver = cpu_to_le32(fw_ver);
++ mn->fw_size = cpu_to_le32(qlfw->len);
++ mn->fw_seq_size = cpu_to_le32(qlfw->len);
++
++ mn->dseg_address[0] = cpu_to_le32(LSD(qlfw->fw_dma));
++ mn->dseg_address[1] = cpu_to_le32(MSD(qlfw->fw_dma));
++ mn->dseg_length = cpu_to_le32(qlfw->len);
++ mn->data_seg_cnt = cpu_to_le16(1);
++
++ ret = qla2x00_issue_iocb_timeout(ha, mn, mn_dma, 0, 120);
++
++ if (ret != QLA_SUCCESS) {
++ DEBUG2_16(printk(KERN_ERR "%s(%lu): failed\n", __func__,
++ ha->host_no));
++ }
++
++ qla_free_nlnk_dmabuf(ha);
++ return ret;
++}
++
++static int
++qla84xx_mgmt_cmd(scsi_qla_host_t *ha, struct qla_fc_msg *cmd, int rlen,
++ uint32_t pid, uint32_t seq, uint32_t type)
++{
++ struct access_chip_84xx *mn;
++ dma_addr_t mn_dma, mgmt_dma;
++ void *mgmt_b = NULL;
++ int ret = 0;
++ int rsp_hdr_len, len = 0;
++ struct qla84_msg_mgmt *ql84_mgmt;
++
++ ql84_mgmt = &cmd->u.utok.mgmt;
++ rsp_hdr_len = offsetof(struct qla_fc_msg, u) +
++ offsetof(struct qla84_msg_mgmt, payload);
++
++ mn = dma_pool_alloc(ha->s_dma_pool, GFP_KERNEL, &mn_dma);
++ if (mn == NULL) {
++ DEBUG2_16(printk(KERN_ERR "%s: dma alloc for fw buffer "
++ "failed%lu\n", __FUNCTION__, ha->host_no));
++ return (-ENOMEM);
++ }
++
++ memset(mn, 0, sizeof (struct access_chip_84xx));
++
++ mn->entry_type = ACCESS_CHIP_IOCB_TYPE;
++ mn->entry_count = 1;
++
++ switch (ql84_mgmt->cmd) {
++ case QLA84_MGMT_READ_MEM:
++ mn->options = cpu_to_le16(ACO_DUMP_MEMORY);
++ mn->parameter1 = cpu_to_le32(ql84_mgmt->mgmtp.u.mem.start_addr);
++ break;
++ case QLA84_MGMT_WRITE_MEM:
++ if (rlen < (sizeof(struct qla84_msg_mgmt) + ql84_mgmt->len +
++ offsetof(struct qla_fc_msg, u))){
++ ret = -EINVAL;
++ goto exit_mgmt0;
++ }
++ mn->options = cpu_to_le16(ACO_LOAD_MEMORY);
++ mn->parameter1 = cpu_to_le32(ql84_mgmt->mgmtp.u.mem.start_addr);
++ break;
++ case QLA84_MGMT_CHNG_CONFIG:
++ mn->options = cpu_to_le16(ACO_CHANGE_CONFIG_PARAM);
++ mn->parameter1 = cpu_to_le32(ql84_mgmt->mgmtp.u.config.id);
++ mn->parameter2 = cpu_to_le32(ql84_mgmt->mgmtp.u.config.param0);
++ mn->parameter3 = cpu_to_le32(ql84_mgmt->mgmtp.u.config.param1);
++ break;
++ case QLA84_MGMT_GET_INFO:
++ mn->options = cpu_to_le16(ACO_REQUEST_INFO);
++ mn->parameter1 = cpu_to_le32(ql84_mgmt->mgmtp.u.info.type);
++ mn->parameter2 = cpu_to_le32(ql84_mgmt->mgmtp.u.info.context);
++ break;
++ default:
++ ret = -EIO;
++ goto exit_mgmt0;
++ }
++
++ if ((len = ql84_mgmt->len) && ql84_mgmt->cmd != QLA84_MGMT_CHNG_CONFIG) {
++ mgmt_b = dma_alloc_coherent(&ha->pdev->dev, len,
++ &mgmt_dma, GFP_KERNEL);
++ if (mgmt_b == NULL) {
++ DEBUG2_16(printk(KERN_ERR "%s: dma alloc mgmt_b "
++ "failed%lu\n", __func__, ha->host_no));
++ ret = -ENOMEM;
++ goto exit_mgmt0;
++ }
++ mn->total_byte_cnt = cpu_to_le32(ql84_mgmt->len);
++ mn->dseg_count = cpu_to_le16(1);
++ mn->dseg_address[0] = cpu_to_le32(LSD(mgmt_dma));
++ mn->dseg_address[1] = cpu_to_le32(MSD(mgmt_dma));
++ mn->dseg_length = cpu_to_le32(len);
++
++ if (ql84_mgmt->cmd == QLA84_MGMT_WRITE_MEM) {
++ memcpy(mgmt_b, ql84_mgmt->payload, len);
++ }
++ }
++
++ ret = qla2x00_issue_iocb(ha, mn, mn_dma, 0);
++ cmd->error = ret;
++
++ if ((ret != QLA_SUCCESS) ||
++ (ql84_mgmt->cmd == QLA84_MGMT_WRITE_MEM) ||
++ (ql84_mgmt->cmd == QLA84_MGMT_CHNG_CONFIG)) {
++ if (ret != QLA_SUCCESS)
++ DEBUG2_16(printk(KERN_ERR "%s(%lu): failed\n",
++ __func__, ha->host_no));
++ ret = ql_fc_nl_rsp(pid, seq, type, cmd, rsp_hdr_len, NULL, 0);
++ } else if ((ql84_mgmt->cmd == QLA84_MGMT_READ_MEM)||
++ (ql84_mgmt->cmd == QLA84_MGMT_GET_INFO)) {
++ ret = ql_fc_nl_rsp(pid, seq, type, cmd, rsp_hdr_len, mgmt_b, len);
++ }
++
++ if (mgmt_b)
++ dma_free_coherent(&ha->pdev->dev, len, mgmt_b, mgmt_dma);
++
++exit_mgmt0:
++ dma_pool_free(ha->s_dma_pool, mn, mn_dma);
++ return ret;
++}
++
++/*
++ * Netlink Interface Related Functions
++ */
++
++static void
++ql_fc_nl_rcv_msg(struct sk_buff *skb)
++{
++ struct nlmsghdr *nlh;
++ struct scsi_nl_hdr *snlh;
++ uint32_t rlen;
++ int err;
++
++ while (skb->len >= NLMSG_SPACE(0)) {
++ err = 0;
++
++ nlh = (struct nlmsghdr *) skb->data;
++
++ if ((nlh->nlmsg_len < (sizeof(*nlh) + sizeof(*snlh))) ||
++ (skb->len < nlh->nlmsg_len)) {
++ DEBUG2_16(printk(KERN_WARNING "%s: discarding partial "
++ "skb\n", __FUNCTION__));
++ break;
++ }
++
++ rlen = NLMSG_ALIGN(nlh->nlmsg_len);
++ if (rlen > skb->len) {
++ DEBUG2_16(printk(KERN_WARNING "%s: rlen > skb->len\n",
++ __FUNCTION__));
++ rlen = skb->len;
++ }
++
++ if (nlh->nlmsg_type != FC_TRANSPORT_MSG) {
++ DEBUG2_16(printk(KERN_WARNING "%s: Not "
++ "FC_TRANSPORT_MSG\n", __FUNCTION__));
++ err = -EBADMSG;
++ goto next_msg;
++ }
++
++ snlh = NLMSG_DATA(nlh);
++ if ((snlh->version != SCSI_NL_VERSION) ||
++ (snlh->magic != SCSI_NL_MAGIC)) {
++ DEBUG2_16(printk(KERN_WARNING "%s: Bad Version or "
++ "Magic number\n", __FUNCTION__));
++ err = -EPROTOTYPE;
++ goto next_msg;
++ }
++ err = ql_fc_proc_nl_rcv_msg(skb, nlh, rlen);
++next_msg:
++ if (err)
++ netlink_ack(skb, nlh, err);
++ skb_pull(skb, rlen);
++ }
++}
++
++static int
++ql_fc_proc_nl_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh, int rcvlen)
++{
++ struct scsi_nl_hdr *snlh;
++ struct qla_fc_msg *ql_cmd;
++ struct Scsi_Host *shost;
++ struct scsi_qla_host *ha;
++ int err = 0;
++ int rsp_hdr_len;
++
++ snlh = NLMSG_DATA(nlh);
++
++ /* Only vendor specific commands are supported */
++ if (!(snlh->msgtype & FC_NL_VNDR_SPECIFIC))
++ return -EBADMSG;
++
++ ql_cmd = (struct qla_fc_msg *)((char *)snlh + sizeof (struct scsi_nl_hdr));
++
++ if (ql_cmd->magic != QL_FC_NL_MAGIC)
++ return -EBADMSG;
++
++ shost = scsi_host_lookup(ql_cmd->host_no);
++ if (IS_ERR(shost)) {
++ DEBUG2_16(printk(KERN_ERR "%s: could not find host no %u\n",
++ __FUNCTION__, ql_cmd->host_no));
++ err = -ENODEV;
++ goto exit_proc_nl_rcv_msg;
++ }
++
++ ha = (struct scsi_qla_host *)shost->hostdata;
++
++ if (!ha || (!IS_QLA84XX(ha) && (ql_cmd->cmd != QLFC_GET_AEN))) {
++ DEBUG2_16(printk(KERN_ERR "%s: invalid host ha = %p dtype = "
++ "0x%x\n", __FUNCTION__, ha, (ha ? DT_MASK(ha): ~0)));
++ err = -ENODEV;
++ goto exit_proc_nl_rcv_msg;
++ }
++
++ switch (ql_cmd->cmd) {
++
++ case QLA84_RESET:
++
++ rsp_hdr_len = offsetof(struct qla_fc_msg, u);
++ err = qla84xx_reset(ha, ql_cmd->u.utok.qla84_reset.diag_fw);
++ ql_cmd->error = err;
++
++ err = ql_fc_nl_rsp(NETLINK_CREDS(skb)->pid, nlh->nlmsg_seq,
++ (uint32_t)nlh->nlmsg_type, ql_cmd, rsp_hdr_len, NULL, 0);
++ break;
++
++ case QLA84_UPDATE_FW:
++ rsp_hdr_len = offsetof(struct qla_fc_msg, u);
++ err = qla84xx_update_fw(ha, (rcvlen - sizeof(struct scsi_nl_hdr)),
++ &ql_cmd->u.utok.qla84_update_fw);
++ ql_cmd->error = err;
++
++ err = ql_fc_nl_rsp(NETLINK_CREDS(skb)->pid, nlh->nlmsg_seq,
++ (uint32_t)nlh->nlmsg_type, ql_cmd, rsp_hdr_len, NULL, 0);
++ break;
++
++ case QLA84_MGMT_CMD:
++ err = qla84xx_mgmt_cmd(ha, ql_cmd,
++ (rcvlen - sizeof(struct scsi_nl_hdr)),
++ NETLINK_CREDS(skb)->pid,
++ nlh->nlmsg_seq, (uint32_t)nlh->nlmsg_type);
++ break;
++ default:
++ err = -EBADMSG;
++ }
++
++exit_proc_nl_rcv_msg:
++ return err;
++}
++
++static int
++ql_fc_nl_event(struct notifier_block *this, unsigned long event, void *ptr)
++{
++ DEBUG16(printk(KERN_WARNING "%s: event 0x%lx ptr = %p\n", __func__,
++ event, ptr));
++ return NOTIFY_DONE;
++}
++
++static int
++ql_fc_nl_rsp(uint32_t pid, uint32_t seq, uint32_t type, void *hdr, int hdr_len,
++ void *payload, int size)
++{
++ struct sk_buff *skb;
++ struct nlmsghdr *nlh;
++ int rc;
++ int len = NLMSG_SPACE(size + hdr_len);
++
++ skb = alloc_skb(len, GFP_ATOMIC);
++ if (!skb) {
++ DEBUG2_16(printk(KERN_ERR "%s: Could not alloc skb\n",
++ __func__));
++ return -ENOMEM;
++ }
++ nlh = __nlmsg_put(skb, pid, seq, type, (len - sizeof(*nlh)), 0);
++ nlh->nlmsg_flags = 0;
++ memcpy(NLMSG_DATA(nlh), hdr, hdr_len);
++
++ if (payload)
++ memcpy((void *)((char *)(NLMSG_DATA(nlh)) + hdr_len), payload, size);
++
++ rc = netlink_unicast(ql_fc_nl_sock, skb, pid, MSG_DONTWAIT);
++ if (rc < 0) {
++ DEBUG2_16(printk(KERN_ERR "%s: netlink_unicast failed\n",
++ __func__));
++ return rc;
++ }
++ return 0;
++}
++
++void qla_free_nlnk_dmabuf(scsi_qla_host_t *ha)
++{
++ struct qlfc_fw *qlfw;
++
++ qlfw = &ha->fw_buf;
++
++ if (qlfw->fw_buf) {
++ dma_free_coherent(&ha->pdev->dev, qlfw->len, qlfw->fw_buf,
++ qlfw->fw_dma);
++ memset(qlfw, 0, sizeof(struct qlfc_fw));
++ }
++}
++
++int
++ql_nl_register(void)
++{
++ int error = 0;
++
++ error = netlink_register_notifier(&ql_fc_nl_notifier);
++ if (!error) {
++
++ ql_fc_nl_sock = netlink_kernel_create(&init_net,
++ NETLINK_FCTRANSPORT, QL_FC_NL_GROUP_CNT, ql_fc_nl_rcv_msg,
++ NULL, THIS_MODULE);
++
++ if (!ql_fc_nl_sock) {
++ netlink_unregister_notifier(&ql_fc_nl_notifier);
++ error = -ENODEV;
++ }
++ }
++ return (error);
++}
++
++void
++ql_nl_unregister()
++{
++ if (ql_fc_nl_sock) {
++ sock_release(ql_fc_nl_sock->sk_socket);
++ netlink_unregister_notifier(&ql_fc_nl_notifier);
++ }
++}
+diff --git a/drivers/scsi/qla2xxx/qla_nlnk.h b/drivers/scsi/qla2xxx/qla_nlnk.h
+new file mode 100644
+index 0000000..d1488a6
+--- /dev/null
++++ b/drivers/scsi/qla2xxx/qla_nlnk.h
+@@ -0,0 +1,168 @@
++/*
++ * QLogic Fibre Channel HBA Driver
++ * Copyright (c) 2003-2005 QLogic Corporation
++ *
++ * See LICENSE.qla2xxx for copyright and licensing details.
++ */
++#ifndef _QLA_NLNK_H_
++#define _QLA_NLNK_H_
++
++#ifndef NETLINK_FCTRANSPORT
++#define NETLINK_FCTRANSPORT 20
++#endif
++#define QL_FC_NL_GROUP_CNT 0
++
++#define FC_TRANSPORT_MSG NLMSG_MIN_TYPE + 1
++
++/*
++ * Transport Message Types
++ */
++#define FC_NL_VNDR_SPECIFIC 0x8000
++
++/*
++ * Structures
++ */
++
++struct qla84_mgmt_param {
++ union {
++ struct {
++ uint32_t start_addr;
++ } mem; /* for QLA84_MGMT_READ/WRITE_MEM */
++ struct {
++ uint32_t id;
++#define QLA84_MGMT_CONFIG_ID_UIF 1
++#define QLA84_MGMT_CONFIG_ID_FCOE_COS 2
++#define QLA84_MGMT_CONFIG_ID_PAUSE 3
++#define QLA84_MGMT_CONFIG_ID_TIMEOUTS 4
++
++ uint32_t param0;
++ uint32_t param1;
++ } config; /* for QLA84_MGMT_CHNG_CONFIG */
++
++ struct {
++ uint32_t type;
++#define QLA84_MGMT_INFO_CONFIG_LOG_DATA 1 /* Get Config Log Data */
++#define QLA84_MGMT_INFO_LOG_DATA 2 /* Get Log Data */
++#define QLA84_MGMT_INFO_PORT_STAT 3 /* Get Port Statistics */
++#define QLA84_MGMT_INFO_LIF_STAT 4 /* Get LIF Statistics */
++#define QLA84_MGMT_INFO_ASIC_STAT 5 /* Get ASIC Statistics */
++#define QLA84_MGMT_INFO_CONFIG_PARAMS 6 /* Get Config Parameters */
++#define QLA84_MGMT_INFO_PANIC_LOG 7 /* Get Panic Log */
++
++ uint32_t context;
++/*
++ * context definitions for QLA84_MGMT_INFO_CONFIG_LOG_DATA
++ */
++#define IC_LOG_DATA_LOG_ID_DEBUG_LOG 0
++#define IC_LOG_DATA_LOG_ID_LEARN_LOG 1
++#define IC_LOG_DATA_LOG_ID_FC_ACL_INGRESS_LOG 2
++#define IC_LOG_DATA_LOG_ID_FC_ACL_EGRESS_LOG 3
++#define IC_LOG_DATA_LOG_ID_ETHERNET_ACL_INGRESS_LOG 4
++#define IC_LOG_DATA_LOG_ID_ETHERNET_ACL_EGRESS_LOG 5
++#define IC_LOG_DATA_LOG_ID_MESSAGE_TRANSMIT_LOG 6
++#define IC_LOG_DATA_LOG_ID_MESSAGE_RECEIVE_LOG 7
++#define IC_LOG_DATA_LOG_ID_LINK_EVENT_LOG 8
++#define IC_LOG_DATA_LOG_ID_DCX_LOG 9
++
++/*
++ * context definitions for QLA84_MGMT_INFO_PORT_STAT
++ */
++#define IC_PORT_STATISTICS_PORT_NUMBER_ETHERNET_PORT0 0
++#define IC_PORT_STATISTICS_PORT_NUMBER_ETHERNET_PORT1 1
++#define IC_PORT_STATISTICS_PORT_NUMBER_NSL_PORT0 2
++#define IC_PORT_STATISTICS_PORT_NUMBER_NSL_PORT1 3
++#define IC_PORT_STATISTICS_PORT_NUMBER_FC_PORT0 4
++#define IC_PORT_STATISTICS_PORT_NUMBER_FC_PORT1 5
++
++
++/*
++ * context definitions for QLA84_MGMT_INFO_LIF_STAT
++ */
++#define IC_LIF_STATISTICS_LIF_NUMBER_ETHERNET_PORT0 0
++#define IC_LIF_STATISTICS_LIF_NUMBER_ETHERNET_PORT1 1
++#define IC_LIF_STATISTICS_LIF_NUMBER_FC_PORT0 2
++#define IC_LIF_STATISTICS_LIF_NUMBER_FC_PORT1 3
++#define IC_LIF_STATISTICS_LIF_NUMBER_CPU 6
++
++ } info; /* for QLA84_MGMT_GET_INFO */
++ } u;
++};
++
++#define QLFC_MAX_AEN 256
++struct qlfc_aen_entry {
++ uint16_t event_code;
++ uint16_t payload[3];
++};
++
++struct qlfc_aen_log {
++ uint32_t num_events;
++ struct qlfc_aen_entry aen[QLFC_MAX_AEN];
++};
++
++struct qla84_msg_mgmt {
++ uint16_t cmd;
++#define QLA84_MGMT_READ_MEM 0x00
++#define QLA84_MGMT_WRITE_MEM 0x01
++#define QLA84_MGMT_CHNG_CONFIG 0x02
++#define QLA84_MGMT_GET_INFO 0x03
++ uint16_t rsrvd;
++ struct qla84_mgmt_param mgmtp;/* parameters for cmd */
++ uint32_t len; /* bytes in payload following this struct */
++ uint8_t payload[0]; /* payload for cmd */
++};
++
++struct msg_update_fw {
++ /*
++ * diag_fw = 0 operational fw
++ * otherwise diagnostic fw
++ * offset, len, fw_len are present to overcome the current limitation
++ * of 128Kb xfer size. The fw is sent in smaller chunks. Each chunk
++ * specifies the byte "offset" where it fits in the fw buffer. The
++ * number of bytes in each chunk is specified in "len". "fw_len"
++ * is the total size of fw. The first chunk should start at offset = 0.
++ * When offset+len == fw_len, the fw is written to the HBA.
++ */
++ uint32_t diag_fw;
++ uint32_t offset;/* start offset */
++ uint32_t len; /* num bytes in cur xfer */
++ uint32_t fw_len; /* size of fw in bytes */
++ uint8_t fw_bytes[0];
++};
++
++struct qla_fc_msg {
++
++ uint64_t magic;
++#define QL_FC_NL_MAGIC 0x107784DDFCAB1FC1
++ uint16_t host_no;
++ uint16_t vmsg_datalen;
++
++ uint32_t cmd;
++#define QLA84_RESET 0x01
++#define QLA84_UPDATE_FW 0x02
++#define QLA84_MGMT_CMD 0x03
++#define QLFC_GET_AEN 0x04
++
++ uint32_t error; /* interface or resource error holder*/
++
++ union {
++ union {
++ struct msg_reset {
++ /*
++ * diag_fw = 0 for operational fw
++ * otherwise diagnostic fw
++ */
++ uint32_t diag_fw;
++ } qla84_reset;
++
++ struct msg_update_fw qla84_update_fw;
++ struct qla84_msg_mgmt mgmt;
++ } utok;
++
++ union {
++ struct qla84_msg_mgmt mgmt;
++ struct qlfc_aen_log aen_log;
++ } ktou;
++ } u;
++} __attribute__ ((aligned (sizeof(uint64_t))));
++
++#endif /* _QLA_NLNK_H_ */
+diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
+index 4774acb..70d03a8 100644
+--- a/drivers/scsi/qla2xxx/qla_os.c
++++ b/drivers/scsi/qla2xxx/qla_os.c
+@@ -1670,6 +1670,7 @@ qla2x00_probe_one(struct pci_dev *pdev, const struct pci_device_id *id)
+ init_completion(&ha->mbx_cmd_comp);
+ complete(&ha->mbx_cmd_comp);
+ init_completion(&ha->mbx_intr_comp);
++ init_completion(&ha->pass_thru_intr_comp);
+
+ INIT_LIST_HEAD(&ha->list);
+ INIT_LIST_HEAD(&ha->fcports);
+@@ -1790,6 +1791,8 @@ qla2x00_remove_one(struct pci_dev *pdev)
+
+ qla2x00_free_sysfs_attr(ha);
+
++ qla_free_nlnk_dmabuf(ha);
++
+ fc_remove_host(ha->host);
+
+ scsi_remove_host(ha->host);
+@@ -2020,10 +2023,19 @@ qla2x00_mem_alloc(scsi_qla_host_t *ha)
+ sizeof(struct ct_sns_pkt), &ha->ct_sns_dma, GFP_KERNEL);
+ if (!ha->ct_sns)
+ goto fail_free_ms_iocb;
++ /*Get consistent memory allocated for pass-thru commands */
++ ha->pass_thru = dma_alloc_coherent(&ha->pdev->dev,
++ PAGE_SIZE, &ha->pass_thru_dma, GFP_KERNEL);
++ if (!ha->pass_thru)
++ goto fail_free_ct_sns;
+ }
+
+ return 0;
+
++fail_free_ct_sns:
++ dma_pool_free(ha->s_dma_pool, ha->ct_sns, ha->ct_sns_dma);
++ ha->ct_sns = NULL;
++ ha->ct_sns_dma = 0;
+ fail_free_ms_iocb:
+ dma_pool_free(ha->s_dma_pool, ha->ms_iocb, ha->ms_iocb_dma);
+ ha->ms_iocb = NULL;
+@@ -2092,6 +2104,10 @@ qla2x00_mem_free(scsi_qla_host_t *ha)
+ dma_free_coherent(&ha->pdev->dev, sizeof(struct sns_cmd_pkt),
+ ha->sns_cmd, ha->sns_cmd_dma);
+
++ if (ha->pass_thru)
++ dma_free_coherent(&ha->pdev->dev, PAGE_SIZE,
++ ha->pass_thru, ha->pass_thru_dma);
++
+ if (ha->ct_sns)
+ dma_free_coherent(&ha->pdev->dev, sizeof(struct ct_sns_pkt),
+ ha->ct_sns, ha->ct_sns_dma);
+@@ -2130,6 +2146,8 @@ qla2x00_mem_free(scsi_qla_host_t *ha)
+ ha->sns_cmd_dma = 0;
+ ha->ct_sns = NULL;
+ ha->ct_sns_dma = 0;
++ ha->pass_thru = NULL;
++ ha->pass_thru_dma = 0;
+ ha->ms_iocb = NULL;
+ ha->ms_iocb_dma = 0;
+ ha->init_cb = NULL;
+@@ -2903,10 +2921,18 @@ qla2x00_module_init(void)
+ return -ENODEV;
+ }
+
++ if (ql_nl_register()) {
++ kmem_cache_destroy(srb_cachep);
++ fc_release_transport(qla2xxx_transport_template);
++ fc_release_transport(qla2xxx_transport_vport_template);
++ return -ENODEV;
++ }
++
+ printk(KERN_INFO "QLogic Fibre Channel HBA Driver: %s\n",
+ qla2x00_version_str);
+ ret = pci_register_driver(&qla2xxx_pci_driver);
+ if (ret) {
++ ql_nl_unregister();
+ kmem_cache_destroy(srb_cachep);
+ fc_release_transport(qla2xxx_transport_template);
+ fc_release_transport(qla2xxx_transport_vport_template);
+@@ -2922,6 +2948,7 @@ qla2x00_module_exit(void)
+ {
+ pci_unregister_driver(&qla2xxx_pci_driver);
+ qla2x00_release_firmware();
++ ql_nl_unregister();
+ kmem_cache_destroy(srb_cachep);
+ fc_release_transport(qla2xxx_transport_template);
+ fc_release_transport(qla2xxx_transport_vport_template);
+diff --git a/drivers/scsi/qla2xxx/qla_version.h b/drivers/scsi/qla2xxx/qla_version.h
+index eea6720..d88bb2c 100644
+--- a/drivers/scsi/qla2xxx/qla_version.h
++++ b/drivers/scsi/qla2xxx/qla_version.h
+@@ -7,7 +7,7 @@
+ /*
+ * Driver version
+ */
+-#define QLA2XXX_VERSION "8.02.01-k9"
++#define QLA2XXX_VERSION "8.02.01.02.11.0-k9"
+
+ #define QLA_DRIVER_MAJOR_VER 8
+ #define QLA_DRIVER_MINOR_VER 2
++++++ patches.fixes.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.fixes/af_unix-soft-lockup-fix.patch new/patches.fixes/af_unix-soft-lockup-fix.patch
--- old/patches.fixes/af_unix-soft-lockup-fix.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.fixes/af_unix-soft-lockup-fix.patch 2008-12-02 22:27:33.000000000 +0100
@@ -0,0 +1,108 @@
+Subject: net: Fix soft lockups/OOM issues w/ unix garbage collector
+From: dann frazier
+Patch-mainline: 2.6.28?
+References: bnc#449739 CVE-2008-5300
+Date: Wed Nov 26 15:32:27 2008 -0800
+
+This is an implementation of David Miller's suggested fix in:
+ https://bugzilla.redhat.com/show_bug.cgi?id=470201
+
+It has been updated to use wait_event() instead of
+wait_event_interruptible().
+
+Paraphrasing the description from the above report, it makes sendmsg()
+block while UNIX garbage collection is in progress. This avoids a
+situation where child processes continue to queue new FDs over a
+AF_UNIX socket to a parent which is in the exit path and running
+garbage collection on these FDs. This contention can result in soft
+lockups and oom-killing of unrelated processes.
+
+Signed-off-by: dann frazier
+Signed-off-by: David S. Miller
+Acked-by: Miklos Szeredi
+---
+ include/net/af_unix.h | 1 +
+ net/unix/af_unix.c | 2 ++
+ net/unix/garbage.c | 13 ++++++++++---
+ 3 files changed, 13 insertions(+), 3 deletions(-)
+
+Index: linux-2.6.25-SL110_BRANCH/include/net/af_unix.h
+===================================================================
+--- linux-2.6.25-SL110_BRANCH.orig/include/net/af_unix.h 2008-12-02 12:05:04.000000000 +0100
++++ linux-2.6.25-SL110_BRANCH/include/net/af_unix.h 2008-12-02 12:26:51.000000000 +0100
+@@ -9,6 +9,7 @@
+ extern void unix_inflight(struct file *fp);
+ extern void unix_notinflight(struct file *fp);
+ extern void unix_gc(void);
++extern void wait_for_unix_gc(void);
+
+ #define UNIX_HASH_SIZE 256
+
+Index: linux-2.6.25-SL110_BRANCH/net/unix/af_unix.c
+===================================================================
+--- linux-2.6.25-SL110_BRANCH.orig/net/unix/af_unix.c 2008-12-02 12:05:04.000000000 +0100
++++ linux-2.6.25-SL110_BRANCH/net/unix/af_unix.c 2008-12-02 12:26:51.000000000 +0100
+@@ -1326,6 +1326,7 @@ static int unix_dgram_sendmsg(struct kio
+
+ if (NULL == siocb->scm)
+ siocb->scm = &tmp_scm;
++ wait_for_unix_gc();
+ err = scm_send(sock, msg, siocb->scm);
+ if (err < 0)
+ return err;
+@@ -1475,6 +1476,7 @@ static int unix_stream_sendmsg(struct ki
+
+ if (NULL == siocb->scm)
+ siocb->scm = &tmp_scm;
++ wait_for_unix_gc();
+ err = scm_send(sock, msg, siocb->scm);
+ if (err < 0)
+ return err;
+Index: linux-2.6.25-SL110_BRANCH/net/unix/garbage.c
+===================================================================
+--- linux-2.6.25-SL110_BRANCH.orig/net/unix/garbage.c 2008-12-02 12:05:04.000000000 +0100
++++ linux-2.6.25-SL110_BRANCH/net/unix/garbage.c 2008-12-02 12:26:51.000000000 +0100
+@@ -80,6 +80,7 @@
+ #include
+ #include
+ #include
++#include
+
+ #include
+ #include
+@@ -91,6 +92,7 @@
+ static LIST_HEAD(gc_inflight_list);
+ static LIST_HEAD(gc_candidates);
+ static DEFINE_SPINLOCK(unix_gc_lock);
++static DECLARE_WAIT_QUEUE_HEAD(unix_gc_wait);
+
+ unsigned int unix_tot_inflight;
+
+@@ -257,12 +259,16 @@ static void inc_inflight_move_tail(struc
+ list_move_tail(&u->link, &gc_candidates);
+ }
+
+-/* The external entry point: unix_gc() */
++static bool gc_in_progress = false;
+
+-void unix_gc(void)
++void wait_for_unix_gc(void)
+ {
+- static bool gc_in_progress = false;
++ wait_event(unix_gc_wait, gc_in_progress == false);
++}
+
++/* The external entry point: unix_gc() */
++void unix_gc(void)
++{
+ struct unix_sock *u;
+ struct unix_sock *next;
+ struct sk_buff_head hitlist;
+@@ -351,6 +357,7 @@ void unix_gc(void)
+ /* All candidates should have been detached by now. */
+ BUG_ON(!list_empty(&gc_candidates));
+ gc_in_progress = false;
++ wake_up(&unix_gc_wait);
+
+ out:
+ spin_unlock(&unix_gc_lock);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.fixes/scsi-fixup-failfast-definitions new/patches.fixes/scsi-fixup-failfast-definitions
--- old/patches.fixes/scsi-fixup-failfast-definitions 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.fixes/scsi-fixup-failfast-definitions 2008-12-02 22:27:33.000000000 +0100
@@ -0,0 +1,28 @@
+From: James Smart
+Date: Thu, 20 Nov 2008 15:58:01 +0000 (-0500)
+Subject: fc_transport: fix old bug on bitflag definitions
+X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Fjejb%2Fscsi-rc-fixes-2.6.git...
+References: bnc#447814
+
+When the fastfail flag was added, it did not account for the flags
+being bit fields. Correct the definition so there is no longer a
+conflict.
+
+Signed-off-by: James Smart
+Signed-off-by: James Bottomley
+Signed-off-by: Hannes Reinecke
+---
+
+diff --git a/include/scsi/scsi_transport_fc.h b/include/scsi/scsi_transport_fc.h
+index 49d8913..6e04e6f 100644
+--- a/include/scsi/scsi_transport_fc.h
++++ b/include/scsi/scsi_transport_fc.h
+@@ -357,7 +357,7 @@ struct fc_rport { /* aka fc_starget_attrs */
+ /* bit field values for struct fc_rport "flags" field: */
+ #define FC_RPORT_DEVLOSS_PENDING 0x01
+ #define FC_RPORT_SCAN_PENDING 0x02
+-#define FC_RPORT_FAST_FAIL_TIMEDOUT 0x03
++#define FC_RPORT_FAST_FAIL_TIMEDOUT 0x04
+
+ #define dev_to_rport(d) \
+ container_of(d, struct fc_rport, dev)
++++++ patches.kernel.org.tar.bz2 ++++++
++++++ patches.rpmify.tar.bz2 ++++++
++++++ patches.rt.tar.bz2 ++++++
++++++ patches.suse.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.suse/novfs-clear-mappeddrives.patch new/patches.suse/novfs-clear-mappeddrives.patch
--- old/patches.suse/novfs-clear-mappeddrives.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.suse/novfs-clear-mappeddrives.patch 2008-12-02 22:27:33.000000000 +0100
@@ -0,0 +1,164 @@
+From: Goldwyn Rodrigues
+Subject: Unlink mapped drives on exit
+References: bnc#449451
+
+Mapped drives were not being unlinked properly because
+of ABI change in the kernel. Fixed local_unlink function
+to correctly unlink files.
+
+---
+ fs/novfs/daemon.c | 97 +++++++++++++++++++++++++++++++-----------------------
+ fs/novfs/nwcapi.c | 2 -
+ 2 files changed, 57 insertions(+), 42 deletions(-)
+
+Index: linux-2.6.27/fs/novfs/daemon.c
+===================================================================
+--- linux-2.6.27.orig/fs/novfs/daemon.c 2008-11-27 16:02:22.000000000 +0530
++++ linux-2.6.27/fs/novfs/daemon.c 2008-11-28 11:20:08.000000000 +0530
+@@ -15,6 +15,7 @@
+
+ #include
+ #include
++#include
+ #include
+ #include
+ #include
+@@ -96,7 +97,7 @@ static int NwdConvertNetwareHandle(struc
+ static int set_map_drive(struct novfs_xplat *pdata, struct novfs_schandle Session);
+ static int unmap_drive(struct novfs_xplat *pdata, struct novfs_schandle Session);
+ static int NwdGetMountPath(struct novfs_xplat *pdata);
+-static int local_unlink(const char *pathname);
++static long local_unlink(const char *pathname);
+
+
+ /*===[ Global variables ]=================================================*/
+@@ -1610,7 +1611,7 @@ int novfs_daemon_lib_ioctl(struct inode
+
+ case NWC_SET_CONN_INFO:
+ DbgPrint
+- ("[VFS XPLAT] Call NwGetConnInfo\n");
++ ("[VFS XPLAT] Call NwSetConnInfo\n");
+ retCode =
+ novfs_set_conn_info(&data, dh->session);
+ break;
+@@ -2061,54 +2062,68 @@ static void RemoveDriveMaps(void)
+ up(&DriveMapLock);
+ }
+
+-static int local_unlink(const char *pathname)
++/* As picked from do_unlinkat() */
++
++static long local_unlink(const char *pathname)
+ {
+ int error;
+ struct dentry *dentry;
++ char *name, *c;
+ struct nameidata nd;
+ struct inode *inode = NULL;
+
+- DbgPrint("local_unlink: %s\n", pathname);
+ error = path_lookup(pathname, LOOKUP_PARENT, &nd);
+- DbgPrint("local_unlink: path_lookup %d\n", error);
+- if (!error) {
+- error = -EISDIR;
+- if (nd.last_type == LAST_NORM) {
+- dentry = lookup_create(&nd, 1);
+- DbgPrint("local_unlink: lookup_hash 0x%p\n", dentry);
+-
+- error = PTR_ERR(dentry);
+- if (!IS_ERR(dentry)) {
+- if (nd.last.name[nd.last.len]) {
+- error =
+- !dentry->
+- d_inode ? -ENOENT : S_ISDIR(dentry->
+- d_inode->
+- i_mode)
+- ? -EISDIR : -ENOTDIR;
+- } else {
+- inode = dentry->d_inode;
+- if (inode) {
+- atomic_inc(&inode->i_count);
+- }
+- error = vfs_unlink(nd.path.dentry->d_inode, dentry, nd.path.mnt);
+- DbgPrint
+- ("local_unlink: vfs_unlink %d\n",
+- error);
+- }
+- dput(dentry);
+- }
+- mutex_unlock(&nd.path.dentry->d_inode->i_mutex);
+-
+- }
+- path_put(&nd.path);
++ DbgPrint("local_unlink: path_lookup %s error: %d\n", pathname, error);
++ if (error)
++ return error;
++
++ error = -EISDIR;
++ if (nd.last_type != LAST_NORM)
++ goto exit1;
++ mutex_lock(&nd.path.dentry->d_inode->i_mutex);
++ /* Get the filename of pathname */
++ name=c=(char *)pathname;
++ while (*c!='\0') {
++ if (*c=='/')
++ name=++c;
++ c++;
++ }
++ dentry = lookup_one_len(name, nd.path.dentry, strlen(name));
++ error = PTR_ERR(dentry);
++ DbgPrint("local_unlink: dentry %p\n", dentry);
++ if (!(dentry->d_inode->i_mode & S_IFLNK)) {
++ DbgPrint("local_unlink: %s not a link", name);
++ error=-ENOENT;
++ goto exit1;
++ }
++
++ if (!IS_ERR(dentry)) {
++ /* Why not before? Because we want correct error value */
++ if (nd.last.name[nd.last.len])
++ goto slashes;
++ inode = dentry->d_inode;
++ if (inode)
++ atomic_inc(&inode->i_count);
++ error = mnt_want_write(nd.path.mnt);
++ DbgPrint("local_unlink: inode %p mnt_want_write error %d\n", inode, error);
++ if (error)
++ goto exit2;
++ error = vfs_unlink(nd.path.dentry->d_inode, dentry, nd.path.mnt);
++ mnt_drop_write(nd.path.mnt);
++ exit2:
++ dput(dentry);
+ }
+-
+- if (inode) {
++ mutex_unlock(&nd.path.dentry->d_inode->i_mutex);
++ if (inode)
+ iput(inode); /* truncate the inode here */
+- }
+-
+- DbgPrint("local_unlink: error=%d\n", error);
++exit1:
++ path_put(&nd.path);
++ DbgPrint("local_unlink: returning error %d\n", error);
+ return error;
++
++slashes:
++ error = !dentry->d_inode ? -ENOENT :
++ S_ISDIR(dentry->d_inode->i_mode) ? -EISDIR : -ENOTDIR;
++ goto exit2;
+ }
+
+Index: linux-2.6.27/fs/novfs/nwcapi.c
+===================================================================
+--- linux-2.6.27.orig/fs/novfs/nwcapi.c 2008-11-27 16:02:22.000000000 +0530
++++ linux-2.6.27/fs/novfs/nwcapi.c 2008-11-28 11:02:15.000000000 +0530
+@@ -993,7 +993,7 @@ int novfs_scan_conn_info(struct novfs_xp
+ DbgPrint("NwScanConnInfo: Reply recieved\n");
+ DbgPrint(" NextIndex = %x\n", connInfo.uScanIndex);
+ DbgPrint(" ErrorCode = %x\n", reply->Reply.ErrorCode);
+- DbgPrint(" data = %x\n", reply->data);
++ DbgPrint(" data = %p\n", reply->data);
+
+ pDConnInfo = (struct nwd_scan_conn_info *) reply->data;
+ retCode = (unsigned long) reply->Reply.ErrorCode;
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.suse/novfs-map-drives-correctly.diff new/patches.suse/novfs-map-drives-correctly.diff
--- old/patches.suse/novfs-map-drives-correctly.diff 2008-11-21 14:22:11.000000000 +0100
+++ new/patches.suse/novfs-map-drives-correctly.diff 2008-12-02 22:27:33.000000000 +0100
@@ -11,29 +11,14 @@
---
- fs/novfs/daemon.c | 15 ++++++++-------
+ fs/novfs/daemon.c | 9 +++++----
fs/novfs/inode.c | 11 -----------
- 2 files changed, 8 insertions(+), 18 deletions(-)
+ 2 files changed, 5 insertions(+), 15 deletions(-)
Index: linux-2.6.27/fs/novfs/daemon.c
===================================================================
---- linux-2.6.27.orig/fs/novfs/daemon.c 2008-11-21 12:48:42.000000000 +0530
-+++ linux-2.6.27/fs/novfs/daemon.c 2008-11-21 12:52:23.000000000 +0530
-@@ -1914,11 +1914,11 @@ static int set_map_drive(struct novfs_xp
- struct drive_map *drivemap, *dm;
- struct list_head *list;
-
-- retVal = novfs_set_map_drive(pdata, Session);
-- if (retVal)
-- return retVal;
- if (copy_from_user(&symInfo, pdata->reqData, sizeof(symInfo)))
- return -EFAULT;
-+ retVal = novfs_set_map_drive(&symInfo, Session);
-+ if (retVal)
-+ return retVal;
- drivemap =
- kmalloc(sizeof(struct drive_map) + symInfo.linkOffsetLength,
- GFP_KERNEL);
+--- linux-2.6.27.orig/fs/novfs/daemon.c 2008-12-02 14:57:29.000000000 +0530
++++ linux-2.6.27/fs/novfs/daemon.c 2008-12-02 15:03:15.000000000 +0530
@@ -1936,7 +1936,7 @@ static int set_map_drive(struct novfs_xp
full_name_hash(drivemap->name,
symInfo.linkOffsetLength - 1);
@@ -66,8 +51,8 @@
}
Index: linux-2.6.27/fs/novfs/inode.c
===================================================================
---- linux-2.6.27.orig/fs/novfs/inode.c 2008-11-21 12:48:42.000000000 +0530
-+++ linux-2.6.27/fs/novfs/inode.c 2008-11-21 13:58:28.000000000 +0530
+--- linux-2.6.27.orig/fs/novfs/inode.c 2008-12-02 15:01:46.000000000 +0530
++++ linux-2.6.27/fs/novfs/inode.c 2008-12-02 15:01:52.000000000 +0530
@@ -4055,22 +4055,11 @@ int __init init_novfs(void)
void __exit exit_novfs(void)
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.suse/novfs-merge-changes.diff new/patches.suse/novfs-merge-changes.diff
--- old/patches.suse/novfs-merge-changes.diff 2008-11-20 01:31:48.000000000 +0100
+++ new/patches.suse/novfs-merge-changes.diff 2008-12-02 22:27:33.000000000 +0100
@@ -7,14 +7,14 @@
---
fs/novfs/file.c | 55 ++++++++++++++++++++---------------------
fs/novfs/inode.c | 71 ++++++++++++++++++++++++++++++++++++------------------
- fs/novfs/nwcapi.c | 19 ++++++--------
- fs/novfs/vfs.h | 5 ++-
- 4 files changed, 86 insertions(+), 64 deletions(-)
+ fs/novfs/nwcapi.c | 13 ++++++---
+ fs/novfs/vfs.h | 3 +-
+ 4 files changed, 85 insertions(+), 57 deletions(-)
-Index: linux-2.6.25/fs/novfs/file.c
+Index: linux-2.6.27/fs/novfs/file.c
===================================================================
---- linux-2.6.25.orig/fs/novfs/file.c 2008-11-13 11:56:09.000000000 +0530
-+++ linux-2.6.25/fs/novfs/file.c 2008-11-13 14:51:08.000000000 +0530
+--- linux-2.6.27.orig/fs/novfs/file.c 2008-12-02 11:57:24.000000000 +0530
++++ linux-2.6.27/fs/novfs/file.c 2008-12-02 11:58:18.000000000 +0530
@@ -405,7 +405,7 @@ int novfs_setx_file_info(char *Path, con
cmd->flags = flags;
@@ -103,10 +103,10 @@
return (retCode);
}
-Index: linux-2.6.25/fs/novfs/inode.c
+Index: linux-2.6.27/fs/novfs/inode.c
===================================================================
---- linux-2.6.25.orig/fs/novfs/inode.c 2008-11-13 11:56:09.000000000 +0530
-+++ linux-2.6.25/fs/novfs/inode.c 2008-11-13 15:12:13.000000000 +0530
+--- linux-2.6.27.orig/fs/novfs/inode.c 2008-12-02 11:57:24.000000000 +0530
++++ linux-2.6.27/fs/novfs/inode.c 2008-12-02 11:58:35.000000000 +0530
@@ -137,11 +137,11 @@ int novfs_i_revalidate(struct dentry *de
* Extended attributes operations
*/
@@ -282,10 +282,10 @@
kill_litter_super(super);
}
-Index: linux-2.6.25/fs/novfs/vfs.h
+Index: linux-2.6.27/fs/novfs/vfs.h
===================================================================
---- linux-2.6.25.orig/fs/novfs/vfs.h 2008-11-13 11:56:09.000000000 +0530
-+++ linux-2.6.25/fs/novfs/vfs.h 2008-11-14 11:04:04.000000000 +0530
+--- linux-2.6.27.orig/fs/novfs/vfs.h 2008-12-02 11:57:24.000000000 +0530
++++ linux-2.6.27/fs/novfs/vfs.h 2008-12-02 11:58:18.000000000 +0530
@@ -344,7 +344,8 @@ extern int novfs_close_stream(void * Con
struct novfs_schandle SessionId);
@@ -296,62 +296,38 @@
/*
* scope.c functions
-@@ -432,7 +433,7 @@ extern int novfs_set_pri_conn(struct nov
- struct novfs_schandle Session);
- extern int novfs_get_pri_conn(struct novfs_xplat *pdata,
- struct novfs_schandle Session);
--extern int novfs_set_map_drive(struct novfs_xplat *pdata,
-+extern int novfs_set_map_drive(struct nwc_map_drive_ex *,
- struct novfs_schandle Session);
- extern int novfs_unmap_drive(struct novfs_xplat *pdata,
- struct novfs_schandle Session);
-Index: linux-2.6.25/fs/novfs/nwcapi.c
+Index: linux-2.6.27/fs/novfs/nwcapi.c
===================================================================
---- linux-2.6.25.orig/fs/novfs/nwcapi.c 2008-11-14 12:34:28.000000000 +0530
-+++ linux-2.6.25/fs/novfs/nwcapi.c 2008-11-14 10:54:32.000000000 +0530
-@@ -1840,29 +1840,26 @@ int novfs_get_pri_conn(struct novfs_xpla
- return (status);
- }
-
--int novfs_set_map_drive(struct novfs_xplat *pdata, struct novfs_schandle Session)
-+int novfs_set_map_drive(struct nwc_map_drive_ex *symInfo, struct novfs_schandle Session)
- {
+--- linux-2.6.27.orig/fs/novfs/nwcapi.c 2008-12-02 11:57:24.000000000 +0530
++++ linux-2.6.27/fs/novfs/nwcapi.c 2008-12-02 11:58:18.000000000 +0530
+@@ -1845,14 +1845,14 @@ int novfs_set_map_drive(struct novfs_xpl
struct novfs_xplat_call_request *cmd;
struct novfs_xplat_call_reply *reply;
- unsigned long status = 0, datalen, cmdlen, replylen, cpylen;
-- struct nwc_map_drive_ex symInfo;
+ unsigned long status = 0, datalen, cmdlen, replylen;
+ struct nwc_map_drive_ex symInfo;
DbgPrint("Call to NwcSetMapDrive\n");
- cpylen = copy_from_user(&symInfo, pdata->reqData, sizeof(symInfo));
cmdlen = sizeof(*cmd);
- datalen =
+- datalen =
- sizeof(symInfo) + symInfo.dirPathOffsetLength +
-- symInfo.linkOffsetLength;
-+ sizeof(struct nwc_map_drive_ex ) + symInfo->dirPathOffsetLength +
-+ symInfo->linkOffsetLength;
++ if (copy_from_user(&symInfo, pdata->reqData, sizeof(symInfo)))
++ return -EFAULT;
++ datalen = sizeof(symInfo) + symInfo.dirPathOffsetLength +
+ symInfo.linkOffsetLength;
DbgPrint(" cmdlen = %d\n", cmdlen);
- DbgPrint(" dataLen = %d\n", datalen);
- DbgPrint(" symInfo.dirPathOffsetLength = %d\n",
-- symInfo.dirPathOffsetLength);
-- DbgPrint(" symInfo.linkOffsetLength = %d\n", symInfo.linkOffsetLength);
-- DbgPrint(" pdata->datalen = %d\n", pdata->reqLen);
-+ symInfo->dirPathOffsetLength);
-+ DbgPrint(" symInfo.linkOffsetLength = %d\n", symInfo->linkOffsetLength);
-
-- novfs_dump(sizeof(symInfo), &symInfo);
-+ novfs_dump(sizeof(struct nwc_map_drive_ex), symInfo);
-
- cmdlen += datalen;
-
-@@ -1876,7 +1873,7 @@ int novfs_set_map_drive(struct novfs_xpl
+@@ -1876,7 +1876,10 @@ int novfs_set_map_drive(struct novfs_xpl
cmd->Command.SessionId = Session;
cmd->NwcCommand = NWC_MAP_DRIVE;
- cpylen = copy_from_user(cmd->data, pdata->reqData, datalen);
-+ memcpy(cmd->data, symInfo, datalen);
++ if (copy_from_user(cmd->data, pdata->reqData, datalen)) {
++ kfree(cmd);
++ return -EFAULT;
++ }
status =
Queue_Daemon_Command((void *)cmd, cmdlen, NULL, 0,
(void **)&reply, &replylen,
++++++ patches.trace.tar.bz2 ++++++
++++++ patches.xen.tar.bz2 ++++++
++++++ series.conf ++++++
--- /var/tmp/diff_new_pack.b13669/_old 2008-12-03 16:30:36.000000000 +0100
+++ /var/tmp/diff_new_pack.b13669/_new 2008-12-03 16:30:36.000000000 +0100
@@ -353,6 +353,10 @@
patches.arch/s390-04-08-cio-ungroup-race-fix.patch
patches.arch/s390-04-09-zfcp-host-busy-count-fix.patch
+ patches.arch/s390-05-01-zfcp-message-linebreak.patch
+ patches.arch/s390-05-02-zfcp-invalid-non-null-return.patch
+ patches.arch/s390-05-03-zfcp-wka-port.patch
+
patches.arch/s390-symmetrix-ioctl.patch
patches.arch/s390-personality-mask.patch
@@ -725,6 +729,7 @@
patches.suse/novfs-patch-2.6.27
patches.suse/novfs-gregorian-day-fix
patches.suse/novfs-map-drives-correctly.diff
+ patches.suse/novfs-clear-mappeddrives.patch
########################################################
# other filesystem stuff
@@ -896,6 +901,7 @@
patches.drivers/lpfc-8.2.8.7-update
patches.drivers/qla2xxx-8.02.01-k8-update
patches.drivers/qla2xxx-8.02.01-k9-update
+ patches.drivers/qla2xxx-8.02.01.02.11.0-k9-update
patches.fixes/qla2xxx-disable-automatic-queue-tracking
patches.drivers/mpt-fusion-4.00.43.00-update
patches.drivers/mpt-fusion-4.16.00.00-update
@@ -911,6 +917,7 @@
patches.fixes/scsi-add-tgps-setting
patches.fixes/scsi-dh-alua-send-stpg
patches.fixes/scsi-dh-rdac-initialize-passive-path
+ patches.fixes/scsi-fixup-failfast-definitions
patches.drivers/ibmvfc-async-events-oops
@@ -933,6 +940,7 @@
patches.fixes/tulip-quad-NIC-ifdown
patches.suse/nameif-track-rename.patch
patches.drivers/atl2-add-atl2-network-driver.patch
+ patches.fixes/af_unix-soft-lockup-fix.patch
# cxgb3 fixed requested by IBM bnc#446739
++++++ supported.conf ++++++
--- /var/tmp/diff_new_pack.b13669/_old 2008-12-03 16:30:37.000000000 +0100
+++ /var/tmp/diff_new_pack.b13669/_new 2008-12-03 16:30:37.000000000 +0100
@@ -35,6 +35,7 @@
kernel/arch/s390/crypto/sha512_s390
kernel/arch/s390/crypto/sha_common
kernel/arch/s390/mm/cmm
+ kernel/arch/s390/kvm/kvm
kernel/arch/x86/crypto/aes-i586 # Rijndael (AES) Cipher Algorithm (optimized for i586)
kernel/arch/x86/crypto/aes-x86_64
kernel/arch/x86/crypto/salsa20-i586
@@ -1961,13 +1962,14 @@
kernel/fs/nls/nls_utf8
kernel/fs/novfs/novfs
kernel/fs/ntfs/ntfs # NTFS 1.2/3.x driver - Copyright (c) 2001-2003 Anton Altaparmakov
- kernel/fs/ocfs2/cluster/ocfs2_nodemanager
- kernel/fs/ocfs2/dlm/ocfs2_dlm
- kernel/fs/ocfs2/dlm/ocfs2_dlmfs
- kernel/fs/ocfs2/ocfs2
- kernel/fs/ocfs2/ocfs2_stack_o2cb
- kernel/fs/ocfs2/ocfs2_stack_user
- kernel/fs/ocfs2/ocfs2_stackglue
+# ocfs2 is provided separately in the ocfs2 KMP package
+- kernel/fs/ocfs2/cluster/ocfs2_nodemanager
+- kernel/fs/ocfs2/dlm/ocfs2_dlm
+- kernel/fs/ocfs2/dlm/ocfs2_dlmfs
+- kernel/fs/ocfs2/ocfs2
+- kernel/fs/ocfs2/ocfs2_stack_o2cb
+- kernel/fs/ocfs2/ocfs2_stack_user
+- kernel/fs/ocfs2/ocfs2_stackglue
kernel/fs/omfs/omfs
- kernel/fs/qnx4/qnx4
kernel/fs/quota_v1 # Old quota format support
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org