Skip to contentSkip to conversation

Linux 2.4.21-pre6

PATCH In review Marcelo Tosatti 23 participants 26 messages Mar 26, 2003 – Mar 31, 2003

Subsystems (5)
Networking VFS netfilter NFS server +1 more subsystems
lore
Share & tools
lore
#0 lore raw

Here goes -pre6.

We are approaching -rc stage. I plan to release -pre7 shortly which should fixup the remaining IDE problems (thanks Alan!) and -rc1 later on.

Summary of changes from v2.4.21-pre5 to v2.4.21-pre6
============================================

<[email protected]>:
o io_edgeport.c diff to fix endianess bugs

<[email protected]>:
o [SPARC64]: Fix ocndition code handling in do_rt_sigreturn

<[email protected]>:
o add ndelay() for ppc64

<[email protected]>:
o JFS: Code cleanup suggested by static analysis tool

<[email protected]>:
o [ATM]: Add MAINTAINERS entry

<[email protected]>:
o [ATM]: use sock timestamp
o [ATM]: Use skb_pull instead of direct skb mangling
o [ATM]: Get minimum frame size right in lec.c
o [ATM]: Let upper layer k now lec supports multicast
o [ATM SUNI]: suni_init should not be __init and remove mod inc/dec
o [ATM FORE200E]: Fix build

<[email protected]>:
o usb-midi.h: fixes for SC-8820/50
o usb-midi.h: fixes for SC-8820/50

<[email protected]>:
o Update SCSI whitelist in scsi_scan.c

<[email protected]>:
o PPC32: Make the bootloader start at 0x000c for SMP
o PPC32: Make it easier to hook into the bootloader code
o PPC32: Allow the bootloader to pass in a board descripter struct

<[email protected]>:
o [SCHED GRED]: Another bug found by Stanford Checker

<[email protected]>:
o [NETFILTER]: Fix icmp-type all problem in iptables

<[email protected]>:
o USB scanner.h, scanner.c: New vendor/product ids
o USB: New vendor/product ids for scanner driver

<[email protected]>:
o [SPARC64]: Fix typo in sparc64_get_context (G7 register is saved wrongly)

<[email protected]>:
o USB: add KB Gear USB Tablet Driver

<[email protected]>:
o Re: Keyspan USB/Serial Drivers for 2.4.20/2.4.21-pre4

<[email protected]>:
o [NETFILTER]: fix NAT ICMP reply translation of inner packet
o [NETFILTER]: Fix conntrack bug introduced by list_del change
o [NETFILTER]: Fix typo in ftp conntrack helper
o [NETFILTER]: Add new ip6tables matches

<[email protected]>:
o fix eepro100 SMP deadlock (uninitialized spinlock)

<[email protected]>:
o [IPV4/IPV6]: Fix to avoid overriding TCP/UDP with a new protocol of same type

<[email protected]>:
o Fix race on rpc code

Adam Radford <[email protected]>:
o 3ware driver update for 2.4.21-pre6

Adrian Bunk <[email protected]>:
o USB: fix Auerswald compile

Alan Cox <[email protected]>:
o New PCI identifiers for ALi 156x ethernet
o fix a ; in cris eeprom
o correct handling of VIA PCI and of IDE legacy irq
o add another transparent bridghe
o export ndelay for modular ide stuff
o Enable XMM on more athlons
o fix ndelay argument name
o more usercopy documentation
o fix wacked formatting in x86-64 code
o enable newly added docs
o ide doc update
o update hp framebuffer docs
o update ipmi doc
o Add missing EXPORT_SYMBOL for acpi & ipmi
o epca sign fix
o add genrtc driver used by multiple ports
o ipmp updates
o build genrtc if asked for
o sign fix in mwave
o & v && fix for i2c
o nforce is now in AMD so delete the option
o new AMD/Nvidia driver
o remove dead Nvidia driver
o bogo semicolon fix in joydev
o fix hysdn brackets
o fix some radio typos/oddments
o more radio oddments
o cpia update
o fix w9966 tuner bug
o mptfusion sign handling
o missing Makefile slot
o incorrect bracketing
o e100 updates
o fix ethernet pad in example driver
o fix non x86 8169 build
o another rogue semicolon
o bracketing fix
o ips docs update
o cpqfc fix for non x86
o dpt_i2o sign fix
o fix ide-scsi hang on SMP boxes
o ; fixes
o ips update
o wrong bracketing
o XpressAudio enabler for Cyrix 5520
o maestro bracketing bug
o values cannot be init
o fix large I/O to nec audio
o bracketing fix in sscape
o ali5451 is 31bit audio
o via8233/8235 audio update
o & v && in acm usb
o usb hang fix
o atafb bug in #if 0 code
o fix logic error in aty128fb
o typo fix in video headers
o logic error in radeonfb
o fix sisfb build on non x86
o add intelfb driver
o fix incorrect bracketing in JFFS
o fix nfs port option on bigendian
o fix seq_file problems
o missing defines for alpha
o faster x86 byteorder code
o make __ndelay() argument name sane
o generic rtc support headers for parisc
o Fix typo in REPORTING-BUGS

Alan Cox <[email protected]>:
o Fix kmod/ptrace vulnerability

Alan Stern <[email protected]>:
o USB: Patch for auto-sense cmd_len

Andi Kleen <[email protected]>:
o [NET]: Make skbuff.h -W clean, skb_headlen should return unsigned quantity
o x86-64 update

Ben Collins <[email protected]>:
o [IEEE1394] Sync with repo

Benjamin LaHaise <[email protected]>:
o [NET]: Make sure nr_frags is accurate on paged SKB allocation failure

Christoph Hellwig <[email protected]>:
o [NET]: Remove __NO_VERSION__ from networking code
o backport sys_sendfile64

Christoph Hellwig <[email protected]>:
o [SPARC]: Add xattr syscalls

Dave Jones <[email protected]>:
o Enable prefetch on P4
o add missing intel cache descriptor

Dave Kleikamp <[email protected]>:
o JFS: Fix hang while flushing outstanding transactions under heavy load
o JFS: Avoid deadlock when all tblocks are allocated

David Brownell <[email protected]>:
o USB: rename drivers/usb/hcd --> host
o USB: call hcd->stop() in task context
o ehci, sync with 2.5 latest

