Hello community,

here is the log from the commit of package kernel-source for openSUSE:Factory 
checked in at 2017-03-10 20:53:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kernel-source (Old)
 and      /work/SRC/openSUSE:Factory/.kernel-source.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kernel-source"

Fri Mar 10 20:53:40 2017 rev:353 rq:477431 version:4.10.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/kernel-source/dtb-aarch64.changes        
2017-02-27 18:56:28.124706129 +0100
+++ /work/SRC/openSUSE:Factory/.kernel-source.new/dtb-aarch64.changes   
2017-03-10 20:53:43.333530872 +0100
@@ -1,0 +2,32 @@
+Tue Mar  7 10:29:19 CET 2017 - jdelv...@suse.de
+
+- Revert "drm/amdgpu: update tile table for oland/hainan"
+  (boo#1027378).
+- commit f764d42
+
+-------------------------------------------------------------------
+Mon Mar  6 09:05:39 CET 2017 - mkube...@suse.cz
+
+- bonding: use ETH_MAX_MTU as max mtu (bsc#1027798).
+- commit 2f8350b
+
+-------------------------------------------------------------------
+Thu Mar  2 14:05:23 CET 2017 - mkube...@suse.cz
+
+- Update patches.kernel.org/patch-4.10.1 references (add CVE-2017-6347 
bsc#1027179).
+- commit 8c10701
+
+-------------------------------------------------------------------
+Thu Mar  2 14:00:10 CET 2017 - mkube...@suse.cz
+
+- sctp: deny peeloff operation on asocs with threads sleeping
+  on it (CVE-2017-6353 bsc#1027066).
+- commit 8fb16bc
+
+-------------------------------------------------------------------
+Mon Feb 27 12:17:22 CET 2017 - jsl...@suse.cz
+
+- crypto: algif_hash - avoid zero-sized array (bnc#1007962).
+- commit 2f945d3
+
+-------------------------------------------------------------------
@@ -5,0 +38,7 @@
+
+-------------------------------------------------------------------
+Tue Feb 21 10:34:18 CET 2017 - ti...@suse.de
+
+- drm/i915/gvt: Fix superfluous newline in GVT_DISPLAY_READY
+  env var (bsc#1025903).
+- commit cac9478
dtb-armv6l.changes: same change
dtb-armv7l.changes: same change
kernel-64kb.changes: same change
kernel-debug.changes: same change
kernel-default.changes: same change
kernel-docs.changes: same change
kernel-lpae.changes: same change
kernel-obs-build.changes: same change
kernel-obs-qa.changes: same change
kernel-pae.changes: same change
kernel-source.changes: same change
kernel-syms.changes: same change
kernel-syzkaller.changes: same change
kernel-vanilla.changes: same change

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ dtb-aarch64.spec ++++++
--- /var/tmp/diff_new_pack.cBbsOD/_old  2017-03-10 20:53:49.756620560 +0100
+++ /var/tmp/diff_new_pack.cBbsOD/_new  2017-03-10 20:53:49.760619993 +0100
@@ -24,7 +24,7 @@
 Name:           dtb-aarch64
 Version:        4.10.1
 %if 0%{?is_kotd}
-Release:        <RELEASE>.g1ecd5af
+Release:        <RELEASE>.gf764d42
 %else
 Release:        0
 %endif

dtb-armv6l.spec: same change
dtb-armv7l.spec: same change
++++++ kernel-64kb.spec ++++++
--- /var/tmp/diff_new_pack.cBbsOD/_old  2017-03-10 20:53:49.892601288 +0100
+++ /var/tmp/diff_new_pack.cBbsOD/_new  2017-03-10 20:53:49.892601288 +0100
@@ -60,7 +60,7 @@
 Group:          System/Kernel
 Version:        4.10.1
 %if 0%{?is_kotd}
-Release:        <RELEASE>.g1ecd5af
+Release:        <RELEASE>.gf764d42
 %else
 Release:        0
 %endif

kernel-debug.spec: same change
kernel-default.spec: same change
++++++ kernel-docs.spec ++++++
--- /var/tmp/diff_new_pack.cBbsOD/_old  2017-03-10 20:53:49.968590517 +0100
+++ /var/tmp/diff_new_pack.cBbsOD/_new  2017-03-10 20:53:49.972589951 +0100
@@ -44,7 +44,7 @@
 Group:          Documentation/Man
 Version:        4.10.1
 %if 0%{?is_kotd}
-Release:        <RELEASE>.g1ecd5af
+Release:        <RELEASE>.gf764d42
 %else
 Release:        0
 %endif

++++++ kernel-lpae.spec ++++++
--- /var/tmp/diff_new_pack.cBbsOD/_old  2017-03-10 20:53:49.996586550 +0100
+++ /var/tmp/diff_new_pack.cBbsOD/_new  2017-03-10 20:53:50.000585984 +0100
@@ -60,7 +60,7 @@
 Group:          System/Kernel
 Version:        4.10.1
 %if 0%{?is_kotd}
-Release:        <RELEASE>.g1ecd5af
+Release:        <RELEASE>.gf764d42
 %else
 Release:        0
 %endif

++++++ kernel-obs-build.spec ++++++
--- /var/tmp/diff_new_pack.cBbsOD/_old  2017-03-10 20:53:50.036580881 +0100
+++ /var/tmp/diff_new_pack.cBbsOD/_new  2017-03-10 20:53:50.040580315 +0100
@@ -59,7 +59,7 @@
 Group:          SLES
 Version:        4.10.1
 %if 0%{?is_kotd}
-Release:        <RELEASE>.g1ecd5af
+Release:        <RELEASE>.gf764d42
 %else
 Release:        0
 %endif

kernel-obs-qa.spec: same change
++++++ kernel-pae.spec ++++++
--- /var/tmp/diff_new_pack.cBbsOD/_old  2017-03-10 20:53:50.096572379 +0100
+++ /var/tmp/diff_new_pack.cBbsOD/_new  2017-03-10 20:53:50.096572379 +0100
@@ -60,7 +60,7 @@
 Group:          System/Kernel
 Version:        4.10.1
 %if 0%{?is_kotd}
-Release:        <RELEASE>.g1ecd5af
+Release:        <RELEASE>.gf764d42
 %else
 Release:        0
 %endif

++++++ kernel-source.spec ++++++
--- /var/tmp/diff_new_pack.cBbsOD/_old  2017-03-10 20:53:50.144565578 +0100
+++ /var/tmp/diff_new_pack.cBbsOD/_new  2017-03-10 20:53:50.144565578 +0100
@@ -32,7 +32,7 @@
 Group:          Development/Sources
 Version:        4.10.1
 %if 0%{?is_kotd}
-Release:        <RELEASE>.g1ecd5af
+Release:        <RELEASE>.gf764d42
 %else
 Release:        0
 %endif

++++++ kernel-syms.spec ++++++
--- /var/tmp/diff_new_pack.cBbsOD/_old  2017-03-10 20:53:50.184559910 +0100
+++ /var/tmp/diff_new_pack.cBbsOD/_new  2017-03-10 20:53:50.188559343 +0100
@@ -27,7 +27,7 @@
 Version:        4.10.1
 %if %using_buildservice
 %if 0%{?is_kotd}
-Release:        <RELEASE>.g1ecd5af
+Release:        <RELEASE>.gf764d42
 %else
 Release:        0
 %endif

++++++ kernel-syzkaller.spec ++++++
--- /var/tmp/diff_new_pack.cBbsOD/_old  2017-03-10 20:53:50.220554808 +0100
+++ /var/tmp/diff_new_pack.cBbsOD/_new  2017-03-10 20:53:50.224554241 +0100
@@ -60,7 +60,7 @@
 Group:          System/Kernel
 Version:        4.10.1
 %if 0%{?is_kotd}
-Release:        <RELEASE>.g1ecd5af
+Release:        <RELEASE>.gf764d42
 %else
 Release:        0
 %endif

kernel-vanilla.spec: same change
++++++ patches.fixes.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/patches.fixes/bonding-use-ETH_MAX_MTU-as-max-mtu.patch 
new/patches.fixes/bonding-use-ETH_MAX_MTU-as-max-mtu.patch
--- old/patches.fixes/bonding-use-ETH_MAX_MTU-as-max-mtu.patch  1970-01-01 
01:00:00.000000000 +0100
+++ new/patches.fixes/bonding-use-ETH_MAX_MTU-as-max-mtu.patch  2017-03-07 
10:29:19.000000000 +0100
@@ -0,0 +1,37 @@
+From: WANG Cong <xiyou.wangc...@gmail.com>
+Date: Thu, 2 Mar 2017 12:24:36 -0800
+Subject: bonding: use ETH_MAX_MTU as max mtu
+Patch-mainline: v4.11-rc1
+Git-commit: 31c05415f5b471fd333fe42629788364faea8e0d
+References: bsc#1027798
+
+This restores the ability of setting bond device's mtu to 9000.
+
+Fixes: 91572088e3fd ("net: use core MTU range checking in core net infra")
+Reported-by: daz...@gmail.com
+Reported-by: Brad Campbell <lists2...@fnarfbargle.com>
+Cc: Jarod Wilson <ja...@redhat.com>
+Signed-off-by: Cong Wang <xiyou.wangc...@gmail.com>
+Signed-off-by: Jay Vosburgh <jay.vosbu...@canonical.com>
+Signed-off-by: David S. Miller <da...@davemloft.net>
+Acked-by: Michal Kubecek <mkube...@suse.cz>
+
+---
+ drivers/net/bonding/bond_main.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
+index 8029dd4912b6..644d2bf0c451 100644
+--- a/drivers/net/bonding/bond_main.c
++++ b/drivers/net/bonding/bond_main.c
+@@ -4185,6 +4185,7 @@ void bond_setup(struct net_device *bond_dev)
+ 
+       /* Initialize the device entry points */
+       ether_setup(bond_dev);
++      bond_dev->max_mtu = ETH_MAX_MTU;
+       bond_dev->netdev_ops = &bond_netdev_ops;
+       bond_dev->ethtool_ops = &bond_ethtool_ops;
+ 
+-- 
+2.12.0
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/patches.fixes/crypto-algif_hash-avoid-zero-sized-array.patch 
new/patches.fixes/crypto-algif_hash-avoid-zero-sized-array.patch
--- old/patches.fixes/crypto-algif_hash-avoid-zero-sized-array.patch    
1970-01-01 01:00:00.000000000 +0100
+++ new/patches.fixes/crypto-algif_hash-avoid-zero-sized-array.patch    
2017-03-07 10:29:19.000000000 +0100
@@ -0,0 +1,66 @@
+From: Jiri Slaby <jsl...@suse.cz>
+Date: Thu, 15 Dec 2016 14:31:01 +0100
+Subject: crypto: algif_hash - avoid zero-sized array
+Git-commit: 6207119444595d287b1e9e83a2066c17209698f3
+Patch-mainline: 4.11-rc1
+References: bnc#1007962
+
+With this reproducer:
+  struct sockaddr_alg alg = {
+          .salg_family = 0x26,
+          .salg_type = "hash",
+          .salg_feat = 0xf,
+          .salg_mask = 0x5,
+          .salg_name = "digest_null",
+  };
+  int sock, sock2;
+
+  sock = socket(AF_ALG, SOCK_SEQPACKET, 0);
+  bind(sock, (struct sockaddr *)&alg, sizeof(alg));
+  sock2 = accept(sock, NULL, NULL);
+  setsockopt(sock, SOL_ALG, ALG_SET_KEY, "\x9b\xca", 2);
+  accept(sock2, NULL, NULL);
+
+==== 8< ======== 8< ======== 8< ======== 8< ====
+
+one can immediatelly see an UBSAN warning:
+UBSAN: Undefined behaviour in crypto/algif_hash.c:187:7
+variable length array bound value 0 <= 0
+CPU: 0 PID: 15949 Comm: syz-executor Tainted: G            E      
4.4.30-0-default #1
+...
+Call Trace:
+...
+ [<ffffffff81d598fd>] ? __ubsan_handle_vla_bound_not_positive+0x13d/0x188
+ [<ffffffff81d597c0>] ? __ubsan_handle_out_of_bounds+0x1bc/0x1bc
+ [<ffffffffa0e2204d>] ? hash_accept+0x5bd/0x7d0 [algif_hash]
+ [<ffffffffa0e2293f>] ? hash_accept_nokey+0x3f/0x51 [algif_hash]
+ [<ffffffffa0e206b0>] ? hash_accept_parent_nokey+0x4a0/0x4a0 [algif_hash]
+ [<ffffffff8235c42b>] ? SyS_accept+0x2b/0x40
+
+It is a correct warning, as hash state is propagated to accept as zero,
+but creating a zero-length variable array is not allowed in C.
+
+Fix this as proposed by Herbert -- do "?: 1" on that site. No sizeof or
+similar happens in the code there, so we just allocate one byte even
+though we do not use the array.
+
+Signed-off-by: Jiri Slaby <jsl...@suse.cz>
+Cc: Herbert Xu <herb...@gondor.apana.org.au>
+Cc: "David S. Miller" <da...@davemloft.net> (maintainer:CRYPTO API)
+Reported-by: Sasha Levin <sasha.le...@oracle.com>
+Signed-off-by: Herbert Xu <herb...@gondor.apana.org.au>
+---
+ crypto/algif_hash.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/crypto/algif_hash.c
++++ b/crypto/algif_hash.c
+@@ -245,7 +245,7 @@ static int hash_accept(struct socket *so
+       struct alg_sock *ask = alg_sk(sk);
+       struct hash_ctx *ctx = ask->private;
+       struct ahash_request *req = &ctx->req;
+-      char state[crypto_ahash_statesize(crypto_ahash_reqtfm(req))];
++      char state[crypto_ahash_statesize(crypto_ahash_reqtfm(req)) ? : 1];
+       struct sock *sk2;
+       struct alg_sock *ask2;
+       struct hash_ctx *ctx2;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/patches.fixes/drm-amdgpu-revert-update-tile-table-for-oland-hainan.patch 
new/patches.fixes/drm-amdgpu-revert-update-tile-table-for-oland-hainan.patch
--- 
old/patches.fixes/drm-amdgpu-revert-update-tile-table-for-oland-hainan.patch    
    1970-01-01 01:00:00.000000000 +0100
+++ 
new/patches.fixes/drm-amdgpu-revert-update-tile-table-for-oland-hainan.patch    
    2017-03-07 10:29:19.000000000 +0100
@@ -0,0 +1,458 @@
+From: Jean Delvare <jdelv...@suse.de>
+Subject: Revert "drm/amdgpu: update tile table for oland/hainan"
+References: boo#1027378
+Patch-mainline: No, will be fixed differently in v4.11
+
+Revert commit f8d9422ef80c ("drm/amdgpu: update tile table for
+oland/hainan") as it is causing ugly visual artefacts on at least
+Oland. This is only an optimization so we can live without it.
+
+This fixes kernel bug #194761:
+amdgpu driver breaks on Oland (SI)
+https://bugzilla.kernel.org/show_bug.cgi?id=194761
+
+Signed-off-by: Jean Delvare <jdelv...@suse.de>
+Fixes: f8d9422ef80c ("drm/amdgpu: update tile table for oland/hainan")
+Acked-by: Alex Deucher <alexander.deuc...@amd.com>
+Cc: Flora Cui <flora....@amd.com>
+Cc: Junwei Zhang <jerry.zh...@amd.com>
+---
+Note: This is for stable v4.10 branch only. v4.11 and later have a
+different fix, but it's much larger and more intrusive so not suitable
+for a stable branch.
+
+ drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c |  330 
++++++++++++++--------------------
+ 1 file changed, 139 insertions(+), 191 deletions(-)
+
+--- a/drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c
++++ b/drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c
+@@ -708,290 +708,238 @@ static void gfx_v6_0_tiling_mode_table_i
+               for (reg_offset = 0; reg_offset < num_tile_mode_states; 
reg_offset++) {
+                       switch (reg_offset) {
+                       case 0:
+-                              gb_tile_moden = 
(MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
+-                                               
ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
+-                                               PIPE_CONFIG(ADDR_SURF_P2) |
++                              gb_tile_moden = 
(ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
++                                               
MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
++                                               PIPE_CONFIG(ADDR_SURF_P4_8x16) 
|
+                                                
TILE_SPLIT(ADDR_SURF_TILE_SPLIT_64B) |
++                                               NUM_BANKS(ADDR_SURF_16_BANK) |
+                                                
BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
+                                                
BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
+-                                               
MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_4) |
+-                                               NUM_BANKS(ADDR_SURF_16_BANK));
++                                               
MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_4));
+                               break;
+                       case 1:
+-                              gb_tile_moden = 
(MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
+-                                               
ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
+-                                               PIPE_CONFIG(ADDR_SURF_P2) |
++                              gb_tile_moden = 
(ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
++                                               
MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
++                                               PIPE_CONFIG(ADDR_SURF_P4_8x16) 
|
+                                                
TILE_SPLIT(ADDR_SURF_TILE_SPLIT_128B) |
++                                               NUM_BANKS(ADDR_SURF_16_BANK) |
+                                                
BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
+                                                
BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
+-                                               
MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_4) |
+-                                               NUM_BANKS(ADDR_SURF_16_BANK));
++                                               
MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_4));
+                               break;
+                       case 2:
+-                              gb_tile_moden = 
(MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
+-                                               
ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
+-                                               PIPE_CONFIG(ADDR_SURF_P2) |
++                              gb_tile_moden = 
(ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
++                                               
MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
++                                               PIPE_CONFIG(ADDR_SURF_P4_8x16) 
|
+                                                
TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
++                                               NUM_BANKS(ADDR_SURF_16_BANK) |
+                                                
BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
+                                                
BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
+-                                               
MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_4) |
+-                                               NUM_BANKS(ADDR_SURF_16_BANK));
++                                               
MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_4));
+                               break;
+                       case 3:
+-                              gb_tile_moden = 
(MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
+-                                               
ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
+-                                               PIPE_CONFIG(ADDR_SURF_P2) |
++                              gb_tile_moden = 
(ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
++                                               
MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
++                                               PIPE_CONFIG(ADDR_SURF_P4_8x16) 
|
++                                               
TILE_SPLIT(ADDR_SURF_TILE_SPLIT_128B) |
++                                               NUM_BANKS(ADDR_SURF_16_BANK) |
+                                                
BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
+-                                               
BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
+-                                               
MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
+-                                               NUM_BANKS(ADDR_SURF_8_BANK) |
+-                                               
TILE_SPLIT(split_equal_to_row_size));
++                                               
BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
++                                               
MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_4));
+                               break;
+                       case 4:
+-                              gb_tile_moden = 
(MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
+-                                               
ARRAY_MODE(ARRAY_1D_TILED_THIN1) |
+-                                               PIPE_CONFIG(ADDR_SURF_P2));
++                              gb_tile_moden = 
(ARRAY_MODE(ARRAY_1D_TILED_THIN1) |
++                                               
MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
++                                               PIPE_CONFIG(ADDR_SURF_P4_8x16) 
|
++                                               
TILE_SPLIT(ADDR_SURF_TILE_SPLIT_64B) |
++                                               NUM_BANKS(ADDR_SURF_16_BANK) |
++                                               
BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
++                                               
BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
++                                               
MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2));
+                               break;
+                       case 5:
+-                              gb_tile_moden = 
(MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
+-                                               
ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
+-                                               PIPE_CONFIG(ADDR_SURF_P2) |
+-                                               
TILE_SPLIT(ADDR_SURF_TILE_SPLIT_512B) |
++                              gb_tile_moden = 
(ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
++                                               
MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
++                                               PIPE_CONFIG(ADDR_SURF_P4_8x16) 
|
++                                               
TILE_SPLIT(split_equal_to_row_size) |
++                                               NUM_BANKS(ADDR_SURF_16_BANK) |
+                                                
BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
+-                                               
BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
+-                                               
MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
+-                                               NUM_BANKS(ADDR_SURF_8_BANK));
++                                               
BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
++                                               
MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2));
+                               break;
+                       case 6:
+-                              gb_tile_moden = 
(MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
+-                                               
ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
+-                                               PIPE_CONFIG(ADDR_SURF_P2) |
+-                                               
TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
++                              gb_tile_moden = 
(ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
++                                               
MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
++                                               PIPE_CONFIG(ADDR_SURF_P4_8x16) 
|
++                                               
TILE_SPLIT(split_equal_to_row_size) |
++                                               NUM_BANKS(ADDR_SURF_16_BANK) |
+                                                
BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
+-                                               
BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
+-                                               
MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
+-                                               NUM_BANKS(ADDR_SURF_8_BANK));
++                                               
BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
++                                               
MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2));
+                               break;
+                       case 7:
+-                              gb_tile_moden = 
(MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
+-                                               
ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
+-                                               PIPE_CONFIG(ADDR_SURF_P2) |
+-                                               
TILE_SPLIT(ADDR_SURF_TILE_SPLIT_1KB) |
++                              gb_tile_moden = 
(ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
++                                               
MICRO_TILE_MODE(ADDR_SURF_DEPTH_MICRO_TILING) |
++                                               PIPE_CONFIG(ADDR_SURF_P4_8x16) 
|
++                                               
TILE_SPLIT(split_equal_to_row_size) |
++                                               NUM_BANKS(ADDR_SURF_16_BANK) |
+                                                
BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
+-                                               
BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
+-                                               
MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
+-                                               NUM_BANKS(ADDR_SURF_4_BANK));
++                                               
BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
++                                               
MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_4));
+                               break;
+                       case 8:
+-                              gb_tile_moden = 
(ARRAY_MODE(ARRAY_LINEAR_ALIGNED));
++                              gb_tile_moden = 
(ARRAY_MODE(ARRAY_LINEAR_ALIGNED) |
++                                               
MICRO_TILE_MODE(ADDR_SURF_DISPLAY_MICRO_TILING) |
++                                               PIPE_CONFIG(ADDR_SURF_P4_8x16) 
|
++                                               
TILE_SPLIT(ADDR_SURF_TILE_SPLIT_64B) |
++                                               NUM_BANKS(ADDR_SURF_16_BANK) |
++                                               
BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
++                                               
BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
++                                               
MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2));
+                               break;
+                       case 9:
+-                              gb_tile_moden = 
(MICRO_TILE_MODE(ADDR_SURF_DISPLAY_MICRO_TILING) |
+-                                               
ARRAY_MODE(ARRAY_1D_TILED_THIN1) |
+-                                               PIPE_CONFIG(ADDR_SURF_P2));
++                              gb_tile_moden = 
(ARRAY_MODE(ARRAY_1D_TILED_THIN1) |
++                                               
MICRO_TILE_MODE(ADDR_SURF_DISPLAY_MICRO_TILING) |
++                                               PIPE_CONFIG(ADDR_SURF_P4_8x16) 
|
++                                               
TILE_SPLIT(ADDR_SURF_TILE_SPLIT_64B) |
++                                               NUM_BANKS(ADDR_SURF_16_BANK) |
++                                               
BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
++                                               
BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
++                                               
MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2));
+                               break;
+                       case 10:
+-                              gb_tile_moden = 
(MICRO_TILE_MODE(ADDR_SURF_DISPLAY_MICRO_TILING) |
+-                                               
ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
+-                                               PIPE_CONFIG(ADDR_SURF_P2) |
++                              gb_tile_moden = 
(ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
++                                               
MICRO_TILE_MODE(ADDR_SURF_DISPLAY_MICRO_TILING) |
++                                               PIPE_CONFIG(ADDR_SURF_P4_8x16) 
|
+                                                
TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
++                                               NUM_BANKS(ADDR_SURF_16_BANK) |
+                                                
BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
+                                                
BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
+-                                               
MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_4) |
+-                                               NUM_BANKS(ADDR_SURF_16_BANK));
++                                               
MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_4));
+                               break;
+                       case 11:
+-                              gb_tile_moden = 
(MICRO_TILE_MODE(ADDR_SURF_DISPLAY_MICRO_TILING) |
+-                                               
ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
+-                                               PIPE_CONFIG(ADDR_SURF_P2) |
++                              gb_tile_moden = 
(ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
++                                               
MICRO_TILE_MODE(ADDR_SURF_DISPLAY_MICRO_TILING) |
++                                               PIPE_CONFIG(ADDR_SURF_P4_8x16) 
|
+                                                
TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
++                                               NUM_BANKS(ADDR_SURF_16_BANK) |
+                                                
BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
+                                                
BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
+-                                               
MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
+-                                               NUM_BANKS(ADDR_SURF_16_BANK));
++                                               
MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2));
+                               break;
+                       case 12:
+-                              gb_tile_moden = 
(MICRO_TILE_MODE(ADDR_SURF_DISPLAY_MICRO_TILING) |
+-                                               
ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
+-                                               PIPE_CONFIG(ADDR_SURF_P2) |
++                              gb_tile_moden = 
(ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
++                                               
MICRO_TILE_MODE(ADDR_SURF_DISPLAY_MICRO_TILING) |
++                                               PIPE_CONFIG(ADDR_SURF_P4_8x16) 
|
+                                                
TILE_SPLIT(ADDR_SURF_TILE_SPLIT_512B) |
++                                               NUM_BANKS(ADDR_SURF_16_BANK) |
+                                                
BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
+                                                
BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
+-                                               
MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
+-                                               NUM_BANKS(ADDR_SURF_16_BANK));
++                                               
MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2));
+                               break;
+                       case 13:
+-                              gb_tile_moden = 
(MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
+-                                               
ARRAY_MODE(ARRAY_1D_TILED_THIN1) |
+-                                               PIPE_CONFIG(ADDR_SURF_P2));
++                              gb_tile_moden = 
(ARRAY_MODE(ARRAY_1D_TILED_THIN1) |
++                                               
MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
++                                               PIPE_CONFIG(ADDR_SURF_P4_8x16) 
|
++                                               
TILE_SPLIT(ADDR_SURF_TILE_SPLIT_64B) |
++                                               NUM_BANKS(ADDR_SURF_16_BANK) |
++                                               
BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
++                                               
BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
++                                               
MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2));
+                               break;
+                       case 14:
+-                              gb_tile_moden = 
(MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
+-                                               
ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
+-                                               PIPE_CONFIG(ADDR_SURF_P2) |
++                              gb_tile_moden = 
(ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
++                                               
MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
++                                               PIPE_CONFIG(ADDR_SURF_P4_8x16) 
|
+                                                
TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
++                                               NUM_BANKS(ADDR_SURF_16_BANK) |
+                                                
BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
+                                                
BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
+-                                               
MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
+-                                               NUM_BANKS(ADDR_SURF_16_BANK));
++                                               
MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2));
+                               break;
+                       case 15:
+-                              gb_tile_moden = 
(MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
+-                                               
ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
+-                                               PIPE_CONFIG(ADDR_SURF_P2) |
++                              gb_tile_moden = 
(ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
++                                               
MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
++                                               PIPE_CONFIG(ADDR_SURF_P4_8x16) 
|
+                                                
TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
++                                               NUM_BANKS(ADDR_SURF_16_BANK) |
+                                                
BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
+                                                
BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
+-                                               
MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
+-                                               NUM_BANKS(ADDR_SURF_16_BANK));
++                                               
MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2));
+                               break;
+                       case 16:
+-                              gb_tile_moden = 
(MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
+-                                               
ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
+-                                               PIPE_CONFIG(ADDR_SURF_P2) |
++                              gb_tile_moden = 
(ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
++                                               
MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
++                                               PIPE_CONFIG(ADDR_SURF_P4_8x16) 
|
+                                                
TILE_SPLIT(ADDR_SURF_TILE_SPLIT_512B) |
++                                               NUM_BANKS(ADDR_SURF_16_BANK) |
+                                                
BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
+                                                
BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
+-                                               
MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
+-                                               NUM_BANKS(ADDR_SURF_16_BANK));
++                                               
MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2));
+                               break;
+                       case 17:
+-                              gb_tile_moden = 
(MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
+-                                               
ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
+-                                               PIPE_CONFIG(ADDR_SURF_P2) |
+-                                               
BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
+-                                               
BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
+-                                               
MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
+-                                               NUM_BANKS(ADDR_SURF_16_BANK) |
+-                                               
TILE_SPLIT(split_equal_to_row_size));
+-                              break;
+-                      case 18:
+-                              gb_tile_moden = 
(MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
+-                                               
ARRAY_MODE(ARRAY_1D_TILED_THICK) |
+-                                               PIPE_CONFIG(ADDR_SURF_P2));
+-                              break;
+-                      case 19:
+-                              gb_tile_moden = 
(MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
+-                                               
ARRAY_MODE(ARRAY_2D_TILED_XTHICK) |
+-                                               PIPE_CONFIG(ADDR_SURF_P2) |
+-                                               
BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
+-                                               
BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
+-                                               
MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
++                              gb_tile_moden = 
(ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
++                                               
MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
++                                               PIPE_CONFIG(ADDR_SURF_P4_8x16) 
|
++                                               
TILE_SPLIT(split_equal_to_row_size) |
+                                                NUM_BANKS(ADDR_SURF_16_BANK) |
+-                                               
TILE_SPLIT(split_equal_to_row_size));
+-                              break;
+-                      case 20:
+-                              gb_tile_moden = 
(MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
+-                                               
ARRAY_MODE(ARRAY_2D_TILED_THICK) |
+-                                               PIPE_CONFIG(ADDR_SURF_P2) |
+                                                
BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
+                                                
BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
+-                                               
MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) |
+-                                               NUM_BANKS(ADDR_SURF_16_BANK) |
+-                                               
TILE_SPLIT(split_equal_to_row_size));
++                                               
MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2));
+                               break;
+                       case 21:
+-                              gb_tile_moden = 
(MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
+-                                               
ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
+-                                               PIPE_CONFIG(ADDR_SURF_P2) |
++                              gb_tile_moden = 
(ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
++                                               
MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
++                                               
PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) |
+                                                
TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
++                                               NUM_BANKS(ADDR_SURF_16_BANK) |
+                                                
BANK_WIDTH(ADDR_SURF_BANK_WIDTH_2) |
+                                                
BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
+-                                               
MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
+-                                               NUM_BANKS(ADDR_SURF_8_BANK));
++                                               
MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2));
+                               break;
+                       case 22:
+-                              gb_tile_moden = 
(MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
+-                                               
ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
+-                                               PIPE_CONFIG(ADDR_SURF_P2) |
++                              gb_tile_moden = 
(ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
++                                               
MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
++                                               
PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) |
+                                                
TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
+-                                               
BANK_WIDTH(ADDR_SURF_BANK_WIDTH_2) |
+-                                               
BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
+-                                               
MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
+-                                               NUM_BANKS(ADDR_SURF_8_BANK));
++                                               NUM_BANKS(ADDR_SURF_16_BANK) |
++                                               
BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
++                                               
BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) |
++                                               
MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_4));
+                               break;
+                       case 23:
+-                              gb_tile_moden = 
(MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
+-                                               
ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
+-                                               PIPE_CONFIG(ADDR_SURF_P2) |
++                              gb_tile_moden = 
(ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
++                                               
MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
++                                               
PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) |
+                                                
TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) |
++                                               NUM_BANKS(ADDR_SURF_16_BANK) |
+                                                
BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
+                                                
BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
+-                                               
MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
+-                                               NUM_BANKS(ADDR_SURF_8_BANK));
++                                               
MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2));
+                               break;
+                       case 24:
+-                              gb_tile_moden = 
(MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
+-                                               
ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
+-                                               PIPE_CONFIG(ADDR_SURF_P2) |
++                              gb_tile_moden = 
(ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
++                                               
MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
++                                               
PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) |
+                                                
TILE_SPLIT(ADDR_SURF_TILE_SPLIT_512B) |
++                                               NUM_BANKS(ADDR_SURF_16_BANK) |
+                                                
BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
+                                                
BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
+-                                               
MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
+-                                               NUM_BANKS(ADDR_SURF_8_BANK));
++                                               
MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2));
+                               break;
+                       case 25:
+-                              gb_tile_moden = 
(MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
+-                                               
ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
+-                                               PIPE_CONFIG(ADDR_SURF_P2) |
++                              gb_tile_moden = 
(ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
++                                               
MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
++                                               
PIPE_CONFIG(ADDR_SURF_P8_32x32_8x16) |
+                                                
TILE_SPLIT(ADDR_SURF_TILE_SPLIT_1KB) |
+-                                               
BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
+-                                               
BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
+-                                               
MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
+-                                               NUM_BANKS(ADDR_SURF_4_BANK));
+-                              break;
+-                      case 26:
+-                              gb_tile_moden = 
(MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
+-                                               
ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
+-                                               PIPE_CONFIG(ADDR_SURF_P2) |
+-                                               
TILE_SPLIT(ADDR_SURF_TILE_SPLIT_1KB) |
+-                                               
BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
+-                                               
BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
+-                                               
MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
+-                                               NUM_BANKS(ADDR_SURF_4_BANK));
+-                              break;
+-                      case 27:
+-                              gb_tile_moden = 
(MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
+-                                               
ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
+-                                               PIPE_CONFIG(ADDR_SURF_P2) |
+-                                               
TILE_SPLIT(ADDR_SURF_TILE_SPLIT_1KB) |
+-                                               
BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
+-                                               
BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
+-                                               
MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
+-                                               NUM_BANKS(ADDR_SURF_4_BANK));
+-                              break;
+-                      case 28:
+-                              gb_tile_moden = 
(MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
+-                                               
ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
+-                                               PIPE_CONFIG(ADDR_SURF_P2) |
+-                                               
TILE_SPLIT(ADDR_SURF_TILE_SPLIT_1KB) |
+-                                               
BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
+-                                               
BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
+-                                               
MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
+-                                               NUM_BANKS(ADDR_SURF_4_BANK));
+-                              break;
+-                      case 29:
+-                              gb_tile_moden = 
(MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
+-                                               
ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
+-                                               PIPE_CONFIG(ADDR_SURF_P2) |
+-                                               
TILE_SPLIT(ADDR_SURF_TILE_SPLIT_1KB) |
+-                                               
BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
+-                                               
BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) |
+-                                               
MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
+-                                               NUM_BANKS(ADDR_SURF_4_BANK));
+-                              break;
+-                      case 30:
+-                              gb_tile_moden = 
(MICRO_TILE_MODE(ADDR_SURF_THIN_MICRO_TILING) |
+-                                               
ARRAY_MODE(ARRAY_2D_TILED_THIN1) |
+-                                               PIPE_CONFIG(ADDR_SURF_P2) |
+-                                               
TILE_SPLIT(ADDR_SURF_TILE_SPLIT_2KB) |
++                                               NUM_BANKS(ADDR_SURF_8_BANK) |
+                                                
BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) |
+                                                
BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) |
+-                                               
MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) |
+-                                               NUM_BANKS(ADDR_SURF_4_BANK));
++                                               
MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1));
+                               break;
+                       default:
+-                              continue;
++                              gb_tile_moden = 0;
++                              break;
+                       }
+                       adev->gfx.config.tile_mode_array[reg_offset] = 
gb_tile_moden;
+                       WREG32(mmGB_TILE_MODE0 + reg_offset, gb_tile_moden);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/patches.fixes/drm-i915-gvt-Fix-superfluous-newline-in-GVT_DISPLAY_ 
new/patches.fixes/drm-i915-gvt-Fix-superfluous-newline-in-GVT_DISPLAY_
--- old/patches.fixes/drm-i915-gvt-Fix-superfluous-newline-in-GVT_DISPLAY_      
1970-01-01 01:00:00.000000000 +0100
+++ new/patches.fixes/drm-i915-gvt-Fix-superfluous-newline-in-GVT_DISPLAY_      
2017-03-07 10:29:19.000000000 +0100
@@ -0,0 +1,56 @@
+From: Takashi Iwai <ti...@suse.de>
+Date: Mon, 20 Feb 2017 14:43:35 +0100
+Subject: [PATCH] drm/i915/gvt: Fix superfluous newline in GVT_DISPLAY_READY
+ env var
+Date: Mon, 20 Feb 2017 14:58:25 +0100
+Message-Id: <20170220135825.11430-1-ti...@suse.de>
+References: bsc#1025903
+Patch-mainline: Submitted, intel-gfx ML 
+
+send_display_send_uevent() sends two environment variable, and the
+first one GVT_DISPLAY_READY is set including a new line at the end of
+the string; that is obviously superfluous and wrong -- at least, it
+*looks* so when you only read the code.
+
+However, it doesn't appear in the actual output by a (supposedly
+unexpected) trick.  The code uses snprintf() and truncates the string
+in size 20 bytes.  This makes the string as GVT_DISPLAY_READY=0 or
+...=1 including the trailing NUL-letter.  That is, the '\n' found in
+the format string is always cut off as a result.
+
+Although the code gives the correct result, it is confusing.  This
+patch addresses it, just removing the superfluous '\n' from the format
+string for avoiding further confusion.  If the argument "ready" were
+not a  bool, the size 20 should be corrected as well.  But it's a
+bool, so we can leave the magic number 20 as is for now.
+
+FWIW, the bug was spotted by a new GCC7 warning:
+  drivers/gpu/drm/i915/gvt/handlers.c: In function 'pvinfo_mmio_write':
+  drivers/gpu/drm/i915/gvt/handlers.c:1042:34: error: 'snprintf' output 
truncated before the last format character [-Werror=format-truncation=]
+    snprintf(display_ready_str, 20, "GVT_DISPLAY_READY=%d\n", ready);
+                                    ^~~~~~~~~~~~~~~~~~~~~~~~
+  drivers/gpu/drm/i915/gvt/handlers.c:1042:2: note: 'snprintf' output 21 bytes 
into a destination of size 20
+    snprintf(display_ready_str, 20, "GVT_DISPLAY_READY=%d\n", ready);
+    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Fixes: 04d348ae3f0a ("drm/i915/gvt: vGPU display virtualization")
+Bugzilla: https://bugzilla.suse.com/show_bug.cgi?id=1025903
+Reported-by: Richard Biener <rguent...@suse.com>
+Cc: <sta...@vger.kernel.org>
+Signed-off-by: Takashi Iwai <ti...@suse.de>
+
+---
+ drivers/gpu/drm/i915/gvt/handlers.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/gpu/drm/i915/gvt/handlers.c
++++ b/drivers/gpu/drm/i915/gvt/handlers.c
+@@ -1039,7 +1039,7 @@ static int send_display_ready_uevent(str
+       char vmid_str[20];
+       char display_ready_str[20];
+ 
+-      snprintf(display_ready_str, 20, "GVT_DISPLAY_READY=%d\n", ready);
++      snprintf(display_ready_str, 20, "GVT_DISPLAY_READY=%d", ready);
+       env[0] = display_ready_str;
+ 
+       snprintf(vmid_str, 20, "VMID=%d", vgpu->id);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/patches.fixes/sctp-deny-peeloff-operation-on-asocs-with-threads-sl.patch 
new/patches.fixes/sctp-deny-peeloff-operation-on-asocs-with-threads-sl.patch
--- 
old/patches.fixes/sctp-deny-peeloff-operation-on-asocs-with-threads-sl.patch    
    1970-01-01 01:00:00.000000000 +0100
+++ 
new/patches.fixes/sctp-deny-peeloff-operation-on-asocs-with-threads-sl.patch    
    2017-03-07 10:29:19.000000000 +0100
@@ -0,0 +1,69 @@
+From: Marcelo Ricardo Leitner <marcelo.leit...@gmail.com>
+Date: Thu, 23 Feb 2017 09:31:18 -0300
+Subject: sctp: deny peeloff operation on asocs with threads sleeping on it
+Patch-mainline: v4.11-rc1
+Git-commit: dfcb9f4f99f1e9a49e43398a7bfbf56927544af1
+References: CVE-2017-6353 bsc#1027066
+
+commit 2dcab5984841 ("sctp: avoid BUG_ON on sctp_wait_for_sndbuf")
+attempted to avoid a BUG_ON call when the association being used for a
+sendmsg() is blocked waiting for more sndbuf and another thread did a
+peeloff operation on such asoc, moving it to another socket.
+
+As Ben Hutchings noticed, then in such case it would return without
+locking back the socket and would cause two unlocks in a row.
+
+Further analysis also revealed that it could allow a double free if the
+application managed to peeloff the asoc that is created during the
+sendmsg call, because then sctp_sendmsg() would try to free the asoc
+that was created only for that call.
+
+This patch takes another approach. It will deny the peeloff operation
+if there is a thread sleeping on the asoc, so this situation doesn't
+exist anymore. This avoids the issues described above and also honors
+the syscalls that are already being handled (it can be multiple sendmsg
+calls).
+
+Joint work with Xin Long.
+
+Fixes: 2dcab5984841 ("sctp: avoid BUG_ON on sctp_wait_for_sndbuf")
+Cc: Alexander Popov <alex.po...@linux.com>
+Cc: Ben Hutchings <b...@decadent.org.uk>
+Signed-off-by: Marcelo Ricardo Leitner <marcelo.leit...@gmail.com>
+Signed-off-by: Xin Long <lucien....@gmail.com>
+Signed-off-by: David S. Miller <da...@davemloft.net>
+Acked-by: Michal Kubecek <mkube...@suse.cz>
+
+---
+ net/sctp/socket.c | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/net/sctp/socket.c b/net/sctp/socket.c
+index 1b5d669e3029..d04a8b66098c 100644
+--- a/net/sctp/socket.c
++++ b/net/sctp/socket.c
+@@ -4734,6 +4734,12 @@ int sctp_do_peeloff(struct sock *sk, sctp_assoc_t id, 
struct socket **sockp)
+       if (!asoc)
+               return -EINVAL;
+ 
++      /* If there is a thread waiting on more sndbuf space for
++       * sending on this asoc, it cannot be peeled.
++       */
++      if (waitqueue_active(&asoc->wait))
++              return -EBUSY;
++
+       /* An association cannot be branched off from an already peeled-off
+        * socket, nor is this supported for tcp style sockets.
+        */
+@@ -7426,8 +7432,6 @@ static int sctp_wait_for_sndbuf(struct sctp_association 
*asoc, long *timeo_p,
+                */
+               release_sock(sk);
+               current_timeo = schedule_timeout(current_timeo);
+-              if (sk != asoc->base.sk)
+-                      goto do_error;
+               lock_sock(sk);
+ 
+               *timeo_p = current_timeo;
+-- 
+2.11.1
+

++++++ patches.kernel.org.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/patches.kernel.org/patch-4.10.1 
new/patches.kernel.org/patch-4.10.1
--- old/patches.kernel.org/patch-4.10.1 2017-02-26 13:43:10.000000000 +0100
+++ new/patches.kernel.org/patch-4.10.1 2017-03-02 14:05:23.000000000 +0100
@@ -1,6 +1,6 @@
 From: Jiri Slaby <jsl...@suse.cz>
 Subject: Linux 4.10.1
-References: bnc#1012628
+References: CVE-2017-6347 bnc#1012628 bsc#1027179
 Patch-mainline: 4.10.1
 Git-commit: fa7f138ac4c70dc00519c124cf7cd4862a0a5b0e
 Git-commit: 575ddce0507789bf9830d089557d2199d2f91865

++++++ series.conf ++++++
--- /var/tmp/diff_new_pack.cBbsOD/_old  2017-03-10 20:53:51.212414237 +0100
+++ /var/tmp/diff_new_pack.cBbsOD/_new  2017-03-10 20:53:51.216413670 +0100
@@ -179,6 +179,7 @@
        ########################################################
        patches.suse/connector-read-mostly
        patches.suse/kbd-ignore-gfx.patch
+       patches.fixes/crypto-algif_hash-avoid-zero-sized-array.patch
 
        ########################################################
        #
@@ -208,6 +209,8 @@
        ########################################################
        # Networking, IPv6
        ########################################################
+       patches.fixes/sctp-deny-peeloff-operation-on-asocs-with-threads-sl.patch
+       patches.fixes/bonding-use-ETH_MAX_MTU-as-max-mtu.patch
 
        ########################################################
        # Netfilter
@@ -315,6 +318,8 @@
        ########################################################
        patches.fixes/drm-i915-Fix-S4-resume-breakage
        patches.drivers/drm-reference-count-event-completion
+       patches.fixes/drm-i915-gvt-Fix-superfluous-newline-in-GVT_DISPLAY_
+       patches.fixes/drm-amdgpu-revert-update-tile-table-for-oland-hainan.patch
 
        ########################################################
        # video4linux

++++++ source-timestamp ++++++
--- /var/tmp/diff_new_pack.cBbsOD/_old  2017-03-10 20:53:51.252408569 +0100
+++ /var/tmp/diff_new_pack.cBbsOD/_new  2017-03-10 20:53:51.252408569 +0100
@@ -1,3 +1,3 @@
-2017-02-26 13:43:10 +0100
-GIT Revision: 1ecd5afe5e60593ba814ba88b0728a4efae7724c
+2017-03-07 10:29:19 +0100
+GIT Revision: f764d4216e0a84a6577e402acf62abc0ca18f0dc
 GIT Branch: stable


Reply via email to