@@ -114,27 +114,12 @@ struct os_area_params {
114
114
#define SECONDS_FROM_1970_TO_2000 946684800LL
115
115
116
116
/**
117
- * struct saved_params - Static working copies of data from the 'Other OS' area.
118
- *
119
- * For the convinience of the guest, the HV makes a copy of the 'Other OS' area
120
- * in flash to a high address in the boot memory region and then puts that RAM
121
- * address and the byte count into the repository for retreval by the guest.
122
- * We copy the data we want into a static variable and allow the memory setup
123
- * by the HV to be claimed by the lmb manager.
117
+ * struct saved_params - Static working copies of data from the PS3 'os area'.
124
118
*/
125
119
126
120
struct saved_params {
127
- /* param 0 */
128
121
s64 rtc_diff ;
129
122
unsigned int av_multi_out ;
130
- unsigned int ctrl_button ;
131
- /* param 1 */
132
- u8 static_ip_addr [4 ];
133
- u8 network_mask [4 ];
134
- u8 default_gateway [4 ];
135
- /* param 2 */
136
- u8 dns_primary [4 ];
137
- u8 dns_secondary [4 ];
138
123
} static saved_params ;
139
124
140
125
#define dump_header (_a ) _dump_header(_a, __func__, __LINE__)
@@ -201,20 +186,32 @@ static int __init verify_header(const struct os_area_header *header)
201
186
return 0 ;
202
187
}
203
188
204
- int __init ps3_os_area_init (void )
189
+ /**
190
+ * ps3_os_area_save_params - Copy data from os area mirror to @saved_params.
191
+ *
192
+ * For the convenience of the guest, the HV makes a copy of the os area in
193
+ * flash to a high address in the boot memory region and then puts that RAM
194
+ * address and the byte count into the repository for retreval by the guest.
195
+ * We copy the data we want into a static variable and allow the memory setup
196
+ * by the HV to be claimed by the lmb manager.
197
+ */
198
+
199
+ void __init ps3_os_area_save_params (void )
205
200
{
206
201
int result ;
207
202
u64 lpar_addr ;
208
203
unsigned int size ;
209
204
struct os_area_header * header ;
210
205
struct os_area_params * params ;
211
206
207
+ pr_debug (" -> %s:%d\n" , __func__ , __LINE__ );
208
+
212
209
result = ps3_repository_read_boot_dat_info (& lpar_addr , & size );
213
210
214
211
if (result ) {
215
212
pr_debug ("%s:%d ps3_repository_read_boot_dat_info failed\n" ,
216
213
__func__ , __LINE__ );
217
- return result ;
214
+ return ;
218
215
}
219
216
220
217
header = (struct os_area_header * )__va (lpar_addr );
@@ -226,21 +223,18 @@ int __init ps3_os_area_init(void)
226
223
if (result ) {
227
224
pr_debug ("%s:%d verify_header failed\n" , __func__ , __LINE__ );
228
225
dump_header (header );
229
- return - EIO ;
226
+ return ;
230
227
}
231
228
232
229
dump_header (header );
233
230
dump_params (params );
234
231
235
232
saved_params .rtc_diff = params -> rtc_diff ;
236
233
saved_params .av_multi_out = params -> av_multi_out ;
237
- saved_params .ctrl_button = params -> ctrl_button ;
238
- memcpy (saved_params .static_ip_addr , params -> static_ip_addr , 4 );
239
- memcpy (saved_params .network_mask , params -> network_mask , 4 );
240
- memcpy (saved_params .default_gateway , params -> default_gateway , 4 );
241
- memcpy (saved_params .dns_secondary , params -> dns_secondary , 4 );
242
234
243
- return result ;
235
+ memset (header , 0 , sizeof (* header ));
236
+
237
+ pr_debug (" <- %s:%d\n" , __func__ , __LINE__ );
244
238
}
245
239
246
240
/**
0 commit comments