David S. Miller <[email protected]>:
o [SPARC64]: Add TCSBRKP ioctl translation, thanks Anton
o [TCP]: Do not bump backoff too high during 0-window probes
o [NET]: Fix length in skb_padlen
o [RANDOM]: Backport 2.5.x ipv4/ipv6 sequence number generation SMP fixes by [email protected]
o [SPARC64]: Implement STICK synchronization using ia64 port algorithms
o [NET]: Export skb_pad to modules
o [SPARC64]: Update defconfig
o [NETLINK]: Remove buggy and useless rcv queue wakeup tests
o [IPV6]: Cure typo in ipv6_addr_prefix
o [IPV{4,6}]: Make icmp_socket per-cpu and simplify locking
o [NETFILTER]: Fix typo in ipv6 makefile changes
o [NET]: Fix mismerge, no need to export skb_pad twice
o [SPARC64]: Make sure we are in irq_enter atomic section during update_process_times
o [SPARC64]: Kill SPARC64_USE_STICK and use real timer drivers
o [SPARC64]: Fix timer quotient calcs
o [SPARC64]: Do not mark timer_ticks_per_usec_quotient static
o [SPARC64]: Make gettimeofday assembly match tick quotient fixes
o [SPARC64]: Add Hummingbird STICK support
o [SPARC64]: Make TICK comparisons wrap-around safe by using jiffies macros
o [SPARC64]: Sanitize all TICK privileged bit handling in tick drivers
o [SPARC64]: Clear tick_cmpr ints properly in bootup assembly
o [SPARC64]: Kill bogus kernel_thread decl

Ganesh Varadarajan <[email protected]>:
o USB ipaq.c: add ids for fujitsu loox

Geert Uytterhoeven <[email protected]>:
o Amiga PCMCIA Ethernet clean up
o M68k ISA memory for Amiga PCMCIA
o M68k Apollo I/O updates
o M68k ifpsp060 updates
o M68k incorrect prototype
o Amiga RTC updates
o Amifb wrong interrupt
o Atari NCR5380 SCSI: bitops operate on long
o Convert m68k cache macros to inline functions
o Mac/m68k VIA updates
o Allow to disable macfb
o M68k net warnings
o M68k heartbeat update
o M68k config syntax
o Sun-3 contact update
o M68k SCSI warnings
o M68k PAGE_SIZE warnings
o M68k: optimize stacked irq check
o Sun-3 memory zones
o Sun-3 ioremap()
o M68k page_to_phys
o Sun-3 first page
o M68k iomap cleanup
o Sun-3 SBUS updates
o Sun-3 vectored interrupts
o M68k timekeeping update
o Amiga Zorro SCSI: use z_ioremap()
o Sun-3/3x updates
o M68k core spelling fixes
o Amiflop out-of-bounds array access
o Sun-3 VME support
o M68k warnings

Go Taniguchi <[email protected]>:
o USB: Another pegasus ID
o USB: Another kaweth ID
o USB: Another sony memorystick
o USB: Multiple interfaces with usb hotplug
o USB: Another hid-core worksround

Greg Kroah-Hartman <[email protected]>:
o USB: added support for radio shack device to pl2303 driver
o USB: add firmware files for two new keyspan devices
o USB: merge fixup for the scanner driver
o USB: move the UHCI drivers into drivers/usb/host
o USB: move the OHCI driver into drivers/usb/host

Hideaki Yoshifuji <[email protected]>:
o [IPV6]: Export ip6_route_me_harder for netfilter and add ipv6_addr_prefix

James Morris <[email protected]>:
o [NET]: Clean up sk_filter and make sure it is called when skb->dev is still valid
o [IPV4]: Fix skb leak in inet_rtm_getroute
o [IPV6]: Fix skb leak in inet6_rtm_getroute
o [NET]: Add myself as co-maintainer
o [NETLINK]: Un-duplicate rcv wakeup logic

Jay Vosburgh <[email protected]>:
o [BONDING]: Add MAINTAINERS entry

Jeff Garzik <[email protected]>:
o Via Nehemiah (C3-2) CPU support

John Levon <[email protected]>:
o [SUNHME]: Fix bit testing typo

Leigh Brown <[email protected]>:
o Updated S3Triofb driver for PPC32

Lennert Buytenhek <[email protected]>:
o [BRIDGE]: handle out-of-ports corner case

Marcel Holtmann <[email protected]>:
o [SPARC64]: Translate AUTOFS_IOC_EXPIRE_MULTI ioctl

Marcelo Tosatti <[email protected]>:
o Changed EXTRAVERSION to -pre6

Mark A. Greer <[email protected]>:
o PPC32: Fix a problem with 'next' and 'step' type KGDB commands

Neil Brown <[email protected]>:
o md - 1 of 3 - Fix small bug in md.c
o md - 3 of 3 - Don't check a device size before bd_get in
o md - 2 of 3 - Convert /proc/mdstat to use seq_file
o drivers/block/umem.c - new card
o Fix compile errors/warnings in md

Oleg Drokin <[email protected]>:
o reiserfs: Make balloc[] tails[] and hash[] in super.c static. (Noticed by Arnd Bergmann <[email protected]>)
o reiserfs: gcc 3.3 compile fix from Hubert Mantel <[email protected]>
o reiserfs: Fix a warning about mismatching types while doing printk
o reiserfs: Stricter checks for transactions and fs itself during mount

Oleg Drokin <[email protected]>:
o Reiserfs journal overflow fix on large highly fragmented fs

Oliver Neukum <[email protected]>:
o USB: work around for a firmware bug of some scanners

Patrick McHardy <[email protected]>:
o [IPV{4,6}]: lru queue for ip_fragment evictor

Paul Mackerras <[email protected]>:
o PPC32: Implement kmap_nonblock, add extra argument to kmap_high call
o PPC32: Add missing break, without which get_user on 8-byte quantities would fail

Pete Zaitcev <[email protected]>:
o [SPARC]: Add missing newline to kernel OOPS printk
o [SPARC32/64]: Expand ioctl size field in backwards-compatible way
o [SPARC]: RTC driver needs to include linux/pci.h
o Fix initrd initialization

Petr Vandrovec <[email protected]>:
o Fix matroxfb build
o Support for matroxfb on HP Vectra

Rob Radez <[email protected]>:
o [SPARC]: kmap_nonblock changes

Rusty Russell <[email protected]>:
o [AF_UNIX] Cleanup forall_unix_sockets
o [X25]: Fix improper | precendence, pointed out by Joern Engel
o [ECONET]: Add comment to point out a bug spotted by Joern Engel

Theodore Ts'o <[email protected]>:
o Ext2/3: noatime ignored for newly created inodes

