net: fix kernel-doc warnings in header files

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=31729363418ea25b01aa9410838c38e36792e44c
Commit: 31729363418ea25b01aa9410838c38e36792e44c
Parent: 2df96af03d97e98cbea9f9cb71fc56ea5fc544b2
Author: Randy Dunlap <[EMAIL PROTECTED]>
AuthorDate: Mon Feb 18 20:52:13 2008 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Mon Feb 18 20:52:13 2008 -0800

net: fix kernel-doc warnings in header files

Add missing structure kernel-doc descriptions to sock.h & skbuff.h
to fix kernel-doc warnings.

(I think that Stephen H. sent a similar patch, but I can't find it.
I just want to kill the warnings, with either patch.)

Signed-off-by: Randy Dunlap <[EMAIL PROTECTED]>
Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 include/linux/skbuff.h |2 ++
 include/net/sock.h |1 +
 2 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
index 412672a..bbd8d00 100644
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -232,6 +232,8 @@ typedef unsigned char *sk_buff_data_t;
  * @mark: Generic packet mark
  * @nfct: Associated connection, if any
  * @ipvs_property: skbuff is owned by ipvs
+ * @peeked: this packet has been seen already, so stats have been
+ * done for it, don't do them again
  * @nf_trace: netfilter packet trace flag
  * @nfctinfo: Relationship of this skb to the connection
  * @nfct_reasm: netfilter conntrack re-assembly pointer
