mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-02-14 06:35:05 +07:00
drm/nouveau/nvif: fix method count when pushing an array
[ Upstream commit d502297008142645edf5c791af424ed321e5da84 ] Reported-by: Lyude Paul <lyude@redhat.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
4b877845e3
commit
676575b93d
@ -123,131 +123,131 @@ PUSH_KICK(struct nvif_push *push)
|
||||
} while(0)
|
||||
#endif
|
||||
|
||||
#define PUSH_1(X,f,ds,n,c,o,p,s,mA,dA) do { \
|
||||
PUSH_##o##_HDR((p), s, mA, (c)+(n)); \
|
||||
PUSH_##f(X, (p), X##mA, 1, o, (dA), ds, ""); \
|
||||
#define PUSH_1(X,f,ds,n,o,p,s,mA,dA) do { \
|
||||
PUSH_##o##_HDR((p), s, mA, (ds)+(n)); \
|
||||
PUSH_##f(X, (p), X##mA, 1, o, (dA), ds, ""); \
|
||||
} while(0)
|
||||
#define PUSH_2(X,f,ds,n,c,o,p,s,mB,dB,mA,dA,a...) do { \
|
||||
PUSH_ASSERT((mB) - (mA) == (1?PUSH_##o##_INC), "mthd1"); \
|
||||
PUSH_1(X, DATA_, 1, ds, (c)+(n), o, (p), s, X##mA, (dA), ##a); \
|
||||
PUSH_##f(X, (p), X##mB, 0, o, (dB), ds, ""); \
|
||||
#define PUSH_2(X,f,ds,n,o,p,s,mB,dB,mA,dA,a...) do { \
|
||||
PUSH_ASSERT((mB) - (mA) == (1?PUSH_##o##_INC), "mthd1"); \
|
||||
PUSH_1(X, DATA_, 1, (ds) + (n), o, (p), s, X##mA, (dA), ##a); \
|
||||
PUSH_##f(X, (p), X##mB, 0, o, (dB), ds, ""); \
|
||||
} while(0)
|
||||
#define PUSH_3(X,f,ds,n,c,o,p,s,mB,dB,mA,dA,a...) do { \
|
||||
PUSH_ASSERT((mB) - (mA) == (0?PUSH_##o##_INC), "mthd2"); \
|
||||
PUSH_2(X, DATA_, 1, ds, (c)+(n), o, (p), s, X##mA, (dA), ##a); \
|
||||
PUSH_##f(X, (p), X##mB, 0, o, (dB), ds, ""); \
|
||||
#define PUSH_3(X,f,ds,n,o,p,s,mB,dB,mA,dA,a...) do { \
|
||||
PUSH_ASSERT((mB) - (mA) == (0?PUSH_##o##_INC), "mthd2"); \
|
||||
PUSH_2(X, DATA_, 1, (ds) + (n), o, (p), s, X##mA, (dA), ##a); \
|
||||
PUSH_##f(X, (p), X##mB, 0, o, (dB), ds, ""); \
|
||||
} while(0)
|
||||
#define PUSH_4(X,f,ds,n,c,o,p,s,mB,dB,mA,dA,a...) do { \
|
||||
PUSH_ASSERT((mB) - (mA) == (0?PUSH_##o##_INC), "mthd3"); \
|
||||
PUSH_3(X, DATA_, 1, ds, (c)+(n), o, (p), s, X##mA, (dA), ##a); \
|
||||
PUSH_##f(X, (p), X##mB, 0, o, (dB), ds, ""); \
|
||||
#define PUSH_4(X,f,ds,n,o,p,s,mB,dB,mA,dA,a...) do { \
|
||||
PUSH_ASSERT((mB) - (mA) == (0?PUSH_##o##_INC), "mthd3"); \
|
||||
PUSH_3(X, DATA_, 1, (ds) + (n), o, (p), s, X##mA, (dA), ##a); \
|
||||
PUSH_##f(X, (p), X##mB, 0, o, (dB), ds, ""); \
|
||||
} while(0)
|
||||
#define PUSH_5(X,f,ds,n,c,o,p,s,mB,dB,mA,dA,a...) do { \
|
||||
PUSH_ASSERT((mB) - (mA) == (0?PUSH_##o##_INC), "mthd4"); \
|
||||
PUSH_4(X, DATA_, 1, ds, (c)+(n), o, (p), s, X##mA, (dA), ##a); \
|
||||
PUSH_##f(X, (p), X##mB, 0, o, (dB), ds, ""); \
|
||||
#define PUSH_5(X,f,ds,n,o,p,s,mB,dB,mA,dA,a...) do { \
|
||||
PUSH_ASSERT((mB) - (mA) == (0?PUSH_##o##_INC), "mthd4"); \
|
||||
PUSH_4(X, DATA_, 1, (ds) + (n), o, (p), s, X##mA, (dA), ##a); \
|
||||
PUSH_##f(X, (p), X##mB, 0, o, (dB), ds, ""); \
|
||||
} while(0)
|
||||
#define PUSH_6(X,f,ds,n,c,o,p,s,mB,dB,mA,dA,a...) do { \
|
||||
PUSH_ASSERT((mB) - (mA) == (0?PUSH_##o##_INC), "mthd5"); \
|
||||
PUSH_5(X, DATA_, 1, ds, (c)+(n), o, (p), s, X##mA, (dA), ##a); \
|
||||
PUSH_##f(X, (p), X##mB, 0, o, (dB), ds, ""); \
|
||||
#define PUSH_6(X,f,ds,n,o,p,s,mB,dB,mA,dA,a...) do { \
|
||||
PUSH_ASSERT((mB) - (mA) == (0?PUSH_##o##_INC), "mthd5"); \
|
||||
PUSH_5(X, DATA_, 1, (ds) + (n), o, (p), s, X##mA, (dA), ##a); \
|
||||
PUSH_##f(X, (p), X##mB, 0, o, (dB), ds, ""); \
|
||||
} while(0)
|
||||
#define PUSH_7(X,f,ds,n,c,o,p,s,mB,dB,mA,dA,a...) do { \
|
||||
PUSH_ASSERT((mB) - (mA) == (0?PUSH_##o##_INC), "mthd6"); \
|
||||
PUSH_6(X, DATA_, 1, ds, (c)+(n), o, (p), s, X##mA, (dA), ##a); \
|
||||
PUSH_##f(X, (p), X##mB, 0, o, (dB), ds, ""); \
|
||||
#define PUSH_7(X,f,ds,n,o,p,s,mB,dB,mA,dA,a...) do { \
|
||||
PUSH_ASSERT((mB) - (mA) == (0?PUSH_##o##_INC), "mthd6"); \
|
||||
PUSH_6(X, DATA_, 1, (ds) + (n), o, (p), s, X##mA, (dA), ##a); \
|
||||
PUSH_##f(X, (p), X##mB, 0, o, (dB), ds, ""); \
|
||||
} while(0)
|
||||
#define PUSH_8(X,f,ds,n,c,o,p,s,mB,dB,mA,dA,a...) do { \
|
||||
PUSH_ASSERT((mB) - (mA) == (0?PUSH_##o##_INC), "mthd7"); \
|
||||
PUSH_7(X, DATA_, 1, ds, (c)+(n), o, (p), s, X##mA, (dA), ##a); \
|
||||
PUSH_##f(X, (p), X##mB, 0, o, (dB), ds, ""); \
|
||||
#define PUSH_8(X,f,ds,n,o,p,s,mB,dB,mA,dA,a...) do { \
|
||||
PUSH_ASSERT((mB) - (mA) == (0?PUSH_##o##_INC), "mthd7"); \
|
||||
PUSH_7(X, DATA_, 1, (ds) + (n), o, (p), s, X##mA, (dA), ##a); \
|
||||
PUSH_##f(X, (p), X##mB, 0, o, (dB), ds, ""); \
|
||||
} while(0)
|
||||
#define PUSH_9(X,f,ds,n,c,o,p,s,mB,dB,mA,dA,a...) do { \
|
||||
PUSH_ASSERT((mB) - (mA) == (0?PUSH_##o##_INC), "mthd8"); \
|
||||
PUSH_8(X, DATA_, 1, ds, (c)+(n), o, (p), s, X##mA, (dA), ##a); \
|
||||
PUSH_##f(X, (p), X##mB, 0, o, (dB), ds, ""); \
|
||||
#define PUSH_9(X,f,ds,n,o,p,s,mB,dB,mA,dA,a...) do { \
|
||||
PUSH_ASSERT((mB) - (mA) == (0?PUSH_##o##_INC), "mthd8"); \
|
||||
PUSH_8(X, DATA_, 1, (ds) + (n), o, (p), s, X##mA, (dA), ##a); \
|
||||
PUSH_##f(X, (p), X##mB, 0, o, (dB), ds, ""); \
|
||||
} while(0)
|
||||
#define PUSH_10(X,f,ds,n,c,o,p,s,mB,dB,mA,dA,a...) do { \
|
||||
PUSH_ASSERT((mB) - (mA) == (0?PUSH_##o##_INC), "mthd9"); \
|
||||
PUSH_9(X, DATA_, 1, ds, (c)+(n), o, (p), s, X##mA, (dA), ##a); \
|
||||
PUSH_##f(X, (p), X##mB, 0, o, (dB), ds, ""); \
|
||||
#define PUSH_10(X,f,ds,n,o,p,s,mB,dB,mA,dA,a...) do { \
|
||||
PUSH_ASSERT((mB) - (mA) == (0?PUSH_##o##_INC), "mthd9"); \
|
||||
PUSH_9(X, DATA_, 1, (ds) + (n), o, (p), s, X##mA, (dA), ##a); \
|
||||
PUSH_##f(X, (p), X##mB, 0, o, (dB), ds, ""); \
|
||||
} while(0)
|
||||
|
||||
#define PUSH_1D(X,o,p,s,mA,dA) \
|
||||
PUSH_1(X, DATA_, 1, 1, 0, o, (p), s, X##mA, (dA))
|
||||
#define PUSH_2D(X,o,p,s,mA,dA,mB,dB) \
|
||||
PUSH_2(X, DATA_, 1, 1, 0, o, (p), s, X##mB, (dB), \
|
||||
X##mA, (dA))
|
||||
#define PUSH_3D(X,o,p,s,mA,dA,mB,dB,mC,dC) \
|
||||
PUSH_3(X, DATA_, 1, 1, 0, o, (p), s, X##mC, (dC), \
|
||||
X##mB, (dB), \
|
||||
X##mA, (dA))
|
||||
#define PUSH_4D(X,o,p,s,mA,dA,mB,dB,mC,dC,mD,dD) \
|
||||
PUSH_4(X, DATA_, 1, 1, 0, o, (p), s, X##mD, (dD), \
|
||||
X##mC, (dC), \
|
||||
X##mB, (dB), \
|
||||
X##mA, (dA))
|
||||
#define PUSH_5D(X,o,p,s,mA,dA,mB,dB,mC,dC,mD,dD,mE,dE) \
|
||||
PUSH_5(X, DATA_, 1, 1, 0, o, (p), s, X##mE, (dE), \
|
||||
X##mD, (dD), \
|
||||
X##mC, (dC), \
|
||||
X##mB, (dB), \
|
||||
X##mA, (dA))
|
||||
#define PUSH_1D(X,o,p,s,mA,dA) \
|
||||
PUSH_1(X, DATA_, 1, 0, o, (p), s, X##mA, (dA))
|
||||
#define PUSH_2D(X,o,p,s,mA,dA,mB,dB) \
|
||||
PUSH_2(X, DATA_, 1, 0, o, (p), s, X##mB, (dB), \
|
||||
X##mA, (dA))
|
||||
#define PUSH_3D(X,o,p,s,mA,dA,mB,dB,mC,dC) \
|
||||
PUSH_3(X, DATA_, 1, 0, o, (p), s, X##mC, (dC), \
|
||||
X##mB, (dB), \
|
||||
X##mA, (dA))
|
||||
#define PUSH_4D(X,o,p,s,mA,dA,mB,dB,mC,dC,mD,dD) \
|
||||
PUSH_4(X, DATA_, 1, 0, o, (p), s, X##mD, (dD), \
|
||||
X##mC, (dC), \
|
||||
X##mB, (dB), \
|
||||
X##mA, (dA))
|
||||
#define PUSH_5D(X,o,p,s,mA,dA,mB,dB,mC,dC,mD,dD,mE,dE) \
|
||||
PUSH_5(X, DATA_, 1, 0, o, (p), s, X##mE, (dE), \
|
||||
X##mD, (dD), \
|
||||
X##mC, (dC), \
|
||||
X##mB, (dB), \
|
||||
X##mA, (dA))
|
||||
#define PUSH_6D(X,o,p,s,mA,dA,mB,dB,mC,dC,mD,dD,mE,dE,mF,dF) \
|
||||
PUSH_6(X, DATA_, 1, 1, 0, o, (p), s, X##mF, (dF), \
|
||||
X##mE, (dE), \
|
||||
X##mD, (dD), \
|
||||
X##mC, (dC), \
|
||||
X##mB, (dB), \
|
||||
X##mA, (dA))
|
||||
PUSH_6(X, DATA_, 1, 0, o, (p), s, X##mF, (dF), \
|
||||
X##mE, (dE), \
|
||||
X##mD, (dD), \
|
||||
X##mC, (dC), \
|
||||
X##mB, (dB), \
|
||||
X##mA, (dA))
|
||||
#define PUSH_7D(X,o,p,s,mA,dA,mB,dB,mC,dC,mD,dD,mE,dE,mF,dF,mG,dG) \
|
||||
PUSH_7(X, DATA_, 1, 1, 0, o, (p), s, X##mG, (dG), \
|
||||
X##mF, (dF), \
|
||||
X##mE, (dE), \
|
||||
X##mD, (dD), \
|
||||
X##mC, (dC), \
|
||||
X##mB, (dB), \
|
||||
X##mA, (dA))
|
||||
PUSH_7(X, DATA_, 1, 0, o, (p), s, X##mG, (dG), \
|
||||
X##mF, (dF), \
|
||||
X##mE, (dE), \
|
||||
X##mD, (dD), \
|
||||
X##mC, (dC), \
|
||||
X##mB, (dB), \
|
||||
X##mA, (dA))
|
||||
#define PUSH_8D(X,o,p,s,mA,dA,mB,dB,mC,dC,mD,dD,mE,dE,mF,dF,mG,dG,mH,dH) \
|
||||
PUSH_8(X, DATA_, 1, 1, 0, o, (p), s, X##mH, (dH), \
|
||||
X##mG, (dG), \
|
||||
X##mF, (dF), \
|
||||
X##mE, (dE), \
|
||||
X##mD, (dD), \
|
||||
X##mC, (dC), \
|
||||
X##mB, (dB), \
|
||||
X##mA, (dA))
|
||||
PUSH_8(X, DATA_, 1, 0, o, (p), s, X##mH, (dH), \
|
||||
X##mG, (dG), \
|
||||
X##mF, (dF), \
|
||||
X##mE, (dE), \
|
||||
X##mD, (dD), \
|
||||
X##mC, (dC), \
|
||||
X##mB, (dB), \
|
||||
X##mA, (dA))
|
||||
#define PUSH_9D(X,o,p,s,mA,dA,mB,dB,mC,dC,mD,dD,mE,dE,mF,dF,mG,dG,mH,dH,mI,dI) \
|
||||
PUSH_9(X, DATA_, 1, 1, 0, o, (p), s, X##mI, (dI), \
|
||||
X##mH, (dH), \
|
||||
X##mG, (dG), \
|
||||
X##mF, (dF), \
|
||||
X##mE, (dE), \
|
||||
X##mD, (dD), \
|
||||
X##mC, (dC), \
|
||||
X##mB, (dB), \
|
||||
X##mA, (dA))
|
||||
PUSH_9(X, DATA_, 1, 0, o, (p), s, X##mI, (dI), \
|
||||
X##mH, (dH), \
|
||||
X##mG, (dG), \
|
||||
X##mF, (dF), \
|
||||
X##mE, (dE), \
|
||||
X##mD, (dD), \
|
||||
X##mC, (dC), \
|
||||
X##mB, (dB), \
|
||||
X##mA, (dA))
|
||||
#define PUSH_10D(X,o,p,s,mA,dA,mB,dB,mC,dC,mD,dD,mE,dE,mF,dF,mG,dG,mH,dH,mI,dI,mJ,dJ) \
|
||||
PUSH_10(X, DATA_, 1, 1, 0, o, (p), s, X##mJ, (dJ), \
|
||||
X##mI, (dI), \
|
||||
X##mH, (dH), \
|
||||
X##mG, (dG), \
|
||||
X##mF, (dF), \
|
||||
X##mE, (dE), \
|
||||
X##mD, (dD), \
|
||||
X##mC, (dC), \
|
||||
X##mB, (dB), \
|
||||
X##mA, (dA))
|
||||
PUSH_10(X, DATA_, 1, 0, o, (p), s, X##mJ, (dJ), \
|
||||
X##mI, (dI), \
|
||||
X##mH, (dH), \
|
||||
X##mG, (dG), \
|
||||
X##mF, (dF), \
|
||||
X##mE, (dE), \
|
||||
X##mD, (dD), \
|
||||
X##mC, (dC), \
|
||||
X##mB, (dB), \
|
||||
X##mA, (dA))
|
||||
|
||||
#define PUSH_1P(X,o,p,s,mA,dp,ds) \
|
||||
PUSH_1(X, DATAp, ds, ds, 0, o, (p), s, X##mA, (dp))
|
||||
#define PUSH_2P(X,o,p,s,mA,dA,mB,dp,ds) \
|
||||
PUSH_2(X, DATAp, ds, ds, 0, o, (p), s, X##mB, (dp), \
|
||||
X##mA, (dA))
|
||||
#define PUSH_3P(X,o,p,s,mA,dA,mB,dB,mC,dp,ds) \
|
||||
PUSH_3(X, DATAp, ds, ds, 0, o, (p), s, X##mC, (dp), \
|
||||
X##mB, (dB), \
|
||||
X##mA, (dA))
|
||||
#define PUSH_1P(X,o,p,s,mA,dp,ds) \
|
||||
PUSH_1(X, DATAp, ds, 0, o, (p), s, X##mA, (dp))
|
||||
#define PUSH_2P(X,o,p,s,mA,dA,mB,dp,ds) \
|
||||
PUSH_2(X, DATAp, ds, 0, o, (p), s, X##mB, (dp), \
|
||||
X##mA, (dA))
|
||||
#define PUSH_3P(X,o,p,s,mA,dA,mB,dB,mC,dp,ds) \
|
||||
PUSH_3(X, DATAp, ds, 0, o, (p), s, X##mC, (dp), \
|
||||
X##mB, (dB), \
|
||||
X##mA, (dA))
|
||||
|
||||
#define PUSH_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,IMPL,...) IMPL
|
||||
#define PUSH(A...) PUSH_(A, PUSH_10P, PUSH_10D, \
|
||||
|
Loading…
Reference in New Issue
Block a user