From c38b278c44236ee185eb731c33a40b714e5d1c07 Mon Sep 17 00:00:00 2001 From: Tom Knot Date: Mon, 25 Jun 2018 19:12:21 +0200 Subject: [PATCH] Moved spi_message off stack --- modules/unipi/src/unipi_spi.c | 10 ++++++---- version.txt | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/modules/unipi/src/unipi_spi.c b/modules/unipi/src/unipi_spi.c index cf49f32..00ac149 100644 --- a/modules/unipi/src/unipi_spi.c +++ b/modules/unipi/src/unipi_spi.c @@ -677,7 +677,7 @@ int neuronspi_spi_send_message(struct spi_device* spi_dev, u8 *send_buf, u8 *rec u16 recv_crc2 = 0; u16 packet_crc = 0; s32 trans_count = (len / NEURONSPI_MAX_TX) + 3; // number of transmissions - struct spi_message s_msg; + struct spi_message *s_msg; struct neuronspi_driver_data *d_data; struct spi_transfer* s_trans; mutex_lock(&neuronspi_master_mutex); @@ -692,7 +692,8 @@ int neuronspi_spi_send_message(struct spi_device* spi_dev, u8 *send_buf, u8 *rec if (!send_header) { trans_count -= 1; // one less transmission as the header is omitted } - spi_message_init(&s_msg); + s_msg = kmalloc(sizeof(struct spi_message), GFP_ATOMIC); + spi_message_init(s_msg); for (i = 0; i < trans_count; i++) { memset(&(s_trans[i]), 0, sizeof(s_trans[i])); s_trans[i].delay_usecs = 0; @@ -736,13 +737,14 @@ int neuronspi_spi_send_message(struct spi_device* spi_dev, u8 *send_buf, u8 *rec // If len is more than NEURONSPI_MAX_TX * i (+ optionally header), then chunk len is NEURONSPI_MAX_TX (+ optionally header), // otherwise it's the remainder } - spi_message_add_tail(&(s_trans[i]), &s_msg); + spi_message_add_tail(&(s_trans[i]), s_msg); } - spi_sync(spi_dev, &s_msg); + spi_sync(spi_dev, s_msg); for (i = 0; i < trans_count; i++) { spi_transfer_del(&(s_trans[i])); } kfree(s_trans); + kfree(s_msg); #if NEURONSPI_DETAILED_DEBUG > 1 printk(KERN_INFO "NEURONSPI: SPI Master Read - %d:\n\t%100ph\n\t%100ph\n\t%100ph\n\t%100ph\n", len,recv_buf, &recv_buf[64], &recv_buf[128], &recv_buf[192]); diff --git a/version.txt b/version.txt index 869d1b9..f731ec4 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -Repository:neuron-kernel ActiveBranch:[uart_timeout] PrecedingRelease:v.0.12 PrecedingRevision:51(211adc3) LatestCommit:Mon Jun 25 18:33:54 CEST 2018 +Repository:neuron-kernel ActiveBranch:[uart_timeout] PrecedingRelease:v.0.12 PrecedingRevision:52(f3d6c0f) LatestCommit:Mon Jun 25 19:12:21 CEST 2018 -- 2.34.1