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 ---