Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

up #1

Merged
merged 66 commits into from
Dec 6, 2016
Merged

up #1

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
66 commits
Select commit Hold shift + click to select a range
08ba516
clk: qcom: Add qos snoc external clock for MSM8939
Jun 30, 2015
7b286dc
Surnia: update defconfig for prima wlan
drmarble Nov 9, 2016
af7c0bd
wlan: Enable PER based roaming by default
Aug 25, 2016
cbac7cf
wlan: Update roam cached channel list to FW
Aug 22, 2016
c32e2e7
wlan: Interface changes for PER based roam full scan
Aug 29, 2016
e93f134
wlan: Add config parameter for PER based roam full scan
Aug 25, 2016
0834e9b
wlan: Send ROAM_RESTART event to FW if host decides not to roam
Aug 22, 2016
2fce2de
wlan: Ignore beacon miss if CSA is in progress
Aug 26, 2016
827e752
Wlan: Release 3.0.11.50
Aug 30, 2016
6fbb05d
wlan: send RSSI info correctly to CNE
Aug 30, 2016
6225859
Wlan: Release 3.0.11.51
Sep 1, 2016
af96128
prima: Add check to Validate cfg_ini
Aug 28, 2016
340b193
prima: Add check to Validate SSID length
Aug 29, 2016
588e454
wlan: Correct max candidate count in case of PER roam
Aug 31, 2016
d50b2ca
wlan: Disallow RSO stop in case RSO start is not sent
Sep 1, 2016
d035039
wlan: Allow back to back roam restart command
Sep 2, 2016
33a6759
prima: Fix status code during disassociation
Sep 1, 2016
b282ed5
Wlan: Release 3.0.11.52
Sep 2, 2016
5f4be79
wlan: csr roam state remains joined even after disconnection
Aug 24, 2016
f17307b
wlan: Fix static code analysis error
Aug 26, 2016
ee17fa3
Wlan: Allow RSO update after RSO restart
Sep 3, 2016
9f9b80e
Wlan: Release 3.0.11.53
Sep 6, 2016
5097011
wlan: Fix Static analysis error
Sep 7, 2016
244181c
Wlan: Release 3.0.11.54
Sep 7, 2016
8a20778
wlan: Add BUG_ON if ROC timer is not stopped before freeing ROC ctx
Sep 8, 2016
dec4fd7
wlan: Don't issue VOS_BUG when SSR is in progress
Sep 6, 2016
b76e3d5
wlan: Remove unnecessary error logs from OEM DATA REQ
Sep 9, 2016
fe6f9c7
Wlan: Release 3.0.11.55
Sep 9, 2016
186599a
Revert "wlan: Update roam cached channel list to FW"
Sep 12, 2016
38ac1a4
wlan: Disable PER based roaming by default
Sep 13, 2016
a4dfb94
wlan: Don't allow BMPS timer run if set isAndroidPsEn
Sep 12, 2016
172b3f5
Wlan: Release 3.0.11.56
Sep 13, 2016
f7f010e
prima: Validate adapter in scan done callback
Sep 13, 2016
ec0d75e
wlan: Return updated rssi value to upperlayer
Aug 30, 2016
9a570ee
wlan: Increment scan failure counter only on connection in progress
Sep 14, 2016
656e6b8
Wlan: Release 3.0.11.57
Sep 15, 2016
86490d3
wlan: Update roam cached channel list to FW
Sep 15, 2016
c1de896
wlan: Changes to discard candidates with low RSSI
Sep 15, 2016
e73ea05
Wlan: Release 3.0.11.58
Sep 28, 2016
e370a07
Wlan: Enable cfg80211 layer to control power save
Sep 26, 2016
6357f27
Wlan: Release 3.0.11.59
Oct 3, 2016
24b38c1
wlan: Update probe response ssid from PE session
Oct 3, 2016
6ba33e8
Wlan: Release 3.0.11.60
Oct 5, 2016
1840e2d
Wlan: Add ini params for scan dwell time during BTC SCO call
Sep 29, 2016
1229546
Prima: Remove unnecessary error logs
Sep 28, 2016
b53d60a
Wlan: Release 3.0.11.61
Oct 7, 2016
5710070
sdcardfs: override umask on mkdir and create
drosen-google Apr 13, 2016
cb6770d
sdcardfs: Check for other cases on path lookup
drosen-google Apr 27, 2016
85917fb
sdcardfs: Fix locking
drosen-google May 10, 2016
2deb682
sdcardfs: Added top to sdcardfs_inode_info
drosen-google May 18, 2016
84761da
BACKPORT: audit: consistently record PIDs with task_tgid_nr()
pcmoore Aug 30, 2016
8e692fc
UPSTREAM: staging/android/ion : fix a race condition in the ion driver
euntaik Feb 24, 2016
8e71398
BACKPORT: security: fix typo in security_task_prctl
thejh Sep 18, 2015
91db5c2
BACKPORT: mm: avoid setting up anonymous pages into file mapping
kiryl Jul 6, 2015
38bf0af
msm: sensor: validate the i2c table index before use
Sep 22, 2016
fe57780
ASoC: msm: lock read/write when add/free audio ion memory
Sep 28, 2016
05de762
msm: mdss: hide kernel addresses from unprevileged users
Jun 15, 2016
a00b874
ion: Disable ION_HEAP_TYPE_SYSTEM_CONTIG
drosen-google Sep 9, 2016
3daac5c
netfilter: Change %p to %pK in debug messages
m-chong Oct 14, 2016
b2a70de
usb: gadget: f_mbim: Change %p to %pK in debug messages
m-chong Oct 14, 2016
bded614
net: ping: Fix stack buffer overflow in ping_common_sendmsg()
Oct 13, 2016
442bea1
drivers: video: Add bounds checking in fb_cmap_to_user
spfetsch Oct 14, 2016
9bb3a85
input: synaptics: add bounds checks for firmware id
m-chong Oct 13, 2016
1a15639
binder: blacklist %p kptr_restrict
nickdesaulniers Oct 7, 2016
02b366f
ion: blacklist %p kptr_restrict
nickdesaulniers Oct 7, 2016
3c331ce
packet: fix race condition in packet_set_ring
ltspp-test Nov 30, 2016
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion arch/arm/configs/surnia_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -3158,7 +3158,7 @@ CONFIG_PRIMA_WLAN_11AC_HIGH_TP=y
CONFIG_WLAN_FEATURE_11W=y
CONFIG_QCOM_TDLS=y
CONFIG_QCOM_VOWIFI_11R=y
# CONFIG_ENABLE_LINUX_REG is not set
CONFIG_ENABLE_LINUX_REG=y

