The patch titled hptiop-highpoint-rocketraid-3xxx-controller-driver-list-locking-updates-updates-2 has been added to the -mm tree. Its filename is hptiop-highpoint-rocketraid-3xxx-controller-driver-list-locking-updates-updates-2.patch See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find out what to do about this From: Andrew Morton <akpm@xxxxxxxx> - kfree(NULL) is legal - Don't "succeed" if register_chrdev() failed - otherwise we'll later unregister a not-registered chrdev. - Don't return from hptiop_do_ioctl() with the spinlock held. - uninline __hpt_do_ioctl() (marginal) Cc: HighPoint Linux Team <linux@xxxxxxxxxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxx> --- drivers/scsi/hptiop.c | 27 +++++++++++++-------------- 1 files changed, 13 insertions(+), 14 deletions(-) diff -puN drivers/scsi/hptiop.c~hptiop-highpoint-rocketraid-3xxx-controller-driver-list-locking-updates-updates-2 drivers/scsi/hptiop.c --- 25/drivers/scsi/hptiop.c~hptiop-highpoint-rocketraid-3xxx-controller-driver-list-locking-updates-updates-2 Fri May 12 09:59:41 2006 +++ 25-akpm/drivers/scsi/hptiop.c Fri May 12 09:59:41 2006 @@ -708,9 +708,9 @@ static void hptiop_ioctl_done(struct hpt static void hptiop_do_ioctl(struct hpt_ioctl_k *arg) { - struct hptiop_hba * hba = arg->hba; + struct hptiop_hba *hba = arg->hba; u32 val; - struct hpt_iop_request_ioctl_command __iomem * req; + struct hpt_iop_request_ioctl_command __iomem *req; int ioctl_retry = 0; dprintk("scsi%d: hptiop_do_ioctl\n", hba->host->host_no); @@ -735,9 +735,10 @@ retry: val = readl(&hba->iop->inbound_queue); if (val == IOPMU_QUEUE_EMPTY) { + spin_unlock_irq(hba->host->host_lock); dprintk("scsi%d: no free req for ioctl\n", hba->host->host_no); arg->result = -1; - return ; + return; } req = (struct hpt_iop_request_ioctl_command __iomem *) @@ -790,9 +791,8 @@ retry: arg->ioctl_code, arg->result); } -static inline int __hpt_do_ioctl(struct hptiop_hba *hba, - u32 code, void *inbuf, u32 insize, - void *outbuf, u32 outsize) +static int __hpt_do_ioctl(struct hptiop_hba *hba, u32 code, void *inbuf, + u32 insize, void *outbuf, u32 outsize) { struct hpt_ioctl_k arg; arg.hba = hba; @@ -944,8 +944,7 @@ static void hptiop_dump_devinfo(struct h else hptiop_copy_info(pinfo, "CH%d %s\n", devinfo.u.device.path_id + 1, - driveid->model - ); + driveid->model); else { capacity = devinfo.capacity*512; do_div(capacity, 1000000); @@ -1022,7 +1021,7 @@ static ssize_t hptiop_cdev_read(struct f info.buffer = buf; info.buflength = count; - info.bufoffset = ppos? *ppos : 0; + info.bufoffset = ppos ? *ppos : 0; info.filpos = 0; info.buffillen = 0; @@ -1136,10 +1135,8 @@ static int hptiop_cdev_ioctl(struct inod } err_exit: - if (ioctl_k.inbuf) - kfree(ioctl_k.inbuf); - if (ioctl_k.outbuf) - kfree(ioctl_k.outbuf); + kfree(ioctl_k.inbuf); + kfree(ioctl_k.outbuf); return err; } @@ -1497,8 +1494,10 @@ static int __init hptiop_module_init(voi return error; hptiop_cdev_major = register_chrdev(0, "hptiop", &hptiop_cdev_fops); - if (hptiop_cdev_major < 0) + if (hptiop_cdev_major < 0) { printk(KERN_WARNING "unable to register hptiop device.\n"); + return hptiop_cdev_major; + } return 0; } _ Patches currently in -mm which might be from akpm@xxxxxxxx are origin.patch autofs4-nfy_none-wait-race-fix-tidy.patch setup_per_zone_pages_min-overflow-fix.patch git-acpi.patch acpi_early_init-fix.patch acpi-update-asus_acpi-driver-registration-fix.patch acpi-memory-hotplug-cannot-manage-_crs-with-plural-resoureces.patch catch-notification-of-memory-add-event-of-acpi-via-container-driver-register-start-func-for-memory-device.patch catch-notification-of-memory-add-event-of-acpi-via-container-driveravoid-redundant-call-add_memory.patch remove-for_each_cpu.patch sony_apci-resume.patch powernow-k8-crash-workaround.patch s3c24xx-hardware-spi-driver-tidy.patch git-dvb.patch scx200_acb-use-pci-i-o-resource-when-appropriate-fix.patch git-gfs2.patch git-infiniband.patch via-pmu-add-input-device-tidy.patch git-klibc.patch git-hdrcleanup-fixup.patch git-hdrinstall-fixup.patch git-libata-all.patch git-mtd.patch git-mtd-build-fix.patch git-mtd-isnt-arm-only.patch git-netdev-all.patch smc911x-Kconfig-fix.patch pci-error-recovery-e1000-network-device-driver.patch nfs-share-nfs-superblocks-per-protocol-per-server-per-fsid-fix.patch nfs-use-local-caching-fix.patch git-powerpc.patch git-rbtree.patch git-sas.patch gregkh-pci-pci-64-bit-resources-drivers-others-changes-amba-fix.patch kconfigurable-resources-core-changes-fix.patch kconfigurable-resources-arch-dependent-changes-arch-a-i-fix.patch typesh-sector_t-and-blkcnt_t-arent-for-userspace.patch qla2xxx-lock-ordering-fix-warning-fix.patch areca-raid-linux-scsi-driver-update6-for-2617-rc1-mm3-externs-go-in-headers.patch git-watchdog.patch xfs-sparc32-build-fix.patch gregkh-devfs-devfs-remove-genhd-devfs_name-warning-fix.patch pg_uncached-is-ia64-only.patch pgdat-allocation-for-new-node-add-specify-node-id-powerpc-fix.patch pgdat-allocation-for-new-node-add-specify-node-id-tidy.patch pgdat-allocation-for-new-node-add-specify-node-id-fix-3.patch pgdat-allocation-for-new-node-add-get-node-id-by-acpi-tidy.patch pgdat-allocation-for-new-node-add-generic-alloc-node_data-tidy.patch pgdat-allocation-for-new-node-add-refresh-node_data-fix.patch pgdat-allocation-for-new-node-add-export-kswapd-start-func-tidy.patch catch-valid-mem-range-at-onlining-memory-tidy.patch catch-valid-mem-range-at-onlining-memory-fix.patch mm-introduce-remap_vmalloc_range-fix.patch tracking-dirty-pages-in-shared-mappings-v4-fix2.patch tracking-dirty-pages-in-shared-mappings-v4-fix3.patch throttle-writers-of-shared-mappings-tidy.patch acx1xx-wireless-driver.patch dont-use-flush_tlb_all-in-suspend-time-tidy.patch prune_one_dentry-tweaks.patch mmput-might-sleep.patch jbd-avoid-kfree-null.patch ext3_clear_inode-avoid-kfree-null.patch leds-amstrad-delta-led-support-tidy.patch percpu-counter-data-type-changes-to-suppport-fix.patch connector-exports.patch config_net=n-build-fix.patch jbd-split-checkpoint-lists-tidy.patch mark-address_space_operations-const-fix.patch mark-address_space_operations-const-fix-2.patch allow-for-per-cpu-data-being-in-tdata-and-tbss-sections-fix.patch allow-for-per-cpu-data-being-in-tdata-and-tbss-sections-tidy.patch deprecate-smbfs-in-favour-of-cifs.patch hptiop-highpoint-rocketraid-3xxx-controller-driver-list-locking.patch hptiop-highpoint-rocketraid-3xxx-controller-driver-list-locking-updates.patch hptiop-highpoint-rocketraid-3xxx-controller-driver-list-locking-updates-updates-2.patch hangcheck-remove-monotomic_clock-on-x86.patch pi-futex-futex-code-cleanups-fix.patch reiser4.patch savagefb-add-state-save-and_restore-hooks-tidy.patch kgdb-core-lite-add-reboot-command.patch kgdb-8250-fix.patch nr_blockdev_pages-in_interrupt-warning.patch device-suspend-debug.patch revert-tty-buffering-comment-out-debug-code.patch slab-leaks3-default-y.patch x86-kmap_atomic-debugging.patch profile-likely-unlikely-macros-tidy.patch profile-likely-unlikely-macros-fix.patch profile-likely-unlikely-macros-fix-2.patch - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html