Tom Rini <[email protected]>:
o PPC32: Export m8xx_cpm_hostalloc on CONFIG_8xx
o PPC32: Replace 2 inline functions with their normal macro equivalents
o PPC32: Fix a problem on MPC8xx when CONFIG_USE_MDIO=n
o PPC32: Backport the code from 2.5 to make do_div handle 64bit
o PPC32: KGDB is more useful when -g is in the CFLAGS
o PPC32: Fix some warnings in the MPC8xx FPU emulation code
o PPC32: Fix some warnings on MPC8xx
o PPC32: Change some bootloaders to call load_kernel directly
o PPC32: Add USE_STANDARD_AS_RULE to boot/lib/Makefile
o PPC32: Fix some warnings on MPC8xx
o PPC32: Clarify some of the MPC8xx uart code

Trond Myklebust <[email protected]>:
o Fix misleading EIO on NFS client
o Fix unbalanced kunmap() in NFS symlink code

#1 lore raw

[BK] Bluetooth updates for 2.4.21-pre6

Hi Marcelo,

Could you pull a few Bluetooth updates from

        bk://linux-bt.bkbits.net/bt-2.4

This will update the following files:

 Documentation/Configure.help     |   13 
 drivers/bluetooth/Config.in      |    1 
 drivers/bluetooth/hci_usb.c      |  748 +++++++++++++++++++++++----------------
 drivers/bluetooth/hci_usb.h      |  105 ++++-
 include/net/bluetooth/hci.h      |   98 ++---
 include/net/bluetooth/hci_core.h |   24 -
 net/bluetooth/hci_conn.c         |    1 
 net/bluetooth/hci_core.c         |   84 ++--
 net/bluetooth/hci_sock.c         |  104 ++---
 net/bluetooth/syms.c             |    4 
 10 files changed, 712 insertions(+), 470 deletions(-)

through these ChangeSets:

<[email protected]> (03/03/24 1.1110)
[Bluetooth] Use atomic allocations in HCI USB functions called under spinlock.

<[email protected]> (03/03/21 1.1109)
[Bluetooth] Add help entry for CONFIG_BLUEZ_USB_SCO

This patch adds the missing help entry for CONFIG_BLUEZ_USB_SCO.

<[email protected]> (03/03/21 1.1108)
[Bluetooth] Use R1 for default value of pscan_rep_mode

Most devices seem to use R1 for pscan_rep_mode to save power consumption, so R1 is preferable for default value, if there is no entry in the inquiry cache. Using R1 will improve the average of connect time in many cases.

<[email protected]> (03/03/20 1.1107)
[Bluetooth] Add support for the Ultraport Module from IBM

This patch adds the specific vendor and product id's for the Bluetooth Ultraport Module from IBM. This is needed, because the device itself don't uses the USB Bluetooth class id.

<[email protected]> (03/03/19 1.1106)
[Bluetooth]
Do not submit more than one usb bulk rx request. It crashes uhci.o driver.

<[email protected]> (03/03/19 1.1105)
[Bluetooth]
Support for SCO (voice) over HCI USB

<[email protected]> (03/03/19 1.1053.2.2)
[Bluetooth]
Kill incoming SCO connection when SCO socket is closed.

<[email protected]> (03/03/05 1.953.2.3)
[Bluetooth]
Use very short disconnect timeout for SCO connections. They cannot be reused and therefor there is no need to keep them around.

--

Thanks
Max

#2 lore raw

Re: [BK] Bluetooth updates for 2.4.21-pre6

Quoted 3 lines · Max Krasnyansky

<[email protected]> (03/03/19 1.1106)
[Bluetooth]
Do not submit more than one usb bulk rx request. It crashes uhci.o driver.

I don't recall seeing an email about this.

uhci.o should handle this situation correctly.

JE

#3 lore raw

Re: [BK] Bluetooth updates for 2.4.21-pre6

Quoted 7 lines · Johannes Erdfelt
Quoted 3 lines · Max Krasnyansky

<[email protected]> (03/03/19 1.1106)
[Bluetooth]
Do not submit more than one usb bulk rx request. It crashes uhci.o driver.

I don't recall seeing an email about this.
uhci.o should handle this situation correctly.

Sorry. My bad. I meant usb-uhci.

usb-uhci does crash in unlink_qh() when one of the multiple bulk rx urbs is unlinked. I didn't have time to investigate and therefor did not submit bug report.

Max

#4 lore raw
In reply to Marcelo Tosatti
Quoted 2 lines · Marcelo Tosatti

We are approaching -rc stage. I plan to release -pre7 shortly which should fixup the remaining IDE problems (thanks Alan!) and -rc1 later on.

via-rhine is still at 1.16 -- broken for the most common Rhine model. I thought 1.17 was supposed to go into 2.4.21?

Roger

#5 lore raw
Quoted 8 lines · Roger Luethi
Quoted 2 lines · Marcelo Tosatti

We are approaching -rc stage. I plan to release -pre7 shortly which should fixup the remaining IDE problems (thanks Alan!) and -rc1 later on.

via-rhine is still at 1.16 -- broken for the most common Rhine model. I thought 1.17 was supposed to go into 2.4.21?

I need to revert pcnet32 to back to 2.4.19 level, and then my batch is ready for Marcelo -- which includes your via-rhine fixes.

Jeff

#6 lore raw
In reply to Marcelo Tosatti
Quoted 5 lines · Marcelo Tosatti

Here goes -pre6.

We are approaching -rc stage. I plan to release -pre7 shortly which should fixup the remaining IDE problems (thanks Alan!) and -rc1 later on.

*grrr* once again this is not tagged in BK. Could you _please_ ask Linus for his nice update release, tag and publish script?

#7 lore raw
Quoted 10 lines · Christoph Hellwig
Quoted 5 lines · Marcelo Tosatti

Here goes -pre6.

We are approaching -rc stage. I plan to release -pre7 shortly which should fixup the remaining IDE problems (thanks Alan!) and -rc1 later on.

*grrr* once again this is not tagged in BK. Could you _please_ ask Linus for his nice update release, tag and publish script?

at one stage it was tagged, just disappeared :)

Signature · 1 line
mdew <[email protected]>
#8 lore raw
In reply to Christoph Hellwig
Quoted 3 lines · Christoph Hellwig

*grrr* once again this is not tagged in BK. Could you _please_ ask Linus for his nice update release, tag and publish script?

Hey, I'm a retard. I don't actually do the tagging with a script, since I usually want to create the tree privately first, and run a final compile cycle on it. So I tag it by hand, and then I have a script that outputs a list of commands that I just cut-and-paste directly. It's ugly, but it works (and it means that running the script doesn't _do_ anything: I have to actually take one last look at what I'm going to do before I start it all up).

