@@ -6163,94 +6163,33 @@ static void bnx2x_link_int_ack(struct link_params *params,
6163
6163
6164
6164
static int bnx2x_format_ver (u32 num , u8 * str , u16 * len )
6165
6165
{
6166
- u8 * str_ptr = str ;
6167
- u32 mask = 0xf0000000 ;
6168
- u8 shift = 8 * 4 ;
6169
- u8 digit ;
6170
- u8 remove_leading_zeros = 1 ;
6166
+ u16 ret ;
6167
+
6171
6168
if (* len < 10 ) {
6172
6169
/* Need more than 10chars for this format */
6173
- * str_ptr = '\0' ;
6170
+ * str = '\0' ;
6174
6171
(* len )-- ;
6175
6172
return - EINVAL ;
6176
6173
}
6177
- while (shift > 0 ) {
6178
6174
6179
- shift -= 4 ;
6180
- digit = ((num & mask ) >> shift );
6181
- if (digit == 0 && remove_leading_zeros ) {
6182
- * str_ptr = '0' ;
6183
- } else {
6184
- if (digit < 0xa )
6185
- * str_ptr = digit + '0' ;
6186
- else
6187
- * str_ptr = digit - 0xa + 'a' ;
6188
-
6189
- remove_leading_zeros = 0 ;
6190
- str_ptr ++ ;
6191
- (* len )-- ;
6192
- }
6193
- mask = mask >> 4 ;
6194
- if (shift == 4 * 4 ) {
6195
- if (remove_leading_zeros ) {
6196
- str_ptr ++ ;
6197
- (* len )-- ;
6198
- }
6199
- * str_ptr = '.' ;
6200
- str_ptr ++ ;
6201
- (* len )-- ;
6202
- remove_leading_zeros = 1 ;
6203
- }
6204
- }
6205
- if (remove_leading_zeros )
6206
- (* len )-- ;
6175
+ ret = scnprintf (str , * len , "%hx.%hx" , num >> 16 , num );
6176
+ * len -= ret ;
6207
6177
return 0 ;
6208
6178
}
6209
6179
6210
6180
static int bnx2x_3_seq_format_ver (u32 num , u8 * str , u16 * len )
6211
6181
{
6212
- u8 * str_ptr = str ;
6213
- u32 mask = 0x00f00000 ;
6214
- u8 shift = 8 * 3 ;
6215
- u8 digit ;
6216
- u8 remove_leading_zeros = 1 ;
6182
+ u16 ret ;
6217
6183
6218
6184
if (* len < 10 ) {
6219
6185
/* Need more than 10chars for this format */
6220
- * str_ptr = '\0' ;
6186
+ * str = '\0' ;
6221
6187
(* len )-- ;
6222
6188
return - EINVAL ;
6223
6189
}
6224
6190
6225
- while (shift > 0 ) {
6226
- shift -= 4 ;
6227
- digit = ((num & mask ) >> shift );
6228
- if (digit == 0 && remove_leading_zeros ) {
6229
- * str_ptr = '0' ;
6230
- } else {
6231
- if (digit < 0xa )
6232
- * str_ptr = digit + '0' ;
6233
- else
6234
- * str_ptr = digit - 0xa + 'a' ;
6235
-
6236
- remove_leading_zeros = 0 ;
6237
- str_ptr ++ ;
6238
- (* len )-- ;
6239
- }
6240
- mask = mask >> 4 ;
6241
- if ((shift == 4 * 4 ) || (shift == 4 * 2 )) {
6242
- if (remove_leading_zeros ) {
6243
- str_ptr ++ ;
6244
- (* len )-- ;
6245
- }
6246
- * str_ptr = '.' ;
6247
- str_ptr ++ ;
6248
- (* len )-- ;
6249
- remove_leading_zeros = 1 ;
6250
- }
6251
- }
6252
- if (remove_leading_zeros )
6253
- (* len )-- ;
6191
+ ret = scnprintf (str , * len , "%hhx.%hhx.%hhx" , num >> 16 , num >> 8 , num );
6192
+ * len -= ret ;
6254
6193
return 0 ;
6255
6194
}
6256
6195
0 commit comments