m68knommu: Coldfire QSPI platform support
A message that is not in the archive (sent off-list or not yet received): [email protected]
A message that is not in the archive (sent off-list or not yet received): [email protected]
A message that is not in the archive (sent off-list or not yet received): [email protected]
A message that is not in the archive (sent off-list or not yet received): [email protected]
A message that is not in the archive (sent off-list or not yet received): [email protected]
A message that is not in the archive (sent off-list or not yet received): [email protected]
A message that is not in the archive (sent off-list or not yet received): 4CA17F2D.7000407-XXXsiaCtIV5Wk0Htik3J/[email protected]
Here's a patch for your review.
After grabbing a msg from the msgq, the mcfqspi_work function calls list_del_init on the mcfqspi->msgq which unintentionally deletes the rest of the list before it can be processed. If qspi call was made using spi_sync, this can result in a process hang.
Signed-off by Jate Sujjavanich<[email protected]>
-----------
drivers/spi/coldfire_qspi.c +1 -2
@@ -316,7 +316,7 @@ static void mcfqspi_work(struct work_struct *work) msg = container_of(mcfqspi->msgq.next, struct spi_message, queue); -list_del_init (&mcfqspi->msgq); +list_del_init (&msg->queue);spin_unlock_irqrestore (&mcfqspi->lock, flags); spi = msg->spi; -----Original Message-----
From: Greg Ungerer [mailto:gerg-XXXsiaCtIV5Wk0Htik3J/[email protected]]
Sent: Tuesday, September 28, 2010 1:38 AM
To: Jate Sujjavanich
Cc: 'Steven King'; [email protected]
Subject: Re: [uClinux-dev] [PATCH] m68knommu: Coldfire QSPI platform support
Hi Jate,
Quoted 4 lines · Jate Sujjavanich
I tried out the&msg->queue, and it's running fine. It's better than my fix because it's more clear than "
mcfqspi->msgq.next".<SNIP>
Seeing as this is spi related you should send this to the spi list as well (or at least to Grant Likley as well).
Regards
Greg
------------------------------------------------------------------------------
Start uncovering the many advantages of virtual appliances and start using them to simplify application deployment and accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev
A message that is not in the archive (sent off-list or not yet received): 6C2434209962DC46B88345CA85C334A2A434E65AF7-sZuHJe4yGqVM6S7uvVHM8UB+6BGkLq7r@public.gmane.org
Quoted 15 lines · On Wednesday 29 September 2010 06:44:32 Jate Sujjavanich wrote:
Here's a patch for your review.
After grabbing a msg from the msgq, the
mcfqspi_workfunction callslist_del_initon themcfqspi->msgqwhich unintentionally deletes the rest of the list before it can be processed. If qspi call was made usingspi_sync, this can result in a process hang.Signed-off by Jate Sujjavanich<[email protected]>
-----------drivers/spi/coldfire_qspi.c +0
-0
drivers/spi/coldfire_qspi.c static void mcfqspi_work(struct work_struct *work) · line 321
Quoted 7 lines
drivers/spi/coldfire_qspi.c +1
-1@@ -316,7 +316,7 @@ static void mcfqspi_work(struct work_struct *work) msg = container_of(mcfqspi->msgq.next, struct spi_message, queue); -list_del_init (&mcfqspi->msgq); +list_del_init (&msg->queue);spin_unlock_irqrestore (&mcfqspi->lock, flags); spi = msg->spi;
A belated ack.
Grant, can we still get this into .37?
------------------------------------------------------------------------------
Oracle to DB2 Conversion Guide: Learn learn about native support for PL/SQL, new data types, scalar functions, improved concurrency, built-in packages, OCI, SQL*Plus, data movement tools, best practices and more.
http://p.sf.net/sfu/oracle-sfdev2dev
A message that is not in the archive (sent off-list or not yet received): 201012100846.36080.sfking-xS0NTnu2YfYAvxtiuMwx3w@public.gmane.org
Quoted 27 lines · Steven King
Quoted 15 lines · On Wednesday 29 September 2010 06:44:32 Jate Sujjavanich wrote:
Here's a patch for your review.
After grabbing a msg from the msgq, the
mcfqspi_workfunction callslist_del_initon themcfqspi->msgqwhich unintentionally deletes the rest of the list before it can be processed. If qspi call was made usingspi_sync, this can result in a process hang.Signed-off by Jate Sujjavanich<[email protected]>
-----------drivers/spi/coldfire_qspi.c +0
-0drivers/spi/coldfire_qspi.c static void mcfqspi_work(struct work_struct *work) · line 321
Quoted 7 lines
drivers/spi/coldfire_qspi.c +1
-1@@ -316,7 +316,7 @@ static void mcfqspi_work(struct work_struct *work) msg = container_of(mcfqspi->msgq.next, struct spi_message, queue); -list_del_init (&mcfqspi->msgq); +list_del_init (&msg->queue);spin_unlock_irqrestore (&mcfqspi->lock, flags); spi = msg->spi;A belated ack.
Quoted 1 line
Grant, can we still get this into .37?
Applied manually (patch was mailer-damaged). I'll see if Linux will still pick it up for .37.
thanks.
g.
------------------------------------------------------------------------------
Learn how Oracle Real Application Clusters (RAC) One Node allows customers to consolidate database storage, standardize their database environment, and, should the need arise, upgrade to a full multi-node Oracle RAC database without downtime or disruption
http://p.sf.net/sfu/oracle-sfdevnl