The "release script" is this piece of crap:

	#!/bin/sh
	echo "bk export -w ../linux-$2"
	echo "bk export -h -tpatch -rv$1.. > ../patch-$2"
	echo "export PATH=\$PATH:/home/torvalds/BK/tools"
	echo "changelog v$1 v$2 > ../ChangeLog-$2"
	echo "shortlog --width=72 < ../ChangeLog-$2 > ../ChangeLog"
	echo "cd .."
	echo "tar cf linux-$2.tar linux-$2"
	echo "gzip -9 patch-$2"
	echo "gzip -9 linux-$2.tar"
	echo "touch LATEST-IS-$2"

and that's it. I'd just do "../release-script 2.5.66 2.5.67" from my kernel directory when I want to generate a 2.5.67 release.

Ok, I'm embarrassed to even admit to doing this. Don't rub it in. It's useful to me because sometimes I don't do a full release - I just want to pre-generate a change-log of the diff, for example, to judge whether I forgot about something.

Linus "retard" Torvalds

#9 lore raw
In reply to Marcelo Tosatti

MT> Here goes -pre6.
MT>
MT> We are approaching -rc stage. I plan to release -pre7 shortly which should MT> fixup the remaining IDE problems (thanks Alan!) and -rc1 later on.

HDLC started generating warnings in some -pre and they are still there:

/oma/compile/linux-2.4/include/linux/modules/hdlc.ver:3: warning: `__ver_register_hdlc_device' redefined /oma/compile/linux-2.4/include/linux/modules/hdlc_generic.ver:3: warning: this is the location of the previous definition /oma/compile/linux-2.4/include/linux/modules/hdlc.ver:5: warning: `__ver_unregister_hdlc_device' redefined /oma/compile/linux-2.4/include/linux/modules/hdlc_generic.ver:5: warning: this is the location of the previous definition

Signature · 1 line
Meelis Roos ([email protected])
#10 lore raw
Quoted 11 lines · Meelis Roos

MT> Here goes -pre6.
MT>
MT> We are approaching -rc stage. I plan to release -pre7 shortly which should MT> fixup the remaining IDE problems (thanks Alan!) and -rc1 later on.

HDLC started generating warnings in some -pre and they are still there:

/oma/compile/linux-2.4/include/linux/modules/hdlc.ver:3: warning: `__ver_register_hdlc_device' redefined /oma/compile/linux-2.4/include/linux/modules/hdlc_generic.ver:3: warning: this is the location of the previous definition /oma/compile/linux-2.4/include/linux/modules/hdlc.ver:5: warning: `__ver_unregister_hdlc_device' redefined /oma/compile/linux-2.4/include/linux/modules/hdlc_generic.ver:5: warning: this is the location of the previous definition

Try copying .config away, make mrproper, then the normal routine. That should fix things for you.

Regards,

Bas Vermeulen

Signature · 5 lines
"God, root, what is difference?" 
	-- Pitr, User Friendly

"God is more forgiving." 
	-- Dave Aronson
#11 lore raw
Quoted 11 lines · Bas Vermeulen
Quoted 7 lines · Meelis Roos

HDLC started generating warnings in some -pre and they are still there:

/oma/compile/linux-2.4/include/linux/modules/hdlc.ver:3: warning: `__ver_register_hdlc_device' redefined /oma/compile/linux-2.4/include/linux/modules/hdlc_generic.ver:3: warning: this is the location of the previous definition /oma/compile/linux-2.4/include/linux/modules/hdlc.ver:5: warning: `__ver_unregister_hdlc_device' redefined /oma/compile/linux-2.4/include/linux/modules/hdlc_generic.ver:5: warning: this is the location of the previous definition

Try copying .config away, make mrproper, then the normal routine. That should fix things for you.

Well, if more that make dep is needed, doesn't this point to a bug in Config.in and/or Makefile? ;)

I agree, those have less impact, but they should get fixed as well.

Jörn

Signature · 3 lines
Courage is not the absence of fear, but rather the judgement that
something else is more important than fear.
-- Ambrose Redmoon
#12 lore raw
In reply to Marcelo Tosatti
Quoted 4 lines · Marcelo Tosatti

Here goes -pre6.

We are approaching -rc stage. I plan to release -pre7 shortly which should fixup the remaining IDE problems (thanks Alan!) and -rc1 later on.

Is IDE in 2.4.x and 2.5.x now more or less in sync?

I have some m68k (at least for Amiga builtin) IDE updates for 2.5.x, but am still waiting for the other m68k platforms to send them in. But if 2.4.21 is approaching very soon, I better hurry up backporting them to 2.4.x...

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds

#13 lore raw
Quoted 7 lines · Geert Uytterhoeven
Quoted 4 lines · Marcelo Tosatti

Here goes -pre6.

We are approaching -rc stage. I plan to release -pre7 shortly which should fixup the remaining IDE problems (thanks Alan!) and -rc1 later on.

Is IDE in 2.4.x and 2.5.x now more or less in sync?

At the driver level yes, some of the upper core stuff is very different because 2.5 is rather different.

Alan

#14 lore raw
In reply to Geert Uytterhoeven
Quoted 2 lines

Is IDE in 2.4.x and 2.5.x now more or less in sync?

Hm, can we ever expect to get cd burning in 2.4.x on ide without locking up the other device on the channel?

#15 lore raw
Quoted 5 lines · Jan Knutar
Quoted 2 lines

Is IDE in 2.4.x and 2.5.x now more or less in sync?

Hm, can we ever expect to get cd burning in 2.4.x on ide without locking up the other device on the channel?

During execution of a single command, channel _will_ be locked. This is not solvable in the driver, it's how ide works. During fixation, for instance, the channel will be locked...

Now, if you are locked during the _entire_ burn, that points to an ide scheduling.

Signature · 1 line
Jens Axboe
#16 lore raw
In reply to Jan Knutar

Hi Jan :)

Jan Knutar dixit:

Quoted 3 lines
Quoted 1 line

Is IDE in 2.4.x and 2.5.x now more or less in sync?

Hm, can we ever expect to get cd burning in 2.4.x on ide without locking up the other device on the channel?

I have a VIA motherboard (686b) and I can read a CD while I burn
another in the cdwriter, both in the same IDE channel :?? Certainly the burning speeds goes down to 10x or less instead of the usual 12x.

My kernel is 2.4.18, BTW.

Raúl Núñez de Arenas Coronado

