Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 94c35de9 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* 'staging-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6: (27 commits)
  Staging: rt2870: Add USB ID for Buffalo Airstation WLI-UC-GN
  staging: easycap needs smp_lock.h, fixes build error
  Staging: batman-adv: ensure that eth_type_trans gets linear memory
  Staging: batman-adv: Don't remove interface with spinlock held
  staging: brcm80211: updated maintainers contact information
  staging: fix winbond build, needs delay.h
  Staging: line6: fix up my fixup for some sysfs attribute permissions
  Staging: zram: fix up my fixup for some sysfs attribute permissions
  Staging: udlfb: fix up my fixup for some sysfs attribute permissions
  Staging: samsung-laptop: fix up my fixup for some sysfs attribute permissions
  Staging: iio: adis16220: fix up my fixup for some sysfs attribute permissions
  Staging: frontier: fix up my fixup for some sysfs attribute permissions
  Staging: asus_oled: fix up my fixup for some sysfs attribute permissions
  staging: spectra: fix build error
  Staging: intel_sst: fix memory leak
  Staging: rtl8712: signedness bug in init
  staging: rtl8187se: Change panic to warn when RF switch turned off
  staging: comedi: fix memory leak
  Staging: quickstart: free after input_unregister_device()
  Staging: speakup: free after input_unregister_device()
  ...
parents 8733cb29 251d3800
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -620,13 +620,13 @@ static ssize_t class_set_picture(struct device *device,

#define ASUS_OLED_DEVICE_ATTR(_file)		dev_attr_asus_oled_##_file

static DEVICE_ATTR(asus_oled_enabled, S_IWUGO | S_IRUGO,
static DEVICE_ATTR(asus_oled_enabled, S_IWUSR | S_IRUGO,
		   get_enabled, set_enabled);
static DEVICE_ATTR(asus_oled_picture, S_IWUGO , NULL, set_picture);
static DEVICE_ATTR(asus_oled_picture, S_IWUSR , NULL, set_picture);

static DEVICE_ATTR(enabled, S_IWUGO | S_IRUGO,
static DEVICE_ATTR(enabled, S_IWUSR | S_IRUGO,
		   class_get_enabled, class_set_enabled);
static DEVICE_ATTR(picture, S_IWUGO, NULL, class_set_picture);
static DEVICE_ATTR(picture, S_IWUSR, NULL, class_set_picture);

static int asus_oled_probe(struct usb_interface *interface,
			   const struct usb_device_id *id)
+13 −6
Original line number Diff line number Diff line
@@ -463,9 +463,6 @@ static void hardif_remove_interface(struct batman_if *batman_if)
		return;

	batman_if->if_status = IF_TO_BE_REMOVED;

	/* caller must take if_list_lock */
	list_del_rcu(&batman_if->list);
	synchronize_rcu();
	sysfs_del_hardif(&batman_if->hardif_obj);
	hardif_put(batman_if);
@@ -474,13 +471,21 @@ static void hardif_remove_interface(struct batman_if *batman_if)
void hardif_remove_interfaces(void)
{
	struct batman_if *batman_if, *batman_if_tmp;
	struct list_head if_queue;

	INIT_LIST_HEAD(&if_queue);

	rtnl_lock();
	spin_lock(&if_list_lock);
	list_for_each_entry_safe(batman_if, batman_if_tmp, &if_list, list) {
		hardif_remove_interface(batman_if);
		list_del_rcu(&batman_if->list);
		list_add_tail(&batman_if->list, &if_queue);
	}
	spin_unlock(&if_list_lock);

	rtnl_lock();
	list_for_each_entry_safe(batman_if, batman_if_tmp, &if_queue, list) {
		hardif_remove_interface(batman_if);
	}
	rtnl_unlock();
}

@@ -507,8 +512,10 @@ static int hard_if_event(struct notifier_block *this,
		break;
	case NETDEV_UNREGISTER:
		spin_lock(&if_list_lock);
		hardif_remove_interface(batman_if);
		list_del_rcu(&batman_if->list);
		spin_unlock(&if_list_lock);

		hardif_remove_interface(batman_if);
		break;
	case NETDEV_CHANGEMTU:
		if (batman_if->soft_iface)
+10 −4
Original line number Diff line number Diff line
@@ -194,14 +194,15 @@ void interface_rx(struct net_device *soft_iface,
	struct bat_priv *priv = netdev_priv(soft_iface);

	/* check if enough space is available for pulling, and pull */
	if (!pskb_may_pull(skb, hdr_size)) {
		kfree_skb(skb);
		return;
	}
	if (!pskb_may_pull(skb, hdr_size))
		goto dropped;

	skb_pull_rcsum(skb, hdr_size);
/*	skb_set_mac_header(skb, -sizeof(struct ethhdr));*/

	/* skb->dev & skb->pkt_type are set here */
	if (unlikely(!pskb_may_pull(skb, ETH_HLEN)))
		goto dropped;
	skb->protocol = eth_type_trans(skb, soft_iface);

	/* should not be neccesary anymore as we use skb_pull_rcsum()
@@ -216,6 +217,11 @@ void interface_rx(struct net_device *soft_iface,
	soft_iface->last_rx = jiffies;

	netif_rx(skb);
	return;

dropped:
	kfree_skb(skb);
	return;
}

#ifdef HAVE_NET_DEVICE_OPS
+5 −3
Original line number Diff line number Diff line
@@ -91,4 +91,6 @@ Contact Info:
Brett Rudley		brudley@broadcom.com
Henry Ptasinski		henryp@broadcom.com
Dowan Kim			dowan@broadcom.com
Roland Vossen		rvossen@broadcom.com
Arend van Spriel	arend@broadcom.com
+2 −0
Original line number Diff line number Diff line
@@ -46,4 +46,6 @@ Contact
Brett Rudley <brudley@broadcom.com>
Henry Ptasinski <henryp@broadcom.com>
Dowan Kim <dowan@broadcom.com>
Roland Vossen <rvossen@broadcom.com>
Arend van Spriel <arend@broadcom.com>
Loading