diff --git a/include/net/sock.h b/include/net/sock.h
index 8a7889b..fd98760 100644
--- a/include/net/sock.h
+++ b/include/net/sock.h
@@ -180,6 +180,7 @@ struct sock_common {
   *@sk_sndmsg_off: cached offset for sendmsg
   *@sk_send_head: front of stuff to transmit
   *@sk_security: used by security modules
+  *@sk_mark: generic packet mark
   *@sk_write_pending: a write to stream socket waits to start
   *@sk_state_change: callback to indicate change in the state of the sock
   *@sk_data_ready: callback to indicate there is data to be processed
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[S390] dcss: Fix Unlikely(x) != y

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=39f73b2886be3a255d8f4cd669c8c7e7957afbd9
Commit: 39f73b2886be3a255d8f4cd669c8c7e7957afbd9
Parent: d082d3ce32705a92bd86c2b061d6b0827a40a5b1
Author: Roel Kluin <[EMAIL PROTECTED]>
AuthorDate: Tue Feb 19 15:29:33 2008 +0100
Committer:  Martin Schwidefsky <[EMAIL PROTECTED]>
CommitDate: Tue Feb 19 15:29:35 2008 +0100

[S390] dcss: Fix Unlikely(x) != y

Fix Unlikely(x) != y

Cc: Gerald Schaefer <[EMAIL PROTECTED]>
Cc: Stefan Weinhuber <[EMAIL PROTECTED]>
Cc: Carsten Otte <[EMAIL PROTECTED]>
Signed-off-by: Roel Kluin <[EMAIL PROTECTED]>
Signed-off-by: Heiko Carstens <[EMAIL PROTECTED]>
Signed-off-by: Martin Schwidefsky <[EMAIL PROTECTED]>
---
 drivers/s390/block/dcssblk.c |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/s390/block/dcssblk.c b/drivers/s390/block/dcssblk.c
index 3faf053..e6c94db 100644
--- a/drivers/s390/block/dcssblk.c
+++ b/drivers/s390/block/dcssblk.c
@@ -666,7 +666,7 @@ dcssblk_make_request(struct request_queue *q, struct bio 
*bio)
page_addr = (unsigned long)
page_address(bvec->bv_page) + bvec->bv_offset;
source_addr = dev_info->start + (index<<12) + bytes_done;
-   if (unlikely(page_addr & 4095) != 0 || (bvec->bv_len & 4095) != 
0)
+   if (unlikely((page_addr & 4095) != 0) || (bvec->bv_len & 4095) 
!= 0)
// More paranoia.
goto fail;
if (bio_data_dir(bio) == READ) {
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[SPARC64] arch/sparc64/kernel/unaligned.c: Use time_* macros

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=cbc9fc5dec60f84b62e0144165c545abd24847c0
Commit: cbc9fc5dec60f84b62e0144165c545abd24847c0
Parent: 3c62a2d3477ff7725210db57aec3d2806fa10c20
Author: S.Çağlar Onur <[EMAIL PROTECTED]>
AuthorDate: Sun Feb 17 23:24:10 2008 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Sun Feb 17 23:24:10 2008 -0800

[SPARC64] arch/sparc64/kernel/unaligned.c: Use time_* macros

The functions time_before, time_before_eq, time_after, and
time_after_eq are more robust for comparing jiffies against other
values.

So following patch implements usage of the time_after() macro, defined
at linux/jiffies.h, which deals with wrapping correctly

Signed-off-by: S.Çağlar Onur <[EMAIL PROTECTED]>
Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 arch/sparc64/kernel/unaligned.c |3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/arch/sparc64/kernel/unaligned.c b/arch/sparc64/kernel/unaligned.c
index dc7bf1b..1a511e9 100644
--- a/arch/sparc64/kernel/unaligned.c
+++ b/arch/sparc64/kernel/unaligned.c
@@ -7,6 +7,7 @@
  */
 
 
+#include 
 #include 
 #include 
 #include 
@@ -283,7 +284,7 @@ static void log_unaligned(struct pt_regs *regs)
 {
static unsigned long count, last_time;
 
-   if (jiffies - last_time > 5 * HZ)
+   if (time_after(jiffies, last_time + 5 * HZ))
count = 0;
if (count < 5) {
last_time = jiffies;
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Revert "[RTNETLINK]: Send a single notification on device state changes."

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=93b2d4a208eeb19bff95e98c34503ce4b03cd0f9
Commit: 93b2d4a208eeb19bff95e98c34503ce4b03cd0f9
Parent: b57dfbc4f7f8d394c5e96677d2b66ffca1b4e8a7
Author: David S. Miller <[EMAIL PROTECTED]>
AuthorDate: Sun Feb 17 18:35:07 2008 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Sun Feb 17 18:35:07 2008 -0800

Revert "[RTNETLINK]: Send a single notification on device state changes."

This reverts commit 45b503548210fe6f23e92b856421c2a3f05fd034.

It break locking around dev->link_mode as well as cause
other bootup problems.

Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 net/core/rtnetlink.c |   36 ++--
 1 files changed, 10 insertions(+), 26 deletions(-)

diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c
index ecb02af..61ac8d0 100644
--- a/net/core/rtnetlink.c
+++ b/net/core/rtnetlink.c
@@ -504,7 +504,7 @@ int rtnl_put_cacheinfo(struct sk_buff *skb, struct 
dst_entry *dst, u32 id,
 
 EXPORT_SYMBOL_GPL(rtnl_put_cacheinfo);
 
-static int set_operstate(struct net_device *dev, unsigned char transition, 
bool send_notification)
+static void set_operstate(struct net_device *dev, unsigned char transition)
 {
unsigned char operstate = dev->operstate;
 
@@ -527,12 +527,8 @@ static int set_operstate(struct net_device *dev, unsigned 
char transition, bool
write_lock_bh(&dev_base_lock);
dev->operstate = operstate;
write_unlock_bh(&dev_base_lock);
-
-   if (send_notification)
-   netdev_state_change(dev);
-   return 1;
-   } else
-   return 0;
+   netdev_state_change(dev);
+   }
 }
 
 static void copy_rtnl_link_stats(struct rtnl_link_stats *a,
@@ -826,7 +822,6 @@ static int do_setlink(struct net_device *dev, struct 
ifinfomsg *ifm,
if (tb[IFLA_BROADCAST]) {
nla_memcpy(dev->broadcast, tb[IFLA_BROADCAST], dev->addr_len);
send_addr_notify = 1;
-   modified = 1;
}
 
if (ifm->ifi_flags || ifm->ifi_change) {
@@ -839,23 +834,16 @@ static int do_setlink(struct net_device *dev, struct 
ifinfomsg *ifm,
dev_change_flags(dev, flags);
}
 
-   if (tb[IFLA_TXQLEN]) {
-   if (dev->tx_queue_len != nla_get_u32(tb[IFLA_TXQLEN])) {
-   dev->tx_queue_len = nla_get_u32(tb[IFLA_TXQLEN]);
-   modified = 1;
-   }
-   }
+   if (tb[IFLA_TXQLEN])
+   dev->tx_queue_len = nla_get_u32(tb[IFLA_TXQLEN]);
 
if (tb[IFLA_OPERSTATE])
-   modified |= set_operstate(dev, nla_get_u8(tb[IFLA_OPERSTATE]), 
false);
+   set_operstate(dev, nla_get_u8(tb[IFLA_OPERSTATE]));
 
if (tb[IFLA_LINKMODE]) {
-   if (dev->link_mode != nla_get_u8(tb[IFLA_LINKMODE])) {
-   write_lock_bh(&dev_base_lock);
-   dev->link_mode = nla_get_u8(tb[IFLA_LINKMODE]);
-   write_lock_bh(&dev_base_lock);
-   modified = 1;
-   }
+   write_lock_bh(&dev_base_lock);
+   dev->link_mode = nla_get_u8(tb[IFLA_LINKMODE]);
+   write_unlock_bh(&dev_base_lock);
}
 
err = 0;
@@ -869,10 +857,6 @@ errout:
 
if (send_addr_notify)
call_netdevice_notifiers(NETDEV_CHANGEADDR, dev);
-
-   if (modified)
-   netdev_state_change(dev);
-
return err;
 }
 
@@ -990,7 +974,7 @@ struct net_device *rtnl_create_link(struct net *net, char 
*ifname,
if (tb[IFLA_TXQLEN])
dev->tx_queue_len = nla_get_u32(tb[IFLA_TXQLEN]);
if (tb[IFLA_OPERSTATE])
-   set_operstate(dev, nla_get_u8(tb[IFLA_OPERSTATE]), true);
+   set_operstate(dev, nla_get_u8(tb[IFLA_OPERSTATE]));
if (tb[IFLA_LINKMODE])
dev->link_mode = nla_get_u8(tb[IFLA_LINKMODE]);
 
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


ixgbe: Correctly obtain protocol information on transmit

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=41825d7158d4ca6488d562d73279392a886b9e7c
Commit: 41825d7158d4ca6488d562d73279392a886b9e7c
Parent: 5918bd88effd0233a048983570ec5803f5f753dc
Author: Auke Kok <[EMAIL PROTECTED]>
AuthorDate: Tue Feb 12 15:20:33 2008 -0800
Committer:  Jeff Garzik <[EMAIL PROTECTED]>
CommitDate: Fri Feb 15 10:52:08 2008 -0500

ixgbe: Correctly obtain protocol information on transmit

In reply to "RE: [Fwd: [PATCH 2.6.25] ixgbe/igb: correctly obtain protocol
information on transmit]" from Andy Gospodarek:

The driver was incorrectly looking at socket headers for
protocol information, needed for checksumming offload. Fix
this by not looking at the socket but frame headers instead.

This disregards extension headers but it's unclear that linux
generates those anyway.

Tested by Andy Gospodarek.

Signed-off-by: Auke Kok <[EMAIL PROTECTED]>
Signed-off-by: Jeff Garzik <[EMAIL PROTECTED]>
---
 drivers/net/ixgbe/ixgbe_main.c |   24 +---
 1 files changed, 21 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ixgbe/ixgbe_main.c b/drivers/net/ixgbe/ixgbe_main.c
index 540b647..23d0a4a 100644
--- a/drivers/net/ixgbe/ixgbe_main.c
+++ b/drivers/net/ixgbe/ixgbe_main.c
@@ -2277,11 +2277,29 @@ static bool ixgbe_tx_csum(struct ixgbe_adapter *adapter,
IXGBE_ADVTXD_DTYP_CTXT);
 
if (skb->ip_summed == CHECKSUM_PARTIAL) {
-   if (skb->protocol == htons(ETH_P_IP))
+   switch (skb->protocol) {
+   case __constant_htons(ETH_P_IP):
type_tucmd_mlhl |= IXGBE_ADVTXD_TUCMD_IPV4;
+   if (ip_hdr(skb)->protocol == IPPROTO_TCP)
+   type_tucmd_mlhl |=
+   IXGBE_ADVTXD_TUCMD_L4T_TCP;
+   break;
+
+   case __constant_htons(ETH_P_IPV6):
+   /* XXX what about other V6 headers?? */
+   if (ipv6_hdr(skb)->nexthdr == IPPROTO_TCP)
+   type_tucmd_mlhl |=
+   IXGBE_ADVTXD_TUCMD_L4T_TCP;
+   break;
 
-   if (skb->sk->sk_protocol == IPPROTO_TCP)
-   type_tucmd_mlhl |= IXGBE_ADVTXD_TUCMD_L4T_TCP;
+   default:
+   if (unlikely(net_ratelimit())) {
+   DPRINTK(PROBE, WARNING,
+"partial checksum but proto=%x!\n",
+skb->protocol);
+   }
+   break;
+   }
}
 
context_desc->type_tucmd_mlhl = cpu_to_le32(type_tucmd_mlhl);
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[XFRM]: Fix ordering issue in xfrm_dst_hash_transfer().

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b791160b5af4ea95c72fb59d13079664beca1963
Commit: b791160b5af4ea95c72fb59d13079664beca1963
Parent: 82453021b8be85171350c695d7ebafe7b517c812
Author: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>
AuthorDate: Sun Feb 17 23:29:30 2008 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Sun Feb 17 23:29:30 2008 -0800

[XFRM]: Fix ordering issue in xfrm_dst_hash_transfer().

Keep ordering of policy entries with same selector in
xfrm_dst_hash_transfer().

Issue should not appear in usual cases because multiple policy entries
with same selector are basically not allowed so far.  Bug was pointed
out by Sebastien Decugis <[EMAIL PROTECTED]>.

We could convert bydst from hlist to list and use list_add_tail()
instead.

Signed-off-by: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>
Acked-by: Sebastien Decugis <[EMAIL PROTECTED]>
Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 net/xfrm/xfrm_policy.c |   20 ++--
 1 files changed, 18 insertions(+), 2 deletions(-)

diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c
index 47219f9..9fc4c31 100644
--- a/net/xfrm/xfrm_policy.c
+++ b/net/xfrm/xfrm_policy.c
@@ -331,15 +331,31 @@ static void xfrm_dst_hash_transfer(struct hlist_head 
*list,
   struct hlist_head *ndsttable,
   unsigned int nhashmask)
 {
-   struct hlist_node *entry, *tmp;
+   struct hlist_node *entry, *tmp, *entry0 = NULL;
struct xfrm_policy *pol;
+   unsigned int h0 = 0;
 
+redo:
hlist_for_each_entry_safe(pol, entry, tmp, list, bydst) {
unsigned int h;
 
h = __addr_hash(&pol->selector.daddr, &pol->selector.saddr,
pol->family, nhashmask);
-   hlist_add_head(&pol->bydst, ndsttable+h);
+   if (!entry0) {
+   hlist_del(entry);
+   hlist_add_head(&pol->bydst, ndsttable+h);
+   h0 = h;
+   } else {
+   if (h != h0)
+   continue;
+   hlist_del(entry);
+   hlist_add_after(entry0, &pol->bydst);
+   }
+   entry0 = entry;
+   }
+   if (!hlist_empty(list)) {
+   entry0 = NULL;
+   goto redo;
}
 }
 
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


iwlwifi: only check for association id when associating with AP

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a6477249b4a1c2da6376f47fc175882be9adb844
Commit: a6477249b4a1c2da6376f47fc175882be9adb844
Parent: 58ff6d4db9b51533656173282de8d21f72080a49
Author: Reinette Chatre <[EMAIL PROTECTED]>
AuthorDate: Thu Feb 14 10:40:28 2008 -0800
Committer:  John W. Linville <[EMAIL PROTECTED]>
CommitDate: Fri Feb 15 13:44:19 2008 -0500

iwlwifi: only check for association id when associating with AP

There is no association process in IBSS mode - so testing the
association id is not needed.

Signed-off-by: Reinette Chatre <[EMAIL PROTECTED]>
Signed-off-by: Tomas Winkler <[EMAIL PROTECTED]>
CC: Richard Scherping <[EMAIL PROTECTED]>
Signed-off-by: John W. Linville <[EMAIL PROTECTED]>
---
 drivers/net/wireless/iwlwifi/iwl3945-base.c |3 ++-
 drivers/net/wireless/iwlwifi/iwl4965-base.c |2 +-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/net/wireless/iwlwifi/iwl3945-base.c 
b/drivers/net/wireless/iwlwifi/iwl3945-base.c
index 03a0756..40b71bc 100644
--- a/drivers/net/wireless/iwlwifi/iwl3945-base.c
+++ b/drivers/net/wireless/iwlwifi/iwl3945-base.c
@@ -2812,7 +2812,8 @@ static int iwl3945_tx_skb(struct iwl3945_priv *priv,
 #endif
 
/* drop all data frame if we are not associated */
-   if ((!iwl3945_is_associated(priv) || !priv->assoc_id) &&
+   if ((!iwl3945_is_associated(priv) ||
+((priv->iw_mode == IEEE80211_IF_TYPE_STA) && !priv->assoc_id)) &&
((fc & IEEE80211_FCTL_FTYPE) == IEEE80211_FTYPE_DATA)) {
IWL_DEBUG_DROP("Dropping - !iwl3945_is_associated\n");
goto drop_unlock;
diff --git a/drivers/net/wireless/iwlwifi/iwl4965-base.c 
b/drivers/net/wireless/iwlwifi/iwl4965-base.c
index 2c67562..a23d479 100644
--- a/drivers/net/wireless/iwlwifi/iwl4965-base.c
+++ b/drivers/net/wireless/iwlwifi/iwl4965-base.c
@@ -2940,7 +2940,7 @@ static int iwl4965_tx_skb(struct iwl4965_priv *priv,
/* drop all data frame if we are not associated */
if (((fc & IEEE80211_FCTL_FTYPE) == IEEE80211_FTYPE_DATA) &&
   (!iwl4965_is_associated(priv) ||
-   !priv->assoc_id ||
+   ((priv->iw_mode == IEEE80211_IF_TYPE_STA) && !priv->assoc_id) ||
!priv->assoc_station_added)) {
IWL_DEBUG_DROP("Dropping - !iwl4965_is_associated\n");
goto drop_unlock;
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[WATCHDOG] blackfin Watchdog driver: relocate all strings used in __init functions to __initdata

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=bb59b5578a73d0e0e4e208a014fa7ea0c4f0ccb4
Commit: bb59b5578a73d0e0e4e208a014fa7ea0c4f0ccb4
Parent: 6ea8115bb6f359df4f45152f2b40e1d4d1891392
Author: Mike Frysinger <[EMAIL PROTECTED]>
AuthorDate: Wed Jan 30 17:38:21 2008 +0800
Committer:  Wim Van Sebroeck <[EMAIL PROTECTED]>
CommitDate: Mon Feb 18 16:54:11 2008 +

[WATCHDOG] blackfin Watchdog driver: relocate all strings used in __init 
functions to __initdata

Signed-off-by: Mike Frysinger <[EMAIL PROTECTED]>
Signed-off-by: Bryan Wu <[EMAIL PROTECTED]>
Signed-off-by: Wim Van Sebroeck <[EMAIL PROTECTED]>
---
 drivers/watchdog/bfin_wdt.c |7 ---
 1 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/drivers/watchdog/bfin_wdt.c b/drivers/watchdog/bfin_wdt.c
index 472be10..1237113 100644
--- a/drivers/watchdog/bfin_wdt.c
+++ b/drivers/watchdog/bfin_wdt.c
@@ -29,6 +29,7 @@
 
 #define stamp(fmt, args...) pr_debug("%s:%i: " fmt "\n", __func__, __LINE__, 
## args)
 #define stampit() stamp("here i am")
+#define pr_init(fmt, args...) ({ static const __initdata char __fmt[] = fmt; 
printk(__fmt, ## args); })
 
 #define WATCHDOG_NAME "bfin-wdt"
 #define PFX WATCHDOG_NAME ": "
@@ -445,19 +446,19 @@ static int __init bfin_wdt_init(void)
 
ret = register_reboot_notifier(&bfin_wdt_notifier);
if (ret) {
-   printk(KERN_ERR PFX "cannot register reboot notifier 
(err=%d)\n", ret);
+   pr_init(KERN_ERR PFX "cannot register reboot notifier 
(err=%d)\n", ret);
return ret;
}
 
ret = misc_register(&bfin_wdt_miscdev);
if (ret) {
-   printk(KERN_ERR PFX "cannot register miscdev on minor=%d 
(err=%d)\n",
+   pr_init(KERN_ERR PFX "cannot register miscdev on minor=%d 
(err=%d)\n",
   WATCHDOG_MINOR, ret);
unregister_reboot_notifier(&bfin_wdt_notifier);
return ret;
}
 
-   printk(KERN_INFO PFX "initialized: timeout=%d sec (nowayout=%d)\n",
+   pr_init(KERN_INFO PFX "initialized: timeout=%d sec (nowayout=%d)\n",
   timeout, nowayout);
 
return 0;
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


net/8021q/vlan_dev.c: Use print_mac.

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=235365f310b7056293877c0ead50425f25c7
Commit: 235365f310b7056293877c0ead50425f25c7
Parent: b791160b5af4ea95c72fb59d13079664beca1963
Author: Joe Perches <[EMAIL PROTECTED]>
AuthorDate: Sun Feb 17 23:34:54 2008 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Sun Feb 17 23:34:54 2008 -0800

net/8021q/vlan_dev.c: Use print_mac.

Remove direct use of MAC_FMT

Signed-off-by: Joe Perches <[EMAIL PROTECTED]>
Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 net/8021q/vlan_dev.c |   10 --
 1 files changed, 4 insertions(+), 6 deletions(-)

diff --git a/net/8021q/vlan_dev.c b/net/8021q/vlan_dev.c
index 77f04e4..fc60c6d 100644
--- a/net/8021q/vlan_dev.c
+++ b/net/8021q/vlan_dev.c
@@ -366,7 +366,8 @@ static int vlan_dev_hard_start_xmit(struct sk_buff *skb, 
struct net_device *dev)
 {
struct net_device_stats *stats = &dev->stats;
struct vlan_ethhdr *veth = (struct vlan_ethhdr *)(skb->data);
-
+   DECLARE_MAC_BUF(mac);
+   DECLARE_MAC_BUF(mac2);
/* Handle non-VLAN frames if they are sent to us, for example by DHCP.
 *
 * NOTE: THIS ASSUMES DIX ETHERNET, SPECIFICALLY NOT SUPPORTING
@@ -404,11 +405,8 @@ static int vlan_dev_hard_start_xmit(struct sk_buff *skb, 
struct net_device *dev)
 
pr_debug("%s: about to send skb: %p to dev: %s\n",
__FUNCTION__, skb, skb->dev->name);
-   pr_debug("  " MAC_FMT " " MAC_FMT " %4hx %4hx %4hx\n",
-veth->h_dest[0], veth->h_dest[1], veth->h_dest[2],
-veth->h_dest[3], veth->h_dest[4], veth->h_dest[5],
-veth->h_source[0], veth->h_source[1], veth->h_source[2],
-veth->h_source[3], veth->h_source[4], veth->h_source[5],
+   pr_debug("  %s %s %4hx %4hx %4hx\n",
+print_mac(mac, veth->h_dest), print_mac(mac2, veth->h_source),
 veth->h_vlan_proto, veth->h_vlan_TCI,
 veth->h_vlan_encapsulated_proto);
 
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Tsi108_eth: Add ethtool support

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9dde447a09ec8fc0ba8375a16fe6bed2470f0d14
Commit: 9dde447a09ec8fc0ba8375a16fe6bed2470f0d14
Parent: b1aefe58c21de4265223b563ae923b50f4c4be08
Author: Alex Bounine <[EMAIL PROTECTED]>
AuthorDate: Mon Feb 11 14:36:37 2008 -0500
Committer:  Jeff Garzik <[EMAIL PROTECTED]>
CommitDate: Mon Feb 11 14:47:29 2008 -0500

Tsi108_eth: Add ethtool support

Add ethtool support to tsi108_eth network driver.

Signed-off-by: Alexandre Bounine <[EMAIL PROTECTED]>
Signed-off-by: Jeff Garzik <[EMAIL PROTECTED]>
---
 drivers/net/tsi108_eth.c |   36 
 1 files changed, 36 insertions(+), 0 deletions(-)

diff --git a/drivers/net/tsi108_eth.c b/drivers/net/tsi108_eth.c
index bc38489..6f33f84 100644
--- a/drivers/net/tsi108_eth.c
+++ b/drivers/net/tsi108_eth.c
@@ -36,6 +36,7 @@
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -1519,12 +1520,46 @@ static void tsi108_init_mac(struct net_device *dev)
TSI_WRITE(TSI108_EC_INTMASK, ~0);
 }
 
+static int tsi108_get_settings(struct net_device *dev, struct ethtool_cmd *cmd)
+{
+   struct tsi108_prv_data *data = netdev_priv(dev);
+   unsigned long flags;
+   int rc;
+   
+   spin_lock_irqsave(&data->txlock, flags);
+   rc = mii_ethtool_gset(&data->mii_if, cmd);
+   spin_unlock_irqrestore(&data->txlock, flags);
+
+   return rc;
+}
+
+static int tsi108_set_settings(struct net_device *dev, struct ethtool_cmd *cmd)
+{
+   struct tsi108_prv_data *data = netdev_priv(dev);
+   unsigned long flags;
+   int rc;
+
+   spin_lock_irqsave(&data->txlock, flags);
+   rc = mii_ethtool_sset(&data->mii_if, cmd);
+   spin_unlock_irqrestore(&data->txlock, flags);
+   
+   return rc;
+}
+
 static int tsi108_do_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
 {
struct tsi108_prv_data *data = netdev_priv(dev);
+   if (!netif_running(dev))
+   return -EINVAL;
return generic_mii_ioctl(&data->mii_if, if_mii(rq), cmd, NULL);
 }
 
+static const struct ethtool_ops tsi108_ethtool_ops = {
+   .get_link   = ethtool_op_get_link,
+   .get_settings   = tsi108_get_settings,
+   .set_settings   = tsi108_set_settings,
+};
+
 static int
 tsi108_init_one(struct platform_device *pdev)
 {
@@ -1589,6 +1624,7 @@ tsi108_init_one(struct platform_device *pdev)
dev->get_stats = tsi108_get_stats;
netif_napi_add(dev, &data->napi, tsi108_poll, 64);
dev->do_ioctl = tsi108_do_ioctl;
+   dev->ethtool_ops = &tsi108_ethtool_ops;
 
/* Apparently, the Linux networking code won't use scatter-gather
 * if the hardware doesn't do checksums.  However, it's faster
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[SPARC64]: Remove DEBUG_BOOTMEM.

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=0f78e7542e94e8f64ed393289d7bfac032634620
Commit: 0f78e7542e94e8f64ed393289d7bfac032634620
Parent: b83ebf566b64d3702c6b50dbee2052623cd55ce5
Author: David S. Miller <[EMAIL PROTECTED]>
AuthorDate: Wed Feb 13 01:00:26 2008 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Wed Feb 13 01:00:26 2008 -0800

[SPARC64]: Remove DEBUG_BOOTMEM.

We'll replace it in the future with better logging facilities that can
be enabled at run time.

Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 arch/sparc64/Kconfig.debug |4 
 arch/sparc64/defconfig |1 -
 arch/sparc64/mm/init.c |   43 +--
 3 files changed, 1 insertions(+), 47 deletions(-)

diff --git a/arch/sparc64/Kconfig.debug b/arch/sparc64/Kconfig.debug
index a5faa36..6a4d28a 100644
--- a/arch/sparc64/Kconfig.debug
+++ b/arch/sparc64/Kconfig.debug
@@ -23,10 +23,6 @@ config STACK_DEBUG
depends on DEBUG_KERNEL
bool "Stack Overflow Detection Support"
 
-config DEBUG_BOOTMEM
-   depends on DEBUG_KERNEL
-   bool "Debug BOOTMEM initialization"
-
 config DEBUG_PAGEALLOC
bool "Debug page memory allocations"
depends on DEBUG_KERNEL && !HIBERNATION
diff --git a/arch/sparc64/defconfig b/arch/sparc64/defconfig
index 833d74b..50dc090 100644
--- a/arch/sparc64/defconfig
+++ b/arch/sparc64/defconfig
@@ -1396,7 +1396,6 @@ CONFIG_FORCED_INLINING=y
 # CONFIG_DEBUG_STACK_USAGE is not set
 # CONFIG_DEBUG_DCFLUSH is not set
 # CONFIG_STACK_DEBUG is not set
-# CONFIG_DEBUG_BOOTMEM is not set
 # CONFIG_DEBUG_PAGEALLOC is not set
 
 #
diff --git a/arch/sparc64/mm/init.c b/arch/sparc64/mm/init.c
index e726c45..035c732 100644
--- a/arch/sparc64/mm/init.c
+++ b/arch/sparc64/mm/init.c
@@ -739,11 +739,6 @@ static unsigned long __init choose_bootmap_pfn(unsigned 
long start_pfn,
avoid_end = PAGE_ALIGN(initrd_end);
 #endif
 
-#ifdef CONFIG_DEBUG_BOOTMEM
-   prom_printf("choose_bootmap_pfn: kern[%lx:%lx] avoid[%lx:%lx]\n",
-   kern_base, PAGE_ALIGN(kern_base + kern_size),
-   avoid_start, avoid_end);
-#endif
for (i = 0; i < pavail_ents; i++) {
unsigned long start, end;
 
@@ -777,10 +772,6 @@ static unsigned long __init choose_bootmap_pfn(unsigned 
long start_pfn,
}
 
/* OK, it doesn't overlap anything, use it.  */
-#ifdef CONFIG_DEBUG_BOOTMEM
-   prom_printf("choose_bootmap_pfn: Using %lx [%lx]\n",
-   start >> PAGE_SHIFT, start);
-#endif
return start >> PAGE_SHIFT;
}
}
@@ -920,10 +911,6 @@ static unsigned long __init bootmem_init(unsigned long 
*pages_avail,
unsigned long bootmap_pfn, bytes_avail, size;
int i;
 
-#ifdef CONFIG_DEBUG_BOOTMEM
-   prom_printf("bootmem_init: Scan pavail, ");
-#endif
-
bytes_avail = 0UL;
for (i = 0; i < pavail_ents; i++) {
end_of_phys_memory = pavail[i].phys_addr +
@@ -970,33 +957,20 @@ static unsigned long __init bootmem_init(unsigned long 
*pages_avail,
 
bootmap_pfn = choose_bootmap_pfn(min_low_pfn, end_pfn);
 
-#ifdef CONFIG_DEBUG_BOOTMEM
-   prom_printf("init_bootmem(min[%lx], bootmap[%lx], max[%lx])\n",
-   min_low_pfn, bootmap_pfn, max_low_pfn);
-#endif
bootmap_size = init_bootmem_node(NODE_DATA(0), bootmap_pfn,
 min_low_pfn, end_pfn);
 
/* Now register the available physical memory with the
 * allocator.
 */
-   for (i = 0; i < pavail_ents; i++) {
-#ifdef CONFIG_DEBUG_BOOTMEM
-   prom_printf("free_bootmem(pavail:%d): base[%lx] size[%lx]\n",
-   i, pavail[i].phys_addr, pavail[i].reg_size);
-#endif
+   for (i = 0; i < pavail_ents; i++)
free_bootmem(pavail[i].phys_addr, pavail[i].reg_size);
-   }
 
 #ifdef CONFIG_BLK_DEV_INITRD
if (initrd_start) {
size = initrd_end - initrd_start;
 
/* Reserve the initrd image area. */
-#ifdef CONFIG_DEBUG_BOOTMEM
-   prom_printf("reserve_bootmem(initrd): base[%llx] size[%lx]\n",
-   initrd_start, initrd_end);
-#endif
reserve_bootmem(initrd_start, size, BOOTMEM_DEFAULT);
 
initrd_start += PAGE_OFFSET;
@@ -1004,9 +978,6 @@ static unsigned long __init bootmem_init(unsigned long 
*pages_avail,
}
 #endif
/* Reserve the kernel text/data/bss. */
-#ifdef CONFIG_DEBUG_BOOTMEM
-   prom_printf("reserve_bootmem(kernel): base[%lx] size[%lx]\n", 
kern_base, kern_size);
-#endif
reserve_bootmem(kern_base, kern_size, BOOTMEM_DEFAULT);
*pages_avail -= PAGE_ALIGN(kern_size) >> PAGE_SHIFT;
 
@@ -1020,10 +991,6 @@ static unsigned long __init bootm

[IPV6]: Fix hardcoded removing of old module code

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5ee46e562c9c10a5e25920c4406a42061cf27839
Commit: 5ee46e562c9c10a5e25920c4406a42061cf27839
Parent: 05705e4e1158ad2c1a22817f27d91ff0758fd0a9
Author: Wang Chen <[EMAIL PROTECTED]>
AuthorDate: Sun Feb 17 22:34:53 2008 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Sun Feb 17 22:34:53 2008 -0800

[IPV6]: Fix hardcoded removing of old module code

Rusty hardcoded the old module code.
We can remove it now.

Signed-off-by: Wang Chen <[EMAIL PROTECTED]>
Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 net/ipv6/af_inet6.c |8 
 1 files changed, 0 insertions(+), 8 deletions(-)

diff --git a/net/ipv6/af_inet6.c b/net/ipv6/af_inet6.c
index bddac0e..f0aa977 100644
--- a/net/ipv6/af_inet6.c
+++ b/net/ipv6/af_inet6.c
@@ -752,14 +752,6 @@ static int __init inet6_init(void)
 
BUILD_BUG_ON(sizeof(struct inet6_skb_parm) > sizeof(dummy_skb->cb));
 
-#ifdef MODULE
-#if 0 /* FIXME --RR */
-   if (!mod_member_present(&__this_module, can_unload))
- return -EINVAL;
-
-   __this_module.can_unload = &ipv6_unload;
-#endif
-#endif
err = proto_register(&tcpv6_prot, 1);
if (err)
goto out;
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Smack: unlabeled outgoing ambient packets

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4bc87e62775052aac0be7574d5f84ff06f61c6b4
Commit: 4bc87e62775052aac0be7574d5f84ff06f61c6b4
Parent: 9a4c8546f3e7c893888bccc2b3416d6214f2664a
Author: Casey Schaufler <[EMAIL PROTECTED]>
AuthorDate: Fri Feb 15 15:24:25 2008 -0800
Committer:  Linus Torvalds <[EMAIL PROTECTED]>
CommitDate: Tue Feb 19 07:51:00 2008 -0800

Smack: unlabeled outgoing ambient packets

Smack uses CIPSO labeling, but allows for unlabeled packets by
specifying an "ambient" label that is applied to incoming unlabeled
packets.

Because the other end of the connection may dislike IP options, and ssh
is one know application that behaves thus, it is prudent to respond in
kind.

This patch changes the network labeling behavior such that an outgoing
packet that would be given a CIPSO label that matches the ambient label
is left unlabeled.  An "unlbl" domain is added and the netlabel
defaulting mechanism invoked rather than assuming that everything is
CIPSO.  Locking has been added around changes to the ambient label as
the mechanisms used to do so are more involved.

Signed-off-by: Casey Schaufler <[EMAIL PROTECTED]>
Acked-by: Paul Moore <[EMAIL PROTECTED]>
Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>
---
 security/smack/smack_lsm.c |   36 --
 security/smack/smackfs.c   |   61 +---
 2 files changed, 74 insertions(+), 23 deletions(-)

diff --git a/security/smack/smack_lsm.c b/security/smack/smack_lsm.c
index 2b5d6f7..25cbfa3 100644
--- a/security/smack/smack_lsm.c
+++ b/security/smack/smack_lsm.c
@@ -1251,9 +1251,8 @@ static void smack_to_secattr(char *smack, struct 
netlbl_lsm_secattr *nlsp)
 
switch (smack_net_nltype) {
case NETLBL_NLTYPE_CIPSOV4:
-   nlsp->domain = NULL;
-   nlsp->flags = NETLBL_SECATTR_DOMAIN;
-   nlsp->flags |= NETLBL_SECATTR_MLS_LVL;
+   nlsp->domain = kstrdup(smack, GFP_ATOMIC);
+   nlsp->flags = NETLBL_SECATTR_DOMAIN | NETLBL_SECATTR_MLS_LVL;
 
rc = smack_to_cipso(smack, &cipso);
if (rc == 0) {
@@ -1282,15 +1281,14 @@ static int smack_netlabel(struct sock *sk)
 {
struct socket_smack *ssp;
struct netlbl_lsm_secattr secattr;
-   int rc = 0;
+   int rc;
 
ssp = sk->sk_security;
netlbl_secattr_init(&secattr);
smack_to_secattr(ssp->smk_out, &secattr);
-   if (secattr.flags != NETLBL_SECATTR_NONE)
-   rc = netlbl_sock_setattr(sk, &secattr);
-
+   rc = netlbl_sock_setattr(sk, &secattr);
netlbl_secattr_destroy(&secattr);
+
return rc;
 }
 
@@ -1313,6 +1311,7 @@ static int smack_inode_setsecurity(struct inode *inode, 
const char *name,
struct inode_smack *nsp = inode->i_security;
struct socket_smack *ssp;
struct socket *sock;
+   int rc = 0;
 
if (value == NULL || size > SMK_LABELLEN)
return -EACCES;
@@ -1341,7 +1340,10 @@ static int smack_inode_setsecurity(struct inode *inode, 
const char *name,
ssp->smk_in = sp;
else if (strcmp(name, XATTR_SMACK_IPOUT) == 0) {
ssp->smk_out = sp;
-   return smack_netlabel(sock->sk);
+   rc = smack_netlabel(sock->sk);
+   if (rc != 0)
+   printk(KERN_WARNING "Smack: \"%s\" netlbl error %d.\n",
+  __func__, -rc);
} else
return -EOPNOTSUPP;
 
@@ -2214,6 +2216,9 @@ static void smack_sock_graft(struct sock *sk, struct 
socket *parent)
ssp->smk_packet[0] = '\0';
 
rc = smack_netlabel(sk);
+   if (rc != 0)
+   printk(KERN_WARNING "Smack: \"%s\" netlbl error %d.\n",
+  __func__, -rc);
 }
 
 /**
@@ -2346,6 +2351,20 @@ static int smack_secid_to_secctx(u32 secid, char 
**secdata, u32 *seclen)
 }
 
 /*
+ * smack_secctx_to_secid - return the secid for a smack label
+ * @secdata: smack label
+ * @seclen: how long result is
+ * @secid: outgoing integer
+ *
+ * Exists for audit and networking code.
+ */
+static int smack_secctx_to_secid(char *secdata, u32 seclen, u32 *secid)
+{
+   *secid = smack_to_secid(secdata);
+   return 0;
+}
+
+/*
  * smack_release_secctx - don't do anything.
  * @key_ref: unused
  * @context: unused
@@ -2475,6 +2494,7 @@ static struct security_operations smack_ops = {
.key_permission =   smack_key_permission,
 #endif /* CONFIG_KEYS */
.secid_to_secctx =  smack_secid_to_secctx,
+   .secctx_to_secid =  smack_secctx_to_secid,
.release_secctx =   smack_release_secctx,
 };
 
diff --git a/security/smack/smackfs.c b/security/smack/smackfs.c
index 15aa37f..358c92c 100644
--- a/security/smack/smackfs.c
+++ b/security/smack/smack

Tsi108_eth: fix link recovery after disconnect

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b1aefe58c21de4265223b563ae923b50f4c4be08
Commit: b1aefe58c21de4265223b563ae923b50f4c4be08
Parent: 85bbe2158340dafb060fc7fe55a8208fe08cae26
Author: Alex Bounine <[EMAIL PROTECTED]>
AuthorDate: Mon Feb 11 14:36:12 2008 -0500
Committer:  Jeff Garzik <[EMAIL PROTECTED]>
CommitDate: Mon Feb 11 14:47:18 2008 -0500

Tsi108_eth: fix link recovery after disconnect

Bug fix for tsi108_eth network driver.
This patch fixes a problem with link recovery after connection was lost.

Signed-off-by: Alexandre Bounine <[EMAIL PROTECTED]>
Signed-off-by: Jeff Garzik <[EMAIL PROTECTED]>
---
 drivers/net/tsi108_eth.c |   26 --
 1 files changed, 12 insertions(+), 14 deletions(-)

diff --git a/drivers/net/tsi108_eth.c b/drivers/net/tsi108_eth.c
index 5a730ba..bc38489 100644
--- a/drivers/net/tsi108_eth.c
+++ b/drivers/net/tsi108_eth.c
@@ -338,22 +338,21 @@ static void tsi108_check_phy(struct net_device *dev)
 
TSI_WRITE(TSI108_MAC_CFG2, mac_cfg2_reg);
TSI_WRITE(TSI108_EC_PORTCTRL, portctrl_reg);
+   }
 
-   if (data->link_up == 0) {
-   /* The manual says it can take 3-4 usecs for 
the speed change
-* to take effect.
-*/
-   udelay(5);
+   if (data->link_up == 0) {
+   /* The manual says it can take 3-4 usecs for the speed 
change
+* to take effect.
+*/
+   udelay(5);
 
-   spin_lock(&data->txlock);
-   if (is_valid_ether_addr(dev->dev_addr) && 
data->txfree)
-   netif_wake_queue(dev);
+   spin_lock(&data->txlock);
+   if (is_valid_ether_addr(dev->dev_addr) && data->txfree)
+   netif_wake_queue(dev);
 
-   data->link_up = 1;
-   spin_unlock(&data->txlock);
-   }
+   data->link_up = 1;
+   spin_unlock(&data->txlock);
}
-
} else {
if (data->link_up == 1) {
netif_stop_queue(dev);
@@ -1267,12 +1266,11 @@ static void tsi108_init_phy(struct net_device *dev)
 * PHY_STAT register before the link up status bit is set.
 */
 
-   data->link_up = 1;
+   data->link_up = 0;
 
while (!((phyval = tsi108_read_mii(data, MII_BMSR)) &
 BMSR_LSTATUS)) {
if (i++ > (MII_READ_DELAY / 10)) {
-   data->link_up = 0;
break;
}
spin_unlock_irqrestore(&phy_lock, flags);
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[S390] etr: fix compile error on !SMP

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=06cb92ffe418c4a9d5a70c5dff4f283e8e8df6e4
Commit: 06cb92ffe418c4a9d5a70c5dff4f283e8e8df6e4
Parent: b32ecdb7257821e5e42d9b9b2a427b02c89f85e7
Author: Heiko Carstens <[EMAIL PROTECTED]>
AuthorDate: Tue Feb 19 15:29:31 2008 +0100
Committer:  Martin Schwidefsky <[EMAIL PROTECTED]>
CommitDate: Tue Feb 19 15:29:34 2008 +0100

[S390] etr: fix compile error on !SMP

Since a5fbb6d1064be885d2a6b82f625186753cf74848
"KVM: fix !SMP build error" smp_call_function isn't a define anymore
that folds into nothing but a define that calls up_smp_call_function
with all parameters. Hence we cannot #ifdef out the unused code
anymore...
This seems to be the preferred method, so do this for s390 as well.

arch/s390/kernel/time.c: In function 'etr_sync_clock':
arch/s390/kernel/time.c:825: error: 'clock_sync_cpu_start' undeclared
arch/s390/kernel/time.c:862: error: 'clock_sync_cpu_end' undeclared

Signed-off-by: Heiko Carstens <[EMAIL PROTECTED]>
Signed-off-by: Martin Schwidefsky <[EMAIL PROTECTED]>
---
 arch/s390/kernel/time.c |2 --
 1 files changed, 0 insertions(+), 2 deletions(-)

diff --git a/arch/s390/kernel/time.c b/arch/s390/kernel/time.c
index 3bbac12..76a5dd1 100644
--- a/arch/s390/kernel/time.c
+++ b/arch/s390/kernel/time.c
@@ -744,7 +744,6 @@ static void etr_adjust_time(unsigned long long clock, 
unsigned long long delay)
}
 }
 
-#ifdef CONFIG_SMP
 static void etr_sync_cpu_start(void *dummy)
 {
int *in_sync = dummy;
@@ -777,7 +776,6 @@ static void etr_sync_cpu_start(void *dummy)
 static void etr_sync_cpu_end(void *dummy)
 {
 }
-#endif /* CONFIG_SMP */
 
 /*
  * Sync the TOD clock using the port refered to by aibp. This port
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[ATYFB]: Kill 'prom_palette' sparc code.

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=30b3cfe1f67550bb6ec6868507a78060ef98269a
Commit: 30b3cfe1f67550bb6ec6868507a78060ef98269a
Parent: 101788b0ab5464cf485c5d434ac30563e6f9e5fe
Author: David S. Miller <[EMAIL PROTECTED]>
AuthorDate: Mon Feb 18 15:26:43 2008 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Mon Feb 18 15:26:43 2008 -0800

[ATYFB]: Kill 'prom_palette' sparc code.

Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 drivers/video/aty/atyfb_base.c |   64 
 1 files changed, 0 insertions(+), 64 deletions(-)

diff --git a/drivers/video/aty/atyfb_base.c b/drivers/video/aty/atyfb_base.c
index d775eb6..62f9c6e 100644
--- a/drivers/video/aty/atyfb_base.c
+++ b/drivers/video/aty/atyfb_base.c
@@ -1913,61 +1913,6 @@ static int atyfb_mmap(struct fb_info *info, struct 
vm_area_struct *vma)
par->mmaped = 1;
return 0;
 }
-
-static struct {
-   u32 yoffset;
-   u8 r[2][256];
-   u8 g[2][256];
-   u8 b[2][256];
-} atyfb_save;
-
-static void atyfb_save_palette(struct atyfb_par *par, int enter)
-{
-   int i, tmp;
-
-   for (i = 0; i < 256; i++) {
-   tmp = aty_ld_8(DAC_CNTL, par) & 0xfc;
-   if (M64_HAS(EXTRA_BRIGHT))
-   tmp |= 0x2;
-   aty_st_8(DAC_CNTL, tmp, par);
-   aty_st_8(DAC_MASK, 0xff, par);
-
-   aty_st_8(DAC_R_INDEX, i, par);
-   atyfb_save.r[enter][i] = aty_ld_8(DAC_DATA, par);
-   atyfb_save.g[enter][i] = aty_ld_8(DAC_DATA, par);
-   atyfb_save.b[enter][i] = aty_ld_8(DAC_DATA, par);
-   aty_st_8(DAC_W_INDEX, i, par);
-   aty_st_8(DAC_DATA, atyfb_save.r[1 - enter][i], par);
-   aty_st_8(DAC_DATA, atyfb_save.g[1 - enter][i], par);
-   aty_st_8(DAC_DATA, atyfb_save.b[1 - enter][i], par);
-   }
-}
-
-static void atyfb_palette(int enter)
-{
-   struct atyfb_par *par;
-   struct fb_info *info;
-   int i;
-
-   for (i = 0; i < FB_MAX; i++) {
-   info = registered_fb[i];
-   if (info && info->fbops == &atyfb_ops) {
-   par = (struct atyfb_par *) info->par;
-   
-   atyfb_save_palette(par, enter);
-   if (enter) {
-   atyfb_save.yoffset = info->var.yoffset;
-   info->var.yoffset = 0;
-   set_off_pitch(par, info);
-   } else {
-   info->var.yoffset = atyfb_save.yoffset;
-   set_off_pitch(par, info);
-   }
-   aty_st_le32(CRTC_OFF_PITCH, par->crtc.off_pitch, par);
-   break;
-   }
-   }
-}
 #endif /* __sparc__ */
 
 
@@ -2670,10 +2615,6 @@ static int __devinit aty_init(struct fb_info *info)
goto aty_init_exit;
}
 
-#ifdef __sparc__
-   atyfb_save_palette(par, 0);
-#endif
-
 #ifdef CONFIG_FB_ATY_CT
if (!noaccel && M64_HAS(INTEGRATED))
aty_init_cursor(info);
@@ -2900,8 +2841,6 @@ static int atyfb_setcolreg(u_int regno, u_int red, u_int 
green, u_int blue,
 
 #ifdef __sparc__
 
-extern void (*prom_palette) (int);
-
 static int __devinit atyfb_setup_sparc(struct pci_dev *pdev,
struct fb_info *info, unsigned long addr)
 {
@@ -3536,9 +3475,6 @@ static int __devinit atyfb_pci_probe(struct pci_dev 
*pdev, const struct pci_devi
goto err_release_io;
 
 #ifdef __sparc__
-   if (!prom_palette)
-   prom_palette = atyfb_palette;
-
/*
 * Add /dev/fb mmap values.
 */
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Fix station address detection in smc

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a1a98b72dbd17e53cd92b8e78f404525ebcfd981
Commit: a1a98b72dbd17e53cd92b8e78f404525ebcfd981
Parent: 4a75834644ae32ded9bed14db39834d6d3bc4793
Author: Chuck Ebbert <[EMAIL PROTECTED]>
AuthorDate: Wed Feb 13 19:47:11 2008 -0500
Committer:  Jeff Garzik <[EMAIL PROTECTED]>
CommitDate: Fri Feb 15 10:51:37 2008 -0500

Fix station address detection in smc

Megahertz EM1144 PCMCIA ethernet adapter needs special handling
because it has two VERS_1 tuples and the station address is in
the second one. Conversion to generic handling of these fields
broke it. Reverting that fixes the device.

  https://bugzilla.redhat.com/show_bug.cgi?id=233255

Thanks go to Jon Stanley for not giving up on this one until the
problem was found.

Signed-off-by: Chuck Ebbert <[EMAIL PROTECTED]>
Signed-off-by: Jeff Garzik <[EMAIL PROTECTED]>
---
 drivers/net/pcmcia/smc91c92_cs.c |   12 ++--
 1 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/drivers/net/pcmcia/smc91c92_cs.c b/drivers/net/pcmcia/smc91c92_cs.c
index f18eca9..250eb19 100644
--- a/drivers/net/pcmcia/smc91c92_cs.c
+++ b/drivers/net/pcmcia/smc91c92_cs.c
@@ -559,8 +559,16 @@ static int mhz_setup(struct pcmcia_device *link)
 
 /* Read the station address from the CIS.  It is stored as the last
(fourth) string in the Version 1 Version/ID tuple. */
-if (link->prod_id[3]) {
-   station_addr = link->prod_id[3];
+tuple->DesiredTuple = CISTPL_VERS_1;
+if (first_tuple(link, tuple, parse) != CS_SUCCESS) {
+   rc = -1;
+   goto free_cfg_mem;
+}
+/* Ugh -- the EM1144 card has two VERS_1 tuples!?! */
+if (next_tuple(link, tuple, parse) != CS_SUCCESS)
+   first_tuple(link, tuple, parse);
+if (parse->version_1.ns > 3) {
+   station_addr = parse->version_1.str + parse->version_1.ofs[3];
if (cvt_ascii_address(dev, station_addr) == 0) {
rc = 0;
goto free_cfg_mem;
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


make struct def_blk_aops static

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4c54ac62dceecedd82d4a865017bba0b738e2897
Commit: 4c54ac62dceecedd82d4a865017bba0b738e2897
Parent: 52ff4cae65b45dcdfa23de09619754d6f380f31e
Author: Adrian Bunk <[EMAIL PROTECTED]>
AuthorDate: Mon Feb 18 13:48:31 2008 +0100
Committer:  Jens Axboe <[EMAIL PROTECTED]>
CommitDate: Tue Feb 19 10:04:00 2008 +0100

make struct def_blk_aops static

This patch makes the needlessly global struct def_blk_aops static.

Signed-off-by: Adrian Bunk <[EMAIL PROTECTED]>
Signed-off-by: Jens Axboe <[EMAIL PROTECTED]>
---
 fs/block_dev.c |4 +++-
 include/linux/fs.h |1 -
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/fs/block_dev.c b/fs/block_dev.c
index 67fe72c..8335f0e 100644
--- a/fs/block_dev.c
+++ b/fs/block_dev.c
@@ -31,6 +31,8 @@ struct bdev_inode {
struct inode vfs_inode;
 };
 
+static const struct address_space_operations def_blk_aops;
+
 static inline struct bdev_inode *BDEV_I(struct inode *inode)
 {
return container_of(inode, struct bdev_inode, vfs_inode);
@@ -1334,7 +1336,7 @@ static long block_ioctl(struct file *file, unsigned cmd, 
unsigned long arg)
return blkdev_ioctl(file->f_mapping->host, file, cmd, arg);
 }
 
-const struct address_space_operations def_blk_aops = {
+static const struct address_space_operations def_blk_aops = {
.readpage   = blkdev_readpage,
.writepage  = blkdev_writepage,
.sync_page  = block_sync_page,
diff --git a/include/linux/fs.h b/include/linux/fs.h
index 98ffb6e..b84b848 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -1590,7 +1590,6 @@ extern void bd_set_size(struct block_device *, loff_t 
size);
 extern void bd_forget(struct inode *inode);
 extern void bdput(struct block_device *);
 extern struct block_device *open_by_devnum(dev_t, unsigned);
-extern const struct address_space_operations def_blk_aops;
 #else
 static inline void bd_forget(struct inode *inode) {}
 #endif
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[NETLABEL]: Move some initialization code into __init section.

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=05705e4e1158ad2c1a22817f27d91ff0758fd0a9
Commit: 05705e4e1158ad2c1a22817f27d91ff0758fd0a9
Parent: 227c43c3bca76df704231324405980851dc7f528
Author: Pavel Emelyanov <[EMAIL PROTECTED]>
AuthorDate: Sun Feb 17 22:33:57 2008 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Sun Feb 17 22:33:57 2008 -0800

[NETLABEL]: Move some initialization code into __init section.

Everything that is called from netlbl_init() can be marked with
__init. This moves 620 bytes from .text section to .text.init one.

Signed-off-by: Pavel Emelyanov <[EMAIL PROTECTED]>
Acked-by: Paul Moore <[EMAIL PROTECTED]>
Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 net/netlabel/netlabel_cipso_v4.c   |2 +-
 net/netlabel/netlabel_domainhash.c |2 +-
 net/netlabel/netlabel_mgmt.c   |2 +-
 net/netlabel/netlabel_unlabeled.c  |6 +++---
 net/netlabel/netlabel_user.c   |2 +-
 5 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/net/netlabel/netlabel_cipso_v4.c b/net/netlabel/netlabel_cipso_v4.c
index 283ff4a..fdc14a0 100644
--- a/net/netlabel/netlabel_cipso_v4.c
+++ b/net/netlabel/netlabel_cipso_v4.c
@@ -761,7 +761,7 @@ static struct genl_ops netlbl_cipsov4_ops[] = {
  * mechanism.  Returns zero on success, negative values on failure.
  *
  */
-int netlbl_cipsov4_genl_init(void)
+int __init netlbl_cipsov4_genl_init(void)
 {
int ret_val, i;
 
diff --git a/net/netlabel/netlabel_domainhash.c 
b/net/netlabel/netlabel_domainhash.c
index fd46231..02c2f7c 100644
--- a/net/netlabel/netlabel_domainhash.c
+++ b/net/netlabel/netlabel_domainhash.c
@@ -171,7 +171,7 @@ static struct netlbl_dom_map 
*netlbl_domhsh_search_def(const char *domain)
  * values on error.
  *
  */
-int netlbl_domhsh_init(u32 size)
+int __init netlbl_domhsh_init(u32 size)
 {
u32 iter;
struct netlbl_domhsh_tbl *hsh_tbl;
diff --git a/net/netlabel/netlabel_mgmt.c b/net/netlabel/netlabel_mgmt.c
index 05d9886..22c1912 100644
--- a/net/netlabel/netlabel_mgmt.c
+++ b/net/netlabel/netlabel_mgmt.c
@@ -588,7 +588,7 @@ static struct genl_ops netlbl_mgmt_genl_ops[] = {
  * mechanism.  Returns zero on success, negative values on failure.
  *
  */
-int netlbl_mgmt_genl_init(void)
+int __init netlbl_mgmt_genl_init(void)
 {
int ret_val, i;
 
diff --git a/net/netlabel/netlabel_unlabeled.c 
b/net/netlabel/netlabel_unlabeled.c
index f0f1322..4478f2f 100644
--- a/net/netlabel/netlabel_unlabeled.c
+++ b/net/netlabel/netlabel_unlabeled.c
@@ -1624,7 +1624,7 @@ static struct genl_ops netlbl_unlabel_genl_ops[] = {
  * mechanism.  Returns zero on success, negative values on failure.
  *
  */
-int netlbl_unlabel_genl_init(void)
+int __init netlbl_unlabel_genl_init(void)
 {
int ret_val, i;
 
@@ -1661,7 +1661,7 @@ static struct notifier_block 
netlbl_unlhsh_netdev_notifier = {
  * non-zero values on error.
  *
  */
-int netlbl_unlabel_init(u32 size)
+int __init netlbl_unlabel_init(u32 size)
 {
u32 iter;
struct netlbl_unlhsh_tbl *hsh_tbl;
@@ -1765,7 +1765,7 @@ unlabel_getattr_nolabel:
  * and to send unlabeled network traffic by default.
  *
  */
-int netlbl_unlabel_defconf(void)
+int __init netlbl_unlabel_defconf(void)
 {
int ret_val;
struct netlbl_dom_map *entry;
diff --git a/net/netlabel/netlabel_user.c b/net/netlabel/netlabel_user.c
index 023fc8f..b17d420 100644
--- a/net/netlabel/netlabel_user.c
+++ b/net/netlabel/netlabel_user.c
@@ -59,7 +59,7 @@
  * non-zero on failure.
  *
  */
-int netlbl_netlink_init(void)
+int __init netlbl_netlink_init(void)
 {
int ret_val;
 
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


make blk_settings_init() static

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=52ff4cae65b45dcdfa23de09619754d6f380f31e
Commit: 52ff4cae65b45dcdfa23de09619754d6f380f31e
Parent: 13341598263011e079386b22ea35e482f97714c0
Author: Adrian Bunk <[EMAIL PROTECTED]>
AuthorDate: Mon Feb 18 13:45:55 2008 +0100
Committer:  Jens Axboe <[EMAIL PROTECTED]>
CommitDate: Tue Feb 19 10:04:00 2008 +0100

make blk_settings_init() static

blk_settings_init() can become static.

Signed-off-by: Adrian Bunk <[EMAIL PROTECTED]>
Signed-off-by: Jens Axboe <[EMAIL PROTECTED]>
---
 block/blk-settings.c |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/block/blk-settings.c b/block/blk-settings.c
index c8d0c57..13536a3 100644
--- a/block/blk-settings.c
+++ b/block/blk-settings.c
@@ -386,7 +386,7 @@ void blk_queue_update_dma_alignment(struct request_queue 
*q, int mask)
 }
 EXPORT_SYMBOL(blk_queue_update_dma_alignment);
 
-int __init blk_settings_init(void)
+static int __init blk_settings_init(void)
 {
blk_max_low_pfn = max_low_pfn - 1;
blk_max_pfn = max_pfn - 1;
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


rt2x00: Add new USB ID to rt2500usb

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=db433febbadaf1fa9862fb5068b119be1d312d76
Commit: db433febbadaf1fa9862fb5068b119be1d312d76
Parent: 588e6cdfccb847661c62a2cc0f301d689b94ee64
Author: Ivo van Doorn <[EMAIL PROTECTED]>
AuthorDate: Sun Feb 10 11:21:57 2008 +0100
Committer:  John W. Linville <[EMAIL PROTECTED]>
CommitDate: Fri Feb 15 13:44:18 2008 -0500

rt2x00: Add new USB ID to rt2500usb

Signed-off-by: Ivo van Doorn <[EMAIL PROTECTED]>
Signed-off-by: John W. Linville <[EMAIL PROTECTED]>
---
 drivers/net/wireless/rt2x00/rt2500usb.c |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/net/wireless/rt2x00/rt2500usb.c 
b/drivers/net/wireless/rt2x00/rt2500usb.c
index 86ded40..4ca9730 100644
--- a/drivers/net/wireless/rt2x00/rt2500usb.c
+++ b/drivers/net/wireless/rt2x00/rt2500usb.c
@@ -1839,11 +1839,11 @@ static struct usb_device_id rt2500usb_device_table[] = {
/* Hercules */
{ USB_DEVICE(0x06f8, 0xe000), USB_DEVICE_DATA(&rt2500usb_ops) },
/* Melco */
+   { USB_DEVICE(0x0411, 0x005e), USB_DEVICE_DATA(&rt2500usb_ops) },
{ USB_DEVICE(0x0411, 0x0066), USB_DEVICE_DATA(&rt2500usb_ops) },
{ USB_DEVICE(0x0411, 0x0067), USB_DEVICE_DATA(&rt2500usb_ops) },
{ USB_DEVICE(0x0411, 0x008b), USB_DEVICE_DATA(&rt2500usb_ops) },
{ USB_DEVICE(0x0411, 0x0097), USB_DEVICE_DATA(&rt2500usb_ops) },
-
/* MSI */
{ USB_DEVICE(0x0db0, 0x6861), USB_DEVICE_DATA(&rt2500usb_ops) },
{ USB_DEVICE(0x0db0, 0x6865), USB_DEVICE_DATA(&rt2500usb_ops) },
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[S390] qdio: fix qdio_activate timeout handling.

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b32ecdb7257821e5e42d9b9b2a427b02c89f85e7
Commit: b32ecdb7257821e5e42d9b9b2a427b02c89f85e7
Parent: 591bb4f637e48950d35e2ca01e6b962c519d96e5
Author: Heiko Carstens <[EMAIL PROTECTED]>
AuthorDate: Tue Feb 19 15:29:30 2008 +0100
Committer:  Martin Schwidefsky <[EMAIL PROTECTED]>
CommitDate: Tue Feb 19 15:29:34 2008 +0100

[S390] qdio: fix qdio_activate timeout handling.

Current code in qdio_activate waits for at least 5 seconds
until it returns. It may return earlier if an error occurs,
but not if everything is ok. This large timeout value
became visible with commit dfa77f611ff295598e218aa0eb6efa73a5cf26d0
"qdio: set QDIO_ACTIVATE_TIMEOUT to 5s", which intended to
fix the timeout value which was zero. In turn setting an
FCP adapter online took 5 seconds.

In practice waiting for 5ms before continuing is sufficient
as pointed out by Utz Bacher and Cornelia Huck.

Cc: Utz Bacher <[EMAIL PROTECTED]>
Cc: Jan Glauber <[EMAIL PROTECTED]>
Cc: Ursula Braun <[EMAIL PROTECTED]>
Cc: Martin Peschke <[EMAIL PROTECTED]>
Acked-by: Cornelia Huck <[EMAIL PROTECTED]>
Signed-off-by: Heiko Carstens <[EMAIL PROTECTED]>
Signed-off-by: Martin Schwidefsky <[EMAIL PROTECTED]>
---
 drivers/s390/cio/qdio.c |   10 ++
 drivers/s390/cio/qdio.h |2 +-
 2 files changed, 3 insertions(+), 9 deletions(-)

diff --git a/drivers/s390/cio/qdio.c b/drivers/s390/cio/qdio.c
index 097fc09..cd9cfc1 100644
--- a/drivers/s390/cio/qdio.c
+++ b/drivers/s390/cio/qdio.c
@@ -32,7 +32,7 @@
 
 #include 
 #include 
-
+#include 
 #include 
 #include 
 #include 
@@ -3332,13 +3332,7 @@ qdio_activate(struct ccw_device *cdev, int flags)
}
}
 
-   wait_event_interruptible_timeout(cdev->private->wait_q,
-((irq_ptr->state ==
- QDIO_IRQ_STATE_STOPPED) ||
- (irq_ptr->state ==
-  QDIO_IRQ_STATE_ERR)),
-QDIO_ACTIVATE_TIMEOUT);
-
+   msleep(QDIO_ACTIVATE_TIMEOUT);
switch (irq_ptr->state) {
case QDIO_IRQ_STATE_STOPPED:
case QDIO_IRQ_STATE_ERR:
diff --git a/drivers/s390/cio/qdio.h b/drivers/s390/cio/qdio.h
index 37870e4..da8a272 100644
--- a/drivers/s390/cio/qdio.h
+++ b/drivers/s390/cio/qdio.h
@@ -57,10 +57,10 @@
of the queue to 0 */
 
 #define QDIO_ESTABLISH_TIMEOUT (1*HZ)
-#define QDIO_ACTIVATE_TIMEOUT (5*HZ)
 #define QDIO_CLEANUP_CLEAR_TIMEOUT (20*HZ)
 #define QDIO_CLEANUP_HALT_TIMEOUT (10*HZ)
 #define QDIO_FORCE_CHECK_TIMEOUT (10*HZ)
+#define QDIO_ACTIVATE_TIMEOUT (5) /* 5 ms */
 
 enum qdio_irq_states {
QDIO_IRQ_STATE_INACTIVE,
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


e1000e: Fix logic reversal keeping link active

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=23b66e2bc2bcebacab7292d7731b7372065b3f98
Commit: 23b66e2bc2bcebacab7292d7731b7372065b3f98
Parent: 14782ca8262818921a460c80a761a93740b838a2
Author: Auke Kok <[EMAIL PROTECTED]>
AuthorDate: Mon Feb 11 09:25:51 2008 -0800
Committer:  Jeff Garzik <[EMAIL PROTECTED]>
CommitDate: Mon Feb 11 14:51:40 2008 -0500

e1000e: Fix logic reversal keeping link active

A logic mishap caused the adapter to keep link while we can
disable it due to WoL not being active, and vice versa.

Signed-off-by: Auke Kok <[EMAIL PROTECTED]>
Signed-off-by: Jeff Garzik <[EMAIL PROTECTED]>
---
 drivers/net/e1000e/netdev.c |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/net/e1000e/netdev.c b/drivers/net/e1000e/netdev.c
index f58f017..b9b0d32 100644
--- a/drivers/net/e1000e/netdev.c
+++ b/drivers/net/e1000e/netdev.c
@@ -2008,7 +2008,7 @@ static void e1000_power_down_phy(struct e1000_adapter 
*adapter)
u16 mii_reg;
 
/* WoL is enabled */
-   if (!adapter->wol)
+   if (adapter->wol)
return;
 
/* non-copper PHY? */
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


ath5k: correct padding in tx descriptors

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=281c56dd276e587a7b4a65764ac68ae250e73235
Commit: 281c56dd276e587a7b4a65764ac68ae250e73235
Parent: bd196ec7f03fff6935f66a9a3cf27accd34a75b9
Author: Bruno Randolf <[EMAIL PROTECTED]>
AuthorDate: Tue Feb 5 18:44:55 2008 +0900
Committer:  John W. Linville <[EMAIL PROTECTED]>
CommitDate: Fri Feb 15 13:44:17 2008 -0500

ath5k: correct padding in tx descriptors

when setting up the tx descriptors for the hardware we must account for any
padding between the header and the data we might have added previously. 
frame
len is the length of the frame in the air (including FCS but no padding) and
buffer len is the length of the buffer (including padding, but without FCS).

changing the way ah_setup_tx_desc is called: now excluding the FCS, since 
it's
easier to add that in the function where we need it.

before this fix we sent trailing zero bytes after the packet (because frame 
len
included the padding) which was not a big problem without WEP, but with WEP
this resultes in a wrong WEP checksum and the packet is discarded - which is
how i noticed at all ;)

an easy way to run into header padding problems, btw, is to connect to a QoS
(WME) enabled access point (eg. madwifi) - QoS data frames are 2 byte longer
and will require padding.

this patch applies on top of luis latest patch series from 04.02.2008.

drivers/net/wireless/ath5k/base.c:  Changes-licensed-under: 3-Clause-BSD
drivers/net/wireless/ath5k/hw.c:Changes-licensed-under: ISC

Signed-off-by: Bruno Randolf <[EMAIL PROTECTED]>
Signed-off-by: John W. Linville <[EMAIL PROTECTED]>
---
 drivers/net/wireless/ath5k/base.c |4 ++--
 drivers/net/wireless/ath5k/hw.c   |   34 --
 2 files changed, 22 insertions(+), 16 deletions(-)

diff --git a/drivers/net/wireless/ath5k/base.c 
b/drivers/net/wireless/ath5k/base.c
index ddc8714..dfdaec0 100644
--- a/drivers/net/wireless/ath5k/base.c
+++ b/drivers/net/wireless/ath5k/base.c
@@ -1256,7 +1256,7 @@ ath5k_txbuf_setup(struct ath5k_softc *sc, struct 
ath5k_buf *bf,
if (ctl->flags & IEEE80211_TXCTL_NO_ACK)
flags |= AR5K_TXDESC_NOACK;
 
-   pktlen = skb->len + FCS_LEN;
+   pktlen = skb->len;
 
if (!(ctl->flags & IEEE80211_TXCTL_DO_NOT_ENCRYPT)) {
keyidx = ctl->key_idx;
@@ -1952,7 +1952,7 @@ ath5k_beacon_setup(struct ath5k_softc *sc, struct 
ath5k_buf *bf,
}
 
ds->ds_data = bf->skbaddr;
-   ret = ah->ah_setup_tx_desc(ah, ds, skb->len + FCS_LEN,
+   ret = ah->ah_setup_tx_desc(ah, ds, skb->len,
ieee80211_get_hdrlen_from_skb(skb),
AR5K_PKT_TYPE_BEACON, (ctl->power_level * 2), 
ctl->tx_rate, 1,
AR5K_TXKEYIX_INVALID, antenna, flags, 0, 0);
diff --git a/drivers/net/wireless/ath5k/hw.c b/drivers/net/wireless/ath5k/hw.c
index 3a4bf40..1ab57aa 100644
--- a/drivers/net/wireless/ath5k/hw.c
+++ b/drivers/net/wireless/ath5k/hw.c
@@ -3506,7 +3506,7 @@ ath5k_hw_setup_2word_tx_desc(struct ath5k_hw *ah, struct 
ath5k_desc *desc,
 {
u32 frame_type;
struct ath5k_hw_2w_tx_desc *tx_desc;
-   unsigned int buff_len;
+   unsigned int frame_len;
 
tx_desc = (struct ath5k_hw_2w_tx_desc *)&desc->ds_ctl0;
 
@@ -3537,22 +3537,25 @@ ath5k_hw_setup_2word_tx_desc(struct ath5k_hw *ah, 
struct ath5k_desc *desc,
/* Setup control descriptor */
 
/* Verify and set frame length */
-   if (pkt_len & ~AR5K_2W_TX_DESC_CTL0_FRAME_LEN)
+
+   /* remove padding we might have added before */
+   frame_len = pkt_len - (hdr_len & 3) + FCS_LEN;
+
+   if (frame_len & ~AR5K_2W_TX_DESC_CTL0_FRAME_LEN)
return -EINVAL;
 
-   tx_desc->tx_control_0 = pkt_len & AR5K_2W_TX_DESC_CTL0_FRAME_LEN;
+   tx_desc->tx_control_0 = frame_len & AR5K_2W_TX_DESC_CTL0_FRAME_LEN;
 
/* Verify and set buffer length */
-   buff_len = pkt_len - FCS_LEN;
 
/* NB: beacon's BufLen must be a multiple of 4 bytes */
if(type == AR5K_PKT_TYPE_BEACON)
-   buff_len = roundup(buff_len, 4);
+   pkt_len = roundup(pkt_len, 4);
 
-   if (buff_len & ~AR5K_2W_TX_DESC_CTL1_BUF_LEN)
+   if (pkt_len & ~AR5K_2W_TX_DESC_CTL1_BUF_LEN)
return -EINVAL;
 
-   tx_desc->tx_control_1 = buff_len & AR5K_2W_TX_DESC_CTL1_BUF_LEN;
+   tx_desc->tx_control_1 = pkt_len & AR5K_2W_TX_DESC_CTL1_BUF_LEN;
 
/*
 * Verify and set header length
@@ -3634,7 +3637,7 @@ static int ath5k_hw_setup_4word_tx_desc(struct ath5k_hw 
*ah,
 {
struct ath5k_hw_4w_tx_desc *tx_desc;
struct ath5k_hw_tx_status *tx_status;
-   unsigned int buff_len;
+   unsigned int frame_len;
 
ATH5K_TRACE(ah->ah_sc);
tx_desc = (struct ath5k_hw_4w_tx_desc *)&desc->

e1000: warn if this driver is used for e1000e devices

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=14782ca8262818921a460c80a761a93740b838a2
Commit: 14782ca8262818921a460c80a761a93740b838a2
Parent: 030ed68bf063e99cea6371d1fb771a870cab1c1d
Author: Auke Kok <[EMAIL PROTECTED]>
AuthorDate: Mon Feb 11 09:25:46 2008 -0800
Committer:  Jeff Garzik <[EMAIL PROTECTED]>
CommitDate: Mon Feb 11 14:51:40 2008 -0500

e1000: warn if this driver is used for e1000e devices

We're already starting to see reports from users still
using e1000 where they should be using e1000e now that this is
actually possible. Just to prevent some of this thrash, add
a big warning on load on these devices that people should
switch to e1000e.

Signed-off-by: Auke Kok <[EMAIL PROTECTED]>
Acked-by: Jesse Brandeburg <[EMAIL PROTECTED]>
Signed-off-by: Jeff Garzik <[EMAIL PROTECTED]>
---
 drivers/net/e1000/e1000_main.c |8 
 1 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c
index d4ee8ec..0991648 100644
--- a/drivers/net/e1000/e1000_main.c
+++ b/drivers/net/e1000/e1000_main.c
@@ -1195,6 +1195,14 @@ e1000_probe(struct pci_dev *pdev,
 
printk("%s\n", print_mac(mac, netdev->dev_addr));
 
+   if (adapter->hw.bus_type == e1000_bus_type_pci_express) {
+   DPRINTK(PROBE, WARNING, "This device (id %04x:%04x) will no "
+   "longer be supported by this driver in the future.\n",
+   pdev->vendor, pdev->device);
+   DPRINTK(PROBE, WARNING, "please use the \"e1000e\" "
+   "driver instead.\n");
+   }
+
/* reset the hardware with the new settings */
e1000_reset(adapter);
 
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


iwlwifi: earlier rx allocation

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d68ab68066805fdfee1f5f29ec2ec0179fd92fe1
Commit: d68ab68066805fdfee1f5f29ec2ec0179fd92fe1
Parent: c342a1b91f6ccd317c68defd3b4c7bb75397d967
Author: Mohamed Abbas <[EMAIL PROTECTED]>
AuthorDate: Thu Feb 7 13:16:33 2008 -0800
Committer:  John W. Linville <[EMAIL PROTECTED]>
CommitDate: Fri Feb 15 13:44:18 2008 -0500

iwlwifi: earlier rx allocation

Value of count is used to decide when to replenish rx buffers. If it is
equal or above 8 we replenish the buffers. Ensure there is no starvation
by initializing count to 8 - thus forcing replenish at first iteration.

This is helpful when rx receives batches of buffers smaller than 8.

Signed-off-by: Mohamed Abbas <[EMAIL PROTECTED]>
Signed-off-by: Reinette Chatre <[EMAIL PROTECTED]>
Signed-off-by: John W. Linville <[EMAIL PROTECTED]>
---
 drivers/net/wireless/iwlwifi/iwl3945-base.c |2 +-
 drivers/net/wireless/iwlwifi/iwl4965-base.c |2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/wireless/iwlwifi/iwl3945-base.c 
b/drivers/net/wireless/iwlwifi/iwl3945-base.c
index 66520e8..74b1099 100644
--- a/drivers/net/wireless/iwlwifi/iwl3945-base.c
+++ b/drivers/net/wireless/iwlwifi/iwl3945-base.c
@@ -4287,7 +4287,7 @@ static void iwl3945_rx_handle(struct iwl3945_priv *priv)
int reclaim;
unsigned long flags;
u8 fill_rx = 0;
-   u32 count = 0;
+   u32 count = 8;
 
/* uCode's read index (stored in shared DRAM) indicates the last Rx
 * buffer that the driver may process (last buffer filled by ucode). */
diff --git a/drivers/net/wireless/iwlwifi/iwl4965-base.c 
b/drivers/net/wireless/iwlwifi/iwl4965-base.c
index 855cc97..14a11bd 100644
--- a/drivers/net/wireless/iwlwifi/iwl4965-base.c
+++ b/drivers/net/wireless/iwlwifi/iwl4965-base.c
@@ -4669,7 +4669,7 @@ static void iwl4965_rx_handle(struct iwl4965_priv *priv)
int reclaim;
unsigned long flags;
u8 fill_rx = 0;
-   u32 count = 0;
+   u32 count = 8;
 
/* uCode's read index (stored in shared DRAM) indicates the last Rx
 * buffer that the driver may process (last buffer filled by ucode). */
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[S390] dasd: fix locking in __dasd_device_process_final_queue

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=03513bccad33667ed738cfd96dc5757e539e0bdb
Commit: 03513bccad33667ed738cfd96dc5757e539e0bdb
Parent: 11ab244c9faead91683a12e4cb10d26b279bb4aa
Author: Stefan Weinhuber <[EMAIL PROTECTED]>
AuthorDate: Tue Feb 19 15:29:27 2008 +0100
Committer:  Martin Schwidefsky <[EMAIL PROTECTED]>
CommitDate: Tue Feb 19 15:29:33 2008 +0100

[S390] dasd: fix locking in __dasd_device_process_final_queue

After setting the status of the cqr and releasing the lock for the
block cqr queue, we call the cqr callback function, which will usually
just trigger the dasd_block_tasklet. But when the tasklet is already
running the cqr might be processed before we invoke the callback
function. In rare cases the callback pointer may already be invalid
by the time we want to call it, which will result in a panic.
Solution: Call the callback function first and then release the lock.

Signed-off-by: Stefan Weinhuber <[EMAIL PROTECTED]>
Signed-off-by: Martin Schwidefsky <[EMAIL PROTECTED]>
---
 drivers/s390/block/dasd.c |   12 ++--
 1 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/s390/block/dasd.c b/drivers/s390/block/dasd.c
index d984e0f..ccf46c9 100644
--- a/drivers/s390/block/dasd.c
+++ b/drivers/s390/block/dasd.c
@@ -1149,12 +1149,14 @@ static void __dasd_device_process_final_queue(struct 
dasd_device *device,
 {
struct list_head *l, *n;
struct dasd_ccw_req *cqr;
+   struct dasd_block *block;
 
list_for_each_safe(l, n, final_queue) {
cqr = list_entry(l, struct dasd_ccw_req, devlist);
list_del_init(&cqr->devlist);
-   if (cqr->block)
-   spin_lock_bh(&cqr->block->queue_lock);
+   block = cqr->block;
+   if (block)
+   spin_lock_bh(&block->queue_lock);
switch (cqr->status) {
case DASD_CQR_SUCCESS:
cqr->status = DASD_CQR_DONE;
@@ -1172,15 +1174,13 @@ static void __dasd_device_process_final_queue(struct 
dasd_device *device,
cqr, cqr->status);
BUG();
}
-   if (cqr->block)
-   spin_unlock_bh(&cqr->block->queue_lock);
if (cqr->callback != NULL)
(cqr->callback)(cqr, cqr->callback_data);
+   if (block)
+   spin_unlock_bh(&block->queue_lock);
}
 }
 
-
-
 /*
  * Take a look at the first request on the ccw queue and check
  * if it reached its expire time. If so, terminate the IO.
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


b43: Fix firmware load message level

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=588e6cdfccb847661c62a2cc0f301d689b94ee64
Commit: 588e6cdfccb847661c62a2cc0f301d689b94ee64
Parent: 9c7d99d6fba1f26b95fb70b43f7954e9684cad3e
Author: Michael Buesch <[EMAIL PROTECTED]>
AuthorDate: Sat Feb 9 17:53:41 2008 +0100
Committer:  John W. Linville <[EMAIL PROTECTED]>
CommitDate: Fri Feb 15 13:44:18 2008 -0500

b43: Fix firmware load message level

The firmware version information should always get printed. Not only
on a debug build.

Signed-off-by: Michael Buesch <[EMAIL PROTECTED]>
Signed-off-by: John W. Linville <[EMAIL PROTECTED]>
---
 drivers/net/wireless/b43/main.c |   10 +-
 1 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/net/wireless/b43/main.c b/drivers/net/wireless/b43/main.c
index ab6d608..51dfce1 100644
--- a/drivers/net/wireless/b43/main.c
+++ b/drivers/net/wireless/b43/main.c
@@ -1861,11 +1861,11 @@ static int b43_upload_microcode(struct b43_wldev *dev)
err = -EOPNOTSUPP;
goto error;
}
-   b43dbg(dev->wl, "Loading firmware version %u.%u "
-  "(20%.2i-%.2i-%.2i %.2i:%.2i:%.2i)\n",
-  fwrev, fwpatch,
-  (fwdate >> 12) & 0xF, (fwdate >> 8) & 0xF, fwdate & 0xFF,
-  (fwtime >> 11) & 0x1F, (fwtime >> 5) & 0x3F, fwtime & 0x1F);
+   b43info(dev->wl, "Loading firmware version %u.%u "
+   "(20%.2i-%.2i-%.2i %.2i:%.2i:%.2i)\n",
+   fwrev, fwpatch,
+   (fwdate >> 12) & 0xF, (fwdate >> 8) & 0xF, fwdate & 0xFF,
+   (fwtime >> 11) & 0x1F, (fwtime >> 5) & 0x3F, fwtime & 0x1F);
 
dev->fw.rev = fwrev;
dev->fw.patch = fwpatch;
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


mkiss: ax_bump() locking fix

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9f30c768c00fd0f0a2ab37ef29d8c8c5a7abdf2e
Commit: 9f30c768c00fd0f0a2ab37ef29d8c8c5a7abdf2e
Parent: a1a98b72dbd17e53cd92b8e78f404525ebcfd981
Author: Jarek Poplawski <[EMAIL PROTECTED]>
AuthorDate: Wed Feb 13 11:17:58 2008 +
Committer:  Jeff Garzik <[EMAIL PROTECTED]>
CommitDate: Fri Feb 15 10:51:51 2008 -0500

mkiss: ax_bump() locking fix

According to one of OOPSes reported by Jann softirq can break
while skb is prepared for netif_rx. The report isn't complete,
so the real reason of the later bug could be different, but
IMHO this locking break in ax_bump is unsafe and unnecessary.

Reported-and-tested-by: Jann Traschewski <[EMAIL PROTECTED]>
Signed-off-by: Jarek Poplawski <[EMAIL PROTECTED]>
Signed-off-by: Jeff Garzik <[EMAIL PROTECTED]>
---
 drivers/net/hamradio/mkiss.c |5 ++---
 1 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/net/hamradio/mkiss.c b/drivers/net/hamradio/mkiss.c
index cfcd15a..30c9b3b 100644
--- a/drivers/net/hamradio/mkiss.c
+++ b/drivers/net/hamradio/mkiss.c
@@ -289,7 +289,6 @@ static void ax_bump(struct mkiss *ax)
*ax->rbuff &= ~0x20;
}
}
-   spin_unlock_bh(&ax->buflock);
 
count = ax->rcount;
 
@@ -297,17 +296,17 @@ static void ax_bump(struct mkiss *ax)
printk(KERN_ERR "mkiss: %s: memory squeeze, dropping packet.\n",
   ax->dev->name);
ax->stats.rx_dropped++;
+   spin_unlock_bh(&ax->buflock);
return;
}
 
-   spin_lock_bh(&ax->buflock);
memcpy(skb_put(skb,count), ax->rbuff, count);
-   spin_unlock_bh(&ax->buflock);
skb->protocol = ax25_type_trans(skb, ax->dev);
netif_rx(skb);
ax->dev->last_rx = jiffies;
ax->stats.rx_packets++;
ax->stats.rx_bytes += count;
+   spin_unlock_bh(&ax->buflock);
 }
 
 static void kiss_unesc(struct mkiss *ax, unsigned char s)
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[S390] Let NR_CPUS default to 32/64 on s390/s390x.

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=057c5cb35ece6ae3a4c2cb849f3948c5ad6add32
Commit: 057c5cb35ece6ae3a4c2cb849f3948c5ad6add32
Parent: 4c629727cefe45abb2f7459836bfc4b41c5e55ba
Author: Heiko Carstens <[EMAIL PROTECTED]>
AuthorDate: Tue Feb 19 15:29:25 2008 +0100
Committer:  Martin Schwidefsky <[EMAIL PROTECTED]>
CommitDate: Tue Feb 19 15:29:32 2008 +0100

[S390] Let NR_CPUS default to 32/64 on s390/s390x.

Signed-off-by: Heiko Carstens <[EMAIL PROTECTED]>
Signed-off-by: Martin Schwidefsky <[EMAIL PROTECTED]>
---
 arch/s390/Kconfig |3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig
index 92a4f7b..b21444b 100644
--- a/arch/s390/Kconfig
+++ b/arch/s390/Kconfig
@@ -100,7 +100,8 @@ config NR_CPUS
int "Maximum number of CPUs (2-64)"
range 2 64
depends on SMP
-   default "32"
+   default "32" if !64BIT
+   default "64" if 64BIT
help
  This allows you to specify the maximum number of CPUs which this
  kernel will support.  The maximum supported value is 64 and the
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Revert "SLUB: Alternate fast paths using cmpxchg_local"

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=00e962c5408b9f2d0bebd2308673fe982cb9a5fe
Commit: 00e962c5408b9f2d0bebd2308673fe982cb9a5fe
Parent: aa3f98037ce3bcf850bb41f7530754d27481a792
Author: Linus Torvalds <[EMAIL PROTECTED]>
AuthorDate: Tue Feb 19 09:08:49 2008 -0800
Committer:  Linus Torvalds <[EMAIL PROTECTED]>
CommitDate: Tue Feb 19 09:08:49 2008 -0800

Revert "SLUB: Alternate fast paths using cmpxchg_local"

This reverts commit 1f84260c8ce3b1ce26d4c1d6dedc2f33a3a29c0c, which is
suspected to be the reason for some very occasional and hard-to-trigger
crashes that usually look related to memory allocation (mostly reported
in networking, but since that's generally the most common source of
shortlived allocations - and allocations in interrupt contexts - that in
itself is not a big clue).

See for example
http://bugzilla.kernel.org/show_bug.cgi?id=9973
http://lkml.org/lkml/2008/2/19/278
etc.

One promising suspicion for what the root cause of bug is (which also
explains why it's so hard to trigger in practice) came from Eric
Dumazet:

   "I wonder how SLUB_FASTPATH is supposed to work, since it is affected
by a classical ABA problem of lockless algo.

cmpxchg_local(&c->freelist, object, object[c->offset]) can succeed,
while an interrupt came (on this cpu), and several allocations were
done, and one free was performed at the end of this interruption, so
'object' was recycled.

c->freelist can then contain the previous value (object), but
object[c->offset] was changed by IRQ.

We then put back in freelist an already allocated object."

but another reason for the revert is simply that everybody agrees that
this code was the main suspect just by virtue of the pattern of oopses.

Cc: Torsten Kaiser <[EMAIL PROTECTED]>
Cc: Christoph Lameter <[EMAIL PROTECTED]>
Cc: Mathieu Desnoyers <[EMAIL PROTECTED]>
Cc: Pekka Enberg <[EMAIL PROTECTED]>
Cc: Ingo Molnar <[EMAIL PROTECTED]>
Cc: Eric Dumazet <[EMAIL PROTECTED]>
Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>
---
 mm/slub.c |   87 +
 1 files changed, 1 insertions(+), 86 deletions(-)

diff --git a/mm/slub.c b/mm/slub.c
index 4b3895c..74c65af 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -149,13 +149,6 @@ static inline void ClearSlabDebug(struct page *page)
 /* Enable to test recovery from slab corruption on boot */
 #undef SLUB_RESILIENCY_TEST
 
-/*
- * Currently fastpath is not supported if preemption is enabled.
- */
-#if defined(CONFIG_FAST_CMPXCHG_LOCAL) && !defined(CONFIG_PREEMPT)
-#define SLUB_FASTPATH
-#endif
-
 #if PAGE_SHIFT <= 12
 
 /*
@@ -1514,11 +1507,7 @@ static void *__slab_alloc(struct kmem_cache *s,
 {
void **object;
struct page *new;
-#ifdef SLUB_FASTPATH
-   unsigned long flags;
 
-   local_irq_save(flags);
-#endif
if (!c->page)
goto new_slab;
 
@@ -1541,9 +1530,6 @@ load_freelist:
 unlock_out:
slab_unlock(c->page);
stat(c, ALLOC_SLOWPATH);
-#ifdef SLUB_FASTPATH
-   local_irq_restore(flags);
-#endif
return object;
 
 another_slab:
@@ -1575,9 +1561,7 @@ new_slab:
c->page = new;
goto load_freelist;
}
-#ifdef SLUB_FASTPATH
-   local_irq_restore(flags);
-#endif
+
/*
 * No memory available.
 *
@@ -1619,34 +1603,6 @@ static __always_inline void *slab_alloc(struct 
kmem_cache *s,
 {
void **object;
struct kmem_cache_cpu *c;
-
-/*
- * The SLUB_FASTPATH path is provisional and is currently disabled if the
- * kernel is compiled with preemption or if the arch does not support
- * fast cmpxchg operations. There are a couple of coming changes that will
- * simplify matters and allow preemption. Ultimately we may end up making
- * SLUB_FASTPATH the default.
- *
- * 1. The introduction of the per cpu allocator will avoid array lookups
- *through get_cpu_slab(). A special register can be used instead.
- *
- * 2. The introduction of per cpu atomic operations (cpu_ops) means that
- *we can realize the logic here entirely with per cpu atomics. The
- *per cpu atomic ops will take care of the preemption issues.
- */
-
-#ifdef SLUB_FASTPATH
-   c = get_cpu_slab(s, raw_smp_processor_id());
-   do {
-   object = c->freelist;
-   if (unlikely(is_end(object) || !node_match(c, node))) {
-   object = __slab_alloc(s, gfpflags, node, addr, c);
-   break;
-   }
-   stat(c, ALLOC_FASTPATH);
-   } while (cmpxchg_local(&c->freelist, object, object[c->offset])
-   != object);
-#else
unsigned long flags;
 
local_irq_save(flag

b43legacy: fix DMA for 30/32-bit DMA engines

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=8e118f0ed866afab654a438b85643d4f1472f28b
Commit: 8e118f0ed866afab654a438b85643d4f1472f28b
Parent: d68ab68066805fdfee1f5f29ec2ec0179fd92fe1
Author: Stefano Brivio <[EMAIL PROTECTED]>
AuthorDate: Fri Feb 8 06:31:53 2008 +0100
Committer:  John W. Linville <[EMAIL PROTECTED]>
CommitDate: Fri Feb 15 13:44:18 2008 -0500

b43legacy: fix DMA for 30/32-bit DMA engines

This checks if the DMA address is bigger than what the controller can 
manage.
It will reallocate the buffers in the GFP_DMA zone in that case.

The patch by Michael Buesch has been ported to b43legacy.
Thanks to Matti Viljanen for reporting this.

Cc: Matti Viljanen <[EMAIL PROTECTED]>
Signed-off-by: Stefano Brivio <[EMAIL PROTECTED]>
Signed-off-by: John W. Linville <[EMAIL PROTECTED]>
---
 drivers/net/wireless/b43legacy/dma.c |  167 +-
 drivers/net/wireless/b43legacy/dma.h |   33 ++-
 2 files changed, 113 insertions(+), 87 deletions(-)

diff --git a/drivers/net/wireless/b43legacy/dma.c 
b/drivers/net/wireless/b43legacy/dma.c
index 6e08405..e87b427 100644
--- a/drivers/net/wireless/b43legacy/dma.c
+++ b/drivers/net/wireless/b43legacy/dma.c
@@ -354,7 +354,8 @@ return 0;
 }
 
 
-u16 b43legacy_dmacontroller_base(int dma64bit, int controller_idx)
+static u16 b43legacy_dmacontroller_base(enum b43legacy_dmatype type,
+   int controller_idx)
 {
static const u16 map64[] = {
B43legacy_MMIO_DMA64_BASE0,
@@ -373,7 +374,7 @@ u16 b43legacy_dmacontroller_base(int dma64bit, int 
controller_idx)
B43legacy_MMIO_DMA32_BASE5,
};
 
-   if (dma64bit) {
+   if (type == B43legacy_DMA_64BIT) {
B43legacy_WARN_ON(!(controller_idx >= 0 &&
  controller_idx < ARRAY_SIZE(map64)));
return map64[controller_idx];
@@ -480,8 +481,9 @@ static void free_ringmemory(struct b43legacy_dmaring *ring)
 }
 
 /* Reset the RX DMA channel */
-int b43legacy_dmacontroller_rx_reset(struct b43legacy_wldev *dev,
-u16 mmio_base, int dma64)
+static int b43legacy_dmacontroller_rx_reset(struct b43legacy_wldev *dev,
+   u16 mmio_base,
+   enum b43legacy_dmatype type)
 {
int i;
u32 value;
@@ -489,13 +491,14 @@ int b43legacy_dmacontroller_rx_reset(struct 
b43legacy_wldev *dev,
 
might_sleep();
 
-   offset = dma64 ? B43legacy_DMA64_RXCTL : B43legacy_DMA32_RXCTL;
+   offset = (type == B43legacy_DMA_64BIT) ?
+B43legacy_DMA64_RXCTL : B43legacy_DMA32_RXCTL;
b43legacy_write32(dev, mmio_base + offset, 0);
for (i = 0; i < 10; i++) {
-   offset = dma64 ? B43legacy_DMA64_RXSTATUS :
-B43legacy_DMA32_RXSTATUS;
+   offset = (type == B43legacy_DMA_64BIT) ?
+B43legacy_DMA64_RXSTATUS : B43legacy_DMA32_RXSTATUS;
value = b43legacy_read32(dev, mmio_base + offset);
-   if (dma64) {
+   if (type == B43legacy_DMA_64BIT) {
value &= B43legacy_DMA64_RXSTAT;
if (value == B43legacy_DMA64_RXSTAT_DISABLED) {
i = -1;
@@ -519,8 +522,9 @@ int b43legacy_dmacontroller_rx_reset(struct b43legacy_wldev 
*dev,
 }
 
 /* Reset the RX DMA channel */
-int b43legacy_dmacontroller_tx_reset(struct b43legacy_wldev *dev,
-u16 mmio_base, int dma64)
+static int b43legacy_dmacontroller_tx_reset(struct b43legacy_wldev *dev,
+   u16 mmio_base,
+   enum b43legacy_dmatype type)
 {
int i;
u32 value;
@@ -529,10 +533,10 @@ int b43legacy_dmacontroller_tx_reset(struct 
b43legacy_wldev *dev,
might_sleep();
 
for (i = 0; i < 10; i++) {
-   offset = dma64 ? B43legacy_DMA64_TXSTATUS :
-B43legacy_DMA32_TXSTATUS;
+   offset = (type == B43legacy_DMA_64BIT) ?
+B43legacy_DMA64_TXSTATUS : B43legacy_DMA32_TXSTATUS;
value = b43legacy_read32(dev, mmio_base + offset);
-   if (dma64) {
+   if (type == B43legacy_DMA_64BIT) {
value &= B43legacy_DMA64_TXSTAT;
if (value == B43legacy_DMA64_TXSTAT_DISABLED ||
value == B43legacy_DMA64_TXSTAT_IDLEWAIT ||
@@ -547,13 +551,14 @@ int b43legacy_dmacontroller_tx_reset(struct 
b43legacy_wldev *dev,
}
msleep(1);
}
-   offset = dma64 ? B43legacy_DMA64_TXCTL : B43legacy_DMA32_TXCTL;
+   offset = (type == B43legacy_DMA_64BIT) ? B43legacy_DMA64_TXCTL :
+   

elevator: make elevator_get() attempt to load the appropriate module

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e164094964e6e20fe7fce418e06a9dce952bb7a4
Commit: e164094964e6e20fe7fce418e06a9dce952bb7a4
Parent: ffc4e7595734cf768fa60cea8a4d545dfef8231a
Author: Jens Axboe <[EMAIL PROTECTED]>
AuthorDate: Tue Feb 19 10:20:37 2008 +0100
Committer:  Jens Axboe <[EMAIL PROTECTED]>
CommitDate: Tue Feb 19 10:20:37 2008 +0100

elevator: make elevator_get() attempt to load the appropriate module

Currently we fail if someone requests a valid io scheduler, but it's
modular and not currently loaded. That can happen from a driver init
asking for a different scheduler, or online switching through sysfs
as requested by a user.

This patch makes elevator_get() request_module() to attempt to load
the appropriate module, instead of requiring that done manually.

Signed-off-by: Jens Axboe <[EMAIL PROTECTED]>
---
 block/elevator.c |   15 +++
 1 files changed, 15 insertions(+), 0 deletions(-)

diff --git a/block/elevator.c b/block/elevator.c
index bafbae0..88318c3 100644
--- a/block/elevator.c
+++ b/block/elevator.c
@@ -134,6 +134,21 @@ static struct elevator_type *elevator_get(const char *name)
spin_lock(&elv_list_lock);
 
e = elevator_find(name);
+   if (!e) {
+   char elv[ELV_NAME_MAX + strlen("-iosched")];
+
+   spin_unlock(&elv_list_lock);
+
+   if (!strcmp(name, "anticipatory"))
+   sprintf(elv, "as-iosched");
+   else
+   sprintf(elv, "%s-iosched", name);
+
+   request_module(elv);
+   spin_lock(&elv_list_lock);
+   e = elevator_find(name);
+   }
+
if (e && !try_module_get(e->elevator_owner))
e = NULL;
 
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Revert "[NDISC]: Fix race in generic address resolution"

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9ff566074689e3aed1488780b97714ec43ba361d
Commit: 9ff566074689e3aed1488780b97714ec43ba361d
Parent: 93b2d4a208eeb19bff95e98c34503ce4b03cd0f9
Author: David S. Miller <[EMAIL PROTECTED]>
AuthorDate: Sun Feb 17 18:39:54 2008 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Sun Feb 17 18:39:54 2008 -0800

Revert "[NDISC]: Fix race in generic address resolution"

This reverts commit 69cc64d8d92bf852f933e90c888dfff083bd4fc9.

It causes recursive locking in IPV6 because unlike other
neighbour layer clients, it even needs neighbour cache
entries to send neighbour soliciation messages :-(

We'll have to find another way to fix this race.

Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 net/core/neighbour.c |   12 +---
 net/ipv4/arp.c   |3 +++
 2 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/net/core/neighbour.c b/net/core/neighbour.c
index 7bb6a9a..a16cf1e 100644
--- a/net/core/neighbour.c
+++ b/net/core/neighbour.c
@@ -834,12 +834,18 @@ static void neigh_timer_handler(unsigned long arg)
}
if (neigh->nud_state & (NUD_INCOMPLETE | NUD_PROBE)) {
struct sk_buff *skb = skb_peek(&neigh->arp_queue);
-
+   /* keep skb alive even if arp_queue overflows */
+   if (skb)
+   skb_get(skb);
+   write_unlock(&neigh->lock);
neigh->ops->solicit(neigh, skb);
atomic_inc(&neigh->probes);
-   }
+   if (skb)
+   kfree_skb(skb);
+   } else {
 out:
-   write_unlock(&neigh->lock);
+   write_unlock(&neigh->lock);
+   }
 
if (notify)
neigh_update_notify(neigh);
diff --git a/net/ipv4/arp.c b/net/ipv4/arp.c
index c663fa5..8e17f65 100644
--- a/net/ipv4/arp.c
+++ b/net/ipv4/arp.c
@@ -368,6 +368,7 @@ static void arp_solicit(struct neighbour *neigh, struct 
sk_buff *skb)
if (!(neigh->nud_state&NUD_VALID))
printk(KERN_DEBUG "trying to ucast probe in 
NUD_INVALID\n");
dst_ha = neigh->ha;
+   read_lock_bh(&neigh->lock);
} else if ((probes -= neigh->parms->app_probes) < 0) {
 #ifdef CONFIG_ARPD
neigh_app_ns(neigh);
@@ -377,6 +378,8 @@ static void arp_solicit(struct neighbour *neigh, struct 
sk_buff *skb)
 
arp_send(ARPOP_REQUEST, ETH_P_ARP, target, dev, saddr,
 dst_ha, dev->dev_addr, NULL);
+   if (dst_ha)
+   read_unlock_bh(&neigh->lock);
 }
 
 static int arp_ignore(struct in_device *in_dev, __be32 sip, __be32 tip)
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Tsi108_eth: remove not needed code

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=85bbe2158340dafb060fc7fe55a8208fe08cae26
Commit: 85bbe2158340dafb060fc7fe55a8208fe08cae26
Parent: 6a87155a39f538f9d13cebf2c9b7c19bd41d7da9
Author: Alex Bounine <[EMAIL PROTECTED]>
AuthorDate: Mon Feb 11 14:35:49 2008 -0500
Committer:  Jeff Garzik <[EMAIL PROTECTED]>
CommitDate: Mon Feb 11 14:47:00 2008 -0500

Tsi108_eth: remove not needed code

Code clean-up for tsi108_eth network driver.
This patch removes not needed dummy read and the corresponding comment.
The PHY logic requires two reads from the status register to get
current link status. This is done correctly inside mii_check_media().

Signed-off-by: Alexandre Bounine <[EMAIL PROTECTED]>
Signed-off-by: Jeff Garzik <[EMAIL PROTECTED]>
---
 drivers/net/tsi108_eth.c |7 ---
 1 files changed, 0 insertions(+), 7 deletions(-)

diff --git a/drivers/net/tsi108_eth.c b/drivers/net/tsi108_eth.c
index 2e87876..5a730ba 100644
--- a/drivers/net/tsi108_eth.c
+++ b/drivers/net/tsi108_eth.c
@@ -297,18 +297,11 @@ static void tsi108_check_phy(struct net_device *dev)
u32 speed;
unsigned long flags;
 
-   /* Do a dummy read, as for some reason the first read
-* after a link becomes up returns link down, even if
-* it's been a while since the link came up.
-*/
-
spin_lock_irqsave(&phy_lock, flags);
 
if (!data->phy_ok)
goto out;
 
-   tsi108_read_mii(data, MII_BMSR);
-
duplex = mii_check_media(&data->mii_if, netif_msg_link(data), 
data->init_media);
data->init_media = 0;
 
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


block: implement request_queue->dma_drain_needed

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=2fb98e8414c42cb14698833aac640b143b9ade4f
Commit: 2fb98e8414c42cb14698833aac640b143b9ade4f
Parent: 6b00769fe1502b4ad97bb327ef7ac971b208bfb5
Author: Tejun Heo <[EMAIL PROTECTED]>
AuthorDate: Tue Feb 19 11:36:53 2008 +0100
Committer:  Jens Axboe <[EMAIL PROTECTED]>
CommitDate: Tue Feb 19 11:36:53 2008 +0100

block: implement request_queue->dma_drain_needed

Draining shouldn't be done for commands where overflow may indicate
data integrity issues.  Add dma_drain_needed callback to
request_queue.  Drain buffer is appened iff this function returns
non-zero.

Signed-off-by: Tejun Heo <[EMAIL PROTECTED]>
Cc: James Bottomley <[EMAIL PROTECTED]>
Signed-off-by: Jens Axboe <[EMAIL PROTECTED]>
---
 block/blk-merge.c  |2 +-
 block/blk-settings.c   |7 +--
 include/linux/blkdev.h |7 +--
 3 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/block/blk-merge.c b/block/blk-merge.c
index 39f2e07..bef1b4d 100644
--- a/block/blk-merge.c
+++ b/block/blk-merge.c
@@ -220,7 +220,7 @@ new_segment:
bvprv = bvec;
} /* segments in rq */
 
-   if (q->dma_drain_size) {
+   if (q->dma_drain_size && q->dma_drain_needed(rq)) {
sg->page_link &= ~0x02;
sg = sg_next(sg);
sg_set_page(sg, virt_to_page(q->dma_drain_buffer),
diff --git a/block/blk-settings.c b/block/blk-settings.c
index 13536a3..9a8ffdd 100644
--- a/block/blk-settings.c
+++ b/block/blk-settings.c
@@ -296,6 +296,7 @@ EXPORT_SYMBOL(blk_queue_stack_limits);
  * blk_queue_dma_drain - Set up a drain buffer for excess dma.
  *
  * @q:  the request queue for the device
+ * @dma_drain_needed: fn which returns non-zero if drain is necessary
  * @buf:   physically contiguous buffer
  * @size:  size of the buffer in bytes
  *
@@ -315,14 +316,16 @@ EXPORT_SYMBOL(blk_queue_stack_limits);
  * device can support otherwise there won't be room for the drain
  * buffer.
  */
-int blk_queue_dma_drain(struct request_queue *q, void *buf,
-   unsigned int size)
+extern int blk_queue_dma_drain(struct request_queue *q,
+  dma_drain_needed_fn *dma_drain_needed,
+  void *buf, unsigned int size)
 {
if (q->max_hw_segments < 2 || q->max_phys_segments < 2)
return -EINVAL;
/* make room for appending the drain */
--q->max_hw_segments;
--q->max_phys_segments;
+   q->dma_drain_needed = dma_drain_needed;
q->dma_drain_buffer = buf;
q->dma_drain_size = size;
 
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index f1fe9fb..6fe67d1 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -259,6 +259,7 @@ struct bio_vec;
 typedef int (merge_bvec_fn) (struct request_queue *, struct bio *, struct 
bio_vec *);
 typedef void (prepare_flush_fn) (struct request_queue *, struct request *);
 typedef void (softirq_done_fn)(struct request *);
+typedef int (dma_drain_needed_fn)(struct request *);
 
 enum blk_queue_state {
Queue_down,
@@ -295,6 +296,7 @@ struct request_queue
merge_bvec_fn   *merge_bvec_fn;
prepare_flush_fn*prepare_flush_fn;
softirq_done_fn *softirq_done_fn;
+   dma_drain_needed_fn *dma_drain_needed;
 
/*
 * Dispatch queue sorting
@@ -699,8 +701,9 @@ extern void blk_queue_max_hw_segments(struct request_queue 
*, unsigned short);
 extern void blk_queue_max_segment_size(struct request_queue *, unsigned int);
 extern void blk_queue_hardsect_size(struct request_queue *, unsigned short);
 extern void blk_queue_stack_limits(struct request_queue *t, struct 
request_queue *b);
-extern int blk_queue_dma_drain(struct request_queue *q, void *buf,
-  unsigned int size);
+extern int blk_queue_dma_drain(struct request_queue *q,
+  dma_drain_needed_fn *dma_drain_needed,
+  void *buf, unsigned int size);
 extern void blk_queue_segment_boundary(struct request_queue *, unsigned long);
 extern void blk_queue_prep_rq(struct request_queue *, prep_rq_fn *pfn);
 extern void blk_queue_merge_bvec(struct request_queue *, merge_bvec_fn *);
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Documentation: fix tcp.txt

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=32b90fc8b11b94b719745512d7e58c0b25717260
Commit: 32b90fc8b11b94b719745512d7e58c0b25717260
Parent: d6584f3a08055688b2344eb26379fb2f3147ce91
Author: Matti Linnanvuori <[EMAIL PROTECTED]>
AuthorDate: Sun Feb 17 22:21:04 2008 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Sun Feb 17 22:21:04 2008 -0800

Documentation: fix tcp.txt

Replace BIC with CUBIC as default congestion control. Fix grammar.

Signed-off-by: Matti Linnanvuori <[EMAIL PROTECTED]>
Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 Documentation/networking/tcp.txt |8 
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/Documentation/networking/tcp.txt b/Documentation/networking/tcp.txt
index 0121edc..7d11bb5 100644
--- a/Documentation/networking/tcp.txt
+++ b/Documentation/networking/tcp.txt
@@ -1,7 +1,7 @@
 TCP protocol
 
 
-Last updated: 21 June 2005
+Last updated: 9 February 2008
 
 Contents
 
@@ -52,9 +52,9 @@ research and RFC's before developing new modules.
 The method that is used to determine which congestion control mechanism is
 determined by the setting of the sysctl net.ipv4.tcp_congestion_control.
 The default congestion control will be the last one registered (LIFO);
-so if you built everything as modules. the default will be reno. If you
-build with the default's from Kconfig, then BIC will be builtin (not a module)
-and it will end up the default.
+so if you built everything as modules, the default will be reno. If you
+build with the defaults from Kconfig, then CUBIC will be builtin (not a
+module) and it will end up the default.
 
 If you really want a particular default value then you will need
 to set it with the sysctl.  If you use a sysctl, the module will be autoloaded
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


cfq-iosched: add hlist for browsing parallel to the radix tree

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ffc4e7595734cf768fa60cea8a4d545dfef8231a
Commit: ffc4e7595734cf768fa60cea8a4d545dfef8231a
Parent: 84e9e03c55c2456799ab19f1d577e72f721fdd39
Author: Jens Axboe <[EMAIL PROTECTED]>
AuthorDate: Tue Feb 19 10:02:29 2008 +0100
Committer:  Jens Axboe <[EMAIL PROTECTED]>
CommitDate: Tue Feb 19 10:04:00 2008 +0100

cfq-iosched: add hlist for browsing parallel to the radix tree

It's cumbersome to browse a radix tree from start to finish, especially
since we modify keys when a process exits. So add a hlist for the single
purpose of browsing over all known cfq_io_contexts, used for exit,
io prio change, etc.

This fixes http://bugzilla.kernel.org/show_bug.cgi?id=9948

Signed-off-by: Jens Axboe <[EMAIL PROTECTED]>
---
 block/blk-ioc.c   |   37 -
 block/cfq-iosched.c   |   38 --
 include/linux/iocontext.h |2 ++
 3 files changed, 30 insertions(+), 47 deletions(-)

diff --git a/block/blk-ioc.c b/block/blk-ioc.c
index 4ae0929..e34df7c 100644
--- a/block/blk-ioc.c
+++ b/block/blk-ioc.c
@@ -17,17 +17,13 @@ static struct kmem_cache *iocontext_cachep;
 
 static void cfq_dtor(struct io_context *ioc)
 {
-   struct cfq_io_context *cic[1];
-   int r;
+   if (!hlist_empty(&ioc->cic_list)) {
+   struct cfq_io_context *cic;
 
-   /*
-* We don't have a specific key to lookup with, so use the gang
-* lookup to just retrieve the first item stored. The cfq exit
-* function will iterate the full tree, so any member will do.
-*/
-   r = radix_tree_gang_lookup(&ioc->radix_root, (void **) cic, 0, 1);
-   if (r > 0)
-   cic[0]->dtor(ioc);
+   cic = list_entry(ioc->cic_list.first, struct cfq_io_context,
+   cic_list);
+   cic->dtor(ioc);
+   }
 }
 
 /*
@@ -57,18 +53,16 @@ EXPORT_SYMBOL(put_io_context);
 
 static void cfq_exit(struct io_context *ioc)
 {
-   struct cfq_io_context *cic[1];
-   int r;
-
rcu_read_lock();
-   /*
-* See comment for cfq_dtor()
-*/
-   r = radix_tree_gang_lookup(&ioc->radix_root, (void **) cic, 0, 1);
-   rcu_read_unlock();
 
-   if (r > 0)
-   cic[0]->exit(ioc);
+   if (!hlist_empty(&ioc->cic_list)) {
+   struct cfq_io_context *cic;
+
+   cic = list_entry(ioc->cic_list.first, struct cfq_io_context,
+   cic_list);
+   cic->exit(ioc);
+   }
+   rcu_read_unlock();
 }
 
 /* Called by the exitting task */
@@ -105,6 +99,7 @@ struct io_context *alloc_io_context(gfp_t gfp_flags, int 
node)
ret->nr_batch_requests = 0; /* because this is 0 */
ret->aic = NULL;
INIT_RADIX_TREE(&ret->radix_root, GFP_ATOMIC | __GFP_HIGH);
+   INIT_HLIST_HEAD(&ret->cic_list);
ret->ioc_data = NULL;
}
 
diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c
index ca198e6..0f962ec 100644
--- a/block/cfq-iosched.c
+++ b/block/cfq-iosched.c
@@ -1145,38 +1145,19 @@ static void cfq_put_queue(struct cfq_queue *cfqq)
 /*
  * Call func for each cic attached to this ioc. Returns number of cic's seen.
  */
-#define CIC_GANG_NR16
 static unsigned int
 call_for_each_cic(struct io_context *ioc,
  void (*func)(struct io_context *, struct cfq_io_context *))
 {
-   struct cfq_io_context *cics[CIC_GANG_NR];
-   unsigned long index = 0;
-   unsigned int called = 0;
-   int nr;
+   struct cfq_io_context *cic;
+   struct hlist_node *n;
+   int called = 0;
 
rcu_read_lock();
-
-   do {
-   int i;
-
-   /*
-* Perhaps there's a better way - this just gang lookups from
-* 0 to the end, restarting after each CIC_GANG_NR from the
-* last key + 1.
-*/
-   nr = radix_tree_gang_lookup(&ioc->radix_root, (void **) cics,
-   index, CIC_GANG_NR);
-   if (!nr)
-   break;
-
-   called += nr;
-   index = 1 + (unsigned long) cics[nr - 1]->key;
-
-   for (i = 0; i < nr; i++)
-   func(ioc, cics[i]);
-   } while (nr == CIC_GANG_NR);
-
+   hlist_for_each_entry_rcu(cic, n, &ioc->cic_list, cic_list) {
+   func(ioc, cic);
+   called++;
+   }
rcu_read_unlock();
 
return called;
@@ -1190,6 +1171,7 @@ static void cic_free_func(struct io_context *ioc, struct 
cfq_io_context *cic)
 
spin_lock_irqsave(&ioc->lock, flags);
radix_tree_delete(&ioc->radix_root, cic->dead_key);
+   hlist_del_rcu(&cic->cic_li

[SPARC64]: Kill unused function 'kernel_enter_debugger'.

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a3d41704d4647abfc2796e9c81f71e0902f78e09
Commit: a3d41704d4647abfc2796e9c81f71e0902f78e09
Parent: cbc9fc5dec60f84b62e0144165c545abd24847c0
Author: David S. Miller <[EMAIL PROTECTED]>
AuthorDate: Mon Feb 18 15:13:48 2008 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Mon Feb 18 15:13:48 2008 -0800

[SPARC64]: Kill unused function 'kernel_enter_debugger'.

Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 arch/sparc64/kernel/setup.c |5 -
 1 files changed, 0 insertions(+), 5 deletions(-)

diff --git a/arch/sparc64/kernel/setup.c b/arch/sparc64/kernel/setup.c
index ebad74b..e6b57ba 100644
--- a/arch/sparc64/kernel/setup.c
+++ b/arch/sparc64/kernel/setup.c
@@ -90,11 +90,6 @@ static struct console prom_early_console = {
.index =-1,
 };
 
-/* XXX Implement this at some point... */
-void kernel_enter_debugger(void)
-{
-}
-
 /* 
  * Process kernel command line switches that are specific to the
  * SPARC or that require special low-level processing.
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


genirq: do not leave interupts enabled on free_irq

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=89d694b9dbe769ca1004e01db0ca43964806a611
Commit: 89d694b9dbe769ca1004e01db0ca43964806a611
Parent: 188fd89d539d899bfca2bc83534e5508e0161139
Author: Thomas Gleixner <[EMAIL PROTECTED]>
AuthorDate: Mon Feb 18 18:25:17 2008 +0100
Committer:  Thomas Gleixner <[EMAIL PROTECTED]>
CommitDate: Tue Feb 19 10:43:58 2008 +0100

genirq: do not leave interupts enabled on free_irq

The default_disable() function was changed in commit:

 76d2160147f43f982dfe881404cfde9fd0a9da21
 genirq: do not mask interrupts by default

It removed the mask function in favour of the default delayed
interrupt disabling. Unfortunately this also broke the shutdown in
free_irq() when the last handler is removed from the interrupt for
those architectures which rely on the default implementations. Now we
can end up with a enabled interrupt line after the last handler was
removed, which can result in spurious interrupts.

Fix this by adding a default_shutdown function, which is only
installed, when the irqchip implementation does provide neither a
shutdown nor a disable function.

[EMAIL PROTECTED]: affected versions: .21 - .24 ]

Pointed-out-by: Michael Hennerich <[EMAIL PROTECTED]>
Signed-off-by: Thomas Gleixner <[EMAIL PROTECTED]>
Acked-by: Ingo Molnar <[EMAIL PROTECTED]>
Cc: [EMAIL PROTECTED]
Tested-by: Michael Hennerich <[EMAIL PROTECTED]>
---
 kernel/irq/chip.c |   20 +++-
 1 files changed, 19 insertions(+), 1 deletions(-)

diff --git a/kernel/irq/chip.c b/kernel/irq/chip.c
index cc54c62..fdb3fbe 100644
--- a/kernel/irq/chip.c
+++ b/kernel/irq/chip.c
@@ -246,6 +246,17 @@ static unsigned int default_startup(unsigned int irq)
 }
 
 /*
+ * default shutdown function
+ */
+static void default_shutdown(unsigned int irq)
+{
+   struct irq_desc *desc = irq_desc + irq;
+
+   desc->chip->mask(irq);
+   desc->status |= IRQ_MASKED;
+}
+
+/*
  * Fixup enable/disable function pointers
  */
 void irq_chip_set_defaults(struct irq_chip *chip)
@@ -256,8 +267,15 @@ void irq_chip_set_defaults(struct irq_chip *chip)
chip->disable = default_disable;
if (!chip->startup)
chip->startup = default_startup;
+   /*
+* We use chip->disable, when the user provided its own. When
+* we have default_disable set for chip->disable, then we need
+* to use default_shutdown, otherwise the irq line is not
+* disabled on free_irq():
+*/
if (!chip->shutdown)
-   chip->shutdown = chip->disable;
+   chip->shutdown = chip->disable != default_disable ?
+   chip->disable : default_shutdown;
if (!chip->name)
chip->name = chip->typename;
if (!chip->end)
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[SPARC64]: Update defconfig.

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f6095a5176e17b510235e80ecfb542eaee6e5666
Commit: f6095a5176e17b510235e80ecfb542eaee6e5666
Parent: 966d905634de4433cea465fdcea19503c4ae260f
Author: David S. Miller <[EMAIL PROTECTED]>
AuthorDate: Sun Feb 17 22:44:32 2008 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Sun Feb 17 22:44:32 2008 -0800

[SPARC64]: Update defconfig.

Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 arch/sparc64/defconfig |   32 ++--
 1 files changed, 22 insertions(+), 10 deletions(-)

diff --git a/arch/sparc64/defconfig b/arch/sparc64/defconfig
index 50dc090..250958d 100644
--- a/arch/sparc64/defconfig
+++ b/arch/sparc64/defconfig
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
-# Linux kernel version: 2.6.24
-# Tue Feb  5 17:28:19 2008
+# Linux kernel version: 2.6.25-rc1
+# Sun Feb 17 22:44:12 2008
 #
 CONFIG_SPARC=y
 CONFIG_SPARC64=y
@@ -10,6 +10,7 @@ CONFIG_GENERIC_CMOS_UPDATE=y
 CONFIG_GENERIC_CLOCKEVENTS=y
 CONFIG_64BIT=y
 CONFIG_MMU=y
+CONFIG_IOMMU_HELPER=y
 CONFIG_QUICKLIST=y
 CONFIG_STACKTRACE_SUPPORT=y
 CONFIG_LOCKDEP_SUPPORT=y
@@ -21,6 +22,7 @@ CONFIG_HAVE_SETUP_PER_CPU_AREA=y
 CONFIG_ARCH_NO_VIRT_TO_BUS=y
 CONFIG_OF=y
 CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
+CONFIG_ARCH_SUPPORTS_AOUT=y
 CONFIG_SPARC64_PAGE_SIZE_8KB=y
 # CONFIG_SPARC64_PAGE_SIZE_64KB is not set
 # CONFIG_SPARC64_PAGE_SIZE_512KB is not set
@@ -49,8 +51,6 @@ CONFIG_SYSVIPC_SYSCTL=y
 CONFIG_POSIX_MQUEUE=y
 # CONFIG_BSD_PROCESS_ACCT is not set
 # CONFIG_TASKSTATS is not set
-# CONFIG_USER_NS is not set
-# CONFIG_PID_NS is not set
 # CONFIG_AUDIT is not set
 # CONFIG_IKCONFIG is not set
 CONFIG_LOG_BUF_SHIFT=18
@@ -60,6 +60,11 @@ CONFIG_FAIR_USER_SCHED=y
 # CONFIG_FAIR_CGROUP_SCHED is not set
 CONFIG_SYSFS_DEPRECATED=y
 CONFIG_RELAY=y
+CONFIG_NAMESPACES=y
+# CONFIG_UTS_NS is not set
+# CONFIG_IPC_NS is not set
+# CONFIG_USER_NS is not set
+# CONFIG_PID_NS is not set
 CONFIG_BLK_DEV_INITRD=y
 CONFIG_INITRAMFS_SOURCE=""
 CONFIG_CC_OPTIMIZE_FOR_SIZE=y
@@ -74,6 +79,7 @@ CONFIG_HOTPLUG=y
 CONFIG_PRINTK=y
 CONFIG_BUG=y
 CONFIG_ELF_CORE=y
+# CONFIG_COMPAT_BRK is not set
 CONFIG_BASE_FULL=y
 CONFIG_FUTEX=y
 CONFIG_ANON_INODES=y
@@ -176,13 +182,13 @@ CONFIG_PCI_MSI=y
 CONFIG_SUN_OPENPROMFS=m
 CONFIG_SPARC32_COMPAT=y
 CONFIG_COMPAT=y
-CONFIG_BINFMT_ELF32=y
 # CONFIG_BINFMT_AOUT32 is not set
 
 #
 # Executable file formats
 #
 CONFIG_BINFMT_ELF=y
+CONFIG_COMPAT_BINFMT_ELF=y
 CONFIG_BINFMT_MISC=m
 CONFIG_SOLARIS_EMUL=y
 CONFIG_SCHED_SMT=y
@@ -354,6 +360,8 @@ CONFIG_MISC_DEVICES=y
 # CONFIG_EEPROM_93CX6 is not set
 # CONFIG_SGI_IOC4 is not set
 # CONFIG_TIFM_CORE is not set
+# CONFIG_ENCLOSURE_SERVICES is not set
+CONFIG_HAVE_IDE=y
 CONFIG_IDE=y
 CONFIG_BLK_DEV_IDE=y
 
@@ -376,6 +384,7 @@ CONFIG_IDE_PROC_FS=y
 #
 CONFIG_IDE_GENERIC=y
 # CONFIG_BLK_DEV_PLATFORM is not set
+CONFIG_BLK_DEV_IDEDMA_SFF=y
 
 #
 # PCI IDE chipsets support
@@ -775,7 +784,6 @@ CONFIG_I2C_ALGOBIT=y
 # CONFIG_SENSORS_EEPROM is not set
 # CONFIG_SENSORS_PCF8574 is not set
 # CONFIG_PCF8575 is not set
-# CONFIG_SENSORS_PCA9539 is not set
 # CONFIG_SENSORS_PCF8591 is not set
 # CONFIG_TPS65010 is not set
 # CONFIG_SENSORS_MAX6875 is not set
@@ -831,6 +839,7 @@ CONFIG_HWMON=y
 # CONFIG_SENSORS_SMSC47M1 is not set
 # CONFIG_SENSORS_SMSC47M192 is not set
 # CONFIG_SENSORS_SMSC47B397 is not set
+# CONFIG_SENSORS_ADS7828 is not set
 # CONFIG_SENSORS_THMC50 is not set
 # CONFIG_SENSORS_VIA686A is not set
 # CONFIG_SENSORS_VT1211 is not set
@@ -840,9 +849,11 @@ CONFIG_HWMON=y
 # CONFIG_SENSORS_W83792D is not set
 # CONFIG_SENSORS_W83793 is not set
 # CONFIG_SENSORS_W83L785TS is not set
+# CONFIG_SENSORS_W83L786NG is not set
 # CONFIG_SENSORS_W83627HF is not set
 # CONFIG_SENSORS_W83627EHF is not set
 # CONFIG_HWMON_DEBUG_CHIP is not set
+# CONFIG_THERMAL is not set
 # CONFIG_WATCHDOG is not set
 
 #
@@ -1201,6 +1212,7 @@ CONFIG_USB_STORAGE=m
 # CONFIG_USB_TEST is not set
 # CONFIG_USB_GADGET is not set
 # CONFIG_MMC is not set
+# CONFIG_MEMSTICK is not set
 # CONFIG_NEW_LEDS is not set
 # CONFIG_INFINIBAND is not set
 # CONFIG_RTC_CLASS is not set
@@ -1242,12 +1254,10 @@ CONFIG_FS_POSIX_ACL=y
 # CONFIG_XFS_FS is not set
 # CONFIG_GFS2_FS is not set
 # CONFIG_OCFS2_FS is not set
-# CONFIG_MINIX_FS is not set
-# CONFIG_ROMFS_FS is not set
+CONFIG_DNOTIFY=y
 CONFIG_INOTIFY=y
 CONFIG_INOTIFY_USER=y
 # CONFIG_QUOTA is not set
-CONFIG_DNOTIFY=y
 # CONFIG_AUTOFS_FS is not set
 # CONFIG_AUTOFS4_FS is not set
 # CONFIG_FUSE_FS is not set
@@ -1291,8 +1301,10 @@ CONFIG_HUGETLB_PAGE=y
 # CONFIG_EFS_FS is not set
 # CONFIG_CRAMFS is not set
 # CONFIG_VXFS_FS is not set
+# CONFIG_MINIX_FS is not set
 # CONFIG_HPFS_FS is not set
 # CONFIG_QNX4FS_FS is not set
+# CONFIG_ROMFS_FS is not set
 # CONFIG_SYSV_FS is not set
 # CONFIG_UFS_FS is not set
 CONFIG_NETWORK_FILESYSTEMS=y
@@ -1370,6 +1382,7 @@ CONFIG_DETECT_SOFTLOCKUP=y
 CONFIG_SCHED

[SPARC64]: Always register a PROM based early console.

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3c62a2d3477ff7725210db57aec3d2806fa10c20
Commit: 3c62a2d3477ff7725210db57aec3d2806fa10c20
Parent: f6095a5176e17b510235e80ecfb542eaee6e5666
Author: David S. Miller <[EMAIL PROTECTED]>
AuthorDate: Sun Feb 17 23:22:50 2008 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Sun Feb 17 23:22:50 2008 -0800

[SPARC64]: Always register a PROM based early console.

Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 arch/sparc64/kernel/prom.c  |1 -
 arch/sparc64/kernel/setup.c |   14 +++---
 arch/sparc64/mm/init.c  |6 +++---
 3 files changed, 10 insertions(+), 11 deletions(-)

diff --git a/arch/sparc64/kernel/prom.c b/arch/sparc64/kernel/prom.c
index a246e96..68964dd 100644
--- a/arch/sparc64/kernel/prom.c
+++ b/arch/sparc64/kernel/prom.c
@@ -1716,7 +1716,6 @@ static void __init of_console_init(void)
 
of_console_device = dp;
 
-   prom_printf(msg, of_console_path);
printk(msg, of_console_path);
 }
 
diff --git a/arch/sparc64/kernel/setup.c b/arch/sparc64/kernel/setup.c
index 5964d86..ebad74b 100644
--- a/arch/sparc64/kernel/setup.c
+++ b/arch/sparc64/kernel/setup.c
@@ -83,10 +83,10 @@ unsigned int boot_flags = 0;
 /* Exported for mm/init.c:paging_init. */
 unsigned long cmdline_memory_size = 0;
 
-static struct console prom_debug_console = {
-   .name = "debug",
+static struct console prom_early_console = {
+   .name = "earlyprom",
.write =prom_console_write,
-   .flags =CON_PRINTBUFFER,
+   .flags =CON_PRINTBUFFER | CON_BOOT,
.index =-1,
 };
 
@@ -112,8 +112,7 @@ static void __init process_switch(char c)
prom_halt();
break;
case 'p':
-   /* Use PROM debug console. */
-   register_console(&prom_debug_console);
+   /* Just ignore, this behavior is now the default.  */
break;
case 'P':
/* Force UltraSPARC-III P-Cache on. */
@@ -296,6 +295,9 @@ void __init setup_arch(char **cmdline_p)
*cmdline_p = prom_getbootargs();
strcpy(boot_command_line, *cmdline_p);
 
+   boot_flags_init(*cmdline_p);
+   register_console(&prom_early_console);
+
if (tlb_type == hypervisor)
printk("ARCH: SUN4V\n");
else
@@ -307,8 +309,6 @@ void __init setup_arch(char **cmdline_p)
conswitchp = &prom_con;
 #endif
 
-   boot_flags_init(*cmdline_p);
-
idprom_init();
 
if (!root_flags)
diff --git a/arch/sparc64/mm/init.c b/arch/sparc64/mm/init.c
index 035c732..9e6bca2 100644
--- a/arch/sparc64/mm/init.c
+++ b/arch/sparc64/mm/init.c
@@ -618,9 +618,9 @@ static void __init inherit_prom_mappings(void)
read_obp_translations();
 
/* Now fixup OBP's idea about where we really are mapped. */
-   prom_printf("Remapping the kernel... ");
+   printk("Remapping the kernel... ");
remap_kernel();
-   prom_printf("done.\n");
+   printk("done.\n");
 }
 
 void prom_world(int enter)
@@ -1414,7 +1414,7 @@ void __init paging_init(void)
zholes_size);
}
 
-   prom_printf("Booting Linux...\n");
+   printk("Booting Linux...\n");
 
central_probe();
cpu_probe();
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[SPARC]: Use shorter form of "get_zeroed_page".

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b3dd5b82560eef53a537e409f50261d0b33c75ce
Commit: b3dd5b82560eef53a537e409f50261d0b33c75ce
Parent: 631a9dca60ddd7d84a08171a14828e9cfb667d48
Author: Robert P. J. Day <[EMAIL PROTECTED]>
AuthorDate: Tue Feb 12 22:08:55 2008 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Tue Feb 12 22:08:55 2008 -0800

[SPARC]: Use shorter form of "get_zeroed_page".

Signed-off-by: Robert P. J. Day <[EMAIL PROTECTED]>
Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 arch/sparc/mm/sun4c.c |4 +---
 1 files changed, 1 insertions(+), 3 deletions(-)

diff --git a/arch/sparc/mm/sun4c.c b/arch/sparc/mm/sun4c.c
index c0442e8..2375fe9 100644
--- a/arch/sparc/mm/sun4c.c
+++ b/arch/sparc/mm/sun4c.c
@@ -1941,9 +1941,7 @@ static pte_t *sun4c_pte_alloc_one_kernel(struct mm_struct 
*mm, unsigned long add
if ((pte = sun4c_pte_alloc_one_fast(mm, address)) != NULL)
return pte;
 
-   pte = (pte_t *)__get_free_page(GFP_KERNEL|__GFP_REPEAT);
-   if (pte)
-   memset(pte, 0, PAGE_SIZE);
+   pte = (pte_t *)get_zeroed_page(GFP_KERNEL|__GFP_REPEAT);
return pte;
 }
 
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


b43legacy: fix firmware load message level

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=cfbc35b62700447b6b14b744554f5dca17bdfa45
Commit: cfbc35b62700447b6b14b744554f5dca17bdfa45
Parent: 1a1c360d73e5100a4dda1010ce0f1ebd71e03811
Author: Stefano Brivio <[EMAIL PROTECTED]>
AuthorDate: Tue Feb 12 03:09:10 2008 +0100
Committer:  John W. Linville <[EMAIL PROTECTED]>
CommitDate: Fri Feb 15 13:44:19 2008 -0500

b43legacy: fix firmware load message level

The firmware version information should always get printed. Not only on a
debug build.

The patch by Michael Buesch has been ported to b43legacy.

Signed-off-by: Stefano Brivio <[EMAIL PROTECTED]>
Signed-off-by: John W. Linville <[EMAIL PROTECTED]>
---
 drivers/net/wireless/b43legacy/main.c |9 +
 1 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/drivers/net/wireless/b43legacy/main.c 
b/drivers/net/wireless/b43legacy/main.c
index 25b9b06..794c2fa 100644
--- a/drivers/net/wireless/b43legacy/main.c
+++ b/drivers/net/wireless/b43legacy/main.c
@@ -1642,10 +1642,11 @@ static int b43legacy_upload_microcode(struct 
b43legacy_wldev *dev)
err = -EOPNOTSUPP;
goto error;
}
-   b43legacydbg(dev->wl, "Loading firmware version 0x%X, patch level %u "
-  "(20%.2i-%.2i-%.2i %.2i:%.2i:%.2i)\n", fwrev, fwpatch,
-  (fwdate >> 12) & 0xF, (fwdate >> 8) & 0xF, fwdate & 0xFF,
-  (fwtime >> 11) & 0x1F, (fwtime >> 5) & 0x3F, fwtime & 0x1F);
+   b43legacyinfo(dev->wl, "Loading firmware version 0x%X, patch level %u "
+ "(20%.2i-%.2i-%.2i %.2i:%.2i:%.2i)\n", fwrev, fwpatch,
+ (fwdate >> 12) & 0xF, (fwdate >> 8) & 0xF, fwdate & 0xFF,
+ (fwtime >> 11) & 0x1F, (fwtime >> 5) & 0x3F,
+ fwtime & 0x1F);
 
dev->fw.rev = fwrev;
dev->fw.patch = fwpatch;
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


iwlwifi: reverting 'misc wireless annotations' patch for iwlwifi

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=58ff6d4db9b51533656173282de8d21f72080a49
Commit: 58ff6d4db9b51533656173282de8d21f72080a49
Parent: cfbc35b62700447b6b14b744554f5dca17bdfa45
Author: Tomas Winkler <[EMAIL PROTECTED]>
AuthorDate: Wed Feb 13 02:47:54 2008 +0200
Committer:  John W. Linville <[EMAIL PROTECTED]>
CommitDate: Fri Feb 15 13:44:19 2008 -0500

iwlwifi: reverting 'misc wireless annotations' patch for iwlwifi

This patch revert commit blow that wrongly suppressed sparse warning in
iwlwifi eeprom reading
In addtion it suppresses correctly the iwlwifi eeprom register reading 
anomaly.

commit 45883ae47a0a4700c0f4716dc75a255cccdc3a76
misc wireless annotations
Signed-off-by: Al Viro <[EMAIL PROTECTED]>

Signed-off-by: Tomas Winkler <[EMAIL PROTECTED]>
Cc: Al Viro <[EMAIL PROTECTED]>
Signed-off-by: John W. Linville <[EMAIL PROTECTED]>
---
 drivers/net/wireless/iwlwifi/iwl3945-base.c |4 ++--
 drivers/net/wireless/iwlwifi/iwl4965-base.c |4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/net/wireless/iwlwifi/iwl3945-base.c 
b/drivers/net/wireless/iwlwifi/iwl3945-base.c
index 74b1099..03a0756 100644
--- a/drivers/net/wireless/iwlwifi/iwl3945-base.c
+++ b/drivers/net/wireless/iwlwifi/iwl3945-base.c
@@ -1586,7 +1586,7 @@ static inline int iwl3945_eeprom_acquire_semaphore(struct 
iwl3945_priv *priv)
  */
 int iwl3945_eeprom_init(struct iwl3945_priv *priv)
 {
-   __le16 *e = (__le16 *)&priv->eeprom;
+   u16 *e = (u16 *)&priv->eeprom;
u32 gp = iwl3945_read32(priv, CSR_EEPROM_GP);
u32 r;
int sz = sizeof(priv->eeprom);
@@ -1629,7 +1629,7 @@ int iwl3945_eeprom_init(struct iwl3945_priv *priv)
IWL_ERROR("Time out reading EEPROM[%d]", addr);
return -ETIMEDOUT;
}
-   e[addr / 2] = cpu_to_le16(r >> 16);
+   e[addr / 2] = le16_to_cpu((__force __le16)(r >> 16));
}
 
return 0;
diff --git a/drivers/net/wireless/iwlwifi/iwl4965-base.c 
b/drivers/net/wireless/iwlwifi/iwl4965-base.c
index 14a11bd..2c67562 100644
--- a/drivers/net/wireless/iwlwifi/iwl4965-base.c
+++ b/drivers/net/wireless/iwlwifi/iwl4965-base.c
@@ -1659,7 +1659,7 @@ static inline void 
iwl4965_eeprom_release_semaphore(struct iwl4965_priv *priv)
  */
 int iwl4965_eeprom_init(struct iwl4965_priv *priv)
 {
-   __le16 *e = (__le16 *)&priv->eeprom;
+   u16 *e = (u16 *)&priv->eeprom;
u32 gp = iwl4965_read32(priv, CSR_EEPROM_GP);
u32 r;
int sz = sizeof(priv->eeprom);
@@ -1703,7 +1703,7 @@ int iwl4965_eeprom_init(struct iwl4965_priv *priv)
rc = -ETIMEDOUT;
goto done;
}
-   e[addr / 2] = cpu_to_le16(r >> 16);
+   e[addr / 2] = le16_to_cpu((__force __le16)(r >> 16));
}
rc = 0;
 
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[BLUETOOTH] hci_sysfs.c: Kill build warning.

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=988d0093f9cb2bf27c299e373f9cbaac47dab2c1
Commit: 988d0093f9cb2bf27c299e373f9cbaac47dab2c1
Parent: fea5fa875eb235dc186b1f5184eb36abc63e26cc
Author: David S. Miller <[EMAIL PROTECTED]>
AuthorDate: Mon Feb 18 00:20:50 2008 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Mon Feb 18 00:20:50 2008 -0800

[BLUETOOTH] hci_sysfs.c: Kill build warning.

net/bluetooth/hci_sysfs.c: In function ‘del_conn’:
net/bluetooth/hci_sysfs.c:339: warning: suggest parentheses around 
assignment used as truth value

Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 net/bluetooth/hci_sysfs.c |8 ++--
 1 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/net/bluetooth/hci_sysfs.c b/net/bluetooth/hci_sysfs.c
index e13cf5e..f5aff6d 100644
--- a/net/bluetooth/hci_sysfs.c
+++ b/net/bluetooth/hci_sysfs.c
@@ -333,10 +333,14 @@ static int __match_tty(struct device *dev, void *data)
 
 static void del_conn(struct work_struct *work)
 {
-   struct device *dev;
struct hci_conn *conn = container_of(work, struct hci_conn, work);
 
-   while (dev = device_find_child(&conn->dev, NULL, __match_tty)) {
+   while (1) {
+   struct device *dev;
+
+   dev = device_find_child(&conn->dev, NULL, __match_tty);
+   if (!dev)
+   break;
device_move(dev, NULL);
put_device(dev);
}
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


make blk_ioc_init() static

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=13341598263011e079386b22ea35e482f97714c0
Commit: 13341598263011e079386b22ea35e482f97714c0
Parent: 5ece6c52ea52f9e94298e950a837ccff415c7687
Author: Adrian Bunk <[EMAIL PROTECTED]>
AuthorDate: Mon Feb 18 13:45:53 2008 +0100
Committer:  Jens Axboe <[EMAIL PROTECTED]>
CommitDate: Tue Feb 19 10:04:00 2008 +0100

make blk_ioc_init() static

blk_ioc_init() can become static.

Signed-off-by: Adrian Bunk <[EMAIL PROTECTED]>
Signed-off-by: Jens Axboe <[EMAIL PROTECTED]>
---
 block/blk-ioc.c |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/block/blk-ioc.c b/block/blk-ioc.c
index 80245dc..4ae0929 100644
--- a/block/blk-ioc.c
+++ b/block/blk-ioc.c
@@ -176,7 +176,7 @@ void copy_io_context(struct io_context **pdst, struct 
io_context **psrc)
 }
 EXPORT_SYMBOL(copy_io_context);
 
-int __init blk_ioc_init(void)
+static int __init blk_ioc_init(void)
 {
iocontext_cachep = kmem_cache_create("blkdev_ioc",
sizeof(struct io_context), 0, SLAB_PANIC, NULL);
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


rndis_wlan: enable stall workaround by link quality instead of link speed

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a97b1f3d203d0fe5503578c6ee8bfdb89ed72679
Commit: a97b1f3d203d0fe5503578c6ee8bfdb89ed72679
Parent: 281c56dd276e587a7b4a65764ac68ae250e73235
Author: Jussi Kivilinna <[EMAIL PROTECTED]>
AuthorDate: Wed Feb 6 15:36:10 2008 +0200
Committer:  John W. Linville <[EMAIL PROTECTED]>
CommitDate: Fri Feb 15 13:44:17 2008 -0500

rndis_wlan: enable stall workaround by link quality instead of link speed

Enable workaround for poor link stalls by link quality instead of link
speed. Using link speed caused workaround be active always on 802.11b
networks which reduced performance and not even catch all stalls.

Signed-off-by: Jussi Kivilinna <[EMAIL PROTECTED]>
Signed-off-by: John W. Linville <[EMAIL PROTECTED]>
---
 drivers/net/wireless/rndis_wlan.c |   14 +-
 1 files changed, 5 insertions(+), 9 deletions(-)

diff --git a/drivers/net/wireless/rndis_wlan.c 
b/drivers/net/wireless/rndis_wlan.c
index d3ecf89..8ce2ddf 100644
--- a/drivers/net/wireless/rndis_wlan.c
+++ b/drivers/net/wireless/rndis_wlan.c
@@ -2300,7 +2300,7 @@ static void rndis_update_wireless_stats(struct 
work_struct *work)
struct usbnet *usbdev = priv->usbdev;
struct iw_statistics iwstats;
__le32 rssi, tmp;
-   int len, ret, bitrate, j;
+   int len, ret, j;
unsigned long flags;
int update_jiffies = STATS_UPDATE_JIFFIES;
void *buf;
@@ -2352,14 +2352,10 @@ static void rndis_update_wireless_stats(struct 
work_struct *work)
if (ret == 0)
iwstats.discard.misc += le32_to_cpu(tmp);
 
-   /* Workaround transfer stalls on poor quality links. */
-   len = sizeof(tmp);
-   ret = rndis_query_oid(usbdev, OID_GEN_LINK_SPEED, &tmp, &len);
-   if (ret == 0) {
-   bitrate = le32_to_cpu(tmp) * 100;
-   if (bitrate > 1100)
-   goto end;
-
+   /* Workaround transfer stalls on poor quality links.
+* TODO: find right way to fix these stalls (as stalls do not happen
+* with ndiswrapper/windows driver). */
+   if (iwstats.qual.qual <= 25) {
/* Decrease stats worker interval to catch stalls.
 * faster. Faster than 400-500ms causes packet loss,
 * Slower doesn't catch stalls fast enough.
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[IPV4]: fix alignment of IP-Config output

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9c00409a2a677511506126634fbfd9f217989e57
Commit: 9c00409a2a677511506126634fbfd9f217989e57
Parent: 32b90fc8b11b94b719745512d7e58c0b25717260
Author: Uwe Kleine-Koenig <[EMAIL PROTECTED]>
AuthorDate: Sun Feb 17 22:28:32 2008 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Sun Feb 17 22:28:32 2008 -0800

[IPV4]: fix alignment of IP-Config output

Make the indented lines aligned in the output (not in the code).

Signed-off-by: Uwe Kleine-Koenig <[EMAIL PROTECTED]>
Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 net/ipv4/ipconfig.c |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/net/ipv4/ipconfig.c b/net/ipv4/ipconfig.c
index a52b585..10013cc 100644
--- a/net/ipv4/ipconfig.c
+++ b/net/ipv4/ipconfig.c
@@ -1390,7 +1390,7 @@ static int __init ip_auto_config(void)
 * Clue in the operator.
 */
printk("IP-Config: Complete:");
-   printk("\n  device=%s", ic_dev->name);
+   printk("\n device=%s", ic_dev->name);
printk(", addr=%u.%u.%u.%u", NIPQUAD(ic_myaddr));
printk(", mask=%u.%u.%u.%u", NIPQUAD(ic_netmask));
printk(", gw=%u.%u.%u.%u", NIPQUAD(ic_gateway));
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[NET]: Elminate spurious print_mac() calls.

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=8f789c48448aed74fe1c07af76de8f04adacec7d
Commit: 8f789c48448aed74fe1c07af76de8f04adacec7d
Parent: 988d0093f9cb2bf27c299e373f9cbaac47dab2c1
Author: David S. Miller <[EMAIL PROTECTED]>
AuthorDate: Mon Feb 18 16:50:22 2008 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Mon Feb 18 16:50:22 2008 -0800

[NET]: Elminate spurious print_mac() calls.

Patrick McHardy notes that print_mac() can get invoked
even if the result it unused (f.e. as an argument to
pr_debug() when DEBUG is not defined).

Mark this function as "__pure" to eliminate this problem.

Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 include/linux/if_ether.h |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/include/linux/if_ether.h b/include/linux/if_ether.h
index 7a1e011..42dc6a3 100644
--- a/include/linux/if_ether.h
+++ b/include/linux/if_ether.h
@@ -129,7 +129,7 @@ extern ssize_t sysfs_format_mac(char *buf, const unsigned 
char *addr, int len);
 /*
  * Display a 6 byte device address (MAC) in a readable format.
  */
-extern char *print_mac(char *buf, const unsigned char *addr);
+extern __pure char *print_mac(char *buf, const unsigned char *addr);
 #define MAC_BUF_SIZE   18
 #define DECLARE_MAC_BUF(var) char var[MAC_BUF_SIZE] __maybe_unused
 
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[SPARC64]: Add -mtune=ultrasparc3 if possible.

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=966d905634de4433cea465fdcea19503c4ae260f
Commit: 966d905634de4433cea465fdcea19503c4ae260f
Parent: 54cd6ddec77b75e6926d73d263aec72255b24030
Author: David S. Miller <[EMAIL PROTECTED]>
AuthorDate: Thu Feb 14 00:58:44 2008 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Sun Feb 17 22:43:34 2008 -0800

[SPARC64]: Add -mtune=ultrasparc3 if possible.

This gives better heuristics for the cost of a multiply (fixed
5 cycles), rather than the 'ultrasparc' setting (variable, and
unpredictable if the second argument is non-constant).

Example code size savings:

   textdata bss dec hex filename
3823690  304040  448880 4576610  45d562 vmlinux
3824521  304040  448880 4577441  45d8a1 vmlinux.orig

Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 arch/sparc64/Makefile |1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/arch/sparc64/Makefile b/arch/sparc64/Makefile
index 848e334..f0c22f8 100644
--- a/arch/sparc64/Makefile
+++ b/arch/sparc64/Makefile
@@ -17,6 +17,7 @@ LDFLAGS   := -m elf64_sparc
 KBUILD_CFLAGS += -m64 -pipe -mno-fpu -mcpu=ultrasparc -mcmodel=medlow \
-ffixed-g4 -ffixed-g5 -fcall-used-g7 -Wno-sign-compare \
-Wa,--undeclared-regs
+KBUILD_CFLAGS += $(call cc-option,-mtune=ultrasparc3)
 KBUILD_AFLAGS += -m64 -mcpu=ultrasparc -Wa,--undeclared-regs
 
 ifeq ($(CONFIG_MCOUNT),y)
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[SPARC64]: Kill 'prom_keyboard'.

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=101788b0ab5464cf485c5d434ac30563e6f9e5fe
Commit: 101788b0ab5464cf485c5d434ac30563e6f9e5fe
Parent: 1d5509aa6985b256a426e67ae6952fd4b7664de7
Author: David S. Miller <[EMAIL PROTECTED]>
AuthorDate: Mon Feb 18 15:21:30 2008 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Mon Feb 18 15:21:30 2008 -0800

[SPARC64]: Kill 'prom_keyboard'.

Nothing ever sets it, so it just takes up space.

Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 arch/sparc64/kernel/process.c |7 ---
 arch/sparc64/kernel/setup.c   |1 -
 2 files changed, 0 insertions(+), 8 deletions(-)

diff --git a/arch/sparc64/kernel/process.c b/arch/sparc64/kernel/process.c
index 1b23791..d7e8e80 100644
--- a/arch/sparc64/kernel/process.c
+++ b/arch/sparc64/kernel/process.c
@@ -114,15 +114,12 @@ void cpu_idle(void)
 extern char reboot_command [];
 
 extern void (*prom_palette)(int);
-extern void (*prom_keyboard)(void);
 
 void machine_halt(void)
 {
sstate_halt();
if (prom_palette)
prom_palette (1);
-   if (prom_keyboard)
-   prom_keyboard();
prom_halt();
panic("Halt failed!");
 }
@@ -132,8 +129,6 @@ void machine_alt_power_off(void)
sstate_poweroff();
if (prom_palette)
prom_palette(1);
-   if (prom_keyboard)
-   prom_keyboard();
prom_halt_power_off();
panic("Power-off failed!");
 }
@@ -147,8 +142,6 @@ void machine_restart(char * cmd)
if (p) *p = 0;
if (prom_palette)
prom_palette (1);
-   if (prom_keyboard)
-   prom_keyboard();
if (cmd)
prom_reboot(cmd);
if (*reboot_command)
diff --git a/arch/sparc64/kernel/setup.c b/arch/sparc64/kernel/setup.c
index 82b4d09..577c823 100644
--- a/arch/sparc64/kernel/setup.c
+++ b/arch/sparc64/kernel/setup.c
@@ -69,7 +69,6 @@ struct screen_info screen_info = {
 };
 
 void (*prom_palette)(int);
-void (*prom_keyboard)(void);
 
 static void
 prom_console_write(struct console *con, const char *s, unsigned n)
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[NET]: Remove MAC_FMT

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=fea5fa875eb235dc186b1f5184eb36abc63e26cc
Commit: fea5fa875eb235dc186b1f5184eb36abc63e26cc
Parent: 235365f310b7056293877c0ead50425f25c7
Author: Joe Perches <[EMAIL PROTECTED]>
AuthorDate: Sun Feb 17 23:35:28 2008 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Sun Feb 17 23:35:28 2008 -0800

[NET]: Remove MAC_FMT

MAC_FMT is no longer used

Signed-off-by: Joe Perches <[EMAIL PROTECTED]>
Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 include/linux/if_ether.h |1 -
 1 files changed, 0 insertions(+), 1 deletions(-)

diff --git a/include/linux/if_ether.h b/include/linux/if_ether.h
index e157c13..7a1e011 100644
--- a/include/linux/if_ether.h
+++ b/include/linux/if_ether.h
@@ -130,7 +130,6 @@ extern ssize_t sysfs_format_mac(char *buf, const unsigned 
char *addr, int len);
  * Display a 6 byte device address (MAC) in a readable format.
  */
 extern char *print_mac(char *buf, const unsigned char *addr);
-#define MAC_FMT "%02x:%02x:%02x:%02x:%02x:%02x"
 #define MAC_BUF_SIZE   18
 #define DECLARE_MAC_BUF(var) char var[MAC_BUF_SIZE] __maybe_unused
 
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Tsi108_eth: fix detection of 1000Mb mode

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6a87155a39f538f9d13cebf2c9b7c19bd41d7da9
Commit: 6a87155a39f538f9d13cebf2c9b7c19bd41d7da9
Parent: a235ef2c632a096cdb2b02379c89b49e97f4
Author: Alex Bounine <[EMAIL PROTECTED]>
AuthorDate: Mon Feb 11 14:35:26 2008 -0500
Committer:  Jeff Garzik <[EMAIL PROTECTED]>
CommitDate: Mon Feb 11 14:46:03 2008 -0500

Tsi108_eth: fix detection of 1000Mb mode

Bug fix for tsi108_eth network driver.
This patch fixes a problem with detection of 1000Mb speed.

Signed-off-by: Alexandre Bounine <[EMAIL PROTECTED]>
Signed-off-by: Jeff Garzik <[EMAIL PROTECTED]>
---
 drivers/net/tsi108_eth.c |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/net/tsi108_eth.c b/drivers/net/tsi108_eth.c
index 6f222d7..2e87876 100644
--- a/drivers/net/tsi108_eth.c
+++ b/drivers/net/tsi108_eth.c
@@ -1287,6 +1287,7 @@ static void tsi108_init_phy(struct net_device *dev)
spin_lock_irqsave(&phy_lock, flags);
}
 
+   data->mii_if.supports_gmii = mii_check_gmii_support(&data->mii_if);
printk(KERN_DEBUG "PHY_STAT reg contains %08x\n", phyval);
data->phy_ok = 1;
data->init_media = 1;
@@ -1584,7 +1585,6 @@ tsi108_init_one(struct platform_device *pdev)
data->mii_if.phy_id = einfo->phy;
data->mii_if.phy_id_mask = 0x1f;
data->mii_if.reg_num_mask = 0x1f;
-   data->mii_if.supports_gmii = mii_check_gmii_support(&data->mii_if);
 
data->phy = einfo->phy;
data->phy_type = einfo->phy_type;
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[IPV6]: dst_entry leak in ip4ip6_err. (resend)

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9937ded8e44de8865cba1509d24eea9d350cebf0
Commit: 9937ded8e44de8865cba1509d24eea9d350cebf0
Parent: 8ac62dc773c149d7b7124b4912b425842f905d3e
Author: Denis V. Lunev <[EMAIL PROTECTED]>
AuthorDate: Mon Feb 18 20:49:36 2008 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Mon Feb 18 20:49:36 2008 -0800

[IPV6]: dst_entry leak in ip4ip6_err. (resend)

The result of the ip_route_output is not assigned to skb. This means that
- it is leaked
- possible OOPS below dereferrencing skb->dst
- no ICMP message for this case

Signed-off-by: Denis V. Lunev <[EMAIL PROTECTED]>
Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 net/ipv6/ip6_tunnel.c |1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/net/ipv6/ip6_tunnel.c b/net/ipv6/ip6_tunnel.c
index 9031e52..cd94064 100644
--- a/net/ipv6/ip6_tunnel.c
+++ b/net/ipv6/ip6_tunnel.c
@@ -550,6 +550,7 @@ ip4ip6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
ip_rt_put(rt);
goto out;
}
+   skb2->dst = (struct dst_entry *)rt;
} else {
ip_rt_put(rt);
if (ip_route_input(skb2, eiph->daddr, eiph->saddr, eiph->tos,
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[S390] Make sure enabled wait psw is loaded in default_idle.

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=11ab244c9faead91683a12e4cb10d26b279bb4aa
Commit: 11ab244c9faead91683a12e4cb10d26b279bb4aa
Parent: 057c5cb35ece6ae3a4c2cb849f3948c5ad6add32
Author: Heiko Carstens <[EMAIL PROTECTED]>
AuthorDate: Tue Feb 19 15:29:26 2008 +0100
Committer:  Martin Schwidefsky <[EMAIL PROTECTED]>
CommitDate: Tue Feb 19 15:29:33 2008 +0100

[S390] Make sure enabled wait psw is loaded in default_idle.

If both NO_IDLE_HZ and VIRT_TIMER are disabled default_idle won't load
an enabled wait psw and busy loop instead. This is because the
idle_chain is empty and the return value of atomic_notifier_call_chain
will be NOTIFY_DONE, which causes default_idle to return instead of
loading an enabled wait psw.
Fix this by calling __atomic_notifier_call_chain instead and add proper
return value handling.

Signed-off-by: Heiko Carstens <[EMAIL PROTECTED]>
Signed-off-by: Martin Schwidefsky <[EMAIL PROTECTED]>
---
 arch/s390/kernel/process.c |   15 +--
 1 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/arch/s390/kernel/process.c b/arch/s390/kernel/process.c
index a6a4729..1c59ec1 100644
--- a/arch/s390/kernel/process.c
+++ b/arch/s390/kernel/process.c
@@ -114,24 +114,27 @@ extern void s390_handle_mcck(void);
 static void default_idle(void)
 {
int cpu, rc;
+   int nr_calls = 0;
+   void *hcpu;
 #ifdef CONFIG_SMP
struct s390_idle_data *idle;
 #endif
 
/* CPU is going idle. */
cpu = smp_processor_id();
-
+   hcpu = (void *)(long)cpu;
local_irq_disable();
if (need_resched()) {
local_irq_enable();
return;
}
 
-   rc = atomic_notifier_call_chain(&idle_chain,
-   S390_CPU_IDLE, (void *)(long) cpu);
-   if (rc != NOTIFY_OK && rc != NOTIFY_DONE)
-   BUG();
-   if (rc != NOTIFY_OK) {
+   rc = __atomic_notifier_call_chain(&idle_chain, S390_CPU_IDLE, hcpu, -1,
+ &nr_calls);
+   if (rc == NOTIFY_BAD) {
+   nr_calls--;
+   __atomic_notifier_call_chain(&idle_chain, S390_CPU_NOT_IDLE,
+hcpu, nr_calls, NULL);
local_irq_enable();
return;
}
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[SPARC64]: Add regs_return_value().

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f6d091e05199e67ba79c3ea29faa5c3b51d5daf4
Commit: f6d091e05199e67ba79c3ea29faa5c3b51d5daf4
Parent: 8c5b4a3f43c060662d83574a4c85fbb362419ddd
Author: David S. Miller <[EMAIL PROTECTED]>
AuthorDate: Tue Feb 19 00:31:22 2008 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Tue Feb 19 00:31:22 2008 -0800

[SPARC64]: Add regs_return_value().

Needed for kretprobes.

Noticed by Ananth N Mavinakayanahalli.

Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 include/asm-sparc64/ptrace.h |1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/include/asm-sparc64/ptrace.h b/include/asm-sparc64/ptrace.h
index 8617c3a..67341cf 100644
--- a/include/asm-sparc64/ptrace.h
+++ b/include/asm-sparc64/ptrace.h
@@ -102,6 +102,7 @@ do {current_thread_info()->syscall_noerror = 1; \
 } while (0)
 #define user_mode(regs) (!((regs)->tstate & TSTATE_PRIV))
 #define instruction_pointer(regs) ((regs)->tpc)
+#define regs_return_value(regs) ((regs)->u_regs[UREG_I0])
 #ifdef CONFIG_SMP
 extern unsigned long profile_pc(struct pt_regs *);
 #else
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


make blk-core.c:request_cachep static again

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5ece6c52ea52f9e94298e950a837ccff415c7687
Commit: 5ece6c52ea52f9e94298e950a837ccff415c7687
Parent: 9a4c8546f3e7c893888bccc2b3416d6214f2664a
Author: Adrian Bunk <[EMAIL PROTECTED]>
AuthorDate: Mon Feb 18 13:45:51 2008 +0100
Committer:  Jens Axboe <[EMAIL PROTECTED]>
CommitDate: Tue Feb 19 10:04:00 2008 +0100

make blk-core.c:request_cachep static again

request_cachep needlessly became global.

Signed-off-by: Adrian Bunk <[EMAIL PROTECTED]>
Signed-off-by: Jens Axboe <[EMAIL PROTECTED]>
---
 block/blk-core.c |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/block/blk-core.c b/block/blk-core.c
index e9754dc..c013ca2 100644
--- a/block/blk-core.c
+++ b/block/blk-core.c
@@ -38,7 +38,7 @@ static int __make_request(struct request_queue *q, struct bio 
*bio);
 /*
  * For the allocated request tables
  */
-struct kmem_cache *request_cachep;
+static struct kmem_cache *request_cachep;
 
 /*
  * For queue allocation
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[SPARC]: Kill 'prom_palette'.

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=667bc389c716389795c6cfa145ab5ef6279fbb62
Commit: 667bc389c716389795c6cfa145ab5ef6279fbb62
Parent: 30b3cfe1f67550bb6ec6868507a78060ef98269a
Author: David S. Miller <[EMAIL PROTECTED]>
AuthorDate: Mon Feb 18 15:28:16 2008 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Mon Feb 18 15:28:16 2008 -0800

[SPARC]: Kill 'prom_palette'.

The idea of this thing is we could save/restore the firmware's
palette when breaking in and out of the firmware prompt.

Only one driver implemented this (atyfb) and it's value is
questionable.  If you're just debugging you don't really
care that the characters end up being purple or whatever.

And we can provide better debugging and firmware command
facilities with minimal in-kernel console I/O drivers.

Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 arch/sparc/kernel/process.c |6 --
 arch/sparc/kernel/setup.c   |3 ---
 arch/sparc/prom/misc.c  |7 ---
 arch/sparc64/kernel/process.c   |8 
 arch/sparc64/kernel/setup.c |2 --
 arch/sparc64/kernel/sparc64_ksyms.c |3 ---
 arch/sparc64/prom/misc.c|9 -
 7 files changed, 0 insertions(+), 38 deletions(-)

diff --git a/arch/sparc/kernel/process.c b/arch/sparc/kernel/process.c
index 19186ce..0bd69d0 100644
--- a/arch/sparc/kernel/process.c
+++ b/arch/sparc/kernel/process.c
@@ -141,16 +141,12 @@ void cpu_idle(void)
 
 extern char reboot_command [];
 
-extern void (*prom_palette)(int);
-
 /* XXX cli/sti -> local_irq_xxx here, check this works once SMP is fixed. */
 void machine_halt(void)
 {
local_irq_enable();
mdelay(8);
local_irq_disable();
-   if (prom_palette)
-   prom_palette (1);
prom_halt();
panic("Halt failed!");
 }
@@ -165,8 +161,6 @@ void machine_restart(char * cmd)
 
p = strchr (reboot_command, '\n');
if (p) *p = 0;
-   if (prom_palette)
-   prom_palette (1);
if (cmd)
prom_reboot(cmd);
if (*reboot_command)
diff --git a/arch/sparc/kernel/setup.c b/arch/sparc/kernel/setup.c
index 5f1508e..3c13137 100644
--- a/arch/sparc/kernel/setup.c
+++ b/arch/sparc/kernel/setup.c
@@ -65,7 +65,6 @@ struct screen_info screen_info = {
  */
 
 extern unsigned long trapbase;
-void (*prom_palette)(int);
 
 /* Pretty sick eh? */
 void prom_sync_me(void)
@@ -80,8 +79,6 @@ void prom_sync_me(void)
 "nop\n\t"
 "nop\n\t" : : "r" (&trapbase));
 
-   if (prom_palette)
-   prom_palette(1);
prom_printf("PROM SYNC COMMAND...\n");
show_free_areas();
if(current->pid != 0) {
diff --git a/arch/sparc/prom/misc.c b/arch/sparc/prom/misc.c
index 37cff5f..d9fb3af 100644
--- a/arch/sparc/prom/misc.c
+++ b/arch/sparc/prom/misc.c
@@ -45,9 +45,6 @@ prom_feval(char *fstring)
spin_unlock_irqrestore(&prom_lock, flags);
 }
 
-/* We want to do this more nicely some day. */
-extern void (*prom_palette)(int);
-
 /* Drop into the prom, with the chance to continue with the 'go'
  * prom command.
  */
@@ -58,8 +55,6 @@ prom_cmdline(void)
extern void install_linux_ticker(void);
unsigned long flags;
 
-   if (prom_palette)
-   prom_palette (1);
spin_lock_irqsave(&prom_lock, flags);
install_obp_ticker();
(*(romvec->pv_abort))();
@@ -69,8 +64,6 @@ prom_cmdline(void)
 #ifdef CONFIG_SUN_AUXIO
set_auxio(AUXIO_LED, 0);
 #endif
-   if (prom_palette)
-   prom_palette (0);
 }
 
 /* Drop into the prom, but completely terminate the program.
diff --git a/arch/sparc64/kernel/process.c b/arch/sparc64/kernel/process.c
index d7e8e80..6eceac5 100644
--- a/arch/sparc64/kernel/process.c
+++ b/arch/sparc64/kernel/process.c
@@ -113,13 +113,9 @@ void cpu_idle(void)
 
 extern char reboot_command [];
 
-extern void (*prom_palette)(int);
-
 void machine_halt(void)
 {
sstate_halt();
-   if (prom_palette)
-   prom_palette (1);
prom_halt();
panic("Halt failed!");
 }
@@ -127,8 +123,6 @@ void machine_halt(void)
 void machine_alt_power_off(void)
 {
sstate_poweroff();
-   if (prom_palette)
-   prom_palette(1);
prom_halt_power_off();
panic("Power-off failed!");
 }
@@ -140,8 +134,6 @@ void machine_restart(char * cmd)
sstate_reboot();
p = strchr (reboot_command, '\n');
if (p) *p = 0;
-   if (prom_palette)
-   prom_palette (1);
if (cmd)
prom_reboot(cmd);
if (*reboot_command)
diff --git a/arch/sparc64/kernel/setup.c b/arch/sparc64/kernel/setup.c
index 577c823..d036dbe 100644
--- a/arch/sparc64/kernel/setup.c
+++ b/arch/sparc64/kernel/setup.c
@@ -68,8 +68,6 @@ struct screen_info screen_info = {

[SPARC64]: Remove Makefile code for ancient gcc and binutils.

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=54cd6ddec77b75e6926d73d263aec72255b24030
Commit: 54cd6ddec77b75e6926d73d263aec72255b24030
Parent: 0f78e7542e94e8f64ed393289d7bfac032634620
Author: David S. Miller <[EMAIL PROTECTED]>
AuthorDate: Thu Feb 14 00:37:21 2008 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Sun Feb 17 22:42:45 2008 -0800

[SPARC64]: Remove Makefile code for ancient gcc and binutils.

The kernel hasn't supported the compilers which need these tests
for years.

Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 arch/sparc64/Makefile |   35 ---
 1 files changed, 4 insertions(+), 31 deletions(-)

diff --git a/arch/sparc64/Makefile b/arch/sparc64/Makefile
index 01159cb..848e334 100644
--- a/arch/sparc64/Makefile
+++ b/arch/sparc64/Makefile
@@ -12,39 +12,12 @@ CHECKFLAGS  += -D__sparc__ -D__sparc_v9__ -m64
 
 CPPFLAGS_vmlinux.lds += -Usparc
 
-CC := $(shell if $(CC) -m64 -S -o /dev/null -xc /dev/null 
>/dev/null 2>&1; then echo $(CC); else echo sparc64-linux-gcc; fi )
-
-NEW_GCC := $(call cc-option-yn, -m64 -mcmodel=medlow)
-NEW_GAS := $(shell if $(LD) -V 2>&1 | grep 'elf64_sparc' > /dev/null; then 
echo y; else echo n; fi)
-UNDECLARED_REGS := $(shell if $(CC) -c -x assembler /dev/null -Wa,--help | 
grep undeclared-regs > /dev/null; then echo y; else echo n; fi; )
-
-ifneq ($(NEW_GAS),y)
-AS = sparc64-linux-as
-LD = sparc64-linux-ld
-NM = sparc64-linux-nm
-AR = sparc64-linux-ar
-RANLIB = sparc64-linux-ranlib
-else
-AS := $(AS) -64
 LDFLAGS:= -m elf64_sparc
-endif
 
-ifneq ($(UNDECLARED_REGS),y)
-CC_UNDECL  =
-else
-CC_UNDECL  = -Wa,--undeclared-regs
-AS := $(AS) --undeclared-regs
-endif
-
-ifneq ($(NEW_GCC),y)
-  KBUILD_CFLAGS += -pipe -mno-fpu -mtune=ultrasparc -mmedlow \
-   -ffixed-g4 -ffixed-g5 -fcall-used-g7 -Wno-sign-compare
-else
-  KBUILD_CFLAGS += -m64 -pipe -mno-fpu -mcpu=ultrasparc -mcmodel=medlow \
-   -ffixed-g4 -ffixed-g5 -fcall-used-g7 -Wno-sign-compare \
-   $(CC_UNDECL)
-  KBUILD_AFLAGS += -m64 -mcpu=ultrasparc $(CC_UNDECL)
-endif
+KBUILD_CFLAGS += -m64 -pipe -mno-fpu -mcpu=ultrasparc -mcmodel=medlow \
+   -ffixed-g4 -ffixed-g5 -fcall-used-g7 -Wno-sign-compare \
+   -Wa,--undeclared-regs
+KBUILD_AFLAGS += -m64 -mcpu=ultrasparc -Wa,--undeclared-regs
 
 ifeq ($(CONFIG_MCOUNT),y)
   KBUILD_CFLAGS += -pg
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


net/9p/trans_virtio.c: Use BUG_ON

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d6584f3a08055688b2344eb26379fb2f3147ce91
Commit: d6584f3a08055688b2344eb26379fb2f3147ce91
Parent: 163e3cb7daa8c3a6dde6a13a3d09a198930c6822
Author: Julia Lawall <[EMAIL PROTECTED]>
AuthorDate: Sun Feb 17 18:42:53 2008 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Sun Feb 17 18:42:53 2008 -0800

net/9p/trans_virtio.c: Use BUG_ON

if (...) BUG(); should be replaced with BUG_ON(...) when the test has no
side-effects to allow a definition of BUG_ON that drops the code completely.

The semantic patch that makes this change is as follows:
(http://www.emn.fr/x-info/coccinelle/)

// 
@ disable unlikely @ expression E,f; @@

(
  if (<... f(...) ...>) { BUG(); }
|
- if (unlikely(E)) { BUG(); }
+ BUG_ON(E);
)

@@ expression E,f; @@

(
  if (<... f(...) ...>) { BUG(); }
|
- if (E) { BUG(); }
+ BUG_ON(E);
)
// 

Signed-off-by: Julia Lawall <[EMAIL PROTECTED]>
Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 net/9p/trans_virtio.c |3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)

diff --git a/net/9p/trans_virtio.c b/net/9p/trans_virtio.c
index 0117b9f..9e3d81c 100644
--- a/net/9p/trans_virtio.c
+++ b/net/9p/trans_virtio.c
@@ -183,8 +183,7 @@ pack_sg_list(struct scatterlist *sg, int start, int limit, 
char *data,
sg_set_buf(&sg[index++], data, s);
count -= s;
data += s;
-   if (index > limit)
-   BUG();
+   BUG_ON(index > limit);
}
 
return index-start;
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


b43: Add driver load messages

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=26bc783f8cf7227718f8b4cbc32f0c3a898b128f
Commit: 26bc783f8cf7227718f8b4cbc32f0c3a898b128f
Parent: 8e118f0ed866afab654a438b85643d4f1472f28b
Author: Michael Buesch <[EMAIL PROTECTED]>
AuthorDate: Sat Feb 9 00:18:35 2008 +0100
Committer:  John W. Linville <[EMAIL PROTECTED]>
CommitDate: Fri Feb 15 13:44:18 2008 -0500

b43: Add driver load messages

This adds printk messages with basic information about the driver being 
loaded.
This information includes a summary of the compiled-in features, which
simplifies bug-reporting and debugging a lot.
Also a firmware ID is printed. This is a unique identifier blob for a 
specific
version of the firmware. This ID is attached to a specific version of the 
firmware
blob in b43-fwcutter (see fwcutter git).
This helps users to select the right firmware for their device.
This also makes it possible to use automated scripts to fetch and extract 
the right
firmware for the driver. (the script will grep the .ko for the 
"Firmware-ID: xxx" string.
While the driver might still support other versions of the firmware for 
backward
compatibility, this will always print out the officially supported version, 
which
people _should_ use.

Signed-off-by: Michael Buesch <[EMAIL PROTECTED]>
Signed-off-by: John W. Linville <[EMAIL PROTECTED]>
---
 drivers/net/wireless/b43/b43.h  |6 ++
 drivers/net/wireless/b43/main.c |   28 
 2 files changed, 34 insertions(+), 0 deletions(-)

diff --git a/drivers/net/wireless/b43/b43.h b/drivers/net/wireless/b43/b43.h
index 08a011f..f13346b 100644
--- a/drivers/net/wireless/b43/b43.h
+++ b/drivers/net/wireless/b43/b43.h
@@ -14,6 +14,12 @@
 #include "lo.h"
 #include "phy.h"
 
+
+/* The unique identifier of the firmware that's officially supported by
+ * this driver version. */
+#define B43_SUPPORTED_FIRMWARE_ID  "FW13"
+
+
 #ifdef CONFIG_B43_DEBUG
 # define B43_DEBUG 1
 #else
diff --git a/drivers/net/wireless/b43/main.c b/drivers/net/wireless/b43/main.c
index ef65c41..e55823c 100644
--- a/drivers/net/wireless/b43/main.c
+++ b/drivers/net/wireless/b43/main.c
@@ -4200,6 +4200,33 @@ static struct ssb_driver b43_ssb_driver = {
.resume = b43_resume,
 };
 
+static void b43_print_driverinfo(void)
+{
+   const char *feat_pci = "", *feat_pcmcia = "", *feat_nphy = "",
+  *feat_leds = "", *feat_rfkill = "";
+
+#ifdef CONFIG_B43_PCI_AUTOSELECT
+   feat_pci = "P";
+#endif
+#ifdef CONFIG_B43_PCMCIA
+   feat_pcmcia = "M";
+#endif
+#ifdef CONFIG_B43_NPHY
+   feat_nphy = "N";
+#endif
+#ifdef CONFIG_B43_LEDS
+   feat_leds = "L";
+#endif
+#ifdef CONFIG_B43_RFKILL
+   feat_rfkill = "R";
+#endif
+   printk(KERN_INFO "Broadcom 43xx driver loaded "
+  "[ Features: %s%s%s%s%s, Firmware-ID: "
+  B43_SUPPORTED_FIRMWARE_ID " ]\n",
+  feat_pci, feat_pcmcia, feat_nphy,
+  feat_leds, feat_rfkill);
+}
+
 static int __init b43_init(void)
 {
int err;
@@ -4211,6 +4238,7 @@ static int __init b43_init(void)
err = ssb_driver_register(&b43_ssb_driver);
if (err)
goto err_pcmcia_exit;
+   b43_print_driverinfo();
 
return err;
 
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


block: clear drain buffer if draining for write command

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=db0a2e0099be3a1cff55879225881465f16c67d3
Commit: db0a2e0099be3a1cff55879225881465f16c67d3
Parent: 2fb98e8414c42cb14698833aac640b143b9ade4f
Author: Tejun Heo <[EMAIL PROTECTED]>
AuthorDate: Tue Feb 19 11:36:55 2008 +0100
Committer:  Jens Axboe <[EMAIL PROTECTED]>
CommitDate: Tue Feb 19 11:36:55 2008 +0100

block: clear drain buffer if draining for write command

Clear drain buffer before chaining if the command in question is a
write.

Signed-off-by: Tejun Heo <[EMAIL PROTECTED]>
Signed-off-by: Jens Axboe <[EMAIL PROTECTED]>
---
 block/blk-merge.c |3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/block/blk-merge.c b/block/blk-merge.c
index bef1b4d..7506c4f 100644
--- a/block/blk-merge.c
+++ b/block/blk-merge.c
@@ -221,6 +221,9 @@ new_segment:
} /* segments in rq */
 
if (q->dma_drain_size && q->dma_drain_needed(rq)) {
+   if (rq->cmd_flags & REQ_RW)
+   memset(q->dma_drain_buffer, 0, q->dma_drain_size);
+
sg->page_link &= ~0x02;
sg = sg_next(sg);
sg_set_page(sg, virt_to_page(q->dma_drain_buffer),
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


e1000e: PCIe devices do not need to unset MANC_ARP_ENA

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e8ef7f295b9f02c1522da405ac545318174239d5
Commit: e8ef7f295b9f02c1522da405ac545318174239d5
Parent: aa20c6c6d22efcca76c6225eb46f5903ce14c7c8
Author: David Graham <[EMAIL PROTECTED]>
AuthorDate: Thu Feb 14 10:17:20 2008 -0800
Committer:  Jeff Garzik <[EMAIL PROTECTED]>
CommitDate: Fri Feb 15 10:52:14 2008 -0500

e1000e: PCIe devices do not need to unset MANC_ARP_ENA

Users reported that ARP's were lost with e1000e. The problem
is fixed by not enabling this manageability configuration
bit.

None of the release_manageability code is actually needed as the
normal device reset during a shutdown returns everthing to
the right condition automatically.

Signed-off-by: David Graham <[EMAIL PROTECTED]>
Signed-off-by: Auke Kok <[EMAIL PROTECTED]>
Signed-off-by: Jeff Garzik <[EMAIL PROTECTED]>
---
 drivers/net/e1000e/netdev.c |   26 --
 1 files changed, 0 insertions(+), 26 deletions(-)

diff --git a/drivers/net/e1000e/netdev.c b/drivers/net/e1000e/netdev.c
index ea4ecc3..3031d6d 100644
--- a/drivers/net/e1000e/netdev.c
+++ b/drivers/net/e1000e/netdev.c
@@ -1055,23 +1055,6 @@ static void e1000_release_hw_control(struct 
e1000_adapter *adapter)
}
 }
 
-static void e1000_release_manageability(struct e1000_adapter *adapter)
-{
-   if (adapter->flags & FLAG_MNG_PT_ENABLED) {
-   struct e1000_hw *hw = &adapter->hw;
-
-   u32 manc = er32(MANC);
-
-   /* re-enable hardware interception of ARP */
-   manc |= E1000_MANC_ARP_EN;
-   manc &= ~E1000_MANC_EN_MNG2HOST;
-
-   /* don't explicitly have to mess with MANC2H since
-* MANC has an enable disable that gates MANC2H */
-   ew32(MANC, manc);
-   }
-}
-
 /**
  * @e1000_alloc_ring - allocate memory for a ring structure
  **/
@@ -1561,9 +1544,6 @@ static void e1000_init_manageability(struct e1000_adapter 
*adapter)
 
manc = er32(MANC);
 
-   /* disable hardware interception of ARP */
-   manc &= ~(E1000_MANC_ARP_EN);
-
/* enable receiving management packets to the host. this will probably
 * generate destination unreachable messages from the host OS, but
 * the packets will be handled on SMBUS */
@@ -2140,8 +2120,6 @@ void e1000e_reset(struct e1000_adapter *adapter)
phy_data &= ~IGP02E1000_PM_SPD;
e1e_wphy(hw, IGP02E1000_PHY_POWER_MGMT, phy_data);
}
-
-   e1000_release_manageability(adapter);
 }
 
 int e1000e_up(struct e1000_adapter *adapter)
@@ -3487,8 +3465,6 @@ static int e1000_suspend(struct pci_dev *pdev, 
pm_message_t state)
pci_enable_wake(pdev, PCI_D3cold, 0);
}
 
-   e1000_release_manageability(adapter);
-
/* make sure adapter isn't asleep if manageability is enabled */
if (adapter->flags & FLAG_MNG_PT_ENABLED) {
pci_enable_wake(pdev, PCI_D3hot, 1);
@@ -4054,8 +4030,6 @@ static void __devexit e1000_remove(struct pci_dev *pdev)
 
flush_scheduled_work();
 
-   e1000_release_manageability(adapter);
-
/* Release control of h/w to f/w.  If f/w is AMT enabled, this
 * would have already happened in close and is redundant. */
e1000_release_hw_control(adapter);
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[BLUETOOTH] net/bluetooth/hci_core.c: Use time_* macros

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=82453021b8be85171350c695d7ebafe7b517c812
Commit: 82453021b8be85171350c695d7ebafe7b517c812
Parent: 5ee46e562c9c10a5e25920c4406a42061cf27839
Author: S.Çağlar Onur <[EMAIL PROTECTED]>
AuthorDate: Sun Feb 17 23:25:57 2008 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Sun Feb 17 23:25:57 2008 -0800

[BLUETOOTH] net/bluetooth/hci_core.c: Use time_* macros

The functions time_before, time_before_eq, time_after, and
time_after_eq are more robust for comparing jiffies against other
values.

So following patch implements usage of the time_after() macro, defined
at linux/jiffies.h, which deals with wrapping correctly

Signed-off-by: S.Çağlar Onur <[EMAIL PROTECTED]>
Acked-by: Marcel Holtmann <[EMAIL PROTECTED]>
Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 net/bluetooth/hci_core.c |5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c
index 372b0d3..930b58e 100644
--- a/net/bluetooth/hci_core.c
+++ b/net/bluetooth/hci_core.c
@@ -24,6 +24,7 @@
 
 /* Bluetooth HCI core. */
 
+#include 
 #include 
 #include 
 
@@ -1321,7 +1322,7 @@ static inline void hci_sched_acl(struct hci_dev *hdev)
if (!test_bit(HCI_RAW, &hdev->flags)) {
/* ACL tx timeout must be longer than maximum
 * link supervision timeout (40.9 seconds) */
-   if (!hdev->acl_cnt && (jiffies - hdev->acl_last_tx) > (HZ * 45))
+   if (!hdev->acl_cnt && time_after(jiffies, hdev->acl_last_tx + 
HZ * 45))
hci_acl_tx_to(hdev);
}
 
@@ -1543,7 +1544,7 @@ static void hci_cmd_task(unsigned long arg)
 
BT_DBG("%s cmd %d", hdev->name, atomic_read(&hdev->cmd_cnt));
 
-   if (!atomic_read(&hdev->cmd_cnt) && (jiffies - hdev->cmd_last_tx) > HZ) 
{
+   if (!atomic_read(&hdev->cmd_cnt) && time_after(jiffies, 
hdev->cmd_last_tx + HZ)) {
BT_ERR("%s command tx timeout", hdev->name);
atomic_set(&hdev->cmd_cnt, 1);
}
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[S390] cio: Do timed recovery on workqueue.

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4c629727cefe45abb2f7459836bfc4b41c5e55ba
Commit: 4c629727cefe45abb2f7459836bfc4b41c5e55ba
Parent: 486d0a0079eb782cdb73f18246e26076c615a020
Author: Cornelia Huck <[EMAIL PROTECTED]>
AuthorDate: Tue Feb 19 15:29:24 2008 +0100
Committer:  Martin Schwidefsky <[EMAIL PROTECTED]>
CommitDate: Tue Feb 19 15:29:32 2008 +0100

[S390] cio: Do timed recovery on workqueue.

We can't do our recovery in softirq context, so we schedule it from
our timer function.

Signed-off-by: Cornelia Huck <[EMAIL PROTECTED]>
Signed-off-by: Martin Schwidefsky <[EMAIL PROTECTED]>
---
 drivers/s390/cio/device.c |   13 -
 1 files changed, 12 insertions(+), 1 deletions(-)

diff --git a/drivers/s390/cio/device.c b/drivers/s390/cio/device.c
index 676b47e..fec004f 100644
--- a/drivers/s390/cio/device.c
+++ b/drivers/s390/cio/device.c
@@ -1535,7 +1535,7 @@ static int recovery_check(struct device *dev, void *data)
return 0;
 }
 
-static void recovery_func(unsigned long data)
+static void recovery_work_func(struct work_struct *unused)
 {
int redo = 0;
 
@@ -1553,6 +1553,17 @@ static void recovery_func(unsigned long data)
CIO_MSG_EVENT(2, "recovery: end\n");
 }
 
+static DECLARE_WORK(recovery_work, recovery_work_func);
+
+static void recovery_func(unsigned long data)
+{
+   /*
+* We can't do our recovery in softirq context and it's not
+* performance critical, so we schedule it.
+*/
+   schedule_work(&recovery_work);
+}
+
 void ccw_device_schedule_recovery(void)
 {
unsigned long flags;
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


b43legacy: add firmware information to modinfo

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=1a1c360d73e5100a4dda1010ce0f1ebd71e03811
Commit: 1a1c360d73e5100a4dda1010ce0f1ebd71e03811
Parent: ceffefd15aac78841432230627308b8a382dbcfc
Author: Stefano Brivio <[EMAIL PROTECTED]>
AuthorDate: Tue Feb 12 03:09:00 2008 +0100
Committer:  John W. Linville <[EMAIL PROTECTED]>
CommitDate: Fri Feb 15 13:44:19 2008 -0500

b43legacy: add firmware information to modinfo

This adds the firmware ID to modinfo.

The patch by Michael Buesch has been ported to b43legacy.

Signed-off-by: Stefano Brivio <[EMAIL PROTECTED]>
Signed-off-by: John W. Linville <[EMAIL PROTECTED]>
---
 drivers/net/wireless/b43legacy/main.c |2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/drivers/net/wireless/b43legacy/main.c 
b/drivers/net/wireless/b43legacy/main.c
index 53f7f2e..25b9b06 100644
--- a/drivers/net/wireless/b43legacy/main.c
+++ b/drivers/net/wireless/b43legacy/main.c
@@ -60,6 +60,8 @@ MODULE_AUTHOR("Stefano Brivio");
 MODULE_AUTHOR("Michael Buesch");
 MODULE_LICENSE("GPL");
 
+MODULE_FIRMWARE(B43legacy_SUPPORTED_FIRMWARE_ID);
+
 #if defined(CONFIG_B43LEGACY_DMA) && defined(CONFIG_B43LEGACY_PIO)
 static int modparam_pio;
 module_param_named(pio, modparam_pio, int, 0444);
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[S390] Initialize per cpu lowcores on cpu hotplug.

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=591bb4f637e48950d35e2ca01e6b962c519d96e5
Commit: 591bb4f637e48950d35e2ca01e6b962c519d96e5
Parent: a22fb7ff1259e6ee87d0ba3559c9f7b7d0cb20d2
Author: Heiko Carstens <[EMAIL PROTECTED]>
AuthorDate: Tue Feb 19 15:29:29 2008 +0100
Committer:  Martin Schwidefsky <[EMAIL PROTECTED]>
CommitDate: Tue Feb 19 15:29:33 2008 +0100

[S390] Initialize per cpu lowcores on cpu hotplug.

Just copy the first 512 read-only bytes of the current cpu lowcore if
a new cpu gets onlined. The rest is zeroed out and must be explicitly
initialized. Current code just copies the entire lowcore and
initializes the needed fields.
This should reveal bugs in future enhancements quite early.
Also when the lowcore of the first cpu is replaced this is now done
atomically (no interrupts, no machine checks).

Signed-off-by: Heiko Carstens <[EMAIL PROTECTED]>
Signed-off-by: Martin Schwidefsky <[EMAIL PROTECTED]>
---
 arch/s390/kernel/smp.c |   53 ++-
 1 files changed, 38 insertions(+), 15 deletions(-)

diff --git a/arch/s390/kernel/smp.c b/arch/s390/kernel/smp.c
index 8506065..818bd09 100644
--- a/arch/s390/kernel/smp.c
+++ b/arch/s390/kernel/smp.c
@@ -626,13 +626,17 @@ static int __cpuinit smp_alloc_lowcore(int cpu)
if (!lowcore)
return -ENOMEM;
async_stack = __get_free_pages(GFP_KERNEL, ASYNC_ORDER);
-   if (!async_stack)
-   goto out_async_stack;
panic_stack = __get_free_page(GFP_KERNEL);
-   if (!panic_stack)
-   goto out_panic_stack;
-
-   *lowcore = S390_lowcore;
+   if (!panic_stack || !async_stack)
+   goto out;
+   /*
+* Only need to copy the first 512 bytes from address 0. But since
+* the compiler emits a warning if src == NULL for memcpy use copy_page
+* instead. Copies more than needed but this code is not performance
+* critical.
+*/
+   copy_page(lowcore, &S390_lowcore);
+   memset((void *)lowcore + 512, 0, sizeof(*lowcore) - 512);
lowcore->async_stack = async_stack + ASYNC_SIZE;
lowcore->panic_stack = panic_stack + PAGE_SIZE;
 
@@ -653,9 +657,8 @@ static int __cpuinit smp_alloc_lowcore(int cpu)
 out_save_area:
free_page(panic_stack);
 #endif
-out_panic_stack:
+out:
free_pages(async_stack, ASYNC_ORDER);
-out_async_stack:
free_pages((unsigned long) lowcore, lc_order);
return -ENOMEM;
 }
@@ -719,8 +722,8 @@ int __cpuinit __cpu_up(unsigned int cpu)
cpu_lowcore->percpu_offset = __per_cpu_offset[cpu];
cpu_lowcore->current_task = (unsigned long) idle;
cpu_lowcore->cpu_data.cpu_nr = cpu;
-   cpu_lowcore->softirq_pending = 0;
-   cpu_lowcore->ext_call_fast = 0;
+   cpu_lowcore->kernel_asce = S390_lowcore.kernel_asce;
+   cpu_lowcore->ipl_device = S390_lowcore.ipl_device;
eieio();
 
while (signal_processor(cpu, sigp_restart) == sigp_busy)
@@ -797,23 +800,43 @@ void cpu_die(void)
 
 void __init smp_prepare_cpus(unsigned int max_cpus)
 {
+#ifndef CONFIG_64BIT
+   unsigned long save_area = 0;
+#endif
+   unsigned long async_stack, panic_stack;
+   struct _lowcore *lowcore;
unsigned int cpu;
+   int lc_order;
 
smp_detect_cpus();
 
/* request the 0x1201 emergency signal external interrupt */
if (register_external_interrupt(0x1201, do_ext_call_interrupt) != 0)
panic("Couldn't request external interrupt 0x1201");
-   memset(lowcore_ptr, 0, sizeof(lowcore_ptr));
print_cpu_info(&S390_lowcore.cpu_data);
-   smp_alloc_lowcore(smp_processor_id());
 
+   /* Reallocate current lowcore, but keep its contents. */
+   lc_order = sizeof(long) == 8 ? 1 : 0;
+   lowcore = (void *) __get_free_pages(GFP_KERNEL | GFP_DMA, lc_order);
+   panic_stack = __get_free_page(GFP_KERNEL);
+   async_stack = __get_free_pages(GFP_KERNEL, ASYNC_ORDER);
 #ifndef CONFIG_64BIT
if (MACHINE_HAS_IEEE)
-   ctl_set_bit(14, 29); /* enable extended save area */
+   save_area = get_zeroed_page(GFP_KERNEL);
 #endif
-   set_prefix((u32)(unsigned long) lowcore_ptr[smp_processor_id()]);
-
+   local_irq_disable();
+   local_mcck_disable();
+   lowcore_ptr[smp_processor_id()] = lowcore;
+   *lowcore = S390_lowcore;
+   lowcore->panic_stack = panic_stack + PAGE_SIZE;
+   lowcore->async_stack = async_stack + ASYNC_SIZE;
+#ifndef CONFIG_64BIT
+   if (MACHINE_HAS_IEEE)
+   lowcore->extended_save_area_addr = (u32) save_area;
+#endif
+   set_prefix((u32)(unsigned long) lowcore);
+   local_mcck_enable();
+   local_irq_enable();
for_each_possible_cpu(cpu)
if (cpu != smp_processor_id())
smp_create_idle(cpu);
-
To unsubscribe from this

[SPARC64]: Use shorter "get_zeroed_page" call.

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b83ebf566b64d3702c6b50dbee2052623cd55ce5
Commit: b83ebf566b64d3702c6b50dbee2052623cd55ce5
Parent: b3dd5b82560eef53a537e409f50261d0b33c75ce
Author: Robert P. J. Day <[EMAIL PROTECTED]>
AuthorDate: Tue Feb 12 22:09:29 2008 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Tue Feb 12 22:09:29 2008 -0800

[SPARC64]: Use shorter "get_zeroed_page" call.

Signed-off-by: Robert P. J. Day <[EMAIL PROTECTED]>
Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 arch/sparc64/kernel/iommu.c |3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)

diff --git a/arch/sparc64/kernel/iommu.c b/arch/sparc64/kernel/iommu.c
index d3276eb..0e347ff 100644
--- a/arch/sparc64/kernel/iommu.c
+++ b/arch/sparc64/kernel/iommu.c
@@ -200,12 +200,11 @@ int iommu_table_init(struct iommu *iommu, int tsbsize,
/* Allocate and initialize the dummy page which we
 * set inactive IO PTEs to point to.
 */
-   iommu->dummy_page = __get_free_pages(GFP_KERNEL, 0);
+   iommu->dummy_page = get_zeroed_page(GFP_KERNEL);
if (!iommu->dummy_page) {
printk(KERN_ERR "IOMMU: Error, gfp(dummy_page) failed.\n");
goto out_free_map;
}
-   memset((void *)iommu->dummy_page, 0, PAGE_SIZE);
iommu->dummy_page_pa = (unsigned long) __pa(iommu->dummy_page);
 
/* Now allocate and setup the IOMMU page table itself.  */
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


fs/block_dev.c: remove #if 0'ed code

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=86b6c7a7f78feca58d2d8615e53aee4d59ab9dc6
Commit: 86b6c7a7f78feca58d2d8615e53aee4d59ab9dc6
Parent: 4c54ac62dceecedd82d4a865017bba0b738e2897
Author: Adrian Bunk <[EMAIL PROTECTED]>
AuthorDate: Mon Feb 18 13:48:32 2008 +0100
Committer:  Jens Axboe <[EMAIL PROTECTED]>
CommitDate: Tue Feb 19 10:04:00 2008 +0100

fs/block_dev.c: remove #if 0'ed code

Commit b2e895dbd80c420bfc0937c3729b4afe073b3848 #if 0'ed this code stating:

<--  snip  -->

[PATCH] revert blockdev direct io back to 2.6.19 version

Andrew Vasquez is reporting as-iosched oopses and a 65% throughput
slowdown due to the recent special-casing of direct-io against
blockdevs.  We don't know why either of these things are occurring.

The patch minimally reverts us back to the 2.6.19 code for a 2.6.20
release.

<--  snip  -->

It has since been dead code, and unless someone wants to revive it now
it's time to remove it.

This patch also makes bio_release_pages() static again and removes the
ki_bio_count member from struct kiocb, reverting changes that had been
done for this dead code.

Signed-off-by: Adrian Bunk <[EMAIL PROTECTED]>
Signed-off-by: Jens Axboe <[EMAIL PROTECTED]>
---
 fs/bio.c|2 +-
 fs/block_dev.c  |  197 ---
 include/linux/aio.h |1 -
 include/linux/bio.h |1 -
 4 files changed, 1 insertions(+), 200 deletions(-)

diff --git a/fs/bio.c b/fs/bio.c
index 242e409..3312fcc 100644
--- a/fs/bio.c
+++ b/fs/bio.c
@@ -903,7 +903,7 @@ void bio_set_pages_dirty(struct bio *bio)
}
 }
 
-void bio_release_pages(struct bio *bio)
+static void bio_release_pages(struct bio *bio)
 {
struct bio_vec *bvec = bio->bi_io_vec;
int i;
diff --git a/fs/block_dev.c b/fs/block_dev.c
index 8335f0e..7d822fa 100644
--- a/fs/block_dev.c
+++ b/fs/block_dev.c
@@ -173,203 +173,6 @@ blkdev_direct_IO(int rw, struct kiocb *iocb, const struct 
iovec *iov,
iov, offset, nr_segs, blkdev_get_blocks, NULL);
 }
 
-#if 0
-static void blk_end_aio(struct bio *bio, int error)
-{
-   struct kiocb *iocb = bio->bi_private;
-   atomic_t *bio_count = &iocb->ki_bio_count;
-
-   if (bio_data_dir(bio) == READ)
-   bio_check_pages_dirty(bio);
-   else {
-   bio_release_pages(bio);
-   bio_put(bio);
-   }
-
-   /* iocb->ki_nbytes stores error code from LLDD */
-   if (error)
-   iocb->ki_nbytes = -EIO;
-
-   if (atomic_dec_and_test(bio_count)) {
-   if ((long)iocb->ki_nbytes < 0)
-   aio_complete(iocb, iocb->ki_nbytes, 0);
-   else
-   aio_complete(iocb, iocb->ki_left, 0);
-   }
-
-   return 0;
-}
-
-#define VEC_SIZE   16
-struct pvec {
-   unsigned short nr;
-   unsigned short idx;
-   struct page *page[VEC_SIZE];
-};
-
-#define PAGES_SPANNED(addr, len)   \
-   (DIV_ROUND_UP((addr) + (len), PAGE_SIZE) - (addr) / PAGE_SIZE);
-
-/*
- * get page pointer for user addr, we internally cache struct page array for
- * (addr, count) range in pvec to avoid frequent call to get_user_pages.  If
- * internal page list is exhausted, a batch count of up to VEC_SIZE is used
- * to get next set of page struct.
- */
-static struct page *blk_get_page(unsigned long addr, size_t count, int rw,
-struct pvec *pvec)
-{
-   int ret, nr_pages;
-   if (pvec->idx == pvec->nr) {
-   nr_pages = PAGES_SPANNED(addr, count);
-   nr_pages = min(nr_pages, VEC_SIZE);
-   down_read(¤t->mm->mmap_sem);
-   ret = get_user_pages(current, current->mm, addr, nr_pages,
-rw == READ, 0, pvec->page, NULL);
-   up_read(¤t->mm->mmap_sem);
-   if (ret < 0)
-   return ERR_PTR(ret);
-   pvec->nr = ret;
-   pvec->idx = 0;
-   }
-   return pvec->page[pvec->idx++];
-}
-
-/* return a page back to pvec array */
-static void blk_unget_page(struct page *page, struct pvec *pvec)
-{
-   pvec->page[--pvec->idx] = page;
-}
-
-static ssize_t
-blkdev_direct_IO(int rw, struct kiocb *iocb, const struct iovec *iov,
-loff_t pos, unsigned long nr_segs)
-{
-   struct inode *inode = iocb->ki_filp->f_mapping->host;
-   unsigned blkbits = blksize_bits(bdev_hardsect_size(I_BDEV(inode)));
-   unsigned blocksize_mask = (1 << blkbits) - 1;
-   unsigned long seg = 0;  /* iov segment iterator */
-   unsigned long nvec; /* number of bio vec needed */
-   unsigned long cur_off;  /* offset into current page */
-   unsigned long cur_len;  /* I/O len of current page, up to PAGE_SIZE */
-
-   unsigned lo

libata: eliminate the home grown dma padding in favour of

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=dde2020754aeb14e17052d61784dcb37f252aac2
Commit: dde2020754aeb14e17052d61784dcb37f252aac2
Parent: db0a2e0099be3a1cff55879225881465f16c67d3
Author: James Bottomley <[EMAIL PROTECTED]>
AuthorDate: Tue Feb 19 11:36:56 2008 +0100
Committer:  Jens Axboe <[EMAIL PROTECTED]>
CommitDate: Tue Feb 19 11:36:56 2008 +0100

libata: eliminate the home grown dma padding in favour of

that provided by the block layer

ATA requires that all DMA transfers begin and end on word boundaries.
Because of this, a large amount of machinery grew up in ide to adjust
scatterlists on this basis.  However, as of 2.5, the block layer has a
dma_alignment variable which ensures both the beginning and length of a
DMA transfer are aligned on the dma_alignment boundary.  Although the
block layer does adjust the beginning of the transfer to ensure this
happens, it doesn't actually adjust the length, it merely makes sure
that space is allocated for transfers beyond the declared length.  The
upshot of this is that scatterlists may be padded to any size between
the actual length and the length adjusted to the dma_alignment safely
knowing that memory is allocated in this region.

Right at the moment, SCSI takes the default dma_aligment which is on a
512 byte boundary.  Note that this aligment only applies to transfers
coming in from user space.  However, since all kernel allocations are
automatically aligned on a minimum of 32 byte boundaries, it is safe to
adjust them in this manner as well.

tj: * Adjusting sg after padding is done in block layer.  Make libata
  set queue alignment correctly for ATAPI devices and drop broken
  sg mangling from ata_sg_setup().
* Use request->raw_data_len for ATAPI transfer chunk size.
* Killed qc->raw_nbytes.
* Separated out killing qc->n_iter.

Signed-off-by: James Bottomley <[EMAIL PROTECTED]>
Signed-off-by: Tejun Heo <[EMAIL PROTECTED]>
Signed-off-by: Jens Axboe <[EMAIL PROTECTED]>
---
 drivers/ata/ahci.c|5 --
 drivers/ata/libata-core.c |  145 +++--
 drivers/ata/libata-scsi.c |   23 ++-
 drivers/ata/pata_icside.c |8 --
 drivers/ata/sata_fsl.c|   13 
 drivers/ata/sata_mv.c |6 +--
 drivers/ata/sata_sil24.c  |5 --
 drivers/scsi/ipr.c|4 +-
 drivers/scsi/libsas/sas_ata.c |4 +-
 include/linux/libata.h|   28 +
 10 files changed, 21 insertions(+), 220 deletions(-)

diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c
index 29e71bd..3c06e45 100644
--- a/drivers/ata/ahci.c
+++ b/drivers/ata/ahci.c
@@ -1975,16 +1975,11 @@ static int ahci_port_start(struct ata_port *ap)
struct ahci_port_priv *pp;
void *mem;
dma_addr_t mem_dma;
-   int rc;
 
pp = devm_kzalloc(dev, sizeof(*pp), GFP_KERNEL);
if (!pp)
return -ENOMEM;
 
-   rc = ata_pad_alloc(ap, dev);
-   if (rc)
-   return rc;
-
mem = dmam_alloc_coherent(dev, AHCI_PORT_PRIV_DMA_SZ, &mem_dma,
  GFP_KERNEL);
if (!mem)
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index a109ccb..3587ac3 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -4493,30 +4493,13 @@ void ata_sg_clean(struct ata_queued_cmd *qc)
struct ata_port *ap = qc->ap;
struct scatterlist *sg = qc->sg;
int dir = qc->dma_dir;
-   void *pad_buf = NULL;
 
WARN_ON(sg == NULL);
 
-   VPRINTK("unmapping %u sg elements\n", qc->mapped_n_elem);
+   VPRINTK("unmapping %u sg elements\n", qc->n_elem);
 
-   /* if we padded the buffer out to 32-bit bound, and data
-* xfer direction is from-device, we must copy from the
-* pad buffer back into the supplied buffer
-*/
-   if (qc->pad_len && !(qc->tf.flags & ATA_TFLAG_WRITE))
-   pad_buf = ap->pad + (qc->tag * ATA_DMA_PAD_SZ);
-
-   if (qc->mapped_n_elem)
-   dma_unmap_sg(ap->dev, sg, qc->mapped_n_elem, dir);
-   /* restore last sg */
-   if (qc->last_sg)
-   *qc->last_sg = qc->saved_last_sg;
-   if (pad_buf) {
-   struct scatterlist *psg = &qc->extra_sg[1];
-   void *addr = kmap_atomic(sg_page(psg), KM_IRQ0);
-   memcpy(addr + psg->offset, pad_buf, qc->pad_len);
-   kunmap_atomic(addr, KM_IRQ0);
-   }
+   if (qc->n_elem)
+   dma_unmap_sg(ap->dev, sg, qc->n_elem, dir);
 
qc->flags &= ~ATA_QCFLAG_DMAMAP;
qc->sg = NULL;
@@ -4767,97 +4750,6 @@ void ata_sg_init(struct ata_queued_cmd *qc, struct 
scatterlist *sg,
qc->cursg = qc->sg;
 }
 
-static unsigned int ata_sg_setup_extra(struct ata_queued_cmd *qc,
-

[S390] cio: Remember to initialize recovery_lock.

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=486d0a0079eb782cdb73f18246e26076c615a020
Commit: 486d0a0079eb782cdb73f18246e26076c615a020
Parent: 9a4c8546f3e7c893888bccc2b3416d6214f2664a
Author: Cornelia Huck <[EMAIL PROTECTED]>
AuthorDate: Tue Feb 19 15:29:23 2008 +0100
Committer:  Martin Schwidefsky <[EMAIL PROTECTED]>
CommitDate: Tue Feb 19 15:29:32 2008 +0100

[S390] cio: Remember to initialize recovery_lock.

Signed-off-by: Cornelia Huck <[EMAIL PROTECTED]>
Signed-off-by: Martin Schwidefsky <[EMAIL PROTECTED]>
---
 drivers/s390/cio/device.c |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/s390/cio/device.c b/drivers/s390/cio/device.c
index d35dc3f..676b47e 100644
--- a/drivers/s390/cio/device.c
+++ b/drivers/s390/cio/device.c
@@ -32,7 +32,7 @@
 #include "io_sch.h"
 
 static struct timer_list recovery_timer;
-static spinlock_t recovery_lock;
+static DEFINE_SPINLOCK(recovery_lock);
 static int recovery_phase;
 static const unsigned long recovery_delay[] = { 3, 30, 300 };
 
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[NIU]: Fix BMAC alternate MAC address indexing.

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3b5bcedeeb755b6e813537fcf4c32f010b490aef
Commit: 3b5bcedeeb755b6e813537fcf4c32f010b490aef
Parent: 31729363418ea25b01aa9410838c38e36792e44c
Author: Matheos Worku <[EMAIL PROTECTED]>
AuthorDate: Mon Feb 18 21:30:03 2008 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Mon Feb 18 21:30:03 2008 -0800

[NIU]: Fix BMAC alternate MAC address indexing.

BMAC port alternate MAC address index needs to start at 1. Index 0 is
used for the main MAC address.

Signed-off-by: Matheos Worku <[EMAIL PROTECTED]>
Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 drivers/net/niu.c |7 ++-
 1 files changed, 6 insertions(+), 1 deletions(-)

diff --git a/drivers/net/niu.c b/drivers/net/niu.c
index 2fe14b0..1f1b815 100644
--- a/drivers/net/niu.c
+++ b/drivers/net/niu.c
@@ -5147,7 +5147,12 @@ static void niu_set_rx_mode(struct net_device *dev)
index++;
}
} else {
-   for (i = 0; i < niu_num_alt_addr(np); i++) {
+   int alt_start;
+   if (np->flags & NIU_FLAGS_XMAC)
+   alt_start = 0;
+   else
+   alt_start = 1;
+   for (i = alt_start; i < niu_num_alt_addr(np); i++) {
err = niu_enable_alt_mac(np, i, 0);
if (err)
printk(KERN_WARNING PFX "%s: Error %d "
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


block: add request->raw_data_len

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6b00769fe1502b4ad97bb327ef7ac971b208bfb5
Commit: 6b00769fe1502b4ad97bb327ef7ac971b208bfb5
Parent: 40b01b9bbdf51ae543a04744283bf2d56c4a6afa
Author: Tejun Heo <[EMAIL PROTECTED]>
AuthorDate: Tue Feb 19 11:36:35 2008 +0100
Committer:  Jens Axboe <[EMAIL PROTECTED]>
CommitDate: Tue Feb 19 11:36:35 2008 +0100

block: add request->raw_data_len

With padding and draining moved into it, block layer now may extend
requests as directed by queue parameters, so now a request has two
sizes - the original request size and the extended size which matches
the size of area pointed to by bios and later by sgs.  The latter size
is what lower layers are primarily interested in when allocating,
filling up DMA tables and setting up the controller.

Both padding and draining extend the data area to accomodate
controller characteristics.  As any controller which speaks SCSI can
handle underflows, feeding larger data area is safe.

So, this patch makes the primary data length field, request->data_len,
indicate the size of full data area and add a separate length field,
request->raw_data_len, for the unmodified request size.  The latter is
used to report to higher layer (userland) and where the original
request size should be fed to the controller or device.

Signed-off-by: Tejun Heo <[EMAIL PROTECTED]>
Cc: James Bottomley <[EMAIL PROTECTED]>
Signed-off-by: Jens Axboe <[EMAIL PROTECTED]>
---
 block/blk-core.c|2 ++
 block/blk-map.c |2 ++
 block/blk-merge.c   |1 +
 block/bsg.c |8 
 block/scsi_ioctl.c  |3 ++-
 drivers/scsi/scsi_lib.c |8 
 include/linux/blkdev.h  |1 +
 7 files changed, 16 insertions(+), 9 deletions(-)

diff --git a/block/blk-core.c b/block/blk-core.c
index c013ca2..775c851 100644
--- a/block/blk-core.c
+++ b/block/blk-core.c
@@ -127,6 +127,7 @@ void rq_init(struct request_queue *q, struct request *rq)
rq->nr_hw_segments = 0;
rq->ioprio = 0;
rq->special = NULL;
+   rq->raw_data_len = 0;
rq->buffer = NULL;
rq->tag = -1;
rq->errors = 0;
@@ -2015,6 +2016,7 @@ void blk_rq_bio_prep(struct request_queue *q, struct 
request *rq,
rq->hard_cur_sectors = rq->current_nr_sectors;
rq->hard_nr_sectors = rq->nr_sectors = bio_sectors(bio);
rq->buffer = bio_data(bio);
+   rq->raw_data_len = bio->bi_size;
rq->data_len = bio->bi_size;
 
rq->bio = rq->biotail = bio;
diff --git a/block/blk-map.c b/block/blk-map.c
index a7cf63c..09f7fd0 100644
--- a/block/blk-map.c
+++ b/block/blk-map.c
@@ -19,6 +19,7 @@ int blk_rq_append_bio(struct request_queue *q, struct request 
*rq,
rq->biotail->bi_next = bio;
rq->biotail = bio;
 
+   rq->raw_data_len += bio->bi_size;
rq->data_len += bio->bi_size;
}
return 0;
@@ -154,6 +155,7 @@ int blk_rq_map_user(struct request_queue *q, struct request 
*rq,
 
bio->bi_io_vec[bio->bi_vcnt - 1].bv_len += pad_len;
bio->bi_size += pad_len;
+   rq->data_len += pad_len;
}
 
rq->buffer = rq->data = NULL;
diff --git a/block/blk-merge.c b/block/blk-merge.c
index d3b84bb..39f2e07 100644
--- a/block/blk-merge.c
+++ b/block/blk-merge.c
@@ -228,6 +228,7 @@ new_segment:
((unsigned long)q->dma_drain_buffer) &
(PAGE_SIZE - 1));
nsegs++;
+   rq->data_len += q->dma_drain_size;
}
 
if (sg)
diff --git a/block/bsg.c b/block/bsg.c
index 8917c51..7f3c095 100644
--- a/block/bsg.c
+++ b/block/bsg.c
@@ -437,14 +437,14 @@ static int blk_complete_sgv4_hdr_rq(struct request *rq, 
struct sg_io_v4 *hdr,
}
 
if (rq->next_rq) {
-   hdr->dout_resid = rq->data_len;
-   hdr->din_resid = rq->next_rq->data_len;
+   hdr->dout_resid = rq->raw_data_len;
+   hdr->din_resid = rq->next_rq->raw_data_len;
blk_rq_unmap_user(bidi_bio);
blk_put_request(rq->next_rq);
} else if (rq_data_dir(rq) == READ)
-   hdr->din_resid = rq->data_len;
+   hdr->din_resid = rq->raw_data_len;
else
-   hdr->dout_resid = rq->data_len;
+   hdr->dout_resid = rq->raw_data_len;
 
/*
 * If the request generated a negative error number, return it
diff --git a/block/scsi_ioctl.c b/block/scsi_ioctl.c
index 9675b34..e993cac 100644
--- a/block/scsi_ioctl.c
+++ b/block/scsi_ioctl.c
@@ -266,7 +266,7 @@ static int blk_complete_sghdr_rq(struct request *rq, struct 
sg_io_hdr *hdr,
hdr->info = 0;
if (hdr->masked_status || hdr->host_status || hdr->driver_status)
hdr->info |= SG_INFO_CHECK;
-   hdr->res

[S390] Fix futex_atomic_cmpxchg_std inline assembly.

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d5b02b3ff1d9a2e1074f559c84ed378cfa6fc3c0
Commit: d5b02b3ff1d9a2e1074f559c84ed378cfa6fc3c0
Parent: 39f73b2886be3a255d8f4cd669c8c7e7957afbd9
Author: Heiko Carstens <[EMAIL PROTECTED]>
AuthorDate: Tue Feb 19 15:29:34 2008 +0100
Committer:  Martin Schwidefsky <[EMAIL PROTECTED]>
CommitDate: Tue Feb 19 15:29:35 2008 +0100

[S390] Fix futex_atomic_cmpxchg_std inline assembly.

Add missing exception table entry so that the kernel can handle
proctection exceptions as well on the cs instruction. Currently only
specification exceptions are handled correctly.
The missing entry allows user space to crash the kernel.

Cc: stable <[EMAIL PROTECTED]>
Signed-off-by: Heiko Carstens <[EMAIL PROTECTED]>
Signed-off-by: Martin Schwidefsky <[EMAIL PROTECTED]>
---
 arch/s390/lib/uaccess_std.c |8 
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/s390/lib/uaccess_std.c b/arch/s390/lib/uaccess_std.c
index 28c4500..d2ffbad 100644
--- a/arch/s390/lib/uaccess_std.c
+++ b/arch/s390/lib/uaccess_std.c
@@ -293,10 +293,10 @@ int futex_atomic_cmpxchg_std(int __user *uaddr, int 
oldval, int newval)
 
asm volatile(
"   sacf 256\n"
-   "   cs   %1,%4,0(%5)\n"
-   "0: lr   %0,%1\n"
-   "1: sacf 0\n"
-   EX_TABLE(0b,1b)
+   "0: cs   %1,%4,0(%5)\n"
+   "1: lr   %0,%1\n"
+   "2: sacf 0\n"
+   EX_TABLE(0b,2b) EX_TABLE(1b,2b)
: "=d" (ret), "+d" (oldval), "=m" (*uaddr)
: "0" (-EFAULT), "d" (newval), "a" (uaddr), "m" (*uaddr)
: "cc", "memory" );
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


igb: PCIe devices do not need to unset MANC_ARP_ENA

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=aa20c6c6d22efcca76c6225eb46f5903ce14c7c8
Commit: aa20c6c6d22efcca76c6225eb46f5903ce14c7c8
Parent: 41825d7158d4ca6488d562d73279392a886b9e7c
Author: David Graham <[EMAIL PROTECTED]>
AuthorDate: Thu Feb 14 10:17:12 2008 -0800
Committer:  Jeff Garzik <[EMAIL PROTECTED]>
CommitDate: Fri Feb 15 10:52:11 2008 -0500

igb: PCIe devices do not need to unset MANC_ARP_ENA

Users reported that ARP's were lost with igb. The problem
is fixed by not enabling this manageability configuration
bit.

None of the release_manageability code is actually needed as the
normal device reset during a shutdown returns everthing to
the right condition automatically.

Signed-off-by: David Graham <[EMAIL PROTECTED]>
Signed-off-by: Auke Kok <[EMAIL PROTECTED]>
Signed-off-by: Jeff Garzik <[EMAIL PROTECTED]>
---
 drivers/net/igb/igb_main.c |   28 
 1 files changed, 0 insertions(+), 28 deletions(-)

diff --git a/drivers/net/igb/igb_main.c b/drivers/net/igb/igb_main.c
index d4eb8e2..bff280e 100644
--- a/drivers/net/igb/igb_main.c
+++ b/drivers/net/igb/igb_main.c
@@ -606,9 +606,6 @@ static void igb_init_manageability(struct igb_adapter 
*adapter)
u32 manc2h = rd32(E1000_MANC2H);
u32 manc = rd32(E1000_MANC);
 
-   /* disable hardware interception of ARP */
-   manc &= ~(E1000_MANC_ARP_EN);
-
/* enable receiving management packets to the host */
/* this will probably generate destination unreachable messages
 * from the host OS, but the packets will be handled on SMBUS */
@@ -623,25 +620,6 @@ static void igb_init_manageability(struct igb_adapter 
*adapter)
}
 }
 
-static void igb_release_manageability(struct igb_adapter *adapter)
-{
-   struct e1000_hw *hw = &adapter->hw;
-
-   if (adapter->en_mng_pt) {
-   u32 manc = rd32(E1000_MANC);
-
-   /* re-enable hardware interception of ARP */
-   manc |= E1000_MANC_ARP_EN;
-   manc &= ~E1000_MANC_EN_MNG2HOST;
-
-   /* don't explicitly have to mess with MANC2H since
-* MANC has an enable disable that gates MANC2H */
-
-   /* XXX stop the hardware watchdog ? */
-   wr32(E1000_MANC, manc);
-   }
-}
-
 /**
  * igb_configure - configure the hardware for RX and TX
  * @adapter: private board structure
@@ -844,7 +822,6 @@ void igb_reset(struct igb_adapter *adapter)
 
igb_reset_adaptive(&adapter->hw);
adapter->hw.phy.ops.get_phy_info(&adapter->hw);
-   igb_release_manageability(adapter);
 }
 
 /**
@@ -1178,9 +1155,6 @@ static void __devexit igb_remove(struct pci_dev *pdev)
 
flush_scheduled_work();
 
-
-   igb_release_manageability(adapter);
-
/* Release control of h/w to f/w.  If f/w is AMT enabled, this
 * would have already happened in close and is redundant. */
igb_release_hw_control(adapter);
@@ -3955,8 +3929,6 @@ static int igb_suspend(struct pci_dev *pdev, pm_message_t 
state)
pci_enable_wake(pdev, PCI_D3cold, 0);
}
 
-   igb_release_manageability(adapter);
-
/* make sure adapter isn't asleep if manageability is enabled */
if (adapter->en_mng_pt) {
pci_enable_wake(pdev, PCI_D3hot, 1);
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


b43legacy: Add driver load messages

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6fff1c64ffd899e0b70fbb0201c6603f078ea942
Commit: 6fff1c64ffd899e0b70fbb0201c6603f078ea942
Parent: 943dbef4b84b9cee3501e45b654e38335900570b
Author: Stefano Brivio <[EMAIL PROTECTED]>
AuthorDate: Sat Feb 9 07:20:43 2008 +0100
Committer:  John W. Linville <[EMAIL PROTECTED]>
CommitDate: Fri Feb 15 13:44:19 2008 -0500

b43legacy: Add driver load messages

This adds printk messages with basic information about the driver being 
loaded.
This information includes a summary of the compiled-in features, which
simplifies bug-reporting and debugging a lot.
Also a firmware ID is printed. This is a unique identifier blob for a 
specific
version of the firmware. This ID is attached to a specific version of the 
firmware
blob in b43-fwcutter (see fwcutter git).
This helps users to select the right firmware for their device.
This also makes it possible to use automated scripts to fetch and extract 
the right
firmware for the driver. (The script will grep the .ko for the 
"Firmware-ID: xxx" string.)
While the driver might still support other versions of the firmware for 
backward
compatibility, this will always print out the officially supported version, 
which
people _should_ use.

Signed-off-by: Stefano Brivio <[EMAIL PROTECTED]>
Signed-off-by: John W. Linville <[EMAIL PROTECTED]>
---
 drivers/net/wireless/b43legacy/b43legacy.h |4 +++
 drivers/net/wireless/b43legacy/main.c  |   30 +++-
 2 files changed, 33 insertions(+), 1 deletions(-)

diff --git a/drivers/net/wireless/b43legacy/b43legacy.h 
b/drivers/net/wireless/b43legacy/b43legacy.h
index c80edd2..93d45b7 100644
--- a/drivers/net/wireless/b43legacy/b43legacy.h
+++ b/drivers/net/wireless/b43legacy/b43legacy.h
@@ -23,6 +23,10 @@
 #include "phy.h"
 
 
+/* The unique identifier of the firmware that's officially supported by this
+ * driver version. */
+#define B43legacy_SUPPORTED_FIRMWARE_ID"FW10"
+
 #define B43legacy_IRQWAIT_MAX_RETRIES  20
 
 #define B43legacy_RX_MAX_SSI   60 /* best guess at max ssi */
diff --git a/drivers/net/wireless/b43legacy/main.c 
b/drivers/net/wireless/b43legacy/main.c
index 794c2fa..c39de42 100644
--- a/drivers/net/wireless/b43legacy/main.c
+++ b/drivers/net/wireless/b43legacy/main.c
@@ -3,7 +3,7 @@
  *  Broadcom B43legacy wireless driver
  *
  *  Copyright (c) 2005 Martin Langer <[EMAIL PROTECTED]>
- *  Copyright (c) 2005-2007 Stefano Brivio <[EMAIL PROTECTED]>
+ *  Copyright (c) 2005-2008 Stefano Brivio <[EMAIL PROTECTED]>
  *  Copyright (c) 2005, 2006 Michael Buesch <[EMAIL PROTECTED]>
  *  Copyright (c) 2005 Danny van Dyk <[EMAIL PROTECTED]>
  *  Copyright (c) 2005 Andreas Jaggi <[EMAIL PROTECTED]>
@@ -3809,6 +3809,32 @@ static struct ssb_driver b43legacy_ssb_driver = {
.resume = b43legacy_resume,
 };
 
+static void b43legacy_print_driverinfo(void)
+{
+   const char *feat_pci = "", *feat_leds = "", *feat_rfkill = "",
+  *feat_pio = "", *feat_dma = "";
+
+#ifdef CONFIG_B43LEGACY_PCI_AUTOSELECT
+   feat_pci = "P";
+#endif
+#ifdef CONFIG_B43LEGACY_LEDS
+   feat_leds = "L";
+#endif
+#ifdef CONFIG_B43LEGACY_RFKILL
+   feat_rfkill = "R";
+#endif
+#ifdef CONFIG_B43LEGACY_PIO
+   feat_pio = "I";
+#endif
+#ifdef CONFIG_B43LEGACY_DMA
+   feat_dma = "D";
+#endif
+   printk(KERN_INFO "Broadcom 43xx driver loaded "
+  "[ Features: %s%s%s%s%s, Firmware-ID: "
+  B43legacy_SUPPORTED_FIRMWARE_ID " ]\n",
+  feat_pci, feat_leds, feat_rfkill, feat_pio, feat_dma);
+}
+
 static int __init b43legacy_init(void)
 {
int err;
@@ -3819,6 +3845,8 @@ static int __init b43legacy_init(void)
if (err)
goto err_dfs_exit;
 
+   b43legacy_print_driverinfo();
+
return err;
 
 err_dfs_exit:
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


ixgbe: remove accidentally added #ifdef

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4a75834644ae32ded9bed14db39834d6d3bc4793
Commit: 4a75834644ae32ded9bed14db39834d6d3bc4793
Parent: 4bebfaa56b72c94fe4997240ee73ad1c1fcf96c9
Author: Auke Kok <[EMAIL PROTECTED]>
AuthorDate: Mon Feb 11 09:26:06 2008 -0800
Committer:  Jeff Garzik <[EMAIL PROTECTED]>
CommitDate: Mon Feb 11 14:51:40 2008 -0500

ixgbe: remove accidentally added #ifdef

Let's not add these #ifdef NETIF_F_TSO's back.

Signed-off-by: Auke Kok <[EMAIL PROTECTED]>
Signed-off-by: Jeff Garzik <[EMAIL PROTECTED]>
---
 drivers/net/ixgbe/ixgbe_main.c |5 -
 1 files changed, 0 insertions(+), 5 deletions(-)

diff --git a/drivers/net/ixgbe/ixgbe_main.c b/drivers/net/ixgbe/ixgbe_main.c
index a4aeaec..540b647 100644
--- a/drivers/net/ixgbe/ixgbe_main.c
+++ b/drivers/net/ixgbe/ixgbe_main.c
@@ -220,7 +220,6 @@ static bool ixgbe_clean_tx_irq(struct ixgbe_adapter 
*adapter,
tx_ring->stats.bytes += tx_buffer_info->length;
if (cleaned) {
struct sk_buff *skb = tx_buffer_info->skb;
-#ifdef NETIF_F_TSO
unsigned int segs, bytecount;
segs = skb_shinfo(skb)->gso_segs ?: 1;
/* multiply data chunks by size of headers */
@@ -228,10 +227,6 @@ static bool ixgbe_clean_tx_irq(struct ixgbe_adapter 
*adapter,
skb->len;
total_tx_packets += segs;
total_tx_bytes += bytecount;
-#else
-   total_tx_packets++;
-   total_tx_bytes += skb->len;
-#endif
}
ixgbe_unmap_and_free_tx_resource(adapter,
 tx_buffer_info);
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


libata: update ATAPI overflow draining

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=56c819df77f96c3fc0c2a979e12b478403728790
Commit: 56c819df77f96c3fc0c2a979e12b478403728790
Parent: e164094964e6e20fe7fce418e06a9dce952bb7a4
Author: Tejun Heo <[EMAIL PROTECTED]>
AuthorDate: Tue Feb 19 11:35:37 2008 +0100
Committer:  Jens Axboe <[EMAIL PROTECTED]>
CommitDate: Tue Feb 19 11:35:37 2008 +0100

libata: update ATAPI overflow draining

For misc ATAPI commands which transfer variable length data to the
host, overflow can occur due to application or hardware bug.  Such
overflows can be ignored safely as long as overflow data is properly
drained.  libata HSM implementation has this implemented in
__atapi_pio_bytes() and recently updated for 2.6.24-rc but it requires
further improvements.  Improve drain logic such that...

* Report overflow errors using ehi desc mechanism instead of printing
  directly.

* Properly calculate the number of bytes to be drained considering
  actual number of consumed bytes for partial draining.

Signed-off-by: Tejun Heo <[EMAIL PROTECTED]>
Acked-by: Albert Lee <[EMAIL PROTECTED]>
Signed-off-by: Jens Axboe <[EMAIL PROTECTED]>
---
 drivers/ata/libata-core.c |   76 +++-
 1 files changed, 33 insertions(+), 43 deletions(-)

diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index f46eb6f..a109ccb 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -4675,24 +4675,9 @@ int ata_check_atapi_dma(struct ata_queued_cmd *qc)
  */
 static int atapi_qc_may_overflow(struct ata_queued_cmd *qc)
 {
-   if (qc->tf.protocol != ATAPI_PROT_PIO &&
-   qc->tf.protocol != ATAPI_PROT_DMA)
-   return 0;
-
-   if (qc->tf.flags & ATA_TFLAG_WRITE)
-   return 0;
-
-   switch (qc->cdb[0]) {
-   case READ_10:
-   case READ_12:
-   case WRITE_10:
-   case WRITE_12:
-   case GPCMD_READ_CD:
-   case GPCMD_READ_CD_MSF:
-   return 0;
-   }
-
-   return 1;
+   return ata_is_atapi(qc->tf.protocol) && ata_is_data(qc->tf.protocol) &&
+   atapi_cmd_type(qc->cdb[0]) == ATAPI_MISC &&
+   !(qc->tf.flags & ATA_TFLAG_WRITE);
 }
 
 /**
@@ -5146,13 +5131,14 @@ static void atapi_send_cdb(struct ata_port *ap, struct 
ata_queued_cmd *qc)
  */
 static int __atapi_pio_bytes(struct ata_queued_cmd *qc, unsigned int bytes)
 {
-   int do_write = (qc->tf.flags & ATA_TFLAG_WRITE);
+   int rw = (qc->tf.flags & ATA_TFLAG_WRITE) ? WRITE : READ;
struct ata_port *ap = qc->ap;
-   struct ata_eh_info *ehi = &qc->dev->link->eh_info;
+   struct ata_device *dev = qc->dev;
+   struct ata_eh_info *ehi = &dev->link->eh_info;
struct scatterlist *sg;
struct page *page;
unsigned char *buf;
-   unsigned int offset, count;
+   unsigned int offset, count, consumed;
 
 next_sg:
sg = qc->cursg;
@@ -5165,26 +5151,27 @@ next_sg:
 *- for write case, padding zero data to the device
 */
u16 pad_buf[1] = { 0 };
-   unsigned int i;
 
-   if (bytes > qc->curbytes - qc->nbytes + ATAPI_MAX_DRAIN) {
+   if (qc->curbytes + bytes > qc->nbytes + ATAPI_MAX_DRAIN) {
ata_ehi_push_desc(ehi, "too much trailing data "
  "buf=%u cur=%u bytes=%u",
  qc->nbytes, qc->curbytes, bytes);
return -1;
}
 
-/* overflow is exptected for misc ATAPI commands */
-   if (bytes && !atapi_qc_may_overflow(qc))
-   ata_dev_printk(qc->dev, KERN_WARNING, "ATAPI %u bytes "
-  "trailing data (cdb=%02x nbytes=%u)\n",
-  bytes, qc->cdb[0], qc->nbytes);
+   /* allow overflow only for misc ATAPI commands */
+   if (!atapi_qc_may_overflow(qc)) {
+   ata_ehi_push_desc(ehi, "unexpected trailing data "
+ "%u bytes", bytes);
+   return -1;
+   }
 
-   for (i = 0; i < (bytes + 1) / 2; i++)
-   ap->ops->data_xfer(qc->dev, (unsigned char *)pad_buf, 
2, do_write);
+   consumed = 0;
+   while (consumed < bytes)
+   consumed += ap->ops->data_xfer(dev,
+   (unsigned char *)pad_buf, 2, rw);
 
qc->curbytes += bytes;
-
return 0;
}
 
@@ -5211,18 +5198,16 @@ next_sg:
buf = kmap_atomic(page, KM_IRQ0);
 
/* do the actual data transfer */
-   ap->ops->data_xfer(qc->dev,  buf + offset, count, do_write);
+   consumed = ap->ops-

[S390] find bit corner case.

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a22fb7ff1259e6ee87d0ba3559c9f7b7d0cb20d2
Commit: a22fb7ff1259e6ee87d0ba3559c9f7b7d0cb20d2
Parent: 03513bccad33667ed738cfd96dc5757e539e0bdb
Author: Martin Schwidefsky <[EMAIL PROTECTED]>
AuthorDate: Tue Feb 19 15:29:28 2008 +0100
Committer:  Martin Schwidefsky <[EMAIL PROTECTED]>
CommitDate: Tue Feb 19 15:29:33 2008 +0100

[S390] find bit corner case.

Fix [ext2_]find_first_[zero_]bit for the corner case of an all clear
or all set bit field by always handling that last word of the bit field
with __ffz_word/__ffs_word.

Signed-off-by: Martin Schwidefsky <[EMAIL PROTECTED]>
---
 include/asm-s390/bitops.h |   20 
 1 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/include/asm-s390/bitops.h b/include/asm-s390/bitops.h
index ab83c84..965394e 100644
--- a/include/asm-s390/bitops.h
+++ b/include/asm-s390/bitops.h
@@ -456,16 +456,18 @@ static inline unsigned long __ffz_word_loop(const 
unsigned long *addr,
 
asm volatile(
 #ifndef __s390x__
-   "   ahi %1,31\n"
-   "   srl %1,5\n"
+   "   ahi %1,-1\n"
+   "   sra %1,5\n"
+   "   jz  1f\n"
"0: c   %2,0(%0,%3)\n"
"   jne 1f\n"
"   la  %0,4(%0)\n"
"   brct%1,0b\n"
"1:\n"
 #else
-   "   aghi%1,63\n"
-   "   srlg%1,%1,6\n"
+   "   aghi%1,-1\n"
+   "   srag%1,%1,6\n"
+   "   jz  1f\n"
"0: cg  %2,0(%0,%3)\n"
"   jne 1f\n"
"   la  %0,8(%0)\n"
@@ -491,16 +493,18 @@ static inline unsigned long __ffs_word_loop(const 
unsigned long *addr,
 
asm volatile(
 #ifndef __s390x__
-   "   ahi %1,31\n"
-   "   srl %1,5\n"
+   "   ahi %1,-1\n"
+   "   sra %1,5\n"
+   "   jz  1f\n"
"0: c   %2,0(%0,%3)\n"
"   jne 1f\n"
"   la  %0,4(%0)\n"
"   brct%1,0b\n"
"1:\n"
 #else
-   "   aghi%1,63\n"
-   "   srlg%1,%1,6\n"
+   "   aghi%1,-1\n"
+   "   srag%1,%1,6\n"
+   "   jz  1f\n"
"0: cg  %2,0(%0,%3)\n"
"   jne 1f\n"
"   la  %0,8(%0)\n"
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


wavelan: mark hardware interfacing structures as packed

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=bd196ec7f03fff6935f66a9a3cf27accd34a75b9
Commit: bd196ec7f03fff6935f66a9a3cf27accd34a75b9
Parent: 19af35546de68c872dcb687613e0902a602cb20e
Author: John W. Linville <[EMAIL PROTECTED]>
AuthorDate: Thu Feb 7 15:46:01 2008 -0500
Committer:  John W. Linville <[EMAIL PROTECTED]>
CommitDate: Fri Feb 15 13:44:17 2008 -0500

wavelan: mark hardware interfacing structures as packed

With assists from Russell King <[EMAIL PROTECTED]> and
Andrew Morton <[EMAIL PROTECTED]>...

Signed-off-by: John W. Linville <[EMAIL PROTECTED]>
---
 drivers/net/wireless/wavelan.h |6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/net/wireless/wavelan.h b/drivers/net/wireless/wavelan.h
index 27172cd..9ab3605 100644
--- a/drivers/net/wireless/wavelan.h
+++ b/drivers/net/wireless/wavelan.h
@@ -85,7 +85,7 @@ union hacs_u
 #defineHASR_MMC_INTR   0x0002  /* Interrupt request 
from MMC */
 #defineHASR_MMC_BUSY   0x0004  /* MMC busy indication 
*/
 #defineHASR_PSA_BUSY   0x0008  /* LAN parameter 
storage area busy */
-};
+} __attribute__ ((packed));
 
 typedef struct ha_tha_t;
 struct ha_t
@@ -292,7 +292,7 @@ struct mmw_t
 #defineMMW_EXT_ANT_INTERNAL0x00/* Internal antenna */
 #defineMMW_EXT_ANT_EXTERNAL0x03/* External antenna */
 #defineMMW_EXT_ANT_IQ_TEST 0x1C/* IQ test pattern (set to 0) */
-};
+} __attribute__ ((packed));
 
 #defineMMW_SIZE37
 
@@ -347,7 +347,7 @@ struct mmr_t
   unsigned charmmr_unused4[1]; /* unused */
   unsigned charmmr_fee_data_l; /* Read data from EEPROM (low) 
*/
   unsigned charmmr_fee_data_h; /* Read data from EEPROM (high) 
*/
-};
+} __attribute__ ((packed));
 
 #defineMMR_SIZE36
 
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[S390] qdio: FCP/SCSI write I/O stagnates on LPAR

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e5fa443ea05f71b5253818890c6d32174cbab36f
Commit: e5fa443ea05f71b5253818890c6d32174cbab36f
Parent: d5b02b3ff1d9a2e1074f559c84ed378cfa6fc3c0
Author: Ursula Braun <[EMAIL PROTECTED]>
AuthorDate: Tue Feb 19 15:29:35 2008 +0100
Committer:  Martin Schwidefsky <[EMAIL PROTECTED]>
CommitDate: Tue Feb 19 15:29:35 2008 +0100

[S390] qdio: FCP/SCSI write I/O stagnates on LPAR

If running on LPAR, qdio might overlook an incoming buffer in certain
scenarios. The patch makes sure that incoming buffers are detected
immediately in all situations.

Signed-off-by: Ursula Braun <[EMAIL PROTECTED]>
Signed-off-by: Martin Schwidefsky <[EMAIL PROTECTED]>
---
 drivers/s390/cio/qdio.c |3 ---
 1 files changed, 0 insertions(+), 3 deletions(-)

diff --git a/drivers/s390/cio/qdio.c b/drivers/s390/cio/qdio.c
index cd9cfc1..2b5bfb7 100644
--- a/drivers/s390/cio/qdio.c
+++ b/drivers/s390/cio/qdio.c
@@ -1215,9 +1215,6 @@ tiqdio_is_inbound_q_done(struct qdio_q *q)
 
if (!no_used)
return 1;
-   if (!q->siga_sync && !irq->is_qebsm)
-   /* we'll check for more primed buffers in qeth_stop_polling */
-   return 0;
if (irq->is_qebsm) {
count = 1;
start_buf = q->first_to_check;
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[NETLABEL]: Shrink the genl-ops registration code.

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=227c43c3bca76df704231324405980851dc7f528
Commit: 227c43c3bca76df704231324405980851dc7f528
Parent: f47b7257c7368698eabff6fd7b340071932af640
Author: Pavel Emelyanov <[EMAIL PROTECTED]>
AuthorDate: Sun Feb 17 22:33:16 2008 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Sun Feb 17 22:33:16 2008 -0800

[NETLABEL]: Shrink the genl-ops registration code.

Turning them to array and registration in a loop saves
80 lines of code and ~300 bytes from text section.

Signed-off-by: Pavel Emelyanov <[EMAIL PROTECTED]>
Acked-by: Paul Moore <[EMAIL PROTECTED]>
Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 net/netlabel/netlabel_cipso_v4.c  |   43 +++
 net/netlabel/netlabel_mgmt.c  |   79 ++---
 net/netlabel/netlabel_unlabeled.c |   86 ++--
 3 files changed, 64 insertions(+), 144 deletions(-)

diff --git a/net/netlabel/netlabel_cipso_v4.c b/net/netlabel/netlabel_cipso_v4.c
index c7ad64d..283ff4a 100644
--- a/net/netlabel/netlabel_cipso_v4.c
+++ b/net/netlabel/netlabel_cipso_v4.c
@@ -718,36 +718,35 @@ static int netlbl_cipsov4_remove(struct sk_buff *skb, 
struct genl_info *info)
  * NetLabel Generic NETLINK Command Definitions
  */
 
-static struct genl_ops netlbl_cipsov4_genl_c_add = {
+static struct genl_ops netlbl_cipsov4_ops[] = {
+   {
.cmd = NLBL_CIPSOV4_C_ADD,
.flags = GENL_ADMIN_PERM,
.policy = netlbl_cipsov4_genl_policy,
.doit = netlbl_cipsov4_add,
.dumpit = NULL,
-};
-
-static struct genl_ops netlbl_cipsov4_genl_c_remove = {
+   },
+   {
.cmd = NLBL_CIPSOV4_C_REMOVE,
.flags = GENL_ADMIN_PERM,
.policy = netlbl_cipsov4_genl_policy,
.doit = netlbl_cipsov4_remove,
.dumpit = NULL,
-};
-
-static struct genl_ops netlbl_cipsov4_genl_c_list = {
+   },
+   {
.cmd = NLBL_CIPSOV4_C_LIST,
.flags = 0,
.policy = netlbl_cipsov4_genl_policy,
.doit = netlbl_cipsov4_list,
.dumpit = NULL,
-};
-
-static struct genl_ops netlbl_cipsov4_genl_c_listall = {
+   },
+   {
.cmd = NLBL_CIPSOV4_C_LISTALL,
.flags = 0,
.policy = netlbl_cipsov4_genl_policy,
.doit = NULL,
.dumpit = netlbl_cipsov4_listall,
+   },
 };
 
 /*
@@ -764,28 +763,18 @@ static struct genl_ops netlbl_cipsov4_genl_c_listall = {
  */
 int netlbl_cipsov4_genl_init(void)
 {
-   int ret_val;
+   int ret_val, i;
 
ret_val = genl_register_family(&netlbl_cipsov4_gnl_family);
if (ret_val != 0)
return ret_val;
 
-   ret_val = genl_register_ops(&netlbl_cipsov4_gnl_family,
-   &netlbl_cipsov4_genl_c_add);
-   if (ret_val != 0)
-   return ret_val;
-   ret_val = genl_register_ops(&netlbl_cipsov4_gnl_family,
-   &netlbl_cipsov4_genl_c_remove);
-   if (ret_val != 0)
-   return ret_val;
-   ret_val = genl_register_ops(&netlbl_cipsov4_gnl_family,
-   &netlbl_cipsov4_genl_c_list);
-   if (ret_val != 0)
-   return ret_val;
-   ret_val = genl_register_ops(&netlbl_cipsov4_gnl_family,
-   &netlbl_cipsov4_genl_c_listall);
-   if (ret_val != 0)
-   return ret_val;
+   for (i = 0; i < ARRAY_SIZE(netlbl_cipsov4_ops); i++) {
+   ret_val = genl_register_ops(&netlbl_cipsov4_gnl_family,
+   &netlbl_cipsov4_ops[i]);
+   if (ret_val != 0)
+   return ret_val;
+   }
 
return 0;
 }
diff --git a/net/netlabel/netlabel_mgmt.c b/net/netlabel/netlabel_mgmt.c
index e2258dc..05d9886 100644
--- a/net/netlabel/netlabel_mgmt.c
+++ b/net/netlabel/netlabel_mgmt.c
@@ -517,68 +517,63 @@ version_failure:
  * NetLabel Generic NETLINK Command Definitions
  */
 
-static struct genl_ops netlbl_mgmt_genl_c_add = {
+static struct genl_ops netlbl_mgmt_genl_ops[] = {
+   {
.cmd = NLBL_MGMT_C_ADD,
.flags = GENL_ADMIN_PERM,
.policy = netlbl_mgmt_genl_policy,
.doit = netlbl_mgmt_add,
.dumpit = NULL,
-};
-
-static struct genl_ops netlbl_mgmt_genl_c_remove = {
+   },
+   {
.cmd = NLBL_MGMT_C_REMOVE,
.flags = GENL_ADMIN_PERM,
.policy = netlbl_mgmt_genl_policy,
.doit = netlbl_mgmt_remove,
.dumpit = NULL,
-};
-
-static struct genl_ops netlbl_mgmt_genl_c_listall = {
+   },
+   {
.cmd = NLBL_MGMT_C_LISTALL,
.flags = 0,
.policy = netlbl_mgmt_genl_policy,
.doit = NULL,
.dumpit = netlbl_mgmt_listall,
-};
-
-static struct genl_ops netlbl_mgmt_genl_c_adddef = {
+   },
+   {
.cmd = NLBL_MGMT_C_ADDDEF,
.flags = GENL_ADMIN_PERM,

e1000e: Fix CRC stripping in hardware context bug

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5918bd88effd0233a048983570ec5803f5f753dc
Commit: 5918bd88effd0233a048983570ec5803f5f753dc
Parent: fdb26629f31b898c2c4a4127c7d5c2401fb5ac60
Author: Auke Kok <[EMAIL PROTECTED]>
AuthorDate: Tue Feb 12 15:20:24 2008 -0800
Committer:  Jeff Garzik <[EMAIL PROTECTED]>
CommitDate: Fri Feb 15 10:52:01 2008 -0500

e1000e: Fix CRC stripping in hardware context bug

CRC stripping was only correctly enabled for packet split recieves
which is used when receiving jumbo frames. Correctly enable SECRC
also for normal buffer packet receives.

Tested by Andy Gospodarek and Johan Andersson, see bugzilla #9940.

Signed-off-by: Auke Kok <[EMAIL PROTECTED]>
Signed-off-by: Jeff Garzik <[EMAIL PROTECTED]>
---
 drivers/net/e1000e/netdev.c |6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/net/e1000e/netdev.c b/drivers/net/e1000e/netdev.c
index b9b0d32..ea4ecc3 100644
--- a/drivers/net/e1000e/netdev.c
+++ b/drivers/net/e1000e/netdev.c
@@ -1690,6 +1690,9 @@ static void e1000_setup_rctl(struct e1000_adapter 
*adapter)
else
rctl |= E1000_RCTL_LPE;
 
+   /* Enable hardware CRC frame stripping */
+   rctl |= E1000_RCTL_SECRC;
+
/* Setup buffer sizes */
rctl &= ~E1000_RCTL_SZ_4096;
rctl |= E1000_RCTL_BSEX;
@@ -1755,9 +1758,6 @@ static void e1000_setup_rctl(struct e1000_adapter 
*adapter)
 
/* Enable Packet split descriptors */
rctl |= E1000_RCTL_DTYP_PS;
-   
-   /* Enable hardware CRC frame stripping */
-   rctl |= E1000_RCTL_SECRC;
 
psrctl |= adapter->rx_ps_bsize0 >>
E1000_PSRCTL_BSIZE0_SHIFT;
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[SPARC]: Kill extern decl of 'panic_setup'.

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=1d5509aa6985b256a426e67ae6952fd4b7664de7
Commit: 1d5509aa6985b256a426e67ae6952fd4b7664de7
Parent: 9a2f258ad5910c478a5c98989b9a26268b2e5488
Author: David S. Miller <[EMAIL PROTECTED]>
AuthorDate: Mon Feb 18 15:17:58 2008 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Mon Feb 18 15:17:58 2008 -0800

[SPARC]: Kill extern decl of 'panic_setup'.

This was made static in kernel/panic.c a long time ago.

Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 arch/sparc/kernel/setup.c   |1 -
 arch/sparc64/kernel/setup.c |2 --
 2 files changed, 0 insertions(+), 3 deletions(-)

diff --git a/arch/sparc/kernel/setup.c b/arch/sparc/kernel/setup.c
index 3cf78f1..5f1508e 100644
--- a/arch/sparc/kernel/setup.c
+++ b/arch/sparc/kernel/setup.c
@@ -191,7 +191,6 @@ extern int prom_probe_memory(void);
 extern void sun4c_probe_vac(void);
 extern char cputypval;
 extern unsigned long start, end;
-extern void panic_setup(char *, int *);
 
 extern unsigned short root_flags;
 extern unsigned short root_dev;
diff --git a/arch/sparc64/kernel/setup.c b/arch/sparc64/kernel/setup.c
index 9b892ff..82b4d09 100644
--- a/arch/sparc64/kernel/setup.c
+++ b/arch/sparc64/kernel/setup.c
@@ -157,8 +157,6 @@ static void __init boot_flags_init(char *commands)
}
 }
 
-extern void panic_setup(char *, int *);
-
 extern unsigned short root_flags;
 extern unsigned short root_dev;
 extern unsigned short ram_flags;
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[SPARC64]: Kill pcic_present().

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=8c5b4a3f43c060662d83574a4c85fbb362419ddd
Commit: 8c5b4a3f43c060662d83574a4c85fbb362419ddd
Parent: 667bc389c716389795c6cfa145ab5ef6279fbb62
Author: David S. Miller <[EMAIL PROTECTED]>
AuthorDate: Mon Feb 18 16:40:10 2008 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Mon Feb 18 16:40:10 2008 -0800

[SPARC64]: Kill pcic_present().

And also it's helper function pci_is_controller().  Both
are unused.

I can't remove the equivalent from sparc32 yet as some
ancient bus probing code still uses that platform's version.

Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 arch/sparc64/kernel/pci.c |   21 -
 1 files changed, 0 insertions(+), 21 deletions(-)

diff --git a/arch/sparc64/kernel/pci.c b/arch/sparc64/kernel/pci.c
index a61c38f..545356b 100644
--- a/arch/sparc64/kernel/pci.c
+++ b/arch/sparc64/kernel/pci.c
@@ -225,20 +225,6 @@ static int __init pci_controller_init(const char 
*model_name, int namelen, struc
return 0;
 }
 
-static int __init pci_is_controller(const char *model_name, int namelen, 
struct device_node *dp)
-{
-   int i;
-
-   for (i = 0; i < PCI_NUM_CONTROLLER_TYPES; i++) {
-   if (!strncmp(model_name,
-pci_controller_table[i].model_name,
-namelen)) {
-   return 1;
-   }
-   }
-   return 0;
-}
-
 static int __init pci_controller_scan(int (*handler)(const char *, int, struct 
device_node *))
 {
struct device_node *dp;
@@ -273,13 +259,6 @@ static int __init pci_controller_scan(int (*handler)(const 
char *, int, struct d
return count;
 }
 
-
-/* Is there some PCI controller in the system?  */
-int __init pcic_present(void)
-{
-   return pci_controller_scan(pci_is_controller);
-}
-
 /* Find each controller in the system, attach and initialize
  * software state structure for each and link into the
  * pci_pbm_root.  Setup the controller enough such
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[AX25] ax25_out: check skb for NULL in ax25_kick()

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f47b7257c7368698eabff6fd7b340071932af640
Commit: f47b7257c7368698eabff6fd7b340071932af640
Parent: 9bf1d83e7ee653862ef740435a7f41e8fd6452a9
Author: Jarek Poplawski <[EMAIL PROTECTED]>
AuthorDate: Sun Feb 17 22:31:19 2008 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Sun Feb 17 22:31:19 2008 -0800

[AX25] ax25_out: check skb for NULL in ax25_kick()

According to some OOPS reports ax25_kick tries to clone NULL skbs
sometimes. It looks like a race with ax25_clear_queues(). Probably
there is no need to add more than a simple check for this yet.
Another report suggested there are probably also cases where ax25
->paclen == 0 can happen in ax25_output(); this wasn't confirmed
during testing but let's leave this debugging check for some time.

Reported-and-tested-by: Jann Traschewski <[EMAIL PROTECTED]>
Signed-off-by: Jarek Poplawski <[EMAIL PROTECTED]>
Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 net/ax25/ax25_out.c |   13 +++--
 1 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/net/ax25/ax25_out.c b/net/ax25/ax25_out.c
index 92b517a..bf706f8 100644
--- a/net/ax25/ax25_out.c
+++ b/net/ax25/ax25_out.c
@@ -117,6 +117,12 @@ void ax25_output(ax25_cb *ax25, int paclen, struct sk_buff 
*skb)
unsigned char *p;
int frontlen, len, fragno, ka9qfrag, first = 1;
 
+   if (paclen < 16) {
+   WARN_ON_ONCE(1);
+   kfree_skb(skb);
+   return;
+   }
+
if ((skb->len - 1) > paclen) {
if (*skb->data == AX25_P_TEXT) {
skb_pull(skb, 1); /* skip PID */
@@ -251,8 +257,6 @@ void ax25_kick(ax25_cb *ax25)
if (start == end)
return;
 
-   ax25->vs = start;
-
/*
 * Transmit data until either we're out of data to send or
 * the window is full. Send a poll on the final I frame if
@@ -261,8 +265,13 @@ void ax25_kick(ax25_cb *ax25)
 
/*
 * Dequeue the frame and copy it.
+* Check for race with ax25_clear_queues().
 */
skb  = skb_dequeue(&ax25->write_queue);
+   if (!skb)
+   return;
+
+   ax25->vs = start;
 
do {
if ((skbn = skb_clone(skb, GFP_ATOMIC)) == NULL) {
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


b43: Add firmware information to modinfo

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9c7d99d6fba1f26b95fb70b43f7954e9684cad3e
Commit: 9c7d99d6fba1f26b95fb70b43f7954e9684cad3e
Parent: 26bc783f8cf7227718f8b4cbc32f0c3a898b128f
Author: Michael Buesch <[EMAIL PROTECTED]>
AuthorDate: Sat Feb 9 10:23:49 2008 +0100
Committer:  John W. Linville <[EMAIL PROTECTED]>
CommitDate: Fri Feb 15 13:44:18 2008 -0500

b43: Add firmware information to modinfo

This adds the firmware ID to modinfo.

Signed-off-by: Michael Buesch <[EMAIL PROTECTED]>
Signed-off-by: John W. Linville <[EMAIL PROTECTED]>
---
 drivers/net/wireless/b43/main.c |2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/drivers/net/wireless/b43/main.c b/drivers/net/wireless/b43/main.c
index e55823c..ab6d608 100644
--- a/drivers/net/wireless/b43/main.c
+++ b/drivers/net/wireless/b43/main.c
@@ -58,6 +58,8 @@ MODULE_AUTHOR("Stefano Brivio");
 MODULE_AUTHOR("Michael Buesch");
 MODULE_LICENSE("GPL");
 
+MODULE_FIRMWARE(B43_SUPPORTED_FIRMWARE_ID);
+
 
 static int modparam_bad_frames_preempt;
 module_param_named(bad_frames_preempt, modparam_bad_frames_preempt, int, 0444);
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[TCP]: Fix tcp_v4_send_synack() comment

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9bf1d83e7ee653862ef740435a7f41e8fd6452a9
Commit: 9bf1d83e7ee653862ef740435a7f41e8fd6452a9
Parent: 9c00409a2a677511506126634fbfd9f217989e57
Author: Kris Katterjohn <[EMAIL PROTECTED]>
AuthorDate: Sun Feb 17 22:29:19 2008 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Sun Feb 17 22:29:19 2008 -0800

[TCP]: Fix tcp_v4_send_synack() comment

Signed-off-by: Kris Katterjohn <[EMAIL PROTECTED]>
Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 net/ipv4/tcp_ipv4.c |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
index 63414ea..00156bf 100644
--- a/net/ipv4/tcp_ipv4.c
+++ b/net/ipv4/tcp_ipv4.c
@@ -719,7 +719,7 @@ static void tcp_v4_reqsk_send_ack(struct sk_buff *skb,
 }
 
 /*
- * Send a SYN-ACK after having received an ACK.
+ * Send a SYN-ACK after having received a SYN.
  * This still operates on a request_sock only, not on a big
  * socket.
  */
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[WATCHDOG] Add support for SB1 hardware watchdog

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=75c752e6c3147f596c13365b200b91d754b66f59
Commit: 75c752e6c3147f596c13365b200b91d754b66f59
Parent: 1309d4e68497184d2fd87e892ddf14076c2bda98
Author: Andrew Sharp <[EMAIL PROTECTED]>
AuthorDate: Thu Dec 13 16:16:42 2007 -0800
Committer:  Wim Van Sebroeck <[EMAIL PROTECTED]>
CommitDate: Mon Feb 18 16:53:47 2008 +

[WATCHDOG] Add support for SB1 hardware watchdog

Support watchdog timers built into SiByte MIPS SoCs.

Signed-off-by: Andy Sharp <[EMAIL PROTECTED]>
Signed-off-by: Wim Van Sebroeck <[EMAIL PROTECTED]>
Cc: Ralf Baechle <[EMAIL PROTECTED]>
Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
---
 drivers/watchdog/Kconfig   |   13 ++
 drivers/watchdog/Makefile  |1 +
 drivers/watchdog/sb_wdog.c |  353 
 3 files changed, 367 insertions(+), 0 deletions(-)

diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig
index afcdc69..591e3f3 100644
--- a/drivers/watchdog/Kconfig
+++ b/drivers/watchdog/Kconfig
@@ -633,6 +633,19 @@ config WDT_RM9K_GPI
  To compile this driver as a module, choose M here: the
  module will be called rm9k_wdt.
 
+config SIBYTE_WDOG
+   tristate "Sibyte SoC hardware watchdog"
+   depends on CPU_SB1
+   help
+ Watchdog driver for the built in watchdog hardware in Sibyte
+ SoC processors.  There are apparently two watchdog timers
+ on such processors; this driver supports only the first one,
+ because currently Linux only supports exporting one watchdog
+ to userspace.
+
+ To compile this driver as a loadable module, choose M here.
+ The module will be called sb_wdog.
+
 config AR7_WDT
tristate "TI AR7 Watchdog Timer"
depends on AR7
diff --git a/drivers/watchdog/Makefile b/drivers/watchdog/Makefile
index ebc2114..90e4bbf 100644
--- a/drivers/watchdog/Makefile
+++ b/drivers/watchdog/Makefile
@@ -92,6 +92,7 @@ obj-$(CONFIG_SBC_EPX_C3_WATCHDOG) += sbc_epx_c3.o
 obj-$(CONFIG_INDYDOG) += indydog.o
 obj-$(CONFIG_WDT_MTX1) += mtx-1_wdt.o
 obj-$(CONFIG_WDT_RM9K_GPI) += rm9k_wdt.o
+obj-$(CONFIG_SIBYTE_WDOG) += sb_wdog.o
 obj-$(CONFIG_AR7_WDT) += ar7_wdt.o
 obj-$(CONFIG_TXX9_WDT) += txx9wdt.o
 
diff --git a/drivers/watchdog/sb_wdog.c b/drivers/watchdog/sb_wdog.c
new file mode 100644
index 000..b944314
--- /dev/null
+++ b/drivers/watchdog/sb_wdog.c
@@ -0,0 +1,353 @@
+/*
+ * Watchdog driver for SiByte SB1 SoCs
+ *
+ * Copyright (C) 2007 OnStor, Inc. * Andrew Sharp <[EMAIL PROTECTED]>
+ *
+ * This driver is intended to make the second of two hardware watchdogs
+ * on the Sibyte 12XX and 11XX SoCs available to the user.  There are two
+ * such devices available on the SoC, but it seems that there isn't an
+ * enumeration class for watchdogs in Linux like there is for RTCs.
+ * The second is used rather than the first because it uses IRQ 1,
+ * thereby avoiding all that IRQ 0 problematic nonsense.
+ *
+ * I have not tried this driver on a 1480 processor; it might work
+ * just well enough to really screw things up.
+ *
+ * It is a simple timer, and there is an interrupt that is raised the
+ * first time the timer expires.  The second time it expires, the chip
+ * is reset and there is no way to redirect that NMI.  Which could
+ * be problematic in some cases where this chip is sitting on the HT
+ * bus and has just taken responsibility for providing a cache block.
+ * Since the reset can't be redirected to the external reset pin, it is
+ * possible that other HT connected processors might hang and not reset.
+ * For Linux, a soft reset would probably be even worse than a hard reset.
+ * There you have it.
+ *
+ * The timer takes 23 bits of a 64 bit register (?) as a count value,
+ * and decrements the count every microsecond, for a max value of
+ * 0x7f usec or about 8.3ish seconds.
+ *
+ * This watchdog borrows some user semantics from the softdog driver,
+ * in that if you close the fd, it leaves the watchdog running, unless
+ * you previously wrote a 'V' to the fd, in which case it disables
+ * the watchdog when you close the fd like some other drivers.
+ *
+ * Based on various other watchdog drivers, which are probably all
+ * loosely based on something Alan Cox wrote years ago.
+ *
+ * (c) Copyright 1996 Alan Cox <[EMAIL PROTECTED]>, All Rights Reserved.
+ * http://www.redhat.com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * version 1 or 2 as published by the Free Software Foundation.
+ *
+ */
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+#include 
+#include 
+#include 
+#include 
+
+
+/*
+ * set the initial count value of a timer
+ *
+ * wdog is the iomem address of the cfg register
+ */
+void sbwdog_set(char __iomem *wdog

genirq: spurious.c: use time_* macros

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=188fd89d539d899bfca2bc83534e5508e0161139
Commit: 188fd89d539d899bfca2bc83534e5508e0161139
Parent: 9a4c8546f3e7c893888bccc2b3416d6214f2664a
Author: S.Caglar Onur <[EMAIL PROTECTED]>
AuthorDate: Thu Feb 14 17:36:51 2008 +0200
Committer:  Thomas Gleixner <[EMAIL PROTECTED]>
CommitDate: Tue Feb 19 10:43:58 2008 +0100

genirq: spurious.c: use time_* macros

The functions time_before, time_before_eq, time_after, and
time_after_eq are more robust for comparing jiffies against other
values.

So following patch implements usage of the time_after() macro, defined
at linux/jiffies.h, which deals with wrapping correctly

Signed-off-by: S.Caglar Onur <[EMAIL PROTECTED]>
Acked-by: Ingo Molnar <[EMAIL PROTECTED]>
Signed-off-by: Thomas Gleixner <[EMAIL PROTECTED]>
---
 kernel/irq/spurious.c |3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/kernel/irq/spurious.c b/kernel/irq/spurious.c
index a6b2bc8..088dabb 100644
--- a/kernel/irq/spurious.c
+++ b/kernel/irq/spurious.c
@@ -6,6 +6,7 @@
  * This file contains spurious interrupt handling.
  */
 
+#include 
 #include 
 #include 
 #include 
@@ -179,7 +180,7 @@ void note_interrupt(unsigned int irq, struct irq_desc *desc,
 * otherwise the couter becomes a doomsday timer for otherwise
 * working systems
 */
-   if (jiffies - desc->last_unhandled > HZ/10)
+   if (time_after(jiffies, desc->last_unhandled + HZ/10))
desc->irqs_unhandled = 1;
else
desc->irqs_unhandled++;
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


ixgbe: warn when device is in a x4 or lower width slot

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=0c254d863338ceff630814bf17cf8e4b61cb8aa3
Commit: 0c254d863338ceff630814bf17cf8e4b61cb8aa3
Parent: 23b66e2bc2bcebacab7292d7731b7372065b3f98
Author: Auke Kok <[EMAIL PROTECTED]>
AuthorDate: Mon Feb 11 09:25:56 2008 -0800
Committer:  Jeff Garzik <[EMAIL PROTECTED]>
CommitDate: Mon Feb 11 14:51:40 2008 -0500

ixgbe: warn when device is in a x4 or lower width slot

It's easy to oversee this issue when working with this card
as evrything will work OK but performance is severely limited
(something like 1.5gbit on a x1 link) if the pci-express
slot does not offer more bandwidth.

Signed-off-by: Auke Kok <[EMAIL PROTECTED]>
Signed-off-by: Jeff Garzik <[EMAIL PROTECTED]>
---
 drivers/net/ixgbe/ixgbe_main.c |8 
 1 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/drivers/net/ixgbe/ixgbe_main.c b/drivers/net/ixgbe/ixgbe_main.c
index ead49e5..576fb51 100644
--- a/drivers/net/ixgbe/ixgbe_main.c
+++ b/drivers/net/ixgbe/ixgbe_main.c
@@ -2778,6 +2778,14 @@ static int __devinit ixgbe_probe(struct pci_dev *pdev,
 hw->mac.type, hw->phy.type,
 (part_num >> 8), (part_num & 0xff));
 
+   if (link_width <= IXGBE_PCI_LINK_WIDTH_4) {
+   dev_warn(&pdev->dev, "PCI-Express bandwidth available for "
+"this card is not sufficient for optimal "
+"performance.\n");
+   dev_warn(&pdev->dev, "For optimal performance a x8 "
+"PCI-Express slot is required.\n");
+   }
+
/* reset the hardware with the new settings */
ixgbe_start_hw(hw);
 
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


block: update bio according to DMA alignment padding

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=40b01b9bbdf51ae543a04744283bf2d56c4a6afa
Commit: 40b01b9bbdf51ae543a04744283bf2d56c4a6afa
Parent: 56c819df77f96c3fc0c2a979e12b478403728790
Author: Tejun Heo <[EMAIL PROTECTED]>
AuthorDate: Tue Feb 19 11:35:38 2008 +0100
Committer:  Jens Axboe <[EMAIL PROTECTED]>
CommitDate: Tue Feb 19 11:35:38 2008 +0100

block: update bio according to DMA alignment padding

DMA start address and transfer size alignment for PC requests are
achieved using bio_copy_user() instead of bio_map_user().  This works
because bio_copy_user() always uses full pages and block DMA alignment
isn't allowed to go over PAGE_SIZE.

However, the implementation didn't update the last bio of the request
to make this padding visible to lower layers.  This patch makes
blk_rq_map_user() extend the last bio such that it includes the
padding area and the size of area pointed to by the request is
properly aligned.

Signed-off-by: Tejun Heo <[EMAIL PROTECTED]>
Cc: James Bottomley <[EMAIL PROTECTED]>
Signed-off-by: Jens Axboe <[EMAIL PROTECTED]>
---
 block/blk-map.c |   17 +
 1 files changed, 17 insertions(+), 0 deletions(-)

diff --git a/block/blk-map.c b/block/blk-map.c
index bc5ce60..a7cf63c 100644
--- a/block/blk-map.c
+++ b/block/blk-map.c
@@ -139,6 +139,23 @@ int blk_rq_map_user(struct request_queue *q, struct 
request *rq,
ubuf += ret;
}
 
+   /*
+* __blk_rq_map_user() copies the buffers if starting address
+* or length isn't aligned.  As the copied buffer is always
+* page aligned, we know that there's enough room for padding.
+* Extend the last bio and update rq->data_len accordingly.
+*
+* On unmap, bio_uncopy_user() will use unmodified
+* bio_map_data pointed to by bio->bi_private.
+*/
+   if (len & queue_dma_alignment(q)) {
+   unsigned int pad_len = (queue_dma_alignment(q) & ~len) + 1;
+   struct bio *bio = rq->biotail;
+
+   bio->bi_io_vec[bio->bi_vcnt - 1].bv_len += pad_len;
+   bio->bi_size += pad_len;
+   }
+
rq->buffer = rq->data = NULL;
return 0;
 unmap_rq:
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


mac80211: Fix initial hardware configuration

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ceffefd15aac78841432230627308b8a382dbcfc
Commit: ceffefd15aac78841432230627308b8a382dbcfc
Parent: db433febbadaf1fa9862fb5068b119be1d312d76
Author: Michael Buesch <[EMAIL PROTECTED]>
AuthorDate: Sun Feb 10 14:16:52 2008 +0100
Committer:  John W. Linville <[EMAIL PROTECTED]>
CommitDate: Fri Feb 15 13:44:19 2008 -0500

mac80211: Fix initial hardware configuration

On the initial device-open we need to defer the hardware reconfiguration
after we incremented the open_count, because the hw_config checks this flag
and won't call the lowlevel driver in case it is zero.

Signed-off-by: Michael Buesch <[EMAIL PROTECTED]>
Signed-off-by: John W. Linville <[EMAIL PROTECTED]>
---
 net/mac80211/ieee80211.c |5 -
 1 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/net/mac80211/ieee80211.c b/net/mac80211/ieee80211.c
index 67b7c75..28bcdf9 100644
--- a/net/mac80211/ieee80211.c
+++ b/net/mac80211/ieee80211.c
@@ -165,6 +165,7 @@ static int ieee80211_open(struct net_device *dev)
struct ieee80211_local *local = wdev_priv(dev->ieee80211_ptr);
struct ieee80211_if_init_conf conf;
int res;
+   bool need_hw_reconfig = 0;
 
sdata = IEEE80211_DEV_TO_SUB_IF(dev);
 
@@ -218,7 +219,7 @@ static int ieee80211_open(struct net_device *dev)
res = local->ops->start(local_to_hw(local));
if (res)
return res;
-   ieee80211_hw_config(local);
+   need_hw_reconfig = 1;
ieee80211_led_radio(local, local->hw.conf.radio_enabled);
}
 
@@ -282,6 +283,8 @@ static int ieee80211_open(struct net_device *dev)
atomic_inc(&local->iff_promiscs);
 
local->open_count++;
+   if (need_hw_reconfig)
+   ieee80211_hw_config(local);
 
netif_start_queue(dev);
 
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


replace code with FIELD_SIZEOF

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=030ed68bf063e99cea6371d1fb771a870cab1c1d
Commit: 030ed68bf063e99cea6371d1fb771a870cab1c1d
Parent: 9dde447a09ec8fc0ba8375a16fe6bed2470f0d14
Author: Julia Lawall <[EMAIL PROTECTED]>
AuthorDate: Mon Feb 11 09:25:40 2008 -0800
Committer:  Jeff Garzik <[EMAIL PROTECTED]>
CommitDate: Mon Feb 11 14:51:40 2008 -0500

replace code with FIELD_SIZEOF

Signed-off-by: Julia Lawall <[EMAIL PROTECTED]>
Signed-off-by: Auke Kok <[EMAIL PROTECTED]>
Signed-off-by: Jeff Garzik <[EMAIL PROTECTED]>
---
 drivers/net/e1000/e1000_ethtool.c |2 +-
 drivers/net/igb/igb_ethtool.c |2 +-
 drivers/net/ixgb/ixgb_ethtool.c   |2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/net/e1000/e1000_ethtool.c 
b/drivers/net/e1000/e1000_ethtool.c
index d876787..85e66f4 100644
--- a/drivers/net/e1000/e1000_ethtool.c
+++ b/drivers/net/e1000/e1000_ethtool.c
@@ -50,7 +50,7 @@ struct e1000_stats {
int stat_offset;
 };
 
-#define E1000_STAT(m) sizeof(((struct e1000_adapter *)0)->m), \
+#define E1000_STAT(m) FIELD_SIZEOF(struct e1000_adapter, m), \
  offsetof(struct e1000_adapter, m)
 static const struct e1000_stats e1000_gstrings_stats[] = {
{ "rx_packets", E1000_STAT(stats.gprc) },
diff --git a/drivers/net/igb/igb_ethtool.c b/drivers/net/igb/igb_ethtool.c
index f69721e..0447f9b 100644
--- a/drivers/net/igb/igb_ethtool.c
+++ b/drivers/net/igb/igb_ethtool.c
@@ -43,7 +43,7 @@ struct igb_stats {
int stat_offset;
 };
 
-#define IGB_STAT(m) sizeof(((struct igb_adapter *)0)->m), \
+#define IGB_STAT(m) FIELD_SIZEOF(struct igb_adapter, m), \
  offsetof(struct igb_adapter, m)
 static const struct igb_stats igb_gstrings_stats[] = {
{ "rx_packets", IGB_STAT(stats.gprc) },
diff --git a/drivers/net/ixgb/ixgb_ethtool.c b/drivers/net/ixgb/ixgb_ethtool.c
index a267dd8..53a9fd0 100644
--- a/drivers/net/ixgb/ixgb_ethtool.c
+++ b/drivers/net/ixgb/ixgb_ethtool.c
@@ -49,7 +49,7 @@ struct ixgb_stats {
int stat_offset;
 };
 
-#define IXGB_STAT(m) sizeof(((struct ixgb_adapter *)0)->m), \
+#define IXGB_STAT(m) FIELD_SIZEOF(struct ixgb_adapter, m), \
  offsetof(struct ixgb_adapter, m)
 static struct ixgb_stats ixgb_gstrings_stats[] = {
{"rx_packets", IXGB_STAT(net_stats.rx_packets)},
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[WATCHDOG] HP ProLiant WatchDog driver

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=7f4da4745c34287938ce76b92b23409adeecb5b8
Commit: 7f4da4745c34287938ce76b92b23409adeecb5b8
Parent: bb59b5578a73d0e0e4e208a014fa7ea0c4f0ccb4
Author: Thomas Mingarelli <[EMAIL PROTECTED]>
AuthorDate: Tue Dec 4 17:41:54 2007 +
Committer:  Wim Van Sebroeck <[EMAIL PROTECTED]>
CommitDate: Mon Feb 18 17:06:21 2008 +

[WATCHDOG] HP ProLiant WatchDog driver

Hp is providing a Hardware WatchDog Timer driver that will only work with 
the
specific HW Timer located in the HP ProLiant iLO 2 ASIC. The iLO 2 HW Timer
will generate a Non-maskable Interrupt (NMI) 9 seconds before physically
resetting the server, by removing power, so that the event can be logged to
the HP Integrated Management Log (IML), a Non-Volatile Random Access Memory
(NVRAM). The logging of the event is performed using the HP ProLiant ROM via
an Industry Standard access known as a BIOS Service Directory Entry.

Signed-off-by: Thomas Mingarelli <[EMAIL PROTECTED]>
Signed-off-by: Wim Van Sebroeck <[EMAIL PROTECTED]>
---
 drivers/watchdog/Kconfig  |   12 +
 drivers/watchdog/Makefile |1 +
 drivers/watchdog/hpwdt.c  |  926 +
 3 files changed, 939 insertions(+), 0 deletions(-)

diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig
index 591e3f3..254d115 100644
--- a/drivers/watchdog/Kconfig
+++ b/drivers/watchdog/Kconfig
@@ -402,6 +402,18 @@ config IT8712F_WDT
  To compile this driver as a module, choose M here: the
  module will be called it8712f_wdt.
 
+config HP_WATCHDOG
+   tristate "HP Proliant iLO 2 Hardware Watchdog Timer"
+   depends on X86
+   help
+ A software monitoring watchdog and NMI sourcing driver. This driver
+ will detect lockups and provide stack trace. Also, when an NMI
+ occurs this driver will make the necessary BIOS calls to log
+ the cause of the NMI. This is a driver that will only load on a
+ HP ProLiant system with a minimum of iLO2 support.
+ To compile this driver as a module, choose M here: the
+ module will be called hpwdt.
+
 config SC1200_WDT
tristate "National Semiconductor PC87307/PC97307 (ala SC1200) Watchdog"
depends on X86
diff --git a/drivers/watchdog/Makefile b/drivers/watchdog/Makefile
index 90e4bbf..f3fb170 100644
--- a/drivers/watchdog/Makefile
+++ b/drivers/watchdog/Makefile
@@ -67,6 +67,7 @@ obj-$(CONFIG_WAFER_WDT) += wafer5823wdt.o
 obj-$(CONFIG_I6300ESB_WDT) += i6300esb.o
 obj-$(CONFIG_ITCO_WDT) += iTCO_wdt.o iTCO_vendor_support.o
 obj-$(CONFIG_IT8712F_WDT) += it8712f_wdt.o
+obj-$(CONFIG_HP_WATCHDOG) += hpwdt.o
 obj-$(CONFIG_SC1200_WDT) += sc1200wdt.o
 obj-$(CONFIG_SCx200_WDT) += scx200_wdt.o
 obj-$(CONFIG_PC87413_WDT) += pc87413_wdt.o
diff --git a/drivers/watchdog/hpwdt.c b/drivers/watchdog/hpwdt.c
new file mode 100644
index 000..a2e174b
--- /dev/null
+++ b/drivers/watchdog/hpwdt.c
@@ -0,0 +1,926 @@
+/*
+ * HP WatchDog Driver
+ * based on
+ *
+ * SoftDog 0.05:   A Software Watchdog Device
+ *
+ * (c) Copyright 2007 Hewlett-Packard Development Company, L.P.
+ * Thomas Mingarelli <[EMAIL PROTECTED]>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * version 2 as published by the Free Software Foundation
+ *
+ */
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+#define PCI_BIOS32_SD_VALUE0x5F32335F  /* "_32_" */
+#define CRU_BIOS_SIGNATURE_VALUE   0x55524324
+#define PCI_BIOS32_PARAGRAPH_LEN   16
+#define PCI_ROM_BASE1  0x000F
+#define ROM_SIZE   0x1
+
+struct bios32_service_dir {
+   u32 signature;
+   u32 entry_point;
+   u8 revision;
+   u8 length;
+   u8 checksum;
+   u8 reserved[5];
+};
+
+/*
+ * smbios_entry_point - defines SMBIOS entry point structure
+ *
+ * anchor[4]  - anchor string (_SM_)
+ * checksum   - checksum of the entry point structure
+ * length - length of the entry point structure
+ * major_ver  - major version (02h for revision 2.1)
+ * minor_ver  - minor version (01h for revision 2.1)
+ * max_struct_size- size of the largest SMBIOS structure
+ * revision   - entry point structure revision implemented
+ * formatted_area[5]  - reserved
+ * intermediate_anchor[5] - intermediate anchor string (_DMI_)
+ * intermediate_checksum  - intermediate checksum
+ * table_length   - structure table length
+ * tabl

ixgbe: Disallow device reset during ethtool test

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4bebfaa56b72c94fe4997240ee73ad1c1fcf96c9
Commit: 4bebfaa56b72c94fe4997240ee73ad1c1fcf96c9
Parent: 0c254d863338ceff630814bf17cf8e4b61cb8aa3
Author: Auke Kok <[EMAIL PROTECTED]>
AuthorDate: Mon Feb 11 09:26:01 2008 -0800
Committer:  Jeff Garzik <[EMAIL PROTECTED]>
CommitDate: Mon Feb 11 14:51:40 2008 -0500

ixgbe: Disallow device reset during ethtool test

Signed-off-by: Auke Kok <[EMAIL PROTECTED]>
Signed-off-by: Jeff Garzik <[EMAIL PROTECTED]>
---
 drivers/net/ixgbe/ixgbe_main.c |4 
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/drivers/net/ixgbe/ixgbe_main.c b/drivers/net/ixgbe/ixgbe_main.c
index 576fb51..a4aeaec 100644
--- a/drivers/net/ixgbe/ixgbe_main.c
+++ b/drivers/net/ixgbe/ixgbe_main.c
@@ -1942,6 +1942,10 @@ static int ixgbe_open(struct net_device *netdev)
int err;
u32 num_rx_queues = adapter->num_rx_queues;
 
+   /* disallow open during test */
+   if (test_bit(__IXGBE_TESTING, &adapter->state))
+   return -EBUSY;
+
 try_intr_reinit:
/* allocate transmit descriptors */
err = ixgbe_setup_all_tx_resources(adapter);
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


iwlwifi: Don't send host commands on rfkill

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c342a1b91f6ccd317c68defd3b4c7bb75397d967
Commit: c342a1b91f6ccd317c68defd3b4c7bb75397d967
Parent: 9788864e2169ed3611e61c097efe4944c23fe7e9
Author: Gregory Greenman <[EMAIL PROTECTED]>
AuthorDate: Wed Feb 6 11:20:40 2008 -0800
Committer:  John W. Linville <[EMAIL PROTECTED]>
CommitDate: Fri Feb 15 13:44:18 2008 -0500

iwlwifi: Don't send host commands on rfkill

This patch prevents sending host commands when rfkill is on

Signed-off-by: Gregory Greenman <[EMAIL PROTECTED]>
Signed-off-by: Tomas Winkler <[EMAIL PROTECTED]>
Signed-off-by: John W. Linville <[EMAIL PROTECTED]>
---
 drivers/net/wireless/iwlwifi/iwl3945-base.c |6 ++
 drivers/net/wireless/iwlwifi/iwl4965-base.c |5 +
 2 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/drivers/net/wireless/iwlwifi/iwl3945-base.c 
b/drivers/net/wireless/iwlwifi/iwl3945-base.c
index b6f19a5..66520e8 100644
--- a/drivers/net/wireless/iwlwifi/iwl3945-base.c
+++ b/drivers/net/wireless/iwlwifi/iwl3945-base.c
@@ -687,6 +687,12 @@ static int iwl3945_enqueue_hcmd(struct iwl3945_priv *priv, 
struct iwl3945_host_c
BUG_ON((fix_size > TFD_MAX_PAYLOAD_SIZE) &&
   !(cmd->meta.flags & CMD_SIZE_HUGE));
 
+
+   if (iwl3945_is_rfkill(priv)) {
+   IWL_DEBUG_INFO("Not sending command - RF KILL");
+   return -EIO;
+   }
+
if (iwl3945_queue_space(q) < ((cmd->meta.flags & CMD_ASYNC) ? 2 : 1)) {
IWL_ERROR("No space for Tx\n");
return -ENOSPC;
diff --git a/drivers/net/wireless/iwlwifi/iwl4965-base.c 
b/drivers/net/wireless/iwlwifi/iwl4965-base.c
index 8bedc0c..855cc97 100644
--- a/drivers/net/wireless/iwlwifi/iwl4965-base.c
+++ b/drivers/net/wireless/iwlwifi/iwl4965-base.c
@@ -692,6 +692,11 @@ static int iwl4965_enqueue_hcmd(struct iwl4965_priv *priv, 
struct iwl4965_host_c
BUG_ON((fix_size > TFD_MAX_PAYLOAD_SIZE) &&
   !(cmd->meta.flags & CMD_SIZE_HUGE));
 
+   if (iwl4965_is_rfkill(priv)) {
+   IWL_DEBUG_INFO("Not sending command - RF KILL");
+   return -EIO;
+   }
+
if (iwl4965_queue_space(q) < ((cmd->meta.flags & CMD_ASYNC) ? 2 : 1)) {
IWL_ERROR("No space for Tx\n");
return -ENOSPC;
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[SPARC]: video/cg14.c and video/sbuslib.c build fixes

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=631a9dca60ddd7d84a08171a14828e9cfb667d48
Commit: 631a9dca60ddd7d84a08171a14828e9cfb667d48
Parent: 96b5a46e2a72dc1829370c87053e0cd558d58bc0
Author: Robert Reif <[EMAIL PROTECTED]>
AuthorDate: Tue Feb 12 18:23:31 2008 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Tue Feb 12 18:23:31 2008 -0800

[SPARC]: video/cg14.c and video/sbuslib.c build fixes

Apparently these drivers now need uaccess.h

Signed-off-by: Robert Reif <[EMAIL PROTECTED]>
Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 drivers/video/cg14.c|1 +
 drivers/video/sbuslib.c |1 +
 2 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/drivers/video/cg14.c b/drivers/video/cg14.c
index 41f6dbf..fdc9f43 100644
--- a/drivers/video/cg14.c
+++ b/drivers/video/cg14.c
@@ -16,6 +16,7 @@
 #include 
 #include 
 #include 
+#include 
 
 #include 
 #include 
diff --git a/drivers/video/sbuslib.c b/drivers/video/sbuslib.c
index 963a454..4deaac0 100644
--- a/drivers/video/sbuslib.c
+++ b/drivers/video/sbuslib.c
@@ -9,6 +9,7 @@
 #include 
 #include 
 #include 
+#include 
 
 #include 
 #include 
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


gianfar iomem misannotations

2008-02-19 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=fdb26629f31b898c2c4a4127c7d5c2401fb5ac60
Commit: fdb26629f31b898c2c4a4127c7d5c2401fb5ac60
Parent: 9f30c768c00fd0f0a2ab37ef29d8c8c5a7abdf2e
Author: Al Viro <[EMAIL PROTECTED]>
AuthorDate: Wed Feb 13 03:58:36 2008 +
Committer:  Jeff Garzik <[EMAIL PROTECTED]>
CommitDate: Fri Feb 15 10:51:53 2008 -0500

gianfar iomem misannotations

Signed-off-by: Al Viro <[EMAIL PROTECTED]>
Signed-off-by: Jeff Garzik <[EMAIL PROTECTED]>
---
 drivers/net/gianfar.c |4 ++--
 drivers/net/gianfar_mii.c |4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/net/gianfar.c b/drivers/net/gianfar.c
index 0431e9e..4244fc2 100644
--- a/drivers/net/gianfar.c
+++ b/drivers/net/gianfar.c
@@ -130,8 +130,8 @@ static void free_skb_resources(struct gfar_private *priv);
 static void gfar_set_multi(struct net_device *dev);
 static void gfar_set_hash_for_addr(struct net_device *dev, u8 *addr);
 static void gfar_configure_serdes(struct net_device *dev);
-extern int gfar_local_mdio_write(struct gfar_mii *regs, int mii_id, int 
regnum, u16 value);
-extern int gfar_local_mdio_read(struct gfar_mii *regs, int mii_id, int regnum);
+extern int gfar_local_mdio_write(struct gfar_mii __iomem *regs, int mii_id, 
int regnum, u16 value);
+extern int gfar_local_mdio_read(struct gfar_mii __iomem *regs, int mii_id, int 
regnum);
 #ifdef CONFIG_GFAR_NAPI
 static int gfar_poll(struct napi_struct *napi, int budget);
 #endif
diff --git a/drivers/net/gianfar_mii.c b/drivers/net/gianfar_mii.c
index 6a647d9..2432762 100644
--- a/drivers/net/gianfar_mii.c
+++ b/drivers/net/gianfar_mii.c
@@ -51,7 +51,7 @@
  * the local mdio pins, which may not be the same as system mdio bus, used for
  * controlling the external PHYs, for example.
  */
-int gfar_local_mdio_write(struct gfar_mii *regs, int mii_id,
+int gfar_local_mdio_write(struct gfar_mii __iomem *regs, int mii_id,
  int regnum, u16 value)
 {
/* Set the PHY address and the register address we want to write */
@@ -77,7 +77,7 @@ int gfar_local_mdio_write(struct gfar_mii *regs, int mii_id,
  * and are always tied to the local mdio pins, which may not be the
  * same as system mdio bus, used for controlling the external PHYs, for eg.
  */
-int gfar_local_mdio_read(struct gfar_mii *regs, int mii_id, int regnum)
+int gfar_local_mdio_read(struct gfar_mii __iomem *regs, int mii_id, int regnum)
 
 {
u16 value;
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


  1   2   3   >