Signature · 2 lines
Linux Registered User 88736
http://www.pleyades.net & http://www.pleyades.net/~raulnac
#17 lore raw
In reply to Marcelo Tosatti
Quoted 4 lines · On Wed, 26 Mar 2003 21:08:42 -0300 (BRT) Marcelo Tosatti…

Here goes -pre6.
[...]
o fix ide-scsi hang on SMP boxes

Sorry, no bonus.
Whatever this patch was, it did not work on my box (SMP, ide-scsi). The only patch that I know of solving complete freeze is attached, diffed to -pre6.

Regards,
Stephan

drivers/scsi/ide-scsi.c 2003-03-27 15:46:49.000000000 +0100 renamed from drivers/scsi/ide-scsi.c 2003-03-27 15:45:55.000000000 +0100 +3 -3
@@ -321,7 +321,7 @@
 {
        idescsi_scsi_t *scsi = drive->driver_data;
        struct request *rq = HWGROUP(drive)->rq;
-       idescsi_pc_t *pc = (idescsi_pc_t *) rq->buffer;
+       idescsi_pc_t *pc = rq->special;
        int log = test_bit(IDESCSI_LOG_CMD, &scsi->log);
        u8 *scsi_buf;
        unsigned long flags;
@@ -587,7 +587,7 @@
 #endif /* IDESCSI_DEBUG_LOG */
 
        if (rq->cmd == IDESCSI_PC_RQ) {
-               return idescsi_issue_pc(drive, (idescsi_pc_t *) rq->buffer);
+               return idescsi_issue_pc (drive, rq->special);
        }
        printk(KERN_ERR "ide-scsi: %s: unsupported command in request "
                "queue (%x)\n", drive->name, rq->cmd);
@@ -1083,7 +1083,7 @@
        }
 
        ide_init_drive_cmd(rq);
-       rq->buffer = (char *) pc;
+       rq->special = pc;
        rq->bh = idescsi_dma_bh(drive, pc);
        rq->cmd = IDESCSI_PC_RQ;
        spin_unlock_irq(&io_request_lock);
#18 lore raw

PATCH 1/1 d_alloc_anon for 2.4.21-pre6

In reply to Marcelo Tosatti

[$BIGNUM repost since August 2002, still zero feedback]

The rewritten 2.5 nfsd export handling introduce a funcion, d_alloc_anon, to get an dentry for a given inode, either taking a well-connected one or allocating a new one.

In 2.4 we have the functionality that it does in 2.4 duplicated over nfsd and all filesystems having their own fh_to_dentry method, and XFS needs even more instances of this for other handle to dentry conversations.

This patch adds d_alloc_anon with exactly the same API as in 2.5, but the 2.4ish functionality instead to the kernel and switches nfsd, fat and reiserfs over to it.

fs/dcache.c +47 -0
@@ -659,6 +659,53 @@
 }
 
 /**
+ * d_alloc_anon - allocate an anonymous dentry
+ * @inode: inode to allocate the dentry for
+ *
+ * This is similar to d_alloc_root.  It is used by filesystems when
+ * creating a dentry for a given inode, often in the process of 
+ * mapping a filehandle to a dentry.  The returned dentry may be
+ * anonymous, or may have a full name (if the inode was already
+ * in the cache).  The file system may need to make further
+ * efforts to connect this dentry into the dcache properly.
+ *
+ * When called on a directory inode, we must ensure that
+ * the inode only ever has one dentry.  If a dentry is
+ * found, that is returned instead of allocating a new one.
+ *
+ * On successful return, the reference to the inode has been transferred
+ * to the dentry.  If %NULL is returned (indicating kmalloc failure),
+ * the reference on the inode has not been released.
+ */
+
+struct dentry * d_alloc_anon(struct inode *inode)
+{
+	struct dentry *dentry;
+	struct list_head *p;
+
+	/* Try to find a dentry.  If possible, get a well-connected one. */
+	spin_lock(&dcache_lock);
+	list_for_each(p, &inode->i_dentry) {
+		dentry = list_entry(p, struct dentry, d_alias);
+		if (!(dentry->d_flags & DCACHE_NFSD_DISCONNECTED))
+			goto found;
+	}
+	spin_unlock(&dcache_lock);
+
+	/* Didn't find dentry.  Create anonymous dcache entry. */
+	dentry = d_alloc_root(inode);
+	if (dentry)
+		dentry->d_flags |= DCACHE_NFSD_DISCONNECTED;
+	return dentry;
+
+found:
+	dget_locked(dentry);
+	spin_unlock(&dcache_lock);
+	iput(inode);
+	return dentry;
+}
+
+/**
  * d_alloc_root - allocate root dentry
  * @root_inode: inode to allocate the root for
  *

===== fs/fat/inode.c 1.13 vs edited =====

fs/fat/inode.c +3 -23
@@ -430,7 +430,6 @@
 				int len, int fhtype, int parent)
 {
 	struct inode *inode = NULL;
-	struct list_head *lp;
 	struct dentry *result;
 
 	if (fhtype != 3)
@@ -477,33 +476,14 @@
 	if (!inode)
 		return ERR_PTR(-ESTALE);
 
-	
-	/* now to find a dentry.
-	 * If possible, get a well-connected one
-	 *
-	 * Given the way that we found the inode, it *MUST* be
-	 * well-connected, but it is easiest to just copy the
-	 * code.
-	 */
-	spin_lock(&dcache_lock);
-	for (lp = inode->i_dentry.next; lp != &inode->i_dentry ; lp=lp->next) {
-		result = list_entry(lp,struct dentry, d_alias);
-		if (! (result->d_flags & DCACHE_NFSD_DISCONNECTED)) {
-			dget_locked(result);
-			result->d_vfs_flags |= DCACHE_REFERENCED;
-			spin_unlock(&dcache_lock);
-			iput(inode);
-			return result;
-		}
-	}
-	spin_unlock(&dcache_lock);
-	result = d_alloc_root(inode);
+
+	result = d_alloc_anon(inode);
 	if (result == NULL) {
 		iput(inode);
 		return ERR_PTR(-ENOMEM);
 	}
 	result->d_op = sb->s_root->d_op;
-	result->d_flags |= DCACHE_NFSD_DISCONNECTED;
+	result->d_vfs_flags |= DCACHE_REFERENCED;
 	return result;
 
 		

===== fs/nfsd/nfsfh.c 1.18 vs edited =====

fs/nfsd/nfsfh.c +4 -18
@@ -135,7 +135,6 @@
 	 * of 0 means "accept any"
 	 */
 	struct inode *inode;
