aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/misc/sgi-gru/grukdump.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/misc/sgi-gru/grukdump.c')
-rw-r--r--drivers/misc/sgi-gru/grukdump.c16
1 files changed, 7 insertions, 9 deletions
diff --git a/drivers/misc/sgi-gru/grukdump.c b/drivers/misc/sgi-gru/grukdump.c
index a3700a56b8ff..313da3150262 100644
--- a/drivers/misc/sgi-gru/grukdump.c
+++ b/drivers/misc/sgi-gru/grukdump.c
@@ -78,11 +78,10 @@ static int gru_dump_tfm(struct gru_state *gru,
78 void __user *ubuf, void __user *ubufend) 78 void __user *ubuf, void __user *ubufend)
79{ 79{
80 struct gru_tlb_fault_map *tfm; 80 struct gru_tlb_fault_map *tfm;
81 int i, ret, bytes; 81 int i;
82 82
83 bytes = GRU_NUM_TFM * GRU_CACHE_LINE_BYTES; 83 if (GRU_NUM_TFM * GRU_CACHE_LINE_BYTES > ubufend - ubuf)
84 if (bytes > ubufend - ubuf) 84 return -EFBIG;
85 ret = -EFBIG;
86 85
87 for (i = 0; i < GRU_NUM_TFM; i++) { 86 for (i = 0; i < GRU_NUM_TFM; i++) {
88 tfm = get_tfm(gru->gs_gru_base_vaddr, i); 87 tfm = get_tfm(gru->gs_gru_base_vaddr, i);
@@ -99,11 +98,10 @@ static int gru_dump_tgh(struct gru_state *gru,
99 void __user *ubuf, void __user *ubufend) 98 void __user *ubuf, void __user *ubufend)
100{ 99{
101 struct gru_tlb_global_handle *tgh; 100 struct gru_tlb_global_handle *tgh;
102 int i, ret, bytes; 101 int i;
103 102
104 bytes = GRU_NUM_TGH * GRU_CACHE_LINE_BYTES; 103 if (GRU_NUM_TGH * GRU_CACHE_LINE_BYTES > ubufend - ubuf)
105 if (bytes > ubufend - ubuf) 104 return -EFBIG;
106 ret = -EFBIG;
107 105
108 for (i = 0; i < GRU_NUM_TGH; i++) { 106 for (i = 0; i < GRU_NUM_TGH; i++) {
109 tgh = get_tgh(gru->gs_gru_base_vaddr, i); 107 tgh = get_tgh(gru->gs_gru_base_vaddr, i);
@@ -196,7 +194,7 @@ int gru_dump_chiplet_request(unsigned long arg)
196 return -EFAULT; 194 return -EFAULT;
197 195
198 /* Currently, only dump by gid is implemented */ 196 /* Currently, only dump by gid is implemented */
199 if (req.gid >= gru_max_gids || req.gid < 0) 197 if (req.gid >= gru_max_gids)
200 return -EINVAL; 198 return -EINVAL;
201 199
202 gru = GID_TO_GRU(req.gid); 200 gru = GID_TO_GRU(req.gid);