Linux 2.4.10-pre8
Subsystems (2)
The most noticeable thing here is how the three-argument form of "min()/max()" are a thing of the past, and instead we have a regular two-argument form that is _really_ anal about type-checking. It will warn if the two arguments are of different types.
The old three-argument form is still available as "min_t()/max_t()", and pretty much all old three-argument users have just been moved over to this one. For all the people who hate the three-argument version, if you send patches to turn things into the two-argument one, I'll certainly apply them. I only ask that you verify that you don't get any warnings in the process..
(And the number of type clashes was quite surprising. A lot of the users of min/max I looked at looked rather suspicious and definitely did NOT have the same types or even signs).
Other minor changes too.
Linus
-----
pre8:
- Christoph Hellwig: clean up personality handling a bit
- Robert Love: update sysctl/vm documentation
- make the three-argument (that everybody hates) "min()" be "min_t()", and introduce a type-anal "min()" that complains about arguments of different types.
pre7:
- Alan Cox: big driver/mips sync
- Andries Brouwer, Christoph Hellwig: more gendisk fixups
- Tobias Ringstrom: tulip driver workaround for DC21143 erratum
pre6:
- Jens Axboe: remove trivially dead io_request_lock usage
- Andrea Arcangeli: softirq cleanup and ARM fixes. Slab cleanups
- Christoph Hellwig: gendisk handling helper functions/cleanups
- Nikita Danilov: reiserfs dead code pruning
- Anton Altaparmakov: NTFS update to 1.1.18
- firestream network driver: patch reverted on authors request
- NIIBE Yutaka: SH architecture update
- Paul Mackerras: PPC cleanups, PPC8xx update.
- me: reverse broken bootdata allocation patch that went into pre5
pre5:
- Merge with Alan
- Trond Myklebust: NFS fixes - kmap and root inode special case
- Al Viro: more superblock cleanups, inode leak in rd.c, minix directories in page cache
- Paul Mackerras: clean up rubbish from sl82c105.c
- Neil Brown: md/raid cleanups, NFS filehandles
- Johannes Erdfelt: USB update (usb-2.0 support, visor fix, Clie fix, pl2303 driver update)
- David Miller: sparc and net update
- Eric Biederman: simplify and correct bootdata allocation - don't overwrite ramdisks
- Tim Waugh: support multiple SuperIO devices, parport doc updates
pre4:
- Hugh Dickins: swapoff cleanups and speedups
- Matthew Dharm: USB storage update
- Keith Owens: Makefile fixes
- Tom Rini: MPC8xx build fix
- Nikita Danilov: reiserfs update
- Jakub Jelinek: ELF loader fix for ET_DYN
- Andrew Morton: reparent_to_init() for kernel threads
- Christoph Hellwig: VxFS and SysV updates, vfs_permission fix
pre3:
- Johannes Erdfelt, Oliver Neukum: USB printer driver race fix
- John Byrne: fix stupid i386-SMP irq stack layout bug
- Andreas Bombe, me: yenta IO window fix
- Neil Brown: raid1 buffer state fix
- David Miller, Paul Mackerras: fix up sparc and ppc respectively for kmap/kbd_rate
- Matija Nalis: umsdos fixes, and make it possible to boot up with umsdos
- Francois Romieu: fix bugs in dscc4 driver
- Andy Grover: new PCI config space access functions (eventually for ACPI)
- Albert Cranford: fix incorrect e2fsprog data from ver_linux script
- Dave Jones: re-sync x86 setup code, fix macsonic kmalloc use
- Johannes Erdfelt: remove obsolete plusb USB driver
- Andries Brouwer: fix USB compact flash version info, add blksize ioctls
pre2:
- Al Viro: block device cleanups
- Marcelo Tosatti: make bounce buffer allocations more robust (it's ok for them to do IO, just not cause recursive bounce IO. So allow them)
- Anton Altaparmakov: NTFS update (1.1.17)
- Paul Mackerras: PPC update (big re-org)
- Petko Manolov: USB pegasus driver fixes
- David Miller: networking and sparc updates
- Trond Myklebust: Export atomic_dec_and_lock
- OGAWA Hirofumi: find and fix umsdos "filldir" users that were broken by the 64-bit-cleanups. Fix msdos warnings.
- Al Viro: superblock handling cleanups and race fixes
- Johannes Erdfelt++: USB updates
pre1:
- Jeff Hartmann: DRM AGP/alpha cleanups
- Ben LaHaise: highmem user pagecopy/clear optimization
- Vojtech Pavlik: VIA IDE driver update
- Herbert Xu: make cramfs work with HIGHMEM pages
- David Fennell: awe32 ram size detection improvement
- Istvan Varadi: umsdos EMD filename bug fix
- Keith Owens: make min/max work for pointers too
- Jan Kara: quota initialization fix
- Brad Hards: Kaweth USB driver update (enable, and fix endianness)
- Ralf Baechle: MIPS updates
- David Gibson: airport driver update
- Rogier Wolff: firestream ATM driver multi-phy support
- Daniel Phillips: swap read page referenced set - avoid swap thrashing
PATCH 1/1 usb driver min max cleanup
Hi,
Here's a patch against 2.4.10-pre8 that converts most of the usb drivers from min_t() and max_t() to min() and max().
Thanks,
greg k-h
(temporary usb maintainer)
drivers/usb/bluetooth.c +1 -1
@@ -518,7 +518,7 @@ } - buffer_size =min_t (int, count, bluetooth->bulk_out_buffer_size); + buffer_size =min (count, bluetooth->bulk_out_buffer_size);memcpy (urb->transfer_buffer, current_position, buffer_size);/* build up our urb */
drivers/usb/serial/digi_acceleport.c +8 -7
@@ -670,7 +670,7 @@ }/* len must be a multiple of 4, so commands are not split */ - len =min_t (int, count, oob_port->bulk_out_size ); + len =min (count, oob_port->bulk_out_size );if ( len >4 ) len &= ~3 ;
@@ -747,7 +747,7 @@/* len must be a multiple of 4 and small enough to */ /* guarantee the write will send buffered data first, */ /* so commands are in order with data and not split */ - len =min_t (int, count, port->bulk_out_size-2 -priv->dp_out_buf_len ); + len =min (count, port->bulk_out_size-2 -priv->dp_out_buf_len );if ( len >4 ) len &= ~3 ;
@@ -951,7 +951,7 @@spin_lock_irqsave ( &priv->dp_port_lock, flags );/* send any buffered chars from throttle time on to tty subsystem */ - len =min_t (int, priv->dp_in_buf_len,TTY_FLIPBUF_SIZE - tty->flip.count ); + len =min (priv->dp_in_buf_len,TTY_FLIPBUF_SIZE - tty->flip.count );if ( len >0 ) {memcpy ( tty->flip.char_buf_ptr, priv->dp_in_buf, len );memcpy ( tty->flip.flag_buf_ptr, priv->dp_in_flag_buf, len );
@@ -1272,7 +1272,8 @@ priv->dp_port_num, count, from_user, in_interrupt() );/* copy user data (which can sleep) before getting spin lock */ - count =min_t (int,64 ,min_t (int, count, port->bulk_out_size-2 ) ); + count =min ( count, port->bulk_out_size-2 ); + count =min (64 , count);if ( from_user &©_from_user ( user_buf, buf, count ) ) {return ( -EFAULT ); }
@@ -1303,7 +1304,7 @@/* allow space for any buffered data and for new data, up to */ /* transfer buffer size - 2 (for command and length bytes) */ - new_len =min_t (int, count, port->bulk_out_size-2 -priv->dp_out_buf_len ); + new_len =min (count, port->bulk_out_size-2 -priv->dp_out_buf_len); data_len = new_len + priv->dp_out_buf_len;if ( data_len ==0 ) {
@@ -1929,7 +1930,7 @@if ( throttled ) { - len =min_t ( int, len, + len =min ( len,DIGI_IN_BUF_SIZE - priv->dp_in_buf_len );if ( len >0 ) {
@@ -1942,7 +1943,7 @@ }else { - len =min_t ( int, len,TTY_FLIPBUF_SIZE - tty->flip.count ); + len =min ( len,TTY_FLIPBUF_SIZE - tty->flip.count );if ( len >0 ) {memcpy ( tty->flip.char_buf_ptr, data, len );
drivers/usb/serial/empeg.c +1 -1
@@ -276,7 +276,7 @@ } } - transfer_size =min_t (int, count,URB_TRANSFER_BUFFER_SIZE ); + transfer_size =min (count,URB_TRANSFER_BUFFER_SIZE );if (from_user) {if (copy_from_user (urb->transfer_buffer, current_position, transfer_size)) {
drivers/usb/serial/io_edgeport.c +3 -3
@@ -1311,7 +1311,7 @@ fifo = &edge_port->txfifo;// calculate number of bytes to put in fifo - copySize =min_t (int, count, (edge_port->txCredits - fifo->count)); + copySize =min ((unsigned int )count, (edge_port->txCredits - fifo->count));dbg (__FUNCTION__"(%d) of %d byte(s) Fifo room %d -- will copy %d bytes" , port->number, count, edge_port->txCredits - fifo->count, copySize);
@@ -1329,7 +1329,7 @@// then copy the reset from the start of the buffer bytesleft = fifo->size - fifo->head; - firsthalf =min_t (int, bytesleft, copySize); + firsthalf =min (bytesleft, copySize);dbg (__FUNCTION__" - copy %d bytes of %d into fifo " , firsthalf, bytesleft);/* now copy our data */
@@ -1454,7 +1454,7 @@/* now copy our data */ bytesleft = fifo->size - fifo->tail; - firsthalf =min_t (int, bytesleft, count); + firsthalf =min (bytesleft, count);memcpy (&buffer[2 ], &fifo->fifo[fifo->tail], firsthalf); fifo->tail += firsthalf; fifo->count -= firsthalf;
drivers/usb/serial/io_usbvend.h +1 -1
@@ -115,7 +115,7 @@// TxCredits value below which driver won't bother sending (to prevent too many small writes). // Send only if above 25% -#define EDGE_FW_GET_TX_CREDITS_SEND_THRESHOLD (InitialCredit) (max_t(int, ((InitialCredit) / 4), EDGE_FW_BULK_MAX_PACKET_SIZE)) +#define EDGE_FW_GET_TX_CREDITS_SEND_THRESHOLD (InitialCredit) (max(((InitialCredit) / 4), EDGE_FW_BULK_MAX_PACKET_SIZE))#define EDGE_FW_BULK_MAX_PACKET_SIZE 64 // Max Packet Size for Bulk In Endpoint (EP1)#define EDGE_FW_BULK_READ_BUFFER_SIZE 1024 // Size to use for Bulk reads
drivers/usb/serial/usbserial.c +3 -3
@@ -1259,9 +1259,9 @@/* initialize some parts of the port structures */ /* we don't use num_ports here cauz some devices have more endpoint pairs than ports */ - max_endpoints =max_t (int, num_bulk_in, num_bulk_out); - max_endpoints =max_t (int, max_endpoints, num_interrupt_in); - max_endpoints =max_t (int, max_endpoints, serial->num_ports); + max_endpoints =max (num_bulk_in, num_bulk_out); + max_endpoints =max (max_endpoints, num_interrupt_in); + max_endpoints =max (max_endpoints, (int )serial->num_ports);dbg (__FUNCTION__" - setting up %d port structures for this device" , max_endpoints);for (i =0 ; i < max_endpoints; ++i) { port = &serial->port[i];
drivers/usb/serial/visor.c +1 -1
@@ -441,7 +441,7 @@ } } - transfer_size =min_t (int, count,URB_TRANSFER_BUFFER_SIZE ); + transfer_size =min (count,URB_TRANSFER_BUFFER_SIZE );if (from_user) {if (copy_from_user (urb->transfer_buffer, current_position, transfer_size)) { bytes_sent = -EFAULT ;