-	struct list_head *lp;
 	struct dentry *result;
 	if (ino == 0)
 		return ERR_PTR(-ESTALE);
@@ -155,27 +154,14 @@
 		iput(inode);
 		return ERR_PTR(-ESTALE);
 	}
-	/* now to find a dentry.
-	 * If possible, get a well-connected one
-	 */
-	spin_lock(&dcache_lock);
-	for (lp = inode->i_dentry.next; lp != &inode->i_dentry ; lp=lp->next) {
-		result = list_entry(lp,struct dentry, d_alias);
-		if (! (result->d_flags & DCACHE_NFSD_DISCONNECTED)) {
-			dget_locked(result);
-			result->d_vfs_flags |= DCACHE_REFERENCED;
-			spin_unlock(&dcache_lock);
-			iput(inode);
-			return result;
-		}
-	}
-	spin_unlock(&dcache_lock);
-	result = d_alloc_root(inode);
+
+
+	result = d_alloc_anon(inode);
 	if (result == NULL) {
 		iput(inode);
 		return ERR_PTR(-ENOMEM);
 	}
-	result->d_flags |= DCACHE_NFSD_DISCONNECTED;
+	result->d_vfs_flags |= DCACHE_REFERENCED;
 	return result;
 }
 

===== fs/reiserfs/inode.c 1.42 vs edited =====

fs/reiserfs/inode.c +2 -18
@@ -1249,7 +1249,6 @@
 				     int len, int fhtype, int parent) {
     struct cpu_key key ;
     struct inode *inode = NULL ;
-    struct list_head *lp;
     struct dentry *result;
 
     /* fhtype happens to reflect the number of u32s encoded.
@@ -1301,27 +1300,12 @@
     if (!inode)
         return ERR_PTR(-ESTALE) ;
 
-    /* now to find a dentry.
-     * If possible, get a well-connected one
-     */
-    spin_lock(&dcache_lock);
-    for (lp = inode->i_dentry.next; lp != &inode->i_dentry ; lp=lp->next) {
-	    result = list_entry(lp,struct dentry, d_alias);
-	    if (! (result->d_flags & DCACHE_NFSD_DISCONNECTED)) {
-		    dget_locked(result);
-		    result->d_vfs_flags |= DCACHE_REFERENCED;
-		    spin_unlock(&dcache_lock);
-		    iput(inode);
-		    return result;
-	    }
-    }
-    spin_unlock(&dcache_lock);
-    result = d_alloc_root(inode);
+    result = d_alloc_anon(inode);
     if (result == NULL) {
 	    iput(inode);
 	    return ERR_PTR(-ENOMEM);
     }
-    result->d_flags |= DCACHE_NFSD_DISCONNECTED;
+    result->d_vfs_flags |= DCACHE_REFERENCED;
     return result;
 
 }

===== include/linux/dcache.h 1.12 vs edited =====

include/linux/dcache.h +1 -0
@@ -165,6 +165,7 @@
 
 /* allocate/de-allocate */
 extern struct dentry * d_alloc(struct dentry *, const struct qstr *);
+extern struct dentry * d_alloc_anon(struct inode *);
 extern void shrink_dcache_sb(struct super_block *);
 extern void shrink_dcache_parent(struct dentry *);
 extern int d_invalidate(struct dentry *);

===== kernel/ksyms.c 1.67 vs edited =====

kernel/ksyms.c +1 -0
@@ -164,6 +164,7 @@
 EXPORT_SYMBOL(d_move);
 EXPORT_SYMBOL(d_instantiate);
 EXPORT_SYMBOL(d_alloc);
+EXPORT_SYMBOL(d_alloc_anon);
 EXPORT_SYMBOL(d_lookup);
 EXPORT_SYMBOL(__d_path);
 EXPORT_SYMBOL(mark_buffer_dirty);
#19 lore raw

Re: [PATCH] d_alloc_anon for 2.4.21-pre6

Quoted 6 lines · Christoph Hellwig

[$BIGNUM repost since August 2002, still zero feedback]

The rewritten 2.5 nfsd export handling introduce a funcion, d_alloc_anon, to get an dentry for a given inode, either taking a well-connected one or allocating a new one.

Quoted 9 lines

In 2.4 we have the functionality that it does in 2.4 duplicated over nfsd and all filesystems having their own fh_to_dentry method, and XFS needs even more instances of this for other handle to dentry conversations.

This patch adds d_alloc_anon with exactly the same API as in 2.5, but the 2.4ish functionality instead to the kernel and switches nfsd, fat and reiserfs over to it.

The patch I had from time ago in -jam also included this switch to list_for_each:

