ps3-lpm.c (75bf465f0bc33e9b776a46d6a1b9b990f5fb7c37) | ps3-lpm.c (7bfc3c84cbf5167d943cff9b3d2619dab0b7894c) |
---|---|
1// SPDX-License-Identifier: GPL-2.0-only 2/* 3 * PS3 Logical Performance Monitor. 4 * 5 * Copyright (C) 2007 Sony Computer Entertainment Inc. 6 * Copyright 2007 Sony Corp. 7 */ 8 --- 1082 unchanged lines hidden (view full) --- 1091 1092 /* Note tb_cache needs 128 byte alignment. */ 1093 1094 if (tb_type == PS3_LPM_TB_TYPE_NONE) { 1095 lpm_priv->tb_cache_size = 0; 1096 lpm_priv->tb_cache_internal = NULL; 1097 lpm_priv->tb_cache = NULL; 1098 } else if (tb_cache) { | 1// SPDX-License-Identifier: GPL-2.0-only 2/* 3 * PS3 Logical Performance Monitor. 4 * 5 * Copyright (C) 2007 Sony Computer Entertainment Inc. 6 * Copyright 2007 Sony Corp. 7 */ 8 --- 1082 unchanged lines hidden (view full) --- 1091 1092 /* Note tb_cache needs 128 byte alignment. */ 1093 1094 if (tb_type == PS3_LPM_TB_TYPE_NONE) { 1095 lpm_priv->tb_cache_size = 0; 1096 lpm_priv->tb_cache_internal = NULL; 1097 lpm_priv->tb_cache = NULL; 1098 } else if (tb_cache) { |
1099 if (tb_cache != (void *)_ALIGN_UP((unsigned long)tb_cache, 128) 1100 || tb_cache_size != _ALIGN_UP(tb_cache_size, 128)) { | 1099 if (tb_cache != (void *)ALIGN((unsigned long)tb_cache, 128) 1100 || tb_cache_size != ALIGN(tb_cache_size, 128)) { |
1101 dev_err(sbd_core(), "%s:%u: unaligned tb_cache\n", 1102 __func__, __LINE__); 1103 result = -EINVAL; 1104 goto fail_align; 1105 } 1106 lpm_priv->tb_cache_size = tb_cache_size; 1107 lpm_priv->tb_cache_internal = NULL; 1108 lpm_priv->tb_cache = tb_cache; 1109 } else { 1110 lpm_priv->tb_cache_size = PS3_LPM_DEFAULT_TB_CACHE_SIZE; 1111 lpm_priv->tb_cache_internal = kzalloc( 1112 lpm_priv->tb_cache_size + 127, GFP_KERNEL); 1113 if (!lpm_priv->tb_cache_internal) { 1114 dev_err(sbd_core(), "%s:%u: alloc internal tb_cache " 1115 "failed\n", __func__, __LINE__); 1116 result = -ENOMEM; 1117 goto fail_malloc; 1118 } | 1101 dev_err(sbd_core(), "%s:%u: unaligned tb_cache\n", 1102 __func__, __LINE__); 1103 result = -EINVAL; 1104 goto fail_align; 1105 } 1106 lpm_priv->tb_cache_size = tb_cache_size; 1107 lpm_priv->tb_cache_internal = NULL; 1108 lpm_priv->tb_cache = tb_cache; 1109 } else { 1110 lpm_priv->tb_cache_size = PS3_LPM_DEFAULT_TB_CACHE_SIZE; 1111 lpm_priv->tb_cache_internal = kzalloc( 1112 lpm_priv->tb_cache_size + 127, GFP_KERNEL); 1113 if (!lpm_priv->tb_cache_internal) { 1114 dev_err(sbd_core(), "%s:%u: alloc internal tb_cache " 1115 "failed\n", __func__, __LINE__); 1116 result = -ENOMEM; 1117 goto fail_malloc; 1118 } |
1119 lpm_priv->tb_cache = (void *)_ALIGN_UP( | 1119 lpm_priv->tb_cache = (void *)ALIGN( |
1120 (unsigned long)lpm_priv->tb_cache_internal, 128); 1121 } 1122 1123 result = lv1_construct_lpm(lpm_priv->node_id, tb_type, 0, 0, 1124 ps3_mm_phys_to_lpar(__pa(lpm_priv->tb_cache)), 1125 lpm_priv->tb_cache_size, &lpm_priv->lpm_id, 1126 &lpm_priv->outlet_id, &tb_size); 1127 --- 114 unchanged lines hidden --- | 1120 (unsigned long)lpm_priv->tb_cache_internal, 128); 1121 } 1122 1123 result = lv1_construct_lpm(lpm_priv->node_id, tb_type, 0, 0, 1124 ps3_mm_phys_to_lpar(__pa(lpm_priv->tb_cache)), 1125 lpm_priv->tb_cache_size, &lpm_priv->lpm_id, 1126 &lpm_priv->outlet_id, &tb_size); 1127 --- 114 unchanged lines hidden --- |