@@ -31,24 +31,24 @@ static void flush_ldt(void *__mm)
31
31
return ;
32
32
33
33
pc = & mm -> context ;
34
- set_ldt (pc -> ldt -> entries , pc -> ldt -> size );
34
+ set_ldt (pc -> ldt -> entries , pc -> ldt -> nr_entries );
35
35
}
36
36
37
37
/* The caller must call finalize_ldt_struct on the result. LDT starts zeroed. */
38
- static struct ldt_struct * alloc_ldt_struct (unsigned int size )
38
+ static struct ldt_struct * alloc_ldt_struct (unsigned int num_entries )
39
39
{
40
40
struct ldt_struct * new_ldt ;
41
41
unsigned int alloc_size ;
42
42
43
- if (size > LDT_ENTRIES )
43
+ if (num_entries > LDT_ENTRIES )
44
44
return NULL ;
45
45
46
46
new_ldt = kmalloc (sizeof (struct ldt_struct ), GFP_KERNEL );
47
47
if (!new_ldt )
48
48
return NULL ;
49
49
50
50
BUILD_BUG_ON (LDT_ENTRY_SIZE != sizeof (struct desc_struct ));
51
- alloc_size = size * LDT_ENTRY_SIZE ;
51
+ alloc_size = num_entries * LDT_ENTRY_SIZE ;
52
52
53
53
/*
54
54
* Xen is very picky: it requires a page-aligned LDT that has no
@@ -66,14 +66,14 @@ static struct ldt_struct *alloc_ldt_struct(unsigned int size)
66
66
return NULL ;
67
67
}
68
68
69
- new_ldt -> size = size ;
69
+ new_ldt -> nr_entries = num_entries ;
70
70
return new_ldt ;
71
71
}
72
72
73
73
/* After calling this, the LDT is immutable. */
74
74
static void finalize_ldt_struct (struct ldt_struct * ldt )
75
75
{
76
- paravirt_alloc_ldt (ldt -> entries , ldt -> size );
76
+ paravirt_alloc_ldt (ldt -> entries , ldt -> nr_entries );
77
77
}
78
78
79
79
/* context.lock is held */
@@ -92,8 +92,8 @@ static void free_ldt_struct(struct ldt_struct *ldt)
92
92
if (likely (!ldt ))
93
93
return ;
94
94
95
- paravirt_free_ldt (ldt -> entries , ldt -> size );
96
- if (ldt -> size * LDT_ENTRY_SIZE > PAGE_SIZE )
95
+ paravirt_free_ldt (ldt -> entries , ldt -> nr_entries );
96
+ if (ldt -> nr_entries * LDT_ENTRY_SIZE > PAGE_SIZE )
97
97
vfree_atomic (ldt -> entries );
98
98
else
99
99
free_page ((unsigned long )ldt -> entries );
@@ -123,14 +123,14 @@ int init_new_context_ldt(struct task_struct *tsk, struct mm_struct *mm)
123
123
goto out_unlock ;
124
124
}
125
125
126
- new_ldt = alloc_ldt_struct (old_mm -> context .ldt -> size );
126
+ new_ldt = alloc_ldt_struct (old_mm -> context .ldt -> nr_entries );
127
127
if (!new_ldt ) {
128
128
retval = - ENOMEM ;
129
129
goto out_unlock ;
130
130
}
131
131
132
132
memcpy (new_ldt -> entries , old_mm -> context .ldt -> entries ,
133
- new_ldt -> size * LDT_ENTRY_SIZE );
133
+ new_ldt -> nr_entries * LDT_ENTRY_SIZE );
134
134
finalize_ldt_struct (new_ldt );
135
135
136
136
mm -> context .ldt = new_ldt ;
@@ -153,9 +153,9 @@ void destroy_context_ldt(struct mm_struct *mm)
153
153
154
154
static int read_ldt (void __user * ptr , unsigned long bytecount )
155
155
{
156
- int retval ;
157
- unsigned long size ;
158
156
struct mm_struct * mm = current -> mm ;
157
+ unsigned long entries_size ;
158
+ int retval ;
159
159
160
160
mutex_lock (& mm -> context .lock );
161
161
@@ -167,18 +167,18 @@ static int read_ldt(void __user *ptr, unsigned long bytecount)
167
167
if (bytecount > LDT_ENTRY_SIZE * LDT_ENTRIES )
168
168
bytecount = LDT_ENTRY_SIZE * LDT_ENTRIES ;
169
169
170
- size = mm -> context .ldt -> size * LDT_ENTRY_SIZE ;
171
- if (size > bytecount )
172
- size = bytecount ;
170
+ entries_size = mm -> context .ldt -> nr_entries * LDT_ENTRY_SIZE ;
171
+ if (entries_size > bytecount )
172
+ entries_size = bytecount ;
173
173
174
- if (copy_to_user (ptr , mm -> context .ldt -> entries , size )) {
174
+ if (copy_to_user (ptr , mm -> context .ldt -> entries , entries_size )) {
175
175
retval = - EFAULT ;
176
176
goto out_unlock ;
177
177
}
178
178
179
- if (size != bytecount ) {
179
+ if (entries_size != bytecount ) {
180
180
/* Zero-fill the rest and pretend we read bytecount bytes. */
181
- if (clear_user (ptr + size , bytecount - size )) {
181
+ if (clear_user (ptr + entries_size , bytecount - entries_size )) {
182
182
retval = - EFAULT ;
183
183
goto out_unlock ;
184
184
}
@@ -209,7 +209,7 @@ static int write_ldt(void __user *ptr, unsigned long bytecount, int oldmode)
209
209
{
210
210
struct mm_struct * mm = current -> mm ;
211
211
struct ldt_struct * new_ldt , * old_ldt ;
212
- unsigned int oldsize , newsize ;
212
+ unsigned int old_nr_entries , new_nr_entries ;
213
213
struct user_desc ldt_info ;
214
214
struct desc_struct ldt ;
215
215
int error ;
@@ -248,17 +248,18 @@ static int write_ldt(void __user *ptr, unsigned long bytecount, int oldmode)
248
248
249
249
mutex_lock (& mm -> context .lock );
250
250
251
- old_ldt = mm -> context .ldt ;
252
- oldsize = old_ldt ? old_ldt -> size : 0 ;
253
- newsize = max (ldt_info .entry_number + 1 , oldsize );
251
+ old_ldt = mm -> context .ldt ;
252
+ old_nr_entries = old_ldt ? old_ldt -> nr_entries : 0 ;
253
+ new_nr_entries = max (ldt_info .entry_number + 1 , old_nr_entries );
254
254
255
255
error = - ENOMEM ;
256
- new_ldt = alloc_ldt_struct (newsize );
256
+ new_ldt = alloc_ldt_struct (new_nr_entries );
257
257
if (!new_ldt )
258
258
goto out_unlock ;
259
259
260
260
if (old_ldt )
261
- memcpy (new_ldt -> entries , old_ldt -> entries , oldsize * LDT_ENTRY_SIZE );
261
+ memcpy (new_ldt -> entries , old_ldt -> entries , old_nr_entries * LDT_ENTRY_SIZE );
262
+
262
263
new_ldt -> entries [ldt_info .entry_number ] = ldt ;
263
264
finalize_ldt_struct (new_ldt );
264
265
0 commit comments