lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <45F05874.8040203@linux.intel.com>
Date:	Thu, 08 Mar 2007 21:39:48 +0300
From:	Leonid Ananiev <leonid.i.ananiev@...ux.intel.com>
To:	linux-kernel@...r.kernel.org, linux-aio@...ck.org
Subject: [PATCH 3/3] aio: fix oops because of extra IO control block freeing.

 From Leonid Ananiev

Clean up unused return values in aio_complete() and aio_run_iocb().

Signed-off-by: Leonid Ananiev leonid.i.ananiev@...el.com

diff -uprN -X dontdiff linux-2.6.20-aio22/fs/aio.c 
linux-2.6.20-aio23/fs/aio.c
--- linux-2.6.20-aio22/fs/aio.c    2007-03-04 22:55:39.000000000 +0300
+++ linux-2.6.20-aio23/fs/aio.c    2007-03-05 08:46:26.000000000 +0300
@@ -660,7 +660,7 @@ static inline int __queue_kicked_iocb(st
   * simplifies the coding of individual aio operations as
   * it avoids various potential races.
   */
-static ssize_t aio_run_iocb(struct kiocb *iocb)
+static void aio_run_iocb(struct kiocb *iocb)
  {
      struct kioctx    *ctx = iocb->ki_ctx;
      ssize_t (*retry)(struct kiocb *);
@@ -668,7 +668,7 @@ static ssize_t aio_run_iocb(struct kiocb

      if (!(retry = iocb->ki_retry)) {
          printk("aio_run_iocb: iocb->ki_retry = NULL\n");
-        return 0;
+        return;
      }

      /*
@@ -730,7 +730,6 @@ static ssize_t aio_run_iocb(struct kiocb
      }
  out:
      spin_lock_irq(&ctx->ctx_lock);
-    return ret;
  }

  /*
@@ -897,7 +896,7 @@ EXPORT_SYMBOL(kick_iocb);
   *    Returns true if this is the last user of the request.  The
   *    only other user of the request can be the cancellation code.
   */
-int fastcall aio_complete(struct kiocb *iocb, long res, long res2)
+void fastcall aio_complete(struct kiocb *iocb, long res, long res2)
  {
      struct kioctx    *ctx = iocb->ki_ctx;
      struct aio_ring_info    *info;
diff -uprN -X dontdiff linux-2.6.20-aio22/include/linux/aio.h 
linux-2.6.20-aio23/include/linux/aio.h
--- linux-2.6.20-aio22/include/linux/aio.h    2007-03-04 
22:57:50.000000000 +0300
+++ linux-2.6.20-aio23/include/linux/aio.h    2007-03-05 
08:46:41.000000000 +0300
@@ -199,7 +199,7 @@ extern unsigned aio_max_size;
  extern ssize_t FASTCALL(wait_on_sync_kiocb(struct kiocb *iocb));
  extern int FASTCALL(aio_put_req(struct kiocb *iocb));
  extern void FASTCALL(kick_iocb(struct kiocb *iocb));
-extern int FASTCALL(aio_complete(struct kiocb *iocb, long res, long res2));
+extern void FASTCALL(aio_complete(struct kiocb *iocb, long res, long 
res2));
  extern void FASTCALL(__put_ioctx(struct kioctx *ctx));
  struct mm_struct;
  extern void FASTCALL(exit_aio(struct mm_struct *mm));
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