#
# Qualcomm MSM specific device drivers
Expand Down
16 changes: 16 additions & 0 deletions drivers/clk/qcom/clock-gcc-8936.c
Original file line number Diff line number Diff line change
Expand Up @@ -273,6 +273,7 @@ static void __iomem *virt_dbgbase;
#define BIMC_GFX_CBCR 0x31024
#define BIMC_GPU_CBCR 0x31040
#define GCC_SPARE3_REG 0x7E004
#define SNOC_QOSGEN 0x2601C

#define APCS_CCI_PLL_MODE 0x00000
#define APCS_CCI_PLL_L_VAL 0x00004
Expand Down Expand Up @@ -2986,6 +2987,18 @@ static struct pll_config_regs gpll4_regs = {
.base = &virt_bases[GCC_BASE],
};

static struct gate_clk gcc_snoc_qosgen_clk = {
.en_mask = BIT(0),
.en_reg = SNOC_QOSGEN,
.base = &virt_bases[GCC_BASE],
.c = {
.dbg_name = "gcc_snoc_qosgen_clk",
.ops = &clk_ops_gate,
.flags = CLKFLAG_SKIP_HANDOFF,
CLK_INIT(gcc_snoc_qosgen_clk.c),
},
};

static struct mux_clk gcc_debug_mux;
static struct clk_ops clk_ops_debug_mux;

Expand Down Expand Up @@ -3324,6 +3337,9 @@ static struct clk_lookup msm_clocks_lookup[] = {
CLK_LIST(gcc_crypto_ahb_clk),
CLK_LIST(gcc_crypto_axi_clk),
CLK_LIST(crypto_clk_src),

/* QoS Reference clock */
CLK_LIST(gcc_snoc_qosgen_clk),
};

