Merge "9300: kernel : make some changes for ESD" into mnc-dr-dev-qcom-lego
diff --git a/arch/arm/configs/msm8952-perf_defconfig b/arch/arm/configs/msm8952-perf_defconfig
index 7e04411..68032ac 100644
--- a/arch/arm/configs/msm8952-perf_defconfig
+++ b/arch/arm/configs/msm8952-perf_defconfig
@@ -169,6 +169,7 @@
CONFIG_IP_NF_IPTABLES=y
CONFIG_IP_NF_MATCH_AH=y
CONFIG_IP_NF_MATCH_ECN=y
+CONFIG_IP_NF_MATCH_RPFILTER=y
CONFIG_IP_NF_MATCH_TTL=y
CONFIG_IP_NF_FILTER=y
CONFIG_IP_NF_TARGET_REJECT=y
@@ -184,6 +185,7 @@
CONFIG_IP_NF_ARP_MANGLE=y
CONFIG_NF_CONNTRACK_IPV6=y
CONFIG_IP6_NF_IPTABLES=y
+CONFIG_IP6_NF_MATCH_RPFILTER=y
CONFIG_IP6_NF_FILTER=y
CONFIG_IP6_NF_TARGET_REJECT=y
CONFIG_IP6_NF_MANGLE=y
diff --git a/arch/arm/configs/msm8952_defconfig b/arch/arm/configs/msm8952_defconfig
index ef8700e4..69fcca4 100644
--- a/arch/arm/configs/msm8952_defconfig
+++ b/arch/arm/configs/msm8952_defconfig
@@ -169,6 +169,7 @@
CONFIG_IP_NF_IPTABLES=y
CONFIG_IP_NF_MATCH_AH=y
CONFIG_IP_NF_MATCH_ECN=y
+CONFIG_IP_NF_MATCH_RPFILTER=y
CONFIG_IP_NF_MATCH_TTL=y
CONFIG_IP_NF_FILTER=y
CONFIG_IP_NF_TARGET_REJECT=y
@@ -184,6 +185,7 @@
CONFIG_IP_NF_ARP_MANGLE=y
CONFIG_NF_CONNTRACK_IPV6=y
CONFIG_IP6_NF_IPTABLES=y
+CONFIG_IP6_NF_MATCH_RPFILTER=y
CONFIG_IP6_NF_FILTER=y
CONFIG_IP6_NF_TARGET_REJECT=y
CONFIG_IP6_NF_MANGLE=y
diff --git a/arch/arm64/kernel/sys.c b/arch/arm64/kernel/sys.c
index 3fa98ff..df20b79 100644
--- a/arch/arm64/kernel/sys.c
+++ b/arch/arm64/kernel/sys.c
@@ -50,7 +50,7 @@
* The sys_call_table array must be 4K aligned to be accessible from
* kernel/entry.S.
*/
-void *sys_call_table[__NR_syscalls] __aligned(4096) = {
+void * const sys_call_table[__NR_syscalls] __aligned(4096) = {
[0 ... __NR_syscalls - 1] = sys_ni_syscall,
#include <asm/unistd.h>
};
diff --git a/drivers/android/binder.c b/drivers/android/binder.c
index f79695a..278b00c 100644
--- a/drivers/android/binder.c
+++ b/drivers/android/binder.c
@@ -477,7 +477,7 @@
new_buffer_size = binder_buffer_size(proc, new_buffer);
binder_debug(BINDER_DEBUG_BUFFER_ALLOC,
- "%d: add free buffer, size %zd, at %p\n",
+ "%d: add free buffer, size %zd, at %pK\n",
proc->pid, new_buffer_size, new_buffer);
while (*p) {
@@ -555,7 +555,7 @@
struct mm_struct *mm;
binder_debug(BINDER_DEBUG_BUFFER_ALLOC,
- "%d: %s pages %p-%p\n", proc->pid,
+ "%d: %s pages %pK-%pK\n", proc->pid,
allocate ? "allocate" : "free", start, end);
if (end <= start)
@@ -595,7 +595,7 @@
BUG_ON(*page);
*page = alloc_page(GFP_KERNEL | __GFP_HIGHMEM | __GFP_ZERO);
if (*page == NULL) {
- pr_err("%d: binder_alloc_buf failed for page at %p\n",
+ pr_err("%d: binder_alloc_buf failed for page at %pK\n",
proc->pid, page_addr);
goto err_alloc_page_failed;
}
@@ -604,7 +604,7 @@
flush_cache_vmap((unsigned long)page_addr,
(unsigned long)page_addr + PAGE_SIZE);
if(ret != 1){
- pr_err("%d: binder_alloc_buf failed to map page at %p in kernel\n",
+ pr_err("%d: binder_alloc_buf failed to map page at %pK in kernel\n",
proc->pid, page_addr);
goto err_map_kernel_failed;
}
@@ -708,7 +708,7 @@
}
binder_debug(BINDER_DEBUG_BUFFER_ALLOC,
- "%d: binder_alloc_buf size %zd got buffer %p size %zd\n",
+ "%d: binder_alloc_buf size %zd got buffer %pK size %zd\n",
proc->pid, size, buffer, buffer_size);
has_page_addr =
@@ -738,7 +738,7 @@
binder_insert_free_buffer(proc, new_buffer);
}
binder_debug(BINDER_DEBUG_BUFFER_ALLOC,
- "%d: binder_alloc_buf size %zd got %p\n",
+ "%d: binder_alloc_buf size %zd got %pK\n",
proc->pid, size, buffer);
buffer->data_size = data_size;
buffer->offsets_size = offsets_size;
@@ -778,7 +778,7 @@
if (buffer_end_page(prev) == buffer_end_page(buffer))
free_page_end = 0;
binder_debug(BINDER_DEBUG_BUFFER_ALLOC,
- "%d: merge free, buffer %p share page with %p\n",
+ "%d: merge free, buffer %pK share page with %pK\n",
proc->pid, buffer, prev);
}
@@ -791,14 +791,14 @@
buffer_start_page(buffer))
free_page_start = 0;
binder_debug(BINDER_DEBUG_BUFFER_ALLOC,
- "%d: merge free, buffer %p share page with %p\n",
+ "%d: merge free, buffer %pK share page with %pK\n",
proc->pid, buffer, prev);
}
}
list_del(&buffer->entry);
if (free_page_start || free_page_end) {
binder_debug(BINDER_DEBUG_BUFFER_ALLOC,
- "%d: merge free, buffer %p do not share page%s%s with %p or %p\n",
+ "%d: merge free, buffer %pK do not share page%s%s with %pK or %pK\n",
proc->pid, buffer, free_page_start ? "" : " end",
free_page_end ? "" : " start", prev, next);
binder_update_page_range(proc, 0, free_page_start ?
@@ -819,7 +819,7 @@
ALIGN(buffer->offsets_size, sizeof(void *));
binder_debug(BINDER_DEBUG_BUFFER_ALLOC,
- "%d: binder_free_buf %p size %zd buffer_size %zd\n",
+ "%d: binder_free_buf %pK size %zd buffer_size %zd\n",
proc->pid, buffer, size, buffer_size);
BUG_ON(buffer->free);
@@ -1252,7 +1252,7 @@
int debug_id = buffer->debug_id;
binder_debug(BINDER_DEBUG_TRANSACTION,
- "%d buffer release %d, size %zd-%zd, failed at %p\n",
+ "%d buffer release %d, size %zd-%zd, failed at %pK\n",
proc->pid, buffer->debug_id,
buffer->data_size, buffer->offsets_size, failed_at);
@@ -2092,9 +2092,8 @@
}
}
binder_debug(BINDER_DEBUG_DEAD_BINDER,
- "%d:%d BC_DEAD_BINDER_DONE %016llx found %p\n",
- proc->pid, thread->pid, (u64)cookie,
- death);
+ "%d:%d BC_DEAD_BINDER_DONE %016llx found %pK\n",
+ proc->pid, thread->pid, (u64)cookie, death);
if (death == NULL) {
binder_user_error("%d:%d BC_DEAD_BINDER_DONE %016llx not found\n",
proc->pid, thread->pid, (u64)cookie);
@@ -2892,7 +2891,7 @@
#ifdef CONFIG_CPU_CACHE_VIPT
if (cache_is_vipt_aliasing()) {
while (CACHE_COLOUR((vma->vm_start ^ (uint32_t)proc->buffer))) {
- pr_info("binder_mmap: %d %lx-%lx maps %p bad alignment\n", proc->pid, vma->vm_start, vma->vm_end, proc->buffer);
+ pr_info("binder_mmap: %d %lx-%lx maps %pK bad alignment\n", proc->pid, vma->vm_start, vma->vm_end, proc->buffer);
vma->vm_start += PAGE_SIZE;
}
}
@@ -2924,7 +2923,7 @@
proc->vma = vma;
proc->vma_vm_mm = vma->vm_mm;
- /*pr_info("binder_mmap: %d %lx-%lx maps %p\n",
+ /*pr_info("binder_mmap: %d %lx-%lx maps %pK\n",
proc->pid, vma->vm_start, vma->vm_end, proc->buffer);*/
return 0;
@@ -3150,7 +3149,7 @@
page_addr = proc->buffer + i * PAGE_SIZE;
binder_debug(BINDER_DEBUG_BUFFER_ALLOC,
- "%s: %d: page %d at %p not freed\n",
+ "%s: %d: page %d at %pK not freed\n",
__func__, proc->pid, i, page_addr);
unmap_kernel_range((unsigned long)page_addr, PAGE_SIZE);
__free_page(proc->pages[i]);
@@ -3229,7 +3228,7 @@
struct binder_transaction *t)
{
seq_printf(m,
- "%s %d: %p from %d:%d to %d:%d code %x flags %x pri %ld r%d",
+ "%s %d: %pK from %d:%d to %d:%d code %x flags %x pri %ld r%d",
prefix, t->debug_id, t,
t->from ? t->from->proc->pid : 0,
t->from ? t->from->pid : 0,
@@ -3243,7 +3242,7 @@
if (t->buffer->target_node)
seq_printf(m, " node %d",
t->buffer->target_node->debug_id);
- seq_printf(m, " size %zd:%zd data %p\n",
+ seq_printf(m, " size %zd:%zd data %pK\n",
t->buffer->data_size, t->buffer->offsets_size,
t->buffer->data);
}
@@ -3251,7 +3250,7 @@
static void print_binder_buffer(struct seq_file *m, const char *prefix,
struct binder_buffer *buffer)
{
- seq_printf(m, "%s %d: %p size %zd:%zd %s\n",
+ seq_printf(m, "%s %d: %pK size %zd:%zd %s\n",
prefix, buffer->debug_id, buffer->data,
buffer->data_size, buffer->offsets_size,
buffer->transaction ? "active" : "delivered");
diff --git a/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_fw_update.c b/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_fw_update.c
index 79f678a..b37915c 100644
--- a/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_fw_update.c
+++ b/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_fw_update.c
@@ -360,6 +360,22 @@
DECLARE_COMPLETION(fwu_dsx_remove_complete);
DEFINE_MUTEX(dsx_fwu_sysfs_mutex);
+/* Check offset + size <= bound. 1 if in bounds, 0 otherwise. */
+static int in_bounds(unsigned long offset,
+ unsigned long size,
+ unsigned long bound)
+{
+ if (offset > bound || size > bound) {
+ pr_err("%s: %lu or %lu > %lu\n", __func__, offset, size, bound);
+ return 0;
+ }
+ if (offset > (bound - size)) {
+ pr_err("%s: %lu > %lu - %lu\n", __func__, offset, size, bound);
+ return 0;
+ }
+ return 1;
+}
+
static unsigned int extract_uint_le(const unsigned char *ptr)
{
return (unsigned int)ptr[0] +
@@ -368,10 +384,17 @@
(unsigned int)ptr[3] * 0x1000000;
}
-static void parse_header(struct image_header_data *header,
- const unsigned char *fw_image)
+static int parse_header(struct image_header_data *header,
+ const unsigned char *fw_image,
+ const unsigned long fw_image_len)
{
struct image_header *data = (struct image_header *)fw_image;
+ if (fw_image_len < sizeof(*data)) {
+ dev_err(fwu->rmi4_data->pdev->dev.parent,
+ "%s: update too small\n",
+ __func__);
+ return -EINVAL;
+ }
header->checksum = extract_uint_le(data->checksum);
@@ -391,7 +414,7 @@
if (header->contains_firmware_id)
header->firmware_id = extract_uint_le(data->firmware_id);
- return;
+ return 0;
}
static int fwu_read_f01_device_status(struct f01_device_status *status)
@@ -1260,9 +1283,29 @@
/* Jump to the config area if given a packrat image */
if ((fwu->config_area == UI_CONFIG_AREA) &&
(fwu->config_size != fwu->image_size)) {
- parse_header(&header, fwu->ext_data_source);
+ if (parse_header(&header,
+ fwu->ext_data_source,
+ fwu->image_size)) {
+ return -EINVAL;
+ }
if (header.config_size) {
+ if (!in_bounds(FW_IMAGE_OFFSET,
+ header.firmware_size,
+ fwu->image_size)) {
+ dev_err(rmi4_data->pdev->dev.parent,
+ "%s: Firmware out of bounds\n",
+ __func__);
+ return -EINVAL;
+ }
+ if (!in_bounds(FW_IMAGE_OFFSET + header.firmware_size,
+ header.config_size,
+ fwu->image_size)) {
+ dev_err(rmi4_data->pdev->dev.parent,
+ "%s: Config out of bounds\n",
+ __func__);
+ return -EINVAL;
+ }
fwu->config_data = fwu->ext_data_source +
FW_IMAGE_OFFSET +
header.firmware_size;
@@ -1439,6 +1482,7 @@
struct image_header_data header;
struct f01_device_status f01_device_status;
const unsigned char *fw_image;
+ unsigned long fw_image_len = 0;
const struct firmware *fw_entry = NULL;
struct synaptics_rmi4_data *rmi4_data = fwu->rmi4_data;
@@ -1455,6 +1499,7 @@
if (fwu->ext_data_source) {
fw_image = fwu->ext_data_source;
+ fw_image_len = fwu->image_size;
} else {
dev_dbg(rmi4_data->pdev->dev.parent,
"%s: Requesting firmware image %s\n",
@@ -1475,13 +1520,20 @@
__func__, fw_entry->size);
fw_image = fw_entry->data;
+ fw_image_len = fw_entry->size;
}
- parse_header(&header, fw_image);
+ if (parse_header(&header, fw_image, fw_image_len)) {
+ dev_err(rmi4_data->pdev->dev.parent,
+ "%s: couldn't parse header\n",
+ __func__);
+ retval = -EINVAL;
+ goto exit;
+ }
if (fwu->bl_version != header.bootloader_version) {
dev_err(rmi4_data->pdev->dev.parent,
- "%s: Bootloader version mismatch\n",
+ "%s: bootloader version mismatch\n",
__func__);
retval = -EINVAL;
goto exit;
@@ -1517,9 +1569,26 @@
}
}
- if (header.firmware_size)
+ if (header.firmware_size) {
+ if (!in_bounds(FW_IMAGE_OFFSET,
+ header.firmware_size,
+ fw_image_len)) {
+ dev_err(rmi4_data->pdev->dev.parent,
+ "%s: Firmware out of bounds\n",
+ __func__);
+ return -EINVAL;
+ }
fwu->firmware_data = fw_image + FW_IMAGE_OFFSET;
+ }
if (header.config_size) {
+ if (!in_bounds(FW_IMAGE_OFFSET + header.firmware_size,
+ header.config_size,
+ fw_image_len)) {
+ dev_err(rmi4_data->pdev->dev.parent,
+ "%s: Config out of bounds\n",
+ __func__);
+ return -EINVAL;
+ }
fwu->config_data = fw_image + FW_IMAGE_OFFSET +
header.firmware_size;
}
diff --git a/drivers/media/platform/msm/camera_v2/isp/msm_buf_mgr.c b/drivers/media/platform/msm/camera_v2/isp/msm_buf_mgr.c
index 779337e..489ebb1 100644
--- a/drivers/media/platform/msm/camera_v2/isp/msm_buf_mgr.c
+++ b/drivers/media/platform/msm/camera_v2/isp/msm_buf_mgr.c
@@ -258,7 +258,7 @@
int iommu_hdl;
if (!buf_mgr || !mapped_info) {
- pr_err_ratelimited("%s: %d] NULL ptr buf_mgr %p mapped_info %p\n",
+ pr_err_ratelimited("%s: %d] NULL ptr buf_mgr %pK mapped_info %pK\n",
__func__, __LINE__, buf_mgr, mapped_info);
return -EINVAL;
}
diff --git a/drivers/media/platform/msm/camera_v2/isp/msm_isp40.c b/drivers/media/platform/msm/camera_v2/isp/msm_isp40.c
index fc070d1..be505f8 100644
--- a/drivers/media/platform/msm/camera_v2/isp/msm_isp40.c
+++ b/drivers/media/platform/msm/camera_v2/isp/msm_isp40.c
@@ -1109,7 +1109,7 @@
rc = vfe_dev->buf_mgr->ops->get_buf_by_index(
vfe_dev->buf_mgr, bufq_handle, fe_cfg->buf_idx, &buf);
if (rc < 0 || !buf) {
- pr_err("%s: No fetch buffer rc= %d buf= %p\n",
+ pr_err("%s: No fetch buffer rc= %d buf= %pK\n",
__func__, rc, buf);
return -EINVAL;
}
diff --git a/drivers/media/platform/msm/camera_v2/isp/msm_isp46.c b/drivers/media/platform/msm/camera_v2/isp/msm_isp46.c
index 6d9854b..bec1aa2 100644
--- a/drivers/media/platform/msm/camera_v2/isp/msm_isp46.c
+++ b/drivers/media/platform/msm/camera_v2/isp/msm_isp46.c
@@ -897,7 +897,7 @@
rc = vfe_dev->buf_mgr->ops->get_buf_by_index(
vfe_dev->buf_mgr, bufq_handle, fe_cfg->buf_idx, &buf);
if (rc < 0 || !buf) {
- pr_err("%s: No fetch buffer rc= %d buf= %p\n",
+ pr_err("%s: No fetch buffer rc= %d buf= %pK\n",
__func__, rc, buf);
return -EINVAL;
}
diff --git a/drivers/media/platform/msm/camera_v2/isp/msm_isp47.c b/drivers/media/platform/msm/camera_v2/isp/msm_isp47.c
index b79e872..35b0368 100644
--- a/drivers/media/platform/msm/camera_v2/isp/msm_isp47.c
+++ b/drivers/media/platform/msm/camera_v2/isp/msm_isp47.c
@@ -936,7 +936,7 @@
rc = vfe_dev->buf_mgr->ops->get_buf_by_index(
vfe_dev->buf_mgr, bufq_handle, fe_cfg->buf_idx, &buf);
if (rc < 0 || !buf) {
- pr_err("%s: No fetch buffer rc= %d buf= %p\n",
+ pr_err("%s: No fetch buffer rc= %d buf= %pK\n",
__func__, rc, buf);
return -EINVAL;
}
diff --git a/drivers/media/platform/msm/camera_v2/isp/msm_isp_axi_util.c b/drivers/media/platform/msm/camera_v2/isp/msm_isp_axi_util.c
index a46b471..72b1772 100755
--- a/drivers/media/platform/msm/camera_v2/isp/msm_isp_axi_util.c
+++ b/drivers/media/platform/msm/camera_v2/isp/msm_isp_axi_util.c
@@ -601,7 +601,7 @@
int i;
if (!vfe_dev || !sof_info) {
- pr_err("%s %d failed: vfe_dev %p sof_info %p\n", __func__,
+ pr_err("%s %d failed: vfe_dev %pK sof_info %pK\n", __func__,
__LINE__, vfe_dev, sof_info);
return;
}
@@ -1545,7 +1545,7 @@
!dual_vfe_res->axi_data[ISP_VFE0] ||
!dual_vfe_res->vfe_base[ISP_VFE1] ||
!dual_vfe_res->axi_data[ISP_VFE1]) {
- pr_err("%s:%d failed vfe0 %p %p vfe %p %p\n",
+ pr_err("%s:%d failed vfe0 %pK %pK vfe %pK %pK\n",
__func__, __LINE__,
dual_vfe_res->vfe_base[ISP_VFE0],
dual_vfe_res->axi_data[ISP_VFE0],
@@ -1804,7 +1804,7 @@
struct msm_isp_bufq *bufq = NULL;
if (!vfe_dev || !stream_info || !ts || !sof_info) {
- pr_err("%s %d vfe_dev %p stream_info %p ts %p op_info %p\n",
+ pr_err("%s %d vfe_dev %pK stream_info %pK ts %pK op_info %pK\n",
__func__, __LINE__, vfe_dev, stream_info, ts,
sof_info);
return -EINVAL;
@@ -2136,7 +2136,7 @@
uint32_t bufq_handle = 0, bufq_id = 0;
if (!reset_cmd) {
- pr_err("%s: NULL pointer reset cmd %p\n", __func__, reset_cmd);
+ pr_err("%s: NULL pointer reset cmd %pK\n", __func__, reset_cmd);
rc = -1;
return rc;
}
@@ -2166,7 +2166,7 @@
bufq = vfe_dev->buf_mgr->ops->get_bufq(vfe_dev->buf_mgr,
bufq_handle);
if (!bufq) {
- pr_err("%s: bufq null %p by handle %x\n",
+ pr_err("%s: bufq null %pK by handle %x\n",
__func__, bufq, bufq_handle);
continue;
}
@@ -2865,7 +2865,7 @@
struct msm_isp_timestamp timestamp;
if (!vfe_dev || !stream_info) {
- pr_err("%s %d failed: vfe_dev %p stream_info %p\n", __func__,
+ pr_err("%s %d failed: vfe_dev %pK stream_info %pK\n", __func__,
__LINE__, vfe_dev, stream_info);
return -EINVAL;
}
@@ -2937,7 +2937,7 @@
uint32_t vfe_id = 0;
if (!vfe_dev || !stream_info) {
- pr_err("%s %d failed: vfe_dev %p stream_info %p\n", __func__,
+ pr_err("%s %d failed: vfe_dev %pK stream_info %pK\n", __func__,
__LINE__, vfe_dev, stream_info);
return -EINVAL;
}
@@ -3422,7 +3422,7 @@
int i, j;
if (!vfe_dev || !axi_data) {
- pr_err("%s: error %p %p\n", __func__, vfe_dev, axi_data);
+ pr_err("%s: error %pK %pK\n", __func__, vfe_dev, axi_data);
return;
}
diff --git a/drivers/media/platform/msm/camera_v2/isp/msm_isp_stats_util.c b/drivers/media/platform/msm/camera_v2/isp/msm_isp_stats_util.c
index ffa658a..0357e2c 100644
--- a/drivers/media/platform/msm/camera_v2/isp/msm_isp_stats_util.c
+++ b/drivers/media/platform/msm/camera_v2/isp/msm_isp_stats_util.c
@@ -65,8 +65,8 @@
!dual_vfe_res->stats_data[ISP_VFE0] ||
!dual_vfe_res->vfe_base[ISP_VFE1] ||
!dual_vfe_res->stats_data[ISP_VFE1]) {
- pr_err("%s:%d error vfe0 %p %p vfe1 %p %p\n", __func__,
- __LINE__, dual_vfe_res->vfe_base[ISP_VFE0],
+ pr_err("%s:%d error vfe0 %pK %pK vfe1 %pK %pK\n",
+ __func__,__LINE__, dual_vfe_res->vfe_base[ISP_VFE0],
dual_vfe_res->stats_data[ISP_VFE0],
dual_vfe_res->vfe_base[ISP_VFE1],
dual_vfe_res->stats_data[ISP_VFE1]);
@@ -114,7 +114,7 @@
if (!vfe_dev || !done_buf || !ts || !buf_event || !stream_info ||
!comp_stats_type_mask) {
- pr_err("%s:%d failed: invalid params %p %p %p %p %p %p\n",
+ pr_err("%s:%d failed: invalid params %pK %pK %pK %pK %pK %pK\n",
__func__, __LINE__, vfe_dev, done_buf, ts, buf_event,
stream_info, comp_stats_type_mask);
return -EINVAL;
diff --git a/drivers/media/platform/msm/camera_v2/isp/msm_isp_util.c b/drivers/media/platform/msm/camera_v2/isp/msm_isp_util.c
index cf18aa6..3030d63 100644
--- a/drivers/media/platform/msm/camera_v2/isp/msm_isp_util.c
+++ b/drivers/media/platform/msm/camera_v2/isp/msm_isp_util.c
@@ -86,7 +86,7 @@
int i;
u32 *p = (u32 *) addr;
u32 data;
- pr_err("%s: %p %d\n", __func__, addr, size);
+ pr_err("%s: %pK %d\n", __func__, addr, size);
line_str[0] = '\0';
p_str = line_str;
for (i = 0; i < size/4; i++) {
@@ -496,14 +496,14 @@
long round_rate = 0;
if (!vfe_dev || !rate) {
- pr_err("%s:%d failed: vfe_dev %p rate %p\n", __func__, __LINE__,
- vfe_dev, rate);
+ pr_err("%s:%d failed: vfe_dev %pK rate %pK\n", __func__,
+ __LINE__, vfe_dev, rate);
return -EINVAL;
}
*rate = 0;
if (!vfe_dev->hw_info) {
- pr_err("%s:%d failed: vfe_dev->hw_info %p\n", __func__,
+ pr_err("%s:%d failed: vfe_dev->hw_info %pK\n", __func__,
__LINE__, vfe_dev->hw_info);
return -EINVAL;
}
@@ -533,13 +533,13 @@
int32_t rc = 0;
uint32_t svs = 0, nominal = 0, turbo = 0;
if (!vfe_dev || !rates) {
- pr_err("%s:%d failed: vfe_dev %p rates %p\n", __func__,
+ pr_err("%s:%d failed: vfe_dev %pK rates %pK\n", __func__,
__LINE__, vfe_dev, rates);
return -EINVAL;
}
if (!vfe_dev->pdev) {
- pr_err("%s:%d failed: vfe_dev->pdev %p\n", __func__,
+ pr_err("%s:%d failed: vfe_dev->pdev %pK\n", __func__,
__LINE__, vfe_dev->pdev);
return -EINVAL;
}
@@ -547,7 +547,7 @@
of_node = vfe_dev->pdev->dev.of_node;
if (!of_node) {
- pr_err("%s %d failed: of_node = %p\n", __func__,
+ pr_err("%s %d failed: of_node = %pK\n", __func__,
__LINE__, of_node);
return -EINVAL;
}
@@ -729,7 +729,7 @@
struct msm_isp_set_stats_ab *stats_ab = NULL;
if (!vfe_dev || !arg) {
- pr_err("%s: Error! Invalid input vfe_dev %p arg %p\n",
+ pr_err("%s: Error! Invalid input vfe_dev %pK arg %pK\n",
__func__, vfe_dev, arg);
return -EINVAL;
}
@@ -779,7 +779,7 @@
struct msm_vfe_src_info *src_info = NULL;
if (!vfe_dev || !arg) {
- pr_err("%s: Error! Invalid input vfe_dev %p arg %p\n",
+ pr_err("%s: Error! Invalid input vfe_dev %pK arg %pK\n",
__func__, vfe_dev, arg);
return -EINVAL;
}
@@ -866,7 +866,7 @@
struct msm_vfe_cfg_cmd_list cmd, cmd_next;
if (!vfe_dev || !arg) {
- pr_err("%s:%d failed: vfe_dev %p arg %p", __func__, __LINE__,
+ pr_err("%s:%d failed: vfe_dev %pK arg %pK", __func__, __LINE__,
vfe_dev, arg);
return -EINVAL;
}
@@ -936,7 +936,7 @@
struct msm_vfe_cfg_cmd2 current_cmd;
if (!vfe_dev || !arg) {
- pr_err("%s:%d failed: vfe_dev %p arg %p", __func__, __LINE__,
+ pr_err("%s:%d failed: vfe_dev %pK arg %pK", __func__, __LINE__,
vfe_dev, arg);
return -EINVAL;
}
@@ -992,10 +992,10 @@
struct vfe_device *vfe_dev = v4l2_get_subdevdata(sd);
if (!vfe_dev || !vfe_dev->vfe_base) {
- pr_err("%s:%d failed: invalid params %p\n",
+ pr_err("%s:%d failed: invalid params %pK\n",
__func__, __LINE__, vfe_dev);
if (vfe_dev)
- pr_err("%s:%d failed %p\n", __func__,
+ pr_err("%s:%d failed %pK\n", __func__,
__LINE__, vfe_dev->vfe_base);
return -EINVAL;
}
@@ -1168,10 +1168,10 @@
long rc = 0;
if (!vfe_dev || !vfe_dev->vfe_base) {
- pr_err("%s:%d failed: invalid params %p\n",
+ pr_err("%s:%d failed: invalid params %pK\n",
__func__, __LINE__, vfe_dev);
if (vfe_dev)
- pr_err("%s:%d failed %p\n", __func__,
+ pr_err("%s:%d failed %pK\n", __func__,
__LINE__, vfe_dev->vfe_base);
return -EINVAL;
}
@@ -1217,13 +1217,13 @@
uint32_t *cfg_data, uint32_t cmd_len)
{
if (!vfe_dev || !reg_cfg_cmd) {
- pr_err("%s:%d failed: vfe_dev %p reg_cfg_cmd %p\n", __func__,
+ pr_err("%s:%d failed: vfe_dev %pK reg_cfg_cmd %pK\n", __func__,
__LINE__, vfe_dev, reg_cfg_cmd);
return -EINVAL;
}
if ((reg_cfg_cmd->cmd_type != VFE_CFG_MASK) &&
(!cfg_data || !cmd_len)) {
- pr_err("%s:%d failed: cmd type %d cfg_data %p cmd_len %d\n",
+ pr_err("%s:%d failed: cmd type %d cfg_data %pK cmd_len %d\n",
__func__, __LINE__, reg_cfg_cmd->cmd_type, cfg_data,
cmd_len);
return -EINVAL;
@@ -1883,7 +1883,7 @@
}
- pr_err_ratelimited("%s:%d] vfe_dev %p id %d\n", __func__,
+ pr_err_ratelimited("%s:%d] vfe_dev %pK id %d\n", __func__,
__LINE__, vfe_dev, vfe_dev->pdev->id);
error_event.frame_id =
@@ -2182,7 +2182,7 @@
if (token) {
vfe_dev = (struct vfe_device *)token;
if (!vfe_dev->buf_mgr || !vfe_dev->buf_mgr->ops) {
- pr_err("%s:%d] buf_mgr %p\n", __func__,
+ pr_err("%s:%d] buf_mgr %pK\n", __func__,
__LINE__, vfe_dev->buf_mgr);
goto end;
}
@@ -2204,7 +2204,7 @@
goto end;
}
} else {
- ISP_DBG("%s:%d] no token received: %p\n",
+ ISP_DBG("%s:%d] no token received: %pK\n",
__func__, __LINE__, token);
goto end;
}
@@ -2228,7 +2228,7 @@
}
if (vfe_dev->vfe_base) {
- pr_err("%s:%d invalid params cnt %d base %p\n", __func__,
+ pr_err("%s:%d invalid params cnt %d base %pK\n", __func__,
__LINE__, vfe_dev->vfe_open_cnt, vfe_dev->vfe_base);
vfe_dev->vfe_base = NULL;
}
diff --git a/drivers/media/platform/msm/camera_v2/ispif/msm_ispif.c b/drivers/media/platform/msm/camera_v2/ispif/msm_ispif.c
index f50e330..cb23384 100755
--- a/drivers/media/platform/msm/camera_v2/ispif/msm_ispif.c
+++ b/drivers/media/platform/msm/camera_v2/ispif/msm_ispif.c
@@ -1314,7 +1314,7 @@
if (ispif->csid_version >= CSID_VERSION_V30) {
if (!ispif->clk_mux_mem || !ispif->clk_mux_io) {
- pr_err("%s csi clk mux mem %p io %p\n", __func__,
+ pr_err("%s csi clk mux mem %pK io %pK\n", __func__,
ispif->clk_mux_mem, ispif->clk_mux_io);
rc = -ENOMEM;
return rc;
@@ -1468,11 +1468,6 @@
return 0;
}
case MSM_SD_SHUTDOWN: {
- if (ispif && ispif->base) {
- mutex_lock(&ispif->mutex);
- msm_ispif_release(ispif);
- mutex_unlock(&ispif->mutex);
- }
return 0;
}
default:
diff --git a/drivers/media/platform/msm/camera_v2/jpeg_10/msm_jpeg_hw.c b/drivers/media/platform/msm/camera_v2/jpeg_10/msm_jpeg_hw.c
index a129a66..d67ab11 100644
--- a/drivers/media/platform/msm/camera_v2/jpeg_10/msm_jpeg_hw.c
+++ b/drivers/media/platform/msm/camera_v2/jpeg_10/msm_jpeg_hw.c
@@ -562,7 +562,7 @@
int i;
u32 *p = (u32 *) addr;
u32 data;
- JPEG_DBG_HIGH("%s:%d] %p %d", __func__, __LINE__, addr, size);
+ JPEG_DBG_HIGH("%s:%d] %pK %d", __func__, __LINE__, addr, size);
line_str[0] = '\0';
p_str = line_str;
for (i = 0; i < size/4; i++) {
diff --git a/drivers/media/platform/msm/camera_v2/jpeg_10/msm_jpeg_platform.c b/drivers/media/platform/msm/camera_v2/jpeg_10/msm_jpeg_platform.c
index 935fdb7..64cd8a2 100644
--- a/drivers/media/platform/msm/camera_v2/jpeg_10/msm_jpeg_platform.c
+++ b/drivers/media/platform/msm/camera_v2/jpeg_10/msm_jpeg_platform.c
@@ -238,7 +238,7 @@
return -EINVAL;
}
for (i = 0; i < dt_count; i = i + 2) {
- JPEG_DBG("%s:%d] %p %08x\n",
+ JPEG_DBG("%s:%d] %pK %08x\n",
__func__, __LINE__,
base + dt_reg_settings[i],
dt_reg_settings[i + 1]);
diff --git a/drivers/media/platform/msm/camera_v2/jpeg_10/msm_jpeg_sync.c b/drivers/media/platform/msm/camera_v2/jpeg_10/msm_jpeg_sync.c
index 6cbd0d4..f1d1694 100644
--- a/drivers/media/platform/msm/camera_v2/jpeg_10/msm_jpeg_sync.c
+++ b/drivers/media/platform/msm/camera_v2/jpeg_10/msm_jpeg_sync.c
@@ -747,7 +747,7 @@
return rc;
}
- JPEG_DBG("%s:%d] platform resources - mem %p, base %p, irq %d\n",
+ JPEG_DBG("%s:%d] platform resources - mem %pK, base %pK, irq %d\n",
__func__, __LINE__,
pgmn_dev->mem, pgmn_dev->base, pgmn_dev->irq);
pgmn_dev->res_size = resource_size(pgmn_dev->mem);
diff --git a/drivers/media/platform/msm/camera_v2/msm_vb2/msm_vb2.c b/drivers/media/platform/msm/camera_v2/msm_vb2/msm_vb2.c
index 9ded7ac..8b756f1 100644
--- a/drivers/media/platform/msm/camera_v2/msm_vb2/msm_vb2.c
+++ b/drivers/media/platform/msm/camera_v2/msm_vb2/msm_vb2.c
@@ -241,7 +241,7 @@
break;
}
if (vb2_buf != vb) {
- pr_err("VB buffer is INVALID vb=%p, ses_id=%d, str_id=%d\n",
+ pr_err("VB buffer is INVALID vb=%pK, ses_id=%d, str_id=%d\n",
vb, session_id, stream_id);
spin_unlock_irqrestore(&stream->stream_lock, flags);
return -EINVAL;
@@ -282,7 +282,7 @@
break;
}
if (vb2_buf != vb) {
- pr_err("VB buffer is INVALID ses_id=%d, str_id=%d, vb=%p\n",
+ pr_err("VB buffer is INVALID ses_id=%d, str_id=%d, vb=%pK\n",
session_id, stream_id, vb);
spin_unlock_irqrestore(&stream->stream_lock, flags);
return -EINVAL;
diff --git a/drivers/media/platform/msm/camera_v2/pproc/cpp/msm_cpp.c b/drivers/media/platform/msm/camera_v2/pproc/cpp/msm_cpp.c
index cf6668f..7874cf6 100644
--- a/drivers/media/platform/msm/camera_v2/pproc/cpp/msm_cpp.c
+++ b/drivers/media/platform/msm/camera_v2/pproc/cpp/msm_cpp.c
@@ -1214,13 +1214,13 @@
CPP_DBG("E\n");
if (!sd || !fh) {
- pr_err("Wrong input parameters sd %p fh %p!",
+ pr_err("Wrong input parameters sd %pK fh %pK!",
sd, fh);
return -EINVAL;
}
cpp_dev = v4l2_get_subdevdata(sd);
if (!cpp_dev) {
- pr_err("failed: cpp_dev %p\n", cpp_dev);
+ pr_err("failed: cpp_dev %pK\n", cpp_dev);
return -EINVAL;
}
mutex_lock(&cpp_dev->mutex);
@@ -1243,7 +1243,7 @@
return -ENODEV;
}
- CPP_DBG("open %d %p\n", i, &fh->vfh);
+ CPP_DBG("open %d %pK\n", i, &fh->vfh);
cpp_dev->cpp_open_cnt++;
if (cpp_dev->cpp_open_cnt == 1) {
rc = cpp_init_hardware(cpp_dev);
@@ -1285,7 +1285,7 @@
cpp_dev = v4l2_get_subdevdata(sd);
if (!cpp_dev) {
- pr_err("failed: cpp_dev %p\n", cpp_dev);
+ pr_err("failed: cpp_dev %pK\n", cpp_dev);
return -EINVAL;
}
@@ -1547,7 +1547,7 @@
mutex_lock(&cpp_dev->mutex);
if (!work || cpp_timer.data.cpp_dev->state != CPP_STATE_ACTIVE) {
- pr_err("Invalid work:%p or state:%d\n", work,
+ pr_err("Invalid work:%pK or state:%d\n", work,
cpp_timer.data.cpp_dev->state);
goto end;
}
@@ -2447,7 +2447,7 @@
{
int ret;
if ((ioctl_ptr->ioctl_ptr == NULL) || (ioctl_ptr->len == 0)) {
- pr_err("%s: Wrong ioctl_ptr %p / len %zu\n", __func__,
+ pr_err("%s: Wrong ioctl_ptr %pK / len %zu\n", __func__,
ioctl_ptr, ioctl_ptr->len);
return -EINVAL;
}
@@ -2470,7 +2470,7 @@
{
int ret;
if ((ioctl_ptr->ioctl_ptr == NULL) || (ioctl_ptr->len == 0)) {
- pr_err("%s: Wrong ioctl_ptr %p / len %zu\n", __func__,
+ pr_err("%s: Wrong ioctl_ptr %pK / len %zu\n", __func__,
ioctl_ptr, ioctl_ptr->len);
return -EINVAL;
}
@@ -2493,14 +2493,14 @@
break;
default:
if (ioctl_ptr == NULL) {
- pr_err("Wrong ioctl_ptr %p\n", ioctl_ptr);
+ pr_err("Wrong ioctl_ptr for cmd %u\n", cmd);
return -EINVAL;
}
*ioctl_ptr = arg;
if ((*ioctl_ptr == NULL) ||
- ((*ioctl_ptr)->ioctl_ptr == NULL)) {
- pr_err("Wrong arg %p\n", arg);
+ (*ioctl_ptr)->ioctl_ptr == NULL) {
+ pr_err("Error invalid ioctl argument cmd %u\n", cmd);
return -EINVAL;
}
break;
@@ -2532,7 +2532,7 @@
int rc = 0;
if (sd == NULL) {
- pr_err("sd %p\n", sd);
+ pr_err("sd %pK\n", sd);
return -EINVAL;
}
cpp_dev = v4l2_get_subdevdata(sd);
@@ -2540,6 +2540,10 @@
pr_err("cpp_dev is null\n");
return -EINVAL;
}
+ if (_IOC_DIR(cmd) == _IOC_NONE) {
+ pr_err("Invalid ioctl/subdev cmd %u", cmd);
+ return -EINVAL;
+ }
rc = msm_cpp_validate_input(cmd, arg, &ioctl_ptr);
if (rc != 0) {
pr_err("input validation failed\n");
@@ -2607,7 +2611,7 @@
&cpp_dev->pdev->dev);
if (rc) {
dev_err(&cpp_dev->pdev->dev,
- "Fail to loc blob %s dev %p, rc:%d\n",
+ "Fail to loc blob %s dev %pK, rc:%d\n",
cpp_dev->fw_name_bin,
&cpp_dev->pdev->dev, rc);
kfree(cpp_dev->fw_name_bin);
@@ -3063,14 +3067,14 @@
struct v4l2_fh *vfh = NULL;
if ((arg == NULL) || (file == NULL)) {
- pr_err("Invalid input parameters arg %p, file %p\n", arg, file);
+ pr_err("Invalid input parameters arg %pK, file %pK\n", arg, file);
return -EINVAL;
}
vdev = video_devdata(file);
sd = vdev_to_v4l2_subdev(vdev);
if (sd == NULL) {
- pr_err("Invalid input parameter sd %p\n", sd);
+ pr_err("Invalid input parameter sd %pK\n", sd);
return -EINVAL;
}
vfh = file->private_data;
@@ -3346,7 +3350,7 @@
}
cpp_dev = v4l2_get_subdevdata(sd);
if (!vdev || !cpp_dev) {
- pr_err("Invalid vdev %p or cpp_dev %p structures!",
+ pr_err("Invalid vdev %pK or cpp_dev %pK structures!",
vdev, cpp_dev);
return -EINVAL;
}
diff --git a/drivers/media/platform/msm/camera_v2/sensor/actuator/msm_actuator.c b/drivers/media/platform/msm/camera_v2/sensor/actuator/msm_actuator.c
old mode 100644
new mode 100755
index 7be3717..6dd32f0
--- a/drivers/media/platform/msm/camera_v2/sensor/actuator/msm_actuator.c
+++ b/drivers/media/platform/msm/camera_v2/sensor/actuator/msm_actuator.c
@@ -91,11 +91,6 @@
struct msm_camera_i2c_reg_array *i2c_tbl = a_ctrl->i2c_reg_tbl;
CDBG("Enter\n");
for (i = 0; i < size; i++) {
- /* check that the index into i2c_tbl cannot grow larger that
- the allocated size of i2c_tbl */
- if ((a_ctrl->total_steps + 1) < (a_ctrl->i2c_tbl_index)) {
- break;
- }
if (write_arr[i].reg_write_type == MSM_ACTUATOR_WRITE_DAC) {
value = (next_lens_position <<
write_arr[i].data_shift) |
@@ -109,6 +104,11 @@
i2c_byte2 = value & 0xFF;
CDBG("byte1:0x%x, byte2:0x%x\n",
i2c_byte1, i2c_byte2);
+ if (a_ctrl->i2c_tbl_index >
+ a_ctrl->total_steps) {
+ pr_err("failed:i2c table index out of bound\n");
+ break;
+ }
i2c_tbl[a_ctrl->i2c_tbl_index].
reg_addr = i2c_byte1;
i2c_tbl[a_ctrl->i2c_tbl_index].
@@ -129,6 +129,10 @@
i2c_byte2 = (hw_dword & write_arr[i].hw_mask) >>
write_arr[i].hw_shift;
}
+ if (a_ctrl->i2c_tbl_index > a_ctrl->total_steps) {
+ pr_err("failed: i2c table index out of bound\n");
+ break;
+ }
CDBG("i2c_byte1:0x%x, i2c_byte2:0x%x\n", i2c_byte1, i2c_byte2);
i2c_tbl[a_ctrl->i2c_tbl_index].reg_addr = i2c_byte1;
i2c_tbl[a_ctrl->i2c_tbl_index].reg_data = i2c_byte2;
@@ -577,7 +581,7 @@
if ((a_ctrl->region_size <= 0) ||
(a_ctrl->region_size > MAX_ACTUATOR_REGION) ||
(!move_params->ringing_params)) {
- pr_err("Invalid-region size = %d, ringing_params = %p\n",
+ pr_err("Invalid-region size = %d, ringing_params = %pK\n",
a_ctrl->region_size, move_params->ringing_params);
return -EFAULT;
}
@@ -692,7 +696,7 @@
if ((a_ctrl->region_size <= 0) ||
(a_ctrl->region_size > MAX_ACTUATOR_REGION) ||
(!move_params->ringing_params)) {
- pr_err("Invalid-region size = %d, ringing_params = %p\n",
+ pr_err("Invalid-region size = %d, ringing_params = %pK\n",
a_ctrl->region_size, move_params->ringing_params);
return -EFAULT;
}
@@ -1524,7 +1528,7 @@
struct msm_actuator_ctrl_t *a_ctrl = v4l2_get_subdevdata(sd);
void __user *argp = (void __user *)arg;
CDBG("Enter\n");
- CDBG("%s:%d a_ctrl %p argp %p\n", __func__, __LINE__, a_ctrl, argp);
+ CDBG("%s:%d a_ctrl %pK argp %pK\n", __func__, __LINE__, a_ctrl, argp);
switch (cmd) {
case VIDIOC_MSM_SENSOR_GET_SUBDEV_ID:
return msm_actuator_get_subdev_id(a_ctrl, argp);
@@ -1537,11 +1541,13 @@
pr_err("a_ctrl->i2c_client.i2c_func_tbl NULL\n");
return -EINVAL;
} else {
+ mutex_lock(a_ctrl->actuator_mutex);
rc = msm_actuator_power_down(a_ctrl);
if (rc < 0) {
pr_err("%s:%d Actuator Power down failed\n",
__func__, __LINE__);
}
+ mutex_unlock(a_ctrl->actuator_mutex);
return msm_actuator_close(sd, NULL);
}
default:
@@ -1764,7 +1770,7 @@
goto probe_failure;
}
- CDBG("client = 0x%p\n", client);
+ CDBG("client = 0x%pK\n", client);
rc = of_property_read_u32(client->dev.of_node, "cell-index",
&act_ctrl_t->subdev_id);
diff --git a/drivers/media/platform/msm/camera_v2/sensor/cci/msm_cci.c b/drivers/media/platform/msm/camera_v2/sensor/cci/msm_cci.c
index ad8fa21..eee4025 100644
--- a/drivers/media/platform/msm/camera_v2/sensor/cci/msm_cci.c
+++ b/drivers/media/platform/msm/camera_v2/sensor/cci/msm_cci.c
@@ -881,7 +881,7 @@
uint16_t read_bytes = 0;
if (!sd || !c_ctrl) {
- pr_err("%s:%d sd %p c_ctrl %p\n", __func__,
+ pr_err("%s:%d sd %pK c_ctrl %pK\n", __func__,
__LINE__, sd, c_ctrl);
return -EINVAL;
}
@@ -1187,7 +1187,7 @@
cci_dev = v4l2_get_subdevdata(sd);
if (!cci_dev || !c_ctrl) {
- pr_err("%s:%d failed: invalid params %p %p\n", __func__,
+ pr_err("%s:%d failed: invalid params %pK %pK\n", __func__,
__LINE__, cci_dev, c_ctrl);
rc = -EINVAL;
return rc;
@@ -1209,7 +1209,7 @@
cci_dev = v4l2_get_subdevdata(sd);
if (!cci_dev || !c_ctrl) {
- pr_err("%s:%d failed: invalid params %p %p\n", __func__,
+ pr_err("%s:%d failed: invalid params %pK %pK\n", __func__,
__LINE__, cci_dev, c_ctrl);
rc = -EINVAL;
return rc;
@@ -1429,7 +1429,7 @@
cci_dev = v4l2_get_subdevdata(sd);
if (!cci_dev || !c_ctrl) {
- pr_err("%s:%d failed: invalid params %p %p\n", __func__,
+ pr_err("%s:%d failed: invalid params %pK %pK\n", __func__,
__LINE__, cci_dev, c_ctrl);
rc = -EINVAL;
return rc;
@@ -1958,7 +1958,7 @@
{
struct cci_device *new_cci_dev;
int rc = 0, i = 0;
- CDBG("%s: pdev %p device id = %d\n", __func__, pdev, pdev->id);
+ CDBG("%s: pdev %pK device id = %d\n", __func__, pdev, pdev->id);
new_cci_dev = kzalloc(sizeof(struct cci_device), GFP_KERNEL);
if (!new_cci_dev) {
CDBG("%s: no enough memory\n", __func__);
@@ -1971,7 +1971,7 @@
ARRAY_SIZE(new_cci_dev->msm_sd.sd.name), "msm_cci");
v4l2_set_subdevdata(&new_cci_dev->msm_sd.sd, new_cci_dev);
platform_set_drvdata(pdev, &new_cci_dev->msm_sd.sd);
- CDBG("%s sd %p\n", __func__, &new_cci_dev->msm_sd.sd);
+ CDBG("%s sd %pK\n", __func__, &new_cci_dev->msm_sd.sd);
if (pdev->dev.of_node)
of_property_read_u32((&pdev->dev)->of_node,
"cell-index", &pdev->id);
@@ -2042,7 +2042,7 @@
if (!new_cci_dev->write_wq[i])
pr_err("Failed to create write wq\n");
}
- CDBG("%s cci subdev %p\n", __func__, &new_cci_dev->msm_sd.sd);
+ CDBG("%s cci subdev %pK\n", __func__, &new_cci_dev->msm_sd.sd);
CDBG("%s line %d\n", __func__, __LINE__);
return 0;
diff --git a/drivers/media/platform/msm/camera_v2/sensor/csid/msm_csid.c b/drivers/media/platform/msm/camera_v2/sensor/csid/msm_csid.c
index 4c877d3..e31de7c 100644
--- a/drivers/media/platform/msm/camera_v2/sensor/csid/msm_csid.c
+++ b/drivers/media/platform/msm/camera_v2/sensor/csid/msm_csid.c
@@ -154,7 +154,7 @@
void __iomem *csidbase;
csidbase = csid_dev->base;
if (!csidbase || !csid_params) {
- pr_err("%s:%d csidbase %p, csid params %p\n", __func__,
+ pr_err("%s:%d csidbase %pK, csid params %pK\n", __func__,
__LINE__, csidbase, csid_params);
return -EINVAL;
}
@@ -543,7 +543,7 @@
struct csid_cfg_data *cdata = (struct csid_cfg_data *)arg;
if (!csid_dev || !cdata) {
- pr_err("%s:%d csid_dev %p, cdata %p\n", __func__, __LINE__,
+ pr_err("%s:%d csid_dev %pK, cdata %pK\n", __func__, __LINE__,
csid_dev, cdata);
return -EINVAL;
}
@@ -681,7 +681,7 @@
cdata = &local_arg;
if (!csid_dev || !cdata) {
- pr_err("%s:%d csid_dev %p, cdata %p\n", __func__, __LINE__,
+ pr_err("%s:%d csid_dev %pK, cdata %pK\n", __func__, __LINE__,
csid_dev, cdata);
return -EINVAL;
}
diff --git a/drivers/media/platform/msm/camera_v2/sensor/csiphy/msm_csiphy.c b/drivers/media/platform/msm/camera_v2/sensor/csiphy/msm_csiphy.c
index 9475de0..e76673a 100644
--- a/drivers/media/platform/msm/camera_v2/sensor/csiphy/msm_csiphy.c
+++ b/drivers/media/platform/msm/camera_v2/sensor/csiphy/msm_csiphy.c
@@ -122,7 +122,7 @@
val |= csiphy_params->csid_core;
}
msm_camera_io_w(val, csiphy_dev->clk_mux_base);
- CDBG("%s clk mux addr %p val 0x%x\n", __func__,
+ CDBG("%s clk mux addr %pK val 0x%x\n", __func__,
csiphy_dev->clk_mux_base, val);
mb();
}
@@ -324,7 +324,7 @@
csiphy_dev->num_clk, 1);
} else if (csiphy_dev->hw_dts_version >= CSIPHY_VERSION_V30) {
if (!csiphy_dev->clk_mux_mem || !csiphy_dev->clk_mux_io) {
- pr_err("%s clk mux mem %p io %p\n", __func__,
+ pr_err("%s clk mux mem %pK io %pK\n", __func__,
csiphy_dev->clk_mux_mem,
csiphy_dev->clk_mux_io);
rc = -ENOMEM;
@@ -420,7 +420,7 @@
csiphy_dev->num_clk, 1);
} else if (csiphy_dev->hw_dts_version >= CSIPHY_VERSION_V30) {
if (!csiphy_dev->clk_mux_mem || !csiphy_dev->clk_mux_io) {
- pr_err("%s clk mux mem %p io %p\n", __func__,
+ pr_err("%s clk mux mem %pK io %pK\n", __func__,
csiphy_dev->clk_mux_mem,
csiphy_dev->clk_mux_io);
rc = -ENOMEM;
@@ -502,7 +502,7 @@
mipi_csiphy_lnn_cfg2_addr + 0x40*i);
} else {
if (!csi_lane_params) {
- pr_err("%s:%d failed: csi_lane_params %p\n", __func__,
+ pr_err("%s:%d failed: csi_lane_params %pK\n", __func__,
__LINE__, csi_lane_params);
return -EINVAL;
}
@@ -591,7 +591,7 @@
mipi_csiphy_lnn_cfg2_addr + 0x40*i);
} else {
if (!csi_lane_params) {
- pr_err("%s:%d failed: csi_lane_params %p\n", __func__,
+ pr_err("%s:%d failed: csi_lane_params %pK\n", __func__,
__LINE__, csi_lane_params);
return -EINVAL;
}
diff --git a/drivers/media/platform/msm/camera_v2/sensor/eeprom/msm_eeprom.c b/drivers/media/platform/msm/camera_v2/sensor/eeprom/msm_eeprom.c
index c7160a8..6cce9d1 100644
--- a/drivers/media/platform/msm/camera_v2/sensor/eeprom/msm_eeprom.c
+++ b/drivers/media/platform/msm/camera_v2/sensor/eeprom/msm_eeprom.c
@@ -696,7 +696,7 @@
struct msm_eeprom_ctrl_t *e_ctrl = v4l2_get_subdevdata(sd);
void __user *argp = (void __user *)arg;
CDBG("%s E\n", __func__);
- CDBG("%s:%d a_ctrl %p argp %p\n", __func__, __LINE__, e_ctrl, argp);
+ CDBG("%s:%d a_ctrl %pK argp %pK\n", __func__, __LINE__, e_ctrl, argp);
switch (cmd) {
case VIDIOC_MSM_SENSOR_GET_SUBDEV_ID:
return msm_eeprom_get_subdev_id(e_ctrl, argp);
@@ -807,7 +807,7 @@
}
e_ctrl->eeprom_v4l2_subdev_ops = &msm_eeprom_subdev_ops;
e_ctrl->eeprom_mutex = &msm_eeprom_mutex;
- CDBG("%s client = 0x%p\n", __func__, client);
+ CDBG("%s client = 0x%pK\n", __func__, client);
e_ctrl->eboard_info = (struct msm_eeprom_board_info *)(id->driver_data);
if (!e_ctrl->eboard_info) {
pr_err("%s:%d board info NULL\n", __func__, __LINE__);
@@ -1513,7 +1513,7 @@
void __user *argp = (void __user *)arg;
CDBG("%s E\n", __func__);
- CDBG("%s:%d a_ctrl %p argp %p\n", __func__, __LINE__, e_ctrl, argp);
+ CDBG("%s:%d a_ctrl %pK argp %pK\n", __func__, __LINE__, e_ctrl, argp);
switch (cmd) {
case VIDIOC_MSM_SENSOR_GET_SUBDEV_ID:
return msm_eeprom_get_subdev_id(e_ctrl, argp);
diff --git a/drivers/media/platform/msm/camera_v2/sensor/flash/msm_flash.c b/drivers/media/platform/msm/camera_v2/sensor/flash/msm_flash.c
index b712bd1..0022fc5 100755
--- a/drivers/media/platform/msm/camera_v2/sensor/flash/msm_flash.c
+++ b/drivers/media/platform/msm/camera_v2/sensor/flash/msm_flash.c
@@ -372,7 +372,7 @@
int32_t rc = 0;
if (!(&flash_ctrl->power_info) || !(&flash_ctrl->flash_i2c_client)) {
- pr_err("%s:%d failed: %p %p\n",
+ pr_err("%s:%d failed: %pK %pK\n",
__func__, __LINE__, &flash_ctrl->power_info,
&flash_ctrl->flash_i2c_client);
return -EINVAL;
diff --git a/drivers/media/platform/msm/camera_v2/sensor/io/msm_camera_dt_util.c b/drivers/media/platform/msm/camera_v2/sensor/io/msm_camera_dt_util.c
index 0a01f42..0288c64 100644
--- a/drivers/media/platform/msm/camera_v2/sensor/io/msm_camera_dt_util.c
+++ b/drivers/media/platform/msm/camera_v2/sensor/io/msm_camera_dt_util.c
@@ -34,7 +34,7 @@
/* Validate input parameters */
if (!cam_vreg || !power_setting) {
- pr_err("%s:%d failed: cam_vreg %p power_setting %p", __func__,
+ pr_err("%s:%d failed: cam_vreg %pK power_setting %pK", __func__,
__LINE__, cam_vreg, power_setting);
return -EINVAL;
}
@@ -1288,7 +1288,7 @@
CDBG("%s:%d\n", __func__, __LINE__);
if (!ctrl || !sensor_i2c_client) {
- pr_err("failed ctrl %p sensor_i2c_client %p\n", ctrl,
+ pr_err("failed ctrl %pK sensor_i2c_client %pK\n", ctrl,
sensor_i2c_client);
return -EINVAL;
}
@@ -1513,7 +1513,7 @@
CDBG("%s:%d\n", __func__, __LINE__);
if (!ctrl || !sensor_i2c_client) {
- pr_err("failed ctrl %p sensor_i2c_client %p\n", ctrl,
+ pr_err("failed ctrl %pK sensor_i2c_client %pK\n", ctrl,
sensor_i2c_client);
return -EINVAL;
}
diff --git a/drivers/media/platform/msm/camera_v2/sensor/io/msm_camera_io_util.c b/drivers/media/platform/msm/camera_v2/sensor/io/msm_camera_io_util.c
index 2f73e33..29ed44a 100644
--- a/drivers/media/platform/msm/camera_v2/sensor/io/msm_camera_io_util.c
+++ b/drivers/media/platform/msm/camera_v2/sensor/io/msm_camera_io_util.c
@@ -27,13 +27,13 @@
void msm_camera_io_w(u32 data, void __iomem *addr)
{
- CDBG("%s: 0x%p %08x\n", __func__, (addr), (data));
+ CDBG("%s: 0x%pK %08x\n", __func__, (addr), (data));
writel_relaxed((data), (addr));
}
void msm_camera_io_w_mb(u32 data, void __iomem *addr)
{
- CDBG("%s: 0x%p %08x\n", __func__, (addr), (data));
+ CDBG("%s: 0x%pK %08x\n", __func__, (addr), (data));
wmb();
writel_relaxed((data), (addr));
wmb();
@@ -42,7 +42,7 @@
u32 msm_camera_io_r(void __iomem *addr)
{
uint32_t data = readl_relaxed(addr);
- CDBG("%s: 0x%p %08x\n", __func__, (addr), (data));
+ CDBG("%s: 0x%pK %08x\n", __func__, (addr), (data));
return data;
}
@@ -52,7 +52,7 @@
rmb();
data = readl_relaxed(addr);
rmb();
- CDBG("%s: 0x%p %08x\n", __func__, (addr), (data));
+ CDBG("%s: 0x%pK %08x\n", __func__, (addr), (data));
return data;
}
@@ -73,12 +73,12 @@
int i;
u32 *p = (u32 *) addr;
u32 data;
- CDBG("%s: %p %d\n", __func__, addr, size);
+ CDBG("%s: %pK %d\n", __func__, addr, size);
line_str[0] = '\0';
p_str = line_str;
for (i = 0; i < size/4; i++) {
if (i % 4 == 0) {
- snprintf(p_str, 12, "0x%p: ", p);
+ snprintf(p_str, 12, "0x%pK: ", p);
p_str += 10;
}
data = readl_relaxed(p++);
@@ -97,7 +97,7 @@
void msm_camera_io_memcpy(void __iomem *dest_addr,
void __iomem *src_addr, u32 len)
{
- CDBG("%s: %p %p %d\n", __func__, dest_addr, src_addr, len);
+ CDBG("%s: %pK %pK %d\n", __func__, dest_addr, src_addr, len);
msm_camera_io_memcpy_toio(dest_addr, src_addr, len / 4);
msm_camera_io_dump(dest_addr, len);
}
@@ -591,7 +591,7 @@
int rc = 0, i = 0, err = 0;
if (!gpio_tbl || !size) {
- pr_err("%s:%d invalid gpio_tbl %p / size %d\n", __func__,
+ pr_err("%s:%d invalid gpio_tbl %pK / size %d\n", __func__,
__LINE__, gpio_tbl, size);
return -EINVAL;
}
diff --git a/drivers/media/platform/msm/camera_v2/sensor/msm_sensor.c b/drivers/media/platform/msm/camera_v2/sensor/msm_sensor.c
index 0d87801..08853a5 100644
--- a/drivers/media/platform/msm/camera_v2/sensor/msm_sensor.c
+++ b/drivers/media/platform/msm/camera_v2/sensor/msm_sensor.c
@@ -439,7 +439,7 @@
struct msm_camera_i2c_client *sensor_i2c_client;
if (!s_ctrl) {
- pr_err("%s:%d failed: s_ctrl %p\n",
+ pr_err("%s:%d failed: s_ctrl %pK\n",
__func__, __LINE__, s_ctrl);
return -EINVAL;
}
@@ -452,7 +452,7 @@
sensor_i2c_client = s_ctrl->sensor_i2c_client;
if (!power_info || !sensor_i2c_client) {
- pr_err("%s:%d failed: power_info %p sensor_i2c_client %p\n",
+ pr_err("%s:%d failed: power_info %pK sensor_i2c_client %pK\n",
__func__, __LINE__, power_info, sensor_i2c_client);
return -EINVAL;
}
@@ -470,7 +470,7 @@
uint32_t retry = 0;
if (!s_ctrl) {
- pr_err("%s:%d failed: %p\n",
+ pr_err("%s:%d failed: %pK\n",
__func__, __LINE__, s_ctrl);
return -EINVAL;
}
@@ -485,7 +485,7 @@
if (!power_info || !sensor_i2c_client || !slave_info ||
!sensor_name) {
- pr_err("%s:%d failed: %p %p %p %p\n",
+ pr_err("%s:%d failed: %pK %pK %pK %pK\n",
__func__, __LINE__, power_info,
sensor_i2c_client, slave_info, sensor_name);
return -EINVAL;
@@ -541,7 +541,7 @@
const char *sensor_name;
if (!s_ctrl) {
- pr_err("%s:%d failed: %p\n",
+ pr_err("%s:%d failed: %pK\n",
__func__, __LINE__, s_ctrl);
return -EINVAL;
}
@@ -550,7 +550,7 @@
sensor_name = s_ctrl->sensordata->sensor_name;
if (!sensor_i2c_client || !slave_info || !sensor_name) {
- pr_err("%s:%d failed: %p %p %p\n",
+ pr_err("%s:%d failed: %pK %pK %pK\n",
__func__, __LINE__, sensor_i2c_client, slave_info,
sensor_name);
return -EINVAL;
@@ -1641,7 +1641,7 @@
uint32_t session_id;
unsigned long mount_pos = 0;
s_ctrl->pdev = pdev;
- CDBG("%s called data %p\n", __func__, data);
+ CDBG("%s called data %pK\n", __func__, data);
CDBG("%s pdev name %s\n", __func__, pdev->id_entry->name);
if (pdev->dev.of_node) {
rc = msm_sensor_get_dt_data(pdev->dev.of_node, s_ctrl);
@@ -1864,13 +1864,13 @@
/* Validate input parameters */
if (!s_ctrl) {
- pr_err("%s:%d failed: invalid params s_ctrl %p\n", __func__,
+ pr_err("%s:%d failed: invalid params s_ctrl %pK\n", __func__,
__LINE__, s_ctrl);
return -EINVAL;
}
if (!s_ctrl->sensor_i2c_client) {
- pr_err("%s:%d failed: invalid params sensor_i2c_client %p\n",
+ pr_err("%s:%d failed: invalid params sensor_i2c_client %pK\n",
__func__, __LINE__, s_ctrl->sensor_i2c_client);
return -EINVAL;
}
@@ -1879,7 +1879,7 @@
s_ctrl->sensor_i2c_client->cci_client = kzalloc(sizeof(
struct msm_camera_cci_client), GFP_KERNEL);
if (!s_ctrl->sensor_i2c_client->cci_client) {
- pr_err("%s:%d failed: no memory cci_client %p\n", __func__,
+ pr_err("%s:%d failed: no memory cci_client %pK\n", __func__,
__LINE__, s_ctrl->sensor_i2c_client->cci_client);
return -ENOMEM;
}
@@ -1913,8 +1913,6 @@
/* Initialize clock info */
clk_info = kzalloc(sizeof(cam_8974_clk_info), GFP_KERNEL);
if (!clk_info) {
- pr_err("%s:%d failed no memory clk_info %p\n", __func__,
- __LINE__, clk_info);
rc = -ENOMEM;
goto FREE_CCI_CLIENT;
}
diff --git a/drivers/media/platform/msm/camera_v2/sensor/msm_sensor_driver.c b/drivers/media/platform/msm/camera_v2/sensor/msm_sensor_driver.c
index d95f3bc..0c4e15c 100755
--- a/drivers/media/platform/msm/camera_v2/sensor/msm_sensor_driver.c
+++ b/drivers/media/platform/msm/camera_v2/sensor/msm_sensor_driver.c
@@ -478,7 +478,7 @@
/* Allocate memory for power down setting */
pd = kzalloc(sizeof(*pd) * size_down, GFP_KERNEL);
if (!pd) {
- pr_err("failed: no memory power_setting %p", pd);
+ pr_err("failed: no memory power_setting ");
return -EFAULT;
}
@@ -545,7 +545,7 @@
/* Allocate memory for power up setting */
pu = kzalloc(sizeof(*pu) * size, GFP_KERNEL);
if (!pu) {
- pr_err("failed: no memory power_setting %p", pu);
+ pr_err("failed: no memory power_setting ");
return -ENOMEM;
}
@@ -676,14 +676,14 @@
/* Validate input parameters */
if (!setting) {
- pr_err("failed: slave_info %p", setting);
+ pr_err("failed: slave_info %pK", setting);
return -EINVAL;
}
/* Allocate memory for slave info */
slave_info = kzalloc(sizeof(*slave_info), GFP_KERNEL);
if (!slave_info) {
- pr_err("failed: no memory slave_info %p", slave_info);
+ pr_err("failed: no memory slave_info ");
return -ENOMEM;
}
#ifdef CONFIG_COMPAT
@@ -691,7 +691,7 @@
struct msm_camera_sensor_slave_info32 *slave_info32 =
kzalloc(sizeof(*slave_info32), GFP_KERNEL);
if (!slave_info32) {
- pr_err("failed: no memory for slave_info32 %p\n",
+ pr_err("failed: no memory for slave_info32 %pK\n",
slave_info32);
rc = -ENOMEM;
goto free_slave_info;
@@ -786,13 +786,13 @@
/* Extract s_ctrl from camera id */
s_ctrl = g_sctrl[slave_info->camera_id];
if (!s_ctrl) {
- pr_err("failed: s_ctrl %p for camera_id %d", s_ctrl,
+ pr_err("failed: s_ctrl %pK for camera_id %d", s_ctrl,
slave_info->camera_id);
rc = -EINVAL;
goto free_slave_info;
}
- CDBG("s_ctrl[%d] %p", slave_info->camera_id, s_ctrl);
+ CDBG("s_ctrl[%d] %pK", slave_info->camera_id, s_ctrl);
if (s_ctrl->sensordata->special_support_size > 0) {
if (!msm_sensor_driver_is_special_support(s_ctrl,
@@ -843,7 +843,7 @@
camera_info = kzalloc(sizeof(struct msm_camera_slave_info), GFP_KERNEL);
if (!camera_info) {
- pr_err("failed: no memory slave_info %p", camera_info);
+ pr_err("failed: no memory slave_info ");
goto free_slave_info;
}
@@ -859,7 +859,7 @@
/* Fill CCI master, slave address and CCI default params */
if (!s_ctrl->sensor_i2c_client) {
- pr_err("failed: sensor_i2c_client %p",
+ pr_err("failed: sensor_i2c_client %pK",
s_ctrl->sensor_i2c_client);
rc = -EINVAL;
goto free_camera_info;
@@ -872,7 +872,7 @@
cci_client = s_ctrl->sensor_i2c_client->cci_client;
if (!cci_client) {
- pr_err("failed: cci_client %p", cci_client);
+ pr_err("failed: cci_client %pK", cci_client);
goto free_camera_info;
}
cci_client->cci_i2c_master = s_ctrl->cci_i2c_master;
@@ -1024,7 +1024,7 @@
/* Validate input paramters */
if (!sensordata || !of_node) {
- pr_err("failed: invalid params sensordata %p of_node %p",
+ pr_err("failed: invalid params sensordata %pK of_node %pK",
sensordata, of_node);
return -EINVAL;
}
@@ -1237,7 +1237,7 @@
s_ctrl->sensor_i2c_client = kzalloc(sizeof(*s_ctrl->sensor_i2c_client),
GFP_KERNEL);
if (!s_ctrl->sensor_i2c_client) {
- pr_err("failed: no memory sensor_i2c_client %p",
+ pr_err("failed: no memory sensor_i2c_client %pK",
s_ctrl->sensor_i2c_client);
return -ENOMEM;
}
@@ -1246,7 +1246,7 @@
s_ctrl->msm_sensor_mutex = kzalloc(sizeof(*s_ctrl->msm_sensor_mutex),
GFP_KERNEL);
if (!s_ctrl->msm_sensor_mutex) {
- pr_err("failed: no memory msm_sensor_mutex %p",
+ pr_err("failed: no memory msm_sensor_mutex %pK",
s_ctrl->msm_sensor_mutex);
goto FREE_SENSOR_I2C_CLIENT;
}
@@ -1275,7 +1275,7 @@
/* Store sensor control structure in static database */
g_sctrl[s_ctrl->id] = s_ctrl;
- pr_err("g_sctrl[%d] %p", s_ctrl->id, g_sctrl[s_ctrl->id]);
+ pr_err("g_sctrl[%d] %pK", s_ctrl->id, g_sctrl[s_ctrl->id]);
return rc;
@@ -1300,7 +1300,7 @@
/* Create sensor control structure */
s_ctrl = kzalloc(sizeof(*s_ctrl), GFP_KERNEL);
if (!s_ctrl) {
- pr_err("failed: no memory s_ctrl %p", s_ctrl);
+ pr_err("failed: no memory s_ctrl ");
return -ENOMEM;
}
@@ -1345,7 +1345,7 @@
/* Create sensor control structure */
s_ctrl = kzalloc(sizeof(*s_ctrl), GFP_KERNEL);
if (!s_ctrl) {
- pr_err("failed: no memory s_ctrl %p", s_ctrl);
+ pr_err("failed: no memory s_ctrl ");
return -ENOMEM;
}
diff --git a/drivers/media/platform/msm/camera_v2/sensor/msm_sensor_init.c b/drivers/media/platform/msm/camera_v2/sensor/msm_sensor_init.c
index 4cd8b0a..0aa9bd2 100644
--- a/drivers/media/platform/msm/camera_v2/sensor/msm_sensor_init.c
+++ b/drivers/media/platform/msm/camera_v2/sensor/msm_sensor_init.c
@@ -64,7 +64,7 @@
/* Validate input parameters */
if (!s_init || !cfg) {
- pr_err("failed: s_init %p cfg %p", s_init, cfg);
+ pr_err("failed: s_init %pK cfg %pK", s_init, cfg);
return -EINVAL;
}
@@ -106,7 +106,7 @@
/* Validate input parameters */
if (!s_init) {
- pr_err("failed: s_init %p", s_init);
+ pr_err("failed: s_init %pK", s_init);
return -EINVAL;
}
@@ -168,11 +168,11 @@
/* Allocate memory for msm_sensor_init control structure */
s_init = kzalloc(sizeof(struct msm_sensor_init_t), GFP_KERNEL);
if (!s_init) {
- pr_err("failed: no memory s_init %p", NULL);
+ pr_err("failed: no memory s_init NULL ");
return -ENOMEM;
}
- CDBG("MSM_SENSOR_INIT_MODULE %p", NULL);
+ CDBG("MSM_SENSOR_INIT_MODULE %pK", NULL);
/* Initialize mutex */
mutex_init(&s_init->imutex);
diff --git a/drivers/media/platform/msm/camera_v2/sensor/ois/msm_ois.c b/drivers/media/platform/msm/camera_v2/sensor/ois/msm_ois.c
index e03baa5..8aebd78 100644
--- a/drivers/media/platform/msm/camera_v2/sensor/ois/msm_ois.c
+++ b/drivers/media/platform/msm/camera_v2/sensor/ois/msm_ois.c
@@ -415,7 +415,7 @@
struct msm_ois_ctrl_t *o_ctrl = v4l2_get_subdevdata(sd);
void __user *argp = (void __user *)arg;
CDBG("Enter\n");
- CDBG("%s:%d o_ctrl %p argp %p\n", __func__, __LINE__, o_ctrl, argp);
+ CDBG("%s:%d o_ctrl %pK argp %pK\n", __func__, __LINE__, o_ctrl, argp);
switch (cmd) {
case VIDIOC_MSM_SENSOR_GET_SUBDEV_ID:
return msm_ois_get_subdev_id(o_ctrl, argp);
@@ -492,7 +492,7 @@
goto probe_failure;
}
- CDBG("client = 0x%p\n", client);
+ CDBG("client = 0x%pK\n", client);
rc = of_property_read_u32(client->dev.of_node, "cell-index",
&ois_ctrl_t->subdev_id);
diff --git a/drivers/media/platform/msm/camera_v2/smmu/cam_smmu_api.c b/drivers/media/platform/msm/camera_v2/smmu/cam_smmu_api.c
index f9ddc02..1e88283 100644
--- a/drivers/media/platform/msm/camera_v2/smmu/cam_smmu_api.c
+++ b/drivers/media/platform/msm/camera_v2/smmu/cam_smmu_api.c
@@ -177,7 +177,7 @@
pr_err("index = %d ", idx);
list_for_each_entry(mapping,
&iommu_cb_set.cb_info[idx].list_head, list) {
- pr_err("ion_fd = %d, paddr= 0x%p, len = %u\n",
+ pr_err("ion_fd = %d, paddr= 0x%pK, len = %u\n",
mapping->ion_fd, (void *)mapping->paddr,
(unsigned int)mapping->len);
}
@@ -188,10 +188,10 @@
int i;
for (i = 0; i < iommu_cb_set.cb_num; i++) {
- pr_err("i= %d, handle= %d, name_addr=%p\n", i,
+ pr_err("i= %d, handle= %d, name_addr=%pK\n", i,
(int)iommu_cb_set.cb_info[i].handle,
(void *)iommu_cb_set.cb_info[i].name);
- pr_err("dev = %p ", iommu_cb_set.cb_info[i].dev);
+ pr_err("dev = %pK ", iommu_cb_set.cb_info[i].dev);
}
}
@@ -207,17 +207,17 @@
end_addr = (unsigned long)mapping->paddr + mapping->len;
if (start_addr <= current_addr && current_addr <= end_addr) {
- pr_err("Error: vaddr %p is valid: range:%p-%p, ion_fd = %d\n",
+ pr_err("Error: vaddr %pK is valid: range:%pK-%pK, ion_fd = %d\n",
vaddr, (void *)start_addr, (void *)end_addr,
mapping->ion_fd);
return;
} else {
- pr_err("vaddr %p is not in this range: %p-%p, ion_fd = %d\n",
+ pr_err("vaddr %pK is not in this range: %pK-%pK, ion_fd = %d\n",
vaddr, (void *)start_addr, (void *)end_addr,
mapping->ion_fd);
}
}
- pr_err("Cannot find vaddr:%p in SMMU. %s uses invalid virtual addreess\n",
+ pr_err("Cannot find vaddr:%pK in SMMU. %s uses invalid virtual addreess\n",
vaddr, iommu_cb_set.cb_info[idx].name);
return;
}
@@ -485,7 +485,7 @@
list_for_each_entry_safe(mapping_info, temp,
&iommu_cb_set.cb_info[idx].list_head, list) {
- CDBG("Free mapping address %p, i = %d, fd = %d\n",
+ CDBG("Free mapping address %pK, i = %d, fd = %d\n",
(void *)mapping_info->paddr, idx,
mapping_info->ion_fd);
ret = cam_smmu_unmap_buf_and_remove_from_list(mapping_info,
@@ -583,11 +583,11 @@
}
if (table->sgl) {
- CDBG("DMA buf: %p, device: %p, attach: %p, table: %p\n",
+ CDBG("DMA buf: %pK, device: %pK, attach: %pK, table: %pK\n",
(void *)buf,
(void *)iommu_cb_set.cb_info[idx].dev,
(void *)attach, (void *)table);
- CDBG("table sgl: %p, rc: %d, dma_address: 0x%x\n",
+ CDBG("table sgl: %pK, rc: %d, dma_address: 0x%x\n",
(void *)table->sgl, rc,
(unsigned int)table->sgl->dma_address);
} else {
@@ -621,7 +621,7 @@
rc = -ENOSPC;
goto err_unmap_sg;
}
- CDBG("ion_fd = %d, dev = %p, paddr= %p, len = %u\n", ion_fd,
+ CDBG("ion_fd = %d, dev = %pK, paddr= %pK, len = %u\n", ion_fd,
(void *)iommu_cb_set.cb_info[idx].dev,
(void *)*paddr_ptr, (unsigned int)*len_ptr);
@@ -645,10 +645,10 @@
{
if ((!mapping_info->buf) || (!mapping_info->table) ||
(!mapping_info->attach)) {
- pr_err("Error: Invalid params dev = %p, table = %p",
+ pr_err("Error: Invalid params dev = %pK, table = %pK",
(void *)iommu_cb_set.cb_info[idx].dev,
(void *)mapping_info->table);
- pr_err("Error:dma_buf = %p, attach = %p\n",
+ pr_err("Error:dma_buf = %pK, attach = %pK\n",
(void *)mapping_info->buf,
(void *)mapping_info->attach);
return -EINVAL;
diff --git a/drivers/media/radio/radio-iris.c b/drivers/media/radio/radio-iris.c
index 2ca0f1b..46898eb 100644
--- a/drivers/media/radio/radio-iris.c
+++ b/drivers/media/radio/radio-iris.c
@@ -3808,8 +3808,19 @@
bytes_to_copy = (ctrl->controls[0]).size;
spur_tbl_req.mode = data[0];
spur_tbl_req.no_of_freqs_entries = data[1];
- spur_data = kmalloc((data[1] * SPUR_DATA_LEN) + 2,
- GFP_ATOMIC);
+
+ if (((spur_tbl_req.no_of_freqs_entries * SPUR_DATA_LEN) !=
+ bytes_to_copy - 2) ||
+ ((spur_tbl_req.no_of_freqs_entries * SPUR_DATA_LEN) >
+ 2 * FM_SPUR_TBL_SIZE)) {
+ FMDERR("data is more/less than expected value. data[1] = %d,"
+ "bytes_to_copy = %zu", spur_tbl_req.no_of_freqs_entries,
+ bytes_to_copy);
+ retval = -EINVAL;
+ goto END;
+ }
+ spur_data = kmalloc((spur_tbl_req.no_of_freqs_entries * SPUR_DATA_LEN)
+ + 2, GFP_ATOMIC);
if (!spur_data) {
FMDERR("Allocation failed for Spur data");
retval = -EFAULT;
@@ -3824,7 +3835,7 @@
if (spur_tbl_req.no_of_freqs_entries <= ENTRIES_EACH_CMD) {
memcpy(&spur_tbl_req.spur_data[0], spur_data,
- (data[1] * SPUR_DATA_LEN));
+ (spur_tbl_req.no_of_freqs_entries * SPUR_DATA_LEN));
retval = radio_hci_request(radio->fm_hdev,
hci_fm_set_spur_tbl_req,
(unsigned long)&spur_tbl_req,
diff --git a/drivers/mfd/wcd9xxx-slimslave.c b/drivers/mfd/wcd9xxx-slimslave.c
index 30fd0de..3ad63ab 100644
--- a/drivers/mfd/wcd9xxx-slimslave.c
+++ b/drivers/mfd/wcd9xxx-slimslave.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012-2015, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2012-2016, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -244,7 +244,7 @@
list_for_each_entry(rx, wcd9xxx_ch_list, list) {
codec_port = rx->port;
- pr_debug("%s: codec_port %d rx 0x%p, payload %d\n"
+ pr_debug("%s: codec_port %d rx 0x%pK, payload %d\n"
"sh_ch.rx_port_ch_reg_base0 0x%x\n"
"sh_ch.port_rx_cfg_reg_base 0x%x\n",
__func__, codec_port, rx, payload,
@@ -352,7 +352,7 @@
rate, bit_width);
list_for_each_entry(tx, wcd9xxx_ch_list, list) {
codec_port = tx->port;
- pr_debug("%s: codec_port %d tx 0x%p, payload 0x%x\n",
+ pr_debug("%s: codec_port %d tx 0x%pK, payload 0x%x\n",
__func__, codec_port, tx, payload);
/* write to interface device */
ret = wcd9xxx_interface_reg_write(wcd9xxx,
diff --git a/drivers/misc/qcom/qdsp6v2/audio_utils_aio.c b/drivers/misc/qcom/qdsp6v2/audio_utils_aio.c
index 124515c..db0d411 100644
--- a/drivers/misc/qcom/qdsp6v2/audio_utils_aio.c
+++ b/drivers/misc/qcom/qdsp6v2/audio_utils_aio.c
@@ -1,6 +1,6 @@
/* Copyright (C) 2008 Google, Inc.
* Copyright (C) 2008 HTC Corporation
- * Copyright (c) 2009-2015, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2009-2016, The Linux Foundation. All rights reserved.
*
* This software is licensed under the terms of the GNU General Public
* License version 2, as published by the Free Software Foundation, and
@@ -571,6 +571,8 @@
struct q6audio_aio *audio = file->private_data;
pr_debug("%s[%p]\n", __func__, audio);
mutex_lock(&audio->lock);
+ mutex_lock(&audio->read_lock);
+ mutex_lock(&audio->write_lock);
audio->wflush = 1;
if (audio->wakelock_voted) {
audio->wakelock_voted = false;
@@ -594,6 +596,8 @@
wake_up(&audio->event_wait);
audio_aio_reset_event_queue(audio);
q6asm_audio_client_free(audio->ac);
+ mutex_unlock(&audio->write_lock);
+ mutex_unlock(&audio->read_lock);
mutex_unlock(&audio->lock);
mutex_destroy(&audio->lock);
mutex_destroy(&audio->read_lock);
@@ -1723,7 +1727,11 @@
__func__);
rc = -EFAULT;
} else {
+ mutex_lock(&audio->read_lock);
+ mutex_lock(&audio->write_lock);
rc = audio_aio_ion_add(audio, &info);
+ mutex_unlock(&audio->write_lock);
+ mutex_unlock(&audio->read_lock);
}
mutex_unlock(&audio->lock);
break;
@@ -1738,7 +1746,11 @@
__func__);
rc = -EFAULT;
} else {
+ mutex_lock(&audio->read_lock);
+ mutex_lock(&audio->write_lock);
rc = audio_aio_ion_remove(audio, &info);
+ mutex_unlock(&audio->write_lock);
+ mutex_unlock(&audio->read_lock);
}
mutex_unlock(&audio->lock);
break;
@@ -2042,7 +2054,11 @@
} else {
info.fd = info_32.fd;
info.vaddr = compat_ptr(info_32.vaddr);
+ mutex_lock(&audio->read_lock);
+ mutex_lock(&audio->write_lock);
rc = audio_aio_ion_add(audio, &info);
+ mutex_unlock(&audio->write_lock);
+ mutex_unlock(&audio->read_lock);
}
mutex_unlock(&audio->lock);
break;
@@ -2059,7 +2075,11 @@
} else {
info.fd = info_32.fd;
info.vaddr = compat_ptr(info_32.vaddr);
+ mutex_lock(&audio->read_lock);
+ mutex_lock(&audio->write_lock);
rc = audio_aio_ion_remove(audio, &info);
+ mutex_unlock(&audio->write_lock);
+ mutex_unlock(&audio->read_lock);
}
mutex_unlock(&audio->lock);
break;
diff --git a/drivers/soc/qcom/qdsp6v2/apr.c b/drivers/soc/qcom/qdsp6v2/apr.c
index e88703d..06e7a05 100644
--- a/drivers/soc/qcom/qdsp6v2/apr.c
+++ b/drivers/soc/qcom/qdsp6v2/apr.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2010-2015, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2010-2016, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -513,7 +513,7 @@
pr_debug("\n*****************\n");
if (!buf || len <= APR_HDR_SIZE) {
- pr_err("APR: Improper apr pkt received:%p %d\n", buf, len);
+ pr_err("APR: Improper apr pkt received:%pK %d\n", buf, len);
return;
}
hdr = buf;
@@ -599,7 +599,7 @@
return;
}
pr_debug("svc_idx = %d\n", i);
- pr_debug("%x %x %x %p %p\n", c_svc->id, c_svc->dest_id,
+ pr_debug("%x %x %x %pK %pK\n", c_svc->id, c_svc->dest_id,
c_svc->client_id, c_svc->fn, c_svc->priv);
data.payload_size = hdr->pkt_size - hdr_size;
data.opcode = hdr->opcode;
@@ -663,7 +663,7 @@
container_of(work, struct apr_reset_work, work);
handle = apr_reset->handle;
- pr_debug("%s:handle[%p]\n", __func__, handle);
+ pr_debug("%s:handle[%pK]\n", __func__, handle);
apr_deregister(handle);
kfree(apr_reset);
}
@@ -696,7 +696,7 @@
client[dest_id][client_id].svc_cnt--;
if (!client[dest_id][client_id].svc_cnt) {
svc->need_reset = 0x0;
- pr_debug("%s: service is reset %p\n", __func__, svc);
+ pr_debug("%s: service is reset %pK\n", __func__, svc);
}
}
@@ -724,7 +724,7 @@
if (!handle)
return;
- pr_debug("%s: handle[%p]\n", __func__, handle);
+ pr_debug("%s: handle[%pK]\n", __func__, handle);
if (apr_reset_workqueue == NULL) {
pr_err("%s: apr_reset_workqueue is NULL\n", __func__);
diff --git a/drivers/soc/qcom/qdsp6v2/msm_audio_ion.c b/drivers/soc/qcom/qdsp6v2/msm_audio_ion.c
index 52c97e4..470be30 100644
--- a/drivers/soc/qcom/qdsp6v2/msm_audio_ion.c
+++ b/drivers/soc/qcom/qdsp6v2/msm_audio_ion.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013-2015, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2013-2016, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -103,11 +103,11 @@
pr_err("%s: ION memory mapping for AUDIO failed\n", __func__);
goto err_ion_handle;
}
- pr_debug("%s: mapped address = %p, size=%zd\n", __func__,
+ pr_debug("%s: mapped address = %pK, size=%zd\n", __func__,
*vaddr, bufsz);
if (bufsz != 0) {
- pr_debug("%s: memset to 0 %p %zd\n", __func__, *vaddr, bufsz);
+ pr_debug("%s: memset to 0 %pK %zd\n", __func__, *vaddr, bufsz);
memset((void *)*vaddr, 0, bufsz);
}
@@ -153,7 +153,7 @@
bufsz should be 0 and fd shouldn't be 0 as of now
*/
*handle = ion_import_dma_buf(*client, fd);
- pr_debug("%s: DMA Buf name=%s, fd=%d handle=%p\n", __func__,
+ pr_debug("%s: DMA Buf name=%s, fd=%d handle=%pK\n", __func__,
name, fd, *handle);
if (IS_ERR_OR_NULL((void *) (*handle))) {
pr_err("%s: ion import dma buffer failed\n",
@@ -184,7 +184,7 @@
rc = -ENOMEM;
goto err_ion_handle;
}
- pr_debug("%s: mapped address = %p, size=%zd\n", __func__,
+ pr_debug("%s: mapped address = %pK, size=%zd\n", __func__,
*vaddr, bufsz);
return 0;
@@ -207,7 +207,7 @@
}
if (msm_audio_ion_data.smmu_enabled) {
/* Need to populate book kept infomation */
- pr_debug("client=%p, domain=%p, domain_id=%d, group=%p",
+ pr_debug("client=%pK, domain=%pK, domain_id=%d, group=%pK",
client, msm_audio_ion_data.domain,
msm_audio_ion_data.domain_id, msm_audio_ion_data.group);
@@ -273,7 +273,7 @@
offset = 0;
}
len = min(len, remainder);
- pr_debug("vma=%p, addr=%x len=%ld vm_start=%x vm_end=%x vm_page_prot=%ld\n",
+ pr_debug("vma=%pK, addr=%x len=%ld vm_start=%x vm_end=%x vm_page_prot=%ld\n",
vma, (unsigned int)addr, len,
(unsigned int)vma->vm_start,
(unsigned int)vma->vm_end,
@@ -296,8 +296,8 @@
, __func__ , ret);
return ret;
}
- pr_debug("phys=%pa len=%zd\n", &phys_addr, phys_len);
- pr_debug("vma=%p, vm_start=%x vm_end=%x vm_pgoff=%ld vm_page_prot=%ld\n",
+ pr_debug("phys=%pK len=%zd\n", &phys_addr, phys_len);
+ pr_debug("vma=%pK, vm_start=%x vm_end=%x vm_pgoff=%ld vm_page_prot=%ld\n",
vma, (unsigned int)vma->vm_start,
(unsigned int)vma->vm_end, vma->vm_pgoff,
(unsigned long int)vma->vm_page_prot);
@@ -333,7 +333,7 @@
void msm_audio_ion_client_destroy(struct ion_client *client)
{
- pr_debug("%s: client = %p smmu_enabled = %d\n", __func__,
+ pr_debug("%s: client = %pK smmu_enabled = %d\n", __func__,
client, msm_audio_ion_data.smmu_enabled);
ion_client_destroy(client);
@@ -355,7 +355,7 @@
bufsz should be 0 and fd shouldn't be 0 as of now
*/
*handle = ion_import_dma_buf(client, fd);
- pr_debug("%s: DMA Buf name=%s, fd=%d handle=%p\n", __func__,
+ pr_debug("%s: DMA Buf name=%s, fd=%d handle=%pK\n", __func__,
name, fd, *handle);
if (IS_ERR_OR_NULL((void *)(*handle))) {
pr_err("%s: ion import dma buffer failed\n",
@@ -421,7 +421,7 @@
int msm_cache_ops = 0;
if (!abuff) {
- pr_err("Invalid params: %p, %p\n", __func__, abuff);
+ pr_err("%s: Invalid params: %pK\n", __func__, abuff);
return -EINVAL;
}
rc = ion_handle_get_flags(abuff->client, abuff->handle,
@@ -467,7 +467,7 @@
pr_err("%s: ION map iommu failed %d\n", __func__, rc);
return rc;
}
- pr_debug("client=%p, domain=%p, domain_id=%d, group=%p",
+ pr_debug("client=%pK, domain=%pK, domain_id=%d, group=%pK",
client, msm_audio_ion_data.domain,
msm_audio_ion_data.domain_id, msm_audio_ion_data.group);
/* Append the SMMU SID information to the address */
@@ -476,7 +476,8 @@
/* SMMU is disabled*/
rc = ion_phys(client, handle, addr, len);
}
- pr_debug("phys=%pa, len=%zd, rc=%d\n", &(*addr), *len, rc);
+ pr_debug("phys=%pK, len=%zd, rc=%d\n", &(*addr), *len, rc);
+
return rc;
}
@@ -540,18 +541,18 @@
msm_audio_ion_data.domain =
iommu_group_get_iommudata(msm_audio_ion_data.group);
if (IS_ERR_OR_NULL(msm_audio_ion_data.domain)) {
- pr_err("Failed to get domain data for group %p",
+ pr_err("Failed to get domain data for group %pK",
msm_audio_ion_data.group);
goto fail_group;
}
msm_audio_ion_data.domain_id =
msm_find_domain_no(msm_audio_ion_data.domain);
if (msm_audio_ion_data.domain_id < 0) {
- pr_err("Failed to get domain index for domain %p",
+ pr_err("Failed to get domain index for domain %pK",
msm_audio_ion_data.domain);
goto fail_group;
}
- pr_debug("domain=%p, domain_id=%d, group=%p",
+ pr_debug("domain=%pK, domain_id=%d, group=%pK",
msm_audio_ion_data.domain,
msm_audio_ion_data.domain_id, msm_audio_ion_data.group);
@@ -575,7 +576,7 @@
static int msm_audio_ion_remove(struct platform_device *pdev)
{
- pr_debug("%s: msm audio ion is unloaded, domain=%p, group=%p\n",
+ pr_debug("%s: msm audio ion is unloaded, domain=%pK, group=%pK\n",
__func__, msm_audio_ion_data.domain, msm_audio_ion_data.group);
iommu_detach_group(msm_audio_ion_data.domain, msm_audio_ion_data.group);
diff --git a/drivers/staging/android/ion/ion.c b/drivers/staging/android/ion/ion.c
old mode 100644
new mode 100755
index 12c95fc..2c480fca
--- a/drivers/staging/android/ion/ion.c
+++ b/drivers/staging/android/ion/ion.c
@@ -402,13 +402,22 @@
kref_get(&handle->ref);
}
+static int ion_handle_put_nolock(struct ion_handle *handle)
+{
+ int ret;
+
+ ret = kref_put(&handle->ref, ion_handle_destroy);
+
+ return ret;
+}
+
int ion_handle_put(struct ion_handle *handle)
{
struct ion_client *client = handle->client;
int ret;
mutex_lock(&client->lock);
- ret = kref_put(&handle->ref, ion_handle_destroy);
+ ret = ion_handle_put_nolock(handle);
mutex_unlock(&client->lock);
return ret;
@@ -432,18 +441,28 @@
return ERR_PTR(-EINVAL);
}
+static struct ion_handle *ion_handle_get_by_id_nolock(struct ion_client *client,
+ int id)
+{
+ struct ion_handle *handle;
+
+ handle = idr_find(&client->idr, id);
+ if (handle)
+ ion_handle_get(handle);
+
+ return handle ? handle : ERR_PTR(-EINVAL);
+}
+
struct ion_handle *ion_handle_get_by_id(struct ion_client *client,
int id)
{
struct ion_handle *handle;
mutex_lock(&client->lock);
- handle = idr_find(&client->idr, id);
- if (handle)
- ion_handle_get(handle);
+ handle = ion_handle_get_by_id_nolock(client, id);
mutex_unlock(&client->lock);
- return handle ? handle : ERR_PTR(-EINVAL);
+ return handle;
}
static bool ion_handle_validate(struct ion_client *client,
@@ -484,9 +503,9 @@
return 0;
}
-struct ion_handle *ion_alloc(struct ion_client *client, size_t len,
+static struct ion_handle *__ion_alloc(struct ion_client *client, size_t len,
size_t align, unsigned int heap_id_mask,
- unsigned int flags)
+ unsigned int flags, bool grab_handle)
{
struct ion_handle *handle;
struct ion_device *dev = client->dev;
@@ -581,6 +600,8 @@
return handle;
mutex_lock(&client->lock);
+ if (grab_handle)
+ ion_handle_get(handle);
ret = ion_handle_add(client, handle);
mutex_unlock(&client->lock);
if (ret) {
@@ -590,23 +611,36 @@
return handle;
}
+
+struct ion_handle *ion_alloc(struct ion_client *client, size_t len,
+ size_t align, unsigned int heap_id_mask,
+ unsigned int flags)
+{
+ return __ion_alloc(client, len, align, heap_id_mask, flags, false);
+}
EXPORT_SYMBOL(ion_alloc);
-void ion_free(struct ion_client *client, struct ion_handle *handle)
+static void ion_free_nolock(struct ion_client *client, struct ion_handle *handle)
{
bool valid_handle;
BUG_ON(client != handle->client);
- mutex_lock(&client->lock);
valid_handle = ion_handle_validate(client, handle);
if (!valid_handle) {
WARN(1, "%s: invalid handle passed to free.\n", __func__);
- mutex_unlock(&client->lock);
return;
}
+ ion_handle_put_nolock(handle);
+}
+
+void ion_free(struct ion_client *client, struct ion_handle *handle)
+{
+ BUG_ON(client != handle->client);
+
+ mutex_lock(&client->lock);
+ ion_free_nolock(client, handle);
mutex_unlock(&client->lock);
- ion_handle_put(handle);
}
EXPORT_SYMBOL(ion_free);
@@ -773,7 +807,7 @@
struct ion_handle *handle = rb_entry(n, struct ion_handle,
node);
- seq_printf(s, "%16.16s: %16zx : %16d : %12p",
+ seq_printf(s, "%16.16s: %16zx : %16d : %12pK",
handle->buffer->heap->name,
handle->buffer->size,
atomic_read(&handle->ref.refcount),
@@ -1169,7 +1203,7 @@
mutex_lock(&buffer->lock);
list_add(&vma_list->list, &buffer->vmas);
mutex_unlock(&buffer->lock);
- pr_debug("%s: adding %p\n", __func__, vma);
+ pr_debug("%s: adding %pK\n", __func__, vma);
}
static void ion_vm_close(struct vm_area_struct *vma)
@@ -1184,7 +1218,7 @@
continue;
list_del(&vma_list->list);
kfree(vma_list);
- pr_debug("%s: deleting %p\n", __func__, vma);
+ pr_debug("%s: deleting %pK\n", __func__, vma);
break;
}
mutex_unlock(&buffer->lock);
@@ -1458,10 +1492,10 @@
{
struct ion_handle *handle;
- handle = ion_alloc(client, data.allocation.len,
+ handle = __ion_alloc(client, data.allocation.len,
data.allocation.align,
data.allocation.heap_id_mask,
- data.allocation.flags);
+ data.allocation.flags, true);
if (IS_ERR(handle))
return PTR_ERR(handle);
@@ -1474,11 +1508,15 @@
{
struct ion_handle *handle;
- handle = ion_handle_get_by_id(client, data.handle.handle);
- if (IS_ERR(handle))
+ mutex_lock(&client->lock);
+ handle = ion_handle_get_by_id_nolock(client, data.handle.handle);
+ if (IS_ERR(handle)) {
+ mutex_unlock(&client->lock);
return PTR_ERR(handle);
- ion_free(client, handle);
- ion_handle_put(handle);
+ }
+ ion_free_nolock(client, handle);
+ ion_handle_put_nolock(handle);
+ mutex_unlock(&client->lock);
break;
}
case ION_IOC_SHARE:
@@ -1534,11 +1572,15 @@
if (dir & _IOC_READ) {
if (copy_to_user((void __user *)arg, &data, _IOC_SIZE(cmd))) {
- if (cleanup_handle)
+ if (cleanup_handle) {
ion_free(client, cleanup_handle);
+ ion_handle_put(cleanup_handle);
+ }
return -EFAULT;
}
}
+ if (cleanup_handle)
+ ion_handle_put(cleanup_handle);
return ret;
}
diff --git a/drivers/staging/prima/CORE/HDD/src/wlan_hdd_assoc.c b/drivers/staging/prima/CORE/HDD/src/wlan_hdd_assoc.c
index dd5bbc5..043867e 100644
--- a/drivers/staging/prima/CORE/HDD/src/wlan_hdd_assoc.c
+++ b/drivers/staging/prima/CORE/HDD/src/wlan_hdd_assoc.c
@@ -2647,7 +2647,7 @@
case eCSR_ROAM_RESULT_IBSS_NEW_PEER:
{
hdd_station_ctx_t *pHddStaCtx = WLAN_HDD_GET_STATION_CTX_PTR(pAdapter);
- struct station_info staInfo;
+ struct station_info *stainfo;
pr_info ( "IBSS New Peer indication from SME "
"with peerMac " MAC_ADDRESS_STR " BSSID: " MAC_ADDRESS_STR " and stationID= %d",
@@ -2681,13 +2681,20 @@
vosStatus, vosStatus );
}
pHddStaCtx->ibss_sta_generation++;
- memset(&staInfo, 0, sizeof(staInfo));
- staInfo.filled = 0;
- staInfo.generation = pHddStaCtx->ibss_sta_generation;
+ stainfo = vos_mem_malloc(sizeof(*stainfo));
+ if (stainfo == NULL) {
+ VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR,
+ "memory allocation for station_info failed");
+ return eHAL_STATUS_FAILED_ALLOC;
+ }
+ memset(stainfo, 0, sizeof(*stainfo));
+ stainfo->filled = 0;
+ stainfo->generation = pHddStaCtx->ibss_sta_generation;
cfg80211_new_sta(pAdapter->dev,
(const u8 *)pRoamInfo->peerMac,
- &staInfo, GFP_KERNEL);
+ stainfo, GFP_KERNEL);
+ vos_mem_free(stainfo);
if ( eCSR_ENCRYPT_TYPE_WEP40_STATICKEY == pHddStaCtx->ibss_enc_key.encType
||eCSR_ENCRYPT_TYPE_WEP104_STATICKEY == pHddStaCtx->ibss_enc_key.encType
diff --git a/drivers/staging/prima/CORE/HDD/src/wlan_hdd_hostapd.c b/drivers/staging/prima/CORE/HDD/src/wlan_hdd_hostapd.c
index 2cc6251..7ef1862 100644
--- a/drivers/staging/prima/CORE/HDD/src/wlan_hdd_hostapd.c
+++ b/drivers/staging/prima/CORE/HDD/src/wlan_hdd_hostapd.c
@@ -1056,21 +1056,27 @@
#endif
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,38))
{
- struct station_info staInfo;
v_U16_t iesLen = pSapEvent->sapevt.sapStationAssocReassocCompleteEvent.iesLen;
- memset(&staInfo, 0, sizeof(staInfo));
if (iesLen <= MAX_ASSOC_IND_IE_LEN )
{
- staInfo.assoc_req_ies =
- (const u8 *)&pSapEvent->sapevt.sapStationAssocReassocCompleteEvent.ies[0];
- staInfo.assoc_req_ies_len = iesLen;
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,0,31))
- staInfo.filled |= STATION_INFO_ASSOC_REQ_IES;
+ struct station_info *stainfo;
+ stainfo = vos_mem_malloc(sizeof(*stainfo));
+ if (stainfo == NULL) {
+ hddLog(LOGE, FL("alloc station_info failed"));
+ return VOS_STATUS_E_NOMEM;
+ }
+ memset(stainfo, 0, sizeof(*stainfo));
+ stainfo->assoc_req_ies =
+ (const u8 *)&pSapEvent->sapevt.sapStationAssocReassocCompleteEvent.ies[0];
+ stainfo->assoc_req_ies_len = iesLen;
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,0,31)) || defined(WITH_BACKPORTS)
+ stainfo->filled |= STATION_INFO_ASSOC_REQ_IES;
#endif
- cfg80211_new_sta(dev,
- (const u8 *)&pSapEvent->sapevt.sapStationAssocReassocCompleteEvent.staMac.bytes[0],
- &staInfo, GFP_KERNEL);
+ cfg80211_new_sta(dev,
+ (const u8 *)&pSapEvent->sapevt.sapStationAssocReassocCompleteEvent.staMac.bytes[0],
+ stainfo, GFP_KERNEL);
+ vos_mem_free(stainfo);
}
else
{
diff --git a/drivers/usb/gadget/f_mbim.c b/drivers/usb/gadget/f_mbim.c
index 4791064..06cbfbd 100644
--- a/drivers/usb/gadget/f_mbim.c
+++ b/drivers/usb/gadget/f_mbim.c
@@ -741,7 +741,7 @@
struct f_mbim *mbim = req->context;
struct usb_cdc_notification *event = req->buf;
- pr_debug("dev:%p\n", mbim);
+ pr_debug("dev:%pK\n", mbim);
spin_lock(&mbim->lock);
switch (req->status) {
@@ -771,7 +771,7 @@
mbim_do_notify(mbim);
spin_unlock(&mbim->lock);
- pr_debug("dev:%p Exit\n", mbim);
+ pr_debug("dev:%pK Exit\n", mbim);
}
static void mbim_ep0out_complete(struct usb_ep *ep, struct usb_request *req)
@@ -782,7 +782,7 @@
struct f_mbim *mbim = func_to_mbim(f);
struct mbim_ntb_input_size *ntb = NULL;
- pr_debug("dev:%p\n", mbim);
+ pr_debug("dev:%pK\n", mbim);
req->context = NULL;
if (req->status || req->actual != req->length) {
@@ -820,7 +820,7 @@
invalid:
usb_ep_set_halt(ep);
- pr_err("dev:%p Failed\n", mbim);
+ pr_err("dev:%pK Failed\n", mbim);
return;
}
@@ -842,7 +842,8 @@
return;
}
- pr_debug("dev:%p port#%d\n", dev, dev->port_num);
+
+ pr_debug("dev:%pK port#%d\n", dev, dev->port_num);
cpkt = mbim_alloc_ctrl_pkt(len, GFP_ATOMIC);
if (!cpkt) {
@@ -1159,7 +1160,7 @@
return ret;
}
- pr_info("Set mbim port in_desc = 0x%p\n",
+ pr_info("Set mbim port in_desc = 0x%pK\n",
mbim->bam_port.in->desc);
ret = config_ep_by_speed(cdev->gadget, f,
@@ -1171,7 +1172,7 @@
return ret;
}
- pr_info("Set mbim port out_desc = 0x%p\n",
+ pr_info("Set mbim port out_desc = 0x%pK\n",
mbim->bam_port.out->desc);
if (mbim->xport == USB_GADGET_XPORT_BAM2BAM_IPA
@@ -1805,7 +1806,7 @@
pr_debug("Enter(%zu)\n", count);
if (!dev || !req || !req->buf) {
- pr_err("%s: dev %p req %p req->buf %p\n",
+ pr_err("%s: dev %pK req %pK req->buf %pK\n",
__func__, dev, req, req ? req->buf : req);
return -ENODEV;
}
@@ -1827,7 +1828,7 @@
}
if (dev->not_port.notify_state != MBIM_NOTIFY_RESPONSE_AVAILABLE) {
- pr_err("dev:%p state=%d error\n", dev,
+ pr_err("dev:%pK state=%d error\n", dev,
dev->not_port.notify_state);
mbim_unlock(&dev->write_excl);
return -EINVAL;
diff --git a/drivers/usb/gadget/u_ctrl_hsic.c b/drivers/usb/gadget/u_ctrl_hsic.c
index 9ad3e32..99e9f7f 100644
--- a/drivers/usb/gadget/u_ctrl_hsic.c
+++ b/drivers/usb/gadget/u_ctrl_hsic.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2011, 2013-2014, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2011, 2013-2016, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -185,7 +185,7 @@
if (!port || !test_bit(CH_READY, &port->bridge_sts))
return;
- pr_debug("%s: port:%p port type =%u\n", __func__, port, port->gtype);
+ pr_debug("%s: port:%pK port type =%u\n", __func__, port, port->gtype);
retval = ctrl_bridge_open(&port->brdg);
if (retval) {
@@ -482,7 +482,7 @@
platform_driver_register(pdrv);
- pr_debug("%s: port:%p portno:%d\n", __func__, port, portno);
+ pr_debug("%s: port:%pK portno:%d\n", __func__, port, portno);
return 0;
}
@@ -574,7 +574,7 @@
temp += scnprintf(buf + temp, DEBUG_BUF_SIZE - temp,
"\nName: %s\n"
- "#PORT:%d port: %p\n"
+ "#PORT:%d port: %pK\n"
"to_usbhost: %lu\n"
"to_modem: %lu\n"
"cpkt_drp_cnt: %lu\n"
diff --git a/drivers/video/fbcmap.c b/drivers/video/fbcmap.c
index 0082120..5202761 100644
--- a/drivers/video/fbcmap.c
+++ b/drivers/video/fbcmap.c
@@ -196,7 +196,7 @@
int tooff = 0, fromoff = 0;
int size;
- if (!to || !from)
+ if (!to || !from || (int)(to->start) < 0)
return -EINVAL;
if (to->start > from->start)
diff --git a/drivers/video/msm/mdss/mdp3.c b/drivers/video/msm/mdss/mdp3.c
index 57062ea5..5a32a78 100644
--- a/drivers/video/msm/mdss/mdp3.c
+++ b/drivers/video/msm/mdss/mdp3.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2013-2015, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2013-2016, The Linux Foundation. All rights reserved.
* Copyright (C) 2007 Google Incorporated
*
* This software is licensed under the terms of the GNU General Public
@@ -1008,7 +1008,7 @@
mdp3_res->ion_client = msm_ion_client_create(mdp3_res->pdev->name);
if (IS_ERR_OR_NULL(mdp3_res->ion_client)) {
- pr_err("msm_ion_client_create() return error (%p)\n",
+ pr_err("msm_ion_client_create() return error (%pK)\n",
mdp3_res->ion_client);
mdp3_res->ion_client = NULL;
return -EINVAL;
@@ -1437,7 +1437,7 @@
mutex_lock(&mdp3_res->iommu_lock);
meta = mdp3_iommu_meta_lookup(table);
if (!meta) {
- WARN(1, "%s: buffer was never mapped for %p\n", __func__,
+ WARN(1, "%s: buffer was never mapped for %pK\n", __func__,
handle);
mutex_unlock(&mdp3_res->iommu_lock);
goto out;
@@ -1465,7 +1465,7 @@
} else if (meta->table > entry->table) {
p = &(*p)->rb_right;
} else {
- pr_err("%s: handle %p already exists\n", __func__,
+ pr_err("%s: handle %pK already exists\n", __func__,
entry->handle);
BUG();
}
@@ -1527,7 +1527,7 @@
ret = iommu_map_range(domain, meta->iova_addr + padding,
table->sgl, size, prot);
if (ret) {
- pr_err("%s: could not map %pa in domain %p\n",
+ pr_err("%s: could not map %pa in domain %pK\n",
__func__, &meta->iova_addr, domain);
unmap_size = padding;
goto out2;
@@ -1650,12 +1650,12 @@
}
} else {
if (iommu_meta->flags != iommu_flags) {
- pr_err("%s: handle %p is already mapped with diff flag\n",
+ pr_err("%s: handle %pK is already mapped with diff flag\n",
__func__, handle);
ret = -EINVAL;
goto out_unlock;
} else if (iommu_meta->mapped_size != iova_length) {
- pr_err("%s: handle %p is already mapped with diff len\n",
+ pr_err("%s: handle %pK is already mapped with diff len\n",
__func__, handle);
ret = -EINVAL;
goto out_unlock;
@@ -1771,7 +1771,7 @@
data->addr += img->offset;
data->len -= img->offset;
- pr_debug("mem=%d ihdl=%p buf=0x%pa len=0x%x\n", img->memory_id,
+ pr_debug("mem=%d ihdl=%pK buf=0x%pa len=0x%x\n", img->memory_id,
data->srcp_ihdl, &data->addr, data->len);
} else {
mdp3_put_img(data, client);
@@ -2026,7 +2026,7 @@
return ret;
}
- pr_info("allocating %u bytes at %p (%lx phys) for fb %d\n",
+ pr_info("allocating %u bytes at %pK (%lx phys) for fb %d\n",
size, virt, phys, mfd->index);
mfd->fbi->screen_base = virt;
diff --git a/drivers/video/msm/mdss/mdp3_ppp_hwio.c b/drivers/video/msm/mdss/mdp3_ppp_hwio.c
index b240392..ef667c8 100644
--- a/drivers/video/msm/mdss/mdp3_ppp_hwio.c
+++ b/drivers/video/msm/mdss/mdp3_ppp_hwio.c
@@ -1292,7 +1292,8 @@
bg_mdp_ops = 0;
}
pr_debug("BLIT FG Param Fmt %d (x %d,y %d,w %d,h %d), ROI(x %d,y %d, w\
- %d, h %d) Addr_P0 %p, Stride S0 %d Addr_P1 %p, Stride S1 %d\n",
+ %d, h %d) Addr_P0 %pK, Stride S0 %d Addr_P1 %pK,\
+ Stride S1 %d\n",
blit_op->src.color_fmt, blit_op->src.prop.x, blit_op->src.prop.y,
blit_op->src.prop.width, blit_op->src.prop.height,
blit_op->src.roi.x, blit_op->src.roi.y, blit_op->src.roi.width,
@@ -1300,14 +1301,15 @@
blit_op->src.p1, blit_op->src.stride1);
if (blit_op->bg.p0 != blit_op->dst.p0)
pr_debug("BLIT BG Param Fmt %d (x %d,y %d,w %d,h %d), ROI(x %d,y %d, w\
- %d, h %d) Addr %p, Stride S0 %d Addr_P1 %p, Stride S1 %d\n",
+ %d, h %d) Addr %pK, Stride S0 %d Addr_P1 %pK,\
+ Stride S1 %d\n",
blit_op->bg.color_fmt, blit_op->bg.prop.x, blit_op->bg.prop.y,
blit_op->bg.prop.width, blit_op->bg.prop.height,
blit_op->bg.roi.x, blit_op->bg.roi.y, blit_op->bg.roi.width,
blit_op->bg.roi.height, blit_op->bg.p0, blit_op->bg.stride0,
blit_op->bg.p1, blit_op->bg.stride1);
pr_debug("BLIT FB Param Fmt %d (x %d,y %d,w %d,h %d), ROI(x %d,y %d, w\
- %d, h %d) Addr %p, Stride S0 %d Addr_P1 %p, Stride S1 %d\n",
+ %d, h %d) Addr %pK, Stride S0 %d Addr_P1 %pK, Stride S1 %d\n",
blit_op->dst.color_fmt, blit_op->dst.prop.x, blit_op->dst.prop.y,
blit_op->dst.prop.width, blit_op->dst.prop.height,
blit_op->dst.roi.x, blit_op->dst.roi.y, blit_op->dst.roi.width,
diff --git a/drivers/video/msm/mdss/mdss_debug.c b/drivers/video/msm/mdss/mdss_debug.c
index 60cf866..4cc7a97 100644
--- a/drivers/video/msm/mdss/mdss_debug.c
+++ b/drivers/video/msm/mdss/mdss_debug.c
@@ -169,7 +169,7 @@
for (i = 0; i < len; i++) {
p = buf + i * 3;
p[2] = 0;
- pr_debug("p[%d] = %p:%s\n", i, p, p);
+ pr_debug("p[%d] = %pK:%s\n", i, p, p);
cnt = sscanf(p, "%x", &tmp);
reg[i] = tmp;
pr_debug("reg[%d] = %x\n", i, (int)reg[i]);
@@ -1278,7 +1278,7 @@
return NULL;
}
- pr_debug("MISR Module(%d) CTRL(0x%x) SIG(0x%x) intf_base(0x%p)\n",
+ pr_debug("MISR Module(%d) CTRL(0x%x) SIG(0x%x) intf_base(0x%pK)\n",
block_id, map->ctrl_reg, map->value_reg, intf_base);
return map;
}
@@ -1321,7 +1321,7 @@
bool use_mdp_up_misr = false;
if (!mdata || !req || !ctl) {
- pr_err("Invalid input params: mdata = %p req = %p ctl = %p",
+ pr_err("Invalid input params: mdata = %pK req = %pK ctl = %pK",
mdata, req, ctl);
return -EINVAL;
}
diff --git a/drivers/video/msm/mdss/mdss_debug_xlog.c b/drivers/video/msm/mdss/mdss_debug_xlog.c
index 7ba5ad7..3c31de4 100644
--- a/drivers/video/msm/mdss/mdss_debug_xlog.c
+++ b/drivers/video/msm/mdss/mdss_debug_xlog.c
@@ -235,7 +235,7 @@
if (*dump_mem) {
dump_addr = *dump_mem;
- pr_info("bus dump_addr:%p size:%d\n",
+ pr_info("bus dump_addr:%pK size:%d\n",
dump_addr, list_size);
} else {
in_mem = false;
@@ -299,7 +299,7 @@
if (*dump_mem) {
dump_addr = *dump_mem;
- pr_info("start_addr:%p end_addr:%p reg_addr=%p\n",
+ pr_info("start_addr:%pK end_addr:%pK reg_addr=%pK\n",
dump_addr, dump_addr + (u32)len * 16,
addr);
} else {
@@ -318,7 +318,7 @@
xc = readl_relaxed(addr+0xc);
if (in_log)
- pr_info("%p : %08x %08x %08x %08x\n", addr, x0, x4, x8,
+ pr_info("%pK : %08x %08x %08x %08x\n", addr, x0, x4, x8,
xc);
if (dump_addr && in_mem) {
@@ -354,7 +354,7 @@
len = get_dump_range(&xlog_node->offset,
dbg->max_offset);
addr = dbg->base + xlog_node->offset.start;
- pr_info("%s: range_base=0x%p start=0x%x end=0x%x\n",
+ pr_info("%s: range_base=0x%pK start=0x%x end=0x%x\n",
xlog_node->range_name,
addr, xlog_node->offset.start,
xlog_node->offset.end);
@@ -364,7 +364,7 @@
} else {
/* If there is no list to dump ranges, dump all registers */
pr_info("Ranges not found, will dump full registers");
- pr_info("base:0x%p len:0x%zu\n", dbg->base, dbg->max_offset);
+ pr_info("base:0x%pK len:0x%zu\n", dbg->base, dbg->max_offset);
addr = dbg->base;
len = dbg->max_offset;
mdss_dump_reg(reg_dump_flag, addr, len, &dbg->reg_dump);
diff --git a/drivers/video/msm/mdss/mdss_dsi.c b/drivers/video/msm/mdss/mdss_dsi.c
index 32ed3ad..63cc27a 100644
--- a/drivers/video/msm/mdss/mdss_dsi.c
+++ b/drivers/video/msm/mdss/mdss_dsi.c
@@ -1122,7 +1122,7 @@
mutex_lock(&ctrl_pdata->mutex);
panel_info = &ctrl_pdata->panel_data.panel_info;
- pr_debug("%s+: ctrl=%p ndx=%d power_state=%d\n",
+ pr_debug("%s+: ctrl=%pK ndx=%d power_state=%d\n",
__func__, ctrl_pdata, ctrl_pdata->ndx, power_state);
if (power_state == panel_info->panel_power_state) {
@@ -1281,7 +1281,7 @@
mdss_dsi_validate_debugfs_info(ctrl_pdata);
cur_power_state = pdata->panel_info.panel_power_state;
- pr_debug("%s+: ctrl=%p ndx=%d cur_power_state=%d\n", __func__,
+ pr_debug("%s+: ctrl=%pK ndx=%d cur_power_state=%d\n", __func__,
ctrl_pdata, ctrl_pdata->ndx, cur_power_state);
pinfo = &pdata->panel_info;
@@ -1449,7 +1449,7 @@
panel_data);
mipi = &pdata->panel_info.mipi;
- pr_debug("%s+: ctrl=%p ndx=%d cur_power_state=%d\n", __func__,
+ pr_debug("%s+: ctrl=%pK ndx=%d cur_power_state=%d\n", __func__,
ctrl_pdata, ctrl_pdata->ndx,
pdata->panel_info.panel_power_state);
@@ -1508,7 +1508,7 @@
panel_data);
mipi = &pdata->panel_info.mipi;
- pr_debug("%s+: ctrl=%p ndx=%d power_state=%d\n",
+ pr_debug("%s+: ctrl=%pK ndx=%d power_state=%d\n",
__func__, ctrl_pdata, ctrl_pdata->ndx, power_state);
mdss_dsi_clk_ctrl(ctrl_pdata, DSI_ALL_CLKS, 1);
@@ -1578,7 +1578,7 @@
ctrl_pdata = container_of(pdata, struct mdss_dsi_ctrl_pdata,
panel_data);
- pr_debug("%s+: ctrl=%p ndx=%d\n", __func__,
+ pr_debug("%s+: ctrl=%pK ndx=%d\n", __func__,
ctrl_pdata, ctrl_pdata->ndx);
mdss_dsi_clk_ctrl(ctrl_pdata, DSI_ALL_CLKS, 1);
@@ -1610,7 +1610,7 @@
ctrl_pdata = container_of(pdata, struct mdss_dsi_ctrl_pdata,
panel_data);
- pr_debug("%s+: ctrl=%p ndx=%d\n", __func__,
+ pr_debug("%s+: ctrl=%pK ndx=%d\n", __func__,
ctrl_pdata, ctrl_pdata->ndx);
WARN((ctrl_pdata->ctrl_state & CTRL_STATE_PANEL_INIT),
@@ -2734,7 +2734,7 @@
mdss_dsi_res->shared_data = devm_kzalloc(&pdev->dev,
sizeof(struct dsi_shared_data),
GFP_KERNEL);
- pr_debug("%s Allocated shared_data=%p\n", __func__,
+ pr_debug("%s Allocated shared_data=%pK\n", __func__,
mdss_dsi_res->shared_data);
if (!mdss_dsi_res->shared_data) {
pr_err("%s Unable to alloc mem for shared_data\n",
@@ -2793,7 +2793,7 @@
rc = -ENOMEM;
goto mem_fail;
}
- pr_debug("%s Allocated ctrl_pdata[%d]=%p\n",
+ pr_debug("%s Allocated ctrl_pdata[%d]=%pK\n",
__func__, i, mdss_dsi_res->ctrl_pdata[i]);
mdss_dsi_res->ctrl_pdata[i]->shared_data =
mdss_dsi_res->shared_data;
@@ -2803,7 +2803,7 @@
}
mdss_dsi_res->pdev = pdev;
- pr_debug("%s: Setting up mdss_dsi_res=%p\n", __func__, mdss_dsi_res);
+ pr_debug("%s: Setting up mdss_dsi_res=%pK\n", __func__, mdss_dsi_res);
return 0;
@@ -3130,10 +3130,10 @@
return rc;
}
- pr_info("%s: ctrl_base=%p ctrl_size=%x phy_base=%p phy_size=%x\n",
+ pr_info("%s: ctrl_base=%pK ctrl_size=%x phy_base=%pK phy_size=%x\n",
__func__, ctrl->ctrl_base, ctrl->reg_size, ctrl->phy_io.base,
ctrl->phy_io.len);
- pr_info("%s: phy_regulator_base=%p phy_regulator_size=%x\n", __func__,
+ pr_info("%s: phy_regulator_base=%pK phy_regulator_size=%x\n", __func__,
ctrl->phy_regulator_io.base, ctrl->phy_regulator_io.len);
rc = msm_dss_ioremap_byname(pdev, &ctrl->mmss_misc_io,
diff --git a/drivers/video/msm/mdss/mdss_dsi_host.c b/drivers/video/msm/mdss/mdss_dsi_host.c
index b22f024..6c43cfe 100644
--- a/drivers/video/msm/mdss/mdss_dsi_host.c
+++ b/drivers/video/msm/mdss/mdss_dsi_host.c
@@ -97,7 +97,7 @@
if (ctrl->mdss_util->register_irq(ctrl->dsi_hw))
pr_err("%s: mdss_register_irq failed.\n", __func__);
- pr_debug("%s: ndx=%d base=%p\n", __func__, ctrl->ndx, ctrl->ctrl_base);
+ pr_debug("%s: ndx=%d base=%pK\n", __func__, ctrl->ndx, ctrl->ctrl_base);
init_completion(&ctrl->dma_comp);
init_completion(&ctrl->mdp_comp);
diff --git a/drivers/video/msm/mdss/mdss_dsi_panel.c b/drivers/video/msm/mdss/mdss_dsi_panel.c
index 17098f8..f85a820 100644
--- a/drivers/video/msm/mdss/mdss_dsi_panel.c
+++ b/drivers/video/msm/mdss/mdss_dsi_panel.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012-2015, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2012-2016, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -754,7 +754,7 @@
ctrl = container_of(pdata, struct mdss_dsi_ctrl_pdata,
panel_data);
- pr_debug("%s: ctrl=%p ndx=%d\n", __func__, ctrl, ctrl->ndx);
+ pr_debug("%s: ctrl=%pK ndx=%d\n", __func__, ctrl, ctrl->ndx);
if (pinfo->dcs_cmd_by_left) {
if (ctrl->ndx != DSI_CTRL_LEFT)
@@ -767,7 +767,7 @@
(pinfo->mipi.boot_mode != pinfo->mipi.mode))
on_cmds = &ctrl->post_dms_on_cmds;
- pr_debug("%s: ctrl=%p cmd_cnt=%d\n", __func__, ctrl, on_cmds->cmd_cnt);
+ pr_debug("%s: ctrl=%pK cmd_cnt=%d\n", __func__, ctrl, on_cmds->cmd_cnt);
if (on_cmds->cmd_cnt)
mdss_dsi_panel_cmds_send(ctrl, on_cmds);
@@ -794,7 +794,7 @@
ctrl = container_of(pdata, struct mdss_dsi_ctrl_pdata,
panel_data);
- pr_debug("%s: ctrl=%p ndx=%d\n", __func__, ctrl, ctrl->ndx);
+ pr_debug("%s: ctrl=%pK ndx=%d\n", __func__, ctrl, ctrl->ndx);
pinfo = &pdata->panel_info;
if (pinfo->dcs_cmd_by_left) {
@@ -804,7 +804,7 @@
on_cmds = &ctrl->post_panel_on_cmds;
- pr_debug("%s: ctrl=%p cmd_cnt=%d\n", __func__, ctrl, on_cmds->cmd_cnt);
+ pr_debug("%s: ctrl=%pK cmd_cnt=%d\n", __func__, ctrl, on_cmds->cmd_cnt);
if (on_cmds->cmd_cnt) {
msleep(50); /* wait for 3 vsync passed */
@@ -837,7 +837,7 @@
ctrl = container_of(pdata, struct mdss_dsi_ctrl_pdata,
panel_data);
- pr_debug("%s: ctrl=%p ndx=%d\n", __func__, ctrl, ctrl->ndx);
+ pr_debug("%s: ctrl=%pK ndx=%d\n", __func__, ctrl, ctrl->ndx);
if (pinfo->dcs_cmd_by_left) {
if (ctrl->ndx != DSI_CTRL_LEFT)
@@ -872,7 +872,7 @@
ctrl = container_of(pdata, struct mdss_dsi_ctrl_pdata,
panel_data);
- pr_debug("%s: ctrl=%p ndx=%d enable=%d\n", __func__, ctrl, ctrl->ndx,
+ pr_debug("%s: ctrl=%pK ndx=%d enable=%d\n", __func__, ctrl, ctrl->ndx,
enable);
/* Any panel specific low power commands/config */
diff --git a/drivers/video/msm/mdss/mdss_fb.c b/drivers/video/msm/mdss/mdss_fb.c
index 82fabc5..bc593eed 100644
--- a/drivers/video/msm/mdss/mdss_fb.c
+++ b/drivers/video/msm/mdss/mdss_fb.c
@@ -1772,7 +1772,7 @@
goto fb_mmap_failed;
}
- pr_debug("alloc 0x%zuB vaddr = %p (%pa iova) for fb%d\n", fb_size,
+ pr_debug("alloc 0x%zuB vaddr = %pK (%pa iova) for fb%d\n", fb_size,
vaddr, &mfd->iova, mfd->index);
mfd->fbi->screen_base = (char *) vaddr;
@@ -1865,7 +1865,7 @@
vma->vm_page_prot =
pgprot_writecombine(vma->vm_page_prot);
- pr_debug("vma=%p, addr=%x len=%ld\n",
+ pr_debug("vma=%pK, addr=%x len=%ld\n",
vma, (unsigned int)addr, len);
pr_debug("vm_start=%x vm_end=%x vm_page_prot=%ld\n",
(unsigned int)vma->vm_start,
@@ -2035,7 +2035,7 @@
if (rc)
pr_warn("Cannot map fb_mem %pa to IOMMU. rc=%d\n", &phys, rc);
- pr_debug("alloc 0x%zxB @ (%pa phys) (0x%p virt) (%pa iova) for fb%d\n",
+ pr_debug("alloc 0x%zxB @ (%pa phys) (0x%pK virt) (%pa iova) for fb%d\n",
size, &phys, virt, &mfd->iova, mfd->index);
mfd->fbi->screen_base = virt;
diff --git a/drivers/video/msm/mdss/mdss_hdmi_tx.c b/drivers/video/msm/mdss/mdss_hdmi_tx.c
index 6ecb1a8..466b96d 100644
--- a/drivers/video/msm/mdss/mdss_hdmi_tx.c
+++ b/drivers/video/msm/mdss/mdss_hdmi_tx.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2010-2015, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2010-2016, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -1178,7 +1178,7 @@
return rc;
}
hdmi_ctrl->kobj = &fbi->dev->kobj;
- DEV_DBG("%s: sysfs group %p\n", __func__, hdmi_ctrl->kobj);
+ DEV_DBG("%s: sysfs group %pK\n", __func__, hdmi_ctrl->kobj);
return 0;
} /* hdmi_tx_sysfs_create */
@@ -3934,7 +3934,7 @@
DEV_DBG("%s: '%s' remap failed or not available\n",
__func__, hdmi_tx_io_name(i));
}
- DEV_INFO("%s: '%s': start = 0x%p, len=0x%x\n", __func__,
+ DEV_INFO("%s: '%s': start = 0x%pK, len=0x%x\n", __func__,
hdmi_tx_io_name(i), pdata->io[i].base,
pdata->io[i].len);
}
diff --git a/drivers/video/msm/mdss/mdss_hdmi_util.c b/drivers/video/msm/mdss/mdss_hdmi_util.c
index 5e8295e..9b911c11 100644
--- a/drivers/video/msm/mdss/mdss_hdmi_util.c
+++ b/drivers/video/msm/mdss/mdss_hdmi_util.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2010-2015, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2010-2016, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -364,7 +364,7 @@
return;
}
- DEV_DBG("%s: buf=%p, d_len=0x%x, d_addr=0x%x, no_align=%d\n",
+ DEV_DBG("%s: buf=%pK, d_len=0x%x, d_addr=0x%x, no_align=%d\n",
caller, ddc_data->data_buf, ddc_data->data_len,
ddc_data->dev_addr, ddc_data->no_align);
DEV_DBG("%s: offset=0x%x, req_len=0x%x, retry=%d, what=%s\n",
diff --git a/drivers/video/msm/mdss/mdss_mdp.c b/drivers/video/msm/mdss/mdss_mdp.c
index fdc766d..5d8dedd 100644
--- a/drivers/video/msm/mdss/mdss_mdp.c
+++ b/drivers/video/msm/mdss/mdss_mdp.c
@@ -1442,7 +1442,7 @@
mdata->iclient = msm_ion_client_create(mdata->pdev->name);
if (IS_ERR_OR_NULL(mdata->iclient)) {
- pr_err("msm_ion_client_create() return error (%p)\n",
+ pr_err("msm_ion_client_create() return error (%pK)\n",
mdata->iclient);
mdata->iclient = NULL;
}
@@ -1811,7 +1811,7 @@
if (rc)
pr_debug("unable to map MDSS VBIF non-realtime base\n");
else
- pr_debug("MDSS VBIF NRT HW Base addr=%p len=0x%x\n",
+ pr_debug("MDSS VBIF NRT HW Base addr=%pK len=0x%x\n",
mdata->vbif_nrt_io.base, mdata->vbif_nrt_io.len);
res = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
@@ -2664,7 +2664,7 @@
for (i = 0; i < len; i++) {
head[i].num = i;
head[i].base = (mdata->mdss_io.base) + dsc_offsets[i];
- pr_debug("%s: dsc off (%d) = %p\n", __func__, i, head[i].base);
+ pr_debug("%s: dsc off (%d) = %pK\n", __func__, i, head[i].base);
}
mdata->dsc_off = head;
diff --git a/drivers/video/msm/mdss/mdss_mdp_debug.c b/drivers/video/msm/mdss/mdss_mdp_debug.c
index c4e38d0..2a25231 100644
--- a/drivers/video/msm/mdss/mdss_mdp_debug.c
+++ b/drivers/video/msm/mdss/mdss_mdp_debug.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014-2015, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2014-2016, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -169,7 +169,7 @@
&buf->p[0].addr, buf->p[0].len);
if (buf->state != MDP_BUF_STATE_UNUSED)
- seq_printf(s, "ihdl=0x%p ", buf->p[0].srcp_ihdl);
+ seq_printf(s, "ihdl=0x%pK ", buf->p[0].srcp_ihdl);
__print_time(tmpbuf, sizeof(tmpbuf), buf->last_alloc);
seq_printf(s, "alloc_time=%s ", tmpbuf);
diff --git a/drivers/video/msm/mdss/mdss_mdp_intf_cmd.c b/drivers/video/msm/mdss/mdss_mdp_intf_cmd.c
index 78d290e..c9cc332 100644
--- a/drivers/video/msm/mdss/mdss_mdp_intf_cmd.c
+++ b/drivers/video/msm/mdss/mdss_mdp_intf_cmd.c
@@ -668,7 +668,7 @@
ctx->rdptr_enabled, ctl->roi_bkup.w,
ctl->roi_bkup.h);
- pr_debug("%s: intf_num=%d ctx=%p koff_cnt=%d\n", __func__,
+ pr_debug("%s: intf_num=%d ctx=%pK koff_cnt=%d\n", __func__,
ctl->intf_num, ctx, atomic_read(&ctx->koff_cnt));
rc = wait_event_timeout(ctx->pp_waitq,
@@ -1366,7 +1366,7 @@
ctx->intf_stopped = 0;
- pr_debug("%s: ctx=%p num=%d\n", __func__, ctx, ctx->pp_num);
+ pr_debug("%s: ctx=%pK num=%d\n", __func__, ctx, ctx->pp_num);
MDSS_XLOG(ctl->num, atomic_read(&ctx->koff_cnt), ctx->clk_enabled,
ctx->rdptr_enabled);
diff --git a/drivers/video/msm/mdss/mdss_mdp_intf_hr_video.c b/drivers/video/msm/mdss/mdss_mdp_intf_hr_video.c
index 46dadc6..fee1a00 100644
--- a/drivers/video/msm/mdss/mdss_mdp_intf_hr_video.c
+++ b/drivers/video/msm/mdss/mdss_mdp_intf_hr_video.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2014-2015, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2014-2016, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -594,7 +594,7 @@
for (i = 0; i < count; i++) {
head[i].base = mdata->mdp_base + offsets[i];
- pr_debug("adding Video Intf #%d offset=0x%x virt=%p\n", i,
+ pr_debug("adding Video Intf #%d offset=0x%x virt=%pK\n", i,
offsets[i], head[i].base);
head[i].ref_cnt = 0;
head[i].intf_num = i + MDSS_MDP_INTF0;
@@ -1154,7 +1154,7 @@
pr_err("Intf %d already in use\n", ctl->intf_num);
return -EBUSY;
}
- pr_debug("video Intf #%d base=%p", ctx->intf_num, ctx->base);
+ pr_debug("video Intf #%d base=%pK", ctx->intf_num, ctx->base);
ctx->ref_cnt++;
} else {
pr_err("Invalid intf number: %d\n", ctl->intf_num);
diff --git a/drivers/video/msm/mdss/mdss_mdp_intf_video.c b/drivers/video/msm/mdss/mdss_mdp_intf_video.c
index f67d49c..fc031bd 100644
--- a/drivers/video/msm/mdss/mdss_mdp_intf_video.c
+++ b/drivers/video/msm/mdss/mdss_mdp_intf_video.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012-2015, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2012-2016, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -120,7 +120,7 @@
for (i = 0; i < count; i++) {
head[i].base = mdata->mdss_io.base + offsets[i];
- pr_debug("adding Video Intf #%d offset=0x%x virt=%p\n", i,
+ pr_debug("adding Video Intf #%d offset=0x%x virt=%pK\n", i,
offsets[i], head[i].base);
head[i].ref_cnt = 0;
head[i].intf_num = i + MDSS_MDP_INTF0;
@@ -498,7 +498,7 @@
pr_err("Intf %d not in use\n", (inum + MDSS_MDP_INTF0));
return -ENODEV;
}
- pr_debug("stop ctl=%d video Intf #%d base=%p", ctl->num, ctx->intf_num,
+ pr_debug("stop ctl=%d video Intf #%d base=%pK", ctl->num, ctx->intf_num,
ctx->base);
ret = mdss_mdp_video_ctx_stop(ctl, pinfo, ctx);
@@ -516,7 +516,7 @@
pr_err("Intf %d not in use\n", (inum + MDSS_MDP_INTF0));
return -ENODEV;
}
- pr_debug("stop ctl=%d video Intf #%d base=%p", ctl->num,
+ pr_debug("stop ctl=%d video Intf #%d base=%pK", ctl->num,
sctx->intf_num, sctx->base);
ret = mdss_mdp_video_ctx_stop(ctl, pinfo, sctx);
@@ -1320,7 +1320,7 @@
(inum + MDSS_MDP_INTF0));
return -EBUSY;
}
- pr_debug("video Intf #%d base=%p", ctx->intf_num, ctx->base);
+ pr_debug("video Intf #%d base=%pK", ctx->intf_num, ctx->base);
ctx->ref_cnt++;
} else {
pr_err("Invalid intf number: %d\n", (inum + MDSS_MDP_INTF0));
@@ -1350,7 +1350,7 @@
(inum + MDSS_MDP_INTF0));
return -EBUSY;
}
- pr_debug("video Intf #%d base=%p", ctx->intf_num, ctx->base);
+ pr_debug("video Intf #%d base=%pK", ctx->intf_num, ctx->base);
ctx->ref_cnt++;
ctl->intf_ctx[SLAVE_CTX] = ctx;
diff --git a/drivers/video/msm/mdss/mdss_mdp_overlay.c b/drivers/video/msm/mdss/mdss_mdp_overlay.c
index ddc3f59..d81bf44 100644
--- a/drivers/video/msm/mdss/mdss_mdp_overlay.c
+++ b/drivers/video/msm/mdss/mdss_mdp_overlay.c
@@ -1225,7 +1225,7 @@
list_move_tail(&buf->buf_list, &mdp5_data->bufs_used);
list_add_tail(&buf->pipe_list, &pipe->buf_queue);
- pr_debug("buffer alloc: %p\n", buf);
+ pr_debug("buffer alloc: %pK\n", buf);
return buf;
}
@@ -1278,7 +1278,7 @@
buf->last_freed = local_clock();
buf->state = MDP_BUF_STATE_UNUSED;
- pr_debug("buffer freed: %p\n", buf);
+ pr_debug("buffer freed: %pK\n", buf);
list_move_tail(&buf->buf_list, &mdp5_data->bufs_pool);
}
@@ -1602,7 +1602,7 @@
if (buf) {
switch (buf->state) {
case MDP_BUF_STATE_READY:
- pr_debug("pnum=%d buf=%p first buffer ready\n",
+ pr_debug("pnum=%d buf=%pK first buffer ready\n",
pipe->num, buf);
break;
case MDP_BUF_STATE_ACTIVE:
@@ -1622,7 +1622,7 @@
}
break;
default:
- pr_err("invalid state of buf %p=%d\n",
+ pr_err("invalid state of buf %pK=%d\n",
buf, buf->state);
BUG();
break;
diff --git a/drivers/video/msm/mdss/mdss_mdp_pipe.c b/drivers/video/msm/mdss/mdss_mdp_pipe.c
index e5389b4..3551b87 100644
--- a/drivers/video/msm/mdss/mdss_mdp_pipe.c
+++ b/drivers/video/msm/mdss/mdss_mdp_pipe.c
@@ -1872,7 +1872,7 @@
}
if (src_data == NULL) {
- pr_debug("src_data=%p pipe num=%dx\n",
+ pr_debug("src_data=%pK pipe num=%dx\n",
src_data, pipe->num);
goto update_nobuf;
}
diff --git a/drivers/video/msm/mdss/mdss_mdp_pp.c b/drivers/video/msm/mdss/mdss_mdp_pp.c
index 7016dd4..4ddab83 100644
--- a/drivers/video/msm/mdss/mdss_mdp_pp.c
+++ b/drivers/video/msm/mdss/mdss_mdp_pp.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012-2015, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012-2016, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -1487,7 +1487,7 @@
struct pp_hist_col_info *hist_info;
if (!pipe) {
- pr_err("Invalid pipe context passed, %p\n",
+ pr_err("Invalid pipe context passed, %pK\n",
pipe);
return;
}
@@ -2142,7 +2142,7 @@
struct msm_fb_data_type *bl_mfd;
if (!ctl || !ctl->mdata || !ctl->mfd) {
- pr_err("invalid input: ctl = 0x%p, mdata = 0x%p, mfd = 0x%p\n",
+ pr_err("invalid input: ctl = 0x%pK, mdata = 0x%pK, mfd = 0x%pK\n",
ctl, (!ctl) ? NULL : ctl->mdata,
(!ctl) ? NULL : ctl->mfd);
return -EPERM;
@@ -2378,7 +2378,7 @@
pr_debug("AD not supported on device.\n");
return ret;
} else if (ret || !ad) {
- pr_err("Failed to get ad info: ret = %d, ad = 0x%p.\n",
+ pr_err("Failed to get ad info: ret = %d, ad = 0x%pK.\n",
ret, ad);
return ret;
}
@@ -2394,7 +2394,7 @@
}
if (!ad->bl_mfd->panel_info) {
- pr_err("Invalid ad panel info: ad->bl_mfd->panel_info = 0x%p\n",
+ pr_err("Invalid ad panel info: ad->bl_mfd->panel_info = 0x%pK\n",
ad->bl_mfd->panel_info);
mutex_unlock(&ad->lock);
return -EINVAL;
@@ -3858,7 +3858,7 @@
spin_lock_irqsave(&hist_info->hist_lock, flag);
if (hist_info->col_en) {
spin_unlock_irqrestore(&hist_info->hist_lock, flag);
- pr_info("%s Hist collection has already been enabled %p\n",
+ pr_info("%s Hist collection has already been enabled %pK\n",
__func__, hist_info->base);
goto exit;
}
@@ -3987,7 +3987,7 @@
spin_lock_irqsave(&hist_info->hist_lock, flag);
if (hist_info->col_en == false) {
spin_unlock_irqrestore(&hist_info->hist_lock, flag);
- pr_debug("Histogram already disabled (%p)\n", hist_info->base);
+ pr_debug("Histogram already disabled (%pK)\n", hist_info->base);
ret = -EINVAL;
goto exit;
}
@@ -4106,7 +4106,7 @@
unsigned long flag;
int ret = 0;
if (!intr) {
- pr_err("NULL addr passed, %p\n", intr);
+ pr_err("NULL addr passed, %pK\n", intr);
return -EINVAL;
}
@@ -4839,7 +4839,7 @@
ret = mdss_mdp_get_ad(mfd, &ad);
if (ret || !ad) {
- pr_err("Fail to get ad: ret = %d, ad = 0x%p\n", ret, ad);
+ pr_err("Fail to get ad: ret = %d, ad = 0x%pK\n", ret, ad);
return -EINVAL;
}
pr_debug("AD backlight level changed (%d), trigger update to AD\n",
diff --git a/drivers/video/msm/mdss/mdss_mdp_rotator.c b/drivers/video/msm/mdss/mdss_mdp_rotator.c
index 664928c..d107331 100644
--- a/drivers/video/msm/mdss/mdss_mdp_rotator.c
+++ b/drivers/video/msm/mdss/mdss_mdp_rotator.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012-2015, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2012-2016, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -192,11 +192,11 @@
(free_rot_pipe->previous_session != rot);
rot_pipe = free_rot_pipe;
- pr_debug("find a free pipe %p\n", rot_pipe->pipe);
+ pr_debug("find a free pipe %pK\n", rot_pipe->pipe);
} else {
rot_pipe = busy_rot_pipe;
if (rot_pipe)
- pr_debug("find a busy pipe %p\n", rot_pipe->pipe);
+ pr_debug("find a busy pipe %pK\n", rot_pipe->pipe);
}
if (rot_pipe)
diff --git a/drivers/video/msm/mdss/mdss_mdp_util.c b/drivers/video/msm/mdss/mdss_mdp_util.c
index ac1c6e0..69f3df6 100644
--- a/drivers/video/msm/mdss/mdss_mdp_util.c
+++ b/drivers/video/msm/mdss/mdss_mdp_util.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012-2015, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2012-2016, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -616,7 +616,7 @@
pr_debug("pmem buf=0x%pa\n", &data->addr);
data->srcp_file = NULL;
} else if (!IS_ERR_OR_NULL(data->srcp_ihdl)) {
- pr_debug("ion hdl=%p buf=0x%pa\n", data->srcp_ihdl,
+ pr_debug("ion hdl=%pK buf=0x%pa\n", data->srcp_ihdl,
&data->addr);
if (!iclient) {
pr_err("invalid ion client\n");
@@ -708,8 +708,9 @@
data->addr += data->offset;
data->len -= data->offset;
- pr_debug("mem=%d ihdl=%p buf=0x%pa len=0x%lx\n", img->memory_id,
- data->srcp_ihdl, &data->addr, data->len);
+ pr_debug("mem=%d ihdl=%pK buf=0x%pa len=0x%lx\n",
+ img->memory_id, data->srcp_ihdl, &data->addr,
+ data->len);
} else {
mdss_mdp_put_img(data);
return ret ? : -EOVERFLOW;
@@ -762,7 +763,7 @@
data->addr += data->offset;
data->len -= data->offset;
- pr_debug("ihdl=%p buf=0x%pa len=0x%lx\n",
+ pr_debug("ihdl=%pK buf=0x%pa len=0x%lx\n",
data->srcp_ihdl, &data->addr, data->len);
} else {
mdss_mdp_put_img(data);
diff --git a/drivers/video/msm/mdss/mdss_mdp_wb.c b/drivers/video/msm/mdss/mdss_mdp_wb.c
index 85eff89..7930587 100644
--- a/drivers/video/msm/mdss/mdss_mdp_wb.c
+++ b/drivers/video/msm/mdss/mdss_mdp_wb.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012-2014, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2012-2016, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -95,7 +95,7 @@
ihdl = ion_alloc(iclient, img_size, SZ_4K,
ION_HEAP(ION_SF_HEAP_ID), 0);
if (IS_ERR_OR_NULL(ihdl)) {
- pr_err("unable to alloc fbmem from ion (%p)\n", ihdl);
+ pr_err("unable to alloc fbmem from ion (%pK)\n", ihdl);
return NULL;
}
@@ -122,7 +122,7 @@
img->len = img_size;
}
- pr_debug("ihdl=%p virt=%p phys=0x%pa iova=0x%pa size=%u\n",
+ pr_debug("ihdl=%pK virt=%pK phys=0x%pa iova=0x%pa size=%u\n",
ihdl, videomemory, &mdss_wb_mem, &img->addr, img_size);
}
return &mdss_wb_buffer;
@@ -435,7 +435,7 @@
list_for_each_entry(node, &wb->register_queue, registered_entry)
if ((node->buf_data.p[0].srcp_ihdl == ihdl) &&
(node->buf_info.offset == data->offset)) {
- pr_debug("found fd=%d hdl=%p off=%x addr=%pa\n",
+ pr_debug("found fd=%d hdl=%pK off=%x addr=%pa\n",
data->memory_id, ihdl,
data->offset,
&node->buf_data.p[0].addr);
@@ -501,7 +501,7 @@
if (node->user_alloc) {
buf = &node->buf_data.p[0];
- pr_debug("free user mem_id=%d ihdl=%p, offset=%u addr=0x%pa\n",
+ pr_debug("free user mem_id=%d ihdl=%pK, offset=%u addr=0x%pa\n",
node->buf_info.memory_id,
buf->srcp_ihdl,
node->buf_info.offset,
diff --git a/drivers/video/msm/mdss/mdss_util.c b/drivers/video/msm/mdss/mdss_util.c
index 965be3b..6ce422b 100644
--- a/drivers/video/msm/mdss/mdss_util.c
+++ b/drivers/video/msm/mdss/mdss_util.c
@@ -1,5 +1,5 @@
-/* Copyright (c) 2007-2015, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2007-2016, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -33,7 +33,7 @@
if (!mdss_irq_handlers[hw->hw_ndx])
mdss_irq_handlers[hw->hw_ndx] = hw;
else
- pr_err("panel %d's irq at %p is already registered\n",
+ pr_err("panel %d's irq at %pK is already registered\n",
hw->hw_ndx, hw->irq_handler);
spin_unlock_irqrestore(&mdss_lock, irq_flags);
diff --git a/drivers/video/msm/mdss/mhl3/mhl_linux_tx.c b/drivers/video/msm/mdss/mhl3/mhl_linux_tx.c
index 1514f02..04ba7a0 100644
--- a/drivers/video/msm/mdss/mhl3/mhl_linux_tx.c
+++ b/drivers/video/msm/mdss/mhl3/mhl_linux_tx.c
@@ -5599,7 +5599,7 @@
}
if (timer != timer_handle) {
- MHL_TX_DBG_WARN("Invalid timer handle %p received\n",
+ MHL_TX_DBG_WARN("Invalid timer handle %pK received\n",
timer_handle);
return -EINVAL;
}
diff --git a/drivers/video/msm/mdss/mhl3/mhl_supp.c b/drivers/video/msm/mdss/mhl3/mhl_supp.c
index 7055d8c..29de6d0 100644
--- a/drivers/video/msm/mdss/mhl3/mhl_supp.c
+++ b/drivers/video/msm/mdss/mhl3/mhl_supp.c
@@ -185,7 +185,7 @@
req->function = function;
req->line = line;
req->sequence = dev_context->sequence++;
- /*MHL_TX_DBG_ERR(,"q %d get:0x%p %s:%d\n",
+ /*MHL_TX_DBG_ERR(,"q %d get:0x%pK %s:%d\n",
req->sequence,req,function,line); */
return req;
}
@@ -197,7 +197,7 @@
struct cbus_req *pReq,
const char *function, int line)
{
- /* MHL_TX_DBG_ERR(,"q ret:0x%p %s:%d\n",pReq,function,line); */
+ /* MHL_TX_DBG_ERR(,"q ret:0x%pK %s:%d\n",pReq,function,line); */
list_add(&pReq->link, &dev_context->cbus_free_list);
}
@@ -372,7 +372,7 @@
sizeof(payload->as_bytes) -
sizeof(struct SI_PACK_THIS_STRUCT standard_transport_header_t);
dev_context->block_protocol.marshalling_req = req;
- MHL_TX_DBG_WARN("q %d get:0x%p %s:%d\n", req->sequence, req, function,
+ MHL_TX_DBG_WARN("q %d get:0x%pK %s:%d\n", req->sequence, req, function,
line);
return req;
}
@@ -384,7 +384,7 @@
struct block_req *pReq,
const char *function, int line)
{
- /* MHL_TX_DBG_ERR(,"q ret:0x%p %s:%d\n",pReq,function,line); */
+ /* MHL_TX_DBG_ERR(,"q ret:0x%pK %s:%d\n",pReq,function,line); */
list_add(&pReq->link, &dev_context->block_protocol.free_list);
}
@@ -1283,7 +1283,7 @@
if (req == NULL)
return;
- MHL_TX_DBG_INFO("req: %p\n", req);
+ MHL_TX_DBG_INFO("req: %pK\n", req);
/* coordinate write burst requests and grants. */
if (MHL_MSC_MSG == req->command) {
dev_context->msc_msg_last_data = req->msg_data[1];
@@ -1298,7 +1298,7 @@
}
}
- MHL_TX_DBG_INFO("req: %p\n", req);
+ MHL_TX_DBG_INFO("req: %pK\n", req);
if (req) {
uint8_t ret_val;
dev_context->current_cbus_req = req;
diff --git a/drivers/video/msm/mdss/mhl3/platform.c b/drivers/video/msm/mdss/mhl3/platform.c
index 348be18..e384ce5 100644
--- a/drivers/video/msm/mdss/mhl3/platform.c
+++ b/drivers/video/msm/mdss/mhl3/platform.c
@@ -1590,7 +1590,7 @@
{
int ret;
- pr_info("%s(), i2c_device_id = %p\n", __func__, id);
+ pr_info("%s(), i2c_device_id = %pK\n", __func__, id);
#if defined(SIMG_USE_DTS)
/*
@@ -1844,7 +1844,7 @@
{
int ret;
- pr_info("%s(), spi = %p\n", __func__, spi);
+ pr_info("%s(), spi = %pK\n", __func__, spi);
spi->bits_per_word = 8;
spi_dev = spi;
spi_bus_num = spi->master->bus_num;
@@ -2161,7 +2161,7 @@
for (idx = 0; idx < ARRAY_SIZE(device_addresses); idx++) {
MHL_TX_DBG_INFO("\n");
if (device_addresses[idx].client != NULL) {
- MHL_TX_DBG_INFO("unregistering device:%p\n",
+ MHL_TX_DBG_INFO("unregistering device:%pK\n",
device_addresses[idx].client);
i2c_unregister_device(device_addresses[idx].
client);
diff --git a/drivers/video/msm/mdss/mhl3/si_8620_drv.c b/drivers/video/msm/mdss/mhl3/si_8620_drv.c
index dd71f1b..9d68f28 100644
--- a/drivers/video/msm/mdss/mhl3/si_8620_drv.c
+++ b/drivers/video/msm/mdss/mhl3/si_8620_drv.c
@@ -2367,7 +2367,7 @@
offset = EDID_BLOCK_SIZE * (hw_context->edid_fifo_block_number & 0x01);
offset += start;
- MHL_TX_DBG_INFO("%p %p\n", hw_context, edid_buf);
+ MHL_TX_DBG_INFO("%pK %pK\n", hw_context, edid_buf);
if (EDID_BLOCK_SIZE == (offset + length))
hw_context->edid_fifo_block_number++;
@@ -2401,7 +2401,7 @@
offset = EDID_BLOCK_SIZE * (hw_context->edid_fifo_block_number & 0x01);
- MHL_TX_DBG_INFO("%p %p\n", hw_context, edid_buf);
+ MHL_TX_DBG_INFO("%pK %pK\n", hw_context, edid_buf);
hw_context->edid_fifo_block_number++;
#ifdef MANUAL_EDID_FETCH
diff --git a/drivers/video/msm/mdss/mhl3/si_emsc_hid.c b/drivers/video/msm/mdss/mhl3/si_emsc_hid.c
index 17d33c9..51e2eda 100644
--- a/drivers/video/msm/mdss/mhl3/si_emsc_hid.c
+++ b/drivers/video/msm/mdss/mhl3/si_emsc_hid.c
@@ -461,7 +461,7 @@
return -ENODEV;
MHL3_HID_DBG_WARN("%s - HID_ACK reason code: %02X\n", __func__, reason);
- MHL3_HID_DBG_ERR("mhid->mdev: %p\n", mhid->mdev);
+ MHL3_HID_DBG_ERR("mhid->mdev: %pK\n", mhid->mdev);
mhid->out_data[0] = MHL3_HID_ACK;
mhid->out_data[1] = reason;
@@ -1089,7 +1089,7 @@
mhl3_send_ack(mhid, HID_ACK_NODEV);
mhid->flags |= HID_FLAGS_WQ_CANCEL;
- MHL3_HID_DBG_ERR("WORK QUEUE function FAIL - mhid: %p\n", mhid);
+ MHL3_HID_DBG_ERR("WORK QUEUE function FAIL - mhid: %pK\n", mhid);
mhl3_disconnect_and_destroy_hid_device(mhid);
/*
diff --git a/drivers/video/msm/mdss/mhl3/si_mdt_inputdev.c b/drivers/video/msm/mdss/mhl3/si_mdt_inputdev.c
index 13d2a08..926ab6c 100644
--- a/drivers/video/msm/mdss/mhl3/si_mdt_inputdev.c
+++ b/drivers/video/msm/mdss/mhl3/si_mdt_inputdev.c
@@ -80,10 +80,11 @@
if (dev_context->mdt_devs.dev_mouse == NULL)
return;
- MHL_TX_DBG_INFO("Unregistering mouse: %p\n",
+ MHL_TX_DBG_INFO("Unregistering mouse: %pK\n",
dev_context->mdt_devs.dev_mouse);
input_unregister_device(dev_context->mdt_devs.dev_mouse);
- MHL_TX_DBG_INFO("Freeing mouse: %p\n", dev_context->mdt_devs.dev_mouse);
+ MHL_TX_DBG_INFO("Freeing mouse: %pK\n",
+ dev_context->mdt_devs.dev_mouse);
input_free_device(dev_context->mdt_devs.dev_mouse);
dev_context->mdt_devs.dev_mouse = NULL;
}
@@ -93,10 +94,10 @@
if (dev_context->mdt_devs.dev_keyboard == NULL)
return;
- MHL_TX_DBG_INFO("Unregistering keyboard: %p\n",
+ MHL_TX_DBG_INFO("Unregistering keyboard: %pK\n",
dev_context->mdt_devs.dev_keyboard);
input_unregister_device(dev_context->mdt_devs.dev_keyboard);
- MHL_TX_DBG_INFO("Freeing keyboard: %p\n",
+ MHL_TX_DBG_INFO("Freeing keyboard: %pK\n",
dev_context->mdt_devs.dev_keyboard);
input_free_device(dev_context->mdt_devs.dev_keyboard);
dev_context->mdt_devs.dev_keyboard = NULL;
@@ -107,10 +108,10 @@
if (dev_context->mdt_devs.dev_touchscreen == NULL)
return;
- MHL_TX_DBG_INFO("Unregistering mouse: %p\n",
+ MHL_TX_DBG_INFO("Unregistering mouse: %pK\n",
dev_context->mdt_devs.dev_touchscreen);
input_unregister_device(dev_context->mdt_devs.dev_touchscreen);
- MHL_TX_DBG_INFO("Freeing mouse: %p\n",
+ MHL_TX_DBG_INFO("Freeing mouse: %pK\n",
dev_context->mdt_devs.dev_touchscreen);
input_free_device(dev_context->mdt_devs.dev_touchscreen);
dev_context->mdt_devs.dev_touchscreen = NULL;
@@ -130,7 +131,7 @@
MHL_TX_DBG_ERR("Not enough memory\n");
return -ENOMEM;
}
- MHL_TX_DBG_INFO("Allocated keyboard: %p\n", dev_keyboard);
+ MHL_TX_DBG_INFO("Allocated keyboard: %pK\n", dev_keyboard);
set_bit(EV_KEY, dev_keyboard->evbit);
set_bit(EV_REP, dev_keyboard->evbit);
@@ -158,7 +159,7 @@
return error;
}
- MHL_TX_DBG_INFO("Registered keyboard: %p\n", dev_keyboard);
+ MHL_TX_DBG_INFO("Registered keyboard: %pK\n", dev_keyboard);
dev_context->mdt_devs.dev_keyboard = dev_keyboard;
@@ -175,7 +176,7 @@
MHL_TX_DBG_ERR("Not enough memory\n");
return -ENOMEM;
}
- MHL_TX_DBG_INFO("Allocated mouse: %p\n", dev_mouse);
+ MHL_TX_DBG_INFO("Allocated mouse: %pK\n", dev_mouse);
set_bit(EV_REL, dev_mouse->evbit);
set_bit(EV_KEY, dev_mouse->evbit);
@@ -208,7 +209,7 @@
return error;
}
- MHL_TX_DBG_INFO("Registered mouse: %p\n", dev_mouse);
+ MHL_TX_DBG_INFO("Registered mouse: %pK\n", dev_mouse);
dev_context->mdt_devs.dev_mouse = dev_mouse;
@@ -226,7 +227,7 @@
return -ENOMEM;
}
- MHL_TX_DBG_INFO("Allocated touch screen: %p\n", dev_touchscreen);
+ MHL_TX_DBG_INFO("Allocated touch screen: %pK\n", dev_touchscreen);
#if !defined(SINGLE_TOUCH) && defined(KERNEL_2_6_38_AND_LATER)
input_mt_init_slots(dev_touchscreen, MAX_TOUCH_CONTACTS);
@@ -301,7 +302,7 @@
input_free_device(dev_touchscreen);
return error;
}
- MHL_TX_DBG_INFO("Registered touchscreen: %p\n", dev_touchscreen);
+ MHL_TX_DBG_INFO("Registered touchscreen: %pK\n", dev_touchscreen);
dev_context->mdt_devs.dev_touchscreen = dev_touchscreen;
diff --git a/drivers/video/msm/mdss/mhl3/si_mhl2_edid_3d.c b/drivers/video/msm/mdss/mhl3/si_mhl2_edid_3d.c
index fd6918f..f9ece54 100644
--- a/drivers/video/msm/mdss/mhl3/si_mhl2_edid_3d.c
+++ b/drivers/video/msm/mdss/mhl3/si_mhl2_edid_3d.c
@@ -1118,7 +1118,7 @@
if ((0 != p_desc->dtd.pixel_clock_low) ||
(0 != p_desc->dtd.pixel_clock_high)) {
MHL_TX_EDID_INFO(
- "pix clock non-zero p_desc:%p", p_desc)
+ "pix clock non-zero p_desc:%pK", p_desc)
if ((0 == p_desc->dtd.horz_active_7_0) &&
(0 == p_desc->dtd.horz_active_blanking_high.
horz_active_11_8)) {
@@ -1133,7 +1133,7 @@
* one by one
*/
MHL_TX_EDID_INFO(
- "p_desc:%p p_next_desc:%p\n",
+ "p_desc:%pK p_next_desc:%pK\n",
p_desc, p_next_desc)
*p_desc++ = *p_next_desc++;
}
@@ -1144,7 +1144,7 @@
p_desc = p_holder;
} else {
p_desc++;
- MHL_TX_EDID_INFO("p_desc:%p\n", p_desc)
+ MHL_TX_EDID_INFO("p_desc:%pK\n", p_desc)
}
}
}
@@ -1446,7 +1446,7 @@
* Mark this mode for pruning by setting
* horizontal active to zero
*/
- MHL_TX_DBG_ERR("%smark for pruning%s %p\n",
+ MHL_TX_DBG_ERR("%smark for pruning%s %pK\n",
ANSI_ESC_YELLOW_TEXT,
ANSI_ESC_RESET_TEXT,
p_desc);
@@ -1500,7 +1500,7 @@
++mhl_edid_3d_data->parse_data.
num_cea_861_timing_dtds;
} else if (valid) {
- MHL_TX_EDID_INFO("stopping at %p\n",
+ MHL_TX_EDID_INFO("stopping at %pK\n",
p_data_u.p_long_descriptors)
break;
}
@@ -1600,7 +1600,7 @@
HDMI_VIC_len = inner_loop_limit;
p_CEA_extension->byte_offset_to_18_byte_descriptors -=
num_HDMI_VICs_pruned;
- MHL_TX_EDID_INFO("%p\n", mhl_edid_3d_data->parse_data.p_HDMI_vsdb);
+ MHL_TX_EDID_INFO("%pK\n", mhl_edid_3d_data->parse_data.p_HDMI_vsdb);
if (mhl_edid_3d_data->parse_data.p_HDMI_vsdb) {
mhl_edid_3d_data->parse_data.p_HDMI_vsdb->
header.fields.length_following_header -=
@@ -1722,8 +1722,7 @@
("\n\nInvalid extension size\n\n"));
while (pb_src < pb_limit) {
MHL_TX_EDID_INFO(
- "moving data up %p(0x%02X) "
- "<- %p(0x%02X)\n",
+ "moving data up %pK(0x%02X)<- %pK(0x%02X)\n",
pb_dest, (uint16_t)*pb_dest,
pb_src, (uint16_t)*pb_src);
*pb_dest++ = *pb_src++;
@@ -3123,7 +3122,7 @@
ANSI_ESC_RED_TEXT, ANSI_ESC_RESET_TEXT);
return;
} else {
- MHL_TX_DBG_WARN(" %d %p\n", hev_index,
+ MHL_TX_DBG_WARN(" %d %pK\n", hev_index,
mhl_edid_3d_data->hev_vic_list)
mhl_edid_3d_data->hev_vic_info.
num_items_allocated =
@@ -3136,7 +3135,7 @@
MHL_TX_DBG_ERR("bogus write burst, no hev_vic_list\n")
return;
}
- MHL_TX_DBG_WARN(" %d %p\n", hev_index, mhl_edid_3d_data->hev_vic_list)
+ MHL_TX_DBG_WARN(" %d %pK\n", hev_index, mhl_edid_3d_data->hev_vic_list)
if (NULL == mhl_edid_3d_data->hev_vic_list) {
MHL_TX_DBG_ERR("%s no place to put HEV_VIC burst%s\n",
ANSI_ESC_RED_TEXT, ANSI_ESC_RESET_TEXT);
@@ -3155,7 +3154,7 @@
burst_id_HEV_VIC,
(union video_burst_descriptor_u *) &p_burst->
video_descriptors[i])) {
- MHL_TX_DBG_INFO(" %d %p\n",
+ MHL_TX_DBG_INFO(" %d %pK\n",
hev_index, mhl_edid_3d_data->hev_vic_list)
mhl_edid_3d_data->hev_vic_list[hev_index].
mhl3_hev_vic_descriptor =
@@ -4036,7 +4035,8 @@
mhl_edid_3d_data->parse_data.p_HDMI_vsdb = NULL;
- MHL_TX_EDID_INFO("tag:place holder EDID block:%p\n", p_EDID_block_data);
+ MHL_TX_EDID_INFO("tag:place holder EDID block:%pK\n",
+ p_EDID_block_data);
if (EDID_EXTENSION_BLOCK_MAP == p_CEA_extension->tag) {
struct block_map_t *p_block_map;
int i;
@@ -4123,7 +4123,7 @@
mhl_edid_3d_data->parse_data.num_EDID_extensions;
++counter) {
MHL_TX_EDID_INFO
- (" counter:%d tag:place holder EDID block:%p\n",
+ (" counter:%d tag:place holder EDID block:%pK\n",
counter,
&mhl_edid_3d_data->
EDID_block_data[EDID_BLOCK_SIZE * counter]);
diff --git a/fs/ecryptfs/file.c b/fs/ecryptfs/file.c
index 4912bf4..125457c 100644
--- a/fs/ecryptfs/file.c
+++ b/fs/ecryptfs/file.c
@@ -185,6 +185,19 @@
return rc;
}
+static int ecryptfs_mmap(struct file *file, struct vm_area_struct *vma)
+{
+ struct file *lower_file = ecryptfs_file_to_lower(file);
+ /*
+ * Don't allow mmap on top of file systems that don't support it
+ * natively. If FILESYSTEM_MAX_STACK_DEPTH > 2 or ecryptfs
+ * allows recursive mounting, this will need to be extended.
+ */
+ if (!lower_file->f_op->mmap)
+ return -ENODEV;
+ return generic_file_mmap(file, vma);
+}
+
/**
* ecryptfs_open
* @inode: inode speciying file to open
@@ -360,7 +373,7 @@
#ifdef CONFIG_COMPAT
.compat_ioctl = ecryptfs_compat_ioctl,
#endif
- .mmap = generic_file_mmap,
+ .mmap = ecryptfs_mmap,
.open = ecryptfs_open,
.flush = ecryptfs_flush,
.release = ecryptfs_release,
diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h
index 4410efa..2d839c0 100644
--- a/include/linux/perf_event.h
+++ b/include/linux/perf_event.h
@@ -317,6 +317,12 @@
int nr_siblings;
int group_flags;
struct perf_event *group_leader;
+
+ /*
+ * Protect the pmu, attributes and context of a group leader.
+ * Note: does not protect the pointer to the group_leader.
+ */
+ struct mutex group_leader_mutex;
struct pmu *pmu;
enum perf_event_active_state state;
diff --git a/kernel/events/core.c b/kernel/events/core.c
index a61c279..ebaf962 100644
--- a/kernel/events/core.c
+++ b/kernel/events/core.c
@@ -805,6 +805,77 @@
}
}
+/*
+ * Because of perf_event::ctx migration in sys_perf_event_open::move_group and
+ * perf_pmu_migrate_context() we need some magic.
+ *
+ * Those places that change perf_event::ctx will hold both
+ * perf_event_ctx::mutex of the 'old' and 'new' ctx value.
+ *
+ * Lock ordering is by mutex address. There is one other site where
+ * perf_event_context::mutex nests and that is put_event(). But remember that
+ * that is a parent<->child context relation, and migration does not affect
+ * children, therefore these two orderings should not interact.
+ *
+ * The change in perf_event::ctx does not affect children (as claimed above)
+ * because the sys_perf_event_open() case will install a new event and break
+ * the ctx parent<->child relation, and perf_pmu_migrate_context() is only
+ * concerned with cpuctx and that doesn't have children.
+ *
+ * The places that change perf_event::ctx will issue:
+ *
+ * perf_remove_from_context();
+ * synchronize_rcu();
+ * perf_install_in_context();
+ *
+ * to affect the change. The remove_from_context() + synchronize_rcu() should
+ * quiesce the event, after which we can install it in the new location. This
+ * means that only external vectors (perf_fops, prctl) can perturb the event
+ * while in transit. Therefore all such accessors should also acquire
+ * perf_event_context::mutex to serialize against this.
+ *
+ * However; because event->ctx can change while we're waiting to acquire
+ * ctx->mutex we must be careful and use the below perf_event_ctx_lock()
+ * function.
+ *
+ * Lock order:
+ * task_struct::perf_event_mutex
+ * perf_event_context::mutex
+ * perf_event_context::lock
+ * perf_event::child_mutex;
+ * perf_event::mmap_mutex
+ * mmap_sem
+ */
+static struct perf_event_context *perf_event_ctx_lock(struct perf_event *event)
+{
+ struct perf_event_context *ctx;
+
+again:
+ rcu_read_lock();
+ ctx = ACCESS_ONCE(event->ctx);
+ if (!atomic_inc_not_zero(&ctx->refcount)) {
+ rcu_read_unlock();
+ goto again;
+ }
+ rcu_read_unlock();
+
+ mutex_lock(&ctx->mutex);
+ if (event->ctx != ctx) {
+ mutex_unlock(&ctx->mutex);
+ put_ctx(ctx);
+ goto again;
+ }
+
+ return ctx;
+}
+
+static void perf_event_ctx_unlock(struct perf_event *event,
+ struct perf_event_context *ctx)
+{
+ mutex_unlock(&ctx->mutex);
+ put_ctx(ctx);
+}
+
static void unclone_ctx(struct perf_event_context *ctx)
{
if (ctx->parent_ctx) {
@@ -1250,10 +1321,17 @@
* If this was a group event with sibling events then
* upgrade the siblings to singleton events by adding them
* to whatever list we are on.
+ * If this isn't on a list, make sure we still remove the sibling's
+ * group_entry from this sibling_list; otherwise, when that sibling
+ * is later deallocated, it will try to remove itself from this
+ * sibling_list, which may well have been deallocated already,
+ * resulting in a use-after-free.
*/
list_for_each_entry_safe(sibling, tmp, &event->sibling_list, group_entry) {
if (list)
list_move_tail(&sibling->group_entry, list);
+ else
+ list_del_init(&sibling->group_entry);
sibling->group_leader = sibling;
/* Inherit group flags from the previous leader */
@@ -1550,7 +1628,7 @@
* is the current context on this CPU and preemption is disabled,
* hence we can't get into perf_event_task_sched_out for this context.
*/
-void perf_event_disable(struct perf_event *event)
+static void _perf_event_disable(struct perf_event *event)
{
struct perf_event_context *ctx = event->ctx;
struct task_struct *task = ctx->task;
@@ -1591,6 +1669,19 @@
}
raw_spin_unlock_irq(&ctx->lock);
}
+
+/*
+ * Strictly speaking kernel users cannot create groups and therefore this
+ * interface does not need the perf_event_ctx_lock() magic.
+ */
+void perf_event_disable(struct perf_event *event)
+{
+ struct perf_event_context *ctx;
+
+ ctx = perf_event_ctx_lock(event);
+ _perf_event_disable(event);
+ perf_event_ctx_unlock(event, ctx);
+}
EXPORT_SYMBOL_GPL(perf_event_disable);
static void perf_set_shadow_time(struct perf_event *event,
@@ -2040,7 +2131,7 @@
* perf_event_for_each_child or perf_event_for_each as described
* for perf_event_disable.
*/
-void perf_event_enable(struct perf_event *event)
+static void _perf_event_enable(struct perf_event *event)
{
struct perf_event_context *ctx = event->ctx;
struct task_struct *task = ctx->task;
@@ -2096,9 +2187,21 @@
out:
raw_spin_unlock_irq(&ctx->lock);
}
+
+/*
+ * See perf_event_disable();
+ */
+void perf_event_enable(struct perf_event *event)
+{
+ struct perf_event_context *ctx;
+
+ ctx = perf_event_ctx_lock(event);
+ _perf_event_enable(event);
+ perf_event_ctx_unlock(event, ctx);
+}
EXPORT_SYMBOL_GPL(perf_event_enable);
-int perf_event_refresh(struct perf_event *event, int refresh)
+static int _perf_event_refresh(struct perf_event *event, int refresh)
{
/*
* not supported on inherited events
@@ -2107,10 +2210,25 @@
return -EINVAL;
atomic_add(refresh, &event->event_limit);
- perf_event_enable(event);
+ _perf_event_enable(event);
return 0;
}
+
+/*
+ * See perf_event_disable()
+ */
+int perf_event_refresh(struct perf_event *event, int refresh)
+{
+ struct perf_event_context *ctx;
+ int ret;
+
+ ctx = perf_event_ctx_lock(event);
+ ret = _perf_event_refresh(event, refresh);
+ perf_event_ctx_unlock(event, ctx);
+
+ return ret;
+}
EXPORT_SYMBOL_GPL(perf_event_refresh);
static void ctx_sched_out(struct perf_event_context *ctx,
@@ -3243,7 +3361,16 @@
rcu_read_unlock();
if (owner) {
- mutex_lock(&owner->perf_event_mutex);
+ /*
+ * If we're here through perf_event_exit_task() we're already
+ * holding ctx->mutex which would be an inversion wrt. the
+ * normal lock order.
+ *
+ * However we can safely take this lock because its the child
+ * ctx->mutex.
+ */
+ mutex_lock_nested(&owner->perf_event_mutex, SINGLE_DEPTH_NESTING);
+
/*
* We have to re-check the event->owner field, if it is cleared
* we raced with perf_event_exit_task(), acquiring the mutex
@@ -3353,12 +3480,13 @@
u64 read_format, char __user *buf)
{
struct perf_event *leader = event->group_leader, *sub;
- int n = 0, size = 0, ret = -EFAULT;
struct perf_event_context *ctx = leader->ctx;
- u64 values[5];
+ int n = 0, size = 0, ret;
u64 count, enabled, running;
+ u64 values[5];
- mutex_lock(&ctx->mutex);
+ lockdep_assert_held(&ctx->mutex);
+
count = perf_event_read_value(leader, &enabled, &running);
values[n++] = 1 + leader->nr_siblings;
@@ -3373,7 +3501,7 @@
size = n * sizeof(u64);
if (copy_to_user(buf, values, size))
- goto unlock;
+ return -EFAULT;
ret = size;
@@ -3387,14 +3515,11 @@
size = n * sizeof(u64);
if (copy_to_user(buf + ret, values, size)) {
- ret = -EFAULT;
- goto unlock;
+ return -EFAULT;
}
ret += size;
}
-unlock:
- mutex_unlock(&ctx->mutex);
return ret;
}
@@ -3453,8 +3578,14 @@
perf_read(struct file *file, char __user *buf, size_t count, loff_t *ppos)
{
struct perf_event *event = file->private_data;
+ struct perf_event_context *ctx;
+ int ret;
- return perf_read_hw(event, buf, count);
+ ctx = perf_event_ctx_lock(event);
+ ret = perf_read_hw(event, buf, count);
+ perf_event_ctx_unlock(event, ctx);
+
+ return ret;
}
static unsigned int perf_poll(struct file *file, poll_table *wait)
@@ -3478,7 +3609,7 @@
return events;
}
-static void perf_event_reset(struct perf_event *event)
+static void _perf_event_reset(struct perf_event *event)
{
(void)perf_event_read(event);
local64_set(&event->count, 0);
@@ -3497,6 +3628,7 @@
struct perf_event *child;
WARN_ON_ONCE(event->ctx->parent_ctx);
+
mutex_lock(&event->child_mutex);
func(event);
list_for_each_entry(child, &event->child_list, child_list)
@@ -3510,14 +3642,13 @@
struct perf_event_context *ctx = event->ctx;
struct perf_event *sibling;
- WARN_ON_ONCE(ctx->parent_ctx);
- mutex_lock(&ctx->mutex);
+ lockdep_assert_held(&ctx->mutex);
+
event = event->group_leader;
perf_event_for_each_child(event, func);
list_for_each_entry(sibling, &event->sibling_list, group_entry)
perf_event_for_each_child(sibling, func);
- mutex_unlock(&ctx->mutex);
}
static int perf_event_period(struct perf_event *event, u64 __user *arg)
@@ -3573,25 +3704,24 @@
struct perf_event *output_event);
static int perf_event_set_filter(struct perf_event *event, void __user *arg);
-static long perf_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
+static long _perf_ioctl(struct perf_event *event, unsigned int cmd, unsigned long arg)
{
- struct perf_event *event = file->private_data;
void (*func)(struct perf_event *);
u32 flags = arg;
switch (cmd) {
case PERF_EVENT_IOC_ENABLE:
- func = perf_event_enable;
+ func = _perf_event_enable;
break;
case PERF_EVENT_IOC_DISABLE:
- func = perf_event_disable;
+ func = _perf_event_disable;
break;
case PERF_EVENT_IOC_RESET:
- func = perf_event_reset;
+ func = _perf_event_reset;
break;
case PERF_EVENT_IOC_REFRESH:
- return perf_event_refresh(event, arg);
+ return _perf_event_refresh(event, arg);
case PERF_EVENT_IOC_PERIOD:
return perf_event_period(event, (u64 __user *)arg);
@@ -3647,14 +3777,30 @@
#else
# define perf_compat_ioctl NULL
#endif
+static long perf_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
+{
+ struct perf_event *event = file->private_data;
+ struct perf_event_context *ctx;
+ long ret;
+
+ ctx = perf_event_ctx_lock(event);
+ ret = _perf_ioctl(event, cmd, arg);
+ perf_event_ctx_unlock(event, ctx);
+
+ return ret;
+}
int perf_event_task_enable(void)
{
+ struct perf_event_context *ctx;
struct perf_event *event;
mutex_lock(¤t->perf_event_mutex);
- list_for_each_entry(event, ¤t->perf_event_list, owner_entry)
- perf_event_for_each_child(event, perf_event_enable);
+ list_for_each_entry(event, ¤t->perf_event_list, owner_entry) {
+ ctx = perf_event_ctx_lock(event);
+ perf_event_for_each_child(event, _perf_event_enable);
+ perf_event_ctx_unlock(event, ctx);
+ }
mutex_unlock(¤t->perf_event_mutex);
return 0;
@@ -3662,11 +3808,15 @@
int perf_event_task_disable(void)
{
+ struct perf_event_context *ctx;
struct perf_event *event;
mutex_lock(¤t->perf_event_mutex);
- list_for_each_entry(event, ¤t->perf_event_list, owner_entry)
- perf_event_for_each_child(event, perf_event_disable);
+ list_for_each_entry(event, ¤t->perf_event_list, owner_entry) {
+ ctx = perf_event_ctx_lock(event);
+ perf_event_for_each_child(event, _perf_event_disable);
+ perf_event_ctx_unlock(event, ctx);
+ }
mutex_unlock(¤t->perf_event_mutex);
return 0;
@@ -6513,6 +6663,7 @@
if (!group_leader)
group_leader = event;
+ mutex_init(&event->group_leader_mutex);
mutex_init(&event->child_mutex);
INIT_LIST_HEAD(&event->child_list);
@@ -6818,6 +6969,15 @@
return ret;
}
+static void mutex_lock_double(struct mutex *a, struct mutex *b)
+{
+ if (b < a)
+ swap(a, b);
+
+ mutex_lock(a);
+ mutex_lock_nested(b, SINGLE_DEPTH_NESTING);
+}
+
/**
* sys_perf_event_open - open a performance event, associate it to a task/cpu
*
@@ -6833,7 +6993,7 @@
struct perf_event *group_leader = NULL, *output_event = NULL;
struct perf_event *event, *sibling;
struct perf_event_attr attr;
- struct perf_event_context *ctx;
+ struct perf_event_context *ctx, *uninitialized_var(gctx);
struct file *event_file = NULL;
struct fd group = {NULL, 0};
struct task_struct *task = NULL;
@@ -6890,6 +7050,16 @@
group_leader = NULL;
}
+ /*
+ * Take the group_leader's group_leader_mutex before observing
+ * anything in the group leader that leads to changes in ctx,
+ * many of which may be changing on another thread.
+ * In particular, we want to take this lock before deciding
+ * whether we need to move_group.
+ */
+ if (group_leader)
+ mutex_lock(&group_leader->group_leader_mutex);
+
if (pid != -1 && !(flags & PERF_FLAG_PID_CGROUP)) {
task = find_lively_task_by_vpid(pid);
if (IS_ERR(task)) {
@@ -7007,7 +7177,13 @@
}
if (move_group) {
- struct perf_event_context *gctx = group_leader->ctx;
+ gctx = group_leader->ctx;
+
+ /*
+ * See perf_event_ctx_lock() for comments on the details
+ * of swizzling perf_event::ctx.
+ */
+ mutex_lock_double(&gctx->mutex, &ctx->mutex);
mutex_lock(&gctx->mutex);
perf_remove_from_context(group_leader, false);
@@ -7024,14 +7200,17 @@
perf_event__state_init(sibling);
put_ctx(gctx);
}
- mutex_unlock(&gctx->mutex);
- put_ctx(gctx);
+ } else {
+ mutex_lock(&ctx->mutex);
}
WARN_ON_ONCE(ctx->parent_ctx);
- mutex_lock(&ctx->mutex);
if (move_group) {
+ /*
+ * Wait for everybody to stop referencing the events through
+ * the old lists, before installing it on new lists.
+ */
synchronize_rcu();
perf_install_in_context(ctx, group_leader, group_leader->cpu);
get_ctx(ctx);
@@ -7045,7 +7224,14 @@
perf_install_in_context(ctx, event, event->cpu);
++ctx->generation;
perf_unpin_context(ctx);
+
+ if (move_group) {
+ mutex_unlock(&gctx->mutex);
+ put_ctx(gctx);
+ }
mutex_unlock(&ctx->mutex);
+ if (group_leader)
+ mutex_unlock(&group_leader->group_leader_mutex);
put_online_cpus();
@@ -7081,6 +7267,8 @@
if (task)
put_task_struct(task);
err_group_fd:
+ if (group_leader)
+ mutex_unlock(&group_leader->group_leader_mutex);
fdput(group);
err_fd:
put_unused_fd(event_fd);
@@ -7150,18 +7338,20 @@
src_ctx = &per_cpu_ptr(pmu->pmu_cpu_context, src_cpu)->ctx;
dst_ctx = &per_cpu_ptr(pmu->pmu_cpu_context, dst_cpu)->ctx;
- mutex_lock(&src_ctx->mutex);
+ /*
+ * See perf_event_ctx_lock() for comments on the details
+ * of swizzling perf_event::ctx.
+ */
+ mutex_lock_double(&src_ctx->mutex, &dst_ctx->mutex);
list_for_each_entry_safe(event, tmp, &src_ctx->event_list,
event_entry) {
perf_remove_from_context(event, false);
put_ctx(src_ctx);
list_add(&event->event_entry, &events);
}
- mutex_unlock(&src_ctx->mutex);
synchronize_rcu();
- mutex_lock(&dst_ctx->mutex);
list_for_each_entry_safe(event, tmp, &events, event_entry) {
list_del(&event->event_entry);
if (event->state >= PERF_EVENT_STATE_OFF)
@@ -7170,6 +7360,7 @@
get_ctx(dst_ctx);
}
mutex_unlock(&dst_ctx->mutex);
+ mutex_unlock(&src_ctx->mutex);
}
EXPORT_SYMBOL_GPL(perf_pmu_migrate_context);
diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c
index af365ed..2fdfff0 100644
--- a/kernel/trace/ring_buffer.c
+++ b/kernel/trace/ring_buffer.c
@@ -1646,14 +1646,13 @@
!cpumask_test_cpu(cpu_id, buffer->cpumask))
return size;
- size = DIV_ROUND_UP(size, BUF_PAGE_SIZE);
- size *= BUF_PAGE_SIZE;
+ nr_pages = DIV_ROUND_UP(size, BUF_PAGE_SIZE);
/* we need a minimum of two pages */
- if (size < BUF_PAGE_SIZE * 2)
- size = BUF_PAGE_SIZE * 2;
+ if (nr_pages < 2)
+ nr_pages = 2;
- nr_pages = DIV_ROUND_UP(size, BUF_PAGE_SIZE);
+ size = nr_pages * BUF_PAGE_SIZE;
/*
* Don't succeed if resizing is disabled, as a reader might be
diff --git a/mm/memory.c b/mm/memory.c
index b847e76..94bc119 100644
--- a/mm/memory.c
+++ b/mm/memory.c
@@ -3269,6 +3269,10 @@
pte_unmap(page_table);
+ /* File mapping without ->vm_ops ? */
+ if (vma->vm_flags & VM_SHARED)
+ return VM_FAULT_SIGBUS;
+
/* Check if we need to add a guard page to the stack */
if (check_stack_guard_page(vma, address) < 0)
return VM_FAULT_SIGSEGV;
@@ -3534,6 +3538,11 @@
- vma->vm_start) >> PAGE_SHIFT) + vma->vm_pgoff;
pte_unmap(page_table);
+
+ /* The VMA was not fully populated on mmap() or missing VM_DONTEXPAND */
+ if (!vma->vm_ops->fault)
+ return VM_FAULT_SIGBUS;
+
return __do_fault(mm, vma, address, pmd, pgoff, flags, orig_pte);
}
@@ -3745,13 +3754,12 @@
entry = *pte;
if (!pte_present(entry)) {
if (pte_none(entry)) {
- if (vma->vm_ops) {
- if (likely(vma->vm_ops->fault))
- return do_linear_fault(mm, vma, address,
+ if (vma->vm_ops)
+ return do_linear_fault(mm, vma, address,
pte, pmd, flags, entry);
- }
+
return do_anonymous_page(mm, vma, address,
- pte, pmd, flags);
+ pte, pmd, flags);
}
if (pte_file(entry))
return do_nonlinear_fault(mm, vma, address,
diff --git a/net/ipv4/ping.c b/net/ipv4/ping.c
index f8c8f60..aaa70dd 100644
--- a/net/ipv4/ping.c
+++ b/net/ipv4/ping.c
@@ -651,7 +651,7 @@
void *user_icmph, size_t icmph_len) {
u8 type, code;
- if (len > 0xFFFF)
+ if (len > 0xFFFF || len < icmph_len)
return -EMSGSIZE;
/*
diff --git a/net/netfilter/nf_conntrack_core.c b/net/netfilter/nf_conntrack_core.c
index 04a9bc9..65758cd 100644
--- a/net/netfilter/nf_conntrack_core.c
+++ b/net/netfilter/nf_conntrack_core.c
@@ -188,7 +188,7 @@
static void
clean_from_lists(struct nf_conn *ct)
{
- pr_debug("clean_from_lists(%p)\n", ct);
+ pr_debug("clean_from_lists(%pK)\n", ct);
hlist_nulls_del_rcu(&ct->tuplehash[IP_CT_DIR_ORIGINAL].hnnode);
hlist_nulls_del_rcu(&ct->tuplehash[IP_CT_DIR_REPLY].hnnode);
@@ -206,7 +206,7 @@
struct list_head *sip_node_list;
struct list_head *sip_node_save_list;
- pr_debug("destroy_conntrack(%p)\n", ct);
+ pr_debug("destroy_conntrack(%pK)\n", ct);
NF_CT_ASSERT(atomic_read(&nfct->use) == 0);
NF_CT_ASSERT(!timer_pending(&ct->timeout));
@@ -247,7 +247,7 @@
if (ct->master)
nf_ct_put(ct->master);
- pr_debug("destroy_conntrack: returning ct=%p to slab\n", ct);
+ pr_debug("destroy_conntrack: returning ct=%pK to slab\n", ct);
nf_conntrack_free(ct);
}
@@ -509,7 +509,7 @@
/* No external references means no one else could have
confirmed us. */
NF_CT_ASSERT(!nf_ct_is_confirmed(ct));
- pr_debug("Confirming conntrack %p\n", ct);
+ pr_debug("Confirming conntrack %pK\n", ct);
spin_lock_bh(&nf_conntrack_lock);
@@ -843,7 +843,7 @@
exp = nf_ct_find_expectation(net, zone, tuple);
if (exp) {
- pr_debug("conntrack: expectation arrives ct=%p exp=%p\n",
+ pr_debug("conntrack: expectation arrives ct=%pK exp=%pK\n",
ct, exp);
/* Welcome, Mr. Bond. We've been expecting you... */
__set_bit(IPS_EXPECTED_BIT, &ct->status);
@@ -933,14 +933,14 @@
} else {
/* Once we've had two way comms, always ESTABLISHED. */
if (test_bit(IPS_SEEN_REPLY_BIT, &ct->status)) {
- pr_debug("nf_conntrack_in: normal packet for %p\n", ct);
+ pr_debug("nf_conntrack_in:normal packet for %pK\n", ct);
*ctinfo = IP_CT_ESTABLISHED;
} else if (test_bit(IPS_EXPECTED_BIT, &ct->status)) {
- pr_debug("nf_conntrack_in: related packet for %p\n",
+ pr_debug("nf_conntrack_in: related packet for %pK\n",
ct);
*ctinfo = IP_CT_RELATED;
} else {
- pr_debug("nf_conntrack_in: new packet for %p\n", ct);
+ pr_debug("nf_conntrack_in: new packet for %pK\n", ct);
*ctinfo = IP_CT_NEW;
}
*set_reply = 0;
@@ -1082,7 +1082,7 @@
/* Should be unconfirmed, so not in hash table yet */
NF_CT_ASSERT(!nf_ct_is_confirmed(ct));
- pr_debug("Altering reply tuple of %p to ", ct);
+ pr_debug("Altering reply tuple of %pK to ", ct);
nf_ct_dump_tuple(newreply);
ct->tuplehash[IP_CT_DIR_REPLY].tuple = *newreply;
@@ -1657,7 +1657,7 @@
goto err_stat;
}
- net->ct.slabname = kasprintf(GFP_KERNEL, "nf_conntrack_%p", net);
+ net->ct.slabname = kasprintf(GFP_KERNEL, "nf_conntrack_%pK", net);
if (!net->ct.slabname) {
ret = -ENOMEM;
goto err_slabname;
diff --git a/security/keys/gc.c b/security/keys/gc.c
index 7978186..de34c29 100644
--- a/security/keys/gc.c
+++ b/security/keys/gc.c
@@ -187,6 +187,12 @@
kdebug("- %u", key->serial);
key_check(key);
+ /* Throw away the key data if the key is instantiated */
+ if (test_bit(KEY_FLAG_INSTANTIATED, &key->flags) &&
+ !test_bit(KEY_FLAG_NEGATIVE, &key->flags) &&
+ key->type->destroy)
+ key->type->destroy(key);
+
security_key_free(key);
/* deal with the user's key tracking and quota */
@@ -201,10 +207,6 @@
if (test_bit(KEY_FLAG_INSTANTIATED, &key->flags))
atomic_dec(&key->user->nikeys);
- /* now throw away the key memory */
- if (key->type->destroy)
- key->type->destroy(key);
-
key_user_put(key->user);
kfree(key->description);
diff --git a/security/keys/proc.c b/security/keys/proc.c
index 217b685..374c330 100644
--- a/security/keys/proc.c
+++ b/security/keys/proc.c
@@ -188,7 +188,7 @@
struct timespec now;
unsigned long timo;
key_ref_t key_ref, skey_ref;
- char xbuf[12];
+ char xbuf[16];
int rc;
key_ref = make_key_ref(key, 0);
diff --git a/sound/core/info.c b/sound/core/info.c
index 7e13a3b3..88d0981 100644
--- a/sound/core/info.c
+++ b/sound/core/info.c
@@ -253,6 +253,7 @@
struct snd_info_buffer *buf;
ssize_t size = 0;
loff_t pos;
+ unsigned long realloc_size;
data = file->private_data;
if (snd_BUG_ON(!data))
@@ -261,7 +262,8 @@
pos = *offset;
if (pos < 0 || (long) pos != pos || (ssize_t) count < 0)
return -EIO;
- if ((unsigned long) pos + (unsigned long) count < (unsigned long) pos)
+ realloc_size = (unsigned long) pos + (unsigned long) count;
+ if (realloc_size < (unsigned long) pos || realloc_size > UINT_MAX)
return -EIO;
switch (entry->content) {
case SNDRV_INFO_CONTENT_TEXT:
diff --git a/sound/soc/msm/msm8952.c b/sound/soc/msm/msm8952.c
index 7ac2932..9ef9336 100755
--- a/sound/soc/msm/msm8952.c
+++ b/sound/soc/msm/msm8952.c
@@ -103,9 +103,9 @@
.swap_gnd_mic = NULL,
.hs_ext_micbias = false,
.key_code[0] = KEY_MEDIA,
- .key_code[1] = KEY_VOICECOMMAND,
- .key_code[2] = KEY_VOLUMEUP,
- .key_code[3] = KEY_VOLUMEDOWN,
+ .key_code[1] = KEY_VOLUMEUP,
+ .key_code[2] = KEY_VOLUMEDOWN,
+ .key_code[3] = 0,
.key_code[4] = 0,
.key_code[5] = 0,
.key_code[6] = 0,
@@ -1558,12 +1558,12 @@
*/
btn_low[0] = 75;
btn_high[0] = 75;
- btn_low[1] = 80;
- btn_high[1] = 80;
- btn_low[2] = 200;
- btn_high[2] = 200;
- btn_low[3] = 350;
- btn_high[3] = 350;
+ btn_low[1] = 225;
+ btn_high[1] = 237;
+ btn_low[2] = 450;
+ btn_high[2] = 450;
+ btn_low[3] = 470;
+ btn_high[3] = 470;
btn_low[4] = 500;
btn_high[4] = 500;
diff --git a/sound/soc/msm/qdsp6v2/audio_cal_utils.c b/sound/soc/msm/qdsp6v2/audio_cal_utils.c
index 67275df..562e9a1 100644
--- a/sound/soc/msm/qdsp6v2/audio_cal_utils.c
+++ b/sound/soc/msm/qdsp6v2/audio_cal_utils.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2014-2015, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2014-2016, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -599,7 +599,7 @@
goto err;
}
cal_block->buffer_number = basic_cal->cal_hdr.buffer_number;
- pr_debug("%s: created block for cal type %d, buf num %d, map handle %d, map size %zd paddr 0x%pa!\n",
+ pr_debug("%s: created block for cal type %d, buf num %d, map handle %d, map size %zd paddr 0x%pK!\n",
__func__, cal_type->info.reg.cal_type,
cal_block->buffer_number,
cal_block->map_data.ion_map_handle,
diff --git a/sound/soc/msm/qdsp6v2/msm-compr-q6-v2.c b/sound/soc/msm/qdsp6v2/msm-compr-q6-v2.c
index ea2afc4..41624d1 100644
--- a/sound/soc/msm/qdsp6v2/msm-compr-q6-v2.c
+++ b/sound/soc/msm/qdsp6v2/msm-compr-q6-v2.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012-2014, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2012-2014, 2016 The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -192,7 +192,7 @@
pr_debug("%s:writing %d bytes of buffer[%d] to dsp 2\n",
__func__, prtd->pcm_count, prtd->out_head);
temp = buf[0].phys + (prtd->out_head * prtd->pcm_count);
- pr_debug("%s:writing buffer[%d] from 0x%pa\n",
+ pr_debug("%s:writing buffer[%d] from 0x%pK\n",
__func__, prtd->out_head, &temp);
if (runtime->tstamp_mode == SNDRV_PCM_TSTAMP_ENABLE)
@@ -243,7 +243,7 @@
break;
case ASM_DATA_EVENT_READ_DONE_V2: {
pr_debug("ASM_DATA_EVENT_READ_DONE\n");
- pr_debug("buf = %p, data = 0x%X, *data = %p,\n"
+ pr_debug("buf = %pK, data = 0x%X, *data = %pK,\n"
"prtd->pcm_irq_pos = %d\n",
prtd->audio_client->port[OUT].buf,
*(uint32_t *)prtd->audio_client->port[OUT].buf->data,
@@ -253,7 +253,7 @@
memcpy(prtd->audio_client->port[OUT].buf->data +
prtd->pcm_irq_pos, (ptrmem + READDONE_IDX_SIZE),
COMPRE_CAPTURE_HEADER_SIZE);
- pr_debug("buf = %p, updated data = 0x%X, *data = %p\n",
+ pr_debug("buf = %pK, updated data = 0x%X, *data = %pK\n",
prtd->audio_client->port[OUT].buf,
*(uint32_t *)(prtd->audio_client->port[OUT].buf->data +
prtd->pcm_irq_pos),
@@ -269,7 +269,7 @@
}
buf = prtd->audio_client->port[OUT].buf;
- pr_debug("pcm_irq_pos=%d, buf[0].phys = 0x%pa\n",
+ pr_debug("pcm_irq_pos=%d, buf[0].phys = 0x%pK\n",
prtd->pcm_irq_pos, &buf[0].phys);
read_param.len = prtd->pcm_count - COMPRE_CAPTURE_HEADER_SIZE;
read_param.paddr = buf[0].phys +
@@ -295,7 +295,7 @@
pr_debug("%s: writing %d bytes of buffer[%d] to dsp\n",
__func__, prtd->pcm_count, prtd->out_head);
buf = prtd->audio_client->port[IN].buf;
- pr_debug("%s: writing buffer[%d] from 0x%pa head %d count %d\n",
+ pr_debug("%s: writing buffer[%d] from 0x%pK head %d count %d\n",
__func__, prtd->out_head, &buf[0].phys,
prtd->pcm_count, prtd->out_head);
if (runtime->tstamp_mode == SNDRV_PCM_TSTAMP_ENABLE)
@@ -602,7 +602,7 @@
- COMPRE_CAPTURE_HEADER_SIZE;
read_param.paddr = buf[i].phys
+ COMPRE_CAPTURE_HEADER_SIZE;
- pr_debug("Push buffer [%d] to DSP, paddr: %pa, vaddr: %p\n",
+ pr_debug("Push buffer [%d] to DSP, paddr: %pK, vaddr: %pK\n",
i, &read_param.paddr,
buf[i].data);
q6asm_async_read(prtd->audio_client, &read_param);
@@ -963,7 +963,7 @@
dma_buf->addr = buf[0].phys;
dma_buf->bytes = runtime->hw.buffer_bytes_max;
- pr_debug("%s: buf[%p]dma_buf->area[%p]dma_buf->addr[%pa]\n"
+ pr_debug("%s: buf[%pK]dma_buf->area[%pK]dma_buf->addr[%pK]\n"
"dma_buf->bytes[%zd]\n", __func__,
(void *)buf, (void *)dma_buf->area,
&dma_buf->addr, dma_buf->bytes);
diff --git a/sound/soc/msm/qdsp6v2/msm-compress-q6-v2.c b/sound/soc/msm/qdsp6v2/msm-compress-q6-v2.c
index bb0cb9f..21ae599 100644
--- a/sound/soc/msm/qdsp6v2/msm-compress-q6-v2.c
+++ b/sound/soc/msm/qdsp6v2/msm-compress-q6-v2.c
@@ -2056,7 +2056,7 @@
memcpy(arg, &prtd->compr_cap, sizeof(struct snd_compr_caps));
} else {
ret = -EINVAL;
- pr_err("%s: arg (0x%p), prtd (0x%p)\n", __func__, arg, prtd);
+ pr_err("%s: arg (0x%pK), prtd (0x%pK)\n", __func__, arg, prtd);
}
return ret;
diff --git a/sound/soc/msm/qdsp6v2/msm-dai-q6-v2.c b/sound/soc/msm/qdsp6v2/msm-dai-q6-v2.c
index ee5a340..8ef8f49 100644
--- a/sound/soc/msm/qdsp6v2/msm-dai-q6-v2.c
+++ b/sound/soc/msm/qdsp6v2/msm-dai-q6-v2.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012-2015, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2012-2016, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -1861,7 +1861,7 @@
goto fail_pdata_nomem;
}
- dev_dbg(&pdev->dev, "%s: dev %p, dai_data %p, auxpcm_pdata %p\n",
+ dev_dbg(&pdev->dev, "%s: dev %pK, dai_data %pK, auxpcm_pdata %pK\n",
__func__, &pdev->dev, dai_data, auxpcm_pdata);
rc = of_property_read_u32_array(pdev->dev.of_node,
diff --git a/sound/soc/msm/qdsp6v2/msm-dai-slim.c b/sound/soc/msm/qdsp6v2/msm-dai-slim.c
index b46d0a5..4bb8f59 100644
--- a/sound/soc/msm/qdsp6v2/msm-dai-slim.c
+++ b/sound/soc/msm/qdsp6v2/msm-dai-slim.c
@@ -482,7 +482,9 @@
dai_data_t = &drv_data->slim_dai_data[i];
kfree(dai_data_t->chan_h);
+ dai_data_t->chan_h = NULL;
kfree(dai_data_t->sh_ch);
+ dai_data_t->sh_ch = NULL;
}
}
diff --git a/sound/soc/msm/qdsp6v2/msm-ds2-dap-config.c b/sound/soc/msm/qdsp6v2/msm-ds2-dap-config.c
index d3ad18e..ad2f2e9 100644
--- a/sound/soc/msm/qdsp6v2/msm-ds2-dap-config.c
+++ b/sound/soc/msm/qdsp6v2/msm-ds2-dap-config.c
@@ -1103,7 +1103,7 @@
ds2_ap_params_obj = &ds2_dap_params[cache_device];
pr_debug("%s: cache dev %d, dev_map_idx %d\n", __func__,
cache_device, dev_map_idx);
- pr_debug("%s: endp - %p %p\n", __func__,
+ pr_debug("%s: endp - %pK %pK\n", __func__,
&ds2_dap_params[cache_device], ds2_ap_params_obj);
params_value = kzalloc(params_length, GFP_KERNEL);
@@ -1189,7 +1189,7 @@
}
ds2_ap_params_obj = &ds2_dap_params[cache_device];
- pr_debug("%s: cached param - %p %p, cache_device %d\n", __func__,
+ pr_debug("%s: cached param - %pK %pK, cache_device %d\n", __func__,
&ds2_dap_params[cache_device], ds2_ap_params_obj,
cache_device);
params_value = kzalloc(params_length, GFP_KERNEL);
diff --git a/sound/soc/msm/qdsp6v2/msm-dts-eagle.c b/sound/soc/msm/qdsp6v2/msm-dts-eagle.c
index 3a6a9c2..465947f 100644
--- a/sound/soc/msm/qdsp6v2/msm-dts-eagle.c
+++ b/sound/soc/msm/qdsp6v2/msm-dts-eagle.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2014-2015, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2014-2016, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -470,7 +470,7 @@
err = -EINVAL;
if ((_depc_size == 0) || !_depc || (size == 0) ||
cmd == 0 || ((offset + size) > _depc_size) || (err != 0)) {
- eagle_precache_err("%s: primary device %i cache index %i general error - cache size = %u, cache ptr = %p, offset = %u, size = %u, cmd = %i",
+ eagle_precache_err("%s: primary device %i cache index %i general error - cache size = %u, cache ptr = %pK, offset = %u, size = %u, cmd = %i",
__func__, _device_primary, cidx, _depc_size, _depc,
offset, size, cmd);
return -EINVAL;
@@ -554,7 +554,7 @@
err = -EINVAL;
if ((_depc_size == 0) || !_depc || (err != 0) || (size == 0) ||
(cmd == 0) || (offset + size) > _depc_size) {
- eagle_postcache_err("%s: primary device %i cache index %i port_id 0x%X general error - cache size = %u, cache ptr = %p, offset = %u, size = %u, cmd = %i",
+ eagle_postcache_err("%s: primary device %i cache index %i port_id 0x%X general error - cache size = %u, cache ptr = %pK, offset = %u, size = %u, cmd = %i",
__func__, _device_primary, cidx, port_id,
_depc_size, _depc, offset, size, cmd);
return -EINVAL;
@@ -1042,7 +1042,7 @@
eagle_ioctl_info("%s: called with control 0x%X (allocate param cache)",
__func__, cmd);
if (copy_from_user((void *)&size, (void *)arg, sizeof(size))) {
- eagle_ioctl_err("%s: error copying size (src:%p, tgt:%p, size:%zu)",
+ eagle_ioctl_err("%s: error copying size (src:%pK, tgt:%pK, size:%zu)",
__func__, (void *)arg, &size, sizeof(size));
return -EFAULT;
} else if (size > DEPC_MAX_SIZE) {
@@ -1082,7 +1082,7 @@
eagle_ioctl_info("%s: control 0x%X (get param)",
__func__, cmd);
if (copy_from_user((void *)&depd, (void *)arg, sizeof(depd))) {
- eagle_ioctl_err("%s: error copying dts_eagle_param_desc (src:%p, tgt:%p, size:%zu)",
+ eagle_ioctl_err("%s: error copying dts_eagle_param_desc (src:%pK, tgt:%pK, size:%zu)",
__func__, (void *)arg, &depd, sizeof(depd));
return -EFAULT;
}
@@ -1153,7 +1153,7 @@
eagle_ioctl_info("%s: control 0x%X (set param)",
__func__, cmd);
if (copy_from_user((void *)&depd, (void *)arg, sizeof(depd))) {
- eagle_ioctl_err("%s: error copying dts_eagle_param_desc (src:%p, tgt:%p, size:%zu)",
+ eagle_ioctl_err("%s: error copying dts_eagle_param_desc (src:%pK, tgt:%pK, size:%zu)",
__func__, (void *)arg, &depd, sizeof(depd));
return -EFAULT;
}
@@ -1186,7 +1186,7 @@
if (copy_from_user((void *)&_depc[offset],
(void *)(((char *)arg)+sizeof(depd)),
depd.size)) {
- eagle_ioctl_err("%s: error copying param to cache (src:%p, tgt:%p, size:%u)",
+ eagle_ioctl_err("%s: error copying param to cache (src:%pK, tgt:%pK, size:%u)",
__func__, ((char *)arg)+sizeof(depd),
&_depc[offset], depd.size);
return -EFAULT;
@@ -1205,7 +1205,7 @@
eagle_ioctl_info("%s: with control 0x%X (set param cache block)",
__func__, cmd);
if (copy_from_user((void *)b_, (void *)arg, sizeof(b_))) {
- eagle_ioctl_err("%s: error copying cache block data (src:%p, tgt:%p, size:%zu)",
+ eagle_ioctl_err("%s: error copying cache block data (src:%pK, tgt:%pK, size:%zu)",
__func__, (void *)arg, b_, sizeof(b_));
return -EFAULT;
}
@@ -1236,7 +1236,7 @@
eagle_ioctl_dbg("%s: with control 0x%X (set active device)",
__func__, cmd);
if (copy_from_user((void *)data, (void *)arg, sizeof(data))) {
- eagle_ioctl_err("%s: error copying active device data (src:%p, tgt:%p, size:%zu)",
+ eagle_ioctl_err("%s: error copying active device data (src:%pK, tgt:%pK, size:%zu)",
__func__, (void *)arg, data, sizeof(data));
return -EFAULT;
}
@@ -1258,7 +1258,7 @@
__func__, cmd);
if (copy_from_user((void *)&target, (void *)arg,
sizeof(target))) {
- eagle_ioctl_err("%s: error reading license index. (src:%p, tgt:%p, size:%zu)",
+ eagle_ioctl_err("%s: error reading license index. (src:%pK, tgt:%pK, size:%zu)",
__func__, (void *)arg, &target, sizeof(target));
return -EFAULT;
}
@@ -1305,7 +1305,7 @@
cmd);
if (copy_from_user((void *)target, (void *)arg,
sizeof(target))) {
- eagle_ioctl_err("%s: error reading license index (src:%p, tgt:%p, size:%zu)",
+ eagle_ioctl_err("%s: error reading license index (src:%pK, tgt:%pK, size:%zu)",
__func__, (void *)arg, target, sizeof(target));
return -EFAULT;
}
@@ -1348,7 +1348,7 @@
(void *)&(((u32 *)_sec_blob[target[0]])[1]),
(void *)(((char *)arg)+sizeof(target)),
target[1])) {
- eagle_ioctl_err("%s: error copying license to index %u, size %u (src:%p, tgt:%p, size:%u)",
+ eagle_ioctl_err("%s: error copying license to index %u, size %u (src:%pK, tgt:%pK, size:%u)",
__func__, target[0], target[1],
((char *)arg)+sizeof(target),
&(((u32 *)_sec_blob[target[0]])[1]),
@@ -1365,7 +1365,7 @@
cmd);
if (copy_from_user((void *)&target, (void *)arg,
sizeof(target))) {
- eagle_ioctl_err("%s: error reading license index (src:%p, tgt:%p, size:%zu)",
+ eagle_ioctl_err("%s: error reading license index (src:%pK, tgt:%pK, size:%zu)",
__func__, (void *)arg, &target, sizeof(target));
return -EFAULT;
}
@@ -1395,7 +1395,7 @@
__func__, cmd);
if (copy_from_user((void *)&spec, (void *)arg,
sizeof(spec))) {
- eagle_ioctl_err("%s: error reading volume command specifier (src:%p, tgt:%p, size:%zu)",
+ eagle_ioctl_err("%s: error reading volume command specifier (src:%pK, tgt:%pK, size:%zu)",
__func__, (void *)arg, &spec, sizeof(spec));
return -EFAULT;
}
@@ -1417,7 +1417,7 @@
if (copy_from_user((void *)&_vol_cmds_d[idx],
(void *)(((char *)arg) + sizeof(int)),
sizeof(struct vol_cmds_d))) {
- eagle_ioctl_err("%s: error reading volume command descriptor (src:%p, tgt:%p, size:%zu)",
+ eagle_ioctl_err("%s: error reading volume command descriptor (src:%pK, tgt:%pK, size:%zu)",
__func__, ((char *)arg) + sizeof(int),
&_vol_cmds_d[idx],
sizeof(struct vol_cmds_d));
@@ -1430,7 +1430,7 @@
if (copy_from_user((void *)_vol_cmds[idx],
(void *)(((char *)arg) + (sizeof(int) +
sizeof(struct vol_cmds_d))), size)) {
- eagle_ioctl_err("%s: error reading volume command string (src:%p, tgt:%p, size:%i)",
+ eagle_ioctl_err("%s: error reading volume command string (src:%pK, tgt:%pK, size:%i)",
__func__, ((char *)arg) + (sizeof(int) +
sizeof(struct vol_cmds_d)),
_vol_cmds[idx], size);
diff --git a/sound/soc/msm/qdsp6v2/msm-dts-srs-tm-config.c b/sound/soc/msm/qdsp6v2/msm-dts-srs-tm-config.c
index ddfbcec..7c35d19 100644
--- a/sound/soc/msm/qdsp6v2/msm-dts-srs-tm-config.c
+++ b/sound/soc/msm/qdsp6v2/msm-dts-srs-tm-config.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012-2014, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2012-2014, 2016, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -292,7 +292,7 @@
&po.kvaddr);
if (rc != 0)
pr_err("%s: failed to allocate memory.\n", __func__);
- pr_debug("%s: exited ion_client = %p, ion_handle = %p, phys_addr = %lu, length = %d, vaddr = %p, rc = 0x%x\n",
+ pr_debug("%s: exited ion_client = %pK, ion_handle = %pK, phys_addr = %lu, length = %d, vaddr = %pK, rc = 0x%x\n",
__func__, ion_client, ion_handle, (long)po.paddr,
(unsigned int)po.size, po.kvaddr, rc);
return rc;
diff --git a/sound/soc/msm/qdsp6v2/msm-lsm-client.c b/sound/soc/msm/qdsp6v2/msm-lsm-client.c
index 79b92f6..32a16bf 100644
--- a/sound/soc/msm/qdsp6v2/msm-lsm-client.c
+++ b/sound/soc/msm/qdsp6v2/msm-lsm-client.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013-2015, Linux Foundation. All rights reserved.
+ * Copyright (c) 2013-2016, Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -95,7 +95,7 @@
struct snd_soc_pcm_runtime *rtd;
if (!prtd || !prtd->lsm_client) {
- pr_err("%s: Invalid params prtd %p lsm client %p\n",
+ pr_err("%s: Invalid params prtd %pK lsm client %pK\n",
__func__, prtd, ((!prtd) ? NULL : prtd->lsm_client));
return -EINVAL;
}
@@ -109,7 +109,7 @@
if (!prtd->lsm_client->lab_buffer ||
i >= prtd->lsm_client->hw_params.period_count) {
dev_err(rtd->dev,
- "%s: Lab buffer not setup %p incorrect index %d period count %d\n",
+ "%s: Lab buffer not setup %pK incorrect index %d period count %d\n",
__func__, prtd->lsm_client->lab_buffer, i,
prtd->lsm_client->hw_params.period_count);
return -EINVAL;
@@ -136,7 +136,7 @@
struct snd_soc_pcm_runtime *rtd;
if (!prtd || !read_done || !index) {
- pr_err("%s: Invalid params prtd %p read_done %p index %p\n",
+ pr_err("%s: Invalid params prtd %pK read_done %pK index %pK\n",
__func__, prtd, read_done, index);
return -EINVAL;
}
@@ -150,7 +150,7 @@
if (!prtd->lsm_client->lab_enable || !prtd->lsm_client->lab_buffer) {
dev_err(rtd->dev,
- "%s: Lab not enabled %d invalid lab buffer %p\n",
+ "%s: Lab not enabled %d invalid lab buffer %pK\n",
__func__, prtd->lsm_client->lab_enable,
prtd->lsm_client->lab_buffer);
return -EINVAL;
@@ -164,7 +164,7 @@
(prtd->lsm_client->lab_buffer[i].mem_map_handle ==
read_done->mem_map_handle)) {
dev_dbg(rtd->dev,
- "%s: Buffer found %pa memmap handle %d\n",
+ "%s: Buffer found %pK memmap handle %d\n",
__func__, &prtd->lsm_client->lab_buffer[i].phys,
prtd->lsm_client->lab_buffer[i].mem_map_handle);
if (read_done->total_size >
@@ -211,7 +211,7 @@
if (prtd->lsm_client->session != token ||
!read_done) {
dev_err(rtd->dev,
- "%s: EVENT_READ_DONE invalid callback, session %d callback %d payload %p",
+ "%s: EVENT_READ_DONE invalid callback, session %d callback %d payload %pK",
__func__, prtd->lsm_client->session,
token, read_done);
return;
@@ -310,7 +310,7 @@
int ret = 0;
struct snd_dma_buffer *dma_buf = NULL;
if (!lsm) {
- pr_err("%s: Invalid param lsm %p\n", __func__, lsm);
+ pr_err("%s: Invalid param lsm %pK\n", __func__, lsm);
return -EINVAL;
}
if (alloc) {
@@ -778,7 +778,7 @@
snd_model_v2.data, snd_model_v2.data_size)) {
dev_err(rtd->dev,
"%s: copy from user data failed\n"
- "data %p size %d\n", __func__,
+ "data %pK size %d\n", __func__,
snd_model_v2.data, snd_model_v2.data_size);
q6lsm_snd_model_buf_free(prtd->lsm_client);
rc = -EFAULT;
@@ -1798,7 +1798,7 @@
if (!prtd || !params) {
dev_err(rtd->dev,
- "%s: invalid params prtd %p params %p",
+ "%s: invalid params prtd %pK params %pK",
__func__, prtd, params);
return -EINVAL;
}
@@ -1840,7 +1840,7 @@
if (!prtd) {
dev_err(rtd->dev,
- "%s: Invalid param %p\n", __func__, prtd);
+ "%s: Invalid param %pK\n", __func__, prtd);
return 0;
}
@@ -1868,7 +1868,7 @@
if (!prtd) {
dev_err(rtd->dev,
- "%s: Invalid param %p\n", __func__, prtd);
+ "%s: Invalid param %pK\n", __func__, prtd);
return -EINVAL;
}
diff --git a/sound/soc/msm/qdsp6v2/msm-pcm-afe-v2.c b/sound/soc/msm/qdsp6v2/msm-pcm-afe-v2.c
index 84c21f4a1..f1c96ef 100644
--- a/sound/soc/msm/qdsp6v2/msm-pcm-afe-v2.c
+++ b/sound/soc/msm/qdsp6v2/msm-pcm-afe-v2.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012-2015, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2012-2016, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -387,7 +387,7 @@
pr_err("Failed to allocate memory for msm_audio\n");
return -ENOMEM;
} else
- pr_debug("prtd %p\n", prtd);
+ pr_debug("prtd %pK\n", prtd);
mutex_init(&prtd->lock);
spin_lock_init(&prtd->dsp_lock);
@@ -606,7 +606,7 @@
return -ENOMEM;
}
- pr_debug("%s:buf = %p\n", __func__, buf);
+ pr_debug("%s:buf = %pK\n", __func__, buf);
dma_buf->dev.type = SNDRV_DMA_TYPE_DEV;
dma_buf->dev.dev = substream->pcm->card->dev;
dma_buf->private_data = NULL;
diff --git a/sound/soc/msm/qdsp6v2/msm-pcm-host-voice-v2.c b/sound/soc/msm/qdsp6v2/msm-pcm-host-voice-v2.c
index c190977..1dd18c6 100644
--- a/sound/soc/msm/qdsp6v2/msm-pcm-host-voice-v2.c
+++ b/sound/soc/msm/qdsp6v2/msm-pcm-host-voice-v2.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2013-2014, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2013-2014, 2016 The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -504,7 +504,7 @@
sess->tp_mem_table.size = sizeof(struct vss_imemory_table_t);
- pr_debug("%s: data %p phys %pa\n", __func__,
+ pr_debug("%s: data %pK phys %pK\n", __func__,
sess->tp_mem_table.data, &sess->tp_mem_table.phys);
/* Split 4096 block into four 1024 byte blocks for each dai */
@@ -682,7 +682,7 @@
}
if (tp == NULL || tmd == NULL) {
- pr_err("%s: tp = %p or tmd = %p is null\n", __func__,
+ pr_err("%s: tp = %pK or tmd = %pK is null\n", __func__,
tp, tmd);
return;
diff --git a/sound/soc/msm/qdsp6v2/msm-pcm-lpa-v2.c b/sound/soc/msm/qdsp6v2/msm-pcm-lpa-v2.c
index 64d3fe0..ad7e114 100644
--- a/sound/soc/msm/qdsp6v2/msm-pcm-lpa-v2.c
+++ b/sound/soc/msm/qdsp6v2/msm-pcm-lpa-v2.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012-2014, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2012-2014, 2016 The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -132,7 +132,7 @@
pr_debug("%s:writing %d bytes of buffer[%d] to dsp 2\n",
__func__, prtd->pcm_count, prtd->out_head);
temp = buf[0].phys + (prtd->out_head * prtd->pcm_count);
- pr_debug("%s:writing buffer[%d] from 0x%pa\n",
+ pr_debug("%s:writing buffer[%d] from 0x%pK\n",
__func__, prtd->out_head, &temp);
if (prtd->meta_data_mode) {
memcpy(&output_meta_data, (char *)(buf->data +
@@ -623,7 +623,7 @@
if (buf == NULL || buf[0].data == NULL)
return -ENOMEM;
- pr_debug("%s:buf = %p\n", __func__, buf);
+ pr_debug("%s:buf = %pK\n", __func__, buf);
dma_buf->dev.type = SNDRV_DMA_TYPE_DEV;
dma_buf->dev.dev = substream->pcm->card->dev;
dma_buf->private_data = NULL;
diff --git a/sound/soc/msm/qdsp6v2/msm-pcm-q6-v2.c b/sound/soc/msm/qdsp6v2/msm-pcm-q6-v2.c
index 4eb3f2a..37461db 100644
--- a/sound/soc/msm/qdsp6v2/msm-pcm-q6-v2.c
+++ b/sound/soc/msm/qdsp6v2/msm-pcm-q6-v2.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012-2015, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2012-2016, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -746,7 +746,7 @@
pr_debug("%s: pcm stopped in_count 0\n", __func__);
return 0;
}
- pr_debug("Checking if valid buffer is available...%p\n",
+ pr_debug("Checking if valid buffer is available...%pK\n",
data);
data = q6asm_is_cpu_buf_avail(OUT, prtd->audio_client, &size, &idx);
bufptr = data;
@@ -903,7 +903,7 @@
if (buf == NULL || buf[0].data == NULL)
return -ENOMEM;
- pr_debug("%s:buf = %p\n", __func__, buf);
+ pr_debug("%s:buf = %pK\n", __func__, buf);
dma_buf->dev.type = SNDRV_DMA_TYPE_DEV;
dma_buf->dev.dev = substream->pcm->card->dev;
dma_buf->private_data = NULL;
diff --git a/sound/soc/msm/qdsp6v2/q6adm.c b/sound/soc/msm/qdsp6v2/q6adm.c
index 5d0fd0d..f029594 100644
--- a/sound/soc/msm/qdsp6v2/q6adm.c
+++ b/sound/soc/msm/qdsp6v2/q6adm.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012-2015, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2012-2016, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -378,7 +378,7 @@
}
if ((size == 0) || !data) {
- pr_err("DTS_EAGLE_ADM: %s - invalid size %u or pointer %p.\n",
+ pr_err("DTS_EAGLE_ADM: %s - invalid size %u or pointer %pK.\n",
__func__, size, data);
return -EINVAL;
}
@@ -1246,7 +1246,7 @@
payload = data->payload;
if (data->opcode == RESET_EVENTS) {
- pr_debug("%s: Reset event is received: %d %d apr[%p]\n",
+ pr_debug("%s: Reset event is received: %d %d apr[%pK]\n",
__func__,
data->reset_event, data->reset_proc, this_adm.apr);
if (this_adm.apr) {
@@ -1739,7 +1739,7 @@
pr_err("%s: ADM mmap did not work! size = %zd ret %d\n",
__func__,
cal_block->map_data.map_size, ret);
- pr_debug("%s: ADM mmap did not work! addr = 0x%pa, size = %zd ret %d\n",
+ pr_debug("%s: ADM mmap did not work! addr = 0x%pK, size = %zd ret %d\n",
__func__,
&cal_block->cal_data.paddr,
cal_block->map_data.map_size, ret);
@@ -1802,7 +1802,7 @@
atomic_set(&this_adm.adm_stat, 0);
atomic_set(&this_adm.adm_cmd_err_code, 0);
- pr_debug("%s: Sending ADM_CMD_ADD_TOPOLOGIES payload = 0x%pa, size = %d\n",
+ pr_debug("%s: Sending ADM_CMD_ADD_TOPOLOGIES payload = 0x%pK, size = %d\n",
__func__, &cal_block->cal_data.paddr,
adm_top.payload_size);
result = apr_send_pkt(this_adm.apr, (uint32_t *)&adm_top);
@@ -1892,14 +1892,14 @@
atomic_set(&this_adm.copp.stat[port_idx][copp_idx], 0);
atomic_set(&this_adm.copp.cmd_err_code[port_idx][copp_idx], 0);
- pr_debug("%s: Sending SET_PARAMS payload = 0x%pa, size = %d\n",
+ pr_debug("%s: Sending SET_PARAMS payload = 0x%pK, size = %d\n",
__func__, &cal_block->cal_data.paddr,
adm_params.payload_size);
result = apr_send_pkt(this_adm.apr, (uint32_t *)&adm_params);
if (result < 0) {
pr_err("%s: Set params failed port 0x%x result %d\n",
__func__, port_id, result);
- pr_debug("%s: Set params failed port = 0x%x payload = 0x%pa result %d\n",
+ pr_debug("%s: Set params failed port = 0x%x payload = 0x%pK result %d\n",
__func__, port_id, &cal_block->cal_data.paddr, result);
result = -EINVAL;
goto done;
@@ -1911,7 +1911,7 @@
if (!result) {
pr_err("%s: Set params timed out port = 0x%x\n",
__func__, port_id);
- pr_debug("%s: Set params timed out port = 0x%x, payload = 0x%pa\n",
+ pr_debug("%s: Set params timed out port = 0x%x, payload = 0x%pK\n",
__func__, port_id, &cal_block->cal_data.paddr);
result = -EINVAL;
goto done;
@@ -2352,7 +2352,7 @@
res = adm_memory_map_regions(&this_adm.outband_memmap.paddr, 0,
(uint32_t *)&this_adm.outband_memmap.size, 1);
if (res < 0) {
- pr_err("%s: SRS adm_memory_map_regions failed ! addr = 0x%p, size = %d\n",
+ pr_err("%s: SRS adm_memory_map_regions failed ! addr = 0x%pK, size = %d\n",
__func__, (void *)this_adm.outband_memmap.paddr,
(uint32_t)this_adm.outband_memmap.size);
}
@@ -2781,7 +2781,7 @@
pr_err("%s: RTAC mmap did not work! size = %d result %d\n",
__func__,
cal_block->map_data.map_size, result);
- pr_debug("%s: RTAC mmap did not work! addr = 0x%pa, size = %d\n",
+ pr_debug("%s: RTAC mmap did not work! addr = 0x%pK, size = %d\n",
__func__,
&cal_block->cal_data.paddr,
cal_block->map_data.map_size);
@@ -3963,7 +3963,7 @@
(uint32_t *)&this_adm.sourceTrackingData.memmap.size,
1);
if (ret < 0) {
- pr_err("%s: failed to map memory, paddr = 0x%p, size = %d\n",
+ pr_err("%s: failed to map memory, paddr = 0x%pK, size = %d\n",
__func__,
(void *)this_adm.sourceTrackingData.memmap.paddr,
(uint32_t)this_adm.sourceTrackingData.memmap.size);
@@ -3983,7 +3983,7 @@
goto done;
}
ret = 0;
- pr_debug("%s: paddr = 0x%p, size = %d, mem_map_handle = 0x%x\n",
+ pr_debug("%s: paddr = 0x%pK, size = %d, mem_map_handle = 0x%x\n",
__func__, (void *)this_adm.sourceTrackingData.memmap.paddr,
(uint32_t)this_adm.sourceTrackingData.memmap.size,
atomic_read(&this_adm.mem_map_handles
diff --git a/sound/soc/msm/qdsp6v2/q6afe.c b/sound/soc/msm/qdsp6v2/q6afe.c
index 860aab8..eb75e05 100644
--- a/sound/soc/msm/qdsp6v2/q6afe.c
+++ b/sound/soc/msm/qdsp6v2/q6afe.c
@@ -167,7 +167,7 @@
return -EINVAL;
}
if (data->opcode == RESET_EVENTS) {
- pr_debug("%s: reset event = %d %d apr[%p]\n",
+ pr_debug("%s: reset event = %d %d apr[%pK]\n",
__func__,
data->reset_event, data->reset_proc, this_afe.apr);
@@ -202,7 +202,7 @@
if ((data->payload_size < sizeof(this_afe.calib_data))
|| !payload || (data->token >= AFE_MAX_PORTS)) {
- pr_err("%s: Error: size %d payload %p token %d\n",
+ pr_err("%s: Error: size %d payload %pK token %d\n",
__func__, data->payload_size,
payload, data->token);
return -EINVAL;
@@ -541,7 +541,7 @@
populate_upper_32_bits(cal_block->cal_data.paddr);
afe_cal.param.mem_map_handle = cal_block->map_data.q6map_handle;
- pr_debug("%s: AFE cal sent for device port = 0x%x, cal size = %zd, cal addr = 0x%pa\n",
+ pr_debug("%s: AFE cal sent for device port = 0x%x, cal size = %zd, cal addr = 0x%pK\n",
__func__, port_id,
cal_block->cal_data.size, &cal_block->cal_data.paddr);
@@ -586,7 +586,7 @@
populate_upper_32_bits(cal_block->cal_data.paddr);
afe_cal.mem_map_handle = cal_block->map_data.q6map_handle;
- pr_debug("%s:cmd_id:0x%x calsize:%zd memmap_hdl:0x%x caladdr:0x%pa",
+ pr_debug("%s:cmd_id:0x%x calsize:%zd memmap_hdl:0x%x caladdr:0x%pK",
__func__, AFE_CMD_ADD_TOPOLOGIES, cal_block->cal_data.size,
afe_cal.mem_map_handle, &cal_block->cal_data.paddr);
@@ -1090,7 +1090,7 @@
pr_err("%s: mmap did not work! size = %zd ret %d\n",
__func__,
cal_block->map_data.map_size, ret);
- pr_debug("%s: mmap did not work! addr = 0x%pa, size = %zd\n",
+ pr_debug("%s: mmap did not work! addr = 0x%pK, size = %zd\n",
__func__,
&cal_block->cal_data.paddr,
cal_block->map_data.map_size);
@@ -2843,7 +2843,7 @@
size_t len;
if (!(ac) || ((dir != IN) && (dir != OUT))) {
- pr_err("%s: ac %p dir %d\n", __func__, ac, dir);
+ pr_err("%s: ac %pK dir %d\n", __func__, ac, dir);
return -EINVAL;
}
@@ -2895,7 +2895,7 @@
buf[cnt].used = dir ^ 1;
buf[cnt].size = bufsz;
buf[cnt].actual_size = bufsz;
- pr_debug("%s: data[%p]phys[%pa][%p]\n", __func__,
+ pr_debug("%s: data[%pK]phys[%pK][%pK]\n", __func__,
buf[cnt].data,
&buf[cnt].phys,
&buf[cnt].phys);
@@ -2992,7 +2992,7 @@
mregion_pl->shm_addr_msw = populate_upper_32_bits(dma_addr_p);
mregion_pl->mem_size_bytes = dma_buf_sz;
- pr_debug("%s: dma_addr_p 0x%pa , size %d\n", __func__,
+ pr_debug("%s: dma_addr_p 0x%pK , size %d\n", __func__,
&dma_addr_p, dma_buf_sz);
atomic_set(&this_afe.state, 1);
atomic_set(&this_afe.status, 0);
@@ -3116,7 +3116,7 @@
cnt = port->max_buf_cnt - 1;
if (port->buf[0].data) {
- pr_debug("%s: data[%p]phys[%pa][%p] , client[%p] handle[%p]\n",
+ pr_debug("%s: data[%pK]phys[%pK][%pK] , client[%pK] handle[%pK]\n",
__func__,
port->buf[0].data,
&port->buf[0].phys,
@@ -3371,7 +3371,7 @@
ret = -ENODEV;
return ret;
}
- pr_debug("%s: buf_addr_p = 0x%pa bytes = %d\n", __func__,
+ pr_debug("%s: buf_addr_p = 0x%pK bytes = %d\n", __func__,
&buf_addr_p, bytes);
afecmd_wr.hdr.hdr_field = APR_HDR_FIELD(APR_MSG_TYPE_SEQ_CMD,
@@ -3407,7 +3407,7 @@
ret = -ENODEV;
return ret;
}
- pr_debug("%s: buf_addr_p = 0x%pa bytes = %d\n", __func__,
+ pr_debug("%s: buf_addr_p = 0x%pK bytes = %d\n", __func__,
&buf_addr_p, bytes);
afecmd_rd.hdr.hdr_field = APR_HDR_FIELD(APR_MSG_TYPE_SEQ_CMD,
@@ -4757,7 +4757,7 @@
pr_err("%s: mmap did not work! size = %zd ret %d\n",
__func__,
cal_block->map_data.map_size, ret);
- pr_debug("%s: mmap did not work! addr = 0x%pa, size = %zd\n",
+ pr_debug("%s: mmap did not work! addr = 0x%pK, size = %zd\n",
__func__,
&cal_block->cal_data.paddr,
cal_block->map_data.map_size);
@@ -4904,7 +4904,7 @@
result = afe_cmd_memory_map(cal_block->cal_data.paddr,
cal_block->map_data.map_size);
if (result < 0) {
- pr_err("%s: afe_cmd_memory_map failed for addr = 0x%pa, size = %d, err %d\n",
+ pr_err("%s: afe_cmd_memory_map failed for addr = 0x%pK, size = %d, err %d\n",
__func__, &cal_block->cal_data.paddr,
cal_block->map_data.map_size, result);
return result;
diff --git a/sound/soc/msm/qdsp6v2/q6asm.c b/sound/soc/msm/qdsp6v2/q6asm.c
index da8a59d..4960fff 100644
--- a/sound/soc/msm/qdsp6v2/q6asm.c
+++ b/sound/soc/msm/qdsp6v2/q6asm.c
@@ -481,7 +481,7 @@
pr_err("%s: mmap did not work! size = %zd result %d\n",
__func__,
cal_block->map_data.map_size, result);
- pr_debug("%s: mmap did not work! addr = 0x%pa, size = %zd\n",
+ pr_debug("%s: mmap did not work! addr = 0x%pK, size = %zd\n",
__func__,
&cal_block->cal_data.paddr,
cal_block->map_data.map_size);
@@ -613,7 +613,7 @@
asm_top.mem_map_handle = cal_block->map_data.q6map_handle;
asm_top.payload_size = cal_block->cal_data.size;
- pr_debug("%s: Sending ASM_CMD_ADD_TOPOLOGIES payload = %pa, size = %d, map handle = 0x%x\n",
+ pr_debug("%s: Sending ASM_CMD_ADD_TOPOLOGIES payload = %pK, size = %d, map handle = 0x%x\n",
__func__, &cal_block->cal_data.paddr,
asm_top.payload_size, asm_top.mem_map_handle);
@@ -621,7 +621,7 @@
if (result < 0) {
pr_err("%s: Set topologies failed result %d\n",
__func__, result);
- pr_debug("%s: Set topologies failed payload = 0x%pa\n",
+ pr_debug("%s: Set topologies failed payload = 0x%pK\n",
__func__, &cal_block->cal_data.paddr);
goto unmap;
@@ -631,7 +631,7 @@
(atomic_read(&ac->mem_state) <= 0), 5*HZ);
if (!result) {
pr_err("%s: Set topologies failed timeout\n", __func__);
- pr_debug("%s: Set topologies failed after timedout payload = 0x%pa\n",
+ pr_debug("%s: Set topologies failed after timedout payload = 0x%pK\n",
__func__, &cal_block->cal_data.paddr);
result = -ETIMEDOUT;
goto unmap;
@@ -707,7 +707,7 @@
pr_err("%s: mmap did not work! size = %d result %d\n",
__func__,
cal_block->map_data.map_size, result);
- pr_debug("%s: mmap did not work! addr = 0x%pa, size = %d\n",
+ pr_debug("%s: mmap did not work! addr = 0x%pK, size = %d\n",
__func__,
&cal_block->cal_data.paddr,
cal_block->map_data.map_size);
@@ -844,7 +844,7 @@
}
if (port->buf[0].data) {
- pr_debug("%s: data[%p]phys[%pa][%p] , client[%p] handle[%p]\n",
+ pr_debug("%s: data[%pK]phys[%pK][%pK] , client[%pK] handle[%pK]\n",
__func__,
port->buf[0].data,
&port->buf[0].phys,
@@ -875,7 +875,7 @@
int loopcnt;
struct audio_port_data *port;
if (!ac) {
- pr_err("%s: ac %p\n", __func__, ac);
+ pr_err("%s: ac %pK\n", __func__, ac);
return;
}
if (!ac->session) {
@@ -1092,7 +1092,7 @@
size_t len;
if (!(ac) || ((dir != IN) && (dir != OUT))) {
- pr_err("%s: ac %p dir %d\n", __func__, ac, dir);
+ pr_err("%s: ac %pK dir %d\n", __func__, ac, dir);
return -EINVAL;
}
@@ -1145,7 +1145,7 @@
buf[cnt].used = 1;
buf[cnt].size = bufsz;
buf[cnt].actual_size = bufsz;
- pr_debug("%s: data[%p]phys[%pa][%p]\n",
+ pr_debug("%s: data[%pK]phys[%pK][%pK]\n",
__func__,
buf[cnt].data,
&buf[cnt].phys,
@@ -1182,7 +1182,7 @@
int bytes_to_alloc;
if (!(ac) || ((dir != IN) && (dir != OUT))) {
- pr_err("%s: ac %p dir %d\n", __func__, ac, dir);
+ pr_err("%s: ac %pK dir %d\n", __func__, ac, dir);
return -EINVAL;
}
@@ -1251,7 +1251,7 @@
buf[cnt].used = dir ^ 1;
buf[cnt].size = bufsz;
buf[cnt].actual_size = bufsz;
- pr_debug("%s: data[%p]phys[%pa][%p]\n",
+ pr_debug("%s: data[%pK]phys[%pK][%pK]\n",
__func__,
buf[cnt].data,
&buf[cnt].phys,
@@ -1294,7 +1294,7 @@
payload = data->payload;
if (data->opcode == RESET_EVENTS) {
- pr_debug("%s: Reset event is received: %d %d apr[%p]\n",
+ pr_debug("%s: Reset event is received: %d %d apr[%pK]\n",
__func__,
data->reset_event,
data->reset_proc,
@@ -1462,7 +1462,7 @@
return -EINVAL;
}
if (!q6asm_is_valid_audio_client(ac)) {
- pr_err("%s: audio client pointer is invalid, ac = %p\n",
+ pr_err("%s: audio client pointer is invalid, ac = %pK\n",
__func__, ac);
return -EINVAL;
}
@@ -1488,7 +1488,7 @@
atomic_set(&ac->reset, 1);
if (ac->apr == NULL)
ac->apr = ac->apr2;
- pr_debug("%s: Reset event is received: %d %d apr[%p]\n",
+ pr_debug("%s: Reset event is received: %d %d apr[%pK]\n",
__func__,
data->reset_event, data->reset_proc, ac->apr);
if (ac->cb)
@@ -1631,7 +1631,7 @@
payload[0] ||
populate_upper_32_bits(port->buf[data->token].phys) !=
payload[1]) {
- pr_debug("%s: Expected addr %pa\n",
+ pr_debug("%s: Expected addr %pK\n",
__func__, &port->buf[data->token].phys);
pr_err("%s: rxedl[0x%x] rxedu [0x%x]\n",
__func__, payload[0], payload[1]);
@@ -1717,7 +1717,7 @@
payload[READDONE_IDX_BUFADD_LSW] ||
populate_upper_32_bits(port->buf[token].phys) !=
payload[READDONE_IDX_BUFADD_MSW]) {
- dev_vdbg(ac->dev, "%s: Expected addr %pa\n",
+ dev_vdbg(ac->dev, "%s: Expected addr %pK\n",
__func__, &port->buf[token].phys);
pr_err("%s: rxedl[0x%x] rxedu[0x%x]\n",
__func__,
@@ -1802,7 +1802,7 @@
struct audio_port_data *port;
if (!ac || ((dir != IN) && (dir != OUT))) {
- pr_err("%s: ac %p dir %d\n", __func__, ac, dir);
+ pr_err("%s: ac %pK dir %d\n", __func__, ac, dir);
return NULL;
}
@@ -1829,7 +1829,7 @@
*size = port->buf[idx].actual_size;
*index = port->cpu_buf;
data = port->buf[idx].data;
- dev_vdbg(ac->dev, "%s: session[%d]index[%d] data[%p]size[%d]\n",
+ dev_vdbg(ac->dev, "%s: session[%d]index[%d] data[%pK]size[%d]\n",
__func__,
ac->session,
port->cpu_buf,
@@ -1854,7 +1854,7 @@
struct audio_port_data *port;
if (!ac || ((dir != IN) && (dir != OUT))) {
- pr_err("%s: ac %p dir %d\n", __func__, ac, dir);
+ pr_err("%s: ac %pK dir %d\n", __func__, ac, dir);
return NULL;
}
@@ -1881,7 +1881,7 @@
*size = port->buf[idx].actual_size;
*index = port->cpu_buf;
data = port->buf[idx].data;
- dev_vdbg(ac->dev, "%s: session[%d]index[%d] data[%p]size[%d]\n",
+ dev_vdbg(ac->dev, "%s: session[%d]index[%d] data[%pK]size[%d]\n",
__func__, ac->session, port->cpu_buf,
data, *size);
/*
@@ -1902,7 +1902,7 @@
uint32_t idx;
if (!ac || (dir != OUT)) {
- pr_err("%s: ac %p dir %d\n", __func__, ac, dir);
+ pr_err("%s: ac %pK dir %d\n", __func__, ac, dir);
return ret;
}
@@ -2169,13 +2169,13 @@
struct asm_stream_cmd_open_write_compressed open;
if (ac == NULL) {
- pr_err("%s: ac[%p] NULL\n", __func__, ac);
+ pr_err("%s: ac[%pK] NULL\n", __func__, ac);
rc = -EINVAL;
goto fail_cmd;
}
if (ac->apr == NULL) {
- pr_err("%s: APR handle[%p] NULL\n", __func__, ac->apr);
+ pr_err("%s: APR handle[%pK] NULL\n", __func__, ac->apr);
rc = -EINVAL;
goto fail_cmd;
}
@@ -4032,7 +4032,7 @@
ac->port[dir].tmp_hdl = 0;
port = &ac->port[dir];
- pr_debug("%s: buf_add 0x%pa, bufsz: %d\n", __func__,
+ pr_debug("%s: buf_add 0x%pK, bufsz: %d\n", __func__,
&buf_add, bufsz);
mregions->shm_addr_lsw = lower_32_bits(buf_add);
mregions->shm_addr_msw = populate_upper_32_bits(buf_add);
@@ -4218,7 +4218,7 @@
q6asm_add_mmaphdr(ac, &mmap_regions->hdr, cmd_size, TRUE,
((ac->session << 8) | dir));
atomic_set(&ac->mem_state, 1);
- pr_debug("%s: mmap_region=0x%p token=0x%x\n", __func__,
+ pr_debug("%s: mmap_region=0x%pK token=0x%x\n", __func__,
mmap_regions, ((ac->session << 8) | dir));
mmap_regions->hdr.opcode = ASM_CMD_SHARED_MEM_MAP_REGIONS;
@@ -4274,7 +4274,7 @@
buffer_node[i].mmap_hdl = ac->port[dir].tmp_hdl;
list_add_tail(&buffer_node[i].list,
&ac->port[dir].mem_map_handle);
- pr_debug("%s: i=%d, bufadd[i] = 0x%pa, maphdl[i] = 0x%x\n",
+ pr_debug("%s: i=%d, bufadd[i] = 0x%pK, maphdl[i] = 0x%x\n",
__func__, i, &buffer_node[i].buf_phys_addr,
buffer_node[i].mmap_hdl);
}
@@ -4501,7 +4501,7 @@
struct asm_dts_eagle_param *ad;
if (!ac || ac->apr == NULL || (size == 0) || !data) {
- pr_err("DTS_EAGLE_ASM - %s: APR handle NULL, invalid size %u or pointer %p.\n",
+ pr_err("DTS_EAGLE_ASM - %s: APR handle NULL, invalid size %u or pointer %pK.\n",
__func__, size, data);
return -EINVAL;
}
@@ -4512,7 +4512,7 @@
__func__, sz);
return -ENOMEM;
}
- pr_debug("DTS_EAGLE_ASM - %s: ac %p param_id 0x%x size %u data %p m_id 0x%x\n",
+ pr_debug("DTS_EAGLE_ASM - %s: ac %pK param_id 0x%x size %u data %pK m_id 0x%x\n",
__func__, ac, param_id, size, data, m_id);
q6asm_add_hdr_async(ac, &ad->hdr, sz, 1);
ad->hdr.opcode = ASM_STREAM_CMD_SET_PP_PARAMS_V2;
@@ -4531,8 +4531,8 @@
if (po) {
struct list_head *ptr, *next;
struct asm_buffer_node *node;
- pr_debug("DTS_EAGLE_ASM - %s: using out of band memory (virtual %p, physical %lu)\n",
- __func__, po->kvaddr, (long)po->paddr);
+ pr_debug("DTS_EAGLE_ASM - %s: using out of band memory (virtual %pK, physical %pK)\n",
+ __func__, po->kvaddr, &po->paddr);
ad->param.data_payload_addr_lsw = lower_32_bits(po->paddr);
ad->param.data_payload_addr_msw = populate_upper_32_bits(
po->paddr);
@@ -4599,7 +4599,7 @@
(po ? 0 : size);
if (!ac || ac->apr == NULL || (size == 0) || !data) {
- pr_err("DTS_EAGLE_ASM - %s: APR handle NULL, invalid size %u or pointer %p\n",
+ pr_err("DTS_EAGLE_ASM - %s: APR handle NULL, invalid size %u or pointer %pK\n",
__func__, size, data);
return -EINVAL;
}
@@ -4609,7 +4609,7 @@
__func__, sz);
return -ENOMEM;
}
- pr_debug("DTS_EAGLE_ASM - %s: ac %p param_id 0x%x size %u data %p m_id 0x%x\n",
+ pr_debug("DTS_EAGLE_ASM - %s: ac %pK param_id 0x%x size %u data %pK m_id 0x%x\n",
__func__, ac, param_id, size, data, m_id);
q6asm_add_hdr(ac, &ad->hdr, sz, TRUE);
ad->hdr.opcode = ASM_STREAM_CMD_GET_PP_PARAMS_V2;
@@ -4634,8 +4634,8 @@
if (po) {
struct list_head *ptr, *next;
struct asm_buffer_node *node;
- pr_debug("DTS_EAGLE_ASM - %s: using out of band memory (virtual %p, physical %lu)\n",
- __func__, po->kvaddr, (long)po->paddr);
+ pr_debug("DTS_EAGLE_ASM - %s: using out of band memory (virtual %pK, physical %pK)\n",
+ __func__, po->kvaddr, &po->paddr);
ad->param.data_payload_addr_lsw = lower_32_bits(po->paddr);
ad->param.data_payload_addr_msw = populate_upper_32_bits(
po->paddr);
@@ -5066,7 +5066,7 @@
}
ab = &port->buf[dsp_buf];
- dev_vdbg(ac->dev, "%s: session[%d]dsp-buf[%d][%p]cpu_buf[%d][%pa]\n",
+ dev_vdbg(ac->dev, "%s: session[%d]dsp-buf[%d][%pK]cpu_buf[%d][%pK]\n",
__func__,
ac->session,
dsp_buf,
@@ -5092,7 +5092,7 @@
port->dsp_buf = q6asm_get_next_buf(ac, port->dsp_buf,
port->max_buf_cnt);
mutex_unlock(&port->lock);
- dev_vdbg(ac->dev, "%s: buf add[%pa] token[%d] uid[%d]\n",
+ dev_vdbg(ac->dev, "%s: buf add[%pK] token[%d] uid[%d]\n",
__func__, &ab->phys, read.hdr.token,
read.seq_id);
rc = apr_send_pkt(ac->apr, (uint32_t *) &read);
@@ -5144,7 +5144,7 @@
dsp_buf = port->dsp_buf;
ab = &port->buf[dsp_buf];
- dev_vdbg(ac->dev, "%s: session[%d]dsp-buf[%d][%p]cpu_buf[%d][%pa]\n",
+ dev_vdbg(ac->dev, "%s: session[%d]dsp-buf[%d][%pK]cpu_buf[%d][%pK]\n",
__func__,
ac->session,
dsp_buf,
@@ -5170,7 +5170,7 @@
port->dsp_buf = q6asm_get_next_buf(ac, port->dsp_buf,
port->max_buf_cnt);
- dev_vdbg(ac->dev, "%s: buf add[%pa] token[%d] uid[%d]\n",
+ dev_vdbg(ac->dev, "%s: buf add[%pK] token[%d] uid[%d]\n",
__func__, &ab->phys, read.hdr.token,
read.seq_id);
rc = apr_send_pkt(ac->apr, (uint32_t *) &read);
@@ -5233,7 +5233,7 @@
else
lbuf_phys_addr = param->paddr;
- dev_vdbg(ac->dev, "%s: token[0x%x], buf_addr[%pa], buf_size[0x%x], ts_msw[0x%x], ts_lsw[0x%x], lbuf_phys_addr: 0x[%pa]\n",
+ dev_vdbg(ac->dev, "%s: token[0x%x], buf_addr[%pK], buf_size[0x%x], ts_msw[0x%x], ts_lsw[0x%x], lbuf_phys_addr: 0x[%pK]\n",
__func__,
write.hdr.token, ¶m->paddr,
write.buf_size, write.timestamp_msw,
@@ -5381,7 +5381,7 @@
list);
write.mem_map_handle = buf_node->mmap_hdl;
- dev_vdbg(ac->dev, "%s: ab->phys[%pa]bufadd[0x%x] token[0x%x]buf_id[0x%x]buf_size[0x%x]mmaphdl[0x%x]"
+ dev_vdbg(ac->dev, "%s: ab->phys[%pK]bufadd[0x%x] token[0x%x]buf_id[0x%x]buf_size[0x%x]mmaphdl[0x%x]"
, __func__,
&ab->phys,
write.buf_addr_lsw,
@@ -5455,7 +5455,7 @@
port->dsp_buf = q6asm_get_next_buf(ac, port->dsp_buf,
port->max_buf_cnt);
- dev_vdbg(ac->dev, "%s: ab->phys[%pa]bufadd[0x%x]token[0x%x] buf_id[0x%x]buf_size[0x%x]mmaphdl[0x%x]"
+ dev_vdbg(ac->dev, "%s: ab->phys[%pK]bufadd[0x%x]token[0x%x] buf_id[0x%x]buf_size[0x%x]mmaphdl[0x%x]"
, __func__,
&ab->phys,
write.buf_addr_lsw,
diff --git a/sound/soc/msm/qdsp6v2/q6core.c b/sound/soc/msm/qdsp6v2/q6core.c
index 0c85d60..1b01a72 100644
--- a/sound/soc/msm/qdsp6v2/q6core.c
+++ b/sound/soc/msm/qdsp6v2/q6core.c
@@ -184,7 +184,7 @@
if (q6core_lcl.core_handle_q == NULL)
q6core_lcl.core_handle_q = apr_register("ADSP", "CORE",
aprv2_core_fn_q, 0xFFFFFFFF, NULL);
- pr_debug("%s: Open_q %p\n", __func__, q6core_lcl.core_handle_q);
+ pr_debug("%s: Open_q %pK\n", __func__, q6core_lcl.core_handle_q);
if (q6core_lcl.core_handle_q == NULL) {
if (__ratelimit(&rl))
pr_err("%s: Unable to register CORE\n",
@@ -347,7 +347,7 @@
pr_debug("DTS_EAGLE_CORE - %s\n", __func__);
if (size <= 0 || !data) {
- pr_err("DTS_EAGLE_CORE - %s: invalid size %i or pointer %p.\n",
+ pr_err("DTS_EAGLE_CORE - %s: invalid size %i or pointer %pK.\n",
__func__, size, data);
return -EINVAL;
}
@@ -393,7 +393,7 @@
pr_debug("DTS_EAGLE_CORE - %s\n", __func__);
if (size <= 0 || !data) {
- pr_err("DTS_EAGLE_CORE - %s: invalid size %i or pointer %p.\n",
+ pr_err("DTS_EAGLE_CORE - %s: invalid size %i or pointer %pK.\n",
__func__, size, data);
return -EINVAL;
}
diff --git a/sound/soc/msm/qdsp6v2/q6lsm.c b/sound/soc/msm/qdsp6v2/q6lsm.c
index 02ba8e4..1d26bcc 100644
--- a/sound/soc/msm/qdsp6v2/q6lsm.c
+++ b/sound/soc/msm/qdsp6v2/q6lsm.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013-2015, Linux Foundation. All rights reserved.
+ * Copyright (c) 2013-2016, Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -134,7 +134,7 @@
uint32_t *payload;
if (!client || !data) {
- pr_err("%s: client %p data %p\n",
+ pr_err("%s: client %pK data %pK\n",
__func__, client, data);
WARN_ON(1);
return -EINVAL;
@@ -347,6 +347,7 @@
q6lsm_mmap_apr_dereg();
mutex_destroy(&client->cmd_lock);
kfree(client);
+ client = NULL;
}
/*
@@ -886,7 +887,7 @@
rmb();
cmd.mem_map_handle = client->sound_model.mem_map_handle;
- pr_debug("%s: addr %pa, size %d, handle 0x%x\n", __func__,
+ pr_debug("%s: addr %pK, size %d, handle 0x%x\n", __func__,
&client->sound_model.phys, cmd.model_size, cmd.mem_map_handle);
rc = q6lsm_apr_send_pkt(client, client->apr, &cmd, true, NULL);
if (rc)
@@ -960,7 +961,7 @@
int rc;
int cmd_size = 0;
- pr_debug("%s: dma_addr_p 0x%pa, dma_buf_sz %d, mmap_p 0x%p, session %d\n",
+ pr_debug("%s: dma_addr_p 0x%pK, dma_buf_sz %d, mmap_p 0x%pK, session %d\n",
__func__, &dma_addr_p, dma_buf_sz, mmap_p,
client->session);
if (CHECK_SESSION(client->session)) {
@@ -1240,7 +1241,7 @@
if (cal_block == NULL)
goto fail;
- pr_debug("%s:Snd Model len = %zd cal size %zd phys addr %pa", __func__,
+ pr_debug("%s:Snd Model len = %zd cal size %zd phys addr %pK", __func__,
len, cal_block->cal_data.size,
&cal_block->cal_data.paddr);
if (!cal_block->cal_data.paddr) {
@@ -1295,8 +1296,8 @@
memcpy((client->sound_model.data + pad_zero +
client->sound_model.size),
(uint32_t *)cal_block->cal_data.kvaddr, client->lsm_cal_size);
- pr_debug("%s: Copy cal start virt_addr %p phy_addr %pa\n"
- "Offset cal virtual Addr %p\n", __func__,
+ pr_debug("%s: Copy cal start virt_addr %pK phy_addr %pK\n"
+ "Offset cal virtual Addr %pK\n", __func__,
client->sound_model.data, &client->sound_model.phys,
(pad_zero + client->sound_model.data +
client->sound_model.size));
@@ -1610,7 +1611,7 @@
u32 param_size;
if (!client) {
- pr_err("%s: invalid param client %p\n", __func__, client);
+ pr_err("%s: invalid param client %pK\n", __func__, client);
return -EINVAL;
}
/* enable/disable lab on dsp */
@@ -1667,7 +1668,7 @@
{
int rc = 0;
if (!client) {
- pr_err("%s: invalid param client %p\n", __func__, client);
+ pr_err("%s: invalid param client %pK\n", __func__, client);
return -EINVAL;
}
rc = q6lsm_cmd(client, LSM_SESSION_CMD_EOB, true);
@@ -1680,7 +1681,7 @@
{
int rc = 0;
if (!client || !read) {
- pr_err("%s: Invalid params client %p read %p\n", __func__,
+ pr_err("%s: Invalid params client %pK read %pK\n", __func__,
client, read);
return -EINVAL;
}
@@ -1750,7 +1751,7 @@
kfree(client->lab_buffer);
client->lab_buffer = NULL;
} else {
- pr_debug("%s: Memory map handle %x phys %pa size %d\n",
+ pr_debug("%s: Memory map handle %x phys %pK size %d\n",
__func__,
client->lab_buffer[0].mem_map_handle,
&client->lab_buffer[0].phys,
diff --git a/sound/soc/msm/qdsp6v2/q6voice.c b/sound/soc/msm/qdsp6v2/q6voice.c
index 04909d3..face98c 100644
--- a/sound/soc/msm/qdsp6v2/q6voice.c
+++ b/sound/soc/msm/qdsp6v2/q6voice.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012-2015, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2012-2016, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -348,7 +348,7 @@
break;
}
- pr_debug("%s:session_id 0x%x session handle %p\n",
+ pr_debug("%s:session_id 0x%x session handle %pK\n",
__func__, session_id, v);
return v;
@@ -3087,7 +3087,7 @@
cal_block->map_data.map_size,
VOC_CAL_MEM_MAP_TOKEN);
if (result < 0) {
- pr_err("%s: Mmap did not work! addr = 0x%pa, size = %zd\n",
+ pr_err("%s: Mmap did not work! addr = 0x%pK, size = %zd\n",
__func__,
&cal_block->cal_data.paddr,
cal_block->map_data.map_size);
@@ -3120,7 +3120,7 @@
goto done;
}
} else {
- pr_debug("%s: Cal block 0x%pa, size %zd already mapped. Q6 map handle = %d\n",
+ pr_debug("%s: Cal block 0x%pK, size %zd already mapped. Q6 map handle = %d\n",
__func__, &cal_block->cal_data.paddr,
cal_block->map_data.map_size,
cal_block->map_data.q6map_handle);
@@ -3318,7 +3318,7 @@
if (!is_rtac_memory_allocated()) {
result = voice_alloc_rtac_mem_map_table();
if (result < 0) {
- pr_err("%s: RTAC alloc mem map table did not work! addr = 0x%pa, size = %d\n",
+ pr_err("%s: RTAC alloc mem map table did not work! addr = 0x%pK, size = %d\n",
__func__,
&cal_block->cal_data.paddr,
cal_block->map_data.map_size);
@@ -3333,7 +3333,7 @@
cal_block->map_data.map_size,
VOC_RTAC_MEM_MAP_TOKEN);
if (result < 0) {
- pr_err("%s: RTAC mmap did not work! addr = 0x%pa, size = %d\n",
+ pr_err("%s: RTAC mmap did not work! addr = 0x%pK, size = %d\n",
__func__,
&cal_block->cal_data.paddr,
cal_block->map_data.map_size);
@@ -4444,7 +4444,7 @@
break;
}
- pr_debug("%s: port_id: %d, set: %d, v: %p\n",
+ pr_debug("%s: port_id: %d, set: %d, v: %pK\n",
__func__, port_id, set, v);
mutex_lock(&v->lock);
@@ -6510,12 +6510,12 @@
cnt++;
}
- pr_debug("%s buf[0].data:[%p], buf[0].phys:[%pa], &buf[0].phys:[%p],\n",
+ pr_debug("%s buf[0].data:[%pK], buf[0].phys:[%pK], &buf[0].phys:[%pK],\n",
__func__,
(void *)v->shmem_info.sh_buf.buf[0].data,
&v->shmem_info.sh_buf.buf[0].phys,
(void *)&v->shmem_info.sh_buf.buf[0].phys);
- pr_debug("%s: buf[1].data:[%p], buf[1].phys[%pa], &buf[1].phys[%p]\n",
+ pr_debug("%s: buf[1].data:[%pK], buf[1].phys[%pK], &buf[1].phys[%pK]\n",
__func__,
(void *)v->shmem_info.sh_buf.buf[1].data,
&v->shmem_info.sh_buf.buf[1].phys,
@@ -6557,7 +6557,7 @@
}
v->shmem_info.memtbl.size = sizeof(struct vss_imemory_table_t);
- pr_debug("%s data[%p]phys[%pa][%p]\n", __func__,
+ pr_debug("%s data[%pK]phys[%pK][%pK]\n", __func__,
(void *)v->shmem_info.memtbl.data,
&v->shmem_info.memtbl.phys,
(void *)&v->shmem_info.memtbl.phys);
@@ -6909,7 +6909,7 @@
}
common.cal_mem_map_table.size = sizeof(struct vss_imemory_table_t);
- pr_debug("%s: data %p phys %pa\n", __func__,
+ pr_debug("%s: data %pK phys %pK\n", __func__,
common.cal_mem_map_table.data,
&common.cal_mem_map_table.phys);
@@ -6936,7 +6936,7 @@
}
common.rtac_mem_map_table.size = sizeof(struct vss_imemory_table_t);
- pr_debug("%s: data %p phys %pa\n", __func__,
+ pr_debug("%s: data %pK phys %pK\n", __func__,
common.rtac_mem_map_table.data,
&common.rtac_mem_map_table.phys);
@@ -7537,7 +7537,7 @@
memset((void *)(common.source_tracking_sh_mem.sh_mem_block.data), 0,
common.source_tracking_sh_mem.sh_mem_block.size);
- pr_debug("%s: sh_mem_block: phys:[%pa], data:[0x%p], size:[%zd]\n",
+ pr_debug("%s: sh_mem_block: phys:[%pK], data:[0x%pK], size:[%zd]\n",
__func__,
&(common.source_tracking_sh_mem.sh_mem_block.phys),
(void *)(common.source_tracking_sh_mem.sh_mem_block.data),
@@ -7568,7 +7568,7 @@
memset((void *)(common.source_tracking_sh_mem.sh_mem_table.data), 0,
common.source_tracking_sh_mem.sh_mem_table.size);
- pr_debug("%s sh_mem_table: phys:[%pa], data:[0x%p], size:[%zd],\n",
+ pr_debug("%s sh_mem_table: phys:[%pK], data:[0x%pK], size:[%zd],\n",
__func__,
&(common.source_tracking_sh_mem.sh_mem_table.phys),
(void *)(common.source_tracking_sh_mem.sh_mem_table.data),
diff --git a/sound/soc/msm/qdsp6v2/rtac.c b/sound/soc/msm/qdsp6v2/rtac.c
index b1954a4..feed251 100644
--- a/sound/soc/msm/qdsp6v2/rtac.c
+++ b/sound/soc/msm/qdsp6v2/rtac.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012-2015, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2012-2016, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -177,7 +177,7 @@
}
if (rtac_cal[cal_type].cal_data.paddr != 0) {
- pr_err("%s: memory already allocated! cal_type %d, paddr 0x%pa\n",
+ pr_err("%s: memory already allocated! cal_type %d, paddr 0x%pK\n",
__func__, cal_type, &rtac_cal[cal_type].cal_data.paddr);
result = -EPERM;
goto done;
@@ -196,7 +196,7 @@
goto done;
}
- pr_debug("%s: cal_type %d, paddr 0x%pa, kvaddr 0x%p, map_size 0x%x\n",
+ pr_debug("%s: cal_type %d, paddr 0x%pK, kvaddr 0x%pK, map_size 0x%x\n",
__func__, cal_type,
&rtac_cal[cal_type].cal_data.paddr,
rtac_cal[cal_type].cal_data.kvaddr,
@@ -226,7 +226,7 @@
result = msm_audio_ion_free(rtac_cal[cal_type].map_data.ion_client,
rtac_cal[cal_type].map_data.ion_handle);
if (result < 0) {
- pr_err("%s: ION free for RTAC failed! cal_type %d, paddr 0x%pa\n",
+ pr_err("%s: ION free for RTAC failed! cal_type %d, paddr 0x%pK\n",
__func__, cal_type, &rtac_cal[cal_type].cal_data.paddr);
goto done;
}
@@ -671,7 +671,7 @@
/* ADM APR */
void rtac_set_adm_handle(void *handle)
{
- pr_debug("%s: handle = %p\n", __func__, handle);
+ pr_debug("%s: handle = %pK\n", __func__, handle);
mutex_lock(&rtac_adm_apr_mutex);
rtac_adm_apr_data.apr_handle = handle;
@@ -729,7 +729,7 @@
if (copy_from_user(&user_buf_size, (void *)buf,
sizeof(user_buf_size))) {
- pr_err("%s: Copy from user failed! buf = 0x%p\n",
+ pr_err("%s: Copy from user failed! buf = 0x%pK\n",
__func__, buf);
goto done;
}
@@ -829,7 +829,7 @@
memcpy(rtac_adm_buffer, &adm_params, sizeof(adm_params));
atomic_set(&rtac_adm_apr_data.cmd_state, 1);
- pr_debug("%s: Sending RTAC command ioctl 0x%x, paddr 0x%pa\n",
+ pr_debug("%s: Sending RTAC command ioctl 0x%x, paddr 0x%pK\n",
__func__, opcode,
&rtac_cal[ADM_RTAC_CAL].cal_data.paddr);
@@ -948,7 +948,7 @@
if (copy_from_user(&user_buf_size, (void *)buf,
sizeof(user_buf_size))) {
- pr_err("%s: Copy from user failed! buf = 0x%p\n",
+ pr_err("%s: Copy from user failed! buf = 0x%pK\n",
__func__, buf);
goto done;
}
@@ -1048,7 +1048,7 @@
memcpy(rtac_asm_buffer, &asm_params, sizeof(asm_params));
atomic_set(&rtac_asm_apr_data[session_id].cmd_state, 1);
- pr_debug("%s: Sending RTAC command ioctl 0x%x, paddr 0x%pa\n",
+ pr_debug("%s: Sending RTAC command ioctl 0x%x, paddr 0x%pK\n",
__func__, opcode,
&rtac_cal[ASM_RTAC_CAL].cal_data.paddr);
@@ -1188,7 +1188,7 @@
if (copy_from_user(&user_afe_buf, (void *)buf,
sizeof(struct rtac_afe_user_data))) {
- pr_err("%s: Copy from user failed! buf = 0x%p\n",
+ pr_err("%s: Copy from user failed! buf = 0x%pK\n",
__func__, buf);
goto done;
}
@@ -1304,7 +1304,7 @@
atomic_set(&rtac_afe_apr_data.cmd_state, 1);
- pr_debug("%s: Sending RTAC command ioctl 0x%x, paddr 0x%pa\n",
+ pr_debug("%s: Sending RTAC command ioctl 0x%x, paddr 0x%pK\n",
__func__, opcode,
&rtac_cal[AFE_RTAC_CAL].cal_data.paddr);
@@ -1428,7 +1428,7 @@
if (copy_from_user(&user_buf_size, (void *)buf,
sizeof(user_buf_size))) {
- pr_err("%s: Copy from user failed! buf = 0x%p\n",
+ pr_err("%s: Copy from user failed! buf = 0x%pK\n",
__func__, buf);
goto done;
}
@@ -1529,7 +1529,7 @@
memcpy(rtac_voice_buffer, &voice_params, sizeof(voice_params));
atomic_set(&rtac_voice_apr_data[mode].cmd_state, 1);
- pr_debug("%s: Sending RTAC command ioctl 0x%x, paddr 0x%pa\n",
+ pr_debug("%s: Sending RTAC command ioctl 0x%x, paddr 0x%pK\n",
__func__, opcode,
&rtac_cal[VOICE_RTAC_CAL].cal_data.paddr);
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index dedc7ba..55bbd6ac 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -2125,7 +2125,7 @@
trace_snd_soc_reg_read(codec, reg, ret);
}
else
- ret = -EIO;
+ ret = -1;
return ret;
}
@@ -2140,7 +2140,7 @@
return codec->write(codec, reg, val);
}
else
- return -EIO;
+ return -1;
}
EXPORT_SYMBOL_GPL(snd_soc_write);