Patchset of 171 patches is at http://coderock.org/kj/2.6.10-bk13-kj/
Quick patch summary: about 30 new, 30 merged, 30 dropped.
Seems like most external trees are merged in -linus, so i'll start
(re)sending old patches.
new in this release:
--------------------
msleep-drivers_atm_ambassador.patch
From: Nishanth Aravamudan <[email protected]>
Subject: [KJ] [UPDATE PATCH] atm/ambassador: use msleep() instead of schedule_timeout()
msleep-drivers_ide_ide-cd.patch
From: Nishanth Aravamudan <[email protected]>
Subject: [KJ] [UPDATE PATCH] ide/ide-cd: use ssleep() instead of schedule_timeout()
msleep-drivers_ieee1394_sbp2.patch
From: Nishanth Aravamudan <[email protected]>
Subject: [KJ] [UPDATE PATCH] ieee1394/sbp2: use ssleep() instead of schedule_timeout()
msleep-drivers_net_cs89x0.patch
From: Nishanth Aravamudan <[email protected]>
Subject: [KJ] [PATCH 5/28] net/cs89x0: replace schedule_timeout() with msleep()
msleep-drivers_net_wan_cosa.patch
From: Nishanth Aravamudan <[email protected]>
Subject: [KJ] [PATCH 4/28] net/cosa: replace schedule_timeout() with msleep()
msleep_ssleep-drivers_net_wireless_airo.patch
From: Nishanth Aravamudan <[email protected]>
Subject: [KJ] [PATCH 3/28] net/airo: replace schedule_timeout() with msleep()/ssleep()
typo_suppport-bttv_dvb.patch
From: Carlo Perassi <[email protected]>
Subject: [KJ] [patch] trivial typos
vfree-arch_ia64_sn_kernel_sn2_sn_hwperf.patch
From: [email protected]
Subject: [KJ] [PATCH] [RESEND] [11/29] sn_hwperf.c - vfree() checking cleanups
vfree-arch_s390_kernel_module.patch
From: [email protected]
Subject: [KJ] [PATCH] [RESEND] [18/29] module.c - vfree() checking cleanups
vfree-drivers_atm_idt77252.patch
From: [email protected]
Subject: [KJ] [PATCH] [RESEND] [26/29] idt77252.c - vfree() checking cleanups
vfree-drivers_char_agp_backend.patch
From: [email protected]
Subject: [KJ] [PATCH] [RESEND] [23/29] backend.c - vfree() checking cleanups
vfree-drivers_char_agp_generic.patch
From: [email protected]
Subject: [KJ] [PATCH] [RESEND] [28/29] generic.c - vfree() checking cleanups
vfree-drivers_ieee1394_dma.patch
From: [email protected]
Subject: [KJ] [PATCH] [RESEND] [9/29] dma.c - vfree() checking cleanups
vfree-drivers_isdn_hardware_eicon_platform.h.patch
From: [email protected]
Subject: [KJ] [PATCH] [RESEND] [2/29] platform.h - vfree() checking cleanups
vfree-drivers_isdn_i4l_isdn_bsdcomp.patch
From: [email protected]
Subject: [KJ] [PATCH] [RESEND] [1/29] isdn_bsdcomp.c - vfree() checking cleanups
vfree-drivers_media_dvb_dvb-core_dmxdev.patch
From: [email protected]
Subject: [KJ] [PATCH] [RESEND] [12/29] dmxdev.c - vfree() checking cleanups
vfree-drivers_media_dvb_dvb-core_dvb_ca_en50221.patch
From: [email protected]
Subject: [KJ] [PATCH] [RESEND] [4/29] dvb_ca_en50221.c - vfree() checking cleanups
vfree-drivers_media_dvb_dvb-core_dvb_demux.patch
From: [email protected]
Subject: [KJ] [PATCH] [RESEND] [20/29] dvb_demux.c - vfree() checking cleanups
vfree-drivers_media_dvb_ttpci_av7110.patch
From: [email protected]
Subject: [KJ] [PATCH] [RESEND] [5/29] av7110.c - vfree() checking cleanups
vfree-drivers_media_dvb_ttpci_av7110_ipack.patch
From: [email protected]
Subject: [KJ] [PATCH] [RESEND] [8/29] av7110_ipack.c - vfree() checking cleanups
vfree-drivers_media_dvb_ttpci_budget-core.patch
From: [email protected]
Subject: [KJ] [PATCH] [RESEND] [27/29] budget-core.c - vfree() checking cleanups
vfree-drivers_media_video_stradis.patch
From: [email protected]
Subject: [KJ] [PATCH] [RESEND] [24/29] stradis.c - vfree() checking cleanups
vfree-drivers_scsi_qla2xxx_qla_os.patch
From: [email protected]
Subject: [KJ] [PATCH] [RESEND] [15/29] qla_os.c - vfree() checking cleanups
vfree-drivers_usb_media_ov511.patch
From: [email protected]
Subject: [KJ] [PATCH] [RESEND] [25/29] ov511.c - vfree() checking cleanups
vfree-drivers_video_sis_sis_main.patch
From: [email protected]
Subject: [KJ] [PATCH] [RESEND] [22/29] sis_main.c - vfree() checking cleanups
vfree-fs_reiserfs_super.patch
From: [email protected]
Subject: [KJ] [PATCH] [RESEND] [19/29] super.c - vfree() checking cleanups
vfree-mm_swapfile.patch
From: [email protected]
Subject: [KJ] [PATCH] [RESEND] [17/29] swapfile.c - vfree() checking cleanups
vfree-net_bridge_netfilter_ebtables.patch
From: [email protected]
Subject: [KJ] [PATCH] [RESEND] [14/29] ebtables.c - vfree() checking cleanups
vfree-sound_oss_gus_wave.patch
From: [email protected]
Subject: [KJ] [PATCH] [RESEND] [21/29] gus_wave.c - vfree() checking cleanups
vfree-sound_oss_pss.patch
From: [email protected]
Subject: [KJ] [PATCH] [RESEND] [29/29] pss.c - vfree() checking cleanups
kj_tag.patch
-kj
merged:
-------
msleep-drivers_mtd_chips_amd_flash
msleep-drivers_mtd_chips_cfi_cmdset_0002
msleep-drivers_mtd_chips_cfi_cmdset_0020
for-each-pci-dev-drivers_char_agp_generic
for-each-pci-dev-drivers_char_agp_isoch
msleep-drivers_scsi_ibmvscsi
msleep_interruptible-drivers_net_e1000_e1000_ethtool
msleep+msleep_interruptible-drivers_net_e100
pci_get_device-drivers_char_agp_amd64-agp
pci_get_device-drivers_char_agp_intel-agp
pci_get_device-drivers_char_agp_intel-mch-agp
kconfig-arch_sh_drivers_pci
msleep-sound_sparc_cs4231
typo-sound_isa_es18xx.c
typos-arch_ppc_platforms_prep_setup.c
typo-arch_ppc_syslib_ppc4xx_dma.c
typo-arch_sh_boards_renesas_hs7751rvoip_io.c
typo-drivers_char_ipmi_ipmi_si_intf.c
typo-drivers_net_wireless_wavelan_cs.c
typo-drivers_usb_net_usbnet.c
typo-sound_isa_cs423x_cs4231_lib.c
typo_au1000-arch_mips
remove_file-fs_jfs_jfs_defragfs.h
remove_file-include_asm_arm26_ian_char.h
remove_file-include_sound_soundmem.h
remove_file-net_sunrpc_auth_gss_gss_pseudoflavors.c
remove_file-net_sunrpc_auth_gss_sunrpcgss_syms.c
remove_file-sound_core_seq_oss_seq_oss_misc.c
dropped:
--------
remove_file-arch_alpha_lib_dbg_stackcheck.S
remove_file-arch_alpha_lib_dbg_stackkill.S
remove_file-arch_alpha_lib_stacktrace.c
useful for debugging
remove_file-arch_m68knommu_platform_68EZ328_ucsimm_crt0_himem.S.patch
already deleted
remove_file-arch_m68knommu_platform_68VZ328_ucdimm_crt0_himem.S.patch
reworked, so no longer unused
remove_file-drivers_net_gt64240eth.h
will be used
remove_file-drivers_video_riva_nv4ref.h
documentation
remove_file-include_asm_alpha_numnodes.h
bogus patch
remove_file-include_asm_um_arch_signal_i386.h
remove_file-include_asm_um_archparam_i386.h
remove_file-include_asm_um_archparam_ppc.h
remove_file-include_asm_um_module_generic.h
remove_file-include_asm_um_module_i386.h
remove_file-include_asm_um_processor_i386.h
remove_file-include_asm_um_processor_ppc.h
remove_file-include_asm_um_ptrace_i386.h
remove_file-include_asm_um_sigcontext_i386.h
remove_file-include_asm_um_sigcontext_ppc.h
remove_file-include_asm_um_system_i386.h
remove_file-include_asm_um_system_ppc.h
are used (symlinks)
remove_file-include_linux_byteorder_pdp_endian.h
completes the set of endian types
remove_file-sound_pci_cs46xx_imgs_cwcemb80.h
this dsp image could still be used
remove_file-drivers_video_aty_xlinit.c
used in -mm
msleep-drivers_mtd_chips_cfi_cmdset_0001
not needed anymore
msleep-drivers_net_e1000_e1000_osdep
merged
msleep_interruptible-drivers_net_gt96100eth
a version of it merged
module_parm-net_ne2k-pci
module_parm-net_wireless_atmel_cs
module_parm-net_wireless_orinoco
module_parm-net_wireless_wavelan.p.h
module_parm-net_wireless_wl3501_cs
module_param-drivers_net_3c59x.c
similar patch merged
strlcpy-net_wireless_wavelan
similar patch merged
cleanup-drivers_media_radio_radio-sf16fmi.c
needs reworking
all patches:
------------
remove-old-ifdefs-aic7xxx_osm_pci.patch
min-max-ide_ide-timing.h.patch
list-for-each-entry-drivers_chan_kern.patch
list-for-each-entry-drivers_macintosh_via-pmu.patch
list-for-each-entry-drivers_net_ppp_generic.patch
list-for-each-entry-fs_jffs_intrep.patch
list-for-each-entry-fs_namespace.patch
list-for-each-entry-safe-arch_i386_mm_pageattr.patch
list-for-each-entry-safe-fs_coda_psdev.patch
list-for-each-entry-safe-fs_dquot.patch
list-for-each-fs_dcache.patch
msleep-drivers_ide_ide-tape.patch
pr_debug-drivers_block_umem.patch
list-for-each-drivers_net_ipv6_ip6_fib.patch
list-for-each-drivers_net_tulip_de4x5.patch
min-max-arch_sh_boards_bigsur_io.patch
min-max-arch_sh_cchips_hd6446x_hd64465_io.patch
msleep-drivers_block_xd.patch
msleep-drivers_ide_ide-cs.patch
msleep_interruptible-drivers_base_dmapool.patch
msleep_interruptible-drivers_block_cciss.patch
msleep_interruptible-drivers_block_pcd.patch
msleep_interruptible-drivers_block_pf.patch
msleep_interruptible-drivers_block_pg.patch
msleep_interruptible-drivers_block_pt.patch
msleep_interruptible-drivers_cdrom_sonycd535.patch
msleep_interruptible-drivers_macintosh_mediabay.patch
set_current_state-drivers_block_swim3.patch
set_current_state-drivers_block_swim_iop.patch
add_module_version-drivers_net_8139cp.patch
for-each-pci-dev-arch_i386_pci_acpi.patch
for-each-pci-dev-arch_i386_pci_i386.patch
function-string-arch-mips.patch
msleep-drivers_media_radio_radio-zoltrix.patch
msleep-drivers_net_3c505.patch
msleep-drivers_net_irda_act200l-sir.patch
msleep-drivers_net_irda_irtty-sir.patch
msleep-drivers_net_irda_ma600-sir.patch
msleep-drivers_net_irda_pcmcia_xirc2ps_cs.patch
msleep-drivers_net_irda_sir_dev.patch
msleep-drivers_net_ixgb_ixgb_osdep.patch
msleep-drivers_net_ni65.patch
msleep-drivers_net_ns83820.patch
msleep-drivers_net_wireless_prism54_islpci_dev.patch
msleep-drivers_scsi_ide-scsi.patch
msleep-drivers_scsi_imm.patch
msleep-drivers_scsi_osst.patch
msleep-drivers_scsi_ppa.patch
msleep-drivers_scsi_qla1280.patch
msleep_interruptible-drivers_net_irda_tekram-sir.patch
msleep_interruptible-drivers_net_ixgb_ixgb_ethtool.patch
msleep_interruptible-drivers_net_pcnet32.patch
msleep_interruptible-drivers_net_sb1000.patch
msleep_interruptible-drivers_net_slip.patch
msleep_interruptible-drivers_net_wan_cycx_drv.patch
msleep_interruptible-drivers_parport_ieee1284_ops.patch
msleep_interruptible-drivers_parport_ieee1284.patch
msleep_interruptible-drivers_parport_parport_pc.patch
msleep_interruptible-drivers_s390_net_ctctty.patch
msleep_interruptible-drivers_sbus_char_aurora.patch
msleep_interruptible-drivers_sbus_char_envctrl.patch
msleep_interruptible-drivers_scsi_dpt_i2o.patch
msleep_interruptible-drivers_scsi_st.patch
msleep_interruptible-drivers_tc_zs.patch
msleep+msleep_interruptible-drivers_net_tokenring_ibmtr.patch
msleep+ssleep-drivers_net_appletalk_ltpc.patch
pci_dev_present-arch_ia64_hp_common_sba_iommu.patch
pci_dev_present-arch_ia64_pci_pci.patch
pci_dev_present-drivers_ide_pci_alim15x3.patch
remove-pci-find-device-arch_sparc64_kernel_ebus.patch
remove-pci-find-device-drivers_net_e1000_e1000_main.patch
remove-pci-find-device-drivers_net_gt96100eth.patch
remove-pci-find-device-drivers_net_ixgb_ixgb_main.patch
remove-pci-find-device-drivers_net_tg3.patch
set_current_state-drivers_net_irda_stir4200.patch
set_current_state-drivers_net_tokenring_tms380tr.patch
set_current_state-drivers_net_wan_farsync.patch
ssleep-drivers_net_wireless_orinoco_plx.patch
ssleep-drivers_net_wireless_orinoco_tmd.patch
ssleep+msleep_interruptible-drivers_net_tokenring_lanstreamer.patch
fix-comment-fs_jbd_journal.patch
lib-parser-fs_devpts_inode.patch
msleep_interruptible-drivers_cdrom_sonycd535_2.patch
msleep_interruptible-drivers_message_fusion_mptbase.patch
msleep_interruptible-drivers_net_ewrk3.patch
reorder-state-drivers_char_snsc.patch
reorder-state-drivers_video_pxafb.patch
reorder-state-drivers_video_sa1100fb.patch
set_current_state-drivers_input_joystick_iforce_iforce-packets.patch
ssleep-drivers_scsi_qla2xxx_qla_os.patch
docs-fs_super.patch
docs-kernel_sysctl.patch
kconfig-arch_sparc64.patch
myri_code_cleanup.patch
printk-drivers-scsi-zalon.patch
comment-drivers_block_floppy.c.patch
schedule_cleanup-drivers_usb_class_usblp.c.patch
typo-arch_ppc64_kernel_rtasd.c.patch
remove_file-arch_arm26_boot_compressed_hw_bse.c.patch
remove_file-arch_m68k_apollo_dn_debug.c.patch
remove_file-arch_m68k_sun3x_sun3x_ksyms.c.patch
remove_file-arch_mips_arc_salone.c.patch
remove_file-arch_mips_pmc_sierra_yosemite_ht_irq.c.patch
remove_file-arch_ppc64_boot_no_initrd.c.patch
remove_file-arch_ppc_kernel_find_name.c.patch
remove_file-arch_ppc_syslib_ppc4xx_pm.c.patch
remove_file-arch_ppc_syslib_ppc4xx_serial.c.patch
remove_file-arch_sh64_lib_old_checksum.c.patch
remove_file-arch_um_include_umn.h.patch
remove_file-arch_x86_64_lib_old_checksum.c.patch
remove_file-drivers_char_hp600_keyb.c.patch
remove_file-drivers_char_rio_cdproto.h.patch
remove_file-drivers_char_rsf16fmi.h.patch
remove_file-drivers_parport_parport_arc.c.patch
remove_file-drivers_pcmcia_au1000_generic.c.patch
remove_file-drivers_pcmcia_au1000_pb1x00.c.patch
remove_file-drivers_scsi_dpt_dpt_osdutil.h.patch
remove_file-fs_jffs2_histo.h.patch
remove_file-include_asm_arm_arch_epxa10db_mode_ctrl00.h.patch
remove_file-include_asm_arm_arch_epxa10db_pld_conf00.h.patch
remove_file-include_asm_arm_hardware_linkup_l1110.h.patch
remove_file-include_asm_m68k_atari_SCCserial.h.patch
remove_file-include_asm_m68knommu_io_hw_swap.h.patch
remove_file-include_asm_m68knommu_semp3.h.patch
remove_file-include_asm_mips_gfx.h.patch
remove_file-include_asm_mips_it8172_it8172_lpc.h.patch
remove_file-include_asm_mips_mach_au1x00_au1100_mmc.h.patch
remove_file-include_asm_mips_mipsprom.h.patch
remove_file-include_asm_mips_ng1.h.patch
remove_file-include_asm_mips_ng1hw.h.patch
remove_file-include_asm_mips_riscos_syscall.h.patch
remove_file-include_asm_parisc_bootdata.h.patch
remove_file-include_asm_ppc64_iSeries_iSeries_fixup.h.patch
remove_file-include_linux_netfilter_ipv4_ip_logging.h.patch
remove_file-include_linux_netfilter_ipv6_ip6_logging.h.patch
remove_file-include_linux_umsdos_fs_i.h.patch
remove_file-sound_oss_maestro_tables.h.patch
cleanup-drivers_media_radio_miropcm20-radio.c.patch
cleanup-drivers_atm_he.c.patch
array_size-fs_proc_base.c.bak.patch
remove_sprintf-fs_proc_proc_tty.c.bak.patch
msleep-drivers_atm_ambassador.patch
msleep-drivers_ide_ide-cd.patch
msleep-drivers_ieee1394_sbp2.patch
msleep-drivers_net_cs89x0.patch
msleep-drivers_net_wan_cosa.patch
msleep_ssleep-drivers_net_wireless_airo.patch
typo_suppport-bttv_dvb.patch
vfree-arch_ia64_sn_kernel_sn2_sn_hwperf.patch
vfree-arch_s390_kernel_module.patch
vfree-drivers_atm_idt77252.patch
vfree-drivers_char_agp_backend.patch
vfree-drivers_char_agp_generic.patch
vfree-drivers_ieee1394_dma.patch
vfree-drivers_isdn_hardware_eicon_platform.h.patch
vfree-drivers_isdn_i4l_isdn_bsdcomp.patch
vfree-drivers_media_dvb_dvb-core_dmxdev.patch
vfree-drivers_media_dvb_dvb-core_dvb_ca_en50221.patch
vfree-drivers_media_dvb_dvb-core_dvb_demux.patch
vfree-drivers_media_dvb_ttpci_av7110.patch
vfree-drivers_media_dvb_ttpci_av7110_ipack.patch
vfree-drivers_media_dvb_ttpci_budget-core.patch
vfree-drivers_media_video_stradis.patch
vfree-drivers_scsi_qla2xxx_qla_os.patch
vfree-drivers_usb_media_ov511.patch
vfree-drivers_video_sis_sis_main.patch
vfree-fs_reiserfs_super.patch
vfree-mm_swapfile.patch
vfree-net_bridge_netfilter_ebtables.patch
vfree-sound_oss_gus_wave.patch
vfree-sound_oss_pss.patch
kj_tag.patch
On Mon, Jan 10, 2005 at 05:47:03PM +0100, Domen Puncer wrote:
> Patchset of 171 patches is at http://coderock.org/kj/2.6.10-bk13-kj/
>
> Quick patch summary: about 30 new, 30 merged, 30 dropped.
> Seems like most external trees are merged in -linus, so i'll start
> (re)sending old patches.
<snip>
> all patches:
> ------------
<snip>
> msleep-drivers_scsi_ide-scsi.patch
Please consider replacing with the following patch (just a minor change):
Description: Use msleep() instead of schedule_timeout() to guarantee the
task delays as expected. Remove set_current_state() as it is taken care of by
msleep().
Signed-off-by: Nishanth Aravamudan <[email protected]>
--- 2.6.10-v/drivers/scsi/ide-scsi.c 2004-12-24 13:35:01.000000000 -0800
+++ 2.6.10/drivers/scsi/ide-scsi.c 2005-01-05 14:23:05.000000000 -0800
@@ -46,6 +46,7 @@
#include <linux/slab.h>
#include <linux/ide.h>
#include <linux/scatterlist.h>
+#include <linux/delay.h>
#include <asm/io.h>
#include <asm/bitops.h>
@@ -1004,9 +1005,8 @@ static int idescsi_eh_reset (struct scsi
/* ide_do_reset starts a polling handler which restarts itself every 50ms until the reset finishes */
do {
- set_current_state(TASK_UNINTERRUPTIBLE);
spin_unlock_irq(cmd->device->host->host_lock);
- schedule_timeout(HZ/20);
+ msleep(50);
spin_lock_irq(cmd->device->host->host_lock);
} while ( HWGROUP(drive)->handler );
On Mon, Jan 10, 2005 at 05:47:03PM +0100, Domen Puncer wrote:
> Patchset of 171 patches is at http://coderock.org/kj/2.6.10-bk13-kj/
>
> Quick patch summary: about 30 new, 30 merged, 30 dropped.
> Seems like most external trees are merged in -linus, so i'll start
> (re)sending old patches.
<snip>
> msleep-drivers_scsi_imm.patch
This patch should be dropped. The msleep() call will ignore waitqueue events
set up by prepare_to_wait().
Thanks,
Nish
On Mon, Jan 10, 2005 at 05:47:03PM +0100, Domen Puncer wrote:
> Patchset of 171 patches is at http://coderock.org/kj/2.6.10-bk13-kj/
>
> Quick patch summary: about 30 new, 30 merged, 30 dropped.
> Seems like most external trees are merged in -linus, so i'll start
> (re)sending old patches.
<snip>
> msleep_interruptible-drivers_block_cciss.patch
Please consider replacing with the following patch:
Description: Use msleep() instead of schedule_timeout() to guarantee the task
delays as expected. TASK_INTERRUPTIBLE is used currently, however signals /
early returns from schedule_timeout() are not checked for. Thus msleep() is more
appropriate.
Signed-off-by: Nishanth Aravamudan <[email protected]>
--- 2.6.10-v/drivers/block/cciss.c 2004-12-24 13:35:39.000000000 -0800
+++ 2.6.10/drivers/block/cciss.c 2005-01-10 12:10:50.000000000 -0800
@@ -2430,8 +2430,7 @@ static int cciss_pci_init(ctlr_info_t *c
scratchpad = readl(c->vaddr + SA5_SCRATCHPAD_OFFSET);
if (scratchpad == CCISS_FIRMWARE_READY)
break;
- set_current_state(TASK_INTERRUPTIBLE);
- schedule_timeout(HZ / 10); /* wait 100ms */
+ msleep(100); /* wait 100ms */
}
if (scratchpad != CCISS_FIRMWARE_READY) {
printk(KERN_WARNING "cciss: Board not ready. Timed out.\n");
On Mon, Jan 10, 2005 at 05:47:03PM +0100, Domen Puncer wrote:
> Patchset of 171 patches is at http://coderock.org/kj/2.6.10-bk13-kj/
>
> Quick patch summary: about 30 new, 30 merged, 30 dropped.
> Seems like most external trees are merged in -linus, so i'll start
> (re)sending old patches.
<snip>
> msleep_interruptible-drivers_base_dmapool.patch
Please replace with the following patch. msleep_interruptible() is not
appropriate for this delay, as the waitqueue events will be missed.
TASK_UNINTERRUPTIBLE should be used instead of TASK_INTERRUPTIBLE, though, as
signals are not checked for.
Signed-off-by: Nishanth Aravamudan <[email protected]>
--- 2.6.10-v/drivers/base/dmapool.c 2004-12-24 13:35:28.000000000 -0800
+++ 2.6.10/drivers/base/dmapool.c 2005-01-10 12:05:08.000000000 -0800
@@ -293,7 +293,7 @@ restart:
if (mem_flags & __GFP_WAIT) {
DECLARE_WAITQUEUE (wait, current);
- current->state = TASK_INTERRUPTIBLE;
+ set_current_state(TASK_UNINTERRUPTIBLE);
add_wait_queue (&pool->waitq, &wait);
spin_unlock_irqrestore (&pool->lock, flags);
On Mon, Jan 10, 2005 at 05:47:03PM +0100, Domen Puncer wrote:
> Patchset of 171 patches is at http://coderock.org/kj/2.6.10-bk13-kj/
>
> Quick patch summary: about 30 new, 30 merged, 30 dropped.
> Seems like most external trees are merged in -linus, so i'll start
> (re)sending old patches.
<snip>
> msleep_interruptible-drivers_block_pf.patch
Please consider replacing with the following patch:
Description: Use msleep() instead of pf_sleep() to guarantee
the task delays as expected. TASK_INTERRUPTIBLE is used in the original code,
however there is no check on the return values / for signals, thus I believe
TASK_UNINTERRUPTIBLE (and hence msleep()) is more appropriate. Remove the
definition of pf_sleep().
Signed-off-by: Nishanth Aravamudan <[email protected]>
--- 2.6.10-v/drivers/block/paride/pf.c 2004-12-24 13:35:01.000000000 -0800
+++ 2.6.10/drivers/block/paride/pf.c 2005-01-10 12:20:20.000000000 -0800
@@ -526,12 +526,6 @@ static void pf_eject(struct pf_unit *pf)
#define PF_RESET_TMO 30 /* in tenths of a second */
-static void pf_sleep(int cs)
-{
- current->state = TASK_INTERRUPTIBLE;
- schedule_timeout(cs);
-}
-
/* the ATAPI standard actually specifies the contents of all 7 registers
after a reset, but the specification is ambiguous concerning the last
two bytes, and different drives interpret the standard differently.
@@ -546,11 +540,11 @@ static int pf_reset(struct pf_unit *pf)
write_reg(pf, 6, 0xa0+0x10*pf->drive);
write_reg(pf, 7, 8);
- pf_sleep(20 * HZ / 1000);
+ msleep(20);
k = 0;
while ((k++ < PF_RESET_TMO) && (status_reg(pf) & STAT_BUSY))
- pf_sleep(HZ / 10);
+ msleep(100);
flg = 1;
for (i = 0; i < 5; i++)
On Mon, Jan 10, 2005 at 05:47:03PM +0100, Domen Puncer wrote:
> Patchset of 171 patches is at http://coderock.org/kj/2.6.10-bk13-kj/
>
> Quick patch summary: about 30 new, 30 merged, 30 dropped.
> Seems like most external trees are merged in -linus, so i'll start
> (re)sending old patches.
<snip>
> msleep_interruptible-drivers_block_pcd.patch
Please consider replacing with the following patch:
Description: Use msleep()/ssleep() instead of schedule_timeout() to guarantee
the task delays as expected. TASK_INTERRUPTIBLE is used in the original code,
however there is no check on the return values / for signals, thus I believe
TASK_UNINTERRUPTIBLE (and hence msleep()) is more appropriate.
Signed-off-by: Nishanth Aravamudan <[email protected]>
--- 2.6.10-v/drivers/block/paride/pcd.c 2004-12-24 13:35:39.000000000 -0800
+++ 2.6.10/drivers/block/paride/pcd.c 2005-01-10 12:20:29.000000000 -0800
@@ -534,12 +534,6 @@ static int pcd_tray_move(struct cdrom_de
position ? "eject" : "close tray");
}
-static void pcd_sleep(int cs)
-{
- current->state = TASK_INTERRUPTIBLE;
- schedule_timeout(cs);
-}
-
static int pcd_reset(struct pcd_unit *cd)
{
int i, k, flg;
@@ -549,11 +543,11 @@ static int pcd_reset(struct pcd_unit *cd
write_reg(cd, 6, 0xa0 + 0x10 * cd->drive);
write_reg(cd, 7, 8);
- pcd_sleep(20 * HZ / 1000); /* delay a bit */
+ msleep(20); /* delay a bit */
k = 0;
while ((k++ < PCD_RESET_TMO) && (status_reg(cd) & IDE_BUSY))
- pcd_sleep(HZ / 10);
+ msleep(100);
flg = 1;
for (i = 0; i < 5; i++)
@@ -592,7 +586,7 @@ static int pcd_ready_wait(struct pcd_uni
if (!(((p & 0xffff) == 0x0402) || ((p & 0xff) == 6)))
return p;
k++;
- pcd_sleep(HZ);
+ ssleep(1);
}
return 0x000020; /* timeout */
}
On Mon, Jan 10, 2005 at 05:47:03PM +0100, Domen Puncer wrote:
> Patchset of 171 patches is at http://coderock.org/kj/2.6.10-bk13-kj/
>
> Quick patch summary: about 30 new, 30 merged, 30 dropped.
> Seems like most external trees are merged in -linus, so i'll start
> (re)sending old patches.
<snip>
> msleep_interruptible-drivers_cdrom_sonycd535.patch
> msleep_interruptible-drivers_cdrom_sonycd535_2.patch
These two patches are combined in the following, please replace.
Description: Use msleep() instead of schedule_timeout() to guarantee the task
delays as expected. Although TASK_INTERRUPTIBLE is used in the original code,
the schedule_timeout() return conditions for such a state are not checked
appropriately; therefore, TASK_UNINTERRUPTIBLE should be ok (and, hence,
msleep()).
Signed-off-by: Nishanth Aravamudan <[email protected]>
--- 2.6.10-v/drivers/cdrom/sonycd535.c 2004-12-24 13:35:50.000000000 -0800
+++ 2.6.10/drivers/cdrom/sonycd535.c 2005-01-06 10:18:47.000000000 -0800
@@ -129,6 +129,7 @@
#include <linux/mm.h>
#include <linux/slab.h>
#include <linux/init.h>
+#include <linux/delay.h>
#define REALLY_SLOW_IO
#include <asm/system.h>
@@ -896,9 +897,8 @@ do_cdu535_request(request_queue_t * q)
}
if (readStatus == BAD_STATUS) {
/* Sleep for a while, then retry */
- set_current_state(TASK_INTERRUPTIBLE);
spin_unlock_irq(&sonycd535_lock);
- schedule_timeout(RETRY_FOR_BAD_STATUS*HZ/10);
+ msleep(RETRY_FOR_BAD_STATUS*100);
spin_lock_irq(&sonycd535_lock);
}
#if DEBUG > 0
@@ -1478,8 +1478,7 @@ static int __init sony535_init(void)
/* look for the CD-ROM, follows the procedure in the DOS driver */
inb(select_unit_reg);
/* wait for 40 18 Hz ticks (reverse-engineered from DOS driver) */
- set_current_state(TASK_INTERRUPTIBLE);
- schedule_timeout((HZ+17)*40/18);
+ msleep(2222);
inb(result_reg);
outb(0, read_status_reg); /* does a reset? */
Sorry, slightly inaccurate description...
On Mon, Jan 10, 2005 at 05:47:03PM +0100, Domen Puncer wrote:
> Patchset of 171 patches is at http://coderock.org/kj/2.6.10-bk13-kj/
>
> Quick patch summary: about 30 new, 30 merged, 30 dropped.
> Seems like most external trees are merged in -linus, so i'll start
> (re)sending old patches.
<snip>
> msleep_interruptible-drivers_block_pcd.patch
Please consider replacing with the following patch:
Description: Use msleep()/ssleep() instead of pcd_sleep() to guarantee
the task delays as expected. TASK_INTERRUPTIBLE is used in the original code,
however there is no check on the return values / for signals, thus I believe
TASK_UNINTERRUPTIBLE (and hence msleep()) is more appropriate. Remove definition
of pcd_sleep().
Signed-off-by: Nishanth Aravamudan <[email protected]>
--- 2.6.10-v/drivers/block/paride/pcd.c 2004-12-24 13:35:39.000000000 -0800
+++ 2.6.10/drivers/block/paride/pcd.c 2005-01-10 12:20:29.000000000 -0800
@@ -534,12 +534,6 @@ static int pcd_tray_move(struct cdrom_de
position ? "eject" : "close tray");
}
-static void pcd_sleep(int cs)
-{
- current->state = TASK_INTERRUPTIBLE;
- schedule_timeout(cs);
-}
-
static int pcd_reset(struct pcd_unit *cd)
{
int i, k, flg;
@@ -549,11 +543,11 @@ static int pcd_reset(struct pcd_unit *cd
write_reg(cd, 6, 0xa0 + 0x10 * cd->drive);
write_reg(cd, 7, 8);
- pcd_sleep(20 * HZ / 1000); /* delay a bit */
+ msleep(20); /* delay a bit */
k = 0;
while ((k++ < PCD_RESET_TMO) && (status_reg(cd) & IDE_BUSY))
- pcd_sleep(HZ / 10);
+ msleep(100);
flg = 1;
for (i = 0; i < 5; i++)
@@ -592,7 +586,7 @@ static int pcd_ready_wait(struct pcd_uni
if (!(((p & 0xffff) == 0x0402) || ((p & 0xff) == 6)))
return p;
k++;
- pcd_sleep(HZ);
+ ssleep(1);
}
return 0x000020; /* timeout */
}
On Mon, Jan 10, 2005 at 05:47:03PM +0100, Domen Puncer wrote:
> Patchset of 171 patches is at http://coderock.org/kj/2.6.10-bk13-kj/
>
> Quick patch summary: about 30 new, 30 merged, 30 dropped.
> Seems like most external trees are merged in -linus, so i'll start
> (re)sending old patches.
<snip>
> msleep_interruptible-drivers_message_fusion_mptbase.patch
Please consider replacing with the following patch:
Description: Use ssleep() instead of schedule_timeout() to guarantee
the task delays as expected. The original code does use TASK_INTERRUPTIBLE, but
does not check for signals or early return from schedule_timeout() so ssleep()
seems more appropriate.
Signed-off-by: Nishanth Aravamudan <[email protected]>
--- 2.6.10-v/drivers/message/fusion/mptbase.c 2004-12-24 13:35:50.000000000 -0800
+++ 2.6.10/drivers/message/fusion/mptbase.c 2005-01-05 14:23:05.000000000 -0800
@@ -3137,8 +3137,7 @@ mpt_diag_reset(MPT_ADAPTER *ioc, int ign
/* wait 1 sec */
if (sleepFlag == CAN_SLEEP) {
- set_current_state(TASK_INTERRUPTIBLE);
- schedule_timeout(1000 * HZ / 1000);
+ ssleep(1);
} else {
mdelay (1000);
}
On Mon, Jan 10, 2005 at 05:47:03PM +0100, Domen Puncer wrote:
> Patchset of 171 patches is at http://coderock.org/kj/2.6.10-bk13-kj/
>
> Quick patch summary: about 30 new, 30 merged, 30 dropped.
> Seems like most external trees are merged in -linus, so i'll start
> (re)sending old patches.
<snip>
> msleep_interruptible-drivers_net_sb1000.patch
Please consider replacing with the following:
Description: Use ssleep() instead of nicedelay()
to guarantee the task delays as expected. Remove the prototype and
definition of nicedelay(). This is a very weird function, because it is
called to sleep in terms of usecs, but always sleeps for 1 second,
completely ignoring the parameter. I have gone ahead and followed suit,
just sleeping for a second in all cases, but maybe someone with the
hardware could tell me if perhaps the paramter *should* matter. Additionally,
nicedelay() is called in TASK_INTERRUPTIBLE state, but doesn't deal with signals
in case these longer delays do not complete, so I believe ssleep() is more
appropriate.
Signed-off-by: Nishanth Aravamudan <[email protected]>
--- 2.6.10-v/drivers/net/sb1000.c 2004-12-24 13:33:51.000000000 -0800
+++ 2.6.10/drivers/net/sb1000.c 2005-01-05 14:23:05.000000000 -0800
@@ -90,7 +90,6 @@ static int sb1000_close(struct net_devic
/* SB1000 hardware routines to be used during open/configuration phases */
-static inline void nicedelay(unsigned long usecs);
static inline int card_wait_for_busy_clear(const int ioaddr[],
const char* name);
static inline int card_wait_for_ready(const int ioaddr[], const char* name,
@@ -254,13 +253,6 @@ static struct pnp_driver sb1000_driver =
const int TimeOutJiffies = (875 * HZ) / 100;
-static inline void nicedelay(unsigned long usecs)
-{
- current->state = TASK_INTERRUPTIBLE;
- schedule_timeout(HZ);
- return;
-}
-
/* Card Wait For Busy Clear (cannot be used during an interrupt) */
static inline int
card_wait_for_busy_clear(const int ioaddr[], const char* name)
@@ -475,7 +467,7 @@ sb1000_reset(const int ioaddr[], const c
udelay(1000);
outb(0x0, port);
inb(port);
- nicedelay(60000);
+ ssleep(1);
outb(0x4, port);
inb(port);
udelay(1000);
@@ -537,7 +529,7 @@ sb1000_activate(const int ioaddr[], cons
const unsigned char Command0[6] = {0x80, 0x11, 0x00, 0x00, 0x00, 0x00};
const unsigned char Command1[6] = {0x80, 0x16, 0x00, 0x00, 0x00, 0x00};
- nicedelay(50000);
+ ssleep(1);
if ((status = card_send_command(ioaddr, name, Command0, st)))
return status;
if ((status = card_send_command(ioaddr, name, Command1, st)))
@@ -944,7 +936,7 @@ sb1000_open(struct net_device *dev)
/* initialize sb1000 */
if ((status = sb1000_reset(ioaddr, name)))
return status;
- nicedelay(200000);
+ ssleep(1);
if ((status = sb1000_check_CRC(ioaddr, name)))
return status;
On Mon, Jan 10, 2005 at 05:47:03PM +0100, Domen Puncer wrote:
> Patchset of 171 patches is at http://coderock.org/kj/2.6.10-bk13-kj/
>
> Quick patch summary: about 30 new, 30 merged, 30 dropped.
> Seems like most external trees are merged in -linus, so i'll start
> (re)sending old patches.
<snip>
> msleep_interruptible-drivers_scsi_st.patch
Please consider updating to the following patch:
Description: Use msleep_interruptible() instead of
schedule_timeout() to guarantee the task delays as expected.
Signed-off-by: Nishanth Aravamudan <[email protected]>
--- 2.6.10-v/drivers/scsi/st.c 2004-12-24 13:35:01.000000000 -0800
+++ 2.6.10/drivers/scsi/st.c 2005-01-05 14:23:05.000000000 -0800
@@ -36,6 +36,7 @@ static char *verstr = "20041025";
#include <linux/moduleparam.h>
#include <linux/devfs_fs_kernel.h>
#include <linux/cdev.h>
+#include <linux/delay.h>
#include <asm/uaccess.h>
#include <asm/dma.h>
#include <asm/system.h>
@@ -760,9 +761,7 @@ static int test_ready(struct scsi_tape *
if (scode == NOT_READY) {
if (waits < max_wait) {
- set_current_state(TASK_INTERRUPTIBLE);
- schedule_timeout(HZ);
- if (signal_pending(current)) {
+ if (msleep_interruptible(1000)) {
retval = (-EINTR);
break;
}
On Mon, Jan 10, 2005 at 05:47:03PM +0100, Domen Puncer wrote:
> Patchset of 171 patches is at http://coderock.org/kj/2.6.10-bk13-kj/
>
> Quick patch summary: about 30 new, 30 merged, 30 dropped.
> Seems like most external trees are merged in -linus, so i'll start
> (re)sending old patches.
<snip>
> msleep_interruptible-drivers_net_slip.patch
Please consider replacing with the following:
Description: Use msleep() instead of schedule_timeout() to guarantee
the task delays as expected. While the original code does use
TASK_INTERRUPTIBLE, it does not check for signals, so I believe msleep() is more
appropriate.
Signed-off-by: Nishanth Aravamudan <[email protected]>
--- 2.6.10-v/drivers/net/slip.c 2004-12-24 13:35:49.000000000 -0800
+++ 2.6.10/drivers/net/slip.c 2005-01-05 14:23:05.000000000 -0800
@@ -75,6 +75,7 @@
#include <linux/if_arp.h>
#include <linux/if_slip.h>
#include <linux/init.h>
+#include <linux/delay.h>
#include "slip.h"
#ifdef CONFIG_INET
#include <linux/ip.h>
@@ -1395,10 +1396,8 @@ static void __exit slip_exit(void)
/* First of all: check for active disciplines and hangup them.
*/
do {
- if (busy) {
- set_current_state(TASK_INTERRUPTIBLE);
- schedule_timeout(HZ / 10);
- }
+ if (busy)
+ msleep(100);
busy = 0;
for (i = 0; i < slip_maxdev; i++) {
On Mon, Jan 10, 2005 at 05:47:03PM +0100, Domen Puncer wrote:
> Patchset of 171 patches is at http://coderock.org/kj/2.6.10-bk13-kj/
>
> Quick patch summary: about 30 new, 30 merged, 30 dropped.
> Seems like most external trees are merged in -linus, so i'll start
> (re)sending old patches.
<snip>
> msleep_interruptible-drivers_sbus_char_envctrl.patch
Please consider updating to the following patch:
Description: Use msleep_interruptible() instead of
schedule_timeout() to guarantee the task delays as expected. Change the units of
poll_interval to msecs as it is only used in this delay.
Signed-off-by: Nishanth Aravamudan <[email protected]>
--- 2.6.10-v/drivers/sbus/char/envctrl.c 2004-12-24 13:34:01.000000000 -0800
+++ 2.6.10/drivers/sbus/char/envctrl.c 2005-01-05 14:23:05.000000000 -0800
@@ -1007,7 +1007,7 @@ static int kenvctrld(void *__unused)
return -ENODEV;
}
- poll_interval = 5 * HZ; /* TODO env_mon_interval */
+ poll_interval = 5000; /* TODO env_mon_interval */
daemonize("kenvctrld");
allow_signal(SIGKILL);
@@ -1016,10 +1016,7 @@ static int kenvctrld(void *__unused)
printk(KERN_INFO "envctrl: %s starting...\n", current->comm);
for (;;) {
- current->state = TASK_INTERRUPTIBLE;
- schedule_timeout(poll_interval);
-
- if(signal_pending(current))
+ if(msleep_interruptible(poll_interval))
break;
for (whichcpu = 0; whichcpu < ENVCTRL_MAX_CPU; ++whichcpu) {
Sorry, slightly inaccurate description...
On Mon, Jan 10, 2005 at 05:47:03PM +0100, Domen Puncer wrote:
> Patchset of 171 patches is at http://coderock.org/kj/2.6.10-bk13-kj/
>
> Quick patch summary: about 30 new, 30 merged, 30 dropped.
> Seems like most external trees are merged in -linus, so i'll start
> (re)sending old patches.
<snip>
> msleep_interruptible-drivers_block_pt.patch
Please consider replacing with the following patch:
Description: Use msleep()/ssleep() instead of pt_sleep() to guarantee
the task delays as expected. TASK_INTERRUPTIBLE is used in the original code,
however there is no check on the return values / for signals, thus I believe
TASK_UNINTERRUPTIBLE (and hence msleep()) is more appropriate. Remove definition
of pt_sleep(). Change the units of the pause variable in pt_poll_dsc() to msecs,
thus allowing the use of msleep(). Appropriately modify the three callers of
pt_poll_dsc().
Signed-off-by: Nishanth Aravamudan <[email protected]>
--- 2.6.10-v/drivers/block/paride/pt.c 2004-12-24 13:34:27.000000000 -0800
+++ 2.6.10/drivers/block/paride/pt.c 2005-01-10 12:23:43.000000000 -0800
@@ -401,12 +401,6 @@ static int pt_atapi(struct pt_unit *tape
return r;
}
-static void pt_sleep(int cs)
-{
- current->state = TASK_INTERRUPTIBLE;
- schedule_timeout(cs);
-}
-
static int pt_poll_dsc(struct pt_unit *tape, int pause, int tmo, char *msg)
{
struct pi_adapter *pi = tape->pi;
@@ -416,7 +410,7 @@ static int pt_poll_dsc(struct pt_unit *t
e = 0;
s = 0;
while (k < tmo) {
- pt_sleep(pause);
+ msleep(pause);
k++;
pi_connect(pi);
write_reg(pi, 6, DRIVE(tape));
@@ -445,7 +439,7 @@ static void pt_media_access_cmd(struct p
return;
}
pi_disconnect(tape->pi);
- pt_poll_dsc(tape, HZ, tmo, fun);
+ pt_poll_dsc(tape, 1000, tmo, fun);
}
static void pt_rewind(struct pt_unit *tape)
@@ -474,11 +468,11 @@ static int pt_reset(struct pt_unit *tape
write_reg(pi, 6, DRIVE(tape));
write_reg(pi, 7, 8);
- pt_sleep(20 * HZ / 1000);
+ msleep(20);
k = 0;
while ((k++ < PT_RESET_TMO) && (status_reg(pi) & STAT_BUSY))
- pt_sleep(HZ / 10);
+ msleep(100);
flg = 1;
for (i = 0; i < 5; i++)
@@ -512,7 +506,7 @@ static int pt_ready_wait(struct pt_unit
if (!(((p & 0xffff) == 0x0402) || ((p & 0xff) == 6)))
return p;
k++;
- pt_sleep(HZ);
+ ssleep(1);
}
return 0x000020; /* timeout */
}
@@ -785,7 +779,7 @@ static ssize_t pt_read(struct file *filp
while (count > 0) {
- if (!pt_poll_dsc(tape, HZ / 100, PT_TMO, "read"))
+ if (!pt_poll_dsc(tape, 10, PT_TMO, "read"))
return -EIO;
n = count;
@@ -886,7 +880,7 @@ static ssize_t pt_write(struct file *fil
while (count > 0) {
- if (!pt_poll_dsc(tape, HZ / 100, PT_TMO, "write"))
+ if (!pt_poll_dsc(tape, 10, PT_TMO, "write"))
return -EIO;
n = count;
Sorry, slightly inaccurate description...
On Mon, Jan 10, 2005 at 05:47:03PM +0100, Domen Puncer wrote:
> Patchset of 171 patches is at http://coderock.org/kj/2.6.10-bk13-kj/
>
> Quick patch summary: about 30 new, 30 merged, 30 dropped.
> Seems like most external trees are merged in -linus, so i'll start
> (re)sending old patches.
<snip>
> msleep_interruptible-drivers_block_pg.patch
Please consider replacing with the following patch:
Description: Use msleep()/ssleep() instead of pg_sleep() to guarantee
the task delays as expected. TASK_INTERRUPTIBLE is used in the original code,
however there is no check on the return values / for signals, thus I believe
TASK_UNINTERRUPTIBLE (and hence msleep()) is more appropriate. Change pg_sleep()
to use TASK_UNINTERRUPTIBLE as well.
Signed-off-by: Nishanth Aravamudan <[email protected]>
--- 2.6.10-v/drivers/block/paride/pg.c 2004-12-24 13:35:25.000000000 -0800
+++ 2.6.10/drivers/block/paride/pg.c 2005-01-10 12:21:34.000000000 -0800
@@ -295,7 +295,7 @@ static inline u8 DRIVE(struct pg *dev)
static void pg_sleep(int cs)
{
- current->state = TASK_INTERRUPTIBLE;
+ set_current_state(TASK_UNINTERRUPTIBLE);
schedule_timeout(cs);
}
@@ -409,7 +409,7 @@ static int pg_reset(struct pg *dev)
write_reg(dev, 6, DRIVE(dev));
write_reg(dev, 7, 8);
- pg_sleep(20 * HZ / 1000);
+ msleep(20);
k = 0;
while ((k++ < PG_RESET_TMO) && (status_reg(dev) & STAT_BUSY))
Sorry, forgot signed-off-by line....
On Mon, Jan 10, 2005 at 05:47:03PM +0100, Domen Puncer wrote:
> Patchset of 171 patches is at http://coderock.org/kj/2.6.10-bk13-kj/
>
> Quick patch summary: about 30 new, 30 merged, 30 dropped.
> Seems like most external trees are merged in -linus, so i'll start
> (re)sending old patches.
<snip>
> all patches:
> ------------
<snip>
> msleep-drivers_scsi_osst.patch
Consider replacing with the following patch, as signals are not dealt with in
the existing code:
Description: Use msleep() instead of schedule_timeout() to guarantee the task
delays as expected. Although TASK_INTERRUPTIBLE is used in the current code,
there is no code dealing with an early return / signals_pending().
Signed-off-by: Nishanth Aravamudan <[email protected]>
--- 2.6.10-v/drivers/scsi/osst.c 2004-12-24 13:34:45.000000000 -0800
+++ 2.6.10/drivers/scsi/osst.c 2005-01-05 14:23:05.000000000 -0800
@@ -1488,8 +1488,7 @@ static int osst_reposition_and_retry(OS_
osst_set_frame_position(STp, aSRpnt, frame + skip, 1);
flag = 0;
attempts--;
- set_current_state(TASK_INTERRUPTIBLE);
- schedule_timeout(HZ / 10);
+ msleep(100);
}
if (osst_get_frame_position(STp, aSRpnt) < 0) { /* additional write error */
#if DEBUG
@@ -1550,7 +1549,7 @@ static int osst_reposition_and_retry(OS_
debugging = 0;
}
#endif
- schedule_timeout(HZ / 10);
+ msleep(100);
}
printk(KERN_ERR "%s:E: Failed to find valid tape media\n", name);
#if DEBUG
On Mon, Jan 10, 2005 at 05:47:03PM +0100, Domen Puncer wrote:
> Patchset of 171 patches is at http://coderock.org/kj/2.6.10-bk13-kj/
>
> Quick patch summary: about 30 new, 30 merged, 30 dropped.
> Seems like most external trees are merged in -linus, so i'll start
> (re)sending old patches.
<snip>
> all patches:
> ------------
<snip>
> msleep-drivers_scsi_osst.patch
Consider replacing with the following patch, as signals are not dealt with in
the existing code:
Description: Use msleep() instead of schedule_timeout() to guarantee the task
delays as expected. Although TASK_INTERRUPTIBLE is used in the current code,
there is no code dealing with an early return / signals_pending().
--- 2.6.10-v/drivers/scsi/osst.c 2004-12-24 13:34:45.000000000 -0800
+++ 2.6.10/drivers/scsi/osst.c 2005-01-05 14:23:05.000000000 -0800
@@ -1488,8 +1488,7 @@ static int osst_reposition_and_retry(OS_
osst_set_frame_position(STp, aSRpnt, frame + skip, 1);
flag = 0;
attempts--;
- set_current_state(TASK_INTERRUPTIBLE);
- schedule_timeout(HZ / 10);
+ msleep(100);
}
if (osst_get_frame_position(STp, aSRpnt) < 0) { /* additional write error */
#if DEBUG
@@ -1550,7 +1549,7 @@ static int osst_reposition_and_retry(OS_
debugging = 0;
}
#endif
- schedule_timeout(HZ / 10);
+ msleep(100);
}
printk(KERN_ERR "%s:E: Failed to find valid tape media\n", name);
#if DEBUG
On Mon, Jan 10, 2005 at 05:47:03PM +0100, Domen Puncer wrote:
> Patchset of 171 patches is at http://coderock.org/kj/2.6.10-bk13-kj/
>
> Quick patch summary: about 30 new, 30 merged, 30 dropped.
> Seems like most external trees are merged in -linus, so i'll start
> (re)sending old patches.
<snip>
> all patches:
> ------------
<snip>
> msleep-drivers_scsi_ppa.patch
Please drop this patch, as it incorrectly uses msleep() around waitqueues.
> msleep-drivers_scsi_qla1280.patch
Please conside replacing with the following patch:
Description: Use ssleep() instead of schedule_timeout to guarantee the task
delays as expected.
Signed-off-by: Nishanth Aravamudan <[email protected]>
--- 2.6.10-v/drivers/scsi/qla1280.c 2004-12-24 13:35:40.000000000 -0800
+++ 2.6.10/drivers/scsi/qla1280.c 2005-01-05 14:23:05.000000000 -0800
@@ -2939,7 +2939,7 @@ qla1280_bus_reset(struct scsi_qla_host *
ha->bus_settings[bus].failed_reset_count++;
} else {
spin_unlock_irq(HOST_LOCK);
- schedule_timeout(reset_delay * HZ);
+ ssleep(reset_delay);
spin_lock_irq(HOST_LOCK);
ha->bus_settings[bus].scsi_bus_dead = 0;
Nishanth Aravamudan wrote:
> @@ -475,7 +467,7 @@ sb1000_reset(const int ioaddr[], const c
> udelay(1000);
> outb(0x0, port);
> inb(port);
> - nicedelay(60000);
> + ssleep(1);
> outb(0x4, port);
> inb(port);
> udelay(1000);
> @@ -537,7 +529,7 @@ sb1000_activate(const int ioaddr[], cons
> const unsigned char Command0[6] = {0x80, 0x11, 0x00, 0x00, 0x00, 0x00};
> const unsigned char Command1[6] = {0x80, 0x16, 0x00, 0x00, 0x00, 0x00};
>
> - nicedelay(50000);
> + ssleep(1);
> if ((status = card_send_command(ioaddr, name, Command0, st)))
> return status;
> if ((status = card_send_command(ioaddr, name, Command1, st)))
> @@ -944,7 +936,7 @@ sb1000_open(struct net_device *dev)
> /* initialize sb1000 */
> if ((status = sb1000_reset(ioaddr, name)))
> return status;
> - nicedelay(200000);
> + ssleep(1);
> if ((status = sb1000_check_CRC(ioaddr, name)))
> return status;
Your conversion of nicedelay() -> ssleep() values is imprecise.
The author clearly intended the values to be different, right?
Jeff
On Mon, 10 Jan 2005 22:56:31 -0500, Jeff Garzik <[email protected]> wrote:
> Nishanth Aravamudan wrote:
> > @@ -475,7 +467,7 @@ sb1000_reset(const int ioaddr[], const c
> > udelay(1000);
> > outb(0x0, port);
> > inb(port);
> > - nicedelay(60000);
> > + ssleep(1);
> > outb(0x4, port);
> > inb(port);
> > udelay(1000);
> > @@ -537,7 +529,7 @@ sb1000_activate(const int ioaddr[], cons
> > const unsigned char Command0[6] = {0x80, 0x11, 0x00, 0x00, 0x00, 0x00};
> > const unsigned char Command1[6] = {0x80, 0x16, 0x00, 0x00, 0x00, 0x00};
> >
> > - nicedelay(50000);
> > + ssleep(1);
> > if ((status = card_send_command(ioaddr, name, Command0, st)))
> > return status;
> > if ((status = card_send_command(ioaddr, name, Command1, st)))
> > @@ -944,7 +936,7 @@ sb1000_open(struct net_device *dev)
> > /* initialize sb1000 */
> > if ((status = sb1000_reset(ioaddr, name)))
> > return status;
> > - nicedelay(200000);
> > + ssleep(1);
> > if ((status = sb1000_check_CRC(ioaddr, name)))
> > return status;
>
>
> Your conversion of nicedelay() -> ssleep() values is imprecise.
True, but this is what I attempted to allude to in the description of the patch:
> > Remove the prototype and
> > definition of nicedelay(). This is a very weird function, because it is
> > called to sleep in terms of usecs, but always sleeps for 1 second,
> > completely ignoring the parameter. I have gone ahead and followed suit,
> > just sleeping for a second in all cases, but maybe someone with the
> > hardware could tell me if perhaps the paramter *should* matter.
> The author clearly intended the values to be different, right?
Since I'm not the author, I'm not certain whether you are right or
not. I was honestly very confused by nicedelay(). It is called with
various 600000, 500000, 200000 usecs, but the function currently
always requests a 1000000 usec delay (a full second of interruptible
sleep). It just doesn't make any sense... I have sent messages
regarding this function several times (and patches have existed for a
while), but no one has had any comment. I appreciate your input
greatly. What do you think?
Thanks,
Nish