Skip to content

Commit

Permalink
Merge commit '070680218379e15c1901f4bf21b98e3cbf12b527' into stable/f…
Browse files Browse the repository at this point in the history
…or-linus-fixes-3.3

* commit '070680218379e15c1901f4bf21b98e3cbf12b527': (50 commits)
  xen-balloon: convert sysdev_class to a regular subsystem
  clocksource: convert sysdev_class to a regular subsystem
  ibm_rtl: convert sysdev_class to a regular subsystem
  edac: convert sysdev_class to a regular subsystem
  rtmutex-tester: convert sysdev_class to a regular subsystem
  driver-core: implement 'sysdev' functionality for regular devices and buses
  kref: fix up the kfree build problems
  kref: Remove the memory barriers
  kref: Implement kref_put in terms of kref_sub
  kref: Inline all functions
  Drivers: hv: Get rid of an unnecessary check in hv.c
  Drivers: hv: Make the vmbus driver unloadable
  Drivers: hv: Fix a memory leak
  Documentation: Update stable address
  MAINTAINERS: stable: Update address
  w1: add fast search for single slave bus
  driver-core: skip uevent generation when nobody is listening
  drivers: hv: Don't OOPS when you cannot init vmbus
  firmware: google: fix gsmi.c build warning
  drivers_base: make argument to platform_device_register_full const
  ...
konradwilk committed Jan 12, 2012
2 parents dc6821e + 0706802 commit d3b7737
Showing 351 changed files with 1,373 additions and 5,091 deletions.
4 changes: 2 additions & 2 deletions Documentation/HOWTO
Original file line number Diff line number Diff line change
@@ -275,8 +275,8 @@ versions.
If no 2.6.x.y kernel is available, then the highest numbered 2.6.x
kernel is the current stable kernel.

2.6.x.y are maintained by the "stable" team <[email protected]>, and are
released as needs dictate. The normal release period is approximately
2.6.x.y are maintained by the "stable" team <stable@vger.kernel.org>, and
are released as needs dictate. The normal release period is approximately
two weeks, but it can be longer if there are no pressing problems. A
security-related problem, instead, can cause a release to happen almost
instantly.
8 changes: 4 additions & 4 deletions Documentation/development-process/5.Posting
Original file line number Diff line number Diff line change
@@ -271,10 +271,10 @@ copies should go to:
the linux-kernel list.

- If you are fixing a bug, think about whether the fix should go into the
next stable update. If so, [email protected] should get a copy of the
patch. Also add a "Cc: [email protected]" to the tags within the patch
itself; that will cause the stable team to get a notification when your
fix goes into the mainline.
next stable update. If so, stable@vger.kernel.org should get a copy of
the patch. Also add a "Cc: stable@vger.kernel.org" to the tags within
the patch itself; that will cause the stable team to get a notification
when your fix goes into the mainline.

When selecting recipients for a patch, it is good to have an idea of who
you think will eventually accept the patch and get it merged. While it
1 change: 1 addition & 0 deletions Documentation/driver-model/devres.txt
Original file line number Diff line number Diff line change
@@ -262,6 +262,7 @@ IOMAP
devm_ioremap()
devm_ioremap_nocache()
devm_iounmap()
devm_request_and_ioremap() : checks resource, requests region, ioremaps
pcim_iomap()
pcim_iounmap()
pcim_iomap_table() : array of mapped addresses indexed by BAR
32 changes: 31 additions & 1 deletion Documentation/filesystems/debugfs.txt
Original file line number Diff line number Diff line change
@@ -97,7 +97,8 @@ A read on the resulting file will yield either Y (for non-zero values) or
N, followed by a newline. If written to, it will accept either upper- or
lower-case values, or 1 or 0. Any other input will be silently ignored.

Finally, a block of arbitrary binary data can be exported with:
Another option is exporting a block of arbitrary binary data, with
this structure and function:

struct debugfs_blob_wrapper {
void *data;
@@ -115,6 +116,35 @@ can be used to export binary information, but there does not appear to be
any code which does so in the mainline. Note that all files created with
debugfs_create_blob() are read-only.

If you want to dump a block of registers (something that happens quite
often during development, even if little such code reaches mainline.
Debugfs offers two functions: one to make a registers-only file, and
another to insert a register block in the middle of another sequential
file.

struct debugfs_reg32 {
char *name;
unsigned long offset;
};

struct debugfs_regset32 {
struct debugfs_reg32 *regs;
int nregs;
void __iomem *base;
};

struct dentry *debugfs_create_regset32(const char *name, mode_t mode,
struct dentry *parent,
struct debugfs_regset32 *regset);

int debugfs_print_regs32(struct seq_file *s, struct debugfs_reg32 *regs,
int nregs, void __iomem *base, char *prefix);

The "base" argument may be 0, but you may want to build the reg32 array
using __stringify, and a number of register names (macros) are actually
byte offsets over a base for the register block.


There are a couple of other directory-oriented helper functions:

struct dentry *debugfs_rename(struct dentry *old_dir,
2 changes: 1 addition & 1 deletion MAINTAINERS
Original file line number Diff line number Diff line change
@@ -6261,7 +6261,7 @@ F: arch/alpha/kernel/srm_env.c

STABLE BRANCH
M: Greg Kroah-Hartman <[email protected]>
L: [email protected]
L: stable@vger.kernel.org
S: Maintained

STAGING SUBSYSTEM
4 changes: 2 additions & 2 deletions drivers/Kconfig
Original file line number Diff line number Diff line change
@@ -116,6 +116,8 @@ source "drivers/vlynq/Kconfig"

source "drivers/virtio/Kconfig"

source "drivers/hv/Kconfig"

source "drivers/xen/Kconfig"

source "drivers/staging/Kconfig"
@@ -132,8 +134,6 @@ source "drivers/iommu/Kconfig"

source "drivers/virt/Kconfig"

source "drivers/hv/Kconfig"

source "drivers/devfreq/Kconfig"

endmenu
4 changes: 2 additions & 2 deletions drivers/base/Makefile
Original file line number Diff line number Diff line change
@@ -3,7 +3,8 @@
obj-y := core.o sys.o bus.o dd.o syscore.o \
driver.o class.o platform.o \
cpu.o firmware.o init.o map.o devres.o \
attribute_container.o transport_class.o
attribute_container.o transport_class.o \
topology.o
obj-$(CONFIG_DEVTMPFS) += devtmpfs.o
obj-y += power/
obj-$(CONFIG_HAS_DMA) += dma-mapping.o
@@ -12,7 +13,6 @@ obj-$(CONFIG_ISA) += isa.o
obj-$(CONFIG_FW_LOADER) += firmware_class.o
obj-$(CONFIG_NUMA) += node.o
obj-$(CONFIG_MEMORY_HOTPLUG_SPARSE) += memory.o
obj-$(CONFIG_SMP) += topology.o
ifeq ($(CONFIG_SYSFS),y)
obj-$(CONFIG_MODULES) += module.o
endif
12 changes: 6 additions & 6 deletions drivers/base/base.h
Original file line number Diff line number Diff line change
@@ -4,7 +4,9 @@
* struct subsys_private - structure to hold the private to the driver core portions of the bus_type/class structure.
*
* @subsys - the struct kset that defines this subsystem
* @devices_kset - the list of devices associated
* @devices_kset - the subsystem's 'devices' directory
* @interfaces - list of subsystem interfaces associated
* @mutex - protect the devices, and interfaces lists.
*
* @drivers_kset - the list of drivers associated
* @klist_devices - the klist to iterate over the @devices_kset
@@ -14,10 +16,8 @@
* @bus - pointer back to the struct bus_type that this structure is associated
* with.
*
* @class_interfaces - list of class_interfaces associated
* @glue_dirs - "glue" directory to put in-between the parent device to
* avoid namespace conflicts
* @class_mutex - mutex to protect the children, devices, and interfaces lists.
* @class - pointer back to the struct class that this structure is associated
* with.
*
@@ -28,6 +28,8 @@
struct subsys_private {
struct kset subsys;
struct kset *devices_kset;
struct list_head interfaces;
struct mutex mutex;

struct kset *drivers_kset;
struct klist klist_devices;
@@ -36,9 +38,7 @@ struct subsys_private {
unsigned int drivers_autoprobe:1;
struct bus_type *bus;

struct list_head class_interfaces;
struct kset glue_dirs;
struct mutex class_mutex;
struct class *class;
};
#define to_subsys_private(obj) container_of(obj, struct subsys_private, subsys.kobj)
@@ -94,7 +94,6 @@ extern int hypervisor_init(void);
static inline int hypervisor_init(void) { return 0; }
#endif
extern int platform_bus_init(void);
extern int system_bus_init(void);
extern int cpu_dev_init(void);

extern int bus_add_device(struct device *dev);
@@ -116,6 +115,7 @@ extern char *make_class_name(const char *name, struct kobject *kobj);

extern int devres_release_all(struct device *dev);

/* /sys/devices directory */
extern struct kset *devices_kset;

#if defined(CONFIG_MODULES) && defined(CONFIG_SYSFS)
Loading

0 comments on commit d3b7737

Please sign in to comment.