fs/dcache.c +11 -13
diff -uNr -Xdontdiff -p linux-2.4.20-pre4/fs/dcache.c linux/fs/dcache.c
@@ -247,24 +247,22 @@ struct dentry * dget_locked(struct dentr
 
 struct dentry * d_find_alias(struct inode *inode)
 {
-	struct list_head *head, *next, *tmp;
-	struct dentry *alias;
+	struct dentry *dentry;
+	struct list_head *p;
 
 	spin_lock(&dcache_lock);
-	head = &inode->i_dentry;
-	next = inode->i_dentry.next;
-	while (next != head) {
-		tmp = next;
-		next = tmp->next;
-		alias = list_entry(tmp, struct dentry, d_alias);
-		if (!list_empty(&alias->d_hash)) {
-			__dget_locked(alias);
-			spin_unlock(&dcache_lock);
-			return alias;
-		}
+	list_for_each(p, &inode->i_dentry) {
+		dentry = list_entry(p, struct dentry, d_alias);
+		if (!list_empty(&dentry->d_hash))
+			goto found;
 	}
 	spin_unlock(&dcache_lock);
 	return NULL;
+
+found:
+	__dget_locked(dentry);
+	spin_unlock(&dcache_lock);
+	return dentry;
 }
 
 /*
Signature · 4 lines
J.A. Magallon <[email protected]>      \                 Software is like sex:
werewolf.able.es                         \           It's better when it's free
Mandrake Linux release 9.1 (Bamboo) for i586
Linux 2.4.21-pre5-jam1 (gcc 3.2.2 (Mandrake Linux 9.1 3.2.2-3mdk))
#20 lore raw

Re: [PATCH] d_alloc_anon for 2.4.21-pre6

Quoted 2 lines · J.A. Magallon

The patch I had from time ago in -jam also included this switch to list_for_each:

Yes, that's also a nice cleanup, but less important then d_alloc_anon.

#21 lore raw

PATCH 1/1 fix multiple definitions of ipv6_ext_hdr

In reply to Marcelo Tosatti
Quoted 8 lines · Marcelo Tosatti

...
Summary of changes from v2.4.21-pre5 to v2.4.21-pre6
============================================
...
<[email protected]>:
...
o [NETFILTER]: Add new ip6tables matches
...

#include <deja-vu.h>

<-- snip -->

...
ld -m elf_i386 -r -o netfilter.o ip6_tables.o ip6t_limit.o ip6t_mark.o
ip6t_length.o ip6t_mac.o ip6t_rt.o ip6t_hbh.o ip6t_dst.o ip6t_ipv6header.o
ip6t_frag.o ip6t_esp.o ip6t_ah.o ip6t_eui64.o ip6t_multiport.o ip6t_owner.o ip6table_filter.o ip6table_mangle.o ip6t_MARK.o ip6_queue.o ip6t_LOG.o ip6t_hbh.o(.text+0x0): In function `ipv6_ext_hdr':
: multiple definition of `ipv6_ext_hdr'
ip6t_rt.o(.text+0x0): first defined here
...
make[3]: *** [netfilter.o] Error 1
make[3]: Leaving directory `/home/bunk/linux/kernel-2.4/linux-2.4.21-pre6-full-nohotplug/net/ipv6/netfilter'

<-- snip -->

My fix for this issue that went into 2.5.66 is below (it applies and compiles against 2.4.21-pre6, too).

Please apply
Adrian

net/ipv6/netfilter/ip6t_ah.c renamed from net/ipv6/netfilter/ip6t_ah.c.old +1 -12
@@ -26,17 +26,6 @@
        __u32   spi;
 };
 
-int ipv6_ext_hdr(u8 nexthdr)
-{
-        return ( (nexthdr == NEXTHDR_HOP)       ||
-                 (nexthdr == NEXTHDR_ROUTING)   ||
-                 (nexthdr == NEXTHDR_FRAGMENT)  ||
-                 (nexthdr == NEXTHDR_AUTH)      ||
-                 (nexthdr == NEXTHDR_ESP)       ||
-                 (nexthdr == NEXTHDR_NONE)      ||
-                 (nexthdr == NEXTHDR_DEST) );
-}
-
 /* Returns 1 if the spi is matched by the range, 0 otherwise */
 static inline int
 spi_match(u_int32_t min, u_int32_t max, u_int32_t spi, int invert)
@@ -79,7 +68,7 @@
        len = skb->len - ptr;
        temp = 0;
 
-        while (ipv6_ext_hdr(nexthdr)) {
+        while (ip6t_ext_hdr(nexthdr)) {
                struct ipv6_opt_hdr *hdr;
 
               DEBUGP("ipv6_ah header iteration \n");
net/ipv6/netfilter/ip6t_dst.c renamed from net/ipv6/netfilter/ip6t_dst.c.old +1 -12
@@ -29,17 +29,6 @@
 #define DEBUGP(format, args...)
 #endif
 
-int ipv6_ext_hdr(u8 nexthdr)
-{
-        return ( (nexthdr == NEXTHDR_HOP)       ||
-                 (nexthdr == NEXTHDR_ROUTING)   ||
-                 (nexthdr == NEXTHDR_FRAGMENT)  ||
-                 (nexthdr == NEXTHDR_AUTH)      ||
-                 (nexthdr == NEXTHDR_ESP)       ||
-                 (nexthdr == NEXTHDR_NONE)      ||
-                 (nexthdr == NEXTHDR_DEST) );
-}
-
 /*
  * (Type & 0xC0) >> 6
  * 	0	-> ignorable
@@ -84,7 +73,7 @@
        len = skb->len - ptr;
        temp = 0;
 
-        while (ipv6_ext_hdr(nexthdr)) {
+        while (ip6t_ext_hdr(nexthdr)) {
                struct ipv6_opt_hdr *hdr;
 
               DEBUGP("ipv6_opts header iteration \n");
net/ipv6/netfilter/ip6t_esp.c renamed from net/ipv6/netfilter/ip6t_esp.c.old +1 -12
@@ -23,17 +23,6 @@
 	__u32   spi;
 };
 
-int ipv6_ext_hdr(u8 nexthdr)
-{
-        return ( (nexthdr == NEXTHDR_HOP)       ||
-                 (nexthdr == NEXTHDR_ROUTING)   ||
-                 (nexthdr == NEXTHDR_FRAGMENT)  ||
-                 (nexthdr == NEXTHDR_AUTH)      ||
-                 (nexthdr == NEXTHDR_ESP)       ||
-                 (nexthdr == NEXTHDR_NONE)      ||
-                 (nexthdr == NEXTHDR_DEST) );
-}
-
 /* Returns 1 if the spi is matched by the range, 0 otherwise */
 static inline int
 spi_match(u_int32_t min, u_int32_t max, u_int32_t spi, int invert)
@@ -74,7 +63,7 @@
 	len = skb->len - ptr;
 	temp = 0;
 
-        while (ipv6_ext_hdr(nexthdr)) {
+        while (ip6t_ext_hdr(nexthdr)) {
         	struct ipv6_opt_hdr *hdr;
         	int hdrlen;
 
net/ipv6/netfilter/ip6t_frag.c renamed from net/ipv6/netfilter/ip6t_frag.c.old +1 -12
@@ -44,17 +44,6 @@
        __u32   id;
 };
 
-int ipv6_ext_hdr(u8 nexthdr)
-{
-        return ( (nexthdr == NEXTHDR_HOP)       ||
-                 (nexthdr == NEXTHDR_ROUTING)   ||
-                 (nexthdr == NEXTHDR_FRAGMENT)  ||
-                 (nexthdr == NEXTHDR_AUTH)      ||
-                 (nexthdr == NEXTHDR_ESP)       ||
-                 (nexthdr == NEXTHDR_NONE)      ||
-                 (nexthdr == NEXTHDR_DEST) );
-}
-
 /* Returns 1 if the id is matched by the range, 0 otherwise */
 static inline int
 id_match(u_int32_t min, u_int32_t max, u_int32_t id, int invert)
@@ -93,7 +82,7 @@
        len = skb->len - ptr;
        temp = 0;
 
-        while (ipv6_ext_hdr(nexthdr)) {
+        while (ip6t_ext_hdr(nexthdr)) {
                struct ipv6_opt_hdr *hdr;
 
               DEBUGP("ipv6_frag header iteration \n");
net/ipv6/netfilter/ip6t_hbh.c renamed from net/ipv6/netfilter/ip6t_hbh.c.old +1 -12
@@ -29,17 +29,6 @@
 #define DEBUGP(format, args...)
 #endif
 
-int ipv6_ext_hdr(u8 nexthdr)
-{
-        return ( (nexthdr == NEXTHDR_HOP)       ||
-                 (nexthdr == NEXTHDR_ROUTING)   ||
-                 (nexthdr == NEXTHDR_FRAGMENT)  ||
-                 (nexthdr == NEXTHDR_AUTH)      ||
-                 (nexthdr == NEXTHDR_ESP)       ||
-                 (nexthdr == NEXTHDR_NONE)      ||
-                 (nexthdr == NEXTHDR_DEST) );
-}
-
 /*
  * (Type & 0xC0) >> 6
  * 	0	-> ignorable
@@ -84,7 +73,7 @@
        len = skb->len - ptr;
        temp = 0;
 
-        while (ipv6_ext_hdr(nexthdr)) {
+        while (ip6t_ext_hdr(nexthdr)) {
                struct ipv6_opt_hdr *hdr;
 
               DEBUGP("ipv6_opts header iteration \n");
net/ipv6/netfilter/ip6t_ipv6header.c renamed from net/ipv6/netfilter/ip6t_ipv6header.c.old +1 -12
@@ -24,17 +24,6 @@
 #define DEBUGP(format, args...)
 #endif
 
-int ipv6_ext_hdr(u8 nexthdr)
-{
-        return ( (nexthdr == NEXTHDR_HOP)       ||
-                 (nexthdr == NEXTHDR_ROUTING)   ||
-                 (nexthdr == NEXTHDR_FRAGMENT)  ||
-                 (nexthdr == NEXTHDR_AUTH)      ||
-                 (nexthdr == NEXTHDR_ESP)       ||
-                 (nexthdr == NEXTHDR_NONE)      ||
-                 (nexthdr == NEXTHDR_DEST) );
-}
-
 static int
 ipv6header_match(const struct sk_buff *skb,
 		 const struct net_device *in,
@@ -95,7 +84,7 @@
 
 	temp = 0;
 
-        while (ipv6_ext_hdr(nexthdr)) {
+        while (ip6t_ext_hdr(nexthdr)) {
         	struct ipv6_opt_hdr *hdr;
         	int hdrlen;
 
net/ipv6/netfilter/ip6t_rt.c renamed from net/ipv6/netfilter/ip6t_rt.c.old +1 -12
@@ -21,17 +21,6 @@
 #define DEBUGP(format, args...)
 #endif
 
-int ipv6_ext_hdr(u8 nexthdr)
-{
-        return ( (nexthdr == NEXTHDR_HOP)       ||
-                 (nexthdr == NEXTHDR_ROUTING)   ||
-                 (nexthdr == NEXTHDR_FRAGMENT)  ||
-                 (nexthdr == NEXTHDR_AUTH)      ||
-                 (nexthdr == NEXTHDR_ESP)       ||
-                 (nexthdr == NEXTHDR_NONE)      ||
-                 (nexthdr == NEXTHDR_DEST) );
-}
-
 /* Returns 1 if the id is matched by the range, 0 otherwise */
 static inline int
 segsleft_match(u_int32_t min, u_int32_t max, u_int32_t id, int invert)
@@ -71,7 +60,7 @@
        len = skb->len - ptr;
        temp = 0;
 
-        while (ipv6_ext_hdr(nexthdr)) {
+        while (ip6t_ext_hdr(nexthdr)) {
                struct ipv6_opt_hdr *hdr;
 
               DEBUGP("ipv6_rt header iteration \n");
include/linux/netfilter_ipv6/ip6_tables.h renamed from include/linux/netfilter_ipv6/ip6_tables.h.old +3 -0
@@ -449,6 +449,9 @@
 				  struct ip6t_table *table,
 				  void *userdata);
 
+/* Check for an extension */
+extern int ip6t_ext_hdr(u8 nexthdr);
+
 #define IP6T_ALIGN(s) (((s) + (__alignof__(struct ip6t_entry)-1)) & ~(__alignof__(struct ip6t_entry)-1))
 
 #endif /*__KERNEL__*/
#22 lore raw

Re: [2.4 patch] fix multiple definitions of ipv6_ext_hdr

From: Adrian Bunk <[email protected]>
Date: Thu, 27 Mar 2003 21:41:37 +0100

My fix for this issue that went into 2.5.66 is below (it applies and compiles against 2.4.21-pre6, too).

Please apply

I'll take care of this, sorry.

#23 lore raw

PATCH 1/1 alpha ptrace fix Re: Linux 2.4.21-pre6

In reply to Marcelo Tosatti

Chris Wright posted this change for alpha that's needed for the ptrace fix.

Signature · 25 lines
Tom Vier <[email protected]>
DSA Key ID 0xE6CB97DA

--- linux/arch/alpha/kernel/entry.S.kmod	Tue Mar 18 18:17:46 2003
+++ linux-patched/arch/alpha/kernel/entry.S	Tue Mar 18 18:18:50 2003
@@ -234,8 +234,8 @@
  * arch_kernel_thread(fn, arg, clone_flags)
  */
 .align 3
-.globl	kernel_thread
-.ent	kernel_thread
+.globl	arch_kernel_thread
+.ent	arch_kernel_thread
 arch_kernel_thread:
 	ldgp	$29,0($27)	/* we can be called from a module */
 	.frame $30, 4*8, $26
@@ -265,7 +265,7 @@
 	mov	$0,$16
 	mov	$31,$26
 	jsr	$31,sys_exit
-.end	kernel_thread
+.end	arch_kernel_thread
 
 /*
  * __kernel_execve(path, argv, envp, regs)
#24 lore raw
In reply to Marcelo Tosatti
Quoted 3 lines · Marcelo Tosatti

Here goes -pre6.

Alan Cox <[email protected]>:

(...)

Quoted 1 line

o ali5451 is 31bit audio

Unfortunately, this patch has completely screwed up sound on the Sun Blade 100.

I was wondering if this patch could be backed up in -pre7.

Signature · 1 line
Alvaro Figueroa
#25 lore raw
Quoted 10 lines
Quoted 3 lines

Here goes -pre6.

Alan Cox <[email protected]>:

(...)

Quoted 1 line

o ali5451 is 31bit audio

Unfortunately, this patch has completely screwed up sound on the Sun Blade 100.

I was wondering if this patch could be backed up in -pre7.

No. Its a bug fix. DaveM is aware of the fact the sparc side needs some tweaking