static struct clk_lookup msm_clocks_lookup_v1[] = {
Expand Down
10 changes: 7 additions & 3 deletions drivers/input/touchscreen/synaptics_fw_update.c
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/

#include <linux/ctype.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/slab.h>
Expand Down Expand Up @@ -693,7 +693,6 @@ static int fwu_wait_for_idle(int timeout_ms)
static enum flash_area fwu_go_nogo(void)
{
int retval = 0;
int index = 0;
int deviceFirmwareID;
int imageConfigID;
int deviceConfigID;
Expand Down Expand Up @@ -798,6 +797,8 @@ static enum flash_area fwu_go_nogo(void)
__func__);
imageFirmwareID = img->firmware_id;
} else {
size_t index, max_index;

if (!fwu->image_name) {
dev_info(&i2c_client->dev,
"%s: Unknown image file name\n",
Expand All @@ -814,8 +815,11 @@ static enum flash_area fwu_go_nogo(void)
goto exit;
}

max_index = min((ptrdiff_t)(MAX_FIRMWARE_ID_LEN - 1),
&fwu->image_name[NAME_BUFFER_SIZE] - strptr);
index = 0;
strptr += 2;
while (strptr[index] >= '0' && strptr[index] <= '9') {
while (index < max_index && isdigit(strptr[index])) {
imagePR[index] = strptr[index];
index++;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -90,11 +90,6 @@ static void msm_actuator_parse_i2c_params(struct msm_actuator_ctrl_t *a_ctrl,
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) |
Expand All @@ -108,6 +103,11 @@ static void msm_actuator_parse_i2c_params(struct msm_actuator_ctrl_t *a_ctrl,
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].
Expand All @@ -128,6 +128,10 @@ static void msm_actuator_parse_i2c_params(struct msm_actuator_ctrl_t *a_ctrl,
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;
Expand Down
22 changes: 21 additions & 1 deletion drivers/misc/qcom/qdsp6v2/audio_utils_aio.c
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/* Copyright (C) 2008 Google, Inc.
* Copyright (C) 2008 HTC Corporation
* Copyright (c) 2009-2014, 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
Expand Down Expand Up @@ -570,6 +570,8 @@ int audio_aio_release(struct inode *inode, struct file *file)
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->enabled)
audio_aio_flush(audio);
Expand All @@ -584,6 +586,8 @@ int audio_aio_release(struct inode *inode, struct file *file)
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);
Expand Down Expand Up @@ -1681,7 +1685,11 @@ static long audio_aio_ioctl(struct file *file, unsigned int cmd,
__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;
Expand All @@ -1696,7 +1704,11 @@ static long audio_aio_ioctl(struct file *file, unsigned int cmd,
__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;
Expand Down Expand Up @@ -1998,7 +2010,11 @@ static long audio_aio_compat_ioctl(struct file *file, unsigned int cmd,
} 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;
Expand All @@ -2015,7 +2031,11 @@ static long audio_aio_compat_ioctl(struct file *file, unsigned int cmd,
} 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;
Expand Down
36 changes: 18 additions & 18 deletions drivers/staging/android/binder.c
Original file line number Diff line number Diff line change
Expand Up @@ -533,7 +533,7 @@ static void binder_insert_free_buffer(struct binder_proc *proc,
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) {
Expand Down Expand Up @@ -612,7 +612,7 @@ static int binder_update_page_range(struct binder_proc *proc, int allocate,
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)
Expand Down Expand Up @@ -654,7 +654,7 @@ static int binder_update_page_range(struct binder_proc *proc, int allocate,
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;
}
Expand All @@ -663,7 +663,7 @@ static int binder_update_page_range(struct binder_proc *proc, int allocate,
page_array_ptr = page;
ret = map_vm_area(&tmp_area, PAGE_KERNEL, &page_array_ptr);
if (ret) {
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;
}
Expand Down Expand Up @@ -769,7 +769,7 @@ static struct binder_buffer *binder_alloc_buf(struct binder_proc *proc,
}

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 =
Expand Down Expand Up @@ -798,7 +798,7 @@ static struct binder_buffer *binder_alloc_buf(struct binder_proc *proc,
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;
Expand Down Expand Up @@ -838,7 +838,7 @@ static void binder_delete_free_buffer(struct binder_proc *proc,
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);
}

Expand All @@ -851,14 +851,14 @@ static void binder_delete_free_buffer(struct binder_proc *proc,
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 ?
Expand All @@ -879,7 +879,7 @@ static void binder_free_buf(struct binder_proc *proc,
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);
Expand Down Expand Up @@ -1306,7 +1306,7 @@ static void binder_transaction_buffer_release(struct binder_proc *proc,
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);

Expand Down Expand Up @@ -2154,7 +2154,7 @@ static int binder_thread_write(struct binder_proc *proc,
}
}
binder_debug(BINDER_DEBUG_DEAD_BINDER,
"%d:%d BC_DEAD_BINDER_DONE %016llx found %p\n",
"%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",
Expand Down Expand Up @@ -2952,7 +2952,7 @@ static int binder_mmap(struct file *filp, struct vm_area_struct *vma)
#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;
}
}
Expand Down Expand Up @@ -2988,7 +2988,7 @@ static int binder_mmap(struct file *filp, struct vm_area_struct *vma)
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;

Expand Down Expand Up @@ -3210,7 +3210,7 @@ static void binder_deferred_release(struct binder_proc *proc)

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]);
Expand Down Expand Up @@ -3294,7 +3294,7 @@ static void print_binder_transaction(struct seq_file *m, const char *prefix,
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,
Expand All @@ -3308,15 +3308,15 @@ static void print_binder_transaction(struct seq_file *m, const char *prefix,
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);
}

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");
Expand Down
Loading