public inbox for linux-scsi@vger.kernel.org
 help / color / mirror / Atom feed
From: Christof Schmitt <christof.schmitt@de.ibm.com>
To: James.Bottomley@HansenPartnership.com
Cc: linux-scsi@vger.kernel.org, linux-s390@vger.kernel.org,
	Christof Schmitt <christof.schmitt@de.ibm.com>,
	Martin Peschke <mp3@de.ibm.com>
Subject: [patch 02/11] zfcp: Fix mempool pointer for GID_PN request allocation
Date: Mon, 19 May 2008 12:17:38 +0200	[thread overview]
Message-ID: <20080519101827.011544000@de.ibm.com> (raw)
In-Reply-To: 20080519101736.590943000@de.ibm.com

[-- Attachment #1: 800-zfcp-mempool.diff --]
[-- Type: text/plain, Size: 1301 bytes --]

From: Christof Schmitt <christof.schmitt@de.ibm.com>

When allocating memory for GID_PN nameserver requests, the allocation
function stores the pointer to the mempool, but then overwrites the
pointer via memset. Later, the wrong function to free the memory will
be called, since this is based on the stored pointer.

Fix this by first initializing the struct and then storing the pointer.

Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: Martin Peschke <mp3@de.ibm.com>
---

 drivers/s390/scsi/zfcp_aux.c |    9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

--- a/drivers/s390/scsi/zfcp_aux.c	2008-05-19 11:28:32.000000000 +0200
+++ b/drivers/s390/scsi/zfcp_aux.c	2008-05-19 11:30:27.000000000 +0200
@@ -1533,19 +1533,16 @@ zfcp_gid_pn_buffers_alloc(struct zfcp_gi
 {
 	struct zfcp_gid_pn_data *data;
 
-	if (pool != NULL) {
+	if (pool)
 		data = mempool_alloc(pool, GFP_ATOMIC);
-		if (likely(data != NULL)) {
-			data->ct.pool = pool;
-		}
-	} else {
+	else
 		data = kmem_cache_alloc(zfcp_data.gid_pn_cache, GFP_ATOMIC);
-	}
 
         if (NULL == data)
                 return -ENOMEM;
 
 	memset(data, 0, sizeof(*data));
+	data->ct.pool = pool;
 	sg_init_table(&data->req , 1);
 	sg_init_table(&data->resp , 1);
         data->ct.req = &data->req;

-- 

  parent reply	other threads:[~2008-05-19 10:18 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-05-19 10:17 [patch 00/11] zfcp fixes and improvements Christof Schmitt
2008-05-19 10:17 ` [patch 01/11] zfcp: receiving an unsolicted status can lead to I/O stall Christof Schmitt
2008-05-19 10:17 ` Christof Schmitt [this message]
2008-05-19 10:17 ` [patch 03/11] zfcp: Fix fsf_status_read return code handling Christof Schmitt
2008-05-19 10:17 ` [patch 04/11] zfcp: Remove some sparse warnings Christof Schmitt
2008-05-19 10:17 ` [patch 05/11] zfcp: Remove field sbal_last from trace record Christof Schmitt
2008-05-19 10:17 ` [patch 06/11] zfcp: Rename sbal_last Christof Schmitt
2008-05-19 10:17 ` [patch 07/11] zfcp: Rename sbal_curr to sbal_last Christof Schmitt
2008-05-19 10:17 ` [patch 08/11] zfcp: Add information about interrupt to trace Christof Schmitt
2008-05-19 10:17 ` [patch 09/11] zfcp: Refine trace levels of some recovery related events Christof Schmitt
2008-05-19 10:17 ` [patch 10/11] zfcp: remove some __attribute__ ((packed)) Christof Schmitt
2008-05-19 10:17 ` [patch 11/11] zfcp: Fix sparse warning by providing new entry in dbf Christof Schmitt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20080519101827.011544000@de.ibm.com \
    --to=christof.schmitt@de.ibm.com \
    --cc=James.Bottomley@HansenPartnership.com \
    --cc=linux-s390@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=mp3@de.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox