All of lore.kernel.org
 help / color / mirror / Atom feed
* [Kernel-janitors] [patch 2.6.8-rc2] list_for_each_entry:
@ 2004-07-29 11:42 Domen Puncer
  2004-07-29 11:43 ` Domen Puncer
                   ` (15 more replies)
  0 siblings, 16 replies; 17+ messages in thread
From: Domen Puncer @ 2004-07-29 11:42 UTC (permalink / raw)
  To: kernel-janitors

[-- Attachment #1: Type: text/plain, Size: 705 bytes --]

Hi.

Make code more readable with list_for_each_entry*
Compile tested.


Signed-off-by: Domen Puncer <domen@coderock.org>

--- c/arch/i386/mm/pageattr.c	Wed Jul 14 19:14:46 2004
+++ list_for_each/arch/i386/mm/pageattr.c	Thu Aug 15 18:08:02 2002
@@ -178,7 +178,7 @@
 void global_flush_tlb(void)
 { 
 	LIST_HEAD(l);
-	struct list_head* n;
+	struct page *pg, *next;
 
 	BUG_ON(irqs_disabled());
 
@@ -186,12 +186,8 @@
 	list_splice_init(&df_list, &l);
 	spin_unlock_irq(&cpa_lock);
 	flush_map();
-	n = l.next;
-	while (n != &l) {
-		struct page *pg = list_entry(n, struct page, lru);
-		n = n->next;
+	list_for_each_entry_safe(pg, next, &l, lru)
 		__free_page(pg);
-	}
 } 
 
 #ifdef CONFIG_DEBUG_PAGEALLOC

[-- Attachment #2: Type: text/plain, Size: 167 bytes --]

_______________________________________________
Kernel-janitors mailing list
Kernel-janitors@lists.osdl.org
http://lists.osdl.org/mailman/listinfo/kernel-janitors

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [Kernel-janitors] [patch 2.6.8-rc2] list_for_each_entry:
  2004-07-29 11:42 [Kernel-janitors] [patch 2.6.8-rc2] list_for_each_entry: Domen Puncer
@ 2004-07-29 11:43 ` Domen Puncer
  2004-07-29 11:43 ` Domen Puncer
                   ` (14 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: Domen Puncer @ 2004-07-29 11:43 UTC (permalink / raw)
  To: kernel-janitors

[-- Attachment #1: Type: text/plain, Size: 832 bytes --]

Make code more readable with list_for_each_reverse.


Signed-off-by: Domen Puncer <domen@coderock.org>

--- c/arch/um/drivers/chan_kern.c	Wed Jun 16 07:20:21 2004
+++ list_for_each/arch/um/drivers/chan_kern.c	Wed Jul 28 18:15:01 2004
@@ -166,7 +166,6 @@
 
 void close_chan(struct list_head *chans)
 {
-	struct list_head *ele;
 	struct chan *chan;
 
 	/* Close in reverse order as open in case more than one of them
@@ -174,8 +173,7 @@
 	 * state.  Then, the first one opened will have the original state,
 	 * so it must be the last closed.
 	 */
-        for(ele = chans->prev; ele != chans; ele = ele->prev){
-                chan = list_entry(ele, struct chan, list);
+	list_for_each_entry_reverse(chan, chans, list) {
 		if(!chan->opened) continue;
 		if(chan->ops->close != NULL)
 			(*chan->ops->close)(chan->fd, chan->data);

[-- Attachment #2: Type: text/plain, Size: 167 bytes --]

_______________________________________________
Kernel-janitors mailing list
Kernel-janitors@lists.osdl.org
http://lists.osdl.org/mailman/listinfo/kernel-janitors

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [Kernel-janitors] [patch 2.6.8-rc2] list_for_each_entry:
  2004-07-29 11:42 [Kernel-janitors] [patch 2.6.8-rc2] list_for_each_entry: Domen Puncer
  2004-07-29 11:43 ` Domen Puncer
@ 2004-07-29 11:43 ` Domen Puncer
  2004-07-29 11:44 ` Domen Puncer
                   ` (13 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: Domen Puncer @ 2004-07-29 11:43 UTC (permalink / raw)
  To: kernel-janitors

[-- Attachment #1: Type: text/plain, Size: 896 bytes --]

Make code more readable with list_for_each_entry.
(Note that break follows that list_del, so we don't need to use _safe)
Compile tested.


Signed-off-by: Domen Puncer <domen@coderock.org>

--- c/drivers/atm/he.c	Fri Jul 23 16:00:17 2004
+++ list_for_each/drivers/atm/he.c	Wed Jul 28 18:20:14 2004
@@ -1962,7 +1962,7 @@
 	struct he_tpd *tpd;
 	int slot, updated = 0;
 #ifdef USE_TPD_POOL
-	struct list_head *p;
+	struct he_tpd *__tpd;
 #endif
 
 	/* 2.1.6 transmit buffer return queue */
@@ -1977,8 +1977,7 @@
 			TBRQ_MULTIPLE(he_dev->tbrq_head) ? " MULTIPLE" : "");
 #ifdef USE_TPD_POOL
 		tpd = NULL;
-		list_for_each(p, &he_dev->outstanding_tpds) {
-			struct he_tpd *__tpd = list_entry(p, struct he_tpd, entry);
+		list_for_each_entry(__tpd, &he_dev->outstanding_tpds, entry) {
 			if (TPD_ADDR(__tpd->status) == TBRQ_TPD(he_dev->tbrq_head)) {
 				tpd = __tpd;
 				list_del(&__tpd->entry);

[-- Attachment #2: Type: text/plain, Size: 167 bytes --]

_______________________________________________
Kernel-janitors mailing list
Kernel-janitors@lists.osdl.org
http://lists.osdl.org/mailman/listinfo/kernel-janitors

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [Kernel-janitors] [patch 2.6.8-rc2] list_for_each_entry:
  2004-07-29 11:42 [Kernel-janitors] [patch 2.6.8-rc2] list_for_each_entry: Domen Puncer
  2004-07-29 11:43 ` Domen Puncer
  2004-07-29 11:43 ` Domen Puncer
@ 2004-07-29 11:44 ` Domen Puncer
  2004-07-29 11:44 ` Domen Puncer
                   ` (12 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: Domen Puncer @ 2004-07-29 11:44 UTC (permalink / raw)
  To: kernel-janitors

[-- Attachment #1: Type: text/plain, Size: 1975 bytes --]

Make code more readable with list_for_each_entry.


Signed-off-by: Domen Puncer <domen@coderock.org>

--- c/drivers/macintosh/via-pmu.c	Wed Jun 16 07:20:03 2004
+++ list_for_each/drivers/macintosh/via-pmu.c	Wed Jul 28 18:29:26 2004
@@ -2052,12 +2052,9 @@
 int
 pmu_register_sleep_notifier(struct pmu_sleep_notifier *n)
 {
-	struct list_head *list;
 	struct pmu_sleep_notifier *notifier;
 
-	for (list = sleep_notifiers.next; list != &sleep_notifiers;
-	     list = list->next) {
-		notifier = list_entry(list, struct pmu_sleep_notifier, list);
+	list_for_each_entry(notifier, &sleep_notifiers, list) {
 		if (n->priority > notifier->priority)
 			break;
 	}
@@ -2083,8 +2080,7 @@
 	struct list_head *list;
 	struct pmu_sleep_notifier *notifier;
 
-	for (list = sleep_notifiers.prev; list != &sleep_notifiers;
-	     list = list->prev) {
+	list_for_each_prev(list, &sleep_notifiers) {
 		notifier = list_entry(list, struct pmu_sleep_notifier, list);
 		ret = notifier->notifier_call(notifier, when);
 		if (ret != PBOOK_SLEEP_OK) {
@@ -2105,14 +2101,10 @@
 broadcast_wake(void)
 {
 	int ret = PBOOK_SLEEP_OK;
-	struct list_head *list;
 	struct pmu_sleep_notifier *notifier;
 
-	for (list = sleep_notifiers.next; list != &sleep_notifiers;
-	     list = list->next) {
-		notifier = list_entry(list, struct pmu_sleep_notifier, list);
+	list_for_each_entry(notifier, &sleep_notifiers, list)
 		notifier->notifier_call(notifier, PBOOK_WAKE);
-	}
 	return ret;
 }
 
@@ -2725,15 +2717,13 @@
 pmu_pass_intr(unsigned char *data, int len)
 {
 	struct pmu_private *pp;
-	struct list_head *list;
 	int i;
 	unsigned long flags;
 
 	if (len > sizeof(pp->rb_buf[0].data))
 		len = sizeof(pp->rb_buf[0].data);
 	spin_lock_irqsave(&all_pvt_lock, flags);
-	for (list = &all_pmu_pvt; (list = list->next) != &all_pmu_pvt; ) {
-		pp = list_entry(list, struct pmu_private, list);
+	list_for_each_entry(pp, &all_pmu_pvt, list) {
 		spin_lock(&pp->lock);
 		i = pp->rb_put + 1;
 		if (i >= RB_SIZE)

[-- Attachment #2: Type: text/plain, Size: 167 bytes --]

_______________________________________________
Kernel-janitors mailing list
Kernel-janitors@lists.osdl.org
http://lists.osdl.org/mailman/listinfo/kernel-janitors

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [Kernel-janitors] [patch 2.6.8-rc2] list_for_each_entry:
  2004-07-29 11:42 [Kernel-janitors] [patch 2.6.8-rc2] list_for_each_entry: Domen Puncer
                   ` (2 preceding siblings ...)
  2004-07-29 11:44 ` Domen Puncer
@ 2004-07-29 11:44 ` Domen Puncer
  2004-07-29 11:45 ` Domen Puncer
                   ` (11 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: Domen Puncer @ 2004-07-29 11:44 UTC (permalink / raw)
  To: kernel-janitors

[-- Attachment #1: Type: text/plain, Size: 2233 bytes --]

Make code more readable with list_for_each_entry.
Compile tested.


Signed-off-by: Domen Puncer <domen@coderock.org>

--- c/drivers/net/ppp_generic.c	Wed Jul 14 19:14:59 2004
+++ list_for_each/drivers/net/ppp_generic.c	Wed Jul 28 18:34:36 2004
@@ -1213,8 +1213,7 @@
 
 	nch = 0;
 	hdrlen = (ppp->flags & SC_MP_XSHORTSEQ)? MPHDRLEN_SSN: MPHDRLEN;
-	list = &ppp->channels;
-	while ((list = list->next) != &ppp->channels) {
+	list_for_each(list, &ppp->channels) {
 		pch = list_entry(list, struct channel, clist);
 		nch += pch->avail = (skb_queue_len(&pch->file.xq) == 0);
 		/*
@@ -1676,7 +1675,7 @@
 ppp_receive_mp_frame(struct ppp *ppp, struct sk_buff *skb, struct channel *pch)
 {
 	u32 mask, seq;
-	struct list_head *l;
+	struct channel *ch;
 	int mphdrlen = (ppp->flags & SC_MP_SHORTSEQ)? MPHDRLEN_SSN: MPHDRLEN;
 
 	if (!pskb_may_pull(skb, mphdrlen + 1) || ppp->mrru == 0)
@@ -1730,8 +1729,7 @@
 	 * The list of channels can't change because we have the receive
 	 * side of the ppp unit locked.
 	 */
-	for (l = ppp->channels.next; l != &ppp->channels; l = l->next) {
-		struct channel *ch = list_entry(l, struct channel, clist);
+	list_for_each_entry(ch, &ppp->channels, clist) {
 		if (seq_before(ch->lastseq, seq))
 			seq = ch->lastseq;
 	}
@@ -2217,10 +2215,8 @@
 find_comp_entry(int proto)
 {
 	struct compressor_entry *ce;
-	struct list_head *list = &compressor_list;
 
-	while ((list = list->next) != &compressor_list) {
-		ce = list_entry(list, struct compressor_entry, list);
+	list_for_each_entry(ce, &compressor_list, list) {
 		if (ce->comp->compress_proto == proto)
 			return ce;
 	}
@@ -2490,20 +2486,15 @@
 ppp_find_channel(int unit)
 {
 	struct channel *pch;
-	struct list_head *list;
 
-	list = &new_channels;
-	while ((list = list->next) != &new_channels) {
-		pch = list_entry(list, struct channel, list);
+	list_for_each_entry(pch, &new_channels, list) {
 		if (pch->file.index == unit) {
 			list_del(&pch->list);
 			list_add(&pch->list, &all_channels);
 			return pch;
 		}
 	}
-	list = &all_channels;
-	while ((list = list->next) != &all_channels) {
-		pch = list_entry(list, struct channel, list);
+	list_for_each_entry(pch, &all_channels, list) {
 		if (pch->file.index == unit)
 			return pch;
 	}

[-- Attachment #2: Type: text/plain, Size: 167 bytes --]

_______________________________________________
Kernel-janitors mailing list
Kernel-janitors@lists.osdl.org
http://lists.osdl.org/mailman/listinfo/kernel-janitors

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [Kernel-janitors] [patch 2.6.8-rc2] list_for_each_entry:
  2004-07-29 11:42 [Kernel-janitors] [patch 2.6.8-rc2] list_for_each_entry: Domen Puncer
                   ` (3 preceding siblings ...)
  2004-07-29 11:44 ` Domen Puncer
@ 2004-07-29 11:45 ` Domen Puncer
  2004-07-29 11:45 ` Domen Puncer
                   ` (10 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: Domen Puncer @ 2004-07-29 11:45 UTC (permalink / raw)
  To: kernel-janitors

[-- Attachment #1: Type: text/plain, Size: 2592 bytes --]

Make code more readable with list_for_each_entry.
Compile tested.


Signed-off-by: Domen Puncer <domen@coderock.org>

--- c/drivers/usb/class/audio.c	Wed Jul 14 19:15:07 2004
+++ list_for_each/drivers/usb/class/audio.c	Wed Jul 28 18:41:07 2004
@@ -1949,15 +1949,12 @@
 static int usb_audio_open_mixdev(struct inode *inode, struct file *file)
 {
 	unsigned int minor = iminor(inode);
-	struct list_head *devs, *mdevs;
 	struct usb_mixerdev *ms;
 	struct usb_audio_state *s;
 
 	down(&open_sem);
-	for (devs = audiodevs.next; devs != &audiodevs; devs = devs->next) {
-		s = list_entry(devs, struct usb_audio_state, audiodev);
-		for (mdevs = s->mixerlist.next; mdevs != &s->mixerlist; mdevs = mdevs->next) {
-			ms = list_entry(mdevs, struct usb_mixerdev, list);
+	list_for_each_entry(s, &audiodevs, audiodev) {
+		list_for_each_entry(ms, &s->mixerlist, list) {
 			if (ms->dev_mixer == minor)
 				goto mixer_found;
 		}
@@ -2638,16 +2635,13 @@
 {
 	unsigned int minor = iminor(inode);
 	DECLARE_WAITQUEUE(wait, current);
-	struct list_head *devs, *adevs;
 	struct usb_audiodev *as;
 	struct usb_audio_state *s;
 
 	for (;;) {
 		down(&open_sem);
-		for (devs = audiodevs.next; devs != &audiodevs; devs = devs->next) {
-			s = list_entry(devs, struct usb_audio_state, audiodev);
-			for (adevs = s->audiolist.next; adevs != &s->audiolist; adevs = adevs->next) {
-				as = list_entry(adevs, struct usb_audiodev, list);
+		list_for_each_entry(s, &audiodevs, audiodev) {
+			list_for_each_entry(as, &s->audiolist, list) {
 				if (!((as->dev_audio ^ minor) & ~0xf))
 					goto device_found;
 			}
@@ -3813,7 +3807,6 @@
 static void usb_audio_disconnect(struct usb_interface *intf)
 {
 	struct usb_audio_state *s = usb_get_intfdata (intf);
-	struct list_head *list;
 	struct usb_audiodev *as;
 	struct usb_mixerdev *ms;
 
@@ -3835,8 +3828,7 @@
 	usb_set_intfdata (intf, NULL);
 
 	/* deregister all audio and mixer devices, so no new processes can open this device */
-	for(list = s->audiolist.next; list != &s->audiolist; list = list->next) {
-		as = list_entry(list, struct usb_audiodev, list);
+	list_for_each_entry(as, &s->audiolist, list) {
 		usbin_disc(as);
 		usbout_disc(as);
 		wake_up(&as->usbin.dma.wait);
@@ -3847,8 +3839,7 @@
 		}
 		as->dev_audio = -1;
 	}
-	for(list = s->mixerlist.next; list != &s->mixerlist; list = list->next) {
-		ms = list_entry(list, struct usb_mixerdev, list);
+	list_for_each_entry(ms, &s->mixerlist, list) {
 		if (ms->dev_mixer >= 0) {
 			unregister_sound_mixer(ms->dev_mixer);
 			printk(KERN_INFO "usbaudio: unregister mixer 14,%d\n", ms->dev_mixer);

[-- Attachment #2: Type: text/plain, Size: 167 bytes --]

_______________________________________________
Kernel-janitors mailing list
Kernel-janitors@lists.osdl.org
http://lists.osdl.org/mailman/listinfo/kernel-janitors

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [Kernel-janitors] [patch 2.6.8-rc2] list_for_each_entry:
  2004-07-29 11:42 [Kernel-janitors] [patch 2.6.8-rc2] list_for_each_entry: Domen Puncer
                   ` (4 preceding siblings ...)
  2004-07-29 11:45 ` Domen Puncer
@ 2004-07-29 11:45 ` Domen Puncer
  2004-07-29 11:46 ` Domen Puncer
                   ` (9 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: Domen Puncer @ 2004-07-29 11:45 UTC (permalink / raw)
  To: kernel-janitors

[-- Attachment #1: Type: text/plain, Size: 1523 bytes --]

Make code more readable with list_for_each_entry.
Compile tested.


Signed-off-by: Domen Puncer <domen@coderock.org>

--- c/drivers/usb/class/usb-midi.c	Fri Jul 23 16:00:24 2004
+++ list_for_each/drivers/usb/class/usb-midi.c	Wed Jul 28 18:47:02 2004
@@ -811,7 +811,6 @@
 {
 	int minor = iminor(inode);
 	DECLARE_WAITQUEUE(wait, current);
-	struct list_head      *devs, *mdevs;
 	struct usb_midi_state *s;
 	struct usb_mididev    *m;
 	unsigned long flags;
@@ -823,10 +822,8 @@
 
 	for(;;) {
 		down(&open_sem);
-		for (devs = mididevs.next; devs != &mididevs; devs = devs->next) {
-			s = list_entry(devs, struct usb_midi_state, mididev);
-			for (mdevs = s->midiDevList.next; mdevs != &s->midiDevList; mdevs = mdevs->next) {
-				m = list_entry(mdevs, struct usb_mididev, list);
+		list_for_each_entry(s, &mididevs, mididev) {
+			list_for_each_entry(m, &s->midiDevList, list) {
 				if ( !((m->dev_midi ^ minor) & ~0xf) )
 					goto device_found;
 			}
@@ -2000,7 +1997,6 @@
 static void usb_midi_disconnect(struct usb_interface *intf)
 {
 	struct usb_midi_state *s = usb_get_intfdata (intf);
-	struct list_head      *list;
 	struct usb_mididev    *m;
 
 	if ( !s )
@@ -2018,8 +2014,7 @@
 	s->usbdev = NULL;
 	usb_set_intfdata (intf, NULL);
 
-	for ( list = s->midiDevList.next; list != &s->midiDevList; list = list->next ) {
-		m = list_entry(list, struct usb_mididev, list);
+	list_for_each_entry(m, &s->midiDevList, list) {
 		wake_up(&(m->min.ep->wait));
 		wake_up(&(m->mout.ep->wait));
 		if ( m->dev_midi >= 0 ) {

[-- Attachment #2: Type: text/plain, Size: 167 bytes --]

_______________________________________________
Kernel-janitors mailing list
Kernel-janitors@lists.osdl.org
http://lists.osdl.org/mailman/listinfo/kernel-janitors

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [Kernel-janitors] [patch 2.6.8-rc2] list_for_each_entry:
  2004-07-29 11:42 [Kernel-janitors] [patch 2.6.8-rc2] list_for_each_entry: Domen Puncer
                   ` (5 preceding siblings ...)
  2004-07-29 11:45 ` Domen Puncer
@ 2004-07-29 11:46 ` Domen Puncer
  2004-07-29 11:46 ` Domen Puncer
                   ` (8 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: Domen Puncer @ 2004-07-29 11:46 UTC (permalink / raw)
  To: kernel-janitors

[-- Attachment #1: Type: text/plain, Size: 990 bytes --]

Make code more readable with list_for_each_entry.
Compile tested.


Signed-off-by: Domen Puncer <domen@coderock.org>

--- c/drivers/usb/core/devices.c	Wed Jul 14 19:15:07 2004
+++ list_for_each/drivers/usb/core/devices.c	Wed Jul 28 18:49:26 2004
@@ -570,7 +570,6 @@
 
 static ssize_t usb_device_read(struct file *file, char __user *buf, size_t nbytes, loff_t *ppos)
 {
-	struct list_head *buslist;
 	struct usb_bus *bus;
 	ssize_t ret, total_written = 0;
 	loff_t skip_bytes = *ppos;
@@ -582,12 +581,9 @@
 	if (!access_ok(VERIFY_WRITE, buf, nbytes))
 		return -EFAULT;
 
-	/* enumerate busses */
 	down (&usb_bus_list_lock);
-	for (buslist = usb_bus_list.next; buslist != &usb_bus_list; buslist = buslist->next) {
-		/* print devices for this bus */
-		bus = list_entry(buslist, struct usb_bus, bus_list);
-
+	/* print devices for all busses */
+	list_for_each_entry(bus, &usb_bus_list, bus_list) {
 		/* recurse through all children of the root hub */
 		if (!bus->root_hub)
 			continue;

[-- Attachment #2: Type: text/plain, Size: 167 bytes --]

_______________________________________________
Kernel-janitors mailing list
Kernel-janitors@lists.osdl.org
http://lists.osdl.org/mailman/listinfo/kernel-janitors

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [Kernel-janitors] [patch 2.6.8-rc2] list_for_each_entry:
  2004-07-29 11:42 [Kernel-janitors] [patch 2.6.8-rc2] list_for_each_entry: Domen Puncer
                   ` (6 preceding siblings ...)
  2004-07-29 11:46 ` Domen Puncer
@ 2004-07-29 11:46 ` Domen Puncer
  2004-07-29 11:47 ` Domen Puncer
                   ` (7 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: Domen Puncer @ 2004-07-29 11:46 UTC (permalink / raw)
  To: kernel-janitors

[-- Attachment #1: Type: text/plain, Size: 784 bytes --]

Make code more readable with list_for_each_entry_safe.
(Is this a non i386? I can't compile it.)


Signed-off-by: Domen Puncer <domen@coderock.org>

--- c/drivers/usb/host/hc_sl811.c	Wed Jun 16 07:19:43 2004
+++ list_for_each/drivers/usb/host/hc_sl811.c	Wed Jul 28 18:53:01 2004
@@ -1343,15 +1343,11 @@
  *****************************************************************/
 static void __exit hci_hcd_cleanup (void)
 {
-	struct list_head *hci_l;
-	hci_t *hci;
+	hci_t *hci, *tmp;
 
 	DBGFUNC ("Enter hci_hcd_cleanup\n");
-	for (hci_l = hci_hcd_list.next; hci_l != &hci_hcd_list;) {
-		hci = list_entry (hci_l, hci_t, hci_hcd_list);
-		hci_l = hci_l->next;
+	list_for_each_entry_safe(hci, tmp, &hci_hcd_list, hci_hcd_list)
 		hc_release_hci (hci);
-	}
 }
 
 module_init (hci_hcd_init);

[-- Attachment #2: Type: text/plain, Size: 167 bytes --]

_______________________________________________
Kernel-janitors mailing list
Kernel-janitors@lists.osdl.org
http://lists.osdl.org/mailman/listinfo/kernel-janitors

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [Kernel-janitors] [patch 2.6.8-rc2] list_for_each_entry:
  2004-07-29 11:42 [Kernel-janitors] [patch 2.6.8-rc2] list_for_each_entry: Domen Puncer
                   ` (7 preceding siblings ...)
  2004-07-29 11:46 ` Domen Puncer
@ 2004-07-29 11:47 ` Domen Puncer
  2004-07-29 11:47 ` Domen Puncer
                   ` (6 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: Domen Puncer @ 2004-07-29 11:47 UTC (permalink / raw)
  To: kernel-janitors

[-- Attachment #1: Type: text/plain, Size: 10905 bytes --]

Make code more readable with list_for_each_entry.
Compile tested.


Signed-off-by: Domen Puncer <domen@coderock.org>

--- c/drivers/usb/host/uhci-hcd.c	Fri Jul 23 16:00:25 2004
+++ list_for_each/drivers/usb/host/uhci-hcd.c	Wed Jul 28 23:43:05 2004
@@ -330,7 +330,7 @@
 static void uhci_insert_qh(struct uhci_hcd *uhci, struct uhci_qh *skelqh, struct urb *urb)
 {
 	struct urb_priv *urbp = (struct urb_priv *)urb->hcpriv;
-	struct list_head *tmp;
+	struct urb_priv *turbp;
 	struct uhci_qh *lqh;
 
 	/* Grab the last QH */
@@ -358,12 +358,8 @@
 	 */
 	lqh->link = cpu_to_le32(urbp->qh->dma_handle) | UHCI_PTR_QH;
 	if (lqh->urbp) {
-		list_for_each (tmp, &lqh->urbp->queue_list) {
-			struct urb_priv *turbp =
-				list_entry(tmp, struct urb_priv, queue_list);
-
+		list_for_each_entry(turbp, &lqh->urbp->queue_list, queue_list)
 			turbp->qh->link = lqh->link;
-		}
 	}
 
 	list_add_tail(&urbp->qh->list, &skelqh->list);
@@ -405,18 +401,11 @@
 		pqh = list_entry(qh->list.prev, struct uhci_qh, list);
 		pqh->link = newlink;
 		if (pqh->urbp) {
-			struct list_head *head, *tmp;
-
-			head = &pqh->urbp->queue_list;
-			tmp = head->next;
-			while (head != tmp) {
-				struct urb_priv *turbp =
-					list_entry(tmp, struct urb_priv, queue_list);
-
-				tmp = tmp->next;
+			struct urb_priv *turbp;
 
+			list_for_each_entry(turbp, &pqh->urbp->queue_list,
+					queue_list)
 				turbp->qh->link = newlink;
-			}
 		}
 		wmb();
 
@@ -447,21 +436,14 @@
 static int uhci_fixup_toggle(struct urb *urb, unsigned int toggle)
 {
 	struct urb_priv *urbp = (struct urb_priv *)urb->hcpriv;
-	struct list_head *head, *tmp;
-
-	head = &urbp->td_list;
-	tmp = head->next;
-	while (head != tmp) {
-		struct uhci_td *td = list_entry(tmp, struct uhci_td, list);
-
-		tmp = tmp->next;
+	struct uhci_td *td;
 
+	list_for_each_entry(td, &urbp->td_list, list) {
 		if (toggle)
 			td->token |= cpu_to_le32(TD_TOKEN_TOGGLE);
 		else
 			td->token &= ~cpu_to_le32(TD_TOKEN_TOGGLE);
 
-
 		toggle ^= 1;
 	}
 
@@ -481,17 +463,12 @@
 
 	/* Find the first URB in the queue */
 	if (eurbp->queued) {
-		struct list_head *head = &eurbp->queue_list;
-
-		tmp = head->next;
-		while (tmp != head) {
+		list_for_each(tmp, &eurbp->queue_list) {
 			struct urb_priv *turbp =
 				list_entry(tmp, struct urb_priv, queue_list);
 
 			if (!turbp->queued)
 				break;
-
-			tmp = tmp->next;
 		}
 	} else
 		tmp = &eurbp->queue_list;
@@ -522,9 +499,7 @@
 
 static void uhci_delete_queued_urb(struct uhci_hcd *uhci, struct urb *urb)
 {
-	struct urb_priv *urbp, *nurbp;
-	struct list_head *head, *tmp;
-	struct urb_priv *purbp;
+	struct urb_priv *urbp, *nurbp, *purbp, *turbp;
 	struct uhci_td *pltd;
 	unsigned int toggle;
 
@@ -556,14 +531,7 @@
 			toggle = uhci_toggle(td_token(pltd)) ^ 1;
 		}
 
-		head = &urbp->queue_list;
-		tmp = head->next;
-		while (head != tmp) {
-			struct urb_priv *turbp;
-
-			turbp = list_entry(tmp, struct urb_priv, queue_list);
-			tmp = tmp->next;
-
+		list_for_each_entry(turbp, &urbp->queue_list, queue_list) {
 			if (!turbp->queued)
 				break;
 			toggle = uhci_fixup_toggle(turbp->urb, toggle);
@@ -637,7 +605,7 @@
 
 static void uhci_destroy_urb_priv(struct uhci_hcd *uhci, struct urb *urb)
 {
-	struct list_head *head, *tmp;
+	struct uhci_td *td, *tmp;
 	struct urb_priv *urbp;
 	unsigned int age;
 
@@ -660,13 +628,7 @@
 	if (list_empty(&uhci->td_remove_list))
 		uhci_set_next_interrupt(uhci);
 
-	head = &urbp->td_list;
-	tmp = head->next;
-	while (tmp != head) {
-		struct uhci_td *td = list_entry(tmp, struct uhci_td, list);
-
-		tmp = tmp->next;
-
+	list_for_each_entry_safe(td, tmp, &urbp->td_list, list) {
 		uhci_remove_td_from_urb(td);
 		uhci_remove_td(uhci, td);
 		list_add(&td->remove_list, &uhci->td_remove_list);
@@ -1083,21 +1045,14 @@
  */
 static int uhci_result_common(struct uhci_hcd *uhci, struct urb *urb)
 {
-	struct list_head *tmp, *head;
 	struct urb_priv *urbp = urb->hcpriv;
-	struct uhci_td *td;
+	struct uhci_td *td, *tmp;
 	unsigned int status = 0;
 	int ret = 0;
 
 	urb->actual_length = 0;
 
-	head = &urbp->td_list;
-	tmp = head->next;
-	while (tmp != head) {
-		td = list_entry(tmp, struct uhci_td, list);
-
-		tmp = tmp->next;
-
+	list_for_each_entry_safe(td, tmp, &urbp->td_list, list) {
 		status = uhci_status_bits(td_status(td));
 		if (status & TD_CTRL_ACTIVE)
 			return -EINPROGRESS;
@@ -1180,17 +1135,12 @@
 static int isochronous_find_limits(struct uhci_hcd *uhci, struct urb *urb, unsigned int *start, unsigned int *end)
 {
 	struct urb *last_urb = NULL;
-	struct list_head *tmp, *head;
+	struct urb_priv *up;
 	int ret = 0;
 
-	head = &uhci->urb_list;
-	tmp = head->next;
-	while (tmp != head) {
-		struct urb_priv *up = list_entry(tmp, struct urb_priv, urb_list);
+	list_for_each_entry(up, &uhci->urb_list, urb_list) {
 		struct urb *u = up->urb;
 
-		tmp = tmp->next;
-
 		/* look for pending URB's with identical pipe handle */
 		if ((urb->pipe == u->pipe) && (urb->dev == u->dev) &&
 		    (u->status == -EINPROGRESS) && (u != urb)) {
@@ -1276,7 +1226,7 @@
 
 static int uhci_result_isochronous(struct uhci_hcd *uhci, struct urb *urb)
 {
-	struct list_head *tmp, *head;
+	struct uhci_td *td, *tmp;
 	struct urb_priv *urbp = (struct urb_priv *)urb->hcpriv;
 	int status;
 	int i, ret = 0;
@@ -1284,14 +1234,9 @@
 	urb->actual_length = 0;
 
 	i = 0;
-	head = &urbp->td_list;
-	tmp = head->next;
-	while (tmp != head) {
-		struct uhci_td *td = list_entry(tmp, struct uhci_td, list);
+	list_for_each_entry_safe(td, tmp, &urbp->td_list, list) {
 		int actlength;
 
-		tmp = tmp->next;
-
 		if (td_status(td) & TD_CTRL_ACTIVE)
 			return -EINPROGRESS;
 
@@ -1315,20 +1260,15 @@
 
 static struct urb *uhci_find_urb_ep(struct uhci_hcd *uhci, struct urb *urb)
 {
-	struct list_head *tmp, *head;
+	struct urb_priv *up, *tmp;
 
 	/* We don't match Isoc transfers since they are special */
 	if (usb_pipeisoc(urb->pipe))
 		return NULL;
 
-	head = &uhci->urb_list;
-	tmp = head->next;
-	while (tmp != head) {
-		struct urb_priv *up = list_entry(tmp, struct urb_priv, urb_list);
+	list_for_each_entry_safe(up, tmp, &uhci->urb_list, urb_list) {
 		struct urb *u = up->urb;
 
-		tmp = tmp->next;
-
 		if (u->dev == urb->dev && u->status == -EINPROGRESS) {
 			/* For control, ignore the direction */
 			if (usb_pipecontrol(urb->pipe) &&
@@ -1478,7 +1418,7 @@
 
 static void uhci_unlink_generic(struct uhci_hcd *uhci, struct urb *urb)
 {
-	struct list_head *head, *tmp;
+	struct list_head *head, *tmp, *next;
 	struct urb_priv *urbp = (struct urb_priv *)urb->hcpriv;
 	int prevactive = 1;
 
@@ -1498,15 +1438,12 @@
 	 * for all types
 	 */
 	head = &urbp->td_list;
-	tmp = head->next;
-	while (tmp != head) {
+	list_for_each_safe(tmp, next, head) {
 		struct uhci_td *td = list_entry(tmp, struct uhci_td, list);
 
-		tmp = tmp->next;
-
 		if (!(td_status(td) & TD_CTRL_ACTIVE) &&
 		    (uhci_actual_length(td_status(td)) < uhci_expected_length(td_token(td)) ||
-		    tmp == head))
+		    next == head))
 			usb_settoggle(urb->dev, uhci_endpoint(td_token(td)),
 				uhci_packetout(td_token(td)),
 				uhci_toggle(td_token(td)) ^ 1);
@@ -1573,18 +1510,15 @@
 	 */
 
 	head = &urbp->td_list;
-	tmp = head->next;
-	while (tmp != head) {
+	list_for_each(tmp, head) {
 		struct uhci_td *td = list_entry(tmp, struct uhci_td, list);
 
-		tmp = tmp->next;
-
 		/*
 		 * Make sure we don't do the last one (since it'll have the
 		 * TERM bit set) as well as we skip every so many TD's to
 		 * make sure it doesn't hog the bandwidth
 		 */
-		if (tmp != head && (count % DEPTH_INTERVAL) == (DEPTH_INTERVAL - 1))
+		if (tmp->next != head && (count % DEPTH_INTERVAL) == (DEPTH_INTERVAL - 1))
 			td->link |= UHCI_PTR_DEPTH;
 
 		count++;
@@ -1609,7 +1543,8 @@
 {
 	struct usb_hcd *hcd = (struct usb_hcd *)ptr;
 	struct uhci_hcd *uhci = hcd_to_uhci(hcd);
-	struct list_head list, *tmp, *head;
+	struct urb_priv *up, *tmp;
+	struct list_head list;
 	unsigned long flags;
 	int called_uhci_finish_completion = 0;
 
@@ -1623,14 +1558,9 @@
 		called_uhci_finish_completion = 1;
 	}
 
-	head = &uhci->urb_list;
-	tmp = head->next;
-	while (tmp != head) {
-		struct urb_priv *up = list_entry(tmp, struct urb_priv, urb_list);
+	list_for_each_entry_safe(up, tmp, &uhci->urb_list, urb_list) {
 		struct urb *u = up->urb;
 
-		tmp = tmp->next;
-
 		spin_lock(&u->lock);
 
 		/* Check if the FSBR timed out */
@@ -1652,14 +1582,9 @@
 	if (called_uhci_finish_completion)
 		wake_up_all(&uhci->waitqh);
 
-	head = &list;
-	tmp = head->next;
-	while (tmp != head) {
-		struct urb_priv *up = list_entry(tmp, struct urb_priv, urb_list);
+	list_for_each_entry_safe(up, tmp, &list, urb_list) {
 		struct urb *u = up->urb;
 
-		tmp = tmp->next;
-
 		uhci_urb_dequeue(hcd, u);
 	}
 
@@ -1690,15 +1615,9 @@
 
 static void uhci_free_pending_qhs(struct uhci_hcd *uhci)
 {
-	struct list_head *tmp, *head;
-
-	head = &uhci->qh_remove_list;
-	tmp = head->next;
-	while (tmp != head) {
-		struct uhci_qh *qh = list_entry(tmp, struct uhci_qh, remove_list);
-
-		tmp = tmp->next;
+	struct uhci_qh *qh, *tmp;
 
+	list_for_each_entry_safe(qh, tmp, &uhci->qh_remove_list, remove_list) {
 		list_del_init(&qh->remove_list);
 
 		uhci_free_qh(uhci, qh);
@@ -1707,15 +1626,9 @@
 
 static void uhci_free_pending_tds(struct uhci_hcd *uhci)
 {
-	struct list_head *tmp, *head;
-
-	head = &uhci->td_remove_list;
-	tmp = head->next;
-	while (tmp != head) {
-		struct uhci_td *td = list_entry(tmp, struct uhci_td, remove_list);
-
-		tmp = tmp->next;
+	struct uhci_td *td, *tmp;
 
+	list_for_each_entry_safe(td, tmp, &uhci->td_remove_list, remove_list) {
 		list_del_init(&td->remove_list);
 
 		uhci_free_td(uhci, td);
@@ -1736,19 +1649,13 @@
 static void uhci_finish_completion(struct usb_hcd *hcd, struct pt_regs *regs)
 {
 	struct uhci_hcd *uhci = hcd_to_uhci(hcd);
-	struct list_head *tmp, *head;
+	struct urb_priv *urbp, *tmp;
 
-	head = &uhci->complete_list;
-	tmp = head->next;
-	while (tmp != head) {
-		struct urb_priv *urbp = list_entry(tmp, struct urb_priv, urb_list);
+	list_for_each_entry_safe(urbp, tmp, &uhci->complete_list, urb_list) {
 		struct urb *urb = urbp->urb;
 
 		list_del_init(&urbp->urb_list);
 		uhci_finish_urb(hcd, urb, regs);
-
-		head = &uhci->complete_list;
-		tmp = head->next;
 	}
 }
 
@@ -1764,7 +1671,7 @@
 	struct uhci_hcd *uhci = hcd_to_uhci(hcd);
 	unsigned long io_addr = uhci->io_addr;
 	unsigned short status;
-	struct list_head *tmp, *head;
+	struct urb_priv *urbp;
 	unsigned int age;
 
 	/*
@@ -1812,13 +1719,8 @@
 		uhci_set_next_interrupt(uhci);
 
 	/* Walk the list of pending URB's to see which ones completed */
-	head = &uhci->urb_list;
-	tmp = head->next;
-	while (tmp != head) {
-		struct urb_priv *urbp = list_entry(tmp, struct urb_priv, urb_list);
+	list_for_each_entry(urbp, &uhci->urb_list, urb_list) {
 		struct urb *urb = urbp->urb;
-
-		tmp = tmp->next;
 
 		/* Checks the status and does all of the magic necessary */
 		uhci_transfer_result(uhci, urb);

[-- Attachment #2: Type: text/plain, Size: 167 bytes --]

_______________________________________________
Kernel-janitors mailing list
Kernel-janitors@lists.osdl.org
http://lists.osdl.org/mailman/listinfo/kernel-janitors

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [Kernel-janitors] [patch 2.6.8-rc2] list_for_each_entry:
  2004-07-29 11:42 [Kernel-janitors] [patch 2.6.8-rc2] list_for_each_entry: Domen Puncer
                   ` (8 preceding siblings ...)
  2004-07-29 11:47 ` Domen Puncer
@ 2004-07-29 11:47 ` Domen Puncer
  2004-07-29 11:48 ` Domen Puncer
                   ` (5 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: Domen Puncer @ 2004-07-29 11:47 UTC (permalink / raw)
  To: kernel-janitors

[-- Attachment #1: Type: text/plain, Size: 646 bytes --]

Use list_for_each_entry to make code more readable.
Compile tested.


Signed-off-by: Domen Puncer <domen@coderock.org>

--- c/drivers/usb/media/dabusb.c	Wed Jul 14 19:15:08 2004
+++ list_for_each/drivers/usb/media/dabusb.c	Wed Jul 28 19:58:04 2004
@@ -109,16 +109,13 @@
 static int dabusb_cancel_queue (pdabusb_t s, struct list_head *q)
 {
 	unsigned long flags;
-	struct list_head *p;
 	pbuff_t b;
 
 	dbg("dabusb_cancel_queue");
 
 	spin_lock_irqsave (&s->lock, flags);
 
-	for (p = q->next; p != q; p = p->next) {
-		b = list_entry (p, buff_t, buff_list);
-
+	list_for_each_entry(b, q, buff_list) {
 #ifdef DEBUG
 		dump_urb(b->purb);
 #endif

[-- Attachment #2: Type: text/plain, Size: 167 bytes --]

_______________________________________________
Kernel-janitors mailing list
Kernel-janitors@lists.osdl.org
http://lists.osdl.org/mailman/listinfo/kernel-janitors

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [Kernel-janitors] [patch 2.6.8-rc2] list_for_each_entry:
  2004-07-29 11:42 [Kernel-janitors] [patch 2.6.8-rc2] list_for_each_entry: Domen Puncer
                   ` (9 preceding siblings ...)
  2004-07-29 11:47 ` Domen Puncer
@ 2004-07-29 11:48 ` Domen Puncer
  2004-07-29 11:48 ` Domen Puncer
                   ` (4 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: Domen Puncer @ 2004-07-29 11:48 UTC (permalink / raw)
  To: kernel-janitors

[-- Attachment #1: Type: text/plain, Size: 1701 bytes --]

Use list_for_each_entry_safe to make code more readable.
Compile tested.


Signed-off-by: Domen Puncer <domen@coderock.org>

--- c/drivers/usb/serial/ipaq.c	Fri Jul 23 16:00:26 2004
+++ list_for_each/drivers/usb/serial/ipaq.c	Wed Jul 28 20:02:38 2004
@@ -417,9 +417,8 @@
 	struct ipaq_private	*priv = usb_get_serial_port_data(port);
 	struct usb_serial	*serial = port->serial;
 	int			count, room;
-	struct ipaq_packet	*pkt;
+	struct ipaq_packet	*pkt, *tmp;
 	struct urb		*urb = port->write_urb;
-	struct list_head	*tmp;
 
 	if (urb->status == -EINPROGRESS) {
 		/* Should never happen */
@@ -427,9 +426,7 @@
 		return;
 	}
 	room = URBDATA_SIZE;
-	for (tmp = priv->queue.next; tmp != &priv->queue;) {
-		pkt = list_entry(tmp, struct ipaq_packet, list);
-		tmp = tmp->next;
+	list_for_each_entry_safe(pkt, tmp, &priv->queue, list) {
 		count = min(room, (int)(pkt->len - pkt->written));
 		memcpy(urb->transfer_buffer + (URBDATA_SIZE - room),
 		       pkt->data + pkt->written, count);
@@ -501,22 +498,16 @@
 static void ipaq_destroy_lists(struct usb_serial_port *port)
 {
 	struct ipaq_private	*priv = usb_get_serial_port_data(port);
-	struct list_head	*tmp;
-	struct ipaq_packet	*pkt;
+	struct ipaq_packet	*pkt, *tmp;
 
-	for (tmp = priv->queue.next; tmp != &priv->queue;) {
-		pkt = list_entry(tmp, struct ipaq_packet, list);
-		tmp = tmp->next;
+	list_for_each_entry_safe(pkt, tmp, &priv->queue, list) {
 		kfree(pkt->data);
 		kfree(pkt);
 	}
-	for (tmp = priv->freelist.next; tmp != &priv->freelist;) {
-		pkt = list_entry(tmp, struct ipaq_packet, list);
-		tmp = tmp->next;
+	list_for_each_entry_safe(pkt, tmp, &priv->freelist, list) {
 		kfree(pkt->data);
 		kfree(pkt);
 	}
-	return;
 }
 
 

[-- Attachment #2: Type: text/plain, Size: 167 bytes --]

_______________________________________________
Kernel-janitors mailing list
Kernel-janitors@lists.osdl.org
http://lists.osdl.org/mailman/listinfo/kernel-janitors

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [Kernel-janitors] [patch 2.6.8-rc2] list_for_each_entry:
  2004-07-29 11:42 [Kernel-janitors] [patch 2.6.8-rc2] list_for_each_entry: Domen Puncer
                   ` (10 preceding siblings ...)
  2004-07-29 11:48 ` Domen Puncer
@ 2004-07-29 11:48 ` Domen Puncer
  2004-07-29 11:49 ` [Kernel-janitors] [patch 2.6.8-rc2] list_for_each_entry: fs-dquot.c Domen Puncer
                   ` (3 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: Domen Puncer @ 2004-07-29 11:48 UTC (permalink / raw)
  To: kernel-janitors

[-- Attachment #1: Type: text/plain, Size: 937 bytes --]

Use list_for_each_entry_safe to make code more readable.
Compile tested.


Signed-off-by: Domen Puncer <domen@coderock.org>

--- c/fs/coda/psdev.c	Fri Jul 23 16:00:27 2004
+++ list_for_each/fs/coda/psdev.c	Wed Jul 28 20:10:31 2004
@@ -310,8 +310,7 @@
 static int coda_psdev_release(struct inode * inode, struct file * file)
 {
         struct venus_comm *vcp = (struct venus_comm *) file->private_data;
-        struct upc_req *req;
-	struct list_head *lh, *next;
+        struct upc_req *req, *tmp;
 
 	lock_kernel();
 	if ( !vcp->vc_inuse ) {
@@ -326,8 +325,7 @@
 	}
         
         /* Wakeup clients so they can return. */
-	list_for_each_safe(lh, next, &vcp->vc_pending) {
-		req = list_entry(lh, struct upc_req, uc_chain);
+	list_for_each_entry_safe(req, tmp, &vcp->vc_pending, uc_chain) {
 		/* Async requests need to be freed here */
 		if (req->uc_flags & REQ_ASYNC) {
 			CODA_FREE(req->uc_data, sizeof(struct coda_in_hdr));

[-- Attachment #2: Type: text/plain, Size: 167 bytes --]

_______________________________________________
Kernel-janitors mailing list
Kernel-janitors@lists.osdl.org
http://lists.osdl.org/mailman/listinfo/kernel-janitors

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [Kernel-janitors] [patch 2.6.8-rc2] list_for_each_entry: fs-dquot.c
  2004-07-29 11:42 [Kernel-janitors] [patch 2.6.8-rc2] list_for_each_entry: Domen Puncer
                   ` (11 preceding siblings ...)
  2004-07-29 11:48 ` Domen Puncer
@ 2004-07-29 11:49 ` Domen Puncer
  2004-07-29 11:49 ` [Kernel-janitors] [patch 2.6.8-rc2] list_for_each_entry: Domen Puncer
                   ` (2 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: Domen Puncer @ 2004-07-29 11:49 UTC (permalink / raw)
  To: kernel-janitors

[-- Attachment #1: Type: text/plain, Size: 744 bytes --]

Make code more readable with list_for_each_entry_safe.
(Didn't compile before, doesn't compile now)


Signed-off-by: Domen Puncer <domen@coderock.org>

--- c/fs/dquot.c	Wed Jul 14 19:15:11 2004
+++ list_for_each/fs/dquot.c	Wed Jul 28 20:20:52 2004
@@ -406,13 +406,10 @@
  * for this sb+type at all. */
 static void invalidate_dquots(struct super_block *sb, int type)
 {
-	struct dquot *dquot;
-	struct list_head *head;
+	struct dquot *dquot, *tmp;
 
 	spin_lock(&dq_list_lock);
-	for (head = inuse_list.next; head != &inuse_list;) {
-		dquot = list_entry(head, struct dquot, dq_inuse);
-		head = head->next;
+	list_for_each_entry_safe(dquot, tmp, &inuse_list, dq_inuse) {
 		if (dquot->dq_sb != sb)
 			continue;
 		if (dquot->dq_type != type)

[-- Attachment #2: Type: text/plain, Size: 167 bytes --]

_______________________________________________
Kernel-janitors mailing list
Kernel-janitors@lists.osdl.org
http://lists.osdl.org/mailman/listinfo/kernel-janitors

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [Kernel-janitors] [patch 2.6.8-rc2] list_for_each_entry:
  2004-07-29 11:42 [Kernel-janitors] [patch 2.6.8-rc2] list_for_each_entry: Domen Puncer
                   ` (12 preceding siblings ...)
  2004-07-29 11:49 ` [Kernel-janitors] [patch 2.6.8-rc2] list_for_each_entry: fs-dquot.c Domen Puncer
@ 2004-07-29 11:49 ` Domen Puncer
  2004-07-29 11:50 ` Domen Puncer
  2004-07-29 11:50 ` Domen Puncer
  15 siblings, 0 replies; 17+ messages in thread
From: Domen Puncer @ 2004-07-29 11:49 UTC (permalink / raw)
  To: kernel-janitors

[-- Attachment #1: Type: text/plain, Size: 1728 bytes --]

Use list_for_each_entry to make code more readable.
Compile tested.


Signed-off-by: Domen Puncer <domen@coderock.org>

--- c/fs/jffs/intrep.c	Wed Jul 14 19:15:11 2004
+++ list_for_each/fs/jffs/intrep.c	Wed Jul 28 20:34:06 2004
@@ -1619,12 +1619,10 @@
 {
 	struct jffs_file *f;
 	int i = ino % c->hash_len;
-	struct list_head *tmp;
 
 	D3(printk("jffs_find_file(): ino: %u\n", ino));
 
-	for (tmp = c->hash[i].next; tmp != &c->hash[i]; tmp = tmp->next) {
-		f = list_entry(tmp, struct jffs_file, hash);
+	list_for_each_entry(f, &c->hash[i], hash) {
 		if (ino != f->ino)
 			continue;
 		D3(printk("jffs_find_file(): Found file with ino "
@@ -2020,13 +2018,12 @@
 	int result = 0;
 
 	for (pos = 0; pos < c->hash_len; pos++) {
-		struct list_head *p, *next;
-		for (p = c->hash[pos].next; p != &c->hash[pos]; p = next) {
-			/* We need a reference to the next file in the
-			   list because `func' might remove the current
-			   file `f'.  */
-			next = p->next;
-			r = func(list_entry(p, struct jffs_file, hash));
+		struct jffs_file *f, *next;
+
+		/* We must do _safe, because 'func' might remove the
+		   current file 'f' from the list.  */
+		list_for_each_entry_safe(f, next, &c->hash[pos], hash) {
+			r = func(f);
 			if (r < 0)
 				return r;
 			result += r;
@@ -2589,9 +2586,8 @@
 
 	printk("JFFS: Dumping the file system's hash table...\n");
 	for (i = 0; i < c->hash_len; i++) {
-		struct list_head *p;
-		for (p = c->hash[i].next; p != &c->hash[i]; p = p->next) {
-			struct jffs_file *f=list_entry(p,struct jffs_file,hash);
+		struct jffs_file *f;
+		list_for_each_entry(f, &c->hash[i], hash) {
 			printk("*** c->hash[%u]: \"%s\" "
 			       "(ino: %u, pino: %u)\n",
 			       i, (f->name ? f->name : ""),

[-- Attachment #2: Type: text/plain, Size: 167 bytes --]

_______________________________________________
Kernel-janitors mailing list
Kernel-janitors@lists.osdl.org
http://lists.osdl.org/mailman/listinfo/kernel-janitors

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [Kernel-janitors] [patch 2.6.8-rc2] list_for_each_entry:
  2004-07-29 11:42 [Kernel-janitors] [patch 2.6.8-rc2] list_for_each_entry: Domen Puncer
                   ` (13 preceding siblings ...)
  2004-07-29 11:49 ` [Kernel-janitors] [patch 2.6.8-rc2] list_for_each_entry: Domen Puncer
@ 2004-07-29 11:50 ` Domen Puncer
  2004-07-29 11:50 ` Domen Puncer
  15 siblings, 0 replies; 17+ messages in thread
From: Domen Puncer @ 2004-07-29 11:50 UTC (permalink / raw)
  To: kernel-janitors

[-- Attachment #1: Type: text/plain, Size: 777 bytes --]

Make code more readable with list_for_each_entry.
Compile tested.


Signed-off-by: Domen Puncer <domen@coderock.org>

--- c/fs/namespace.c	Fri Jul 23 16:00:27 2004
+++ list_for_each/fs/namespace.c	Wed Jul 28 20:37:11 2004
@@ -536,7 +536,6 @@
 static struct vfsmount *copy_tree(struct vfsmount *mnt, struct dentry *dentry)
 {
 	struct vfsmount *res, *p, *q, *r, *s;
-	struct list_head *h;
 	struct nameidata nd;
 
 	res = q = clone_mnt(mnt, dentry);
@@ -545,8 +544,7 @@
 	q->mnt_mountpoint = mnt->mnt_mountpoint;
 
 	p = mnt;
-	for (h = mnt->mnt_mounts.next; h != &mnt->mnt_mounts; h = h->next) {
-		r = list_entry(h, struct vfsmount, mnt_child);
+	list_for_each_entry(r, &mnt->mnt_mounts, mnt_child) {
 		if (!lives_below_in_same_fs(r->mnt_mountpoint, dentry))
 			continue;
 

[-- Attachment #2: Type: text/plain, Size: 167 bytes --]

_______________________________________________
Kernel-janitors mailing list
Kernel-janitors@lists.osdl.org
http://lists.osdl.org/mailman/listinfo/kernel-janitors

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [Kernel-janitors] [patch 2.6.8-rc2] list_for_each_entry:
  2004-07-29 11:42 [Kernel-janitors] [patch 2.6.8-rc2] list_for_each_entry: Domen Puncer
                   ` (14 preceding siblings ...)
  2004-07-29 11:50 ` Domen Puncer
@ 2004-07-29 11:50 ` Domen Puncer
  15 siblings, 0 replies; 17+ messages in thread
From: Domen Puncer @ 2004-07-29 11:50 UTC (permalink / raw)
  To: kernel-janitors

[-- Attachment #1: Type: text/plain, Size: 1309 bytes --]

Use list_for_each_entry_reverse to make code more readable
Compile tested.


Signed-off-by: Domen Puncer <domen@coderock.org>

--- c/sound/core/memory.c	Wed Jun 16 07:18:57 2004
+++ list_for_each/sound/core/memory.c	Wed Jul 28 20:41:32 2004
@@ -64,25 +64,20 @@
 
 void snd_memory_done(void)
 {
-	struct list_head *head;
 	struct snd_alloc_track *t;
 
 	if (snd_alloc_kmalloc > 0)
 		snd_printk(KERN_ERR "Not freed snd_alloc_kmalloc = %li\n", snd_alloc_kmalloc);
 	if (snd_alloc_vmalloc > 0)
 		snd_printk(KERN_ERR "Not freed snd_alloc_vmalloc = %li\n", snd_alloc_vmalloc);
-	for (head = snd_alloc_kmalloc_list.prev;
-	     head != &snd_alloc_kmalloc_list; head = head->prev) {
-		t = list_entry(head, struct snd_alloc_track, list);
+	list_for_each_entry_reverse(t, &snd_alloc_kmalloc_list, list) {
 		if (t->magic != KMALLOC_MAGIC) {
 			snd_printk(KERN_ERR "Corrupted kmalloc\n");
 			break;
 		}
 		snd_printk(KERN_ERR "kmalloc(%ld) from %p not freed\n", (long) t->size, t->caller);
 	}
-	for (head = snd_alloc_vmalloc_list.prev;
-	     head != &snd_alloc_vmalloc_list; head = head->prev) {
-		t = list_entry(head, struct snd_alloc_track, list);
+	list_for_each_entry_reverse(t, &snd_alloc_vmalloc_list, list) {
 		if (t->magic != VMALLOC_MAGIC) {
 			snd_printk(KERN_ERR "Corrupted vmalloc\n");
 			break;

[-- Attachment #2: Type: text/plain, Size: 167 bytes --]

_______________________________________________
Kernel-janitors mailing list
Kernel-janitors@lists.osdl.org
http://lists.osdl.org/mailman/listinfo/kernel-janitors

^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2004-07-29 11:50 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-07-29 11:42 [Kernel-janitors] [patch 2.6.8-rc2] list_for_each_entry: Domen Puncer
2004-07-29 11:43 ` Domen Puncer
2004-07-29 11:43 ` Domen Puncer
2004-07-29 11:44 ` Domen Puncer
2004-07-29 11:44 ` Domen Puncer
2004-07-29 11:45 ` Domen Puncer
2004-07-29 11:45 ` Domen Puncer
2004-07-29 11:46 ` Domen Puncer
2004-07-29 11:46 ` Domen Puncer
2004-07-29 11:47 ` Domen Puncer
2004-07-29 11:47 ` Domen Puncer
2004-07-29 11:48 ` Domen Puncer
2004-07-29 11:48 ` Domen Puncer
2004-07-29 11:49 ` [Kernel-janitors] [patch 2.6.8-rc2] list_for_each_entry: fs-dquot.c Domen Puncer
2004-07-29 11:49 ` [Kernel-janitors] [patch 2.6.8-rc2] list_for_each_entry: Domen Puncer
2004-07-29 11:50 ` Domen Puncer
2004-07-29 11:50 ` Domen Puncer

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.